<name>C-SPY</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>22</version>\r
+ <version>28</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
</option>\r
<option>\r
<name>MemFile</name>\r
- <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ioAT91SAM3U4.ddf</state>\r
+ <state></state>\r
</option>\r
<option>\r
<name>RunToEnable</name>\r
</option>\r
<option>\r
<name>OCLastSavedByProductVersion</name>\r
- <state>6.20.1.52589</state>\r
- </option>\r
- <option>\r
- <name>OCDownloadAttachToProgram</name>\r
- <state>0</state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>UseFlashLoader</name>\r
</option>\r
<option>\r
<name>FlashLoadersV3</name>\r
- <state>$TOOLKIT_DIR$\config\flashloader\Atmel\AT91SAM3U4-EK\at91sam3u4-flash.board</state>\r
+ <state>$TOOLKIT_DIR$\config\flashloader\</state>\r
</option>\r
<option>\r
<name>OCImagesSuppressCheck1</name>\r
<name>OCImagesUse3</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>OCDeviceConfigMacroFile</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCDebuggerExtraOption</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCAllMTBOptions</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCMulticoreNrOfCores</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCMulticoreMaster</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCMulticorePort</name>\r
+ <state>53461</state>\r
+ </option>\r
+ <option>\r
+ <name>OCMulticoreWorkspace</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>OCMulticoreSlaveProject</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>OCMulticoreSlaveConfiguration</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>OCDownloadExtraImage</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCAttachSlave</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
</data>\r
</settings>\r
<settings>\r
- <name>GDBSERVER_ID</name>\r
+ <name>CMSISDAP_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>0</version>\r
+ <version>4</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>TCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>DoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>LogFile</name>\r
- <state>$PROJ_DIR$\cspycomm.log</state>\r
+ <name>OCIarProbeScriptFile</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCJTagBreakpointRadio</name>\r
- <state>0</state>\r
+ <name>CMSISDAPResetList</name>\r
+ <version>1</version>\r
+ <state>10</state>\r
</option>\r
<option>\r
- <name>CCJTagDoUpdateBreakpoints</name>\r
- <state>0</state>\r
+ <name>CMSISDAPHWResetDuration</name>\r
+ <state>300</state>\r
</option>\r
<option>\r
- <name>CCJTagUpdateBreakpoints</name>\r
- <state>main</state>\r
+ <name>CMSISDAPHWResetDelay</name>\r
+ <state>200</state>\r
</option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>IARROM_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>1</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
<option>\r
- <name>CRomLogFileCheck</name>\r
+ <name>CMSISDAPDoLogfile</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CRomLogFileEditB</name>\r
+ <name>CMSISDAPLogFile</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>CRomCommPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRomCommBaud</name>\r
- <version>0</version>\r
- <state>7</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>JLINK_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>13</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>JLinkSpeed</name>\r
- <state>32</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkDoLogfile</name>\r
+ <name>CMSISDAPInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJLinkLogFile</name>\r
- <state>$PROJ_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkHWResetDelay</name>\r
+ <name>CMSISDAPInterfaceCmdLine</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>JLinkInitialSpeed</name>\r
- <state>32</state>\r
- </option>\r
- <option>\r
- <name>CCDoJlinkMultiTarget</name>\r
+ <name>CMSISDAPMultiTargetEnable</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCScanChainNonARMDevices</name>\r
+ <name>CMSISDAPMultiTarget</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJLinkMultiTarget</name>\r
+ <name>CMSISDAPJtagSpeedList</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJLinkIRLength</name>\r
+ <name>CMSISDAPBreakpointRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJLinkCommRadio</name>\r
+ <name>CMSISDAPRestoreBreakpointsCheck</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJLinkTCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
+ <name>CMSISDAPUpdateBreakpointsEdit</name>\r
+ <state>_call_main</state>\r
</option>\r
<option>\r
- <name>CCJLinkSpeedRadioV2</name>\r
+ <name>RDICatchReset</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCUSBDevice</name>\r
- <version>1</version>\r
+ <name>RDICatchUndef</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>CCRDICatchReset</name>\r
+ <name>RDICatchSWI</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchUndef</name>\r
- <state>0</state>\r
+ <name>RDICatchData</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCRDICatchSWI</name>\r
- <state>0</state>\r
+ <name>RDICatchPrefetch</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCRDICatchData</name>\r
+ <name>RDICatchIRQ</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchPrefetch</name>\r
+ <name>RDICatchFIQ</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchIRQ</name>\r
+ <name>CatchCORERESET</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchFIQ</name>\r
- <state>0</state>\r
+ <name>CatchMMERR</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCJLinkBreakpointRadio</name>\r
- <state>0</state>\r
+ <name>CatchNOCPERR</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCJLinkDoUpdateBreakpoints</name>\r
- <state>0</state>\r
+ <name>CatchCHKERR</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCJLinkUpdateBreakpoints</name>\r
- <state>main</state>\r
+ <name>CatchSTATERR</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCJLinkInterfaceRadio</name>\r
+ <name>CatchBUSERR</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCJLinkAttachSlave</name>\r
+ <name>CatchINTERR</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>CCJLinkResetList</name>\r
- <version>5</version>\r
- <state>7</state>\r
+ <name>CatchHARDERR</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCJLinkInterfaceCmdLine</name>\r
+ <name>CatchDummy</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCCatchCORERESET</name>\r
+ <name>CMSISDAPMultiCPUEnable</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCCatchMMERR</name>\r
+ <name>CMSISDAPMultiCPUNumber</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCCatchNOCPERR</name>\r
+ <name>OCProbeCfgOverride</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCCatchCHRERR</name>\r
- <state>0</state>\r
+ <name>OCProbeConfig</name>\r
+ <state></state>\r
</option>\r
<option>\r
- <name>CCCatchSTATERR</name>\r
+ <name>CMSISDAPProbeConfigRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCCatchBUSERR</name>\r
+ <name>CMSISDAPSelectedCPUBehaviour</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCCatchINTERR</name>\r
- <state>0</state>\r
+ <name>ICpuName</name>\r
+ <state></state>\r
</option>\r
<option>\r
- <name>CCCatchHARDERR</name>\r
- <state>0</state>\r
+ <name>OCJetEmuParams</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCCatchDummy</name>\r
+ <name>CCCMSISDAPUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNoSelect</name>\r
<state>0</state>\r
</option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>GDBSERVER_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>0</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
<option>\r
- <name>OCJLinkScriptFile</name>\r
+ <name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>CCJLinkUsbSerialNo</name>\r
- <state></state>\r
+ <name>TCPIP</name>\r
+ <state>aaa.bbb.ccc.ddd</state>\r
</option>\r
<option>\r
- <name>CCTcpIpAlt</name>\r
- <version>0</version>\r
+ <name>DoLogfile</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJLinkTcpIpSerialNo</name>\r
- <state></state>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>CCCpuClockEdit</name>\r
- <state>72.0</state>\r
+ <name>CCJTagBreakpointRadio</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CCSwoClockAuto</name>\r
+ <name>CCJTagDoUpdateBreakpoints</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCSwoClockEdit</name>\r
- <state>2000</state>\r
+ <name>CCJTagUpdateBreakpoints</name>\r
+ <state>main</state>\r
</option>\r
</data>\r
</settings>\r
<settings>\r
- <name>LMIFTDI_ID</name>\r
+ <name>IARROM_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>1</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>LmiftdiSpeed</name>\r
- <state>500</state>\r
- </option>\r
- <option>\r
- <name>CCLmiftdiDoLogfile</name>\r
+ <name>CRomLogFileCheck</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCLmiftdiLogFile</name>\r
+ <name>CRomLogFileEditB</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>CCLmiFtdiInterfaceRadio</name>\r
+ <name>CRomCommPort</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCLmiFtdiInterfaceCmdLine</name>\r
- <state>0</state>\r
+ <name>CRomCommBaud</name>\r
+ <version>0</version>\r
+ <state>7</state>\r
+ </option>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
</option>\r
</data>\r
</settings>\r
<settings>\r
- <name>MACRAIGOR_ID</name>\r
+ <name>IJET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>3</version>\r
+ <version>8</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
- <name>jtag</name>\r
- <version>0</version>\r
- <state>0</state>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>EmuSpeed</name>\r
+ <name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>TCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
+ <name>IjetResetList</name>\r
+ <version>1</version>\r
+ <state>10</state>\r
</option>\r
<option>\r
- <name>DoLogfile</name>\r
- <state>0</state>\r
+ <name>IjetHWResetDuration</name>\r
+ <state>300</state>\r
</option>\r
<option>\r
- <name>LogFile</name>\r
- <state>$PROJ_DIR$\cspycomm.log</state>\r
+ <name>IjetHWResetDelay</name>\r
+ <state>200</state>\r
</option>\r
<option>\r
- <name>DoEmuMultiTarget</name>\r
- <state>0</state>\r
+ <name>IjetPowerFromProbe</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>EmuMultiTarget</name>\r
- <state>0@ARM7TDMI</state>\r
+ <name>IjetPowerRadio</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>EmuHWReset</name>\r
+ <name>IjetDoLogfile</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CEmuCommBaud</name>\r
- <version>0</version>\r
- <state>4</state>\r
+ <name>IjetLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>CEmuCommPort</name>\r
- <version>0</version>\r
+ <name>IjetInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>jtago</name>\r
- <version>0</version>\r
+ <name>IjetInterfaceCmdLine</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
+ <name>IjetMultiTargetEnable</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetMultiTarget</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetScanChainNonARMDevices</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetIRLength</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetJtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetProtocolRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetSwoPin</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetCpuClockEdit</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>IjetSwoPrescalerList</name>\r
+ <version>1</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetBreakpointRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetRestoreBreakpointsCheck</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetUpdateBreakpointsEdit</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>RDICatchReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>RDICatchUndef</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>RDICatchSWI</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>RDICatchData</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>RDICatchPrefetch</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>RDICatchIRQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>RDICatchFIQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchMMERR</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchNOCPERR</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchCHKERR</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchSTATERR</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchBUSERR</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchINTERR</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchHARDERR</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCProbeCfgOverride</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCProbeConfig</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>IjetProbeConfigRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetMultiCPUEnable</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetMultiCPUNumber</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetSelectedCPUBehaviour</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>ICpuName</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>OCJetEmuParams</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetPreferETB</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetTraceSettingsList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IjetTraceSizeList</name>\r
+ <version>0</version>\r
+ <state>2</state>\r
+ </option>\r
+ <option>\r
+ <name>FlashBoardPathSlave</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>JLINK_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>16</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>JLinkSpeed</name>\r
+ <state>32</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkDoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkHWResetDelay</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>JLinkInitialSpeed</name>\r
+ <state>32</state>\r
+ </option>\r
+ <option>\r
+ <name>CCDoJlinkMultiTarget</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCScanChainNonARMDevices</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkMultiTarget</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkIRLength</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkCommRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkTCPIP</name>\r
+ <state>aaa.bbb.ccc.ddd</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkSpeedRadioV2</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCUSBDevice</name>\r
+ <version>1</version>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchUndef</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchSWI</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchData</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchPrefetch</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchIRQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchFIQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkBreakpointRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkDoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkUpdateBreakpoints</name>\r
+ <state>main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkInterfaceRadio</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkResetList</name>\r
+ <version>6</version>\r
+ <state>5</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkInterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCCatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCJLinkScriptFile</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCTcpIpAlt</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJLinkTcpIpSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCCpuClockEdit</name>\r
+ <state>72.0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSwoClockAuto</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSwoClockEdit</name>\r
+ <state>2000</state>\r
+ </option>\r
+ <option>\r
+ <name>OCJLinkTraceSource</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCJLinkTraceSourceDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCJLinkDeviceName</name>\r
+ <state>1</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>LMIFTDI_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>2</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>LmiftdiSpeed</name>\r
+ <state>500</state>\r
+ </option>\r
+ <option>\r
+ <name>CCLmiftdiDoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCLmiftdiLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCLmiFtdiInterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCLmiFtdiInterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>MACRAIGOR_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>3</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>jtag</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>EmuSpeed</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>TCPIP</name>\r
+ <state>aaa.bbb.ccc.ddd</state>\r
+ </option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>DoEmuMultiTarget</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>EmuMultiTarget</name>\r
+ <state>0@ARM7TDMI</state>\r
+ </option>\r
+ <option>\r
+ <name>EmuHWReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CEmuCommBaud</name>\r
+ <version>0</version>\r
+ <state>4</state>\r
+ </option>\r
+ <option>\r
+ <name>CEmuCommPort</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>jtago</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
<name>UnusedAddr</name>\r
<state>0x00800000</state>\r
</option>\r
<option>\r
- <name>CCMacraigorHWResetDelay</name>\r
- <state></state>\r
+ <name>CCMacraigorHWResetDelay</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCJTagBreakpointRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJTagDoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJTagUpdateBreakpoints</name>\r
+ <state>main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMacraigorInterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMacraigorInterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>PEMICRO_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>3</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCJPEMicroShowSettings</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>RDI_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>2</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>CRDIDriverDll</name>\r
+ <state>###Uninitialized###</state>\r
+ </option>\r
+ <option>\r
+ <name>CRDILogFileCheck</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CRDILogFileEdit</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDIHWReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchUndef</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCRDICatchSWI</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CCJTagBreakpointRadio</name>\r
+ <name>CCRDICatchData</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJTagDoUpdateBreakpoints</name>\r
+ <name>CCRDICatchPrefetch</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJTagUpdateBreakpoints</name>\r
- <state>main</state>\r
+ <name>CCRDICatchIRQ</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CCMacraigorInterfaceRadio</name>\r
+ <name>CCRDICatchFIQ</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCMacraigorInterfaceCmdLine</name>\r
- <state>0</state>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
</option>\r
</data>\r
</settings>\r
<settings>\r
- <name>PEMICRO_ID</name>\r
+ <name>STLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>0</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCPEMicroAttachSlave</name>\r
- <state>1</state>\r
+ <name>CCSTLinkInterfaceRadio</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CCPEMicroInterfaceList</name>\r
- <version>0</version>\r
+ <name>CCSTLinkInterfaceCmdLine</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCPEMicroResetDelay</name>\r
- <state></state>\r
+ <name>CCSTLinkResetList</name>\r
+ <version>1</version>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CCPEMicroJtagSpeed</name>\r
- <state>#UNINITIALIZED#</state>\r
+ <name>CCCpuClockEdit</name>\r
+ <state>72.0</state>\r
</option>\r
<option>\r
- <name>CCJPEMicroShowSettings</name>\r
+ <name>CCSwoClockAuto</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>CCSwoClockEdit</name>\r
+ <state>2000</state>\r
+ </option>\r
<option>\r
<name>DoLogfile</name>\r
<state>0</state>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>CCPEMicroUSBDevice</name>\r
- <version>0</version>\r
+ <name>CCSTLinkDoUpdateBreakpoints</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCPEMicroSerialPort</name>\r
- <version>0</version>\r
+ <name>CCSTLinkUpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCORERESET</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCJPEMicroTCPIPAutoScanNetwork</name>\r
- <state>1</state>\r
+ <name>CCSTLinkCatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchHARDERR</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CCPEMicroTCPIP</name>\r
- <state>10.0.0.1</state>\r
+ <name>CCSTLinkCatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNo</name>\r
+ <state></state>\r
</option>\r
<option>\r
- <name>CCPEMicroCommCmdLineProducer</name>\r
+ <name>CCSTLinkUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkJtagSpeedList</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
</data>\r
</settings>\r
<settings>\r
- <name>RDI_ID</name>\r
+ <name>THIRDPARTY_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>0</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
- <name>CRDIDriverDll</name>\r
+ <name>CThirdPartyDriverDll</name>\r
<state>###Uninitialized###</state>\r
</option>\r
<option>\r
- <name>CRDILogFileCheck</name>\r
+ <name>CThirdPartyLogFileCheck</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CRDILogFileEdit</name>\r
+ <name>CThirdPartyLogFileEditB</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>CCRDIHWReset</name>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>TIFET_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>1</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetResetList</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchReset</name>\r
+ <name>CCMSPFetInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchUndef</name>\r
+ <name>CCMSPFetInterfaceCmdLine</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchSWI</name>\r
+ <name>CCMSPFetTargetVccTypeDefault</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchData</name>\r
+ <name>CCMSPFetTargetVoltage</name>\r
+ <state>###Uninitialized###</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetVCCDefault</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetTargetSettlingtime</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchPrefetch</name>\r
+ <name>CCMSPFetRadioJtagSpeedType</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetConnection</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchIRQ</name>\r
+ <name>CCMSPFetUsbComPort</name>\r
+ <state>Automatic</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetAllowAccessToBSL</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCRDICatchFIQ</name>\r
+ <name>CCMSPFetDoLogfile</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>OCDriverInfo</name>\r
+ <name>CCMSPFetLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetRadioEraseFlash</name>\r
<state>1</state>\r
</option>\r
</data>\r
</settings>\r
<settings>\r
- <name>STLINK_ID</name>\r
+ <name>XDS100_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>5</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>CCSTLinkInterfaceRadio</name>\r
+ <name>TIPackageOverride</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCSTLinkInterfaceCmdLine</name>\r
+ <name>TIPackage</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>BoardFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCSTLinkResetList</name>\r
- <version>1</version>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100BreakpointRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCCpuClockEdit</name>\r
- <state>72.0</state>\r
+ <name>CCXds100DoUpdateBreakpoints</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CCSwoClockAuto</name>\r
+ <name>CCXds100UpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchReset</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CCSwoClockEdit</name>\r
- <state>2000</state>\r
+ <name>CCXds100CatchUndef</name>\r
+ <state>0</state>\r
</option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>THIRDPARTY_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
<option>\r
- <name>CThirdPartyDriverDll</name>\r
- <state>###Uninitialized###</state>\r
+ <name>CCXds100CatchSWI</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CThirdPartyLogFileCheck</name>\r
+ <name>CCXds100CatchData</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>CThirdPartyLogFileEditB</name>\r
- <state>$PROJ_DIR$\cspycomm.log</state>\r
+ <name>CCXds100CatchPrefetch</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
+ <name>CCXds100CatchIRQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchFIQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CpuClockEdit</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockAuto</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockEdit</name>\r
+ <state>1000</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100HWResetDelay</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ResetList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100JtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceRadio</name>\r
+ <state>2</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ProbeList</name>\r
+ <version>0</version>\r
+ <state>2</state>\r
</option>\r
</data>\r
</settings>\r
<debuggerPlugins>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
<plugin>\r
<file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB6_Plugin.ewplugin</file>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
- <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\FreeRTOS\FreeRTOSPlugin.ewplugin</file>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
- <file>$EW_DIR$\common\plugins\OpenRTOS\OpenRTOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
+ <loadFlag>1</loadFlag>\r
</plugin>\r
<plugin>\r
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
<plugin>\r
- <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
+ <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
</plugin>\r
</debuggerPlugins>\r
</configuration>\r
<name>General</name>\r
<archiveVersion>3</archiveVersion>\r
<data>\r
- <version>21</version>\r
+ <version>24</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>ListPath</name>\r
<state>Debug\List</state>\r
</option>\r
- <option>\r
- <name>Variant</name>\r
- <version>19</version>\r
- <state>37</state>\r
- </option>\r
<option>\r
<name>GEndianMode</name>\r
<state>0</state>\r
<name>GOutputBinary</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>FPU</name>\r
- <version>2</version>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>OGCoreOrChip</name>\r
<state>1</state>\r
</option>\r
<option>\r
<name>OGLastSavedByProductVersion</name>\r
- <state>6.20.1.52589</state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>GeneralEnableMisra</name>\r
</option>\r
<option>\r
<name>OGChipSelectEditMenu</name>\r
- <state>AT91SAM3U4 Atmel AT91SAM3U4</state>\r
+ <state>ATSAM3U4E Atmel ATSAM3U4E</state>\r
</option>\r
<option>\r
<name>GenLowLevelInterface</name>\r
</option>\r
<option>\r
<name>GenStdoutInterface</name>\r
- <state>1</state>\r
+ <state>0</state>\r
</option>\r
<option>\r
<name>GeneralMisraRules98</name>\r
<name>RTConfigPath2</name>\r
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>\r
</option>\r
- <option>\r
- <name>GFPUCoreSlave</name>\r
- <version>19</version>\r
- <state>37</state>\r
- </option>\r
<option>\r
<name>GBECoreSlave</name>\r
- <version>19</version>\r
- <state>37</state>\r
+ <version>24</version>\r
+ <state>38</state>\r
</option>\r
<option>\r
<name>OGUseCmsis</name>\r
- <state>1</state>\r
+ <state>0</state>\r
</option>\r
<option>\r
<name>OGUseCmsisDspLib</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>GRuntimeLibThreads</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CoreVariant</name>\r
+ <version>24</version>\r
+ <state>38</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUDeviceSlave</name>\r
+ <state>ATSAM3U4E Atmel ATSAM3U4E</state>\r
+ </option>\r
+ <option>\r
+ <name>FPU2</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>NrRegs</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>NEON</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUCoreSlave2</name>\r
+ <version>24</version>\r
+ <state>38</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>ICCARM</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>28</version>\r
+ <version>31</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
+ <option>\r
+ <name>CCOptimizationNoSizeConstraints</name>\r
+ <state>0</state>\r
+ </option>\r
<option>\r
<name>CCDefines</name>\r
<state>at91sam3u4</state>\r
<option>\r
<name>CCAllowList</name>\r
<version>1</version>\r
- <state>0000000</state>\r
+ <state>00000000</state>\r
</option>\r
<option>\r
<name>CCDebugInfo</name>\r
<name>IccFloatSemantics</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>CCNoLiteralPool</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCOptStrategySlave</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCGuardCalls</name>\r
+ <state>1</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>AARM</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>8</version>\r
+ <version>9</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>AExtraOptionsV2</name>\r
<state></state>\r
</option>\r
+ <option>\r
+ <name>AsmNoLiteralPool</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<debug>1</debug>\r
<option>\r
<name>OOCOutputFormat</name>\r
- <version>2</version>\r
+ <version>3</version>\r
<state>0</state>\r
</option>\r
<option>\r
<data>\r
<extensions></extensions>\r
<cmdline></cmdline>\r
+ <hasPrio>0</hasPrio>\r
</data>\r
</settings>\r
<settings>\r
<name>ILINK</name>\r
<archiveVersion>0</archiveVersion>\r
<data>\r
- <version>13</version>\r
+ <version>17</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>CrcAlign</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>CrcAlgo</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>CrcPoly</name>\r
<state>0x11021</state>\r
<name>IlinkOptForceVfe</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>IlinkStackAnalysisEnable</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IlinkStackControlFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>IlinkStackCallGraphFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CrcAlgorithm</name>\r
+ <version>0</version>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CrcUnitSize</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>IlinkThreadsSlave</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>IlinkLogCallGraph</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
SWOInfo_ITMPortsTermIO=0x00000001\r
SWOInfo_ITMPortsLogFile=0x00000000\r
SWOInfo_ITMLogFile=$PROJ_DIR$\ITM.log\r
+WatchCond=_ 0\r
+Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
+Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
+CStepIntDis=_ 0\r
+LeaveTargetRunning=_ 0\r
[DataLog]\r
LogEnabled=0\r
SumEnabled=0\r
\r
\r
\r
- <Column0>258</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
+ <Column0>306</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
</Workspace>\r
<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>\r
<Windows>\r
\r
\r
\r
- <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>\r
+ <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>\r
<Positions>\r
\r
\r
\r
\r
\r
- <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>\r
+ <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>\r
</Desktop>\r
</Workspace>\r
\r
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">\r
<PropertyGroup>\r
<SchemaVersion>2.0</SchemaVersion>\r
- <ProjectVersion>6.0</ProjectVersion>\r
+ <ProjectVersion>7.0</ProjectVersion>\r
<ProjectGuid>{1a1a7c6e-bd59-4e82-8371-7f51ae9a4bd9}</ProjectGuid>\r
<Name>$(MSBuildProjectName)</Name>\r
<AssemblyName>$(MSBuildProjectName)</AssemblyName>\r
<AsfVersion>3.3.0</AsfVersion>\r
<AsfFrameworkConfig>\r
<framework-data>\r
- <options>\r
- <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />\r
- </options>\r
- <configurations>\r
- <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />\r
- </configurations>\r
- <files>\r
- <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" />\r
- <file path="src/main.c" framework="" version="3.3.0" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <file path="src/asf/common/boards/board.h" framework="" version="3.3.0" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/common/utils/interrupt.h" framework="" version="3.3.0" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/common/utils/parts.h" framework="" version="3.3.0" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/sam/utils/compiler.h" framework="" version="3.3.0" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />\r
- </files>\r
- <documentation help="http://asf.atmel.com/docs/3.3.0/common.applications.user_application.sam3x_ek/html/index.html" />\r
- </framework-data>\r
+ <options>\r
+ <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />\r
+ </options>\r
+ <configurations>\r
+ <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />\r
+ </configurations>\r
+ <files>\r
+ <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" />\r
+ <file path="src/main.c" framework="" version="3.3.0" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <file path="src/asf/common/boards/board.h" framework="" version="3.3.0" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/common/utils/interrupt.h" framework="" version="3.3.0" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/common/utils/parts.h" framework="" version="3.3.0" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/sam/utils/compiler.h" framework="" version="3.3.0" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.3.0" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />\r
+ </files>\r
+ <documentation help="" />\r
+ <offline-documentation help="" />\r
+ <dependencies>\r
+ <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.20.1" />\r
+ </dependencies>\r
+</framework-data>\r
</AsfFrameworkConfig>\r
<avrdevice>ATSAM3X8H</avrdevice>\r
<avrdeviceseries>sam3x</avrdeviceseries>\r
<Language>C</Language>\r
- <ToolchainName>com.Atmel.ARMGCC</ToolchainName>\r
+ <ToolchainName>com.Atmel.ARMGCC.C</ToolchainName>\r
<ArmGccProjectExtensions />\r
<OutputDirectory>$(MSBuildProjectDirectory)\$(Configuration)</OutputDirectory>\r
<OutputFileName>$(MSBuildProjectName)</OutputFileName>\r
</InterfaceProperties>\r
</ToolOptions>\r
</com_atmel_avrdbg_tool_samice>\r
+ <CacheFlash>true</CacheFlash>\r
+ <ProgFlashFromRam>true</ProgFlashFromRam>\r
+ <RamSnippetAddress />\r
+ <UncachedRange />\r
+ <preserveEEPROM>true</preserveEEPROM>\r
+ <BootSegment>2</BootSegment>\r
</PropertyGroup>\r
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">\r
- <ToolchainSettings>\r
- <ArmGcc>\r
- <armgcc.common.general.symbols>__SAM3X8H__</armgcc.common.general.symbols>\r
- <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
- <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
- <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
- <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
- <armgcc.compiler.symbols.DefSymbols>\r
- <ListValues>\r
- <Value>BOARD=SAM3X_EK</Value>\r
- <Value>__SAM3X8H__</Value>\r
- </ListValues>\r
- </armgcc.compiler.symbols.DefSymbols>\r
- <armgcc.compiler.directories.IncludePaths>\r
- <ListValues>\r
- <Value>../src</Value>\r
- <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
- <Value>../src/asf/common/boards</Value>\r
- <Value>../src/asf/common/services/gpio</Value>\r
- <Value>../src/asf/common/utils</Value>\r
- <Value>../src/asf/sam/boards</Value>\r
- <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
- <Value>../src/asf/sam/drivers/pio</Value>\r
- <Value>../src/asf/sam/utils</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
- <Value>../src/asf/sam/utils/header_files</Value>\r
- <Value>../src/asf/sam/utils/preprocessor</Value>\r
- <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
- <Value>../src/config</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>\r
- <Value>../src/asf/sam/drivers/pmc</Value>\r
- <Value>../src/asf/common/services/clock</Value>\r
- <Value>../src/asf/sam/drivers/usart</Value>\r
- </ListValues>\r
- </armgcc.compiler.directories.IncludePaths>\r
- <armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>\r
- <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\r
- <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>\r
- <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>\r
- <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>\r
- <armgcc.linker.general.DoNotUseStandardStartFiles />\r
- <armgcc.linker.general.DoNotUseDefaultLibraries />\r
- <armgcc.linker.general.NoStartupOrDefaultLibs />\r
- <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
- <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>\r
- <armgcc.assembler.general.IncludePaths>\r
- <ListValues>\r
- <Value>../src</Value>\r
- <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
- <Value>../src/asf/common/boards</Value>\r
- <Value>../src/asf/common/services/gpio</Value>\r
- <Value>../src/asf/common/utils</Value>\r
- <Value>../src/asf/sam/boards</Value>\r
- <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
- <Value>../src/asf/sam/drivers/pio</Value>\r
- <Value>../src/asf/sam/utils</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
- <Value>../src/asf/sam/utils/header_files</Value>\r
- <Value>../src/asf/sam/utils/preprocessor</Value>\r
- <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
- <Value>../src/config</Value>\r
- <Value>../src/asf/sam/drivers/pmc</Value>\r
- <Value>../src/asf/common/services/clock</Value>\r
- <Value>../src/asf/sam/drivers/usart</Value>\r
- </ListValues>\r
- </armgcc.assembler.general.IncludePaths>\r
- <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
- <armgcc.preprocessingassembler.general.IncludePaths>\r
- <ListValues>\r
- <Value>../src</Value>\r
- <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
- <Value>../src/asf/common/boards</Value>\r
- <Value>../src/asf/common/services/gpio</Value>\r
- <Value>../src/asf/common/utils</Value>\r
- <Value>../src/asf/sam/boards</Value>\r
- <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
- <Value>../src/asf/sam/drivers/pio</Value>\r
- <Value>../src/asf/sam/utils</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
- <Value>../src/asf/sam/utils/header_files</Value>\r
- <Value>../src/asf/sam/utils/preprocessor</Value>\r
- <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
- <Value>../src/config</Value>\r
- <Value>../src/asf/sam/drivers/pmc</Value>\r
- <Value>../src/asf/common/services/clock</Value>\r
- <Value>../src/asf/sam/drivers/usart</Value>\r
- </ListValues>\r
- </armgcc.preprocessingassembler.general.IncludePaths>\r
- </ArmGcc>\r
- </ToolchainSettings>\r
<GenerateHexFile>True</GenerateHexFile>\r
<GenerateMapFile>True</GenerateMapFile>\r
<GenerateListFile>True</GenerateListFile>\r
<GenerateEepFile>True</GenerateEepFile>\r
- </PropertyGroup>\r
- <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">\r
<ToolchainSettings>\r
- <ArmGcc>\r
- <armgcc.common.general.symbols>__SAM3X8H__</armgcc.common.general.symbols>\r
- <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
- <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
- <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
- <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
- <armgcc.compiler.symbols.DefSymbols>\r
- <ListValues>\r
- <Value>BOARD=SAM3X_EK</Value>\r
- <Value>__SAM3X8H__</Value>\r
- </ListValues>\r
- </armgcc.compiler.symbols.DefSymbols>\r
- <armgcc.compiler.directories.IncludePaths>\r
- <ListValues>\r
- <Value>../src</Value>\r
- <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
- <Value>../src/asf/common/boards</Value>\r
- <Value>../src/asf/common/services/gpio</Value>\r
- <Value>../src/asf/common/utils</Value>\r
- <Value>../src/asf/sam/boards</Value>\r
- <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
- <Value>../src/asf/sam/drivers/pio</Value>\r
- <Value>../src/asf/sam/utils</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
- <Value>../src/asf/sam/utils/header_files</Value>\r
- <Value>../src/asf/sam/utils/preprocessor</Value>\r
- <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
- <Value>../src/config</Value>\r
- <Value>../src/asf/thirdparty/FreeRTOS/include</Value>\r
- <Value>../src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3</Value>\r
- <Value>../src/Common-Demo-Source/include</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
- <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>\r
- <Value>../src/asf/sam/drivers/pmc</Value>\r
- <Value>../src/asf/common/services/clock</Value>\r
- <Value>../src/asf/sam/drivers/usart</Value>\r
- </ListValues>\r
- </armgcc.compiler.directories.IncludePaths>\r
- <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\r
- <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>\r
- <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>\r
- <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>\r
- <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>\r
- <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
- <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>\r
- <armgcc.assembler.general.IncludePaths>\r
- <ListValues>\r
- <Value>../src</Value>\r
- <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
- <Value>../src/asf/common/boards</Value>\r
- <Value>../src/asf/common/services/gpio</Value>\r
- <Value>../src/asf/common/utils</Value>\r
- <Value>../src/asf/sam/boards</Value>\r
- <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
- <Value>../src/asf/sam/drivers/pio</Value>\r
- <Value>../src/asf/sam/utils</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
- <Value>../src/asf/sam/utils/header_files</Value>\r
- <Value>../src/asf/sam/utils/preprocessor</Value>\r
- <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
- <Value>../src/config</Value>\r
- <Value>../src/asf/sam/drivers/pmc</Value>\r
- <Value>../src/asf/common/services/clock</Value>\r
- <Value>../src/asf/sam/drivers/usart</Value>\r
- </ListValues>\r
- </armgcc.assembler.general.IncludePaths>\r
- <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
- <armgcc.preprocessingassembler.general.IncludePaths>\r
- <ListValues>\r
- <Value>../src</Value>\r
- <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
- <Value>../src/asf/common/boards</Value>\r
- <Value>../src/asf/common/services/gpio</Value>\r
- <Value>../src/asf/common/utils</Value>\r
- <Value>../src/asf/sam/boards</Value>\r
- <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
- <Value>../src/asf/sam/drivers/pio</Value>\r
- <Value>../src/asf/sam/utils</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
- <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
- <Value>../src/asf/sam/utils/header_files</Value>\r
- <Value>../src/asf/sam/utils/preprocessor</Value>\r
- <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
- <Value>../src/config</Value>\r
- <Value>../src/asf/sam/drivers/pmc</Value>\r
- <Value>../src/asf/common/services/clock</Value>\r
- <Value>../src/asf/sam/drivers/usart</Value>\r
- </ListValues>\r
- </armgcc.preprocessingassembler.general.IncludePaths>\r
- </ArmGcc>\r
+ <ArmGcc xmlns="">\r
+ <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
+ <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
+ <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
+ <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
+ <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>\r
+ <armgcc.compiler.symbols.DefSymbols>\r
+ <ListValues>\r
+ <Value>BOARD=SAM3X_EK</Value>\r
+ <Value>__SAM3X8H__</Value>\r
+ </ListValues>\r
+ </armgcc.compiler.symbols.DefSymbols>\r
+ <armgcc.compiler.directories.IncludePaths>\r
+ <ListValues>\r
+ <Value>../src</Value>\r
+ <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
+ <Value>../src/asf/common/boards</Value>\r
+ <Value>../src/asf/common/services/gpio</Value>\r
+ <Value>../src/asf/common/utils</Value>\r
+ <Value>../src/asf/sam/boards</Value>\r
+ <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
+ <Value>../src/asf/sam/drivers/pio</Value>\r
+ <Value>../src/asf/sam/utils</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
+ <Value>../src/asf/sam/utils/header_files</Value>\r
+ <Value>../src/asf/sam/utils/preprocessor</Value>\r
+ <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+ <Value>../src/config</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>\r
+ <Value>../src/asf/sam/drivers/pmc</Value>\r
+ <Value>../src/asf/common/services/clock</Value>\r
+ <Value>../src/asf/sam/drivers/usart</Value>\r
+ </ListValues>\r
+ </armgcc.compiler.directories.IncludePaths>\r
+ <armgcc.compiler.optimization.level>Optimize for size (-Os)</armgcc.compiler.optimization.level>\r
+ <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\r
+ <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>\r
+ <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>\r
+ <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>\r
+ <armgcc.linker.general.DoNotUseStandardStartFiles />\r
+ <armgcc.linker.general.DoNotUseDefaultLibraries />\r
+ <armgcc.linker.general.NoStartupOrDefaultLibs />\r
+ <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
+ <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>\r
+ <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
+ <armgcc.preprocessingassembler.general.IncludePaths>\r
+ <ListValues>\r
+ <Value>../src</Value>\r
+ <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
+ <Value>../src/asf/common/boards</Value>\r
+ <Value>../src/asf/common/services/gpio</Value>\r
+ <Value>../src/asf/common/utils</Value>\r
+ <Value>../src/asf/sam/boards</Value>\r
+ <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
+ <Value>../src/asf/sam/drivers/pio</Value>\r
+ <Value>../src/asf/sam/utils</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
+ <Value>../src/asf/sam/utils/header_files</Value>\r
+ <Value>../src/asf/sam/utils/preprocessor</Value>\r
+ <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+ <Value>../src/config</Value>\r
+ <Value>../src/asf/sam/drivers/pmc</Value>\r
+ <Value>../src/asf/common/services/clock</Value>\r
+ <Value>../src/asf/sam/drivers/usart</Value>\r
+ </ListValues>\r
+ </armgcc.preprocessingassembler.general.IncludePaths>\r
+</ArmGcc>\r
</ToolchainSettings>\r
+ </PropertyGroup>\r
+ <PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">\r
<GenerateHexFile>True</GenerateHexFile>\r
<GenerateMapFile>True</GenerateMapFile>\r
<GenerateListFile>True</GenerateListFile>\r
<GenerateEepFile>True</GenerateEepFile>\r
+ <ToolchainSettings>\r
+ <ArmGcc xmlns="">\r
+ <armgcc.common.outputfiles.hex>True</armgcc.common.outputfiles.hex>\r
+ <armgcc.common.outputfiles.lss>True</armgcc.common.outputfiles.lss>\r
+ <armgcc.common.outputfiles.eep>True</armgcc.common.outputfiles.eep>\r
+ <armgcc.common.outputfiles.bin>True</armgcc.common.outputfiles.bin>\r
+ <armgcc.common.outputfiles.srec>True</armgcc.common.outputfiles.srec>\r
+ <armgcc.compiler.symbols.DefSymbols>\r
+ <ListValues>\r
+ <Value>BOARD=SAM3X_EK</Value>\r
+ <Value>__SAM3X8H__</Value>\r
+ </ListValues>\r
+ </armgcc.compiler.symbols.DefSymbols>\r
+ <armgcc.compiler.directories.IncludePaths>\r
+ <ListValues>\r
+ <Value>../src</Value>\r
+ <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
+ <Value>../src/asf/common/boards</Value>\r
+ <Value>../src/asf/common/services/gpio</Value>\r
+ <Value>../src/asf/common/utils</Value>\r
+ <Value>../src/asf/sam/boards</Value>\r
+ <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
+ <Value>../src/asf/sam/drivers/pio</Value>\r
+ <Value>../src/asf/sam/utils</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
+ <Value>../src/asf/sam/utils/header_files</Value>\r
+ <Value>../src/asf/sam/utils/preprocessor</Value>\r
+ <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+ <Value>../src/config</Value>\r
+ <Value>../src/asf/thirdparty/FreeRTOS/include</Value>\r
+ <Value>../src/asf/thirdparty/FreeRTOS/portable/GCC/ARM_CM3</Value>\r
+ <Value>../src/Common-Demo-Source/include</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\CMSIS\Include</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL</Value>\r
+ <Value>C:\devtools\Atmel\Atmel Studio 6.0\extensions\Atmel\ARMGCC\3.3.1.83\ARMSupportFiles\Device\ATMEL\sam3xa\include</Value>\r
+ <Value>../src/asf/sam/drivers/pmc</Value>\r
+ <Value>../src/asf/common/services/clock</Value>\r
+ <Value>../src/asf/sam/drivers/usart</Value>\r
+ </ListValues>\r
+ </armgcc.compiler.directories.IncludePaths>\r
+ <armgcc.compiler.optimization.OtherFlags>-fdata-sections</armgcc.compiler.optimization.OtherFlags>\r
+ <armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>True</armgcc.compiler.optimization.PrepareFunctionsForGarbageCollection>\r
+ <armgcc.compiler.optimization.DebugLevel>Maximum (-g3)</armgcc.compiler.optimization.DebugLevel>\r
+ <armgcc.compiler.warnings.AllWarnings>True</armgcc.compiler.warnings.AllWarnings>\r
+ <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>\r
+ <armgcc.linker.optimization.GarbageCollectUnusedSections>True</armgcc.linker.optimization.GarbageCollectUnusedSections>\r
+ <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>\r
+ <armgcc.preprocessingassembler.general.AssemblerFlags>-DBOARD=SAM3X_EK -D__SAM3X8H__</armgcc.preprocessingassembler.general.AssemblerFlags>\r
+ <armgcc.preprocessingassembler.general.IncludePaths>\r
+ <ListValues>\r
+ <Value>../src</Value>\r
+ <Value>../src/asf/common/applications/user_application/sam3x8h_sam3x_ek</Value>\r
+ <Value>../src/asf/common/boards</Value>\r
+ <Value>../src/asf/common/services/gpio</Value>\r
+ <Value>../src/asf/common/utils</Value>\r
+ <Value>../src/asf/sam/boards</Value>\r
+ <Value>../src/asf/sam/boards/sam3x_ek</Value>\r
+ <Value>../src/asf/sam/drivers/pio</Value>\r
+ <Value>../src/asf/sam/utils</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/include</Value>\r
+ <Value>../src/asf/sam/utils/cmsis/sam3x/source/templates</Value>\r
+ <Value>../src/asf/sam/utils/header_files</Value>\r
+ <Value>../src/asf/sam/utils/preprocessor</Value>\r
+ <Value>../src/asf/thirdparty/CMSIS/Include</Value>\r
+ <Value>../src/config</Value>\r
+ <Value>../src/asf/sam/drivers/pmc</Value>\r
+ <Value>../src/asf/common/services/clock</Value>\r
+ <Value>../src/asf/sam/drivers/usart</Value>\r
+ </ListValues>\r
+ </armgcc.preprocessingassembler.general.IncludePaths>\r
+</ArmGcc>\r
+ </ToolchainSettings>\r
</PropertyGroup>\r
<ItemGroup>\r
<None Include="src\asf\common\services\clock\genclk.h">\r
<RootNamespace>$(MSBuildProjectName)</RootNamespace>\r
<AsfFrameworkConfig>\r
<framework-data>\r
- <options>\r
- <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam0.drivers.port" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam0.drivers.system" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="common.applications.user_application.xplained_pro2" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="common.utils" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam0.utils.cmsis.samd20.source.template" value="Add" config="" content-id="Atmel.ASF" />\r
- </options>\r
- <configurations>\r
- <configuration key="config.sam0.drivers.sercom.usart" value="callback" default="callback" content-id="Atmel.ASF" />\r
- </configurations>\r
- <files>\r
- <file path="src/main.c" framework="" version="" source="common2/applications/xplained_pro_user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <file path="src/ASF/sam0/drivers/port/port.c" framework="" version="" source="sam0/drivers/port/port.c" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/sam0/drivers/port/port.h" framework="" version="" source="sam0/drivers/port/port.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/ASF/sam0/drivers/system/system.c" framework="" version="" source="sam0/drivers/system/system.c" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/sam0/drivers/system/system.h" framework="" version="" source="sam0/drivers/system/system.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/ASF/sam0/utils/compiler.h" framework="" version="" source="sam0/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/ASF/sam0/utils/preprocessor/mrepeat.h" framework="" version="" source="sam0/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/sam0/utils/preprocessor/preprocessor.h" framework="" version="" source="sam0/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/sam0/utils/preprocessor/stringz.h" framework="" version="" source="sam0/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/sam0/utils/preprocessor/tpaste.h" framework="" version="" source="sam0/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/sam0/utils/status_codes.h" framework="" version="" source="sam0/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/ASF/thirdparty/CMSIS/README.txt" framework="" version="" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/ASF/thirdparty/CMSIS/license.txt" framework="" version="" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- </files>\r
- <documentation help="http://asf.atmel.com/docs/3.11.0/common.applications.user_application.xplained_pro2.samd20_xplained_pro/html/index.html" />\r
- <offline-documentation help="" />\r
- <dependencies>\r
- <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.18.1" />\r
- </dependencies>\r
- <project id="common.applications.user_application.xplained_pro2.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />\r
- <board id="board.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />\r
- </framework-data>\r
+ <options>\r
+ <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam0.drivers.port" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam0.drivers.system" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="common.services.basic.serial" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="common.applications.user_application.xplained_pro2" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="common.utils" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam0.utils.cmsis.samd20.source.template" value="Add" config="" content-id="Atmel.ASF" />\r
+ </options>\r
+ <configurations>\r
+ <configuration key="config.sam0.drivers.sercom.usart" value="callback" default="callback" content-id="Atmel.ASF" />\r
+ </configurations>\r
+ <files>\r
+ <file path="src/main.c" framework="" version="" source="common2/applications/xplained_pro_user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/ASF/common/boards/board.h" framework="" version="" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/common/utils/interrupt.h" framework="" version="" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/ASF/common/utils/parts.h" framework="" version="" source="common/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/ASF/sam0/drivers/port/port.c" framework="" version="" source="sam0/drivers/port/port.c" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/sam0/drivers/port/port.h" framework="" version="" source="sam0/drivers/port/port.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/ASF/sam0/drivers/system/system.c" framework="" version="" source="sam0/drivers/system/system.c" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/sam0/drivers/system/system.h" framework="" version="" source="sam0/drivers/system/system.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/ASF/sam0/utils/compiler.h" framework="" version="" source="sam0/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/ASF/sam0/utils/preprocessor/mrepeat.h" framework="" version="" source="sam0/utils/preprocessor/mrepeat.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/sam0/utils/preprocessor/preprocessor.h" framework="" version="" source="sam0/utils/preprocessor/preprocessor.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/sam0/utils/preprocessor/stringz.h" framework="" version="" source="sam0/utils/preprocessor/stringz.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/sam0/utils/preprocessor/tpaste.h" framework="" version="" source="sam0/utils/preprocessor/tpaste.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/sam0/utils/status_codes.h" framework="" version="" source="sam0/utils/status_codes.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/ASF/thirdparty/CMSIS/README.txt" framework="" version="" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/ASF/thirdparty/CMSIS/license.txt" framework="" version="" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ </files>\r
+ <documentation help="http://asf.atmel.com/docs/3.11.0/common.applications.user_application.xplained_pro2.samd20_xplained_pro/html/index.html" />\r
+ <offline-documentation help="" />\r
+ <dependencies>\r
+ <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.20.1" />\r
+ </dependencies>\r
+ <project id="common.applications.user_application.xplained_pro2.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />\r
+ <board id="board.samd20_xplained_pro" value="Add" config="" content-id="Atmel.ASF" />\r
+</framework-data>\r
</AsfFrameworkConfig>\r
<avrdevice>ATSAMD20J18</avrdevice>\r
<avrdeviceseries>samd20</avrdeviceseries>\r
\r
/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,\r
or 0 to run the more comprehensive test and demo application. */\r
-#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 0\r
+#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY 1\r
\r
/*-----------------------------------------------------------*/\r
\r
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">\r
<PropertyGroup>\r
<SchemaVersion>2.0</SchemaVersion>\r
- <ProjectVersion>6.2</ProjectVersion>\r
+ <ProjectVersion>7.0</ProjectVersion>\r
<ProjectGuid>{3d8959cd-73ca-4147-9c1b-cfcf2ee40326}</ProjectGuid>\r
<Name>$(MSBuildProjectName)</Name>\r
<AssemblyName>$(MSBuildProjectName)</AssemblyName>\r
<AsfVersion>2.11.1</AsfVersion>\r
<AsfFrameworkConfig>\r
<framework-data>\r
- <options>\r
- <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />\r
- <option id="sam.drivers.tc" value="Add" config="" content-id="Atmel.ASF" />\r
- </options>\r
- <configurations>\r
- <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />\r
- </configurations>\r
- <files>\r
- <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" />\r
- <file path="src/main.c" framework="" version="3.1.3" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <file path="src/asf/common/boards/board.h" framework="" version="3.1.3" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/common/utils/interrupt.h" framework="" version="3.1.3" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/sam/utils/compiler.h" framework="" version="3.1.3" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/sam/utils/parts.h" framework="" version="3.1.3" source="sam/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />\r
- <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />\r
- <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" />\r
- <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" />\r
- </files>\r
- <documentation help="" />\r
- <offline-documentation help="" />\r
- <dependencies>\r
- <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.10.1" />\r
- </dependencies>\r
- </framework-data>\r
+ <options>\r
+ <option id="common.boards" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="common.services.basic.clock" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="common.services.basic.gpio" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam.drivers.pio" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam.drivers.usart" value="Add" config="" content-id="Atmel.ASF" />\r
+ <option id="sam.drivers.tc" value="Add" config="" content-id="Atmel.ASF" />\r
+ </options>\r
+ <configurations>\r
+ <configuration key="config.sam.pio.pio_handler" value="yes" default="yes" content-id="Atmel.ASF" />\r
+ </configurations>\r
+ <files>\r
+ <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" />\r
+ <file path="src/main.c" framework="" version="3.1.3" source="common/applications/user_application/main.c" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <file path="src/asf/common/boards/board.h" framework="" version="3.1.3" source="common/boards/board.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/common/utils/interrupt.h" framework="" version="3.1.3" source="common/utils/interrupt.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/sam/utils/compiler.h" framework="" version="3.1.3" source="sam/utils/compiler.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/sam/utils/parts.h" framework="" version="3.1.3" source="sam/utils/parts.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/thirdparty/CMSIS/README.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/README.txt" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/thirdparty/CMSIS/license.txt" framework="" version="3.1.3" source="thirdparty/CMSIS/license.txt" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/pmc/pmc.c" framework="" version="" source="sam\drivers\pmc\pmc.c" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/pmc/pmc.h" framework="" version="" source="sam\drivers\pmc\pmc.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/pmc/sleep.h" framework="" version="" source="sam\drivers\pmc\sleep.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/common/services/clock/genclk.h" framework="" version="" source="common\services\clock\genclk.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/common/services/clock/osc.h" framework="" version="" source="common\services\clock\osc.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ <file path="src/asf/common/services/clock/sysclk.h" framework="" version="" source="common\services\clock\sysclk.h" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/common/services/clock/pll.h" framework="" version="" source="common\services\clock\pll.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <file path="src/asf/sam/drivers/usart/usart.c" framework="" version="" source="sam\drivers\usart\usart.c" changed="False" content-id="Atmel.ASF" />\r
+ <file path="src/asf/sam/drivers/usart/usart.h" framework="" version="" source="sam\drivers\usart\usart.h" changed="False" content-id="Atmel.ASF" />\r
+ <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" />\r
+ <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" />\r
+ </files>\r
+ <documentation help="" />\r
+ <offline-documentation help="" />\r
+ <dependencies>\r
+ <content-extension eid="atmel.asf" uuidref="Atmel.ASF" version="3.20.1" />\r
+ </dependencies>\r
+</framework-data>\r
</AsfFrameworkConfig>\r
<avrdevice>ATSAM4S16C</avrdevice>\r
<avrdeviceseries>sam4s</avrdeviceseries>\r
<RamSnippetAddress>0x20000000</RamSnippetAddress>\r
<UncachedRange />\r
<BootSegment>2</BootSegment>\r
+ <preserveEEPROM>true</preserveEEPROM>\r
</PropertyGroup>\r
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">\r
<GenerateHexFile>True</GenerateHexFile>\r
#define RTE_COMPONENTS_H\r
\r
\r
+/*\r
+ * Define the Device Header File: \r
+ */\r
+#define CMSIS_device_header "sam.h"\r
+\r
+\r
#endif /* RTE_COMPONENTS_H */\r
<name>C-SPY</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>26</version>\r
+ <version>28</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
</option>\r
<option>\r
<name>MemFile</name>\r
- <state></state>\r
+ <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ATSAMV71Q21.ddf</state>\r
</option>\r
<option>\r
<name>RunToEnable</name>\r
</option>\r
<option>\r
<name>OCLastSavedByProductVersion</name>\r
- <state>7.30.4.8186</state>\r
- </option>\r
- <option>\r
- <name>OCDownloadAttachToProgram</name>\r
- <state>0</state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>UseFlashLoader</name>\r
</option>\r
<option>\r
<name>FlashLoadersV3</name>\r
- <state>$TOOLKIT_DIR$\config\flashloader\</state>\r
+ <state>$TOOLKIT_DIR$\config\flashloader\Atmel\samv71q21\samv71q21-flash.board</state>\r
</option>\r
<option>\r
<name>OCImagesSuppressCheck1</name>\r
<name>OCMulticoreSlaveConfiguration</name>\r
<state></state>\r
</option>\r
+ <option>\r
+ <name>OCDownloadExtraImage</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCAttachSlave</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>CMSISDAP_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>4</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>CMSISDAPAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<name>OCJetEmuParams</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>IJET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>5</version>\r
+ <version>8</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>IjetAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<version>0</version>\r
<state>2</state>\r
</option>\r
+ <option>\r
+ <name>FlashBoardPathSlave</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>JLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>15</version>\r
+ <version>16</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>CCJLinkInterfaceRadio</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>OCJLinkAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>CCJLinkResetList</name>\r
<version>6</version>\r
</option>\r
<option>\r
<name>CCCpuClockEdit</name>\r
- <state></state>\r
+ <state>300.0</state>\r
</option>\r
<option>\r
<name>CCSwoClockAuto</name>\r
<name>PEMICRO_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>1</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>OCPEMicroAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroInterfaceList</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroJtagSpeed</name>\r
- <state>#UNINITIALIZED#</state>\r
- </option>\r
<option>\r
<name>CCJPEMicroShowSettings</name>\r
<state>0</state>\r
<name>LogFile</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
- <option>\r
- <name>CCPEMicroUSBDevice</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroSerialPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJPEMicroTCPIPAutoScanNetwork</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroTCPIP</name>\r
- <state>10.0.0.1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroCommCmdLineProducer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
</data>\r
</settings>\r
<settings>\r
<name>STLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>CCSwoClockEdit</name>\r
<state>2000</state>\r
</option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkDoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkJtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
</data>\r
</settings>\r
<settings>\r
- <name>XDS100_ID</name>\r
+ <name>TIFET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>1</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCXDS100AttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>TIPackageOverride</name>\r
+ <name>CCMSPFetResetList</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>TIPackage</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCXds100InterfaceList</name>\r
- <version>2</version>\r
+ <name>CCMSPFetInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>BoardFile</name>\r
- <state></state>\r
+ <name>CCMSPFetInterfaceCmdLine</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>DoLogfile</name>\r
+ <name>CCMSPFetTargetVccTypeDefault</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>LogFile</name>\r
- <state>$PROJ_DIR$\cspycomm.log</state>\r
+ <name>CCMSPFetTargetVoltage</name>\r
+ <state>###Uninitialized###</state>\r
</option>\r
- </data>\r
- </settings>\r
- <debuggerPlugins>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- </debuggerPlugins>\r
- </configuration>\r
- <configuration>\r
- <name>Release</name>\r
- <toolchain>\r
- <name>ARM</name>\r
- </toolchain>\r
- <debug>0</debug>\r
- <settings>\r
- <name>C-SPY</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>26</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
<option>\r
- <name>CInput</name>\r
+ <name>CCMSPFetVCCDefault</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>CEndian</name>\r
- <state>1</state>\r
+ <name>CCMSPFetTargetSettlingtime</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CProcessor</name>\r
+ <name>CCMSPFetRadioJtagSpeedType</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCVariant</name>\r
+ <name>CCMSPFetConnection</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>MacOverride</name>\r
- <state>0</state>\r
+ <name>CCMSPFetUsbComPort</name>\r
+ <state>Automatic</state>\r
</option>\r
<option>\r
- <name>MacFile</name>\r
- <state></state>\r
+ <name>CCMSPFetAllowAccessToBSL</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>MemOverride</name>\r
+ <name>CCMSPFetDoLogfile</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>MemFile</name>\r
- <state></state>\r
+ <name>CCMSPFetLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>RunToEnable</name>\r
+ <name>CCMSPFetRadioEraseFlash</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>RunToName</name>\r
- <state>main</state>\r
- </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>XDS100_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>5</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>TIPackageOverride</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>TIPackage</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>BoardFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100BreakpointRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100DoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchUndef</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSWI</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchData</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchPrefetch</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchIRQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchFIQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CpuClockEdit</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockAuto</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockEdit</name>\r
+ <state>1000</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100HWResetDelay</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ResetList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100JtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ProbeList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <debuggerPlugins>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
+ <loadFlag>1</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ </debuggerPlugins>\r
+ </configuration>\r
+ <configuration>\r
+ <name>Release</name>\r
+ <toolchain>\r
+ <name>ARM</name>\r
+ </toolchain>\r
+ <debug>0</debug>\r
+ <settings>\r
+ <name>C-SPY</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>28</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>0</debug>\r
+ <option>\r
+ <name>CInput</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CEndian</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CProcessor</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCVariant</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>MacOverride</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>MacFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>MemOverride</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>MemFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>RunToEnable</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>RunToName</name>\r
+ <state>main</state>\r
+ </option>\r
<option>\r
<name>CExtraOptionsCheck</name>\r
<state>0</state>\r
<name>OCLastSavedByProductVersion</name>\r
<state></state>\r
</option>\r
- <option>\r
- <name>OCDownloadAttachToProgram</name>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>UseFlashLoader</name>\r
<state>0</state>\r
<name>OCMulticoreSlaveConfiguration</name>\r
<state></state>\r
</option>\r
+ <option>\r
+ <name>OCDownloadExtraImage</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCAttachSlave</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>CMSISDAP_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>4</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>CMSISDAPAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<name>OCJetEmuParams</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>IJET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>5</version>\r
+ <version>8</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>IjetAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>IjetTraceSizeList</name>\r
- <version>0</version>\r
- <state>2</state>\r
+ <name>IjetTraceSizeList</name>\r
+ <version>0</version>\r
+ <state>2</state>\r
+ </option>\r
+ <option>\r
+ <name>FlashBoardPathSlave</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNoSelect</name>\r
+ <state>0</state>\r
</option>\r
</data>\r
</settings>\r
<name>JLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>15</version>\r
+ <version>16</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>CCJLinkInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>OCJLinkAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>CCJLinkResetList</name>\r
<version>6</version>\r
<name>PEMICRO_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>1</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>OCPEMicroAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroInterfaceList</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroJtagSpeed</name>\r
- <state>#UNINITIALIZED#</state>\r
- </option>\r
<option>\r
<name>CCJPEMicroShowSettings</name>\r
<state>0</state>\r
<name>LogFile</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
- <option>\r
- <name>CCPEMicroUSBDevice</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroSerialPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJPEMicroTCPIPAutoScanNetwork</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroTCPIP</name>\r
- <state>10.0.0.1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroCommCmdLineProducer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
</data>\r
</settings>\r
<settings>\r
<name>STLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>CCSwoClockEdit</name>\r
<state>2000</state>\r
</option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkDoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkJtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
</data>\r
</settings>\r
<settings>\r
- <name>XDS100_ID</name>\r
+ <name>TIFET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>1</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCXDS100AttachSlave</name>\r
+ <name>CCMSPFetResetList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetInterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetInterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetTargetVccTypeDefault</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetTargetVoltage</name>\r
+ <state>###Uninitialized###</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetVCCDefault</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetTargetSettlingtime</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetRadioJtagSpeedType</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>TIPackageOverride</name>\r
+ <name>CCMSPFetConnection</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>TIPackage</name>\r
- <state></state>\r
+ <name>CCMSPFetUsbComPort</name>\r
+ <state>Automatic</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetAllowAccessToBSL</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetDoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetRadioEraseFlash</name>\r
+ <state>1</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>XDS100_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>5</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>0</debug>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCXds100InterfaceList</name>\r
- <version>2</version>\r
+ <name>TIPackageOverride</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>TIPackage</name>\r
+ <state></state>\r
+ </option>\r
<option>\r
<name>BoardFile</name>\r
<state></state>\r
<name>LogFile</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
+ <option>\r
+ <name>CCXds100BreakpointRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100DoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchUndef</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSWI</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchData</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchPrefetch</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchIRQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchFIQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CpuClockEdit</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockAuto</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockEdit</name>\r
+ <state>1000</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100HWResetDelay</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ResetList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100JtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ProbeList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<debuggerPlugins>\r
<file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
<plugin>\r
<file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
<plugin>\r
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
<name>General</name>\r
<archiveVersion>3</archiveVersion>\r
<data>\r
- <version>22</version>\r
+ <version>24</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>ListPath</name>\r
<state>Debug\List</state>\r
</option>\r
- <option>\r
- <name>Variant</name>\r
- <version>21</version>\r
- <state>41</state>\r
- </option>\r
<option>\r
<name>GEndianMode</name>\r
<state>0</state>\r
<name>GOutputBinary</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>FPU</name>\r
- <version>4</version>\r
- <state>9</state>\r
- </option>\r
<option>\r
<name>OGCoreOrChip</name>\r
<state>1</state>\r
</option>\r
<option>\r
<name>OGLastSavedByProductVersion</name>\r
- <state>7.40.1.8463</state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>GeneralEnableMisra</name>\r
<name>RTConfigPath2</name>\r
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>\r
</option>\r
- <option>\r
- <name>GFPUCoreSlave</name>\r
- <version>21</version>\r
- <state>41</state>\r
- </option>\r
<option>\r
<name>GBECoreSlave</name>\r
- <version>21</version>\r
+ <version>24</version>\r
<state>41</state>\r
</option>\r
<option>\r
<name>GRuntimeLibThreads</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>CoreVariant</name>\r
+ <version>24</version>\r
+ <state>41</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUDeviceSlave</name>\r
+ <state>ATSAMV71Q21 Atmel ATSAMV71Q21</state>\r
+ </option>\r
+ <option>\r
+ <name>FPU2</name>\r
+ <version>0</version>\r
+ <state>6</state>\r
+ </option>\r
+ <option>\r
+ <name>NrRegs</name>\r
+ <version>0</version>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>NEON</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUCoreSlave2</name>\r
+ <version>24</version>\r
+ <state>41</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<debug>1</debug>\r
<option>\r
<name>OOCOutputFormat</name>\r
- <version>2</version>\r
- <state>2</state>\r
+ <version>3</version>\r
+ <state>3</state>\r
</option>\r
<option>\r
<name>OCOutputOverride</name>\r
<name>ILINK</name>\r
<archiveVersion>0</archiveVersion>\r
<data>\r
- <version>16</version>\r
+ <version>17</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>IlinkThreadsSlave</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>IlinkLogCallGraph</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>General</name>\r
<archiveVersion>3</archiveVersion>\r
<data>\r
- <version>22</version>\r
+ <version>24</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>ListPath</name>\r
<state>Release\List</state>\r
</option>\r
- <option>\r
- <name>Variant</name>\r
- <version>21</version>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>GEndianMode</name>\r
<state>0</state>\r
<name>GOutputBinary</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>FPU</name>\r
- <version>4</version>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>OGCoreOrChip</name>\r
<state>0</state>\r
</option>\r
<option>\r
<name>OGLastSavedByProductVersion</name>\r
- <state>6.30.1.53141</state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>GeneralEnableMisra</name>\r
<name>RTConfigPath2</name>\r
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>\r
</option>\r
- <option>\r
- <name>GFPUCoreSlave</name>\r
- <version>21</version>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>GBECoreSlave</name>\r
- <version>21</version>\r
+ <version>24</version>\r
<state>0</state>\r
</option>\r
<option>\r
<name>GRuntimeLibThreads</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>CoreVariant</name>\r
+ <version>24</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUDeviceSlave</name>\r
+ <state>default None</state>\r
+ </option>\r
+ <option>\r
+ <name>FPU2</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>NrRegs</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>NEON</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUCoreSlave2</name>\r
+ <version>24</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<debug>0</debug>\r
<option>\r
<name>OOCOutputFormat</name>\r
- <version>2</version>\r
+ <version>3</version>\r
<state>0</state>\r
</option>\r
<option>\r
<name>ILINK</name>\r
<archiveVersion>0</archiveVersion>\r
<data>\r
- <version>16</version>\r
+ <version>17</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>IlinkThreadsSlave</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>IlinkLogCallGraph</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>ARM</name>\r
</toolchain>\r
<debug>1</debug>\r
+ <settings>\r
+ <name>C-STAT</name>\r
+ <archiveVersion>259</archiveVersion>\r
+ <data>\r
+ <version>259</version>\r
+ <cstatargs>\r
+ <useExtraArgs>0</useExtraArgs>\r
+ <extraArgs></extraArgs>\r
+ <analyzeTimeoutEnabled>1</analyzeTimeoutEnabled>\r
+ <analyzeTimeout>600</analyzeTimeout>\r
+ <enableParallel>0</enableParallel>\r
+ <parallelThreads>2</parallelThreads>\r
+ <enableFalsePositives>0</enableFalsePositives>\r
+ <messagesLimitEnabled>1</messagesLimitEnabled>\r
+ <messagesLimit>100</messagesLimit>\r
+ </cstatargs>\r
+ <cstat_settings>\r
+ <cstat_version>1.3.2</cstat_version>\r
+ <checks_tree>\r
+ <package enabled="true" name="STDCHECKS">\r
+ <group enabled="true" name="ARR">\r
+ <check enabled="true" name="ARR-inv-index-pos"/>\r
+ <check enabled="true" name="ARR-inv-index-ptr-pos"/>\r
+ <check enabled="true" name="ARR-inv-index-ptr"/>\r
+ <check enabled="true" name="ARR-inv-index"/>\r
+ <check enabled="true" name="ARR-neg-index"/>\r
+ <check enabled="true" name="ARR-uninit-index"/>\r
+ </group>\r
+ <group enabled="true" name="ATH">\r
+ <check enabled="true" name="ATH-cmp-float"/>\r
+ <check enabled="true" name="ATH-cmp-unsign-neg"/>\r
+ <check enabled="true" name="ATH-cmp-unsign-pos"/>\r
+ <check enabled="true" name="ATH-div-0-assign"/>\r
+ <check enabled="false" name="ATH-div-0-cmp-aft"/>\r
+ <check enabled="true" name="ATH-div-0-cmp-bef"/>\r
+ <check enabled="true" name="ATH-div-0-interval"/>\r
+ <check enabled="true" name="ATH-div-0-pos"/>\r
+ <check enabled="true" name="ATH-div-0-unchk-global"/>\r
+ <check enabled="true" name="ATH-div-0-unchk-local"/>\r
+ <check enabled="true" name="ATH-div-0-unchk-param"/>\r
+ <check enabled="true" name="ATH-div-0"/>\r
+ <check enabled="true" name="ATH-inc-bool"/>\r
+ <check enabled="true" name="ATH-malloc-overrun"/>\r
+ <check enabled="true" name="ATH-neg-check-nonneg"/>\r
+ <check enabled="true" name="ATH-neg-check-pos"/>\r
+ <check enabled="true" name="ATH-new-overrun"/>\r
+ <check enabled="false" name="ATH-overflow-cast"/>\r
+ <check enabled="true" name="ATH-overflow"/>\r
+ <check enabled="true" name="ATH-shift-bounds"/>\r
+ <check enabled="true" name="ATH-shift-neg"/>\r
+ <check enabled="true" name="ATH-sizeof-by-sizeof"/>\r
+ </group>\r
+ <group enabled="true" name="CAST">\r
+ <check enabled="false" name="CAST-old-style"/>\r
+ </group>\r
+ <group enabled="true" name="CATCH">\r
+ <check enabled="true" name="CATCH-object-slicing"/>\r
+ <check enabled="false" name="CATCH-xtor-bad-member"/>\r
+ </group>\r
+ <group enabled="true" name="COMMA">\r
+ <check enabled="false" name="COMMA-overload"/>\r
+ </group>\r
+ <group enabled="true" name="COMMENT">\r
+ <check enabled="true" name="COMMENT-nested"/>\r
+ </group>\r
+ <group enabled="true" name="CONST">\r
+ <check enabled="true" name="CONST-member-ret"/>\r
+ </group>\r
+ <group enabled="true" name="COP">\r
+ <check enabled="false" name="COP-alloc-ctor"/>\r
+ <check enabled="true" name="COP-assign-op-ret"/>\r
+ <check enabled="true" name="COP-assign-op-self"/>\r
+ <check enabled="true" name="COP-assign-op"/>\r
+ <check enabled="true" name="COP-copy-ctor"/>\r
+ <check enabled="false" name="COP-dealloc-dtor"/>\r
+ <check enabled="true" name="COP-dtor-throw"/>\r
+ <check enabled="true" name="COP-dtor"/>\r
+ <check enabled="true" name="COP-init-order"/>\r
+ <check enabled="true" name="COP-init-uninit"/>\r
+ <check enabled="true" name="COP-member-uninit"/>\r
+ </group>\r
+ <group enabled="true" name="CPU">\r
+ <check enabled="true" name="CPU-ctor-call-virt"/>\r
+ <check enabled="false" name="CPU-ctor-implicit"/>\r
+ <check enabled="true" name="CPU-delete-throw"/>\r
+ <check enabled="true" name="CPU-delete-void"/>\r
+ <check enabled="true" name="CPU-dtor-call-virt"/>\r
+ <check enabled="true" name="CPU-malloc-class"/>\r
+ <check enabled="true" name="CPU-nonvirt-dtor"/>\r
+ <check enabled="true" name="CPU-return-ref-to-class-data"/>\r
+ </group>\r
+ <group enabled="true" name="DECL">\r
+ <check enabled="false" name="DECL-implicit-int"/>\r
+ </group>\r
+ <group enabled="true" name="DEFINE">\r
+ <check enabled="true" name="DEFINE-hash-multiple"/>\r
+ </group>\r
+ <group enabled="true" name="ENUM">\r
+ <check enabled="false" name="ENUM-bounds"/>\r
+ </group>\r
+ <group enabled="true" name="EXP">\r
+ <check enabled="true" name="EXP-cond-assign"/>\r
+ <check enabled="true" name="EXP-dangling-else"/>\r
+ <check enabled="true" name="EXP-loop-exit"/>\r
+ <check enabled="false" name="EXP-main-ret-int"/>\r
+ <check enabled="false" name="EXP-null-stmt"/>\r
+ <check enabled="false" name="EXP-stray-semicolon"/>\r
+ </group>\r
+ <group enabled="true" name="EXPR">\r
+ <check enabled="true" name="EXPR-const-overflow"/>\r
+ </group>\r
+ <group enabled="true" name="FPT">\r
+ <check enabled="true" name="FPT-cmp-null"/>\r
+ <check enabled="false" name="FPT-literal"/>\r
+ <check enabled="true" name="FPT-misuse"/>\r
+ </group>\r
+ <group enabled="true" name="FUNC">\r
+ <check enabled="false" name="FUNC-implicit-decl"/>\r
+ <check enabled="false" name="FUNC-unprototyped-all"/>\r
+ <check enabled="true" name="FUNC-unprototyped-used"/>\r
+ </group>\r
+ <group enabled="true" name="INCLUDE">\r
+ <check enabled="false" name="INCLUDE-c-file"/>\r
+ </group>\r
+ <group enabled="true" name="INT">\r
+ <check enabled="false" name="INT-use-signed-as-unsigned-pos"/>\r
+ <check enabled="true" name="INT-use-signed-as-unsigned"/>\r
+ </group>\r
+ <group enabled="true" name="ITR">\r
+ <check enabled="true" name="ITR-end-cmp-aft"/>\r
+ <check enabled="true" name="ITR-end-cmp-bef"/>\r
+ <check enabled="true" name="ITR-invalidated"/>\r
+ <check enabled="false" name="ITR-mismatch-alg"/>\r
+ <check enabled="false" name="ITR-store"/>\r
+ <check enabled="true" name="ITR-uninit"/>\r
+ </group>\r
+ <group enabled="true" name="LIB">\r
+ <check enabled="false" name="LIB-bsearch-overrun-pos"/>\r
+ <check enabled="false" name="LIB-bsearch-overrun"/>\r
+ <check enabled="false" name="LIB-fn-unsafe"/>\r
+ <check enabled="false" name="LIB-fread-overrun-pos"/>\r
+ <check enabled="true" name="LIB-fread-overrun"/>\r
+ <check enabled="false" name="LIB-memchr-overrun-pos"/>\r
+ <check enabled="true" name="LIB-memchr-overrun"/>\r
+ <check enabled="false" name="LIB-memcpy-overrun-pos"/>\r
+ <check enabled="true" name="LIB-memcpy-overrun"/>\r
+ <check enabled="false" name="LIB-memset-overrun-pos"/>\r
+ <check enabled="true" name="LIB-memset-overrun"/>\r
+ <check enabled="false" name="LIB-putenv"/>\r
+ <check enabled="false" name="LIB-qsort-overrun-pos"/>\r
+ <check enabled="false" name="LIB-qsort-overrun"/>\r
+ <check enabled="true" name="LIB-return-const"/>\r
+ <check enabled="true" name="LIB-return-error"/>\r
+ <check enabled="true" name="LIB-return-leak"/>\r
+ <check enabled="true" name="LIB-return-neg"/>\r
+ <check enabled="true" name="LIB-return-null"/>\r
+ <check enabled="false" name="LIB-sprintf-overrun"/>\r
+ <check enabled="false" name="LIB-std-sort-overrun-pos"/>\r
+ <check enabled="true" name="LIB-std-sort-overrun"/>\r
+ <check enabled="false" name="LIB-strcat-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strcat-overrun"/>\r
+ <check enabled="false" name="LIB-strcpy-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strcpy-overrun"/>\r
+ <check enabled="false" name="LIB-strncat-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strncat-overrun"/>\r
+ <check enabled="false" name="LIB-strncmp-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strncmp-overrun"/>\r
+ <check enabled="false" name="LIB-strncpy-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strncpy-overrun"/>\r
+ </group>\r
+ <group enabled="true" name="LOGIC">\r
+ <check enabled="false" name="LOGIC-overload"/>\r
+ </group>\r
+ <group enabled="true" name="MEM">\r
+ <check enabled="true" name="MEM-delete-array-op"/>\r
+ <check enabled="true" name="MEM-delete-op"/>\r
+ <check enabled="true" name="MEM-double-free-alias"/>\r
+ <check enabled="true" name="MEM-double-free-some"/>\r
+ <check enabled="true" name="MEM-double-free"/>\r
+ <check enabled="true" name="MEM-free-field"/>\r
+ <check enabled="true" name="MEM-free-fptr"/>\r
+ <check enabled="false" name="MEM-free-no-alloc-struct"/>\r
+ <check enabled="false" name="MEM-free-no-alloc"/>\r
+ <check enabled="true" name="MEM-free-no-use"/>\r
+ <check enabled="true" name="MEM-free-op"/>\r
+ <check enabled="true" name="MEM-free-struct-field"/>\r
+ <check enabled="true" name="MEM-free-variable-alias"/>\r
+ <check enabled="true" name="MEM-free-variable"/>\r
+ <check enabled="true" name="MEM-leak-alias"/>\r
+ <check enabled="false" name="MEM-leak"/>\r
+ <check enabled="false" name="MEM-malloc-arith"/>\r
+ <check enabled="true" name="MEM-malloc-diff-type"/>\r
+ <check enabled="true" name="MEM-malloc-sizeof-ptr"/>\r
+ <check enabled="true" name="MEM-malloc-sizeof"/>\r
+ <check enabled="false" name="MEM-malloc-strlen"/>\r
+ <check enabled="true" name="MEM-realloc-diff-type"/>\r
+ <check enabled="true" name="MEM-return-free"/>\r
+ <check enabled="true" name="MEM-return-no-assign"/>\r
+ <check enabled="true" name="MEM-stack-global-field"/>\r
+ <check enabled="true" name="MEM-stack-global"/>\r
+ <check enabled="true" name="MEM-stack-param-ref"/>\r
+ <check enabled="true" name="MEM-stack-param"/>\r
+ <check enabled="true" name="MEM-stack-pos"/>\r
+ <check enabled="true" name="MEM-stack-ref"/>\r
+ <check enabled="true" name="MEM-stack"/>\r
+ <check enabled="true" name="MEM-use-free-all"/>\r
+ <check enabled="true" name="MEM-use-free-some"/>\r
+ </group>\r
+ <group enabled="true" name="PTR">\r
+ <check enabled="true" name="PTR-arith-field"/>\r
+ <check enabled="true" name="PTR-arith-stack"/>\r
+ <check enabled="true" name="PTR-arith-var"/>\r
+ <check enabled="true" name="PTR-cmp-str-lit"/>\r
+ <check enabled="false" name="PTR-null-assign-fun-pos"/>\r
+ <check enabled="false" name="PTR-null-assign-pos"/>\r
+ <check enabled="true" name="PTR-null-assign"/>\r
+ <check enabled="true" name="PTR-null-cmp-aft"/>\r
+ <check enabled="true" name="PTR-null-cmp-bef-fun"/>\r
+ <check enabled="true" name="PTR-null-cmp-bef"/>\r
+ <check enabled="true" name="PTR-null-fun-pos"/>\r
+ <check enabled="false" name="PTR-null-literal-pos"/>\r
+ <check enabled="false" name="PTR-overload"/>\r
+ <check enabled="false" name="PTR-singleton-arith-pos"/>\r
+ <check enabled="true" name="PTR-singleton-arith"/>\r
+ <check enabled="true" name="PTR-unchk-param-some"/>\r
+ <check enabled="false" name="PTR-unchk-param"/>\r
+ <check enabled="false" name="PTR-uninit-pos"/>\r
+ <check enabled="true" name="PTR-uninit"/>\r
+ </group>\r
+ <group enabled="true" name="RED">\r
+ <check enabled="false" name="RED-alloc-zero-bytes"/>\r
+ <check enabled="false" name="RED-case-reach"/>\r
+ <check enabled="false" name="RED-cmp-always"/>\r
+ <check enabled="false" name="RED-cmp-never"/>\r
+ <check enabled="false" name="RED-cond-always"/>\r
+ <check enabled="true" name="RED-cond-const-assign"/>\r
+ <check enabled="false" name="RED-cond-const-expr"/>\r
+ <check enabled="false" name="RED-cond-const"/>\r
+ <check enabled="false" name="RED-cond-never"/>\r
+ <check enabled="true" name="RED-dead"/>\r
+ <check enabled="false" name="RED-expr"/>\r
+ <check enabled="false" name="RED-func-no-effect"/>\r
+ <check enabled="true" name="RED-local-hides-global"/>\r
+ <check enabled="false" name="RED-local-hides-local"/>\r
+ <check enabled="false" name="RED-local-hides-member"/>\r
+ <check enabled="true" name="RED-local-hides-param"/>\r
+ <check enabled="false" name="RED-no-effect"/>\r
+ <check enabled="true" name="RED-self-assign"/>\r
+ <check enabled="true" name="RED-unused-assign"/>\r
+ <check enabled="false" name="RED-unused-param"/>\r
+ <check enabled="false" name="RED-unused-return-val"/>\r
+ <check enabled="false" name="RED-unused-val"/>\r
+ <check enabled="true" name="RED-unused-var-all"/>\r
+ </group>\r
+ <group enabled="true" name="RESOURCE">\r
+ <check enabled="false" name="RESOURCE-deref-file"/>\r
+ <check enabled="true" name="RESOURCE-double-close"/>\r
+ <check enabled="true" name="RESOURCE-file-no-close-all"/>\r
+ <check enabled="false" name="RESOURCE-file-pos-neg"/>\r
+ <check enabled="true" name="RESOURCE-file-use-after-close"/>\r
+ <check enabled="false" name="RESOURCE-implicit-deref-file"/>\r
+ <check enabled="true" name="RESOURCE-write-ronly-file"/>\r
+ </group>\r
+ <group enabled="true" name="SIZEOF">\r
+ <check enabled="true" name="SIZEOF-side-effect"/>\r
+ </group>\r
+ <group enabled="true" name="SPC">\r
+ <check enabled="true" name="SPC-order"/>\r
+ <check enabled="false" name="SPC-uninit-arr-all"/>\r
+ <check enabled="true" name="SPC-uninit-struct-field-heap"/>\r
+ <check enabled="false" name="SPC-uninit-struct-field"/>\r
+ <check enabled="true" name="SPC-uninit-struct"/>\r
+ <check enabled="true" name="SPC-uninit-var-all"/>\r
+ <check enabled="true" name="SPC-uninit-var-some"/>\r
+ <check enabled="false" name="SPC-volatile-reads"/>\r
+ <check enabled="false" name="SPC-volatile-writes"/>\r
+ </group>\r
+ <group enabled="true" name="STRUCT">\r
+ <check enabled="false" name="STRUCT-signed-bit"/>\r
+ </group>\r
+ <group enabled="true" name="SWITCH">\r
+ <check enabled="true" name="SWITCH-fall-through"/>\r
+ </group>\r
+ <group enabled="true" name="THROW">\r
+ <check enabled="false" name="THROW-empty"/>\r
+ <check enabled="false" name="THROW-main"/>\r
+ <check enabled="true" name="THROW-null"/>\r
+ <check enabled="true" name="THROW-ptr"/>\r
+ <check enabled="true" name="THROW-static"/>\r
+ <check enabled="true" name="THROW-unhandled"/>\r
+ </group>\r
+ <group enabled="true" name="UNION">\r
+ <check enabled="true" name="UNION-overlap-assign"/>\r
+ <check enabled="true" name="UNION-type-punning"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="CERT">\r
+ <group enabled="true" name="CERT-EXP">\r
+ <check enabled="true" name="CERT-EXP19-C"/>\r
+ </group>\r
+ <group enabled="true" name="CERT-FIO">\r
+ <check enabled="true" name="CERT-FIO37-C"/>\r
+ <check enabled="true" name="CERT-FIO38-C"/>\r
+ </group>\r
+ <group enabled="true" name="CERT-SIG">\r
+ <check enabled="true" name="CERT-SIG31-C"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="SECURITY">\r
+ <group enabled="true" name="SEC-BUFFER">\r
+ <check enabled="true" name="SEC-BUFFER-memory-leak-alias"/>\r
+ <check enabled="false" name="SEC-BUFFER-memory-leak"/>\r
+ <check enabled="false" name="SEC-BUFFER-memset-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-memset-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-qsort-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-qsort-overrun"/>\r
+ <check enabled="true" name="SEC-BUFFER-sprintf-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-std-sort-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-std-sort-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strcat-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strcat-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strcpy-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strcpy-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strncat-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strncat-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strncmp-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strncmp-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strncpy-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strncpy-overrun"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-alloc-size"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-copy-length"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-copy"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-index"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-offset"/>\r
+ <check enabled="true" name="SEC-BUFFER-use-after-free-all"/>\r
+ <check enabled="true" name="SEC-BUFFER-use-after-free-some"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-DIV-0">\r
+ <check enabled="true" name="SEC-DIV-0-compare-after"/>\r
+ <check enabled="true" name="SEC-DIV-0-compare-before"/>\r
+ <check enabled="true" name="SEC-DIV-0-tainted"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-FILEOP">\r
+ <check enabled="true" name="SEC-FILEOP-open-no-close"/>\r
+ <check enabled="false" name="SEC-FILEOP-path-traversal"/>\r
+ <check enabled="true" name="SEC-FILEOP-use-after-close"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-INJECTION">\r
+ <check enabled="false" name="SEC-INJECTION-sql"/>\r
+ <check enabled="false" name="SEC-INJECTION-xpath"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-LOOP">\r
+ <check enabled="true" name="SEC-LOOP-tainted-bound"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-NULL">\r
+ <check enabled="false" name="SEC-NULL-assignment-fun-pos"/>\r
+ <check enabled="true" name="SEC-NULL-assignment"/>\r
+ <check enabled="true" name="SEC-NULL-cmp-aft"/>\r
+ <check enabled="true" name="SEC-NULL-cmp-bef-fun"/>\r
+ <check enabled="true" name="SEC-NULL-cmp-bef"/>\r
+ <check enabled="false" name="SEC-NULL-literal-pos"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-STRING">\r
+ <check enabled="true" name="SEC-STRING-format-string"/>\r
+ <check enabled="false" name="SEC-STRING-hard-coded-credentials"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="MISRAC2004">\r
+ <group enabled="true" name="MISRAC2004-1">\r
+ <check enabled="true" name="MISRAC2004-1.1"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_c"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_d"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_e"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_f"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_g"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_h"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_i"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_j"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-2">\r
+ <check enabled="true" name="MISRAC2004-2.1"/>\r
+ <check enabled="true" name="MISRAC2004-2.2"/>\r
+ <check enabled="true" name="MISRAC2004-2.3"/>\r
+ <check enabled="false" name="MISRAC2004-2.4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-5">\r
+ <check enabled="true" name="MISRAC2004-5.2"/>\r
+ <check enabled="true" name="MISRAC2004-5.3"/>\r
+ <check enabled="true" name="MISRAC2004-5.4"/>\r
+ <check enabled="false" name="MISRAC2004-5.5"/>\r
+ <check enabled="false" name="MISRAC2004-5.6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-6">\r
+ <check enabled="true" name="MISRAC2004-6.1"/>\r
+ <check enabled="false" name="MISRAC2004-6.3"/>\r
+ <check enabled="true" name="MISRAC2004-6.4"/>\r
+ <check enabled="true" name="MISRAC2004-6.5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-7">\r
+ <check enabled="true" name="MISRAC2004-7.1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-8">\r
+ <check enabled="true" name="MISRAC2004-8.1"/>\r
+ <check enabled="true" name="MISRAC2004-8.2"/>\r
+ <check enabled="true" name="MISRAC2004-8.5_a"/>\r
+ <check enabled="true" name="MISRAC2004-8.5_b"/>\r
+ <check enabled="true" name="MISRAC2004-8.12"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-9">\r
+ <check enabled="true" name="MISRAC2004-9.1_a"/>\r
+ <check enabled="true" name="MISRAC2004-9.1_b"/>\r
+ <check enabled="true" name="MISRAC2004-9.1_c"/>\r
+ <check enabled="true" name="MISRAC2004-9.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-10">\r
+ <check enabled="true" name="MISRAC2004-10.1_a"/>\r
+ <check enabled="true" name="MISRAC2004-10.1_b"/>\r
+ <check enabled="true" name="MISRAC2004-10.1_c"/>\r
+ <check enabled="true" name="MISRAC2004-10.1_d"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_c"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_d"/>\r
+ <check enabled="true" name="MISRAC2004-10.3"/>\r
+ <check enabled="true" name="MISRAC2004-10.4"/>\r
+ <check enabled="true" name="MISRAC2004-10.5"/>\r
+ <check enabled="true" name="MISRAC2004-10.6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-11">\r
+ <check enabled="true" name="MISRAC2004-11.1"/>\r
+ <check enabled="false" name="MISRAC2004-11.3"/>\r
+ <check enabled="false" name="MISRAC2004-11.4"/>\r
+ <check enabled="true" name="MISRAC2004-11.5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-12">\r
+ <check enabled="false" name="MISRAC2004-12.1"/>\r
+ <check enabled="true" name="MISRAC2004-12.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-12.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-12.2_c"/>\r
+ <check enabled="true" name="MISRAC2004-12.3"/>\r
+ <check enabled="true" name="MISRAC2004-12.4"/>\r
+ <check enabled="false" name="MISRAC2004-12.6_a"/>\r
+ <check enabled="false" name="MISRAC2004-12.6_b"/>\r
+ <check enabled="true" name="MISRAC2004-12.7"/>\r
+ <check enabled="true" name="MISRAC2004-12.8"/>\r
+ <check enabled="true" name="MISRAC2004-12.9"/>\r
+ <check enabled="true" name="MISRAC2004-12.10"/>\r
+ <check enabled="false" name="MISRAC2004-12.11"/>\r
+ <check enabled="true" name="MISRAC2004-12.12_a"/>\r
+ <check enabled="true" name="MISRAC2004-12.12_b"/>\r
+ <check enabled="false" name="MISRAC2004-12.13"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-13">\r
+ <check enabled="true" name="MISRAC2004-13.1"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_a"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_b"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_c"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_d"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_e"/>\r
+ <check enabled="true" name="MISRAC2004-13.3"/>\r
+ <check enabled="true" name="MISRAC2004-13.4"/>\r
+ <check enabled="true" name="MISRAC2004-13.5"/>\r
+ <check enabled="true" name="MISRAC2004-13.6"/>\r
+ <check enabled="true" name="MISRAC2004-13.7_a"/>\r
+ <check enabled="true" name="MISRAC2004-13.7_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-14">\r
+ <check enabled="true" name="MISRAC2004-14.1"/>\r
+ <check enabled="true" name="MISRAC2004-14.2"/>\r
+ <check enabled="true" name="MISRAC2004-14.3"/>\r
+ <check enabled="true" name="MISRAC2004-14.4"/>\r
+ <check enabled="true" name="MISRAC2004-14.5"/>\r
+ <check enabled="true" name="MISRAC2004-14.6"/>\r
+ <check enabled="true" name="MISRAC2004-14.7"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_a"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_b"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_c"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_d"/>\r
+ <check enabled="true" name="MISRAC2004-14.9"/>\r
+ <check enabled="true" name="MISRAC2004-14.10"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-15">\r
+ <check enabled="true" name="MISRAC2004-15.0"/>\r
+ <check enabled="true" name="MISRAC2004-15.1"/>\r
+ <check enabled="true" name="MISRAC2004-15.2"/>\r
+ <check enabled="true" name="MISRAC2004-15.3"/>\r
+ <check enabled="true" name="MISRAC2004-15.4"/>\r
+ <check enabled="true" name="MISRAC2004-15.5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-16">\r
+ <check enabled="true" name="MISRAC2004-16.1"/>\r
+ <check enabled="true" name="MISRAC2004-16.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-16.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-16.3"/>\r
+ <check enabled="true" name="MISRAC2004-16.5"/>\r
+ <check enabled="true" name="MISRAC2004-16.7"/>\r
+ <check enabled="true" name="MISRAC2004-16.8"/>\r
+ <check enabled="true" name="MISRAC2004-16.9"/>\r
+ <check enabled="true" name="MISRAC2004-16.10"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-17">\r
+ <check enabled="true" name="MISRAC2004-17.1_a"/>\r
+ <check enabled="true" name="MISRAC2004-17.1_b"/>\r
+ <check enabled="true" name="MISRAC2004-17.1_c"/>\r
+ <check enabled="true" name="MISRAC2004-17.4_a"/>\r
+ <check enabled="true" name="MISRAC2004-17.4_b"/>\r
+ <check enabled="true" name="MISRAC2004-17.5"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_a"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_b"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_c"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_d"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-18">\r
+ <check enabled="true" name="MISRAC2004-18.1"/>\r
+ <check enabled="true" name="MISRAC2004-18.2"/>\r
+ <check enabled="true" name="MISRAC2004-18.4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-19">\r
+ <check enabled="false" name="MISRAC2004-19.2"/>\r
+ <check enabled="true" name="MISRAC2004-19.6"/>\r
+ <check enabled="false" name="MISRAC2004-19.7"/>\r
+ <check enabled="true" name="MISRAC2004-19.12"/>\r
+ <check enabled="false" name="MISRAC2004-19.13"/>\r
+ <check enabled="true" name="MISRAC2004-19.15"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-20">\r
+ <check enabled="true" name="MISRAC2004-20.1"/>\r
+ <check enabled="true" name="MISRAC2004-20.4"/>\r
+ <check enabled="true" name="MISRAC2004-20.5"/>\r
+ <check enabled="true" name="MISRAC2004-20.6"/>\r
+ <check enabled="true" name="MISRAC2004-20.7"/>\r
+ <check enabled="true" name="MISRAC2004-20.8"/>\r
+ <check enabled="true" name="MISRAC2004-20.9"/>\r
+ <check enabled="true" name="MISRAC2004-20.10"/>\r
+ <check enabled="true" name="MISRAC2004-20.11"/>\r
+ <check enabled="true" name="MISRAC2004-20.12"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="MISRAC2012">\r
+ <group enabled="true" name="MISRAC2012-Dir-4">\r
+ <check enabled="true" name="MISRAC2012-Dir-4.3"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.4"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.5"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.6_a"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.6_b"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.7_a"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.7_b"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.7_c"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.8"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.9"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.10"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_a"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_b"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_c"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_d"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_e"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_f"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_g"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_h"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_i"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.12"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_b"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_c"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_d"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_e"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_f"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_g"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.13_h"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-1">\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_e"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_f"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_g"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_h"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_i"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_j"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_k"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_m"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_n"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_o"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_p"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_q"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_r"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_s"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_t"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_u"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_v"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_w"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-2">\r
+ <check enabled="true" name="MISRAC2012-Rule-2.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.2_c"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.5"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.6"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.7"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-3">\r
+ <check enabled="true" name="MISRAC2012-Rule-3.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-3.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-5">\r
+ <check enabled="true" name="MISRAC2012-Rule-5.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.2_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.2_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.3_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.3_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.4_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.4_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.5_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.5_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.8"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-5.9"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-6">\r
+ <check enabled="true" name="MISRAC2012-Rule-6.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-6.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-7">\r
+ <check enabled="true" name="MISRAC2012-Rule-7.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.4_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.4_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-8">\r
+ <check enabled="true" name="MISRAC2012-Rule-8.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.3_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.5_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.5_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.6"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.7"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.9_a"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.9_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.10"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.11"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.12"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.13"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.14"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-9">\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_e"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_f"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.5_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.5_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-10">\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R8"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.4_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.4_b"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-10.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-11">\r
+ <check enabled="true" name="MISRAC2012-Rule-11.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-11.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-11.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.8"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.9"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-12">\r
+ <check enabled="false" name="MISRAC2012-Rule-12.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-12.2"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-12.3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-13">\r
+ <check enabled="true" name="MISRAC2012-Rule-13.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.2_c"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-13.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-13.4_a"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-13.4_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-14">\r
+ <check enabled="true" name="MISRAC2012-Rule-14.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.3_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.3_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_d"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-15">\r
+ <check enabled="false" name="MISRAC2012-Rule-15.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-15.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-15.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_e"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.7"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-16">\r
+ <check enabled="true" name="MISRAC2012-Rule-16.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.7"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-17">\r
+ <check enabled="true" name="MISRAC2012-Rule-17.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-17.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.7"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-17.8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-18">\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-18.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-19">\r
+ <check enabled="true" name="MISRAC2012-Rule-19.1"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-19.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-20">\r
+ <check enabled="false" name="MISRAC2012-Rule-20.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.4_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.4_c99"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-20.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.7"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-20.10"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-21">\r
+ <check enabled="true" name="MISRAC2012-Rule-21.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.8"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.9"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.10"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.11"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-21.12_a"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-21.12_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-22">\r
+ <check enabled="true" name="MISRAC2012-Rule-22.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.2_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.5_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.5_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.6"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="MISRAC++2008">\r
+ <group enabled="true" name="MISRAC++2008-0-1">\r
+ <check enabled="true" name="MISRAC++2008-0-1-1"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-2_a"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-2_b"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-2_c"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-3"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-4_a"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-4_b"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-6"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-7"/>\r
+ <check enabled="false" name="MISRAC++2008-0-1-8"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-9"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-11"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-0-2">\r
+ <check enabled="true" name="MISRAC++2008-0-2-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-0-3">\r
+ <check enabled="true" name="MISRAC++2008-0-3-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-2-7">\r
+ <check enabled="true" name="MISRAC++2008-2-7-1"/>\r
+ <check enabled="true" name="MISRAC++2008-2-7-2"/>\r
+ <check enabled="false" name="MISRAC++2008-2-7-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-2-10">\r
+ <check enabled="true" name="MISRAC++2008-2-10-1"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-2"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-3"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-4"/>\r
+ <check enabled="false" name="MISRAC++2008-2-10-5"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-2-13">\r
+ <check enabled="true" name="MISRAC++2008-2-13-2"/>\r
+ <check enabled="true" name="MISRAC++2008-2-13-3"/>\r
+ <check enabled="true" name="MISRAC++2008-2-13-4_a"/>\r
+ <check enabled="true" name="MISRAC++2008-2-13-4_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-3-1">\r
+ <check enabled="true" name="MISRAC++2008-3-1-1"/>\r
+ <check enabled="true" name="MISRAC++2008-3-1-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-3-9">\r
+ <check enabled="false" name="MISRAC++2008-3-9-2"/>\r
+ <check enabled="true" name="MISRAC++2008-3-9-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-4-5">\r
+ <check enabled="true" name="MISRAC++2008-4-5-1"/>\r
+ <check enabled="true" name="MISRAC++2008-4-5-2"/>\r
+ <check enabled="true" name="MISRAC++2008-4-5-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-0">\r
+ <check enabled="true" name="MISRAC++2008-5-0-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-1_c"/>\r
+ <check enabled="false" name="MISRAC++2008-5-0-2"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-4"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-5"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-6"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-7"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-8"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-9"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-10"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_c"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_d"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-14"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-15_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-15_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_c"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_d"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_e"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_f"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-19"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-21"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-2">\r
+ <check enabled="true" name="MISRAC++2008-5-2-4"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-5"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-6"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-7"/>\r
+ <check enabled="false" name="MISRAC++2008-5-2-9"/>\r
+ <check enabled="false" name="MISRAC++2008-5-2-10"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-11_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-11_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-3">\r
+ <check enabled="true" name="MISRAC++2008-5-3-1"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-2_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-2_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-3"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-8">\r
+ <check enabled="true" name="MISRAC++2008-5-8-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-14">\r
+ <check enabled="true" name="MISRAC++2008-5-14-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-18">\r
+ <check enabled="true" name="MISRAC++2008-5-18-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-19">\r
+ <check enabled="false" name="MISRAC++2008-5-19-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-2">\r
+ <check enabled="true" name="MISRAC++2008-6-2-1"/>\r
+ <check enabled="true" name="MISRAC++2008-6-2-2"/>\r
+ <check enabled="false" name="MISRAC++2008-6-2-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-3">\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_c"/>\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_d"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-4">\r
+ <check enabled="true" name="MISRAC++2008-6-4-1"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-2"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-3"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-4"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-5"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-6"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-7"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-5">\r
+ <check enabled="true" name="MISRAC++2008-6-5-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-2"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-3"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-4"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-6">\r
+ <check enabled="true" name="MISRAC++2008-6-6-1"/>\r
+ <check enabled="true" name="MISRAC++2008-6-6-2"/>\r
+ <check enabled="true" name="MISRAC++2008-6-6-4"/>\r
+ <check enabled="true" name="MISRAC++2008-6-6-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-1">\r
+ <check enabled="true" name="MISRAC++2008-7-1-1"/>\r
+ <check enabled="true" name="MISRAC++2008-7-1-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-2">\r
+ <check enabled="true" name="MISRAC++2008-7-2-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-4">\r
+ <check enabled="true" name="MISRAC++2008-7-4-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-5">\r
+ <check enabled="true" name="MISRAC++2008-7-5-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_a"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_b"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_c"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_d"/>\r
+ <check enabled="false" name="MISRAC++2008-7-5-4_a"/>\r
+ <check enabled="false" name="MISRAC++2008-7-5-4_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-8-0">\r
+ <check enabled="true" name="MISRAC++2008-8-0-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-8-4">\r
+ <check enabled="true" name="MISRAC++2008-8-4-1"/>\r
+ <check enabled="true" name="MISRAC++2008-8-4-3"/>\r
+ <check enabled="true" name="MISRAC++2008-8-4-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-8-5">\r
+ <check enabled="true" name="MISRAC++2008-8-5-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-8-5-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-8-5-1_c"/>\r
+ <check enabled="true" name="MISRAC++2008-8-5-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-9-3">\r
+ <check enabled="true" name="MISRAC++2008-9-3-1"/>\r
+ <check enabled="true" name="MISRAC++2008-9-3-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-9-5">\r
+ <check enabled="true" name="MISRAC++2008-9-5-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-9-6">\r
+ <check enabled="true" name="MISRAC++2008-9-6-2"/>\r
+ <check enabled="true" name="MISRAC++2008-9-6-3"/>\r
+ <check enabled="true" name="MISRAC++2008-9-6-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-12-1">\r
+ <check enabled="true" name="MISRAC++2008-12-1-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-12-1-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-12-1-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-0">\r
+ <check enabled="false" name="MISRAC++2008-15-0-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-1">\r
+ <check enabled="true" name="MISRAC++2008-15-1-2"/>\r
+ <check enabled="true" name="MISRAC++2008-15-1-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-3">\r
+ <check enabled="true" name="MISRAC++2008-15-3-1"/>\r
+ <check enabled="false" name="MISRAC++2008-15-3-2"/>\r
+ <check enabled="true" name="MISRAC++2008-15-3-3"/>\r
+ <check enabled="true" name="MISRAC++2008-15-3-4"/>\r
+ <check enabled="true" name="MISRAC++2008-15-3-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-5">\r
+ <check enabled="true" name="MISRAC++2008-15-5-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-16-0">\r
+ <check enabled="true" name="MISRAC++2008-16-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-16-0-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-16-2">\r
+ <check enabled="true" name="MISRAC++2008-16-2-2"/>\r
+ <check enabled="true" name="MISRAC++2008-16-2-3"/>\r
+ <check enabled="true" name="MISRAC++2008-16-2-4"/>\r
+ <check enabled="false" name="MISRAC++2008-16-2-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-16-3">\r
+ <check enabled="true" name="MISRAC++2008-16-3-1"/>\r
+ <check enabled="false" name="MISRAC++2008-16-3-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-17-0">\r
+ <check enabled="true" name="MISRAC++2008-17-0-1"/>\r
+ <check enabled="true" name="MISRAC++2008-17-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-17-0-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-0">\r
+ <check enabled="true" name="MISRAC++2008-18-0-1"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-2"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-4"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-2">\r
+ <check enabled="true" name="MISRAC++2008-18-2-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-4">\r
+ <check enabled="true" name="MISRAC++2008-18-4-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-7">\r
+ <check enabled="true" name="MISRAC++2008-18-7-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-19-3">\r
+ <check enabled="true" name="MISRAC++2008-19-3-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-27-0">\r
+ <check enabled="true" name="MISRAC++2008-27-0-1"/>\r
+ </group>\r
+ </package>\r
+ </checks_tree>\r
+ </cstat_settings>\r
+ </data>\r
+ </settings>\r
<settings>\r
<name>RuntimeChecking</name>\r
<archiveVersion>0</archiveVersion>\r
<name>ARM</name>\r
</toolchain>\r
<debug>0</debug>\r
+ <settings>\r
+ <name>C-STAT</name>\r
+ <archiveVersion>259</archiveVersion>\r
+ <data>\r
+ <version>259</version>\r
+ <cstatargs>\r
+ <useExtraArgs>0</useExtraArgs>\r
+ <extraArgs></extraArgs>\r
+ <analyzeTimeoutEnabled>1</analyzeTimeoutEnabled>\r
+ <analyzeTimeout>600</analyzeTimeout>\r
+ <enableParallel>0</enableParallel>\r
+ <parallelThreads>2</parallelThreads>\r
+ <enableFalsePositives>0</enableFalsePositives>\r
+ <messagesLimitEnabled>1</messagesLimitEnabled>\r
+ <messagesLimit>100</messagesLimit>\r
+ </cstatargs>\r
+ <cstat_settings>\r
+ <cstat_version>1.3.2</cstat_version>\r
+ <checks_tree>\r
+ <package enabled="true" name="STDCHECKS">\r
+ <group enabled="true" name="ARR">\r
+ <check enabled="true" name="ARR-inv-index-pos"/>\r
+ <check enabled="true" name="ARR-inv-index-ptr-pos"/>\r
+ <check enabled="true" name="ARR-inv-index-ptr"/>\r
+ <check enabled="true" name="ARR-inv-index"/>\r
+ <check enabled="true" name="ARR-neg-index"/>\r
+ <check enabled="true" name="ARR-uninit-index"/>\r
+ </group>\r
+ <group enabled="true" name="ATH">\r
+ <check enabled="true" name="ATH-cmp-float"/>\r
+ <check enabled="true" name="ATH-cmp-unsign-neg"/>\r
+ <check enabled="true" name="ATH-cmp-unsign-pos"/>\r
+ <check enabled="true" name="ATH-div-0-assign"/>\r
+ <check enabled="false" name="ATH-div-0-cmp-aft"/>\r
+ <check enabled="true" name="ATH-div-0-cmp-bef"/>\r
+ <check enabled="true" name="ATH-div-0-interval"/>\r
+ <check enabled="true" name="ATH-div-0-pos"/>\r
+ <check enabled="true" name="ATH-div-0-unchk-global"/>\r
+ <check enabled="true" name="ATH-div-0-unchk-local"/>\r
+ <check enabled="true" name="ATH-div-0-unchk-param"/>\r
+ <check enabled="true" name="ATH-div-0"/>\r
+ <check enabled="true" name="ATH-inc-bool"/>\r
+ <check enabled="true" name="ATH-malloc-overrun"/>\r
+ <check enabled="true" name="ATH-neg-check-nonneg"/>\r
+ <check enabled="true" name="ATH-neg-check-pos"/>\r
+ <check enabled="true" name="ATH-new-overrun"/>\r
+ <check enabled="false" name="ATH-overflow-cast"/>\r
+ <check enabled="true" name="ATH-overflow"/>\r
+ <check enabled="true" name="ATH-shift-bounds"/>\r
+ <check enabled="true" name="ATH-shift-neg"/>\r
+ <check enabled="true" name="ATH-sizeof-by-sizeof"/>\r
+ </group>\r
+ <group enabled="true" name="CAST">\r
+ <check enabled="false" name="CAST-old-style"/>\r
+ </group>\r
+ <group enabled="true" name="CATCH">\r
+ <check enabled="true" name="CATCH-object-slicing"/>\r
+ <check enabled="false" name="CATCH-xtor-bad-member"/>\r
+ </group>\r
+ <group enabled="true" name="COMMA">\r
+ <check enabled="false" name="COMMA-overload"/>\r
+ </group>\r
+ <group enabled="true" name="COMMENT">\r
+ <check enabled="true" name="COMMENT-nested"/>\r
+ </group>\r
+ <group enabled="true" name="CONST">\r
+ <check enabled="true" name="CONST-member-ret"/>\r
+ </group>\r
+ <group enabled="true" name="COP">\r
+ <check enabled="false" name="COP-alloc-ctor"/>\r
+ <check enabled="true" name="COP-assign-op-ret"/>\r
+ <check enabled="true" name="COP-assign-op-self"/>\r
+ <check enabled="true" name="COP-assign-op"/>\r
+ <check enabled="true" name="COP-copy-ctor"/>\r
+ <check enabled="false" name="COP-dealloc-dtor"/>\r
+ <check enabled="true" name="COP-dtor-throw"/>\r
+ <check enabled="true" name="COP-dtor"/>\r
+ <check enabled="true" name="COP-init-order"/>\r
+ <check enabled="true" name="COP-init-uninit"/>\r
+ <check enabled="true" name="COP-member-uninit"/>\r
+ </group>\r
+ <group enabled="true" name="CPU">\r
+ <check enabled="true" name="CPU-ctor-call-virt"/>\r
+ <check enabled="false" name="CPU-ctor-implicit"/>\r
+ <check enabled="true" name="CPU-delete-throw"/>\r
+ <check enabled="true" name="CPU-delete-void"/>\r
+ <check enabled="true" name="CPU-dtor-call-virt"/>\r
+ <check enabled="true" name="CPU-malloc-class"/>\r
+ <check enabled="true" name="CPU-nonvirt-dtor"/>\r
+ <check enabled="true" name="CPU-return-ref-to-class-data"/>\r
+ </group>\r
+ <group enabled="true" name="DECL">\r
+ <check enabled="false" name="DECL-implicit-int"/>\r
+ </group>\r
+ <group enabled="true" name="DEFINE">\r
+ <check enabled="true" name="DEFINE-hash-multiple"/>\r
+ </group>\r
+ <group enabled="true" name="ENUM">\r
+ <check enabled="false" name="ENUM-bounds"/>\r
+ </group>\r
+ <group enabled="true" name="EXP">\r
+ <check enabled="true" name="EXP-cond-assign"/>\r
+ <check enabled="true" name="EXP-dangling-else"/>\r
+ <check enabled="true" name="EXP-loop-exit"/>\r
+ <check enabled="false" name="EXP-main-ret-int"/>\r
+ <check enabled="false" name="EXP-null-stmt"/>\r
+ <check enabled="false" name="EXP-stray-semicolon"/>\r
+ </group>\r
+ <group enabled="true" name="EXPR">\r
+ <check enabled="true" name="EXPR-const-overflow"/>\r
+ </group>\r
+ <group enabled="true" name="FPT">\r
+ <check enabled="true" name="FPT-cmp-null"/>\r
+ <check enabled="false" name="FPT-literal"/>\r
+ <check enabled="true" name="FPT-misuse"/>\r
+ </group>\r
+ <group enabled="true" name="FUNC">\r
+ <check enabled="false" name="FUNC-implicit-decl"/>\r
+ <check enabled="false" name="FUNC-unprototyped-all"/>\r
+ <check enabled="true" name="FUNC-unprototyped-used"/>\r
+ </group>\r
+ <group enabled="true" name="INCLUDE">\r
+ <check enabled="false" name="INCLUDE-c-file"/>\r
+ </group>\r
+ <group enabled="true" name="INT">\r
+ <check enabled="false" name="INT-use-signed-as-unsigned-pos"/>\r
+ <check enabled="true" name="INT-use-signed-as-unsigned"/>\r
+ </group>\r
+ <group enabled="true" name="ITR">\r
+ <check enabled="true" name="ITR-end-cmp-aft"/>\r
+ <check enabled="true" name="ITR-end-cmp-bef"/>\r
+ <check enabled="true" name="ITR-invalidated"/>\r
+ <check enabled="false" name="ITR-mismatch-alg"/>\r
+ <check enabled="false" name="ITR-store"/>\r
+ <check enabled="true" name="ITR-uninit"/>\r
+ </group>\r
+ <group enabled="true" name="LIB">\r
+ <check enabled="false" name="LIB-bsearch-overrun-pos"/>\r
+ <check enabled="false" name="LIB-bsearch-overrun"/>\r
+ <check enabled="false" name="LIB-fn-unsafe"/>\r
+ <check enabled="false" name="LIB-fread-overrun-pos"/>\r
+ <check enabled="true" name="LIB-fread-overrun"/>\r
+ <check enabled="false" name="LIB-memchr-overrun-pos"/>\r
+ <check enabled="true" name="LIB-memchr-overrun"/>\r
+ <check enabled="false" name="LIB-memcpy-overrun-pos"/>\r
+ <check enabled="true" name="LIB-memcpy-overrun"/>\r
+ <check enabled="false" name="LIB-memset-overrun-pos"/>\r
+ <check enabled="true" name="LIB-memset-overrun"/>\r
+ <check enabled="false" name="LIB-putenv"/>\r
+ <check enabled="false" name="LIB-qsort-overrun-pos"/>\r
+ <check enabled="false" name="LIB-qsort-overrun"/>\r
+ <check enabled="true" name="LIB-return-const"/>\r
+ <check enabled="true" name="LIB-return-error"/>\r
+ <check enabled="true" name="LIB-return-leak"/>\r
+ <check enabled="true" name="LIB-return-neg"/>\r
+ <check enabled="true" name="LIB-return-null"/>\r
+ <check enabled="false" name="LIB-sprintf-overrun"/>\r
+ <check enabled="false" name="LIB-std-sort-overrun-pos"/>\r
+ <check enabled="true" name="LIB-std-sort-overrun"/>\r
+ <check enabled="false" name="LIB-strcat-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strcat-overrun"/>\r
+ <check enabled="false" name="LIB-strcpy-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strcpy-overrun"/>\r
+ <check enabled="false" name="LIB-strncat-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strncat-overrun"/>\r
+ <check enabled="false" name="LIB-strncmp-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strncmp-overrun"/>\r
+ <check enabled="false" name="LIB-strncpy-overrun-pos"/>\r
+ <check enabled="true" name="LIB-strncpy-overrun"/>\r
+ </group>\r
+ <group enabled="true" name="LOGIC">\r
+ <check enabled="false" name="LOGIC-overload"/>\r
+ </group>\r
+ <group enabled="true" name="MEM">\r
+ <check enabled="true" name="MEM-delete-array-op"/>\r
+ <check enabled="true" name="MEM-delete-op"/>\r
+ <check enabled="true" name="MEM-double-free-alias"/>\r
+ <check enabled="true" name="MEM-double-free-some"/>\r
+ <check enabled="true" name="MEM-double-free"/>\r
+ <check enabled="true" name="MEM-free-field"/>\r
+ <check enabled="true" name="MEM-free-fptr"/>\r
+ <check enabled="false" name="MEM-free-no-alloc-struct"/>\r
+ <check enabled="false" name="MEM-free-no-alloc"/>\r
+ <check enabled="true" name="MEM-free-no-use"/>\r
+ <check enabled="true" name="MEM-free-op"/>\r
+ <check enabled="true" name="MEM-free-struct-field"/>\r
+ <check enabled="true" name="MEM-free-variable-alias"/>\r
+ <check enabled="true" name="MEM-free-variable"/>\r
+ <check enabled="true" name="MEM-leak-alias"/>\r
+ <check enabled="false" name="MEM-leak"/>\r
+ <check enabled="false" name="MEM-malloc-arith"/>\r
+ <check enabled="true" name="MEM-malloc-diff-type"/>\r
+ <check enabled="true" name="MEM-malloc-sizeof-ptr"/>\r
+ <check enabled="true" name="MEM-malloc-sizeof"/>\r
+ <check enabled="false" name="MEM-malloc-strlen"/>\r
+ <check enabled="true" name="MEM-realloc-diff-type"/>\r
+ <check enabled="true" name="MEM-return-free"/>\r
+ <check enabled="true" name="MEM-return-no-assign"/>\r
+ <check enabled="true" name="MEM-stack-global-field"/>\r
+ <check enabled="true" name="MEM-stack-global"/>\r
+ <check enabled="true" name="MEM-stack-param-ref"/>\r
+ <check enabled="true" name="MEM-stack-param"/>\r
+ <check enabled="true" name="MEM-stack-pos"/>\r
+ <check enabled="true" name="MEM-stack-ref"/>\r
+ <check enabled="true" name="MEM-stack"/>\r
+ <check enabled="true" name="MEM-use-free-all"/>\r
+ <check enabled="true" name="MEM-use-free-some"/>\r
+ </group>\r
+ <group enabled="true" name="PTR">\r
+ <check enabled="true" name="PTR-arith-field"/>\r
+ <check enabled="true" name="PTR-arith-stack"/>\r
+ <check enabled="true" name="PTR-arith-var"/>\r
+ <check enabled="true" name="PTR-cmp-str-lit"/>\r
+ <check enabled="false" name="PTR-null-assign-fun-pos"/>\r
+ <check enabled="false" name="PTR-null-assign-pos"/>\r
+ <check enabled="true" name="PTR-null-assign"/>\r
+ <check enabled="true" name="PTR-null-cmp-aft"/>\r
+ <check enabled="true" name="PTR-null-cmp-bef-fun"/>\r
+ <check enabled="true" name="PTR-null-cmp-bef"/>\r
+ <check enabled="true" name="PTR-null-fun-pos"/>\r
+ <check enabled="false" name="PTR-null-literal-pos"/>\r
+ <check enabled="false" name="PTR-overload"/>\r
+ <check enabled="false" name="PTR-singleton-arith-pos"/>\r
+ <check enabled="true" name="PTR-singleton-arith"/>\r
+ <check enabled="true" name="PTR-unchk-param-some"/>\r
+ <check enabled="false" name="PTR-unchk-param"/>\r
+ <check enabled="false" name="PTR-uninit-pos"/>\r
+ <check enabled="true" name="PTR-uninit"/>\r
+ </group>\r
+ <group enabled="true" name="RED">\r
+ <check enabled="false" name="RED-alloc-zero-bytes"/>\r
+ <check enabled="false" name="RED-case-reach"/>\r
+ <check enabled="false" name="RED-cmp-always"/>\r
+ <check enabled="false" name="RED-cmp-never"/>\r
+ <check enabled="false" name="RED-cond-always"/>\r
+ <check enabled="true" name="RED-cond-const-assign"/>\r
+ <check enabled="false" name="RED-cond-const-expr"/>\r
+ <check enabled="false" name="RED-cond-const"/>\r
+ <check enabled="false" name="RED-cond-never"/>\r
+ <check enabled="true" name="RED-dead"/>\r
+ <check enabled="false" name="RED-expr"/>\r
+ <check enabled="false" name="RED-func-no-effect"/>\r
+ <check enabled="true" name="RED-local-hides-global"/>\r
+ <check enabled="false" name="RED-local-hides-local"/>\r
+ <check enabled="false" name="RED-local-hides-member"/>\r
+ <check enabled="true" name="RED-local-hides-param"/>\r
+ <check enabled="false" name="RED-no-effect"/>\r
+ <check enabled="true" name="RED-self-assign"/>\r
+ <check enabled="true" name="RED-unused-assign"/>\r
+ <check enabled="false" name="RED-unused-param"/>\r
+ <check enabled="false" name="RED-unused-return-val"/>\r
+ <check enabled="false" name="RED-unused-val"/>\r
+ <check enabled="true" name="RED-unused-var-all"/>\r
+ </group>\r
+ <group enabled="true" name="RESOURCE">\r
+ <check enabled="false" name="RESOURCE-deref-file"/>\r
+ <check enabled="true" name="RESOURCE-double-close"/>\r
+ <check enabled="true" name="RESOURCE-file-no-close-all"/>\r
+ <check enabled="false" name="RESOURCE-file-pos-neg"/>\r
+ <check enabled="true" name="RESOURCE-file-use-after-close"/>\r
+ <check enabled="false" name="RESOURCE-implicit-deref-file"/>\r
+ <check enabled="true" name="RESOURCE-write-ronly-file"/>\r
+ </group>\r
+ <group enabled="true" name="SIZEOF">\r
+ <check enabled="true" name="SIZEOF-side-effect"/>\r
+ </group>\r
+ <group enabled="true" name="SPC">\r
+ <check enabled="true" name="SPC-order"/>\r
+ <check enabled="false" name="SPC-uninit-arr-all"/>\r
+ <check enabled="true" name="SPC-uninit-struct-field-heap"/>\r
+ <check enabled="false" name="SPC-uninit-struct-field"/>\r
+ <check enabled="true" name="SPC-uninit-struct"/>\r
+ <check enabled="true" name="SPC-uninit-var-all"/>\r
+ <check enabled="true" name="SPC-uninit-var-some"/>\r
+ <check enabled="false" name="SPC-volatile-reads"/>\r
+ <check enabled="false" name="SPC-volatile-writes"/>\r
+ </group>\r
+ <group enabled="true" name="STRUCT">\r
+ <check enabled="false" name="STRUCT-signed-bit"/>\r
+ </group>\r
+ <group enabled="true" name="SWITCH">\r
+ <check enabled="true" name="SWITCH-fall-through"/>\r
+ </group>\r
+ <group enabled="true" name="THROW">\r
+ <check enabled="false" name="THROW-empty"/>\r
+ <check enabled="false" name="THROW-main"/>\r
+ <check enabled="true" name="THROW-null"/>\r
+ <check enabled="true" name="THROW-ptr"/>\r
+ <check enabled="true" name="THROW-static"/>\r
+ <check enabled="true" name="THROW-unhandled"/>\r
+ </group>\r
+ <group enabled="true" name="UNION">\r
+ <check enabled="true" name="UNION-overlap-assign"/>\r
+ <check enabled="true" name="UNION-type-punning"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="CERT">\r
+ <group enabled="true" name="CERT-EXP">\r
+ <check enabled="true" name="CERT-EXP19-C"/>\r
+ </group>\r
+ <group enabled="true" name="CERT-FIO">\r
+ <check enabled="true" name="CERT-FIO37-C"/>\r
+ <check enabled="true" name="CERT-FIO38-C"/>\r
+ </group>\r
+ <group enabled="true" name="CERT-SIG">\r
+ <check enabled="true" name="CERT-SIG31-C"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="SECURITY">\r
+ <group enabled="true" name="SEC-BUFFER">\r
+ <check enabled="true" name="SEC-BUFFER-memory-leak-alias"/>\r
+ <check enabled="false" name="SEC-BUFFER-memory-leak"/>\r
+ <check enabled="false" name="SEC-BUFFER-memset-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-memset-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-qsort-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-qsort-overrun"/>\r
+ <check enabled="true" name="SEC-BUFFER-sprintf-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-std-sort-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-std-sort-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strcat-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strcat-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strcpy-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strcpy-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strncat-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strncat-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strncmp-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strncmp-overrun"/>\r
+ <check enabled="false" name="SEC-BUFFER-strncpy-overrun-pos"/>\r
+ <check enabled="true" name="SEC-BUFFER-strncpy-overrun"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-alloc-size"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-copy-length"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-copy"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-index"/>\r
+ <check enabled="true" name="SEC-BUFFER-tainted-offset"/>\r
+ <check enabled="true" name="SEC-BUFFER-use-after-free-all"/>\r
+ <check enabled="true" name="SEC-BUFFER-use-after-free-some"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-DIV-0">\r
+ <check enabled="true" name="SEC-DIV-0-compare-after"/>\r
+ <check enabled="true" name="SEC-DIV-0-compare-before"/>\r
+ <check enabled="true" name="SEC-DIV-0-tainted"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-FILEOP">\r
+ <check enabled="true" name="SEC-FILEOP-open-no-close"/>\r
+ <check enabled="false" name="SEC-FILEOP-path-traversal"/>\r
+ <check enabled="true" name="SEC-FILEOP-use-after-close"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-INJECTION">\r
+ <check enabled="false" name="SEC-INJECTION-sql"/>\r
+ <check enabled="false" name="SEC-INJECTION-xpath"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-LOOP">\r
+ <check enabled="true" name="SEC-LOOP-tainted-bound"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-NULL">\r
+ <check enabled="false" name="SEC-NULL-assignment-fun-pos"/>\r
+ <check enabled="true" name="SEC-NULL-assignment"/>\r
+ <check enabled="true" name="SEC-NULL-cmp-aft"/>\r
+ <check enabled="true" name="SEC-NULL-cmp-bef-fun"/>\r
+ <check enabled="true" name="SEC-NULL-cmp-bef"/>\r
+ <check enabled="false" name="SEC-NULL-literal-pos"/>\r
+ </group>\r
+ <group enabled="true" name="SEC-STRING">\r
+ <check enabled="true" name="SEC-STRING-format-string"/>\r
+ <check enabled="false" name="SEC-STRING-hard-coded-credentials"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="MISRAC2004">\r
+ <group enabled="true" name="MISRAC2004-1">\r
+ <check enabled="true" name="MISRAC2004-1.1"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_c"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_d"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_e"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_f"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_g"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_h"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_i"/>\r
+ <check enabled="true" name="MISRAC2004-1.2_j"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-2">\r
+ <check enabled="true" name="MISRAC2004-2.1"/>\r
+ <check enabled="true" name="MISRAC2004-2.2"/>\r
+ <check enabled="true" name="MISRAC2004-2.3"/>\r
+ <check enabled="false" name="MISRAC2004-2.4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-5">\r
+ <check enabled="true" name="MISRAC2004-5.2"/>\r
+ <check enabled="true" name="MISRAC2004-5.3"/>\r
+ <check enabled="true" name="MISRAC2004-5.4"/>\r
+ <check enabled="false" name="MISRAC2004-5.5"/>\r
+ <check enabled="false" name="MISRAC2004-5.6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-6">\r
+ <check enabled="true" name="MISRAC2004-6.1"/>\r
+ <check enabled="false" name="MISRAC2004-6.3"/>\r
+ <check enabled="true" name="MISRAC2004-6.4"/>\r
+ <check enabled="true" name="MISRAC2004-6.5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-7">\r
+ <check enabled="true" name="MISRAC2004-7.1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-8">\r
+ <check enabled="true" name="MISRAC2004-8.1"/>\r
+ <check enabled="true" name="MISRAC2004-8.2"/>\r
+ <check enabled="true" name="MISRAC2004-8.5_a"/>\r
+ <check enabled="true" name="MISRAC2004-8.5_b"/>\r
+ <check enabled="true" name="MISRAC2004-8.12"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-9">\r
+ <check enabled="true" name="MISRAC2004-9.1_a"/>\r
+ <check enabled="true" name="MISRAC2004-9.1_b"/>\r
+ <check enabled="true" name="MISRAC2004-9.1_c"/>\r
+ <check enabled="true" name="MISRAC2004-9.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-10">\r
+ <check enabled="true" name="MISRAC2004-10.1_a"/>\r
+ <check enabled="true" name="MISRAC2004-10.1_b"/>\r
+ <check enabled="true" name="MISRAC2004-10.1_c"/>\r
+ <check enabled="true" name="MISRAC2004-10.1_d"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_c"/>\r
+ <check enabled="true" name="MISRAC2004-10.2_d"/>\r
+ <check enabled="true" name="MISRAC2004-10.3"/>\r
+ <check enabled="true" name="MISRAC2004-10.4"/>\r
+ <check enabled="true" name="MISRAC2004-10.5"/>\r
+ <check enabled="true" name="MISRAC2004-10.6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-11">\r
+ <check enabled="true" name="MISRAC2004-11.1"/>\r
+ <check enabled="false" name="MISRAC2004-11.3"/>\r
+ <check enabled="false" name="MISRAC2004-11.4"/>\r
+ <check enabled="true" name="MISRAC2004-11.5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-12">\r
+ <check enabled="false" name="MISRAC2004-12.1"/>\r
+ <check enabled="true" name="MISRAC2004-12.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-12.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-12.2_c"/>\r
+ <check enabled="true" name="MISRAC2004-12.3"/>\r
+ <check enabled="true" name="MISRAC2004-12.4"/>\r
+ <check enabled="false" name="MISRAC2004-12.6_a"/>\r
+ <check enabled="false" name="MISRAC2004-12.6_b"/>\r
+ <check enabled="true" name="MISRAC2004-12.7"/>\r
+ <check enabled="true" name="MISRAC2004-12.8"/>\r
+ <check enabled="true" name="MISRAC2004-12.9"/>\r
+ <check enabled="true" name="MISRAC2004-12.10"/>\r
+ <check enabled="false" name="MISRAC2004-12.11"/>\r
+ <check enabled="true" name="MISRAC2004-12.12_a"/>\r
+ <check enabled="true" name="MISRAC2004-12.12_b"/>\r
+ <check enabled="false" name="MISRAC2004-12.13"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-13">\r
+ <check enabled="true" name="MISRAC2004-13.1"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_a"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_b"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_c"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_d"/>\r
+ <check enabled="false" name="MISRAC2004-13.2_e"/>\r
+ <check enabled="true" name="MISRAC2004-13.3"/>\r
+ <check enabled="true" name="MISRAC2004-13.4"/>\r
+ <check enabled="true" name="MISRAC2004-13.5"/>\r
+ <check enabled="true" name="MISRAC2004-13.6"/>\r
+ <check enabled="true" name="MISRAC2004-13.7_a"/>\r
+ <check enabled="true" name="MISRAC2004-13.7_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-14">\r
+ <check enabled="true" name="MISRAC2004-14.1"/>\r
+ <check enabled="true" name="MISRAC2004-14.2"/>\r
+ <check enabled="true" name="MISRAC2004-14.3"/>\r
+ <check enabled="true" name="MISRAC2004-14.4"/>\r
+ <check enabled="true" name="MISRAC2004-14.5"/>\r
+ <check enabled="true" name="MISRAC2004-14.6"/>\r
+ <check enabled="true" name="MISRAC2004-14.7"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_a"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_b"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_c"/>\r
+ <check enabled="true" name="MISRAC2004-14.8_d"/>\r
+ <check enabled="true" name="MISRAC2004-14.9"/>\r
+ <check enabled="true" name="MISRAC2004-14.10"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-15">\r
+ <check enabled="true" name="MISRAC2004-15.0"/>\r
+ <check enabled="true" name="MISRAC2004-15.1"/>\r
+ <check enabled="true" name="MISRAC2004-15.2"/>\r
+ <check enabled="true" name="MISRAC2004-15.3"/>\r
+ <check enabled="true" name="MISRAC2004-15.4"/>\r
+ <check enabled="true" name="MISRAC2004-15.5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-16">\r
+ <check enabled="true" name="MISRAC2004-16.1"/>\r
+ <check enabled="true" name="MISRAC2004-16.2_a"/>\r
+ <check enabled="true" name="MISRAC2004-16.2_b"/>\r
+ <check enabled="true" name="MISRAC2004-16.3"/>\r
+ <check enabled="true" name="MISRAC2004-16.5"/>\r
+ <check enabled="true" name="MISRAC2004-16.7"/>\r
+ <check enabled="true" name="MISRAC2004-16.8"/>\r
+ <check enabled="true" name="MISRAC2004-16.9"/>\r
+ <check enabled="true" name="MISRAC2004-16.10"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-17">\r
+ <check enabled="true" name="MISRAC2004-17.1_a"/>\r
+ <check enabled="true" name="MISRAC2004-17.1_b"/>\r
+ <check enabled="true" name="MISRAC2004-17.1_c"/>\r
+ <check enabled="true" name="MISRAC2004-17.4_a"/>\r
+ <check enabled="true" name="MISRAC2004-17.4_b"/>\r
+ <check enabled="true" name="MISRAC2004-17.5"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_a"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_b"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_c"/>\r
+ <check enabled="true" name="MISRAC2004-17.6_d"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-18">\r
+ <check enabled="true" name="MISRAC2004-18.1"/>\r
+ <check enabled="true" name="MISRAC2004-18.2"/>\r
+ <check enabled="true" name="MISRAC2004-18.4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-19">\r
+ <check enabled="false" name="MISRAC2004-19.2"/>\r
+ <check enabled="true" name="MISRAC2004-19.6"/>\r
+ <check enabled="false" name="MISRAC2004-19.7"/>\r
+ <check enabled="true" name="MISRAC2004-19.12"/>\r
+ <check enabled="false" name="MISRAC2004-19.13"/>\r
+ <check enabled="true" name="MISRAC2004-19.15"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2004-20">\r
+ <check enabled="true" name="MISRAC2004-20.1"/>\r
+ <check enabled="true" name="MISRAC2004-20.4"/>\r
+ <check enabled="true" name="MISRAC2004-20.5"/>\r
+ <check enabled="true" name="MISRAC2004-20.6"/>\r
+ <check enabled="true" name="MISRAC2004-20.7"/>\r
+ <check enabled="true" name="MISRAC2004-20.8"/>\r
+ <check enabled="true" name="MISRAC2004-20.9"/>\r
+ <check enabled="true" name="MISRAC2004-20.10"/>\r
+ <check enabled="true" name="MISRAC2004-20.11"/>\r
+ <check enabled="true" name="MISRAC2004-20.12"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="MISRAC2012">\r
+ <group enabled="true" name="MISRAC2012-Dir-4">\r
+ <check enabled="true" name="MISRAC2012-Dir-4.3"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.4"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.5"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.6_a"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.6_b"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.7_a"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.7_b"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.7_c"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.8"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.9"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.10"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_a"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_b"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_c"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_d"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_e"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_f"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_g"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_h"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.11_i"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.12"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_b"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_c"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_d"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_e"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_f"/>\r
+ <check enabled="true" name="MISRAC2012-Dir-4.13_g"/>\r
+ <check enabled="false" name="MISRAC2012-Dir-4.13_h"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-1">\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_e"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_f"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_g"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_h"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_i"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_j"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_k"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_m"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_n"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_o"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_p"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_q"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_r"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_s"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_t"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_u"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_v"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-1.3_w"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-2">\r
+ <check enabled="true" name="MISRAC2012-Rule-2.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-2.2_c"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.5"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.6"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-2.7"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-3">\r
+ <check enabled="true" name="MISRAC2012-Rule-3.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-3.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-5">\r
+ <check enabled="true" name="MISRAC2012-Rule-5.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.2_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.2_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.3_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.3_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.4_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.4_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.5_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.5_c99"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-5.8"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-5.9"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-6">\r
+ <check enabled="true" name="MISRAC2012-Rule-6.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-6.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-7">\r
+ <check enabled="true" name="MISRAC2012-Rule-7.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.4_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-7.4_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-8">\r
+ <check enabled="true" name="MISRAC2012-Rule-8.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.3_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.5_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.5_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.6"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.7"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.9_a"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.9_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.10"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.11"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.12"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-8.13"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-8.14"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-9">\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_e"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.1_f"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.5_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-9.5_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-10">\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.1_R8"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.4_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.4_b"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-10.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-10.8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-11">\r
+ <check enabled="true" name="MISRAC2012-Rule-11.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-11.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-11.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.8"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-11.9"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-12">\r
+ <check enabled="false" name="MISRAC2012-Rule-12.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-12.2"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-12.3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-13">\r
+ <check enabled="true" name="MISRAC2012-Rule-13.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.2_c"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-13.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-13.4_a"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-13.4_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-13.6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-14">\r
+ <check enabled="true" name="MISRAC2012-Rule-14.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.3_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.3_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-14.4_d"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-15">\r
+ <check enabled="false" name="MISRAC2012-Rule-15.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.3"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-15.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-15.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.6_e"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-15.7"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-16">\r
+ <check enabled="true" name="MISRAC2012-Rule-16.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-16.7"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-17">\r
+ <check enabled="true" name="MISRAC2012-Rule-17.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-17.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-17.7"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-17.8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-18">\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.1_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.4"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-18.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.6_d"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-18.8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-19">\r
+ <check enabled="true" name="MISRAC2012-Rule-19.1"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-19.2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-20">\r
+ <check enabled="false" name="MISRAC2012-Rule-20.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.4_c89"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.4_c99"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-20.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-20.7"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-20.10"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-21">\r
+ <check enabled="true" name="MISRAC2012-Rule-21.1"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.2"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.5"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.6"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.7"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.8"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.9"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.10"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-21.11"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-21.12_a"/>\r
+ <check enabled="false" name="MISRAC2012-Rule-21.12_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC2012-Rule-22">\r
+ <check enabled="true" name="MISRAC2012-Rule-22.1_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.1_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.2_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.2_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.2_c"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.3"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.4"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.5_a"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.5_b"/>\r
+ <check enabled="true" name="MISRAC2012-Rule-22.6"/>\r
+ </group>\r
+ </package>\r
+ <package enabled="false" name="MISRAC++2008">\r
+ <group enabled="true" name="MISRAC++2008-0-1">\r
+ <check enabled="true" name="MISRAC++2008-0-1-1"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-2_a"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-2_b"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-2_c"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-3"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-4_a"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-4_b"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-6"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-7"/>\r
+ <check enabled="false" name="MISRAC++2008-0-1-8"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-9"/>\r
+ <check enabled="true" name="MISRAC++2008-0-1-11"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-0-2">\r
+ <check enabled="true" name="MISRAC++2008-0-2-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-0-3">\r
+ <check enabled="true" name="MISRAC++2008-0-3-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-2-7">\r
+ <check enabled="true" name="MISRAC++2008-2-7-1"/>\r
+ <check enabled="true" name="MISRAC++2008-2-7-2"/>\r
+ <check enabled="false" name="MISRAC++2008-2-7-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-2-10">\r
+ <check enabled="true" name="MISRAC++2008-2-10-1"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-2"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-3"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-4"/>\r
+ <check enabled="false" name="MISRAC++2008-2-10-5"/>\r
+ <check enabled="true" name="MISRAC++2008-2-10-6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-2-13">\r
+ <check enabled="true" name="MISRAC++2008-2-13-2"/>\r
+ <check enabled="true" name="MISRAC++2008-2-13-3"/>\r
+ <check enabled="true" name="MISRAC++2008-2-13-4_a"/>\r
+ <check enabled="true" name="MISRAC++2008-2-13-4_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-3-1">\r
+ <check enabled="true" name="MISRAC++2008-3-1-1"/>\r
+ <check enabled="true" name="MISRAC++2008-3-1-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-3-9">\r
+ <check enabled="false" name="MISRAC++2008-3-9-2"/>\r
+ <check enabled="true" name="MISRAC++2008-3-9-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-4-5">\r
+ <check enabled="true" name="MISRAC++2008-4-5-1"/>\r
+ <check enabled="true" name="MISRAC++2008-4-5-2"/>\r
+ <check enabled="true" name="MISRAC++2008-4-5-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-0">\r
+ <check enabled="true" name="MISRAC++2008-5-0-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-1_c"/>\r
+ <check enabled="false" name="MISRAC++2008-5-0-2"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-4"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-5"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-6"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-7"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-8"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-9"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-10"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_c"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-13_d"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-14"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-15_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-15_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_c"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_d"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_e"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-16_f"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-19"/>\r
+ <check enabled="true" name="MISRAC++2008-5-0-21"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-2">\r
+ <check enabled="true" name="MISRAC++2008-5-2-4"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-5"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-6"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-7"/>\r
+ <check enabled="false" name="MISRAC++2008-5-2-9"/>\r
+ <check enabled="false" name="MISRAC++2008-5-2-10"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-11_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-2-11_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-3">\r
+ <check enabled="true" name="MISRAC++2008-5-3-1"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-2_a"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-2_b"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-3"/>\r
+ <check enabled="true" name="MISRAC++2008-5-3-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-8">\r
+ <check enabled="true" name="MISRAC++2008-5-8-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-14">\r
+ <check enabled="true" name="MISRAC++2008-5-14-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-18">\r
+ <check enabled="true" name="MISRAC++2008-5-18-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-5-19">\r
+ <check enabled="false" name="MISRAC++2008-5-19-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-2">\r
+ <check enabled="true" name="MISRAC++2008-6-2-1"/>\r
+ <check enabled="true" name="MISRAC++2008-6-2-2"/>\r
+ <check enabled="false" name="MISRAC++2008-6-2-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-3">\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_c"/>\r
+ <check enabled="true" name="MISRAC++2008-6-3-1_d"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-4">\r
+ <check enabled="true" name="MISRAC++2008-6-4-1"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-2"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-3"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-4"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-5"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-6"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-7"/>\r
+ <check enabled="true" name="MISRAC++2008-6-4-8"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-5">\r
+ <check enabled="true" name="MISRAC++2008-6-5-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-2"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-3"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-4"/>\r
+ <check enabled="true" name="MISRAC++2008-6-5-6"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-6-6">\r
+ <check enabled="true" name="MISRAC++2008-6-6-1"/>\r
+ <check enabled="true" name="MISRAC++2008-6-6-2"/>\r
+ <check enabled="true" name="MISRAC++2008-6-6-4"/>\r
+ <check enabled="true" name="MISRAC++2008-6-6-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-1">\r
+ <check enabled="true" name="MISRAC++2008-7-1-1"/>\r
+ <check enabled="true" name="MISRAC++2008-7-1-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-2">\r
+ <check enabled="true" name="MISRAC++2008-7-2-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-4">\r
+ <check enabled="true" name="MISRAC++2008-7-4-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-7-5">\r
+ <check enabled="true" name="MISRAC++2008-7-5-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_a"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_b"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_c"/>\r
+ <check enabled="true" name="MISRAC++2008-7-5-2_d"/>\r
+ <check enabled="false" name="MISRAC++2008-7-5-4_a"/>\r
+ <check enabled="false" name="MISRAC++2008-7-5-4_b"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-8-0">\r
+ <check enabled="true" name="MISRAC++2008-8-0-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-8-4">\r
+ <check enabled="true" name="MISRAC++2008-8-4-1"/>\r
+ <check enabled="true" name="MISRAC++2008-8-4-3"/>\r
+ <check enabled="true" name="MISRAC++2008-8-4-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-8-5">\r
+ <check enabled="true" name="MISRAC++2008-8-5-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-8-5-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-8-5-1_c"/>\r
+ <check enabled="true" name="MISRAC++2008-8-5-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-9-3">\r
+ <check enabled="true" name="MISRAC++2008-9-3-1"/>\r
+ <check enabled="true" name="MISRAC++2008-9-3-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-9-5">\r
+ <check enabled="true" name="MISRAC++2008-9-5-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-9-6">\r
+ <check enabled="true" name="MISRAC++2008-9-6-2"/>\r
+ <check enabled="true" name="MISRAC++2008-9-6-3"/>\r
+ <check enabled="true" name="MISRAC++2008-9-6-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-12-1">\r
+ <check enabled="true" name="MISRAC++2008-12-1-1_a"/>\r
+ <check enabled="true" name="MISRAC++2008-12-1-1_b"/>\r
+ <check enabled="true" name="MISRAC++2008-12-1-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-0">\r
+ <check enabled="false" name="MISRAC++2008-15-0-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-1">\r
+ <check enabled="true" name="MISRAC++2008-15-1-2"/>\r
+ <check enabled="true" name="MISRAC++2008-15-1-3"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-3">\r
+ <check enabled="true" name="MISRAC++2008-15-3-1"/>\r
+ <check enabled="false" name="MISRAC++2008-15-3-2"/>\r
+ <check enabled="true" name="MISRAC++2008-15-3-3"/>\r
+ <check enabled="true" name="MISRAC++2008-15-3-4"/>\r
+ <check enabled="true" name="MISRAC++2008-15-3-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-15-5">\r
+ <check enabled="true" name="MISRAC++2008-15-5-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-16-0">\r
+ <check enabled="true" name="MISRAC++2008-16-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-16-0-4"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-16-2">\r
+ <check enabled="true" name="MISRAC++2008-16-2-2"/>\r
+ <check enabled="true" name="MISRAC++2008-16-2-3"/>\r
+ <check enabled="true" name="MISRAC++2008-16-2-4"/>\r
+ <check enabled="false" name="MISRAC++2008-16-2-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-16-3">\r
+ <check enabled="true" name="MISRAC++2008-16-3-1"/>\r
+ <check enabled="false" name="MISRAC++2008-16-3-2"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-17-0">\r
+ <check enabled="true" name="MISRAC++2008-17-0-1"/>\r
+ <check enabled="true" name="MISRAC++2008-17-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-17-0-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-0">\r
+ <check enabled="true" name="MISRAC++2008-18-0-1"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-2"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-3"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-4"/>\r
+ <check enabled="true" name="MISRAC++2008-18-0-5"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-2">\r
+ <check enabled="true" name="MISRAC++2008-18-2-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-4">\r
+ <check enabled="true" name="MISRAC++2008-18-4-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-18-7">\r
+ <check enabled="true" name="MISRAC++2008-18-7-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-19-3">\r
+ <check enabled="true" name="MISRAC++2008-19-3-1"/>\r
+ </group>\r
+ <group enabled="true" name="MISRAC++2008-27-0">\r
+ <check enabled="true" name="MISRAC++2008-27-0-1"/>\r
+ </group>\r
+ </package>\r
+ </checks_tree>\r
+ </cstat_settings>\r
+ </data>\r
+ </settings>\r
<settings>\r
<name>RuntimeChecking</name>\r
<archiveVersion>0</archiveVersion>\r
<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>
<tRSysVw>1</tRSysVw>
<sRunDeb>0</sRunDeb>
<sLrtime>0</sLrtime>
- <nTsel>6</nTsel>
+ <nTsel>0</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
<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>
<Key>ARMDBGFLAGS</Key>
<Name>-T0</Name>
</SetRegEntry>
- <SetRegEntry>
- <Number>0</Number>
- <Key>DLGUARM</Key>
- </SetRegEntry>
<SetRegEntry>
<Number>0</Number>
<Key>CMSIS_AGDI</Key>
<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/>
</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>
<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>
<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>
<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>
<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>
<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>
<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>
<Group>
<GroupName>Source</GroupName>
- <tvExp>1</tvExp>
+ <tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
<FileNumber>7</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\main.c</PathWithFileName>
<FileNumber>8</FileNumber>
<FileType>5</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\FreeRTOSConfig.h</PathWithFileName>
<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>
<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>
<FileNumber>11</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Full_Demo\RegTest.c</PathWithFileName>
<FileNumber>12</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>.\Full_Demo\IntQueueTimer.c</PathWithFileName>
<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>
<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>
<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>
<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>
<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>
<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>
<FileNumber>19</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\Source\event_groups.c</PathWithFileName>
<FileNumber>20</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\Source\list.c</PathWithFileName>
<FileNumber>21</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\Source\queue.c</PathWithFileName>
<FileNumber>22</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\Source\tasks.c</PathWithFileName>
<FileNumber>23</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\Source\timers.c</PathWithFileName>
<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>
<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>
<FileNumber>26</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\BlockQ.c</PathWithFileName>
<FileNumber>27</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\blocktim.c</PathWithFileName>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\countsem.c</PathWithFileName>
<FileNumber>29</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\death.c</PathWithFileName>
<FileNumber>30</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\dynamic.c</PathWithFileName>
<FileNumber>31</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\EventGroupsDemo.c</PathWithFileName>
<FileNumber>32</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\flop.c</PathWithFileName>
<FileNumber>33</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\GenQTest.c</PathWithFileName>
<FileNumber>34</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\QueueOverwrite.c</PathWithFileName>
<FileNumber>35</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\QueueSet.c</PathWithFileName>
<FileNumber>36</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\recmutex.c</PathWithFileName>
<FileNumber>37</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\semtest.c</PathWithFileName>
<FileNumber>38</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\TaskNotify.c</PathWithFileName>
<FileNumber>39</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\TimerDemo.c</PathWithFileName>
<FileNumber>40</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\IntQueue.c</PathWithFileName>
<FileNumber>41</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
- <Focus>0</Focus>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\Common\Minimal\IntSemTest.c</PathWithFileName>
<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>
<SLE66CMisc></SLE66CMisc>
<SLE66AMisc></SLE66AMisc>
<SLE66LinkerMisc></SLE66LinkerMisc>
- <SFDFile></SFDFile>
+ <SFDFile>$$Device:ATSAMV71Q21$svd\ATSAMV71Q21.svd</SFDFile>
<bCustSvd>0</bCustSvd>
<UseEnv>0</UseEnv>
<BinPath></BinPath>
<UserProg2Name></UserProg2Name>
<UserProg1Dos16Mode>0</UserProg1Dos16Mode>
<UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
</AfterMake>
<SelectedForBatchBuild>0</SelectedForBatchBuild>
<SVCSIdString></SVCSIdString>
</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>
<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>
</Flash1>
<bUseTDR>1</bUseTDR>
<Flash2>BIN\UL2CM3.DLL</Flash2>
- <Flash3>"" ()</Flash3>
+ <Flash3></Flash3>
<Flash4></Flash4>
<pFcarmOut></pFcarmOut>
<pFcarmGrp>Source</pFcarmGrp>
<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>
</IRAM>
<IROM>
<Type>1</Type>
- <StartAddress>0x0</StartAddress>
+ <StartAddress>0x400000</StartAddress>
<Size>0x200000</Size>
</IROM>
<XRAM>
</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>
<OCR_RVCT9>
<Type>0</Type>
<StartAddress>0x20400000</StartAddress>
- <Size>0x40000</Size>
+ <Size>0x60000</Size>
</OCR_RVCT9>
<OCR_RVCT10>
<Type>0</Type>
<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>
<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>
\r
@echo off \r
\r
-if not "%1" == "" goto debugFile \r
+if not "%~1" == "" goto debugFile \r
\r
@echo on \r
\r
-"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" \r
+"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" \r
\r
@echo off \r
goto end \r
\r
@echo on \r
\r
-"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" \r
+"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" \r
\r
@echo off \r
:end
\ No newline at end of file
EnableCache=1\r
[JLinkDriver]\r
CStepIntDis=_ 0\r
+LeaveTargetRunning=_ 0\r
[SWOTraceHWSettings]\r
OverrideDefaultClocks=0\r
CpuClock=72000000\r
\r
\r
\r
- <Column0>198</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
+ <Column0>237</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
</Workspace>\r
<Build>\r
\r
<Windows>\r
\r
\r
- <Wnd0>\r
+ <Wnd1>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-23288-9694</Identity>\r
</Tab>\r
</Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd0><Wnd2>\r
+ <SelectedTab>0</SelectedTab></Wnd1><Wnd3>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-13649-20313</Identity>\r
</Tab>\r
<Tab><Identity>TabID-30315-19856</Identity><TabName>Find in Files</TabName><Factory>Find-in-Files</Factory><Session/></Tab></Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd2></Windows>\r
+ <SelectedTab>0</SelectedTab></Wnd3></Windows>\r
<Editor>\r
\r
\r
\r
\r
\r
- <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>\r
+ <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>\r
</Desktop>\r
</Workspace>\r
\r
<name>C-SPY</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>26</version>\r
+ <version>28</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
</option>\r
<option>\r
<name>MemFile</name>\r
- <state>$TOOLKIT_DIR$\CONFIG\debugger\ST\STM32F7xxx.ddf</state>\r
+ <state>$TOOLKIT_DIR$\CONFIG\debugger\ST\STM32F756NG.ddf</state>\r
</option>\r
<option>\r
<name>RunToEnable</name>\r
</option>\r
<option>\r
<name>OCLastSavedByProductVersion</name>\r
- <state>7.30.4.8186</state>\r
- </option>\r
- <option>\r
- <name>OCDownloadAttachToProgram</name>\r
- <state>0</state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>UseFlashLoader</name>\r
</option>\r
<option>\r
<name>FlashLoadersV3</name>\r
- <state>$TOOLKIT_DIR$\config\flashloader\ST\FlashSTM32F7xxx.board</state>\r
+ <state>$TOOLKIT_DIR$\config\flashloader\ST\FlashSTM32F74xxG.board</state>\r
</option>\r
<option>\r
<name>OCImagesSuppressCheck1</name>\r
<name>OCMulticoreSlaveConfiguration</name>\r
<state></state>\r
</option>\r
+ <option>\r
+ <name>OCDownloadExtraImage</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCAttachSlave</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>CMSISDAP_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>4</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>CMSISDAPAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<name>OCJetEmuParams</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>IJET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>5</version>\r
+ <version>8</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>IjetAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<version>0</version>\r
<state>2</state>\r
</option>\r
+ <option>\r
+ <name>FlashBoardPathSlave</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>JLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>15</version>\r
+ <version>16</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>CCJLinkInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>OCJLinkAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>CCJLinkResetList</name>\r
<version>6</version>\r
</option>\r
<option>\r
<name>CCCpuClockEdit</name>\r
- <state></state>\r
+ <state>216.0</state>\r
</option>\r
<option>\r
<name>CCSwoClockAuto</name>\r
<name>PEMICRO_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>1</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>OCPEMicroAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroInterfaceList</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroJtagSpeed</name>\r
- <state>#UNINITIALIZED#</state>\r
- </option>\r
<option>\r
<name>CCJPEMicroShowSettings</name>\r
<state>0</state>\r
<name>LogFile</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
- <option>\r
- <name>CCPEMicroUSBDevice</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroSerialPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJPEMicroTCPIPAutoScanNetwork</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroTCPIP</name>\r
- <state>10.0.0.1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroCommCmdLineProducer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
</data>\r
</settings>\r
<settings>\r
<name>STLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>CCSwoClockEdit</name>\r
<state>2000</state>\r
</option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkDoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkJtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
</data>\r
</settings>\r
<settings>\r
- <name>XDS100_ID</name>\r
+ <name>TIFET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>1</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCXDS100AttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>TIPackageOverride</name>\r
+ <name>CCMSPFetResetList</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>TIPackage</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCXds100InterfaceList</name>\r
- <version>2</version>\r
+ <name>CCMSPFetInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>BoardFile</name>\r
- <state></state>\r
+ <name>CCMSPFetInterfaceCmdLine</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>DoLogfile</name>\r
+ <name>CCMSPFetTargetVccTypeDefault</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>LogFile</name>\r
- <state>$PROJ_DIR$\cspycomm.log</state>\r
+ <name>CCMSPFetTargetVoltage</name>\r
+ <state>###Uninitialized###</state>\r
</option>\r
- </data>\r
- </settings>\r
- <debuggerPlugins>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- </debuggerPlugins>\r
- </configuration>\r
- <configuration>\r
- <name>Release</name>\r
- <toolchain>\r
- <name>ARM</name>\r
- </toolchain>\r
- <debug>0</debug>\r
- <settings>\r
- <name>C-SPY</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>26</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
<option>\r
- <name>CInput</name>\r
+ <name>CCMSPFetVCCDefault</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>CEndian</name>\r
- <state>1</state>\r
+ <name>CCMSPFetTargetSettlingtime</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>CProcessor</name>\r
+ <name>CCMSPFetRadioJtagSpeedType</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCVariant</name>\r
+ <name>CCMSPFetConnection</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>MacOverride</name>\r
- <state>0</state>\r
+ <name>CCMSPFetUsbComPort</name>\r
+ <state>Automatic</state>\r
</option>\r
<option>\r
- <name>MacFile</name>\r
- <state></state>\r
+ <name>CCMSPFetAllowAccessToBSL</name>\r
+ <state>0</state>\r
</option>\r
<option>\r
- <name>MemOverride</name>\r
+ <name>CCMSPFetDoLogfile</name>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>MemFile</name>\r
- <state></state>\r
+ <name>CCMSPFetLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
<option>\r
- <name>RunToEnable</name>\r
+ <name>CCMSPFetRadioEraseFlash</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>RunToName</name>\r
- <state>main</state>\r
- </option>\r
- <option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>XDS100_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>5</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>1</debug>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>TIPackageOverride</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>TIPackage</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>BoardFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100BreakpointRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100DoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchUndef</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSWI</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchData</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchPrefetch</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchIRQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchFIQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CpuClockEdit</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockAuto</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockEdit</name>\r
+ <state>1000</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100HWResetDelay</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ResetList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100JtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ProbeList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <debuggerPlugins>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\MQX\MQXRtosPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\Quadros\Quadros_EWB7_Plugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
+ <loadFlag>1</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ <plugin>\r
+ <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
+ </debuggerPlugins>\r
+ </configuration>\r
+ <configuration>\r
+ <name>Release</name>\r
+ <toolchain>\r
+ <name>ARM</name>\r
+ </toolchain>\r
+ <debug>0</debug>\r
+ <settings>\r
+ <name>C-SPY</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>28</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>0</debug>\r
+ <option>\r
+ <name>CInput</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CEndian</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CProcessor</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCVariant</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>MacOverride</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>MacFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>MemOverride</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>MemFile</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>RunToEnable</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>RunToName</name>\r
+ <state>main</state>\r
+ </option>\r
+ <option>\r
<name>CExtraOptionsCheck</name>\r
<state>0</state>\r
</option>\r
<name>OCLastSavedByProductVersion</name>\r
<state></state>\r
</option>\r
- <option>\r
- <name>OCDownloadAttachToProgram</name>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>UseFlashLoader</name>\r
<state>0</state>\r
<name>OCMulticoreSlaveConfiguration</name>\r
<state></state>\r
</option>\r
+ <option>\r
+ <name>OCDownloadExtraImage</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>OCAttachSlave</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>CMSISDAP_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>4</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>CMSISDAPAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<name>OCJetEmuParams</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCCMSISDAPUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>IJET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>5</version>\r
+ <version>8</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>IjetAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>OCIarProbeScriptFile</name>\r
<state>1</state>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>IjetTraceSizeList</name>\r
- <version>0</version>\r
- <state>2</state>\r
+ <name>IjetTraceSizeList</name>\r
+ <version>0</version>\r
+ <state>2</state>\r
+ </option>\r
+ <option>\r
+ <name>FlashBoardPathSlave</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCIjetUsbSerialNoSelect</name>\r
+ <state>0</state>\r
</option>\r
</data>\r
</settings>\r
<name>JLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>15</version>\r
+ <version>16</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>CCJLinkInterfaceRadio</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>OCJLinkAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>CCJLinkResetList</name>\r
<version>6</version>\r
<name>PEMICRO_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>1</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>OCDriverInfo</name>\r
<state>1</state>\r
</option>\r
- <option>\r
- <name>OCPEMicroAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroInterfaceList</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroJtagSpeed</name>\r
- <state>#UNINITIALIZED#</state>\r
- </option>\r
<option>\r
<name>CCJPEMicroShowSettings</name>\r
<state>0</state>\r
<name>LogFile</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
- <option>\r
- <name>CCPEMicroUSBDevice</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroSerialPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJPEMicroTCPIPAutoScanNetwork</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroTCPIP</name>\r
- <state>10.0.0.1</state>\r
- </option>\r
- <option>\r
- <name>CCPEMicroCommCmdLineProducer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSTLinkInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
</data>\r
</settings>\r
<settings>\r
<name>STLINK_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>3</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>CCSwoClockEdit</name>\r
<state>2000</state>\r
</option>\r
+ <option>\r
+ <name>DoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>LogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkDoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkCatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkUsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCSTLinkJtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
</data>\r
</settings>\r
<settings>\r
- <name>XDS100_ID</name>\r
+ <name>TIFET_ID</name>\r
<archiveVersion>2</archiveVersion>\r
<data>\r
- <version>2</version>\r
+ <version>1</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>OCXDS100AttachSlave</name>\r
+ <name>CCMSPFetResetList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetInterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetInterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetTargetVccTypeDefault</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetTargetVoltage</name>\r
+ <state>###Uninitialized###</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetVCCDefault</name>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetTargetSettlingtime</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetRadioJtagSpeedType</name>\r
<state>1</state>\r
</option>\r
<option>\r
- <name>TIPackageOverride</name>\r
+ <name>CCMSPFetConnection</name>\r
+ <version>0</version>\r
<state>0</state>\r
</option>\r
<option>\r
- <name>TIPackage</name>\r
- <state></state>\r
+ <name>CCMSPFetUsbComPort</name>\r
+ <state>Automatic</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetAllowAccessToBSL</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetDoLogfile</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetLogFile</name>\r
+ <state>$PROJ_DIR$\cspycomm.log</state>\r
+ </option>\r
+ <option>\r
+ <name>CCMSPFetRadioEraseFlash</name>\r
+ <state>1</state>\r
+ </option>\r
+ </data>\r
+ </settings>\r
+ <settings>\r
+ <name>XDS100_ID</name>\r
+ <archiveVersion>2</archiveVersion>\r
+ <data>\r
+ <version>5</version>\r
+ <wantNonLocal>1</wantNonLocal>\r
+ <debug>0</debug>\r
+ <option>\r
+ <name>OCDriverInfo</name>\r
+ <state>1</state>\r
</option>\r
<option>\r
- <name>CCXds100InterfaceList</name>\r
- <version>2</version>\r
+ <name>TIPackageOverride</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>TIPackage</name>\r
+ <state></state>\r
+ </option>\r
<option>\r
<name>BoardFile</name>\r
<state></state>\r
<name>LogFile</name>\r
<state>$PROJ_DIR$\cspycomm.log</state>\r
</option>\r
+ <option>\r
+ <name>CCXds100BreakpointRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100DoUpdateBreakpoints</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UpdateBreakpoints</name>\r
+ <state>_call_main</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchReset</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchUndef</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSWI</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchData</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchPrefetch</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchIRQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchFIQ</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCORERESET</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchMMERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchNOCPERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchCHRERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchSTATERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchBUSERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchINTERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchHARDERR</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CatchDummy</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100CpuClockEdit</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockAuto</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100SwoClockEdit</name>\r
+ <state>1000</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100HWResetDelay</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ResetList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNo</name>\r
+ <state></state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100UsbSerialNoSelect</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100JtagSpeedList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceRadio</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100InterfaceCmdLine</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>CCXds100ProbeList</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<debuggerPlugins>\r
<file>$TOOLKIT_DIR$\plugins\middleware\HCCWare\HCCWare.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
+ <plugin>\r
+ <file>$TOOLKIT_DIR$\plugins\middleware\PercepioTraceExporter\PercepioTraceExportPlugin.ewplugin</file>\r
+ <loadFlag>0</loadFlag>\r
+ </plugin>\r
<plugin>\r
<file>$TOOLKIT_DIR$\plugins\rtos\AVIX\AVIX.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
<file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
</plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
<plugin>\r
<file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>\r
<loadFlag>0</loadFlag>\r
<name>General</name>\r
<archiveVersion>3</archiveVersion>\r
<data>\r
- <version>22</version>\r
+ <version>24</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>ListPath</name>\r
<state>Debug\List</state>\r
</option>\r
- <option>\r
- <name>Variant</name>\r
- <version>21</version>\r
- <state>41</state>\r
- </option>\r
<option>\r
<name>GEndianMode</name>\r
<state>0</state>\r
<name>GOutputBinary</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>FPU</name>\r
- <version>4</version>\r
- <state>9</state>\r
- </option>\r
<option>\r
<name>OGCoreOrChip</name>\r
<state>1</state>\r
</option>\r
<option>\r
<name>OGLastSavedByProductVersion</name>\r
- <state>7.40.1.8463</state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>GeneralEnableMisra</name>\r
<name>RTConfigPath2</name>\r
<state>$TOOLKIT_DIR$\INC\c\DLib_Config_Normal.h</state>\r
</option>\r
- <option>\r
- <name>GFPUCoreSlave</name>\r
- <version>21</version>\r
- <state>41</state>\r
- </option>\r
<option>\r
<name>GBECoreSlave</name>\r
- <version>21</version>\r
+ <version>24</version>\r
<state>41</state>\r
</option>\r
<option>\r
<name>GRuntimeLibThreads</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>CoreVariant</name>\r
+ <version>24</version>\r
+ <state>41</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUDeviceSlave</name>\r
+ <state>STM32F756NG ST STM32F756NG</state>\r
+ </option>\r
+ <option>\r
+ <name>FPU2</name>\r
+ <version>0</version>\r
+ <state>6</state>\r
+ </option>\r
+ <option>\r
+ <name>NrRegs</name>\r
+ <version>0</version>\r
+ <state>1</state>\r
+ </option>\r
+ <option>\r
+ <name>NEON</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUCoreSlave2</name>\r
+ <version>24</version>\r
+ <state>41</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<debug>1</debug>\r
<option>\r
<name>OOCOutputFormat</name>\r
- <version>2</version>\r
- <state>2</state>\r
+ <version>3</version>\r
+ <state>3</state>\r
</option>\r
<option>\r
<name>OCOutputOverride</name>\r
<name>ILINK</name>\r
<archiveVersion>0</archiveVersion>\r
<data>\r
- <version>16</version>\r
+ <version>17</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>1</debug>\r
<option>\r
<name>IlinkThreadsSlave</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>IlinkLogCallGraph</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<name>General</name>\r
<archiveVersion>3</archiveVersion>\r
<data>\r
- <version>22</version>\r
+ <version>24</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>ListPath</name>\r
<state>Release\List</state>\r
</option>\r
- <option>\r
- <name>Variant</name>\r
- <version>21</version>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>GEndianMode</name>\r
<state>0</state>\r
<name>GOutputBinary</name>\r
<state>0</state>\r
</option>\r
- <option>\r
- <name>FPU</name>\r
- <version>4</version>\r
- <state>0</state>\r
- </option>\r
<option>\r
<name>OGCoreOrChip</name>\r
<state>0</state>\r
</option>\r
<option>\r
<name>OGLastSavedByProductVersion</name>\r
- <state></state>\r
+ <state>7.60.1.11206</state>\r
</option>\r
<option>\r
<name>GeneralEnableMisra</name>\r
</option>\r
<option>\r
<name>OGChipSelectEditMenu</name>\r
- <state></state>\r
+ <state>Default None</state>\r
</option>\r
<option>\r
<name>GenLowLevelInterface</name>\r
<name>RTConfigPath2</name>\r
<state></state>\r
</option>\r
- <option>\r
- <name>GFPUCoreSlave</name>\r
- <version>21</version>\r
- <state>1</state>\r
- </option>\r
<option>\r
<name>GBECoreSlave</name>\r
- <version>21</version>\r
+ <version>24</version>\r
<state>1</state>\r
</option>\r
<option>\r
<name>GRuntimeLibThreads</name>\r
<state>0</state>\r
</option>\r
+ <option>\r
+ <name>CoreVariant</name>\r
+ <version>24</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUDeviceSlave</name>\r
+ <state>Default None</state>\r
+ </option>\r
+ <option>\r
+ <name>FPU2</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>NrRegs</name>\r
+ <version>0</version>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>NEON</name>\r
+ <state>0</state>\r
+ </option>\r
+ <option>\r
+ <name>GFPUCoreSlave2</name>\r
+ <version>24</version>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
<debug>0</debug>\r
<option>\r
<name>OOCOutputFormat</name>\r
- <version>2</version>\r
+ <version>3</version>\r
<state>0</state>\r
</option>\r
<option>\r
<name>ILINK</name>\r
<archiveVersion>0</archiveVersion>\r
<data>\r
- <version>16</version>\r
+ <version>17</version>\r
<wantNonLocal>1</wantNonLocal>\r
<debug>0</debug>\r
<option>\r
<name>IlinkThreadsSlave</name>\r
<state>1</state>\r
</option>\r
+ <option>\r
+ <name>IlinkLogCallGraph</name>\r
+ <state>0</state>\r
+ </option>\r
</data>\r
</settings>\r
<settings>\r
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
-<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_proj.xsd">
-
- <SchemaVersion>1.1</SchemaVersion>
-
- <Header>### uVision Project, (C) Keil Software</Header>
-
- <Targets>
- <Target>
- <TargetName>STM32756G_EVAL</TargetName>
- <ToolsetNumber>0x4</ToolsetNumber>
- <ToolsetName>ARM-ADS</ToolsetName>
- <TargetOption>
- <TargetCommonOption>
- <Device>STM32F7x</Device>
- <Vendor>STMicroelectronics</Vendor>
- <Cpu>IROM(0x08000000,0x100000) IRAM(0x20000000,0x10000) CLOCK(12000000) CPUTYPE("Pelican") ESEL ELITTLE FPU3(SFPU)</Cpu>
- <FlashUtilSpec></FlashUtilSpec>
- <StartupFile></StartupFile>
- <FlashDriverDll>UL2CM3(-O207 -S8 -C0 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32F7x -FS08000000 -FL100000)</FlashDriverDll>
- <DeviceId>0</DeviceId>
- <RegisterFile></RegisterFile>
- <MemoryEnv></MemoryEnv>
- <Cmp></Cmp>
- <Asm></Asm>
- <Linker></Linker>
- <OHString></OHString>
- <InfinionOptionDll></InfinionOptionDll>
- <SLE66CMisc></SLE66CMisc>
- <SLE66AMisc></SLE66AMisc>
- <SLE66LinkerMisc></SLE66LinkerMisc>
- <SFDFile></SFDFile>
- <bCustSvd>0</bCustSvd>
- <UseEnv>0</UseEnv>
- <BinPath></BinPath>
- <IncludePath></IncludePath>
- <LibPath></LibPath>
- <RegisterFilePath>ST\STM32F4xx\</RegisterFilePath>
- <DBRegisterFilePath>ST\STM32F4xx\</DBRegisterFilePath>
- <TargetStatus>
- <Error>0</Error>
- <ExitCodeStop>0</ExitCodeStop>
- <ButtonStop>0</ButtonStop>
- <NotGenerated>0</NotGenerated>
- <InvalidFlash>1</InvalidFlash>
- </TargetStatus>
- <OutputDirectory>.\STM32F7xx\</OutputDirectory>
- <OutputName>RTOSDemo</OutputName>
- <CreateExecutable>1</CreateExecutable>
- <CreateLib>0</CreateLib>
- <CreateHexFile>0</CreateHexFile>
- <DebugInformation>1</DebugInformation>
- <BrowseInformation>1</BrowseInformation>
- <ListingPath>.\STM32F7xx\</ListingPath>
- <HexFormatSelection>1</HexFormatSelection>
- <Merge32K>0</Merge32K>
- <CreateBatchFile>0</CreateBatchFile>
- <BeforeCompile>
- <RunUserProg1>0</RunUserProg1>
- <RunUserProg2>0</RunUserProg2>
- <UserProg1Name></UserProg1Name>
- <UserProg2Name></UserProg2Name>
- <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
- <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
- <nStopU1X>0</nStopU1X>
- <nStopU2X>0</nStopU2X>
- </BeforeCompile>
- <BeforeMake>
- <RunUserProg1>0</RunUserProg1>
- <RunUserProg2>0</RunUserProg2>
- <UserProg1Name></UserProg1Name>
- <UserProg2Name></UserProg2Name>
- <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
- <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
- <nStopB1X>0</nStopB1X>
- <nStopB2X>0</nStopB2X>
- </BeforeMake>
- <AfterMake>
- <RunUserProg1>0</RunUserProg1>
- <RunUserProg2>0</RunUserProg2>
- <UserProg1Name></UserProg1Name>
- <UserProg2Name></UserProg2Name>
- <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
- <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
- </AfterMake>
- <SelectedForBatchBuild>0</SelectedForBatchBuild>
- <SVCSIdString></SVCSIdString>
- </TargetCommonOption>
- <CommonProperty>
- <UseCPPCompiler>0</UseCPPCompiler>
- <RVCTCodeConst>0</RVCTCodeConst>
- <RVCTZI>0</RVCTZI>
- <RVCTOtherData>0</RVCTOtherData>
- <ModuleSelection>0</ModuleSelection>
- <IncludeInBuild>1</IncludeInBuild>
- <AlwaysBuild>0</AlwaysBuild>
- <GenerateAssemblyFile>0</GenerateAssemblyFile>
- <AssembleAssemblyFile>0</AssembleAssemblyFile>
- <PublicsOnly>0</PublicsOnly>
- <StopOnExitCode>3</StopOnExitCode>
- <CustomArgument></CustomArgument>
- <IncludeLibraryModules></IncludeLibraryModules>
- <ComprImg>1</ComprImg>
- </CommonProperty>
- <DllOption>
- <SimDllName>SARMCM3.DLL</SimDllName>
- <SimDllArguments></SimDllArguments>
- <SimDlgDll>DARMCM1.DLL</SimDlgDll>
- <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
- <TargetDllName>SARMCM3.DLL</TargetDllName>
- <TargetDllArguments></TargetDllArguments>
- <TargetDlgDll>TARMCM1.DLL</TargetDlgDll>
- <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
- </DllOption>
- <DebugOption>
- <OPTHX>
- <HexSelection>1</HexSelection>
- <HexRangeLowAddress>0</HexRangeLowAddress>
- <HexRangeHighAddress>0</HexRangeHighAddress>
- <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>
- <UseTargetDll>1</UseTargetDll>
- <UseExternalTool>0</UseExternalTool>
- <RunIndependent>0</RunIndependent>
- <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
- <Capability>1</Capability>
- <DriverSelection>4096</DriverSelection>
- </Flash1>
- <bUseTDR>1</bUseTDR>
- <Flash2>BIN\UL2CM3.DLL</Flash2>
- <Flash3>"" ()</Flash3>
- <Flash4></Flash4>
- <pFcarmOut></pFcarmOut>
- <pFcarmGrp></pFcarmGrp>
- <pFcArmRoot></pFcArmRoot>
- <FcArmLst>0</FcArmLst>
- </Utilities>
- <TargetArmAds>
- <ArmAdsMisc>
- <GenerateListings>0</GenerateListings>
- <asHll>1</asHll>
- <asAsm>1</asAsm>
- <asMacX>1</asMacX>
- <asSyms>1</asSyms>
- <asFals>1</asFals>
- <asDbgD>1</asDbgD>
- <asForm>1</asForm>
- <ldLst>0</ldLst>
- <ldmm>1</ldmm>
- <ldXref>1</ldXref>
- <BigEnd>0</BigEnd>
- <AdsALst>1</AdsALst>
- <AdsACrf>1</AdsACrf>
- <AdsANop>0</AdsANop>
- <AdsANot>0</AdsANot>
- <AdsLLst>1</AdsLLst>
- <AdsLmap>1</AdsLmap>
- <AdsLcgr>1</AdsLcgr>
- <AdsLsym>1</AdsLsym>
- <AdsLszi>1</AdsLszi>
- <AdsLtoi>1</AdsLtoi>
- <AdsLsun>1</AdsLsun>
- <AdsLven>1</AdsLven>
- <AdsLsxf>1</AdsLsxf>
- <RvctClst>0</RvctClst>
- <GenPPlst>0</GenPPlst>
- <AdsCpuType>"Pelican"</AdsCpuType>
- <RvctDeviceName></RvctDeviceName>
- <mOS>0</mOS>
- <uocRom>0</uocRom>
- <uocRam>0</uocRam>
- <hadIROM>1</hadIROM>
- <hadIRAM>1</hadIRAM>
- <hadXRAM>0</hadXRAM>
- <uocXRam>0</uocXRam>
- <RvdsVP>2</RvdsVP>
- <hadIRAM2>0</hadIRAM2>
- <hadIROM2>0</hadIROM2>
- <StupSel>8</StupSel>
- <useUlib>1</useUlib>
- <EndSel>1</EndSel>
- <uLtcg>0</uLtcg>
- <RoSelD>3</RoSelD>
- <RwSelD>3</RwSelD>
- <CodeSel>0</CodeSel>
- <OptFeed>0</OptFeed>
- <NoZi1>0</NoZi1>
- <NoZi2>0</NoZi2>
- <NoZi3>0</NoZi3>
- <NoZi4>0</NoZi4>
- <NoZi5>0</NoZi5>
- <Ro1Chk>0</Ro1Chk>
- <Ro2Chk>0</Ro2Chk>
- <Ro3Chk>0</Ro3Chk>
- <Ir1Chk>1</Ir1Chk>
- <Ir2Chk>0</Ir2Chk>
- <Ra1Chk>0</Ra1Chk>
- <Ra2Chk>0</Ra2Chk>
- <Ra3Chk>0</Ra3Chk>
- <Im1Chk>1</Im1Chk>
- <Im2Chk>0</Im2Chk>
- <OnChipMemories>
- <Ocm1>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </Ocm1>
- <Ocm2>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </Ocm2>
- <Ocm3>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </Ocm3>
- <Ocm4>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </Ocm4>
- <Ocm5>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </Ocm5>
- <Ocm6>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </Ocm6>
- <IRAM>
- <Type>0</Type>
- <StartAddress>0x20000000</StartAddress>
- <Size>0x10000</Size>
- </IRAM>
- <IROM>
- <Type>1</Type>
- <StartAddress>0x8000000</StartAddress>
- <Size>0x100000</Size>
- </IROM>
- <XRAM>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </XRAM>
- <OCR_RVCT1>
- <Type>1</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT1>
- <OCR_RVCT2>
- <Type>1</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT2>
- <OCR_RVCT3>
- <Type>1</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT3>
- <OCR_RVCT4>
- <Type>1</Type>
- <StartAddress>0x8000000</StartAddress>
- <Size>0x100000</Size>
- </OCR_RVCT4>
- <OCR_RVCT5>
- <Type>1</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT5>
- <OCR_RVCT6>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT6>
- <OCR_RVCT7>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT7>
- <OCR_RVCT8>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT8>
- <OCR_RVCT9>
- <Type>0</Type>
- <StartAddress>0x20000000</StartAddress>
- <Size>0xffff</Size>
- </OCR_RVCT9>
- <OCR_RVCT10>
- <Type>0</Type>
- <StartAddress>0x0</StartAddress>
- <Size>0x0</Size>
- </OCR_RVCT10>
- </OnChipMemories>
- <RvctStartVector></RvctStartVector>
- </ArmAdsMisc>
- <Cads>
- <interw>1</interw>
- <Optim>1</Optim>
- <oTime>0</oTime>
- <SplitLS>0</SplitLS>
- <OneElfS>0</OneElfS>
- <Strict>0</Strict>
- <EnumInt>0</EnumInt>
- <PlainCh>0</PlainCh>
- <Ropi>0</Ropi>
- <Rwpi>0</Rwpi>
- <wLevel>2</wLevel>
- <uThumb>0</uThumb>
- <uSurpInc>0</uSurpInc>
- <uC99>0</uC99>
- <useXO>0</useXO>
- <VariousControls>
- <MiscControls></MiscControls>
- <Define>STM32F756xx, CORE_CM7,USE_HAL_DRIVER</Define>
- <Undefine></Undefine>
- <IncludePath>.\CMSIS\Device\ST\STM32F7xx\Include;.\CMSIS\Include;.\ST_Library\include;.;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM7\r0p1;..\Common\include;.\Full_Demo</IncludePath>
- </VariousControls>
- </Cads>
- <Aads>
- <interw>1</interw>
- <Ropi>0</Ropi>
- <Rwpi>0</Rwpi>
- <thumb>0</thumb>
- <SplitLS>0</SplitLS>
- <SwStkChk>0</SwStkChk>
- <NoWarn>0</NoWarn>
- <uSurpInc>0</uSurpInc>
- <useXO>0</useXO>
- <VariousControls>
- <MiscControls></MiscControls>
- <Define></Define>
- <Undefine></Undefine>
- <IncludePath></IncludePath>
- </VariousControls>
- </Aads>
- <LDads>
- <umfTarg>1</umfTarg>
- <Ropi>0</Ropi>
- <Rwpi>0</Rwpi>
- <noStLib>0</noStLib>
- <RepFail>1</RepFail>
- <useFile>0</useFile>
- <TextAddressRange>0x08000000</TextAddressRange>
- <DataAddressRange>0x20000000</DataAddressRange>
- <pXoBase></pXoBase>
- <ScatterFile>.\STM32L4xx\Project.sct</ScatterFile>
- <IncludeLibs></IncludeLibs>
- <IncludeLibsPath></IncludeLibsPath>
- <Misc></Misc>
- <LinkerInputFile></LinkerInputFile>
- <DisabledWarnings></DisabledWarnings>
- </LDads>
- </TargetArmAds>
- </TargetOption>
- <Groups>
- <Group>
- <GroupName>User</GroupName>
- <Files>
- <File>
- <FileName>main_blinky.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\Blinky_Demo\main_blinky.c</FilePath>
- </File>
- <File>
- <FileName>main.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\main.c</FilePath>
- </File>
- <File>
- <FileName>main_full.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\Full_Demo\main_full.c</FilePath>
- </File>
- <File>
- <FileName>FreeRTOSConfig.h</FileName>
- <FileType>5</FileType>
- <FilePath>.\FreeRTOSConfig.h</FilePath>
- </File>
- <File>
- <FileName>IntQueueTimer.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\Full_Demo\IntQueueTimer.c</FilePath>
- </File>
- <File>
- <FileName>RegTest_Keil.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\Full_Demo\RegTest_Keil.c</FilePath>
- </File>
- </Files>
- </Group>
- <Group>
- <GroupName>ST Library</GroupName>
- <Files>
- <File>
- <FileName>stm32f7xx_hal.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\ST_Library\stm32f7xx_hal.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_hal_cortex.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\ST_Library\stm32f7xx_hal_cortex.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_hal_gpio.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\ST_Library\stm32f7xx_hal_gpio.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_hal_rcc.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\ST_Library\stm32f7xx_hal_rcc.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_hal_tim.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\ST_Library\stm32f7xx_hal_tim.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_hal_dma.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\ST_Library\stm32f7xx_hal_dma.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_hal_tim_ex.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\ST_Library\stm32f7xx_hal_tim_ex.c</FilePath>
- </File>
- </Files>
- </Group>
- <Group>
- <GroupName>System</GroupName>
- <Files>
- <File>
- <FileName>system_stm32f7xx.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\System_Keil\system_stm32f7xx.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_it.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\System_Keil\stm32f7xx_it.c</FilePath>
- </File>
- <File>
- <FileName>stm32f7xx_hal_msp.c</FileName>
- <FileType>1</FileType>
- <FilePath>.\System_Keil\stm32f7xx_hal_msp.c</FilePath>
- </File>
- <File>
- <FileName>startup_stm32f756xx.s</FileName>
- <FileType>2</FileType>
- <FilePath>.\System_Keil\startup_stm32f756xx.s</FilePath>
- </File>
- </Files>
- </Group>
- <Group>
- <GroupName>FreeRTOS Source</GroupName>
- <Files>
- <File>
- <FileName>event_groups.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\Source\event_groups.c</FilePath>
- </File>
- <File>
- <FileName>list.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\Source\list.c</FilePath>
- </File>
- <File>
- <FileName>queue.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\Source\queue.c</FilePath>
- </File>
- <File>
- <FileName>tasks.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\Source\tasks.c</FilePath>
- </File>
- <File>
- <FileName>timers.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\Source\timers.c</FilePath>
- </File>
- <File>
- <FileName>heap_4.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\Source\portable\MemMang\heap_4.c</FilePath>
- </File>
- <File>
- <FileName>port.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\..\Source\portable\RVDS\ARM_CM7\r0p1\port.c</FilePath>
- </File>
- </Files>
- </Group>
- <Group>
- <GroupName>Common Demo Tasks</GroupName>
- <Files>
- <File>
- <FileName>BlockQ.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\BlockQ.c</FilePath>
- </File>
- <File>
- <FileName>blocktim.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\blocktim.c</FilePath>
- </File>
- <File>
- <FileName>countsem.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\countsem.c</FilePath>
- </File>
- <File>
- <FileName>death.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\death.c</FilePath>
- </File>
- <File>
- <FileName>dynamic.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\dynamic.c</FilePath>
- </File>
- <File>
- <FileName>EventGroupsDemo.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\EventGroupsDemo.c</FilePath>
- </File>
- <File>
- <FileName>flop.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\flop.c</FilePath>
- </File>
- <File>
- <FileName>GenQTest.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\GenQTest.c</FilePath>
- </File>
- <File>
- <FileName>integer.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\integer.c</FilePath>
- </File>
- <File>
- <FileName>IntQueue.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\IntQueue.c</FilePath>
- </File>
- <File>
- <FileName>IntSemTest.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\IntSemTest.c</FilePath>
- </File>
- <File>
- <FileName>PollQ.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\PollQ.c</FilePath>
- </File>
- <File>
- <FileName>QPeek.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\QPeek.c</FilePath>
- </File>
- <File>
- <FileName>QueueOverwrite.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\QueueOverwrite.c</FilePath>
- </File>
- <File>
- <FileName>QueueSet.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\QueueSet.c</FilePath>
- </File>
- <File>
- <FileName>recmutex.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\recmutex.c</FilePath>
- </File>
- <File>
- <FileName>semtest.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\semtest.c</FilePath>
- </File>
- <File>
- <FileName>TaskNotify.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\TaskNotify.c</FilePath>
- </File>
- <File>
- <FileName>TimerDemo.c</FileName>
- <FileType>1</FileType>
- <FilePath>..\Common\Minimal\TimerDemo.c</FilePath>
- </File>
- </Files>
- </Group>
- </Groups>
- </Target>
- </Targets>
-
-</Project>
--- /dev/null
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
+
+ <SchemaVersion>2.1</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Targets>
+ <Target>
+ <TargetName>STM32756G_EVAL</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pCCUsed>5060183::V5.06 update 2 (build 183)::ARMCC</pCCUsed>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>STM32F756NGHx</Device>
+ <Vendor>STMicroelectronics</Vendor>
+ <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(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F756NGHx$CMSIS\Flash\STM32F7x_1024.FLM))</FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile>$$Device:STM32F756NGHx$Drivers\CMSIS\Device\ST\STM32F7xx\Include\stm32f7xx.h</RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:STM32F756NGHx$CMSIS\SVD\STM32F7x.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>.\STM32F7xx\</OutputDirectory>
+ <OutputName>RTOSDemo</OutputName>
+ <CreateExecutable>1</CreateExecutable>
+ <CreateLib>0</CreateLib>
+ <CreateHexFile>0</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath>.\STM32F7xx\</ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>0</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>0</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>1</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName>SARMCM3.DLL</SimDllName>
+ <SimDllArguments> -REMAP -MPU</SimDllArguments>
+ <SimDlgDll>DCM.DLL</SimDlgDll>
+ <SimDlgDllArguments>-pCM7</SimDlgDllArguments>
+ <TargetDllName>SARMCM3.DLL</TargetDllName>
+ <TargetDllArguments> -MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pCM7</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4096</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2CM3.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>1</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>1</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"Cortex-M7"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>2</RvdsVP>
+ <hadIRAM2>1</hadIRAM2>
+ <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>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>0</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20010000</StartAddress>
+ <Size>0x40000</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x100000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x100000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x200000</StartAddress>
+ <Size>0x100000</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20010000</StartAddress>
+ <Size>0x40000</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x20000000</StartAddress>
+ <Size>0x10000</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>1</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>0</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <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>
+ <Undefine></Undefine>
+ <IncludePath>.\CMSIS\Device\ST\STM32F7xx\Include;.\CMSIS\Include;.\ST_Library\include;.;..\..\Source\include;..\..\Source\portable\RVDS\ARM_CM7\r0p1;..\Common\include;.\Full_Demo</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>0</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>1</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange>0x08000000</TextAddressRange>
+ <DataAddressRange>0x20000000</DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile>.\STM32L4xx\Project.sct</ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>User</GroupName>
+ <Files>
+ <File>
+ <FileName>main_blinky.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\Blinky_Demo\main_blinky.c</FilePath>
+ </File>
+ <File>
+ <FileName>main.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\main.c</FilePath>
+ </File>
+ <File>
+ <FileName>main_full.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\Full_Demo\main_full.c</FilePath>
+ </File>
+ <File>
+ <FileName>FreeRTOSConfig.h</FileName>
+ <FileType>5</FileType>
+ <FilePath>.\FreeRTOSConfig.h</FilePath>
+ </File>
+ <File>
+ <FileName>IntQueueTimer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\Full_Demo\IntQueueTimer.c</FilePath>
+ </File>
+ <File>
+ <FileName>RegTest_Keil.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\Full_Demo\RegTest_Keil.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>ST Library</GroupName>
+ <Files>
+ <File>
+ <FileName>stm32f7xx_hal.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\ST_Library\stm32f7xx_hal.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_hal_cortex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\ST_Library\stm32f7xx_hal_cortex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_hal_gpio.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\ST_Library\stm32f7xx_hal_gpio.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_hal_rcc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\ST_Library\stm32f7xx_hal_rcc.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_hal_tim.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\ST_Library\stm32f7xx_hal_tim.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_hal_dma.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\ST_Library\stm32f7xx_hal_dma.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_hal_tim_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\ST_Library\stm32f7xx_hal_tim_ex.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>System</GroupName>
+ <Files>
+ <File>
+ <FileName>system_stm32f7xx.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\System_Keil\system_stm32f7xx.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_it.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\System_Keil\stm32f7xx_it.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32f7xx_hal_msp.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>.\System_Keil\stm32f7xx_hal_msp.c</FilePath>
+ </File>
+ <File>
+ <FileName>startup_stm32f756xx.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>.\System_Keil\startup_stm32f756xx.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>FreeRTOS Source</GroupName>
+ <Files>
+ <File>
+ <FileName>event_groups.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\Source\event_groups.c</FilePath>
+ </File>
+ <File>
+ <FileName>list.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\Source\list.c</FilePath>
+ </File>
+ <File>
+ <FileName>queue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\Source\queue.c</FilePath>
+ </File>
+ <File>
+ <FileName>tasks.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\Source\tasks.c</FilePath>
+ </File>
+ <File>
+ <FileName>timers.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\Source\timers.c</FilePath>
+ </File>
+ <File>
+ <FileName>heap_4.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\Source\portable\MemMang\heap_4.c</FilePath>
+ </File>
+ <File>
+ <FileName>port.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\..\Source\portable\RVDS\ARM_CM7\r0p1\port.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Common Demo Tasks</GroupName>
+ <Files>
+ <File>
+ <FileName>BlockQ.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\BlockQ.c</FilePath>
+ </File>
+ <File>
+ <FileName>blocktim.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\blocktim.c</FilePath>
+ </File>
+ <File>
+ <FileName>countsem.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\countsem.c</FilePath>
+ </File>
+ <File>
+ <FileName>death.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\death.c</FilePath>
+ </File>
+ <File>
+ <FileName>dynamic.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\dynamic.c</FilePath>
+ </File>
+ <File>
+ <FileName>EventGroupsDemo.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\EventGroupsDemo.c</FilePath>
+ </File>
+ <File>
+ <FileName>flop.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\flop.c</FilePath>
+ </File>
+ <File>
+ <FileName>GenQTest.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\GenQTest.c</FilePath>
+ </File>
+ <File>
+ <FileName>integer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\integer.c</FilePath>
+ </File>
+ <File>
+ <FileName>IntQueue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\IntQueue.c</FilePath>
+ </File>
+ <File>
+ <FileName>IntSemTest.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\IntSemTest.c</FilePath>
+ </File>
+ <File>
+ <FileName>PollQ.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\PollQ.c</FilePath>
+ </File>
+ <File>
+ <FileName>QPeek.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\QPeek.c</FilePath>
+ </File>
+ <File>
+ <FileName>QueueOverwrite.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\QueueOverwrite.c</FilePath>
+ </File>
+ <File>
+ <FileName>QueueSet.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\QueueSet.c</FilePath>
+ </File>
+ <File>
+ <FileName>recmutex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\recmutex.c</FilePath>
+ </File>
+ <File>
+ <FileName>semtest.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\semtest.c</FilePath>
+ </File>
+ <File>
+ <FileName>TaskNotify.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\TaskNotify.c</FilePath>
+ </File>
+ <File>
+ <FileName>TimerDemo.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>..\Common\Minimal\TimerDemo.c</FilePath>
+ </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>
\r
@echo off \r
\r
-if not "%1" == "" goto debugFile \r
+if not "%~1" == "" goto debugFile \r
\r
@echo on \r
\r
-"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" \r
+"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" \r
\r
@echo off \r
goto end \r
\r
@echo on \r
\r
-"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" \r
+"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" \r
\r
@echo off \r
:end
\ No newline at end of file
WatchCond=_ 0\r
Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
+LeaveTargetRunning=_ 0\r
[Trace2]\r
Enabled=0\r
ShowSource=0\r
\r
\r
\r
- <Column0>303</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
+ <Column0>357</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
</Workspace>\r
<Build>\r
\r
<Windows>\r
\r
\r
- <Wnd2>\r
+ <Wnd0>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-18739-8840</Identity>\r
</Tab>\r
</Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd2><Wnd3>\r
+ <SelectedTab>0</SelectedTab></Wnd0><Wnd1>\r
<Tabs>\r
<Tab>\r
<Identity>TabID-19869-16187</Identity>\r
</Tab>\r
</Tabs>\r
\r
- <SelectedTab>0</SelectedTab></Wnd3></Windows>\r
+ <SelectedTab>0</SelectedTab></Wnd1></Windows>\r
<Editor>\r
\r
\r
\r
\r
\r
- <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>\r
+ <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>\r
</Desktop>\r
</Workspace>\r
\r
#define bktDONT_BLOCK ( ( TickType_t ) 0 )\r
#define bktRUN_INDICATOR ( ( UBaseType_t ) 0x55 )\r
\r
+/* In case the demo does not have software timers enabled, as this file uses\r
+the configTIMER_TASK_PRIORITY setting. */\r
+#ifndef configTIMER_TASK_PRIORITY\r
+ #define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 1 )\r
+#endif\r
+\r
/*-----------------------------------------------------------*/\r
\r
/*\r
encoding//Large_Data/sources.mk=UTF-8\r
encoding//Large_Data/subdir_rules.mk=UTF-8\r
encoding//Large_Data/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/Blinky_Demo/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/Blinky_Demo/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/CCS_Only/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/CCS_Only/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/FreeRTOS_Source/portable/CCS/MSP430X/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/FreeRTOS_Source/portable/MemMang/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/FreeRTOS_Source/portable/MemMang/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/FreeRTOS_Source/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/FreeRTOS_Source/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/Full_Demo/FreeRTOS+CLI/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/Full_Demo/FreeRTOS+CLI/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/Full_Demo/Standard_Demo_Tasks/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/Full_Demo/Standard_Demo_Tasks/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/Full_Demo/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/Full_Demo/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/driverlib/MSP430FR5xx_6xx/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/driverlib/MSP430FR5xx_6xx/subdir_vars.mk=UTF-8\r
-encoding//Small_Data/makefile=UTF-8\r
-encoding//Small_Data/objects.mk=UTF-8\r
-encoding//Small_Data/sources.mk=UTF-8\r
-encoding//Small_Data/subdir_rules.mk=UTF-8\r
-encoding//Small_Data/subdir_vars.mk=UTF-8\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#ifndef FREERTOS_CONFIG_H\r
-#define FREERTOS_CONFIG_H\r
-\r
-/*-----------------------------------------------------------\r
- * Application specific definitions.\r
- *\r
- * These definitions should be adjusted for your particular hardware and\r
- * application requirements.\r
- *\r
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. \r
- *\r
- * See http://www.freertos.org/a00110.html.\r
- *----------------------------------------------------------*/\r
-\r
-#define configUSE_PREEMPTION 1\r
-#define configUSE_IDLE_HOOK 0\r
-#define configUSE_TICK_HOOK 0\r
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 250 )\r
-#define configCPU_CLOCK_HZ ( ( unsigned long ) 200000000 ) /* Clock setup from start.asm in the demo application. */\r
-#define configTICK_RATE_HZ ( (TickType_t) 1000 )\r
-#define configMAX_PRIORITIES ( 6 )\r
-#define configTOTAL_HEAP_SIZE ( (size_t) (80 * 1024) )\r
-#define configMAX_TASK_NAME_LEN ( 20 )\r
-#define configUSE_16_BIT_TICKS 0\r
-#define configIDLE_SHOULD_YIELD 1\r
-#define configUSE_MUTEXES 1\r
-#define configUSE_TRACE_FACILITY 0\r
-#define configCHECK_FOR_STACK_OVERFLOW 2\r
-#define configUSE_COUNTING_SEMAPHORES 1\r
-#define configUSE_APPLICATION_TASK_TAG 1\r
-#define configUSE_FPU 1\r
-\r
-\r
-/* Co-routine definitions. */\r
-#define configUSE_CO_ROUTINES 0\r
-#define configMAX_CO_ROUTINE_PRIORITIES ( 4 )\r
-\r
-/* Set the following definitions to 1 to include the API function, or zero\r
-to exclude the API function. */\r
-#define INCLUDE_vTaskPrioritySet 1\r
-#define INCLUDE_uxTaskPriorityGet 1\r
-#define INCLUDE_vTaskDelete 1\r
-#define INCLUDE_vTaskCleanUpResources 1\r
-#define INCLUDE_vTaskSuspend 1\r
-#define INCLUDE_vResumeFromISR 1\r
-#define INCLUDE_vTaskDelayUntil 1\r
-#define INCLUDE_vTaskDelay 1\r
-#define INCLUDE_xTaskGetSchedulerState 1\r
-#define INCLUDE_xTaskGetCurrentTaskHandle 1\r
-#define INCLUDE_uxTaskGetStackHighWaterMark 1\r
-#define configUSE_RECURSIVE_MUTEXES 1\r
-\r
-\r
-#if configUSE_FPU == 1\r
- /* Include the header that define the traceTASK_SWITCHED_IN() and\r
- traceTASK_SWITCHED_OUT() macros to save and restore the floating\r
- point registers for tasks that have requested this behaviour. */\r
- #include "FPU_Macros.h"\r
-#endif\r
-\r
-#endif /* FREERTOS_CONFIG_H */\r
-\r
-\r
+++ /dev/null
-/*******************************************************************/\r
-/* */\r
-/* This file is automatically generated by linker script generator.*/\r
-/* */\r
-/* Version: Xilinx EDK 10.1.01 EDK_K_SP1.3 */\r
-/* */\r
-/* Copyright (c) 2004 Xilinx, Inc. All rights reserved. */\r
-/* */\r
-/* Description : PowerPC405 Linker Script */\r
-/* */\r
-/*******************************************************************/\r
-\r
-_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;\r
-_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x100;\r
-\r
-/* Define Memories in the system */\r
-\r
-MEMORY\r
-{\r
- SRAM_C_MEM0_BASEADDR : ORIGIN = 0xFFF00000, LENGTH = 0x000FFFEC\r
-}\r
-\r
-/* Specify the default entry point to the program */\r
-\r
-ENTRY(_boot)\r
-STARTUP(boot.o)\r
-\r
-/* Define the sections, and where they are mapped in memory */\r
-\r
-SECTIONS\r
-{\r
-.vectors : {\r
- __vectors_start = .;\r
- *(.vectors)\r
- __vectors_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.text : {\r
- *(.text)\r
- *(.text.*)\r
- *(.gnu.linkonce.t.*)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.init : {\r
- KEEP (*(.init))\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.fini : {\r
- KEEP (*(.fini))\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.rodata : {\r
- __rodata_start = .;\r
- *(.rodata)\r
- *(.rodata.*)\r
- *(.gnu.linkonce.r.*)\r
- __rodata_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sdata2 : {\r
- __sdata2_start = .;\r
- *(.sdata2)\r
- *(.sdata2.*)\r
- *(.gnu.linkonce.s2.*)\r
- __sdata2_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sbss2 : {\r
- __sbss2_start = .;\r
- *(.sbss2)\r
- *(.sbss2.*)\r
- *(.gnu.linkonce.sb2.*)\r
- __sbss2_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.data : {\r
- __data_start = .;\r
- *(.data)\r
- *(.data.*)\r
- *(.gnu.linkonce.d.*)\r
- __data_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.got : {\r
- *(.got)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.got1 : {\r
- *(.got1)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.got2 : {\r
- *(.got2)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.ctors : {\r
- __CTOR_LIST__ = .;\r
- ___CTORS_LIST___ = .;\r
- KEEP (*crtbegin.o(.ctors))\r
- KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))\r
- KEEP (*(SORT(.ctors.*)))\r
- KEEP (*(.ctors))\r
- __CTOR_END__ = .;\r
- ___CTORS_END___ = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.dtors : {\r
- __DTOR_LIST__ = .;\r
- ___DTORS_LIST___ = .;\r
- KEEP (*crtbegin.o(.dtors))\r
- KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))\r
- KEEP (*(SORT(.dtors.*)))\r
- KEEP (*(.dtors))\r
- __DTOR_END__ = .;\r
- ___DTORS_END___ = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.fixup : {\r
- __fixup_start = .;\r
- *(.fixup)\r
- __fixup_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.eh_frame : {\r
- *(.eh_frame)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.jcr : {\r
- *(.jcr)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.gcc_except_table : {\r
- *(.gcc_except_table)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sdata : {\r
- __sdata_start = .;\r
- *(.sdata)\r
- *(.sdata.*)\r
- *(.gnu.linkonce.s.*)\r
- __sdata_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sbss : {\r
- __sbss_start = .;\r
- *(.sbss)\r
- *(.sbss.*)\r
- *(.gnu.linkonce.sb.*)\r
- __sbss_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.tdata : {\r
- __tdata_start = .;\r
- *(.tdata)\r
- *(.tdata.*)\r
- *(.gnu.linkonce.td.*)\r
- __tdata_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.tbss : {\r
- __tbss_start = .;\r
- *(.tbss)\r
- *(.tbss.*)\r
- *(.gnu.linkonce.tb.*)\r
- __tbss_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.bss : {\r
- __bss_start = .;\r
- *(.bss)\r
- *(.bss.*)\r
- *(.gnu.linkonce.b.*)\r
- *(COMMON)\r
- . = ALIGN(4);\r
- __bss_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.boot0 0xFFFFFFEC : {\r
- __boot0_start = .;\r
- *(.boot0)\r
- __boot0_end = .;\r
-} \r
-\r
-.boot 0xFFFFFFFC : {\r
- __boot_start = .;\r
- *(.boot)\r
- __boot_end = .;\r
-} \r
-\r
-/* Generate Stack and Heap Sections */\r
-\r
-.stack : {\r
- _stack_end = .;\r
- . += _STACK_SIZE;\r
- . = ALIGN(16);\r
- __stack = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.heap : {\r
- . = ALIGN(16);\r
- _heap_start = .;\r
- . += _HEAP_SIZE;\r
- . = ALIGN(16);\r
- _heap_end = .;\r
- _end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-}\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Tests the floating point context save and restore mechanism.\r
- *\r
- * Two tasks are created - each of which is allocated a buffer of \r
- * portNO_FLOP_REGISTERS_TO_SAVE 32bit variables into which the flop context\r
- * of the task is saved when the task is switched out, and from which the\r
- * flop context of the task is restored when the task is switch in. Prior to \r
- * the tasks being created each position in the two buffers is filled with a \r
- * unique value - this way the flop context of each task is different.\r
- *\r
- * The two test tasks never block so are always in either the Running or\r
- * Ready state. They execute at the lowest priority so will get pre-empted\r
- * regularly, although the yield frequently so will not get much execution\r
- * time. The lack of execution time is not a problem as its only the \r
- * switching in and out that is being tested.\r
- *\r
- * Whenever a task is moved from the Ready to the Running state its flop \r
- * context will be loaded from the buffer, but while the task is in the\r
- * Running state the buffer is not used and can contain any value - in this\r
- * case and for test purposes the task itself clears the buffer to zero. \r
- * The next time the task is moved out of the Running state into the\r
- * Ready state the flop context will once more get saved to the buffer - \r
- * overwriting the zeros.\r
- *\r
- * Therefore whenever the task is not in the Running state its buffer contains\r
- * the most recent values of its floating point registers - the zeroing out\r
- * of the buffer while the task was executing being used to ensure the values \r
- * the buffer contains are not stale.\r
- *\r
- * When neither test task is in the Running state the buffers should contain\r
- * the unique values allocated before the tasks were created. If so then\r
- * the floating point context has been maintained. This check is performed\r
- * by the 'check' task (defined in main.c) by calling \r
- * xAreFlopRegisterTestsStillRunning().\r
- *\r
- * The test tasks also increment a value each time they execute.\r
- * xAreFlopRegisterTestsStillRunning() also checks that this value has changed\r
- * since it last ran to ensure the test tasks are still getting processing time.\r
- */\r
-\r
-/* Standard includes files. */\r
-#include <string.h>\r
-\r
-/* Scheduler include files. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-#define flopNUMBER_OF_TASKS 2\r
-#define flopSTART_VALUE ( 0x1 )\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* The two test tasks as described at the top of this file. */\r
-static void vFlopTest1( void *pvParameters );\r
-static void vFlopTest2( void *pvParameters );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Buffers into which the flop registers will be saved. There is a buffer for \r
-both tasks. */\r
-static volatile unsigned long ulFlopRegisters[ flopNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];\r
-\r
-/* Variables that are incremented by the tasks to indicate that they are still\r
-running. */\r
-static volatile unsigned long ulFlop1CycleCount = 0, ulFlop2CycleCount = 0;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-void vStartFlopRegTests( void )\r
-{\r
-TaskHandle_t xTaskJustCreated;\r
-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;\r
-\r
- /* Fill the arrays into which the flop registers are to be saved with \r
- known values. These are the values that will be written to the flop\r
- registers when the tasks start, and as the tasks do not perform any\r
- flop operations the values should never change. Each position in the\r
- buffer contains a different value so the flop context of each task\r
- will be different. */\r
- for( x = 0; x < flopNUMBER_OF_TASKS; x++ )\r
- {\r
- for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1); y++ )\r
- {\r
- ulFlopRegisters[ x ][ y ] = z;\r
- z++;\r
- }\r
- }\r
-\r
-\r
- /* Create the first task. */\r
- xTaskCreate( vFlopTest1, "flop1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );\r
-\r
- /* The task tag value is a value that can be associated with a task, but \r
- is not used by the scheduler itself. Its use is down to the application so\r
- it makes a convenient place in this case to store the pointer to the buffer\r
- into which the flop context of the task will be stored. The first created\r
- task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ]. */\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );\r
-\r
- /* Do the same for the second task. */\r
- xTaskCreate( vFlopTest2, "flop2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vFlopTest1( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- for( ;; )\r
- {\r
- /* The values from the buffer should have now been written to the flop\r
- registers. Clear the buffer to ensure the same values then get written\r
- back the next time the task runs. Being preempted during this memset\r
- could cause the test to fail, hence the critical section. */\r
- portENTER_CRITICAL();\r
- memset( ( void * ) ulFlopRegisters[ 0 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );\r
- portEXIT_CRITICAL();\r
-\r
- /* We don't have to do anything other than indicate that we are \r
- still running. */\r
- ulFlop1CycleCount++;\r
- taskYIELD();\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vFlopTest2( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- for( ;; )\r
- {\r
- /* The values from the buffer should have now been written to the flop\r
- registers. Clear the buffer to ensure the same values then get written\r
- back the next time the task runs. */\r
- portENTER_CRITICAL();\r
- memset( ( void * ) ulFlopRegisters[ 1 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );\r
- portEXIT_CRITICAL();\r
-\r
- /* We don't have to do anything other than indicate that we are \r
- still running. */\r
- ulFlop2CycleCount++;\r
- taskYIELD();\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void )\r
-{\r
-portBASE_TYPE xReturn = pdPASS;\r
-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;\r
-static unsigned long ulLastFlop1CycleCount = 0, ulLastFlop2CycleCount = 0;\r
-\r
- /* Called from the 'check' task.\r
- \r
- The flop tasks cannot be currently running, check their saved registers\r
- are as expected. The tests tasks do not perform any flop operations so\r
- their registers should be as per their initial setting. */\r
- for( x = 0; x < flopNUMBER_OF_TASKS; x++ )\r
- {\r
- for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )\r
- {\r
- if( ulFlopRegisters[ x ][ y ] != z )\r
- {\r
- xReturn = pdFAIL;\r
- break;\r
- }\r
-\r
- z++;\r
- }\r
- }\r
-\r
- /* Check both tasks have actually been swapped in and out since this function\r
- last executed. */\r
- if( ulFlop1CycleCount == ulLastFlop1CycleCount )\r
- {\r
- xReturn = pdFAIL;\r
- }\r
-\r
- if( ulFlop2CycleCount == ulLastFlop2CycleCount )\r
- {\r
- xReturn = pdFAIL;\r
- }\r
-\r
- ulLastFlop1CycleCount = ulFlop1CycleCount;\r
- ulLastFlop2CycleCount = ulFlop2CycleCount;\r
-\r
- return xReturn;\r
-}\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#ifndef FLOP_REG_TEST_H\r
-#define FLOP_REG_TEST_H\r
-\r
-void vStartFlopRegTests( void );\r
-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void );\r
-\r
-#endif\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Creates eight tasks, each of which loops continuously performing a\r
- * floating point calculation.\r
- *\r
- * All the tasks run at the idle priority and never block or yield. This causes \r
- * all eight tasks to time slice with the idle task. Running at the idle priority \r
- * means that these tasks will get pre-empted any time another task is ready to run\r
- * or a time slice occurs. More often than not the pre-emption will occur mid \r
- * calculation, creating a good test of the schedulers context switch mechanism - a \r
- * calculation producing an unexpected result could be a symptom of a corruption in \r
- * the context of a task.\r
- *\r
- * This file demonstrates the use of the task tag and traceTASK_SWITCHED_IN and\r
- * traceTASK_SWITCHED_OUT macros to save and restore the floating point context.\r
- */\r
-\r
-#include <stdlib.h>\r
-#include <math.h>\r
-\r
-/* Scheduler include files. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/* Demo program include files. */\r
-#include "flop.h"\r
-\r
-/* Misc. definitions. */\r
-#define mathSTACK_SIZE configMINIMAL_STACK_SIZE\r
-#define mathNUMBER_OF_TASKS ( 8 )\r
-\r
-/* Four tasks, each of which performs a different floating point calculation. \r
-Each of the four is created twice. */\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask1, pvParameters );\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask2, pvParameters );\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask3, pvParameters );\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask4, pvParameters );\r
-\r
-/* These variables are used to check that all the tasks are still running. If a \r
-task gets a calculation wrong it will stop incrementing its check variable. */\r
-static volatile unsigned short usTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };\r
-\r
-/* Buffers into which the flop registers will be saved. There is a buffer for \r
-each task created within this file. Zeroing out this array is the normal and\r
-safe option as this will cause the task to start with all zeros in its flop\r
-context. */\r
-static unsigned long ulFlopRegisters[ mathNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-void vStartMathTasks( unsigned portBASE_TYPE uxPriority )\r
-{\r
-TaskHandle_t xTaskJustCreated;\r
-portBASE_TYPE x, y;\r
-\r
- /* Place known values into the buffers into which the flop registers are \r
- to be saved. This is for debug purposes only, it is not normally\r
- required. The last position in each array is left at zero as the status\r
- register will be loaded from there. \r
- \r
- It is intended that these values can be viewed being loaded into the\r
- flop registers when a task is started - however the Insight debugger\r
- does not seem to want to show the flop register values. */\r
- for( x = 0; x < mathNUMBER_OF_TASKS; x++ )\r
- {\r
- for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )\r
- {\r
- ulFlopRegisters[ x ][ y ] = ( x + 1 );\r
- }\r
- }\r
-\r
- /* Create the first task - passing it the address of the check variable\r
- that it is going to increment. This check variable is used as an \r
- indication that the task is still running. */\r
- xTaskCreate( vCompetingMathTask1, "Math1", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, &xTaskJustCreated );\r
-\r
- /* The task tag value is a value that can be associated with a task, but \r
- is not used by the scheduler itself. Its use is down to the application so\r
- it makes a convenient place in this case to store the pointer to the buffer\r
- into which the flop context of the task will be stored. The first created\r
- task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ], etc. */\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );\r
-\r
- /* Create another 7 tasks, allocating a buffer for each. */\r
- xTaskCreate( vCompetingMathTask2, "Math2", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask3, "Math3", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 2 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask4, "Math4", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 3 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask1, "Math5", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 4 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask2, "Math6", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 5 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask3, "Math7", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 6 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask4, "Math8", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 7 ][ 0 ] ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask1, pvParameters )\r
-{\r
-volatile portFLOAT ff1, ff2, ff3, ff4;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-volatile portFLOAT fAnswer;\r
-short sError = pdFALSE;\r
-\r
- ff1 = 123.4567F;\r
- ff2 = 2345.6789F;\r
- ff3 = -918.222F;\r
-\r
- fAnswer = ( ff1 + ff2 ) * ff3;\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- /* Keep performing a calculation and checking the result against a constant. */\r
- for(;;)\r
- {\r
- ff1 = 123.4567F;\r
- ff2 = 2345.6789F;\r
- ff3 = -918.222F;\r
-\r
- ff4 = ( ff1 + ff2 ) * ff3;\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- /* If the calculation does not match the expected constant, stop the \r
- increment of the check variable. */\r
- if( fabs( ff4 - fAnswer ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask2, pvParameters )\r
-{\r
-volatile portFLOAT ff1, ff2, ff3, ff4;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-volatile portFLOAT fAnswer;\r
-short sError = pdFALSE;\r
-\r
- ff1 = -389.38F;\r
- ff2 = 32498.2F;\r
- ff3 = -2.0001F;\r
-\r
- fAnswer = ( ff1 / ff2 ) * ff3;\r
-\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- /* Keep performing a calculation and checking the result against a constant. */\r
- for( ;; )\r
- {\r
- ff1 = -389.38F;\r
- ff2 = 32498.2F;\r
- ff3 = -2.0001F;\r
-\r
- ff4 = ( ff1 / ff2 ) * ff3;\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
- \r
- /* If the calculation does not match the expected constant, stop the \r
- increment of the check variable. */\r
- if( fabs( ff4 - fAnswer ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know\r
- this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask3, pvParameters )\r
-{\r
-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-const size_t xArraySize = 10;\r
-size_t xPosition;\r
-short sError = pdFALSE;\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );\r
-\r
- /* Keep filling an array, keeping a running total of the values placed in the \r
- array. Then run through the array adding up all the values. If the two totals \r
- do not match, stop the check variable from incrementing. */\r
- for( ;; )\r
- {\r
- fTotal1 = 0.0F;\r
- fTotal2 = 0.0F;\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- pfArray[ xPosition ] = ( portFLOAT ) xPosition + 5.5F;\r
- fTotal1 += ( portFLOAT ) xPosition + 5.5F; \r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- fTotal2 += pfArray[ xPosition ];\r
- }\r
-\r
- fDifference = fTotal1 - fTotal2;\r
- if( fabs( fDifference ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask4, pvParameters )\r
-{\r
-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-const size_t xArraySize = 10;\r
-size_t xPosition;\r
-short sError = pdFALSE;\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );\r
-\r
- /* Keep filling an array, keeping a running total of the values placed in the \r
- array. Then run through the array adding up all the values. If the two totals \r
- do not match, stop the check variable from incrementing. */\r
- for( ;; )\r
- {\r
- fTotal1 = 0.0F;\r
- fTotal2 = 0.0F;\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- pfArray[ xPosition ] = ( portFLOAT ) xPosition * 12.123F;\r
- fTotal1 += ( portFLOAT ) xPosition * 12.123F; \r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- fTotal2 += pfArray[ xPosition ];\r
- }\r
-\r
- fDifference = fTotal1 - fTotal2;\r
- if( fabs( fDifference ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
- }\r
-} \r
-/*-----------------------------------------------------------*/\r
-\r
-/* This is called to check that all the created tasks are still running. */\r
-portBASE_TYPE xAreMathsTaskStillRunning( void )\r
-{\r
-/* Keep a history of the check variables so we know if they have been incremented \r
-since the last call. */\r
-static unsigned short usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };\r
-portBASE_TYPE xReturn = pdTRUE, xTask;\r
-\r
- /* Check the maths tasks are still running by ensuring their check variables \r
- are still incrementing. */\r
- for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )\r
- {\r
- if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )\r
- {\r
- /* The check has not incremented so an error exists. */\r
- xReturn = pdFALSE;\r
- }\r
-\r
- usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];\r
- }\r
-\r
- return xReturn;\r
-}\r
-\r
-\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Creates all the demo application tasks, then starts the scheduler. The WEB\r
- * documentation provides more details of the demo application tasks.\r
- * \r
- * In addition to the standard demo tasks, the follow demo specific tasks are\r
- * create:\r
- *\r
- * The "Check" task. This only executes every three seconds but has the highest \r
- * priority so is guaranteed to get processor time. Its main function is to \r
- * check that all the other tasks are still operational. Most tasks maintain \r
- * a unique count that is incremented each time the task successfully completes \r
- * its function. Should any error occur within such a task the count is \r
- * permanently halted. The check task inspects the count of each task to ensure \r
- * it has changed since the last time the check task executed. If all the count \r
- * variables have changed all the tasks are still executing error free, and the \r
- * check task toggles the onboard LED. Should any task contain an error at any time \r
- * the LED toggle rate will change from 3 seconds to 500ms.\r
- *\r
- * The "Register Check" tasks. These tasks fill the CPU registers with known\r
- * values, then check that each register still contains the expected value, the\r
- * discovery of an unexpected value being indicative of an error in the RTOS\r
- * context switch mechanism. The register check tasks operate at low priority\r
- * so are switched in and out frequently.\r
- *\r
- */\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/* Xilinx library includes. */\r
-#include "xcache_l.h"\r
-#include "xintc.h"\r
-\r
-/* Demo application includes. */\r
-#include "flash.h"\r
-#include "integer.h"\r
-#include "comtest2.h"\r
-#include "semtest.h"\r
-#include "BlockQ.h"\r
-#include "dynamic.h"\r
-#include "GenQTest.h"\r
-#include "QPeek.h"\r
-#include "blocktim.h"\r
-#include "death.h"\r
-#include "partest.h"\r
-#include "countsem.h"\r
-#include "recmutex.h"\r
-#include "flop.h"\r
-#include "flop-reg-test.h"\r
-\r
-/* Priorities assigned to the demo tasks. */\r
-#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )\r
-#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
-#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainQUEUE_BLOCK_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainDEATH_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainGENERIC_QUEUE_PRIORITY ( tskIDLE_PRIORITY )\r
-#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainFLOP_PRIORITY ( tskIDLE_PRIORITY )\r
-\r
-/* The first LED used by the COM test and check tasks respectively. */\r
-#define mainCOM_TEST_LED ( 4 )\r
-#define mainCHECK_TEST_LED ( 3 )\r
-\r
-/* The baud rate used by the comtest tasks is set by the hardware, so the\r
-baud rate parameters passed into the comtest initialisation has no effect. */\r
-#define mainBAUD_SET_IN_HARDWARE ( 0 )\r
-\r
-/* Delay periods used by the check task. If no errors have been found then\r
-the check LED will toggle every mainNO_ERROR_CHECK_DELAY milliseconds. If an\r
-error has been found at any time then the toggle rate will increase to \r
-mainERROR_CHECK_DELAY milliseconds. */\r
-#define mainNO_ERROR_CHECK_DELAY ( ( TickType_t ) 3000 / portTICK_PERIOD_MS )\r
-#define mainERROR_CHECK_DELAY ( ( TickType_t ) 500 / portTICK_PERIOD_MS )\r
-\r
-\r
-/* \r
- * The tasks defined within this file - described within the comments at the\r
- * head of this page. \r
- */\r
-static void prvRegTestTask1( void *pvParameters );\r
-static void prvRegTestTask2( void *pvParameters );\r
-static void prvErrorChecks( void *pvParameters );\r
-\r
-/*\r
- * Called by the 'check' task to inspect all the standard demo tasks within\r
- * the system, as described within the comments at the head of this page.\r
- */\r
-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void );\r
-\r
-/*\r
- * Perform any hardware initialisation required by the demo application.\r
- */\r
-static void prvSetupHardware( void );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* xRegTestStatus will get set to pdFAIL by the regtest tasks if they\r
-discover an unexpected value. */\r
-static volatile unsigned portBASE_TYPE xRegTestStatus = pdPASS;\r
-\r
-/* Counters used to ensure the regtest tasks are still running. */\r
-static volatile unsigned long ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-int main( void )\r
-{\r
-\r
- /* Must be called prior to installing any interrupt handlers! */\r
- vPortSetupInterruptController();\r
-\r
- /* In this case prvSetupHardware() just enables the caches and and\r
- configures the IO ports for the LED outputs. */\r
- prvSetupHardware();\r
-\r
- /* Start the standard demo application tasks. Note that the baud rate used\r
- by the comtest tasks is set by the hardware, so the baud rate parameter\r
- passed has no effect. */\r
- vStartLEDFlashTasks( mainLED_TASK_PRIORITY ); \r
- vStartIntegerMathTasks( tskIDLE_PRIORITY );\r
- vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_SET_IN_HARDWARE, mainCOM_TEST_LED );\r
- vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
- vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY ); \r
- vStartDynamicPriorityTasks(); \r
- vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );\r
- vStartQueuePeekTasks();\r
- vCreateBlockTimeTasks();\r
- vStartCountingSemaphoreTasks();\r
- vStartRecursiveMutexTasks();\r
-\r
- #if ( configUSE_FPU == 1 )\r
- vStartMathTasks( mainFLOP_PRIORITY );\r
- vStartFlopRegTests();\r
- #endif\r
-\r
- /* Create the tasks defined within this file. */\r
- xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
- xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
- xTaskCreate( prvErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
-\r
- /* The suicide tasks must be started last as they record the number of other\r
- tasks that exist within the system. The value is then used to ensure at run\r
- time the number of tasks that exists is within expected bounds. */\r
- vCreateSuicidalTasks( mainDEATH_PRIORITY );\r
-\r
- /* Now start the scheduler. Following this call the created tasks should\r
- be executing. */ \r
- vTaskStartScheduler();\r
-\r
- /* vTaskStartScheduler() will only return if an error occurs while the \r
- idle task is being created. */\r
- for( ;; );\r
-\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void )\r
-{\r
-portBASE_TYPE lReturn = pdPASS;\r
-static unsigned long ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL;\r
-\r
- /* The demo tasks maintain a count that increments every cycle of the task\r
- provided that the task has never encountered an error. This function \r
- checks the counts maintained by the tasks to ensure they are still being\r
- incremented. A count remaining at the same value between calls therefore\r
- indicates that an error has been detected. */\r
-\r
- if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreComTestTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xIsCreateTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- #if ( configUSE_FPU == 1 )\r
- if( xAreMathsTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreFlopRegisterTestsStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- #endif\r
-\r
- /* Have the register test tasks found any errors? */\r
- if( xRegTestStatus != pdPASS )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- /* Are the register test tasks still looping? */\r
- if( ulLastRegTest1Counter == ulRegTest1Counter )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- else\r
- {\r
- ulLastRegTest1Counter = ulRegTest1Counter;\r
- }\r
-\r
- if( ulLastRegTest2Counter == ulRegTest2Counter )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- else\r
- {\r
- ulLastRegTest2Counter = ulRegTest2Counter;\r
- }\r
-\r
- return lReturn;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvErrorChecks( void *pvParameters )\r
-{\r
-TickType_t xDelayPeriod = mainNO_ERROR_CHECK_DELAY, xLastExecutionTime;\r
-volatile unsigned portBASE_TYPE uxFreeStack;\r
-\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- /* This call is just to demonstrate the use of the function - nothing is\r
- done with the value. You would expect the stack high water mark to be\r
- lower (the function to return a larger value) here at function entry than\r
- later following calls to other functions. */\r
- uxFreeStack = uxTaskGetStackHighWaterMark( NULL );\r
-\r
- /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
- works correctly. */\r
- xLastExecutionTime = xTaskGetTickCount();\r
-\r
- /* Cycle for ever, delaying then checking all the other tasks are still\r
- operating without error. */\r
- for( ;; )\r
- {\r
- /* Again just for demo purposes - uxFreeStack should have a lower value\r
- here than following the call to uxTaskGetStackHighWaterMark() on the\r
- task entry. */\r
- uxFreeStack = uxTaskGetStackHighWaterMark( NULL );\r
-\r
- /* Wait until it is time to check again. The time we wait here depends\r
- on whether an error has been detected or not. When an error is \r
- detected the time is shortened resulting in a faster LED flash rate. */\r
- vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );\r
-\r
- /* See if the other tasks are all ok. */\r
- if( prvCheckOtherTasksAreStillRunning() != pdPASS )\r
- {\r
- /* An error occurred in one of the tasks so shorten the delay \r
- period - which has the effect of increasing the frequency of the\r
- LED toggle. */\r
- xDelayPeriod = mainERROR_CHECK_DELAY;\r
- }\r
-\r
- /* Flash! */\r
- vParTestToggleLED( mainCHECK_TEST_LED );\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupHardware( void )\r
-{\r
- XCache_EnableICache( 0x80000000 );\r
- XCache_EnableDCache( 0x80000000 );\r
-\r
- /* Setup the IO port for use with the LED outputs. */\r
- vParTestInitialise();\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void prvRegTest1Pass( void )\r
-{\r
- /* Called from the inline assembler - this cannot be static\r
- otherwise it can get optimised away. */\r
- ulRegTest1Counter++;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void prvRegTest2Pass( void )\r
-{\r
- /* Called from the inline assembler - this cannot be static\r
- otherwise it can get optimised away. */\r
- ulRegTest2Counter++;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void prvRegTestFail( void )\r
-{\r
- /* Called from the inline assembler - this cannot be static\r
- otherwise it can get optimised away. */\r
- xRegTestStatus = pdFAIL;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvRegTestTask1( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- /* The first register test task as described at the top of this file. The\r
- values used in the registers are different to those use in the second \r
- register test task. Also, unlike the second register test task, this task\r
- yields between setting the register values and subsequently checking the\r
- register values. */\r
- asm volatile\r
- (\r
- "RegTest1Start: \n\t" \\r
- " \n\t" \\r
- " li 0, 301 \n\t" \\r
- " mtspr 256, 0 #USPRG0 \n\t" \\r
- " li 0, 501 \n\t" \\r
- " mtspr 8, 0 #LR \n\t" \\r
- " li 0, 4 \n\t" \\r
- " mtspr 1, 0 #XER \n\t" \\r
- " \n\t" \\r
- " li 0, 1 \n\t" \\r
- " li 2, 2 \n\t" \\r
- " li 3, 3 \n\t" \\r
- " li 4, 4 \n\t" \\r
- " li 5, 5 \n\t" \\r
- " li 6, 6 \n\t" \\r
- " li 7, 7 \n\t" \\r
- " li 8, 8 \n\t" \\r
- " li 9, 9 \n\t" \\r
- " li 10, 10 \n\t" \\r
- " li 11, 11 \n\t" \\r
- " li 12, 12 \n\t" \\r
- " li 13, 13 \n\t" \\r
- " li 14, 14 \n\t" \\r
- " li 15, 15 \n\t" \\r
- " li 16, 16 \n\t" \\r
- " li 17, 17 \n\t" \\r
- " li 18, 18 \n\t" \\r
- " li 19, 19 \n\t" \\r
- " li 20, 20 \n\t" \\r
- " li 21, 21 \n\t" \\r
- " li 22, 22 \n\t" \\r
- " li 23, 23 \n\t" \\r
- " li 24, 24 \n\t" \\r
- " li 25, 25 \n\t" \\r
- " li 26, 26 \n\t" \\r
- " li 27, 27 \n\t" \\r
- " li 28, 28 \n\t" \\r
- " li 29, 29 \n\t" \\r
- " li 30, 30 \n\t" \\r
- " li 31, 31 \n\t" \\r
- " \n\t" \\r
- " sc \n\t" \\r
- " nop \n\t" \\r
- " \n\t" \\r
- " cmpwi 0, 1 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 2, 2 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 3, 3 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 4, 4 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 5, 5 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 6, 6 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 7, 7 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 8, 8 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 9, 9 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 10, 10 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 11, 11 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 12, 12 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 13, 13 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 14, 14 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 15, 15 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 16, 16 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 17, 17 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 18, 18 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 19, 19 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 20, 20 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 21, 21 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 22, 22 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 23, 23 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 24, 24 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 25, 25 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 26, 26 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 27, 27 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 28, 28 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 29, 29 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 30, 30 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 31, 31 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " \n\t" \\r
- " mfspr 0, 256 #USPRG0 \n\t" \\r
- " cmpwi 0, 301 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " mfspr 0, 8 #LR \n\t" \\r
- " cmpwi 0, 501 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " mfspr 0, 1 #XER \n\t" \\r
- " cmpwi 0, 4 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " \n\t" \\r
- " bl prvRegTest1Pass \n\t" \\r
- " b RegTest1Start \n\t" \\r
- " \n\t" \\r
- "RegTest1Fail: \n\t" \\r
- " \n\t" \\r
- " \n\t" \\r
- " bl prvRegTestFail \n\t" \\r
- " b RegTest1Start \n\t" \\r
- );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvRegTestTask2( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- /* The second register test task as described at the top of this file. \r
- Note that this task fills the registers with different values to the\r
- first register test task. */\r
- asm volatile\r
- (\r
- "RegTest2Start: \n\t" \\r
- " \n\t" \\r
- " li 0, 300 \n\t" \\r
- " mtspr 256, 0 #USPRG0 \n\t" \\r
- " li 0, 500 \n\t" \\r
- " mtspr 8, 0 #LR \n\t" \\r
- " li 0, 4 \n\t" \\r
- " mtspr 1, 0 #XER \n\t" \\r
- " \n\t" \\r
- " li 0, 11 \n\t" \\r
- " li 2, 12 \n\t" \\r
- " li 3, 13 \n\t" \\r
- " li 4, 14 \n\t" \\r
- " li 5, 15 \n\t" \\r
- " li 6, 16 \n\t" \\r
- " li 7, 17 \n\t" \\r
- " li 8, 18 \n\t" \\r
- " li 9, 19 \n\t" \\r
- " li 10, 110 \n\t" \\r
- " li 11, 111 \n\t" \\r
- " li 12, 112 \n\t" \\r
- " li 13, 113 \n\t" \\r
- " li 14, 114 \n\t" \\r
- " li 15, 115 \n\t" \\r
- " li 16, 116 \n\t" \\r
- " li 17, 117 \n\t" \\r
- " li 18, 118 \n\t" \\r
- " li 19, 119 \n\t" \\r
- " li 20, 120 \n\t" \\r
- " li 21, 121 \n\t" \\r
- " li 22, 122 \n\t" \\r
- " li 23, 123 \n\t" \\r
- " li 24, 124 \n\t" \\r
- " li 25, 125 \n\t" \\r
- " li 26, 126 \n\t" \\r
- " li 27, 127 \n\t" \\r
- " li 28, 128 \n\t" \\r
- " li 29, 129 \n\t" \\r
- " li 30, 130 \n\t" \\r
- " li 31, 131 \n\t" \\r
- " \n\t" \\r
- " cmpwi 0, 11 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 2, 12 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 3, 13 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 4, 14 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 5, 15 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 6, 16 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 7, 17 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 8, 18 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 9, 19 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 10, 110 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 11, 111 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 12, 112 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 13, 113 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 14, 114 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 15, 115 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 16, 116 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 17, 117 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 18, 118 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 19, 119 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 20, 120 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 21, 121 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 22, 122 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 23, 123 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 24, 124 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 25, 125 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 26, 126 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 27, 127 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 28, 128 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 29, 129 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 30, 130 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 31, 131 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " \n\t" \\r
- " mfspr 0, 256 #USPRG0 \n\t" \\r
- " cmpwi 0, 300 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " mfspr 0, 8 #LR \n\t" \\r
- " cmpwi 0, 500 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " mfspr 0, 1 #XER \n\t" \\r
- " cmpwi 0, 4 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " \n\t" \\r
- " bl prvRegTest2Pass \n\t" \\r
- " b RegTest2Start \n\t" \\r
- " \n\t" \\r
- "RegTest2Fail: \n\t" \\r
- " \n\t" \\r
- " \n\t" \\r
- " bl prvRegTestFail \n\t" \\r
- " b RegTest2Start \n\t" \\r
- );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* This hook function will get called if there is a suspected stack overflow.\r
-An overflow can cause the task name to be corrupted, in which case the task\r
-handle needs to be used to determine the offending task. */\r
-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName );\r
-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName )\r
-{\r
-/* To prevent the optimiser removing the variables. */\r
-volatile TaskHandle_t xTaskIn = xTask;\r
-volatile signed char *pcTaskNameIn = pcTaskName;\r
-\r
- /* Remove compiler warnings. */\r
- ( void ) xTaskIn;\r
- ( void ) pcTaskNameIn;\r
-\r
- /* The following three calls are simply to stop compiler warnings about the\r
- functions not being used - they are called from the inline assembly. */\r
- prvRegTest1Pass();\r
- prvRegTest2Pass();\r
- prvRegTestFail();\r
-\r
- for( ;; );\r
-}\r
-\r
-\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-\r
-/* Demo application includes. */\r
-#include "partest.h"\r
-\r
-/* Library includes. */\r
-#include "xparameters.h"\r
-#include "xgpio_l.h"\r
-\r
-/* Misc hardware specific definitions. */\r
-#define partstALL_AS_OUTPUT 0x00\r
-#define partstCHANNEL_1 0x01\r
-#define partstMAX_4BIT_LED 0x03\r
-\r
-/* The outputs are split into two IO sections, these variables maintain the \r
-current value of either section. */\r
-static unsigned portBASE_TYPE uxCurrentOutput4Bit, uxCurrentOutput5Bit;\r
-\r
-/*-----------------------------------------------------------*/\r
-/*\r
- * Setup the IO for the LED outputs.\r
- */\r
-void vParTestInitialise( void )\r
-{\r
- /* Set both sets of LED's on the demo board to outputs. */\r
- XGpio_mSetDataDirection( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );\r
- XGpio_mSetDataDirection( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );\r
-\r
- /* Start with all outputs off. */\r
- uxCurrentOutput4Bit = 0;\r
- XGpio_mSetDataReg( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, 0x00 );\r
- uxCurrentOutput5Bit = 0;\r
- XGpio_mSetDataReg( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, 0x00 );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )\r
-{\r
-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;\r
-\r
- portENTER_CRITICAL();\r
- {\r
- /* Which IO section does the LED being set/cleared belong to? The\r
- 4 bit or 5 bit outputs? */\r
- if( uxLED <= partstMAX_4BIT_LED )\r
- {\r
- uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput5Bit;\r
- } \r
- else\r
- {\r
- uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput4Bit;\r
- uxLED -= partstMAX_4BIT_LED;\r
- }\r
-\r
- /* Setup the bit mask accordingly. */\r
- uxLED = 0x01 << uxLED;\r
-\r
- /* Maintain the current output value. */\r
- if( xValue )\r
- {\r
- *puxCurrentValue |= uxLED;\r
- }\r
- else\r
- {\r
- *puxCurrentValue &= ~uxLED;\r
- }\r
-\r
- /* Write the value to the port. */\r
- XGpio_mSetDataReg( uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );\r
- }\r
- portEXIT_CRITICAL();\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestToggleLED( unsigned portBASE_TYPE uxLED )\r
-{\r
-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;\r
-\r
- portENTER_CRITICAL();\r
- {\r
- /* Which IO section does the LED being toggled belong to? The\r
- 4 bit or 5 bit outputs? */\r
- if( uxLED <= partstMAX_4BIT_LED )\r
- {\r
-\r
- uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput5Bit;\r
- } \r
- else\r
- {\r
- uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput4Bit;\r
- uxLED -= partstMAX_4BIT_LED;\r
- }\r
-\r
- /* Setup the bit mask accordingly. */\r
- uxLED = 0x01 << uxLED;\r
-\r
- /* Maintain the current output value. */\r
- if( *puxCurrentValue & uxLED )\r
- {\r
- *puxCurrentValue &= ~uxLED;\r
- }\r
- else\r
- {\r
- *puxCurrentValue |= uxLED;\r
- }\r
-\r
- /* Write the value to the port. */\r
- XGpio_mSetDataReg(uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );\r
- }\r
- portEXIT_CRITICAL();\r
-}\r
-\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-\r
-/* \r
- BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART\r
-*/\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "queue.h"\r
-#include "task.h"\r
-\r
-/* Demo application includes. */\r
-#include "serial.h"\r
-\r
-/* Library includes. */\r
-#include "xparameters.h"\r
-#include "xuartlite.h"\r
-#include "xuartlite_l.h"\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Queues used to hold received characters, and characters waiting to be\r
-transmitted. */\r
-static QueueHandle_t xRxedChars; \r
-static QueueHandle_t xCharsForTx; \r
-\r
-/* Structure that maintains information on the UART being used. */\r
-static XUartLite xUART;\r
-\r
-/*\r
- * Sample UART interrupt handler. Note this is used to demonstrate the kernel\r
- * features and test the port - it is not intended to represent an efficient\r
- * implementation.\r
- */\r
-static void vSerialISR( XUartLite *pxUART );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
-{\r
- /* NOTE: The baud rate used by this driver is determined by the hardware\r
- parameterization of the UART Lite peripheral, and the baud value passed to\r
- this function has no effect. */\r
- ( void ) ulWantedBaud;\r
-\r
- /* Create the queues used to hold Rx and Tx characters. */\r
- xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );\r
- xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );\r
-\r
- /* Only initialise the UART if the queues were created correctly. */\r
- if( ( xRxedChars != NULL ) && ( xCharsForTx != NULL ) )\r
- {\r
-\r
- XUartLite_Initialize( &xUART, XPAR_RS232_UART_DEVICE_ID );\r
- XUartLite_ResetFifos( &xUART );\r
- XUartLite_DisableInterrupt( &xUART );\r
-\r
- if( xPortInstallInterruptHandler( XPAR_XPS_INTC_0_RS232_UART_INTERRUPT_INTR, ( XInterruptHandler )vSerialISR, (void *)&xUART ) == pdPASS )\r
- {\r
- /* xPortInstallInterruptHandler() could fail if \r
- vPortSetupInterruptController() has not been called prior to this \r
- function. */\r
- XUartLite_EnableInterrupt( &xUART );\r
- }\r
- }\r
- \r
- /* There is only one port so the handle is not used. */\r
- return ( xComPortHandle ) 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
-{\r
- /* The port handle is not required as this driver only supports one UART. */\r
- ( void ) pxPort;\r
-\r
- /* Get the next character from the buffer. Return false if no characters\r
- are available, or arrive before xBlockTime expires. */\r
- if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )\r
- {\r
- return pdTRUE;\r
- }\r
- else\r
- {\r
- return pdFALSE;\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
-{\r
-portBASE_TYPE xReturn = pdTRUE;\r
-\r
- /* Just to remove compiler warning. */\r
- ( void ) pxPort;\r
-\r
- portENTER_CRITICAL();\r
- {\r
- /* If the UART FIFO is full we can block posting the new data on the\r
- Tx queue. */\r
- if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) )\r
- {\r
- if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )\r
- {\r
- xReturn = pdFAIL;\r
- }\r
- }\r
- /* Otherwise, if there is data already in the queue we should add the\r
- new data to the back of the queue to ensure the sequencing is \r
- maintained. */\r
- else if( uxQueueMessagesWaiting( xCharsForTx ) )\r
- {\r
- if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )\r
- {\r
- xReturn = pdFAIL;\r
- } \r
- }\r
- /* If the UART FIFO is not full and there is no data already in the\r
- queue we can write directly to the FIFO without disrupting the \r
- sequence. */\r
- else\r
- {\r
- XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar );\r
- }\r
- }\r
- portEXIT_CRITICAL();\r
-\r
- return xReturn;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vSerialClose( xComPortHandle xPort )\r
-{\r
- /* Not supported as not required by the demo application. */\r
- ( void ) xPort;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vSerialISR( XUartLite *pxUART )\r
-{\r
-unsigned long ulISRStatus;\r
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE, lDidSomething;\r
-char cChar;\r
-\r
- /* Just to remove compiler warning. */\r
- ( void ) pxUART;\r
-\r
- do\r
- {\r
- lDidSomething = pdFALSE;\r
-\r
- ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );\r
-\r
- if( ( ulISRStatus & XUL_SR_RX_FIFO_VALID_DATA ) != 0 )\r
- {\r
- /* A character is available - place it in the queue of received\r
- characters. This might wake a task that was blocked waiting for \r
- data. */\r
- cChar = ( char ) XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET );\r
- xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );\r
- lDidSomething = pdTRUE;\r
- }\r
- \r
- if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 )\r
- {\r
- /* There is space in the FIFO - if there are any characters queue for\r
- transmission they can be sent to the UART now. This might unblock a\r
- task that was waiting for space to become available on the Tx queue. */\r
- if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )\r
- {\r
- XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );\r
- lDidSomething = pdTRUE;\r
- } \r
- }\r
- } while( lDidSomething == pdTRUE );\r
-\r
- /* If we woke any tasks we may require a context switch. */\r
- if( xHigherPriorityTaskWoken )\r
- {\r
- portYIELD_FROM_ISR();\r
- }\r
-}\r
-\r
-\r
-\r
--- /dev/null
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3\r
+from http://sourceforge.net/projects/freertos/files/FreeRTOS/\r
+\r
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
- 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;
- }
-
+++ /dev/null
-<?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_ > $stackToEast_AbvSbs_H_)">
- <xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
- </xsl:if>
-
- <xsl:if test="not($stackToWest_AbvSbs_H_ > $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_ > $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_ > $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_ > $vert_line_y2_">
- <xsl:value-of select="$vert_line_y2_"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $vert_line_y2_">
- <xsl:value-of select="$vert_line_y2_"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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
+++ /dev/null
-<?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>
+++ /dev/null
-<?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 < /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 < /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 < $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 < $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 < $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 < $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 < $iStackIdx)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX < $iStackIdx)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX < $iStackIdx)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST <= $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 < $iStackToEast)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX < $iStackToEast)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX < $iStackToEast)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST < $iStackToEast) or (not($iStackToWest = 'NONE') and (@EAST <= $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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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_ > 30)">
- <xsl:call-template name="Draw_IOPorts_4Sides"/>
- </xsl:if>
-
- <xsl:if test="($ports_count_ <= 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_ >= ($ports_per_side_ * 0) and ($pcount_ < ($ports_per_side_ * 1)))">W</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 1) and ($pcount_ < ($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_ >= ($ports_per_side_ * 0) and ($pcount_ < ($ports_per_side_ * 1)))">W</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 1) and ($pcount_ < ($ports_per_side_ * 2)))">S</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 2) and ($pcount_ < ($ports_per_side_ * 3)))">E</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 3) and ($pcount_ < ($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>
+++ /dev/null
-<?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 > ($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 > ($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> </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 < /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_ >= ($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_ < ($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_ > $vert_line_y2_">
- <xsl:value-of select="$vert_line_y2_"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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_ > $vert_line_y2_">
- <xsl:value-of select="($vert_line_y1_ - $vert_line_y2_)"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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
+++ /dev/null
-<?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_ > 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) <= 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) <= 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_ > 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_ > 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 > 9)">4.5</xsl:if>
- <xsl:if test="not($iIntr_PRI > 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 < $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>
-
+++ /dev/null
-<?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 < /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) <= 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>
+++ /dev/null
- 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;
- }
+++ /dev/null
-<?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 > 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 > 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">   <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">          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">   <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">   <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">   <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">   <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">   <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">   <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">   <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">   <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_ > 16"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
- <xsl:if test="$gpin_CNT_ <= 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">  indicates Clock ports, (SIGIS = CLK) </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">  indicates Interrupt ports,(SIGIS = INTR) </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">  indicates Reset ports, (SIGIS = RST) </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">  Indicates ports that instantiate or infer IOB primitives, (IOB_STATE = BUF or REG) </SPAN>
- </TD>
-
- <xsl:if test="$gpin_CNT_ <= 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"> CLK </SPAN></xsl:if>
- <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if>
- <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </SPAN></xsl:if>
- </TD>
- </xsl:for-each>
-
- </TABLE>
- </TD>
- </xsl:if>
-
- <xsl:if test="$gpin_CNT_ > 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() <= $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"> CLK </SPAN></xsl:if>
- <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if>
- <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </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"> </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() > $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"> CLK </SPAN></xsl:if>
- <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if>
- <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </SPAN></xsl:if>
- </TD>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:if test="$left_extra_ > 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"> </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_ < 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_ > 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>
+++ /dev/null
-<?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">
-   <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">⌊</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"> </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">⌋</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_ > 10">1</xsl:if>
- <xsl:if test="not($mhsParamCNT_ > 10)">0</xsl:if>
- </xsl:variable>
-
- <xsl:variable name="table_width_">
- <xsl:if test="$mhsParamCNT_ > 10"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
- <xsl:if test="$mhsParamCNT_ <= 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_ > 10">4</xsl:if>
- <xsl:if test="$mhsParamCNT_ <= 10">2</xsl:if>
- </xsl:variable>
-
- <xsl:variable name="mdr_othr_col_">
- <xsl:if test="$mhsParamCNT_ > 10">2</xsl:if>
- <xsl:if test="$mhsParamCNT_ <= 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_ > 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_ <= 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_ > 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() <= $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"> </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() > $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_ > 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"> </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>
+++ /dev/null
-<?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    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'">■</xsl:if>
- <xsl:if test="not(@IS_DATA='TRUE')"> </xsl:if>
- </xsl:variable>
-
- <xsl:variable name="isinst">
- <xsl:if test="@IS_INSTRUCTION='TRUE'">
- ■
- </xsl:if>
- <xsl:if test="not(@IS_INSTRUCTION='TRUE')">
-  
- </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>
+++ /dev/null
-<?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 > 1">
- <SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processors </SPAN>
- </xsl:if>
- <xsl:if test="not($proc_CNT > 1)">
- <SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processor </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">   <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">          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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 =================================== -->
+++ /dev/null
-<!-- =====================================================================
- 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; >
+++ /dev/null
-
-<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
">
-
- <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 & 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
+++ /dev/null
- -pe ppc405_0 $(PPC405_0_BOOTLOOP) \r
+++ /dev/null
- -p virtex4\r
+++ /dev/null
- -p xc4vfx12ff668-10 -lang vhdl
-\r
+++ /dev/null
-ppc405_0\r
-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\r
-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h \r
-RTOSDEMO_CC = powerpc-eabi-gcc\r
-RTOSDEMO_CC_SIZE = powerpc-eabi-size\r
-RTOSDEMO_CC_OPT = -O0\r
-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\r
-RTOSDEMO_CC_SEARCH = # -B\r
-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L\r
-RTOSDEMO_INCLUDES = -I./ppc405_0/include/ -IRTOSDemo/ # -I\r
-RTOSDEMO_LFLAGS = # -l\r
-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld\r
-RTOSDEMO_CC_DEBUG_FLAG = -g \r
-RTOSDEMO_CC_PROFILE_FLAG = # -pg\r
-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi\r
-RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=sp_full \r
-RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=\r
-RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=\r
-RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=\r
- $(RTOSDEMO_CC_INFERRED_FLAGS) \\r
+++ /dev/null
- -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/\r
+++ /dev/null
-
-<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>\r
+++ /dev/null
-ppc405_0\r
-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 \r
-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 \r
-TESTAPP_PERIPHERAL_CC = powerpc-eabi-gcc\r
-TESTAPP_PERIPHERAL_CC_SIZE = powerpc-eabi-size\r
-TESTAPP_PERIPHERAL_CC_OPT = -O0\r
-TESTAPP_PERIPHERAL_CFLAGS = \r
-TESTAPP_PERIPHERAL_CC_SEARCH = # -B\r
-TESTAPP_PERIPHERAL_LIBPATH = -L./ppc405_0/lib/ # -L\r
-TESTAPP_PERIPHERAL_INCLUDES = -I./ppc405_0/include/ -ITestApp_Peripheral/src/ # -I\r
-TESTAPP_PERIPHERAL_LFLAGS = # -l\r
-TESTAPP_PERIPHERAL_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/TestApp_Peripheral_LinkScr.ld\r
-TESTAPP_PERIPHERAL_CC_DEBUG_FLAG = -g \r
-TESTAPP_PERIPHERAL_CC_PROFILE_FLAG = # -pg\r
-TESTAPP_PERIPHERAL_CC_GLOBPTR_FLAG= # -msdata=eabi\r
-TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS= -mfpu=sp_full \r
-TESTAPP_PERIPHERAL_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=\r
-TESTAPP_PERIPHERAL_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=\r
-TESTAPP_PERIPHERAL_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=\r
- $(TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS) \\r
+++ /dev/null
- -p xc4vfx12ff668-10\r
+++ /dev/null
--device xc4vfx12ff668-10data/system.ucf7 0\r
+++ /dev/null
--device xc4vfx12ff668-10data/system.ucf 0\r
+++ /dev/null
-<!-- =====================================================================
- 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; >
+++ /dev/null
- 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;
- }
-
+++ /dev/null
-<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>
+++ /dev/null
-<?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>
+++ /dev/null
-############################################################################\r
-## This system.ucf file is generated by Base System Builder based on the\r
-## settings in the selected Xilinx Board Definition file. Please add other\r
-## user constraints to this file based on customer design specifications.\r
-############################################################################\r
-\r
-Net sys_clk_pin LOC=AE14;\r
-Net sys_clk_pin IOSTANDARD = LVCMOS33;\r
-Net sys_rst_pin LOC=D6;\r
-Net sys_rst_pin PULLUP;\r
-## System level constraints\r
-Net sys_clk_pin TNM_NET = sys_clk_pin;\r
-TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps;\r
-Net sys_rst_pin TIG;\r
-NET "ppc_reset_bus_Chip_Reset_Req" TPTHRU = "RST_GRP";\r
-NET "ppc_reset_bus_Core_Reset_Req" TPTHRU = "RST_GRP";\r
-NET "ppc_reset_bus_System_Reset_Req" TPTHRU = "RST_GRP";\r
-TIMESPEC "TS_RST1" = FROM CPUS THRU RST_GRP TO FFS TIG;\r
-Net fpga_0_SRAM_CLOCK LOC=AF7;\r
-Net fpga_0_SRAM_CLOCK SLEW = FAST;\r
-Net fpga_0_SRAM_CLOCK IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_CLOCK DRIVE = 16;\r
-\r
-## IO Devices constraints\r
-\r
-#### Module RS232_Uart constraints\r
-\r
-Net fpga_0_RS232_Uart_RX_pin LOC=W2;\r
-Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_RS232_Uart_TX_pin LOC=W1;\r
-Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33;\r
-\r
-#### Module LEDs_4Bit constraints\r
-\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> LOC=G5;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> TIG;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> LOC=G6;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> TIG;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> LOC=A11;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> TIG;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> LOC=A12;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> TIG;\r
-\r
-#### Module LEDs_Positions constraints\r
-\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> LOC=C6;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> LOC=F9;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> LOC=A5;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> LOC=E10;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> LOC=E2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> TIG;\r
-\r
-#### Module SysACE_CompactFlash constraints\r
-\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin LOC=AF11;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin PERIOD = 30000 ps;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> LOC=Y10;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> LOC=AA10;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> LOC=AC7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> LOC=Y7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> LOC=AA9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> LOC=Y9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> LOC=AB7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> LOC=AC9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> LOC=AB9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> LOC=AE6;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> LOC=AD6;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> LOC=AF9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> LOC=AE9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> LOC=AD8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> LOC=AC8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> LOC=AF4;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> LOC=AE4;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> LOC=AD3;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> LOC=AC3;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> LOC=AF6;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> LOC=AF5;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> LOC=AA7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin LOC=AD5;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin LOC=AA8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin LOC=Y8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin LOC=AD4;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin TIG;\r
-\r
-#### Module SRAM constraints\r
-\r
-Net fpga_0_SRAM_Mem_A_pin<29> LOC=Y1;\r
-Net fpga_0_SRAM_Mem_A_pin<29> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<29> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<29> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<28> LOC=Y2;\r
-Net fpga_0_SRAM_Mem_A_pin<28> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<28> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<28> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<27> LOC=AA1;\r
-Net fpga_0_SRAM_Mem_A_pin<27> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<27> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<27> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<26> LOC=AB1;\r
-Net fpga_0_SRAM_Mem_A_pin<26> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<26> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<26> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<25> LOC=AB2;\r
-Net fpga_0_SRAM_Mem_A_pin<25> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<25> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<25> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<24> LOC=AC1;\r
-Net fpga_0_SRAM_Mem_A_pin<24> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<24> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<24> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<23> LOC=AC2;\r
-Net fpga_0_SRAM_Mem_A_pin<23> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<23> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<23> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<22> LOC=AD1;\r
-Net fpga_0_SRAM_Mem_A_pin<22> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<22> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<22> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<21> LOC=AD2;\r
-Net fpga_0_SRAM_Mem_A_pin<21> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<21> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<21> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<20> LOC=AE3;\r
-Net fpga_0_SRAM_Mem_A_pin<20> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<20> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<20> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<19> LOC=AF3;\r
-Net fpga_0_SRAM_Mem_A_pin<19> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<19> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<19> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<18> LOC=W3;\r
-Net fpga_0_SRAM_Mem_A_pin<18> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<18> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<18> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<17> LOC=W6;\r
-Net fpga_0_SRAM_Mem_A_pin<17> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<17> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<17> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<16> LOC=W5;\r
-Net fpga_0_SRAM_Mem_A_pin<16> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<16> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<16> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<15> LOC=AA3;\r
-Net fpga_0_SRAM_Mem_A_pin<15> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<15> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<15> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<14> LOC=AA4;\r
-Net fpga_0_SRAM_Mem_A_pin<14> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<14> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<14> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<13> LOC=AB3;\r
-Net fpga_0_SRAM_Mem_A_pin<13> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<13> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<13> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<12> LOC=AB4;\r
-Net fpga_0_SRAM_Mem_A_pin<12> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<12> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<12> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<11> LOC=AC4;\r
-Net fpga_0_SRAM_Mem_A_pin<11> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<11> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<11> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<10> LOC=AB5;\r
-Net fpga_0_SRAM_Mem_A_pin<10> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<10> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<10> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<9> LOC=AC5;\r
-Net fpga_0_SRAM_Mem_A_pin<9> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<9> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<9> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> LOC=Y6;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> LOC=Y5;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> LOC=Y4;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> LOC=Y3;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_WEN_pin LOC=AB6;\r
-Net fpga_0_SRAM_Mem_WEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_WEN_pin SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_WEN_pin DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> LOC=AD13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> LOC=AC13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> LOC=AC15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> LOC=AC16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> LOC=AA11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> LOC=AA12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> LOC=AD14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> LOC=AC14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> LOC=AA13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> LOC=AB13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> LOC=AA15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> LOC=AA16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> LOC=AC11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> LOC=AC12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> LOC=AB14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> LOC=AA14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> LOC=D12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> LOC=E13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> LOC=C16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> LOC=D16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> LOC=D11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> LOC=C11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> LOC=E14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> LOC=D15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> LOC=D13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> LOC=D14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> LOC=F15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> LOC=F16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> LOC=F11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> LOC=F12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> LOC=F13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> LOC=F14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> LOC=AC6;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> LOC=V7;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin LOC=W4;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin DRIVE = 8;\r
-\r
+++ /dev/null
--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
+++ /dev/null
-setMode -bscan\r
-setCable -p auto\r
-identify\r
-assignfile -p 3 -file implementation/download.bit\r
-program -p 3\r
-quit\r
+++ /dev/null
-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
-
-
+++ /dev/null
-connect ppc hw -cable type xilinx_parallel port LPT1 frequency 2500000 -debugdevice cpunr 1 fpuType sp\r
+++ /dev/null
--p\r
-xc4vfx12ff668-10\r
--lang\r
-vhdl\r
-system.mhs\r
+++ /dev/null
-\1d\84æÄ®Òôtt¦Êè¬ÊäæÒÞÜ@Db`\b\`bDvC\84æÄ®Òôtt¦Êè\84ÞÂäÈ@D°ÒØÒÜðD@D¬ÒäèÊð@h@\9a\98h`f@\8aìÂØêÂèÒÞÜ@ ØÂèÌÞäÚD@DbDv,\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D\82¤\86\90\92¨\8a\86¨ª¤\8aD@DìÒäèÊðhDv,\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D\88\8a¬\92\86\8a¾¦\92´\8aD@DðÆhìÌðbdDv%\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D \82\86\96\82\8e\8aD@DÌÌllpDv&\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D¦ \8a\8a\88\8e¤\82\88\8aD@DZb`Dv3\84æÄ®Òôtt¦Êè¦òæèÊÚ@DààÆh`j¾ìÒäèÊðh¾àØÄìhlD@Db\``\ÂDv,\84æÄ®ÒôttªàÈÂèÊ\86ØÞÆÖ@D\84ª¦¾\8c¤\8a¢D@Db``\``````Dv,\84æÄ®ÒôttªàÈÂèÊ\86ØÞÆÖ@D\86\98\96¾\8c¤\8a¢D@Db``\``````Dv-\84æÄ®ÒôttªàÈÂèÊ\86ØÞÆÖ@D ¤\9e\86¾\8c¤\8a¢D@Dd``\``````Dv(\84æÄ®ÒôttªàÈÂèʦòæèÊÚ@D¤¦¨¾ \9e\98\82¤\92¨²D@D`Dv1\84æÄ®Òôtt\82ÈÈ äÞÆÊææÞä@DààÆh`j¾`D@DààÆh`j¾ìÒäèÊðhDv/\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\86\82\86\90\8aD@DbDv3\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\86¾ª¦\8a¾\8c ªD@DbDv:\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\88\8a\84ª\8e¾\92\8cD@D\8c \8e\82@\94¨\82\8eDv6\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\88\9e\86\9a@¦\92´\8aD@D\9c\9e\9c\8aDv6\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\92\9e\86\9a@¦\92´\8aD@D\9c\9e\9c\8aDv2\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\9e\86\9a¾\9e\9c\98²D@D`Dv2\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D¤¦dfd¾ªÂäèD@Dðàæ¾êÂäèØÒèÊDv9\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾\84\82ª\88¤\82¨\8aD@Drl``Dv7\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾\88\82¨\82¾\84\92¨¦D@DpDv8\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾\9e\88\88¾ \82¤\92¨²D@D`Dv8\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾ª¦\8a¾ \82¤\92¨²D@D`Dv<\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\92\9e¨² \8aD@D°\92\98¾ª\82¤¨¾¬bDv<\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@Dª¦\8a¾\92\9c¨\8a¤¤ª ¨D@D¨¤ª\8aDv-\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D\98\8a\88æ¾h\84ÒèD@Dðàæ¾ÎàÒÞDv;\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D\98\8a\88æ¾h\84ÒèD@D\92\9e¨² \8aD@D°\92\98¾\8e \92\9e¾¬bDv2\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D\98\8a\88æ¾ ÞæÒèÒÞÜæD@Dðàæ¾ÎàÒÞDv@\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D\98\8a\88æ¾ ÞæÒèÒÞÜæD@D\92\9e¨² \8aD@D°\92\98¾\8e \92\9e¾¬bDv9\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D¦òæ\82\86\8a¾\86ÞÚàÂÆè\8cØÂæÐD@Dðàæ¾æòæÂÆÊDvG\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¦òæ\82\86\8a¾\86ÞÚàÂÆè\8cØÂæÐD@D\92\9e¨² \8aD@D°\92\98¾¦²¦\82\86\8a¾¬bDv+\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D¦¤\82\9aD@Dðàæ¾ÚÆоÊÚÆDv5\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¦¤\82\9aD@D\92\9e¨² \8aD@D°\92\98¾\8a\9a\86¾¬bDv:\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\86\82\86\90\8a¾\86\82\9c\88\92\88\82¨\8a¦D@D¦¤\82\9avDv8\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\86¾\86\82\86\90\8a¾\84²¨\8a¾¦\92´\8aD@DblDv9\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\86¾\88\86\82\86\90\8a¾\84²¨\8a¾¦\92´\8aD@DblDv9\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\88\86\82\86\90\8a¾\86\9e¤\8a\98\92¦¨D@Dv¦¤\82\9aDv9\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\92\86\82\86\90\8a¾\86\9e¤\8a\98\92¦¨D@Dv¦¤\82\9aDv:\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\92\9c¦¨\82\9c\86\8a¾\9c\82\9a\8aD@DààÆh`j¾`Dv/\84æÄ®ÒôttªàÈÂèʦ®@D¦®¾\8e\8a\9c\8a¤\82¨\8a¾\9a\8a\9a¨\8a¦¨D@D\8c\82\98¦\8aDv1\84æÄ®ÒôttªàÈÂèʦ®@D¦®¾\8e\8a\9c\8a¤\82¨\8a¾ \8a¤\92 \90¨\8a¦¨D@D¨¤ª\8aDv)\84æÄ®ÒôttªàÈÂèʦ®@D¦®¾\8e\8a\9c\8a¤\82¨\8a¾¦®\82 ¦D@DDv7\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D\92\9c¦¨\82\9c\86\8a¾\9c\82\9a\8aD@DààÆh`j¾`Dv0\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾\84\9e\9e¨\9a\8a\9aD@D¦¤\82\9aDv.\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨\88\92\9cD@D\9cÞÜÊDv/\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨\88\9eª¨D@D\9cÞÜÊDv@\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾\88\82¨\82¾\92\9c¦D@D¦¤\82\9aDvK\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾\88\82¨\82¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤DvC\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾ ¤\9e\8e¤\82\9a¾\92\9c¦D@D¦¤\82\9aDvN\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾ ¤\9e\8e¤\82\9a¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤DvA\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¦¨\82\86\96¾\92\9c¦D@D¦¤\82\9aDvL\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¦¨\82\86\96¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤DvC\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¬\8a\86¨\9e¤¦¾\92\9c¦D@D¦¤\82\9aDvN\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¬\8a\86¨\9e¤¦¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤Dv
\ No newline at end of file
+++ /dev/null
-#################################################################\r
-# Makefile generated by Xilinx Platform Studio \r
-# Project:C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.xmp\r
-#\r
-# WARNING : This file will be re-generated every time a command\r
-# to run a make target is invoked. So, any changes made to this \r
-# file manually, will be lost when make is invoked next. \r
-#################################################################\r
-\r
-# Name of the Microprocessor system\r
-# The hardware specification of the system is in file :\r
-# C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.mhs\r
-# The software specification of the system is in file :\r
-# C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.mss\r
-\r
-include system_incl.make\r
-\r
-#################################################################\r
-# PHONY TARGETS\r
-#################################################################\r
-.PHONY: dummy\r
-.PHONY: netlistclean\r
-.PHONY: bitsclean\r
-.PHONY: simclean\r
-.PHONY: vpclean\r
-\r
-#################################################################\r
-# EXTERNAL TARGETS\r
-#################################################################\r
-all:\r
- @echo "Makefile to build a Microprocessor system :"\r
- @echo "Run make with any of the following targets"\r
- @echo " "\r
- @echo " netlist : Generates the netlist for the given MHS "\r
- @echo " bits : Runs Implementation tools to generate the bitstream"\r
- @echo " "\r
- @echo " libs : Configures the sw libraries for this system"\r
- @echo " program : Compiles the program sources for all the processor instances"\r
- @echo " "\r
- @echo " init_bram: Initializes bitstream with BRAM data"\r
- @echo " ace : Generate ace file from bitstream and elf"\r
- @echo " download : Downloads the bitstream onto the board"\r
- @echo " "\r
- @echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode"\r
- @echo " simmodel : Generates HDL simulation models for chosen simulation mode"\r
- @echo " behavioral_model : Generates behavioral HDL models with BRAM initialization"\r
- @echo " structural_model : Generates structural simulation HDL models with BRAM initialization"\r
- @echo " timing : Generates timing simulation HDL models with BRAM initialization"\r
- @echo " vp : Generates virtual platform model"\r
- @echo " "\r
- @echo " netlistclean: Deletes netlist"\r
- @echo " bitsclean: Deletes bit, ncd, bmm files"\r
- @echo " hwclean : Deletes implementation dir"\r
- @echo " libsclean: Deletes sw libraries"\r
- @echo " programclean: Deletes compiled ELF files"\r
- @echo " swclean : Deletes sw libraries and ELF files"\r
- @echo " simclean : Deletes simulation dir"\r
- @echo " vpclean : Deletes virtualplatform dir"\r
- @echo " clean : Deletes all generated files/directories"\r
- @echo " "\r
- @echo " make <target> : (Default)"\r
- @echo " Creates a Microprocessor system using default initializations"\r
- @echo " specified for each processor in MSS file"\r
-\r
-\r
-bits: $(SYSTEM_BIT)\r
-\r
-ace: $(SYSTEM_ACE)\r
-\r
-netlist: $(POSTSYN_NETLIST)\r
-\r
-libs: $(LIBRARIES)\r
-\r
-program: $(ALL_USER_ELF_FILES)\r
-\r
-download: $(DOWNLOAD_BIT) dummy\r
- @echo "*********************************************"\r
- @echo "Downloading Bitstream onto the target board"\r
- @echo "*********************************************"\r
- impact -batch etc/download.cmd\r
-\r
-init_bram: $(DOWNLOAD_BIT)\r
-\r
-sim: $(DEFAULT_SIM_SCRIPT)\r
- cd simulation/behavioral; \\r
- $(SIM_CMD) &\r
-\r
-simmodel: $(DEFAULT_SIM_SCRIPT)\r
-\r
-behavioral_model: $(BEHAVIORAL_SIM_SCRIPT)\r
-\r
-structural_model: $(STRUCTURAL_SIM_SCRIPT)\r
-\r
-vp: $(VPEXEC)\r
-\r
-clean: hwclean libsclean programclean simclean vpclean\r
- rm -f _impact.cmd\r
- rm -f *.log\r
-\r
-hwclean: netlistclean bitsclean\r
- rm -rf implementation synthesis xst hdl\r
- rm -rf xst.srp $(SYSTEM).srp\r
-\r
-netlistclean:\r
- rm -f $(POSTSYN_NETLIST)\r
- rm -f platgen.log\r
- rm -f $(BMM_FILE)\r
-\r
-bitsclean:\r
- rm -f $(SYSTEM_BIT)\r
- rm -f implementation/$(SYSTEM).ncd\r
- rm -f implementation/$(SYSTEM)_bd.bmm \r
- rm -f implementation/$(SYSTEM)_map.ncd \r
-\r
-simclean: \r
- rm -rf simulation/behavioral\r
- rm -f simgen.log\r
-\r
-swclean: libsclean programclean\r
- @echo ""\r
-\r
-libsclean: $(LIBSCLEAN_TARGETS)\r
- rm -f libgen.log\r
-\r
-programclean: $(PROGRAMCLEAN_TARGETS)\r
-\r
-vpclean:\r
- rm -rf virtualplatform\r
- rm -f vpgen.log\r
-\r
-#################################################################\r
-# SOFTWARE PLATFORM FLOW\r
-#################################################################\r
-\r
-\r
-$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt\r
- @echo "*********************************************"\r
- @echo "Creating software libraries..."\r
- @echo "*********************************************"\r
- libgen $(LIBGEN_OPTIONS) $(MSSFILE)\r
-\r
-\r
-ppc405_0_libsclean:\r
- rm -rf ppc405_0/\r
-\r
-#################################################################\r
-# SOFTWARE APPLICATION RTOSDEMO\r
-#################################################################\r
-\r
-RTOSDemo_program: $(RTOSDEMO_OUTPUT) \r
-\r
-$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \\r
- $(LIBRARIES) __xps/rtosdemo_compiler.opt\r
- @mkdir -p $(RTOSDEMO_OUTPUT_DIR) \r
- $(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \\r
- $(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \\r
- $(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) \r
- $(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) \r
- @echo ""\r
-\r
-RTOSDemo_programclean:\r
- rm -f $(RTOSDEMO_OUTPUT) \r
-\r
-#################################################################\r
-# BOOTLOOP ELF FILES\r
-#################################################################\r
-\r
-\r
-\r
-$(PPC405_0_BOOTLOOP): $(PPC405_BOOTLOOP)\r
- @mkdir -p $(BOOTLOOP_DIR)\r
- cp -f $(PPC405_BOOTLOOP) $(PPC405_0_BOOTLOOP)\r
-\r
-#################################################################\r
-# HARDWARE IMPLEMENTATION FLOW\r
-#################################################################\r
-\r
-\r
-$(BMM_FILE) \\r
-$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \\r
- $(CORE_STATE_DEVELOPMENT_FILES)\r
- @echo "****************************************************"\r
- @echo "Creating system netlist for hardware specification.."\r
- @echo "****************************************************"\r
- platgen $(PLATGEN_OPTIONS) $(MHSFILE)\r
-\r
-$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES)\r
- @echo "Running synthesis..."\r
- bash -c "cd synthesis; ./synthesis.sh"\r
-\r
-__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY)\r
- @echo "*********************************************"\r
- @echo "Running Xilinx Implementation tools.."\r
- @echo "*********************************************"\r
- @cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf\r
- xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/manage_fastruntime_opt.pl $(MANAGE_FASTRT_OPTIONS)\r
- xflow -wd implementation -p $(DEVICE) -implement xflow.opt $(SYSTEM).ngc\r
- touch __xps/$(SYSTEM)_routed\r
-\r
-$(SYSTEM_BIT): __xps/$(SYSTEM)_routed\r
- xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par\r
- @echo "*********************************************"\r
- @echo "Running Bitgen.."\r
- @echo "*********************************************"\r
- @cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut\r
- cd implementation; bitgen -w -f bitgen.ut $(SYSTEM)\r
-\r
-$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_FILES) __xps/bitinit.opt\r
- # @cp -f implementation/$(SYSTEM)_bd.bmm .\r
- @echo "*********************************************"\r
- @echo "Initializing BRAM contents of the bitstream"\r
- @echo "*********************************************"\r
- bitinit $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \\r
- -bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT)\r
- @rm -f $(SYSTEM)_bd.bmm\r
-\r
-$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) \r
- @echo "*********************************************"\r
- @echo "Creating system ace file"\r
- @echo "*********************************************"\r
- xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT) -target ppc_hw -ace $(SYSTEM_ACE)\r
-\r
-#################################################################\r
-# SIMULATION FLOW\r
-#################################################################\r
-\r
-\r
-################## BEHAVIORAL SIMULATION ##################\r
-\r
-$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \\r
- $(BRAMINIT_ELF_FILES)\r
- @echo "*********************************************"\r
- @echo "Creating behavioral simulation models..."\r
- @echo "*********************************************"\r
- simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE)\r
-\r
-################## STRUCTURAL SIMULATION ##################\r
-\r
-$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \\r
- $(BRAMINIT_ELF_FILES)\r
- @echo "*********************************************"\r
- @echo "Creating structural simulation models..."\r
- @echo "*********************************************"\r
- simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE)\r
-\r
-\r
-################## TIMING SIMULATION ##################\r
-\r
-$(TIMING_SIM_SCRIPT): $(SYSTEM_BIT) __xps/simgen.opt \\r
- $(BRAMINIT_ELF_FILES)\r
- @echo "*********************************************"\r
- @echo "Creating timing simulation models..."\r
- @echo "*********************************************"\r
- simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)\r
-\r
-#################################################################\r
-# VIRTUAL PLATFORM FLOW\r
-#################################################################\r
-\r
-\r
-$(VPEXEC): $(MHSFILE) __xps/vpgen.opt\r
- @echo "****************************************************"\r
- @echo "Creating virtual platform for hardware specification.."\r
- @echo "****************************************************"\r
- vpgen $(VPGEN_OPTIONS) $(MHSFILE)\r
-\r
-dummy:\r
- @echo ""\r
-\r
+++ /dev/null
-\r
-# ##############################################################################\r
-# Created by Base System Builder Wizard for Xilinx EDK 10.1.01 Build EDK_K_SP1.3\r
-# Fri May 09 11:01:33 2008\r
-# Target Board: Xilinx Virtex 4 ML403 Evaluation Platform Rev 1\r
-# Family: virtex4\r
-# Device: xc4vfx12\r
-# Package: ff668\r
-# Speed Grade: -10\r
-# Processor: ppc405_0\r
-# Processor clock frequency: 200.00 MHz\r
-# Bus clock frequency: 100.00 MHz\r
-# Total Off Chip Memory : 1 MB\r
-# - SRAM = 1 MB\r
-# ##############################################################################\r
- PARAMETER VERSION = 2.1.0\r
-\r
-\r
- PORT fpga_0_RS232_Uart_RX_pin = fpga_0_RS232_Uart_RX, DIR = I\r
- PORT fpga_0_RS232_Uart_TX_pin = fpga_0_RS232_Uart_TX, DIR = O\r
- PORT fpga_0_LEDs_4Bit_GPIO_IO_pin = fpga_0_LEDs_4Bit_GPIO_IO, DIR = IO, VEC = [0:3]\r
- PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO, DIR = IO, VEC = [0:4]\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_CLK_pin = fpga_0_SysACE_CompactFlash_SysACE_CLK, DIR = I\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_MPA_pin = fpga_0_SysACE_CompactFlash_SysACE_MPA, DIR = O, VEC = [6:1]\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_MPD_pin = fpga_0_SysACE_CompactFlash_SysACE_MPD, DIR = IO, VEC = [15:0]\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_CEN_pin = fpga_0_SysACE_CompactFlash_SysACE_CEN, DIR = O\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_OEN_pin = fpga_0_SysACE_CompactFlash_SysACE_OEN, DIR = O\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_WEN_pin = fpga_0_SysACE_CompactFlash_SysACE_WEN, DIR = O\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ, DIR = I\r
- PORT fpga_0_SRAM_Mem_A_pin = fpga_0_SRAM_Mem_A, DIR = O, VEC = [9:29]\r
- PORT fpga_0_SRAM_Mem_BEN_pin = fpga_0_SRAM_Mem_BEN, DIR = O, VEC = [0:3]\r
- PORT fpga_0_SRAM_Mem_WEN_pin = fpga_0_SRAM_Mem_WEN, DIR = O\r
- PORT fpga_0_SRAM_Mem_DQ_pin = fpga_0_SRAM_Mem_DQ, DIR = IO, VEC = [0:31]\r
- PORT fpga_0_SRAM_Mem_OEN_pin = fpga_0_SRAM_Mem_OEN, DIR = O, VEC = [0:0]\r
- PORT fpga_0_SRAM_Mem_CEN_pin = fpga_0_SRAM_Mem_CEN, DIR = O, VEC = [0:0]\r
- PORT fpga_0_SRAM_Mem_ADV_LDN_pin = fpga_0_SRAM_Mem_ADV_LDN, DIR = O\r
- PORT fpga_0_SRAM_CLOCK = sys_clk_s, DIR = O\r
- PORT sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000\r
- PORT sys_rst_pin = sys_rst_s, DIR = I, RST_POLARITY = 0, SIGIS = RST\r
-\r
-\r
-BEGIN ppc405_virtex4\r
- PARAMETER INSTANCE = ppc405_0\r
- PARAMETER HW_VER = 2.01.a\r
- PARAMETER C_FASTEST_PLB_CLOCK = DPLB0\r
- PARAMETER C_APU_CONTROL = 0b0000000000000001\r
- PARAMETER C_IDCR_BASEADDR = 0b0100000000\r
- PARAMETER C_IDCR_HIGHADDR = 0b0111111111\r
- BUS_INTERFACE JTAGPPC = jtagppc_0_0\r
- BUS_INTERFACE IPLB0 = plb\r
- BUS_INTERFACE DPLB0 = plb\r
- BUS_INTERFACE RESETPPC = ppc_reset_bus\r
- BUS_INTERFACE MFCB = fcb_v10_0\r
- PORT CPMC405CLOCK = proc_clk_s\r
- PORT EICC405EXTINPUTIRQ = EICC405EXTINPUTIRQ\r
-END\r
-\r
-BEGIN jtagppc_cntlr\r
- PARAMETER INSTANCE = jtagppc_0\r
- PARAMETER HW_VER = 2.01.a\r
- BUS_INTERFACE JTAGPPC0 = jtagppc_0_0\r
-END\r
-\r
-BEGIN plb_v46\r
- PARAMETER INSTANCE = plb\r
- PARAMETER C_DCR_INTFCE = 0\r
- PARAMETER C_NUM_CLK_PLB2OPB_REARB = 100\r
- PARAMETER HW_VER = 1.02.a\r
- PORT PLB_Clk = sys_clk_s\r
- PORT SYS_Rst = sys_bus_reset\r
-END\r
-\r
-BEGIN xps_uartlite\r
- PARAMETER INSTANCE = RS232_Uart\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_BAUDRATE = 9600\r
- PARAMETER C_DATA_BITS = 8\r
- PARAMETER C_ODD_PARITY = 0\r
- PARAMETER C_USE_PARITY = 0\r
- PARAMETER C_SPLB_CLK_FREQ_HZ = 100000000\r
- PARAMETER C_BASEADDR = 0x84000000\r
- PARAMETER C_HIGHADDR = 0x8400ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT RX = fpga_0_RS232_Uart_RX\r
- PORT TX = fpga_0_RS232_Uart_TX\r
- PORT Interrupt = RS232_Uart_Interrupt\r
-END\r
-\r
-BEGIN xps_gpio\r
- PARAMETER INSTANCE = LEDs_4Bit\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_GPIO_WIDTH = 4\r
- PARAMETER C_IS_DUAL = 0\r
- PARAMETER C_IS_BIDIR = 1\r
- PARAMETER C_ALL_INPUTS = 0\r
- PARAMETER C_BASEADDR = 0x81400000\r
- PARAMETER C_HIGHADDR = 0x8140ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT GPIO_IO = fpga_0_LEDs_4Bit_GPIO_IO\r
-END\r
-\r
-BEGIN xps_gpio\r
- PARAMETER INSTANCE = LEDs_Positions\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_GPIO_WIDTH = 5\r
- PARAMETER C_IS_DUAL = 0\r
- PARAMETER C_IS_BIDIR = 1\r
- PARAMETER C_ALL_INPUTS = 0\r
- PARAMETER C_BASEADDR = 0x81420000\r
- PARAMETER C_HIGHADDR = 0x8142ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO\r
-END\r
-\r
-BEGIN xps_sysace\r
- PARAMETER INSTANCE = SysACE_CompactFlash\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_MEM_WIDTH = 16\r
- PARAMETER C_BASEADDR = 0x83600000\r
- PARAMETER C_HIGHADDR = 0x8360ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT SysACE_CLK = fpga_0_SysACE_CompactFlash_SysACE_CLK\r
- PORT SysACE_MPA = fpga_0_SysACE_CompactFlash_SysACE_MPA & SysACE_CompactFlash_SysACE_MPA\r
- PORT SysACE_MPD = fpga_0_SysACE_CompactFlash_SysACE_MPD\r
- PORT SysACE_CEN = fpga_0_SysACE_CompactFlash_SysACE_CEN\r
- PORT SysACE_OEN = fpga_0_SysACE_CompactFlash_SysACE_OEN\r
- PORT SysACE_WEN = fpga_0_SysACE_CompactFlash_SysACE_WEN\r
- PORT SysACE_MPIRQ = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ\r
-END\r
-\r
-BEGIN xps_mch_emc\r
- PARAMETER INSTANCE = SRAM\r
- PARAMETER HW_VER = 1.01.a\r
- PARAMETER C_MCH_PLB_CLK_PERIOD_PS = 10000\r
- PARAMETER C_NUM_BANKS_MEM = 1\r
- PARAMETER C_MAX_MEM_WIDTH = 32\r
- PARAMETER C_INCLUDE_NEGEDGE_IOREGS = 1\r
- PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1\r
- PARAMETER C_MEM0_WIDTH = 32\r
- PARAMETER C_SYNCH_MEM_0 = 1\r
- PARAMETER C_TCEDV_PS_MEM_0 = 0\r
- PARAMETER C_TWC_PS_MEM_0 = 0\r
- PARAMETER C_TAVDV_PS_MEM_0 = 0\r
- PARAMETER C_TWP_PS_MEM_0 = 0\r
- PARAMETER C_THZCE_PS_MEM_0 = 0\r
- PARAMETER C_TLZWE_PS_MEM_0 = 0\r
- PARAMETER C_MEM0_BASEADDR = 0xfff00000\r
- PARAMETER C_MEM0_HIGHADDR = 0xffffffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT Mem_A = fpga_0_SRAM_Mem_A_split\r
- PORT Mem_BEN = fpga_0_SRAM_Mem_BEN\r
- PORT Mem_WEN = fpga_0_SRAM_Mem_WEN\r
- PORT Mem_DQ = fpga_0_SRAM_Mem_DQ\r
- PORT Mem_OEN = fpga_0_SRAM_Mem_OEN\r
- PORT Mem_CEN = fpga_0_SRAM_Mem_CEN\r
- PORT Mem_ADV_LDN = fpga_0_SRAM_Mem_ADV_LDN\r
- PORT RdClk = sys_clk_s\r
-END\r
-\r
-BEGIN util_bus_split\r
- PARAMETER INSTANCE = SRAM_util_bus_split_0\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_SIZE_IN = 32\r
- PARAMETER C_LEFT_POS = 9\r
- PARAMETER C_SPLIT = 30\r
- PORT Sig = fpga_0_SRAM_Mem_A_split\r
- PORT Out1 = fpga_0_SRAM_Mem_A\r
-END\r
-\r
-BEGIN clock_generator\r
- PARAMETER INSTANCE = clock_generator_0\r
- PARAMETER HW_VER = 2.01.a\r
- PARAMETER C_EXT_RESET_HIGH = 1\r
- PARAMETER C_CLKIN_FREQ = 100000000\r
- PARAMETER C_CLKOUT0_FREQ = 200000000\r
- PARAMETER C_CLKOUT0_BUF = TRUE\r
- PARAMETER C_CLKOUT0_PHASE = 0\r
- PARAMETER C_CLKOUT0_GROUP = NONE\r
- PARAMETER C_CLKOUT1_FREQ = 100000000\r
- PARAMETER C_CLKOUT1_BUF = TRUE\r
- PARAMETER C_CLKOUT1_PHASE = 0\r
- PARAMETER C_CLKOUT1_GROUP = NONE\r
- PORT CLKOUT0 = proc_clk_s\r
- PORT CLKOUT1 = sys_clk_s\r
- PORT CLKIN = dcm_clk_s\r
- PORT LOCKED = Dcm_all_locked\r
- PORT RST = net_gnd\r
-END\r
-\r
-BEGIN proc_sys_reset\r
- PARAMETER INSTANCE = proc_sys_reset_0\r
- PARAMETER HW_VER = 2.00.a\r
- PARAMETER C_EXT_RESET_HIGH = 0\r
- BUS_INTERFACE RESETPPC0 = ppc_reset_bus\r
- PORT Slowest_sync_clk = sys_clk_s\r
- PORT Dcm_locked = Dcm_all_locked\r
- PORT Ext_Reset_In = sys_rst_s\r
- PORT Bus_Struct_Reset = sys_bus_reset\r
- PORT Peripheral_Reset = sys_periph_reset\r
-END\r
-\r
-BEGIN xps_intc\r
- PARAMETER INSTANCE = xps_intc_0\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_BASEADDR = 0x81800000\r
- PARAMETER C_HIGHADDR = 0x8180ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT Irq = EICC405EXTINPUTIRQ\r
- PORT Intr = RS232_Uart_Interrupt\r
-END\r
-\r
-BEGIN fcb_v10\r
- PARAMETER INSTANCE = fcb_v10_0\r
- PARAMETER HW_VER = 1.00.a\r
- PORT FCB_CLK = proc_clk_s\r
- PORT SYS_RST = sys_bus_reset\r
-END\r
-\r
-BEGIN apu_fpu\r
- PARAMETER INSTANCE = apu_fpu_0\r
- PARAMETER HW_VER = 3.10.a\r
- BUS_INTERFACE SFCB = fcb_v10_0\r
- PORT FPU_CLK = sys_clk_s\r
-END\r
-\r
+++ /dev/null
-\r
- PARAMETER VERSION = 2.2.0\r
-\r
-\r
-BEGIN OS\r
- PARAMETER OS_NAME = standalone\r
- PARAMETER OS_VER = 2.00.a\r
- PARAMETER PROC_INSTANCE = ppc405_0\r
-END\r
-\r
-\r
-BEGIN PROCESSOR\r
- PARAMETER DRIVER_NAME = cpu_ppc405\r
- PARAMETER DRIVER_VER = 1.10.a\r
- PARAMETER HW_INSTANCE = ppc405_0\r
- PARAMETER COMPILER = powerpc-eabi-gcc\r
- PARAMETER ARCHIVER = powerpc-eabi-ar\r
- PARAMETER CORE_CLOCK_FREQ_HZ = 200000000\r
-END\r
-\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = jtagppc_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = uartlite\r
- PARAMETER DRIVER_VER = 1.13.a\r
- PARAMETER HW_INSTANCE = RS232_Uart\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = gpio\r
- PARAMETER DRIVER_VER = 2.12.a\r
- PARAMETER HW_INSTANCE = LEDs_4Bit\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = gpio\r
- PARAMETER DRIVER_VER = 2.12.a\r
- PARAMETER HW_INSTANCE = LEDs_Positions\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = sysace\r
- PARAMETER DRIVER_VER = 1.11.a\r
- PARAMETER HW_INSTANCE = SysACE_CompactFlash\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = emc\r
- PARAMETER DRIVER_VER = 2.00.a\r
- PARAMETER HW_INSTANCE = SRAM\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = SRAM_util_bus_split_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = clock_generator_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = proc_sys_reset_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = intc\r
- PARAMETER DRIVER_VER = 1.11.a\r
- PARAMETER HW_INSTANCE = xps_intc_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = apu_fpu\r
- PARAMETER DRIVER_VER = 2.10.a\r
- PARAMETER HW_INSTANCE = apu_fpu_0\r
-END\r
-\r
-\r
+++ /dev/null
-#Please do not modify this file by hand\r
-XmpVersion: 10.1.01\r
-VerMgmt: 10.1.01\r
-IntStyle: default\r
-MHS File: system.mhs\r
-MSS File: system.mss\r
-NPL File: projnav/system.ise\r
-Architecture: virtex4\r
-Device: xc4vfx12\r
-Package: ff668\r
-SpeedGrade: -10\r
-UserCmd1: \r
-UserCmd1Type: 0\r
-UserCmd2: \r
-UserCmd2Type: 0\r
-TopInst: system_i\r
-GenSimTB: 0\r
-InsertNoPads: 0\r
-WarnForEAArch: 1\r
-HdlLang: VHDL\r
-Simulator: mti\r
-SimModel: BEHAVIORAL\r
-MixLangSim: 1\r
-UcfFile: data/system.ucf\r
-FpgaImpMode: 0\r
-EnableParTimingError: 1\r
-EnableResetOptimization: 0\r
-ShowLicenseDialog: 1\r
-ICacheAddr: SRAM,\r
-DCacheAddr: SRAM,\r
-Processor: ppc405_0\r
-BootLoop: 1\r
-XmdStub: 0\r
-SwProj: RTOSDemo\r
-Processor: ppc405_0\r
-Executable: RTOSDemo/executable.elf\r
-Source: RTOSDemo/../../Common/Minimal/BlockQ.c\r
-Source: RTOSDemo/../../Common/Minimal/blocktim.c\r
-Source: RTOSDemo/../../Common/Minimal/comtest.c\r
-Source: RTOSDemo/../../Common/Minimal/countsem.c\r
-Source: RTOSDemo/../../Common/Minimal/death.c\r
-Source: RTOSDemo/../../Common/Minimal/dynamic.c\r
-Source: RTOSDemo/../../Common/Minimal/flash.c\r
-Source: RTOSDemo/../../Common/Minimal/GenQTest.c\r
-Source: RTOSDemo/../../Common/Minimal/integer.c\r
-Source: RTOSDemo/../../Common/Minimal/QPeek.c\r
-Source: RTOSDemo/../../Common/Minimal/recmutex.c\r
-Source: RTOSDemo/../../Common/Minimal/semtest.c\r
-Source: RTOSDemo/../../../Source/tasks.c\r
-Source: RTOSDemo/../../../Source/list.c\r
-Source: RTOSDemo/../../../Source/queue.c\r
-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c\r
-Source: RTOSDemo/main.c\r
-Source: RTOSDemo/serial/serial.c\r
-Source: RTOSDemo/partest/partest.c\r
-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S\r
-Source: RTOSDemo/../../../Source/portable/MemMang/heap_2.c\r
-Source: RTOSDemo/flop/flop.c\r
-Source: RTOSDemo/flop/flop-reg-test.c\r
-Header: RTOSDemo/FreeRTOSConfig.h\r
-DefaultInit: EXECUTABLE\r
-InitBram: 0\r
-Active: 1\r
-CompilerOptLevel: 0\r
-GlobPtrOpt: 0\r
-DebugSym: 1\r
-ProfileFlag: 0\r
-ProgStart: \r
-StackSize: \r
-HeapSize: \r
-LinkerScript: RTOSDemo/RTOSDemo_linker_script.ld\r
-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\r
-CompileInXps: 1\r
-NonXpsApp: 0\r
+++ /dev/null
-#################################################################\r
-# Makefile generated by Xilinx Platform Studio \r
-# Project:C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\system.xmp\r
-#\r
-# WARNING : This file will be re-generated every time a command\r
-# to run a make target is invoked. So, any changes made to this \r
-# file manually, will be lost when make is invoked next. \r
-#################################################################\r
-\r
-XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/10.1/EDK\r
-NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/10.1/EDK\r
-\r
-SYSTEM = system\r
-\r
-MHSFILE = system.mhs\r
-\r
-MSSFILE = system.mss\r
-\r
-FPGA_ARCH = virtex4\r
-\r
-DEVICE = xc4vfx12ff668-10\r
-\r
-LANGUAGE = vhdl\r
-\r
-SEARCHPATHOPT = \r
-\r
-SUBMODULE_OPT = \r
-\r
-PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT)\r
-\r
-LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT)\r
-\r
-VPGEN_OPTIONS = -p $(DEVICE) $(SEARCHPATHOPT)\r
-\r
-MANAGE_FASTRT_OPTIONS = -reduce_fanout no\r
-\r
-OBSERVE_PAR_OPTIONS = -error yes\r
-\r
-RTOSDEMO_OUTPUT_DIR = RTOSDemo\r
-RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf\r
-\r
-MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf\r
-PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf\r
-PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf\r
-BOOTLOOP_DIR = bootloops\r
-\r
-PPC405_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc405_0.elf\r
-\r
-BRAMINIT_ELF_FILES = \r
-BRAMINIT_ELF_FILE_ARGS = \r
-\r
-ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) \r
-\r
-SIM_CMD = vsim\r
-\r
-BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do\r
-\r
-STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do\r
-\r
-TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do\r
-\r
-DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT)\r
-\r
-MIX_LANG_SIM_OPT = -mixed yes\r
-\r
-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/\r
-\r
-\r
-LIBRARIES = \\r
- ppc405_0/lib/libxil.a \r
-VPEXEC = virtualplatform/vpexec.exe\r
-\r
-LIBSCLEAN_TARGETS = ppc405_0_libsclean \r
-\r
-PROGRAMCLEAN_TARGETS = RTOSDemo_programclean \r
-\r
-CORE_STATE_DEVELOPMENT_FILES = \r
-\r
-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\r
-\r
-POSTSYN_NETLIST = implementation/$(SYSTEM).ngc\r
-\r
-SYSTEM_BIT = implementation/$(SYSTEM).bit\r
-\r
-DOWNLOAD_BIT = implementation/download.bit\r
-\r
-SYSTEM_ACE = implementation/$(SYSTEM).ace\r
-\r
-UCF_FILE = data/system.ucf\r
-\r
-BMM_FILE = implementation/$(SYSTEM).bmm\r
-\r
-BITGEN_UT_FILE = etc/bitgen.ut\r
-\r
-XFLOW_OPT_FILE = etc/fast_runtime.opt\r
-XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE)\r
-\r
-XPLORER_DEPENDENCY = __xps/xplorer.opt\r
-XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7\r
-\r
-FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(BITGEN_UT_FILE) $(XFLOW_DEPENDENCY)\r
-\r
-#################################################################\r
-# SOFTWARE APPLICATION RTOSDEMO\r
-#################################################################\r
-\r
-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\r
-\r
-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h \r
-\r
-RTOSDEMO_CC = powerpc-eabi-gcc\r
-RTOSDEMO_CC_SIZE = powerpc-eabi-size\r
-RTOSDEMO_CC_OPT = -O0\r
-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\r
-RTOSDEMO_CC_SEARCH = # -B\r
-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L\r
-RTOSDEMO_INCLUDES = -I./ppc405_0/include/ -IRTOSDemo/ # -I\r
-RTOSDEMO_LFLAGS = # -l\r
-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld\r
-RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) \r
-RTOSDEMO_CC_DEBUG_FLAG = -g \r
-RTOSDEMO_CC_PROFILE_FLAG = # -pg\r
-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi\r
-RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=sp_full \r
-RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=\r
-RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=\r
-RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=\r
-RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \\r
- $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG) \\r
- $(RTOSDEMO_CC_INFERRED_FLAGS) \\r
- $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG) \r
+++ /dev/null
-WARNING:MDT - ppc405_virtex4 (ppc405_0) -\r
- C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\dump.mhs\r
- line 28 - ADDRESS specified by PARAMETER C_IDCR_BASEADDR is ignored
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#ifndef FREERTOS_CONFIG_H\r
-#define FREERTOS_CONFIG_H\r
-\r
-/*-----------------------------------------------------------\r
- * Application specific definitions.\r
- *\r
- * These definitions should be adjusted for your particular hardware and\r
- * application requirements.\r
- *\r
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. \r
- *\r
- * See http://www.freertos.org/a00110.html.\r
- *----------------------------------------------------------*/\r
-\r
-#define configUSE_PREEMPTION 1\r
-#define configUSE_IDLE_HOOK 0\r
-#define configUSE_TICK_HOOK 0\r
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 250 )\r
-#define configCPU_CLOCK_HZ ( ( unsigned long ) 200000000 ) /* Clock setup from start.asm in the demo application. */\r
-#define configTICK_RATE_HZ ( (TickType_t) 1000 )\r
-#define configMAX_PRIORITIES ( 6 )\r
-#define configTOTAL_HEAP_SIZE ( (size_t) (80 * 1024) )\r
-#define configMAX_TASK_NAME_LEN ( 20 )\r
-#define configUSE_16_BIT_TICKS 0\r
-#define configIDLE_SHOULD_YIELD 1\r
-#define configUSE_MUTEXES 1\r
-#define configUSE_TRACE_FACILITY 0\r
-#define configCHECK_FOR_STACK_OVERFLOW 2\r
-#define configUSE_COUNTING_SEMAPHORES 1\r
-#define configUSE_APPLICATION_TASK_TAG 1\r
-#define configUSE_FPU 0\r
-\r
-\r
-/* Co-routine definitions. */\r
-#define configUSE_CO_ROUTINES 0\r
-#define configMAX_CO_ROUTINE_PRIORITIES ( 4 )\r
-\r
-/* Set the following definitions to 1 to include the API function, or zero\r
-to exclude the API function. */\r
-#define INCLUDE_vTaskPrioritySet 1\r
-#define INCLUDE_uxTaskPriorityGet 1\r
-#define INCLUDE_vTaskDelete 1\r
-#define INCLUDE_vTaskCleanUpResources 1\r
-#define INCLUDE_vTaskSuspend 1\r
-#define INCLUDE_vResumeFromISR 1\r
-#define INCLUDE_vTaskDelayUntil 1\r
-#define INCLUDE_vTaskDelay 1\r
-#define INCLUDE_xTaskGetSchedulerState 1\r
-#define INCLUDE_xTaskGetCurrentTaskHandle 1\r
-#define INCLUDE_uxTaskGetStackHighWaterMark 1\r
-#define configUSE_RECURSIVE_MUTEXES 1\r
-\r
-\r
-#if configUSE_FPU == 1\r
- /* Include the header that define the traceTASK_SWITCHED_IN() and\r
- traceTASK_SWITCHED_OUT() macros to save and restore the floating\r
- point registers for tasks that have requested this behaviour. */\r
- #include "FPU_Macros.h"\r
-#endif\r
-\r
-#endif /* FREERTOS_CONFIG_H */\r
-\r
-\r
+++ /dev/null
-/*******************************************************************/\r
-/* */\r
-/* This file is automatically generated by linker script generator.*/\r
-/* */\r
-/* Version: Xilinx EDK 10.1.01 EDK_K_SP1.3 */\r
-/* */\r
-/* Copyright (c) 2004 Xilinx, Inc. All rights reserved. */\r
-/* */\r
-/* Description : PowerPC405 Linker Script */\r
-/* */\r
-/*******************************************************************/\r
-\r
-_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400;\r
-_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x100;\r
-\r
-/* Define Memories in the system */\r
-\r
-MEMORY\r
-{\r
- SRAM_C_MEM0_BASEADDR : ORIGIN = 0xFFF00000, LENGTH = 0x000FFFEC\r
-}\r
-\r
-/* Specify the default entry point to the program */\r
-\r
-ENTRY(_boot)\r
-STARTUP(boot.o)\r
-\r
-/* Define the sections, and where they are mapped in memory */\r
-\r
-SECTIONS\r
-{\r
-.vectors : {\r
- __vectors_start = .;\r
- *(.vectors)\r
- __vectors_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.text : {\r
- *(.text)\r
- *(.text.*)\r
- *(.gnu.linkonce.t.*)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.init : {\r
- KEEP (*(.init))\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.fini : {\r
- KEEP (*(.fini))\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.rodata : {\r
- __rodata_start = .;\r
- *(.rodata)\r
- *(.rodata.*)\r
- *(.gnu.linkonce.r.*)\r
- __rodata_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sdata2 : {\r
- __sdata2_start = .;\r
- *(.sdata2)\r
- *(.sdata2.*)\r
- *(.gnu.linkonce.s2.*)\r
- __sdata2_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sbss2 : {\r
- __sbss2_start = .;\r
- *(.sbss2)\r
- *(.sbss2.*)\r
- *(.gnu.linkonce.sb2.*)\r
- __sbss2_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.data : {\r
- __data_start = .;\r
- *(.data)\r
- *(.data.*)\r
- *(.gnu.linkonce.d.*)\r
- __data_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.got : {\r
- *(.got)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.got1 : {\r
- *(.got1)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.got2 : {\r
- *(.got2)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.ctors : {\r
- __CTOR_LIST__ = .;\r
- ___CTORS_LIST___ = .;\r
- KEEP (*crtbegin.o(.ctors))\r
- KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors))\r
- KEEP (*(SORT(.ctors.*)))\r
- KEEP (*(.ctors))\r
- __CTOR_END__ = .;\r
- ___CTORS_END___ = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.dtors : {\r
- __DTOR_LIST__ = .;\r
- ___DTORS_LIST___ = .;\r
- KEEP (*crtbegin.o(.dtors))\r
- KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors))\r
- KEEP (*(SORT(.dtors.*)))\r
- KEEP (*(.dtors))\r
- __DTOR_END__ = .;\r
- ___DTORS_END___ = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.fixup : {\r
- __fixup_start = .;\r
- *(.fixup)\r
- __fixup_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.eh_frame : {\r
- *(.eh_frame)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.jcr : {\r
- *(.jcr)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.gcc_except_table : {\r
- *(.gcc_except_table)\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sdata : {\r
- __sdata_start = .;\r
- *(.sdata)\r
- *(.sdata.*)\r
- *(.gnu.linkonce.s.*)\r
- __sdata_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.sbss : {\r
- __sbss_start = .;\r
- *(.sbss)\r
- *(.sbss.*)\r
- *(.gnu.linkonce.sb.*)\r
- __sbss_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.tdata : {\r
- __tdata_start = .;\r
- *(.tdata)\r
- *(.tdata.*)\r
- *(.gnu.linkonce.td.*)\r
- __tdata_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.tbss : {\r
- __tbss_start = .;\r
- *(.tbss)\r
- *(.tbss.*)\r
- *(.gnu.linkonce.tb.*)\r
- __tbss_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.bss : {\r
- __bss_start = .;\r
- *(.bss)\r
- *(.bss.*)\r
- *(.gnu.linkonce.b.*)\r
- *(COMMON)\r
- . = ALIGN(4);\r
- __bss_end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.boot0 0xFFFFFFEC : {\r
- __boot0_start = .;\r
- *(.boot0)\r
- __boot0_end = .;\r
-} \r
-\r
-.boot 0xFFFFFFFC : {\r
- __boot_start = .;\r
- *(.boot)\r
- __boot_end = .;\r
-} \r
-\r
-/* Generate Stack and Heap Sections */\r
-\r
-.stack : {\r
- _stack_end = .;\r
- . += _STACK_SIZE;\r
- . = ALIGN(16);\r
- __stack = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-.heap : {\r
- . = ALIGN(16);\r
- _heap_start = .;\r
- . += _HEAP_SIZE;\r
- . = ALIGN(16);\r
- _heap_end = .;\r
- _end = .;\r
-} > SRAM_C_MEM0_BASEADDR\r
-\r
-}\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Tests the floating point context save and restore mechanism.\r
- *\r
- * Two tasks are created - each of which is allocated a buffer of \r
- * portNO_FLOP_REGISTERS_TO_SAVE 32bit variables into which the flop context\r
- * of the task is saved when the task is switched out, and from which the\r
- * flop context of the task is restored when the task is switch in. Prior to \r
- * the tasks being created each position in the two buffers is filled with a \r
- * unique value - this way the flop context of each task is different.\r
- *\r
- * The two test tasks never block so are always in either the Running or\r
- * Ready state. They execute at the lowest priority so will get pre-empted\r
- * regularly, although the yield frequently so will not get much execution\r
- * time. The lack of execution time is not a problem as its only the \r
- * switching in and out that is being tested.\r
- *\r
- * Whenever a task is moved from the Ready to the Running state its flop \r
- * context will be loaded from the buffer, but while the task is in the\r
- * Running state the buffer is not used and can contain any value - in this\r
- * case and for test purposes the task itself clears the buffer to zero. \r
- * The next time the task is moved out of the Running state into the\r
- * Ready state the flop context will once more get saved to the buffer - \r
- * overwriting the zeros.\r
- *\r
- * Therefore whenever the task is not in the Running state its buffer contains\r
- * the most recent values of its floating point registers - the zeroing out\r
- * of the buffer while the task was executing being used to ensure the values \r
- * the buffer contains are not stale.\r
- *\r
- * When neither test task is in the Running state the buffers should contain\r
- * the unique values allocated before the tasks were created. If so then\r
- * the floating point context has been maintained. This check is performed\r
- * by the 'check' task (defined in main.c) by calling \r
- * xAreFlopRegisterTestsStillRunning().\r
- *\r
- * The test tasks also increment a value each time they execute.\r
- * xAreFlopRegisterTestsStillRunning() also checks that this value has changed\r
- * since it last ran to ensure the test tasks are still getting processing time.\r
- */\r
-\r
-/* Standard includes files. */\r
-#include <string.h>\r
-\r
-/* Scheduler include files. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-#define flopNUMBER_OF_TASKS 2\r
-#define flopSTART_VALUE ( 0x1 )\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* The two test tasks as described at the top of this file. */\r
-static void vFlopTest1( void *pvParameters );\r
-static void vFlopTest2( void *pvParameters );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Buffers into which the flop registers will be saved. There is a buffer for \r
-both tasks. */\r
-static volatile unsigned long ulFlopRegisters[ flopNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];\r
-\r
-/* Variables that are incremented by the tasks to indicate that they are still\r
-running. */\r
-static volatile unsigned long ulFlop1CycleCount = 0, ulFlop2CycleCount = 0;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-void vStartFlopRegTests( void )\r
-{\r
-TaskHandle_t xTaskJustCreated;\r
-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;\r
-\r
- /* Fill the arrays into which the flop registers are to be saved with \r
- known values. These are the values that will be written to the flop\r
- registers when the tasks start, and as the tasks do not perform any\r
- flop operations the values should never change. Each position in the\r
- buffer contains a different value so the flop context of each task\r
- will be different. */\r
- for( x = 0; x < flopNUMBER_OF_TASKS; x++ )\r
- {\r
- for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1); y++ )\r
- {\r
- ulFlopRegisters[ x ][ y ] = z;\r
- z++;\r
- }\r
- }\r
-\r
-\r
- /* Create the first task. */\r
- xTaskCreate( vFlopTest1, "flop1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );\r
-\r
- /* The task tag value is a value that can be associated with a task, but \r
- is not used by the scheduler itself. Its use is down to the application so\r
- it makes a convenient place in this case to store the pointer to the buffer\r
- into which the flop context of the task will be stored. The first created\r
- task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ]. */\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );\r
-\r
- /* Do the same for the second task. */\r
- xTaskCreate( vFlopTest2, "flop2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vFlopTest1( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- for( ;; )\r
- {\r
- /* The values from the buffer should have now been written to the flop\r
- registers. Clear the buffer to ensure the same values then get written\r
- back the next time the task runs. Being preempted during this memset\r
- could cause the test to fail, hence the critical section. */\r
- portENTER_CRITICAL();\r
- memset( ( void * ) ulFlopRegisters[ 0 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );\r
- portEXIT_CRITICAL();\r
-\r
- /* We don't have to do anything other than indicate that we are \r
- still running. */\r
- ulFlop1CycleCount++;\r
- taskYIELD();\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vFlopTest2( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- for( ;; )\r
- {\r
- /* The values from the buffer should have now been written to the flop\r
- registers. Clear the buffer to ensure the same values then get written\r
- back the next time the task runs. */\r
- portENTER_CRITICAL();\r
- memset( ( void * ) ulFlopRegisters[ 1 ], 0x00, ( portNO_FLOP_REGISTERS_TO_SAVE * sizeof( unsigned portBASE_TYPE ) ) );\r
- portEXIT_CRITICAL();\r
-\r
- /* We don't have to do anything other than indicate that we are \r
- still running. */\r
- ulFlop2CycleCount++;\r
- taskYIELD();\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void )\r
-{\r
-portBASE_TYPE xReturn = pdPASS;\r
-unsigned portBASE_TYPE x, y, z = flopSTART_VALUE;\r
-static unsigned long ulLastFlop1CycleCount = 0, ulLastFlop2CycleCount = 0;\r
-\r
- /* Called from the 'check' task.\r
- \r
- The flop tasks cannot be currently running, check their saved registers\r
- are as expected. The tests tasks do not perform any flop operations so\r
- their registers should be as per their initial setting. */\r
- for( x = 0; x < flopNUMBER_OF_TASKS; x++ )\r
- {\r
- for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )\r
- {\r
- if( ulFlopRegisters[ x ][ y ] != z )\r
- {\r
- xReturn = pdFAIL;\r
- break;\r
- }\r
-\r
- z++;\r
- }\r
- }\r
-\r
- /* Check both tasks have actually been swapped in and out since this function\r
- last executed. */\r
- if( ulFlop1CycleCount == ulLastFlop1CycleCount )\r
- {\r
- xReturn = pdFAIL;\r
- }\r
-\r
- if( ulFlop2CycleCount == ulLastFlop2CycleCount )\r
- {\r
- xReturn = pdFAIL;\r
- }\r
-\r
- ulLastFlop1CycleCount = ulFlop1CycleCount;\r
- ulLastFlop2CycleCount = ulFlop2CycleCount;\r
-\r
- return xReturn;\r
-}\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#ifndef FLOP_REG_TEST_H\r
-#define FLOP_REG_TEST_H\r
-\r
-void vStartFlopRegTests( void );\r
-portBASE_TYPE xAreFlopRegisterTestsStillRunning( void );\r
-\r
-#endif\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Creates eight tasks, each of which loops continuously performing a\r
- * floating point calculation.\r
- *\r
- * All the tasks run at the idle priority and never block or yield. This causes \r
- * all eight tasks to time slice with the idle task. Running at the idle priority \r
- * means that these tasks will get pre-empted any time another task is ready to run\r
- * or a time slice occurs. More often than not the pre-emption will occur mid \r
- * calculation, creating a good test of the schedulers context switch mechanism - a \r
- * calculation producing an unexpected result could be a symptom of a corruption in \r
- * the context of a task.\r
- *\r
- * This file demonstrates the use of the task tag and traceTASK_SWITCHED_IN and\r
- * traceTASK_SWITCHED_OUT macros to save and restore the floating point context.\r
- */\r
-\r
-#include <stdlib.h>\r
-#include <math.h>\r
-\r
-/* Scheduler include files. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/* Demo program include files. */\r
-#include "flop.h"\r
-\r
-/* Misc. definitions. */\r
-#define mathSTACK_SIZE configMINIMAL_STACK_SIZE\r
-#define mathNUMBER_OF_TASKS ( 8 )\r
-\r
-/* Four tasks, each of which performs a different floating point calculation. \r
-Each of the four is created twice. */\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask1, pvParameters );\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask2, pvParameters );\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask3, pvParameters );\r
-static portTASK_FUNCTION_PROTO( vCompetingMathTask4, pvParameters );\r
-\r
-/* These variables are used to check that all the tasks are still running. If a \r
-task gets a calculation wrong it will stop incrementing its check variable. */\r
-static volatile unsigned short usTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };\r
-\r
-/* Buffers into which the flop registers will be saved. There is a buffer for \r
-each task created within this file. Zeroing out this array is the normal and\r
-safe option as this will cause the task to start with all zeros in its flop\r
-context. */\r
-static unsigned long ulFlopRegisters[ mathNUMBER_OF_TASKS ][ portNO_FLOP_REGISTERS_TO_SAVE ];\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-void vStartMathTasks( unsigned portBASE_TYPE uxPriority )\r
-{\r
-TaskHandle_t xTaskJustCreated;\r
-portBASE_TYPE x, y;\r
-\r
- /* Place known values into the buffers into which the flop registers are \r
- to be saved. This is for debug purposes only, it is not normally\r
- required. The last position in each array is left at zero as the status\r
- register will be loaded from there. \r
- \r
- It is intended that these values can be viewed being loaded into the\r
- flop registers when a task is started - however the Insight debugger\r
- does not seem to want to show the flop register values. */\r
- for( x = 0; x < mathNUMBER_OF_TASKS; x++ )\r
- {\r
- for( y = 0; y < ( portNO_FLOP_REGISTERS_TO_SAVE - 1 ); y++ )\r
- {\r
- ulFlopRegisters[ x ][ y ] = ( x + 1 );\r
- }\r
- }\r
-\r
- /* Create the first task - passing it the address of the check variable\r
- that it is going to increment. This check variable is used as an \r
- indication that the task is still running. */\r
- xTaskCreate( vCompetingMathTask1, "Math1", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 0 ] ), uxPriority, &xTaskJustCreated );\r
-\r
- /* The task tag value is a value that can be associated with a task, but \r
- is not used by the scheduler itself. Its use is down to the application so\r
- it makes a convenient place in this case to store the pointer to the buffer\r
- into which the flop context of the task will be stored. The first created\r
- task uses ulFlopRegisters[ 0 ], the second ulFlopRegisters[ 1 ], etc. */\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 0 ][ 0 ] ) );\r
-\r
- /* Create another 7 tasks, allocating a buffer for each. */\r
- xTaskCreate( vCompetingMathTask2, "Math2", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 1 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 1 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask3, "Math3", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 2 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 2 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask4, "Math4", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 3 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 3 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask1, "Math5", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 4 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 4 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask2, "Math6", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 5 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 5 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask3, "Math7", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 6 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 6 ][ 0 ] ) );\r
-\r
- xTaskCreate( vCompetingMathTask4, "Math8", mathSTACK_SIZE, ( void * ) &( usTaskCheck[ 7 ] ), uxPriority, &xTaskJustCreated );\r
- vTaskSetApplicationTaskTag( xTaskJustCreated, ( void * ) &( ulFlopRegisters[ 7 ][ 0 ] ) );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask1, pvParameters )\r
-{\r
-volatile portFLOAT ff1, ff2, ff3, ff4;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-volatile portFLOAT fAnswer;\r
-short sError = pdFALSE;\r
-\r
- ff1 = 123.4567F;\r
- ff2 = 2345.6789F;\r
- ff3 = -918.222F;\r
-\r
- fAnswer = ( ff1 + ff2 ) * ff3;\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- /* Keep performing a calculation and checking the result against a constant. */\r
- for(;;)\r
- {\r
- ff1 = 123.4567F;\r
- ff2 = 2345.6789F;\r
- ff3 = -918.222F;\r
-\r
- ff4 = ( ff1 + ff2 ) * ff3;\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- /* If the calculation does not match the expected constant, stop the \r
- increment of the check variable. */\r
- if( fabs( ff4 - fAnswer ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask2, pvParameters )\r
-{\r
-volatile portFLOAT ff1, ff2, ff3, ff4;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-volatile portFLOAT fAnswer;\r
-short sError = pdFALSE;\r
-\r
- ff1 = -389.38F;\r
- ff2 = 32498.2F;\r
- ff3 = -2.0001F;\r
-\r
- fAnswer = ( ff1 / ff2 ) * ff3;\r
-\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- /* Keep performing a calculation and checking the result against a constant. */\r
- for( ;; )\r
- {\r
- ff1 = -389.38F;\r
- ff2 = 32498.2F;\r
- ff3 = -2.0001F;\r
-\r
- ff4 = ( ff1 / ff2 ) * ff3;\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
- \r
- /* If the calculation does not match the expected constant, stop the \r
- increment of the check variable. */\r
- if( fabs( ff4 - fAnswer ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know\r
- this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask3, pvParameters )\r
-{\r
-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-const size_t xArraySize = 10;\r
-size_t xPosition;\r
-short sError = pdFALSE;\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );\r
-\r
- /* Keep filling an array, keeping a running total of the values placed in the \r
- array. Then run through the array adding up all the values. If the two totals \r
- do not match, stop the check variable from incrementing. */\r
- for( ;; )\r
- {\r
- fTotal1 = 0.0F;\r
- fTotal2 = 0.0F;\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- pfArray[ xPosition ] = ( portFLOAT ) xPosition + 5.5F;\r
- fTotal1 += ( portFLOAT ) xPosition + 5.5F; \r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- fTotal2 += pfArray[ xPosition ];\r
- }\r
-\r
- fDifference = fTotal1 - fTotal2;\r
- if( fabs( fDifference ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portTASK_FUNCTION( vCompetingMathTask4, pvParameters )\r
-{\r
-volatile portFLOAT *pfArray, fTotal1, fTotal2, fDifference;\r
-volatile unsigned short *pusTaskCheckVariable;\r
-const size_t xArraySize = 10;\r
-size_t xPosition;\r
-short sError = pdFALSE;\r
-\r
- /* The variable this task increments to show it is still running is passed in \r
- as the parameter. */\r
- pusTaskCheckVariable = ( unsigned short * ) pvParameters;\r
-\r
- pfArray = ( portFLOAT * ) pvPortMalloc( xArraySize * sizeof( portFLOAT ) );\r
-\r
- /* Keep filling an array, keeping a running total of the values placed in the \r
- array. Then run through the array adding up all the values. If the two totals \r
- do not match, stop the check variable from incrementing. */\r
- for( ;; )\r
- {\r
- fTotal1 = 0.0F;\r
- fTotal2 = 0.0F;\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- pfArray[ xPosition ] = ( portFLOAT ) xPosition * 12.123F;\r
- fTotal1 += ( portFLOAT ) xPosition * 12.123F; \r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- for( xPosition = 0; xPosition < xArraySize; xPosition++ )\r
- {\r
- fTotal2 += pfArray[ xPosition ];\r
- }\r
-\r
- fDifference = fTotal1 - fTotal2;\r
- if( fabs( fDifference ) > 0.001F )\r
- {\r
- sError = pdTRUE;\r
- }\r
-\r
- #if configUSE_PREEMPTION == 0\r
- taskYIELD();\r
- #endif\r
-\r
- if( sError == pdFALSE )\r
- {\r
- /* If the calculation has always been correct, increment the check \r
- variable so we know this task is still running okay. */\r
- ( *pusTaskCheckVariable )++;\r
- }\r
- }\r
-} \r
-/*-----------------------------------------------------------*/\r
-\r
-/* This is called to check that all the created tasks are still running. */\r
-portBASE_TYPE xAreMathsTaskStillRunning( void )\r
-{\r
-/* Keep a history of the check variables so we know if they have been incremented \r
-since the last call. */\r
-static unsigned short usLastTaskCheck[ mathNUMBER_OF_TASKS ] = { ( unsigned short ) 0 };\r
-portBASE_TYPE xReturn = pdTRUE, xTask;\r
-\r
- /* Check the maths tasks are still running by ensuring their check variables \r
- are still incrementing. */\r
- for( xTask = 0; xTask < mathNUMBER_OF_TASKS; xTask++ )\r
- {\r
- if( usTaskCheck[ xTask ] == usLastTaskCheck[ xTask ] )\r
- {\r
- /* The check has not incremented so an error exists. */\r
- xReturn = pdFALSE;\r
- }\r
-\r
- usLastTaskCheck[ xTask ] = usTaskCheck[ xTask ];\r
- }\r
-\r
- return xReturn;\r
-}\r
-\r
-\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Creates all the demo application tasks, then starts the scheduler. The WEB\r
- * documentation provides more details of the demo application tasks.\r
- * \r
- * In addition to the standard demo tasks, the follow demo specific tasks are\r
- * create:\r
- *\r
- * The "Check" task. This only executes every three seconds but has the highest \r
- * priority so is guaranteed to get processor time. Its main function is to \r
- * check that all the other tasks are still operational. Most tasks maintain \r
- * a unique count that is incremented each time the task successfully completes \r
- * its function. Should any error occur within such a task the count is \r
- * permanently halted. The check task inspects the count of each task to ensure \r
- * it has changed since the last time the check task executed. If all the count \r
- * variables have changed all the tasks are still executing error free, and the \r
- * check task toggles the onboard LED. Should any task contain an error at any time \r
- * the LED toggle rate will change from 3 seconds to 500ms.\r
- *\r
- * The "Register Check" tasks. These tasks fill the CPU registers with known\r
- * values, then check that each register still contains the expected value, the\r
- * discovery of an unexpected value being indicative of an error in the RTOS\r
- * context switch mechanism. The register check tasks operate at low priority\r
- * so are switched in and out frequently.\r
- *\r
- */\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/* Xilinx library includes. */\r
-#include "xcache_l.h"\r
-#include "xintc.h"\r
-\r
-/* Demo application includes. */\r
-#include "flash.h"\r
-#include "integer.h"\r
-#include "comtest2.h"\r
-#include "semtest.h"\r
-#include "BlockQ.h"\r
-#include "dynamic.h"\r
-#include "GenQTest.h"\r
-#include "QPeek.h"\r
-#include "blocktim.h"\r
-#include "death.h"\r
-#include "partest.h"\r
-#include "countsem.h"\r
-#include "recmutex.h"\r
-#include "flop.h"\r
-#include "flop-reg-test.h"\r
-\r
-/* Priorities assigned to the demo tasks. */\r
-#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )\r
-#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
-#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainQUEUE_BLOCK_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainDEATH_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainGENERIC_QUEUE_PRIORITY ( tskIDLE_PRIORITY )\r
-#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainFLOP_PRIORITY ( tskIDLE_PRIORITY )\r
-\r
-/* The first LED used by the COM test and check tasks respectively. */\r
-#define mainCOM_TEST_LED ( 4 )\r
-#define mainCHECK_TEST_LED ( 3 )\r
-\r
-/* The baud rate used by the comtest tasks is set by the hardware, so the\r
-baud rate parameters passed into the comtest initialisation has no effect. */\r
-#define mainBAUD_SET_IN_HARDWARE ( 0 )\r
-\r
-/* Delay periods used by the check task. If no errors have been found then\r
-the check LED will toggle every mainNO_ERROR_CHECK_DELAY milliseconds. If an\r
-error has been found at any time then the toggle rate will increase to \r
-mainERROR_CHECK_DELAY milliseconds. */\r
-#define mainNO_ERROR_CHECK_DELAY ( ( TickType_t ) 3000 / portTICK_PERIOD_MS )\r
-#define mainERROR_CHECK_DELAY ( ( TickType_t ) 500 / portTICK_PERIOD_MS )\r
-\r
-\r
-/* \r
- * The tasks defined within this file - described within the comments at the\r
- * head of this page. \r
- */\r
-static void prvRegTestTask1( void *pvParameters );\r
-static void prvRegTestTask2( void *pvParameters );\r
-static void prvErrorChecks( void *pvParameters );\r
-\r
-/*\r
- * Called by the 'check' task to inspect all the standard demo tasks within\r
- * the system, as described within the comments at the head of this page.\r
- */\r
-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void );\r
-\r
-/*\r
- * Perform any hardware initialisation required by the demo application.\r
- */\r
-static void prvSetupHardware( void );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* xRegTestStatus will get set to pdFAIL by the regtest tasks if they\r
-discover an unexpected value. */\r
-static volatile unsigned portBASE_TYPE xRegTestStatus = pdPASS;\r
-\r
-/* Counters used to ensure the regtest tasks are still running. */\r
-static volatile unsigned long ulRegTest1Counter = 0UL, ulRegTest2Counter = 0UL;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-int main( void )\r
-{\r
-\r
- /* Must be called prior to installing any interrupt handlers! */\r
- vPortSetupInterruptController();\r
-\r
- /* In this case prvSetupHardware() just enables the caches and and\r
- configures the IO ports for the LED outputs. */\r
- prvSetupHardware();\r
-\r
- /* Start the standard demo application tasks. Note that the baud rate used\r
- by the comtest tasks is set by the hardware, so the baud rate parameter\r
- passed has no effect. */\r
- vStartLEDFlashTasks( mainLED_TASK_PRIORITY ); \r
- vStartIntegerMathTasks( tskIDLE_PRIORITY );\r
- vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_SET_IN_HARDWARE, mainCOM_TEST_LED );\r
- vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
- vStartBlockingQueueTasks ( mainQUEUE_BLOCK_PRIORITY ); \r
- vStartDynamicPriorityTasks(); \r
- vStartGenericQueueTasks( mainGENERIC_QUEUE_PRIORITY );\r
- vStartQueuePeekTasks();\r
- vCreateBlockTimeTasks();\r
- vStartCountingSemaphoreTasks();\r
- vStartRecursiveMutexTasks();\r
-\r
- #if ( configUSE_FPU == 1 )\r
- {\r
- /* A different project is provided that has configUSE_FPU set to 1\r
- in order to demonstrate all the settings required to use the floating\r
- point unit. If you wish to use the floating point unit do not start\r
- with this project. */\r
- vStartMathTasks( mainFLOP_PRIORITY );\r
- vStartFlopRegTests();\r
- }\r
- #endif\r
-\r
- /* Create the tasks defined within this file. */\r
- xTaskCreate( prvRegTestTask1, "Regtest1", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
- xTaskCreate( prvRegTestTask2, "Regtest2", configMINIMAL_STACK_SIZE, NULL, tskIDLE_PRIORITY, NULL );\r
- xTaskCreate( prvErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
-\r
- /* The suicide tasks must be started last as they record the number of other\r
- tasks that exist within the system. The value is then used to ensure at run\r
- time the number of tasks that exists is within expected bounds. */\r
- vCreateSuicidalTasks( mainDEATH_PRIORITY );\r
-\r
- /* Now start the scheduler. Following this call the created tasks should\r
- be executing. */ \r
- vTaskStartScheduler();\r
-\r
- /* vTaskStartScheduler() will only return if an error occurs while the \r
- idle task is being created. */\r
- for( ;; );\r
-\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void )\r
-{\r
-portBASE_TYPE lReturn = pdPASS;\r
-static unsigned long ulLastRegTest1Counter= 0UL, ulLastRegTest2Counter = 0UL;\r
-\r
- /* The demo tasks maintain a count that increments every cycle of the task\r
- provided that the task has never encountered an error. This function \r
- checks the counts maintained by the tasks to ensure they are still being\r
- incremented. A count remaining at the same value between calls therefore\r
- indicates that an error has been detected. */\r
-\r
- if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreComTestTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xIsCreateTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreBlockTimeTestTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreGenericQueueTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- \r
- if( xAreQueuePeekTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreCountingSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreRecursiveMutexTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- #if ( configUSE_FPU == 1 )\r
- if( xAreMathsTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- if( xAreFlopRegisterTestsStillRunning() != pdTRUE )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- #endif\r
-\r
- /* Have the register test tasks found any errors? */\r
- if( xRegTestStatus != pdPASS )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
-\r
- /* Are the register test tasks still looping? */\r
- if( ulLastRegTest1Counter == ulRegTest1Counter )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- else\r
- {\r
- ulLastRegTest1Counter = ulRegTest1Counter;\r
- }\r
-\r
- if( ulLastRegTest2Counter == ulRegTest2Counter )\r
- {\r
- lReturn = pdFAIL;\r
- }\r
- else\r
- {\r
- ulLastRegTest2Counter = ulRegTest2Counter;\r
- }\r
-\r
- return lReturn;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvErrorChecks( void *pvParameters )\r
-{\r
-TickType_t xDelayPeriod = mainNO_ERROR_CHECK_DELAY, xLastExecutionTime;\r
-volatile unsigned portBASE_TYPE uxFreeStack;\r
-\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- /* This call is just to demonstrate the use of the function - nothing is\r
- done with the value. You would expect the stack high water mark to be\r
- lower (the function to return a larger value) here at function entry than\r
- later following calls to other functions. */\r
- uxFreeStack = uxTaskGetStackHighWaterMark( NULL );\r
-\r
- /* Initialise xLastExecutionTime so the first call to vTaskDelayUntil()\r
- works correctly. */\r
- xLastExecutionTime = xTaskGetTickCount();\r
-\r
- /* Cycle for ever, delaying then checking all the other tasks are still\r
- operating without error. */\r
- for( ;; )\r
- {\r
- /* Again just for demo purposes - uxFreeStack should have a lower value\r
- here than following the call to uxTaskGetStackHighWaterMark() on the\r
- task entry. */\r
- uxFreeStack = uxTaskGetStackHighWaterMark( NULL );\r
-\r
- /* Wait until it is time to check again. The time we wait here depends\r
- on whether an error has been detected or not. When an error is \r
- detected the time is shortened resulting in a faster LED flash rate. */\r
- vTaskDelayUntil( &xLastExecutionTime, xDelayPeriod );\r
-\r
- /* See if the other tasks are all ok. */\r
- if( prvCheckOtherTasksAreStillRunning() != pdPASS )\r
- {\r
- /* An error occurred in one of the tasks so shorten the delay \r
- period - which has the effect of increasing the frequency of the\r
- LED toggle. */\r
- xDelayPeriod = mainERROR_CHECK_DELAY;\r
- }\r
-\r
- /* Flash! */\r
- vParTestToggleLED( mainCHECK_TEST_LED );\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupHardware( void )\r
-{\r
- XCache_EnableICache( 0x80000000 );\r
- XCache_EnableDCache( 0x80000000 );\r
-\r
- /* Setup the IO port for use with the LED outputs. */\r
- vParTestInitialise();\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void prvRegTest1Pass( void )\r
-{\r
- /* Called from the inline assembler - this cannot be static\r
- otherwise it can get optimised away. */\r
- ulRegTest1Counter++;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void prvRegTest2Pass( void )\r
-{\r
- /* Called from the inline assembler - this cannot be static\r
- otherwise it can get optimised away. */\r
- ulRegTest2Counter++;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void prvRegTestFail( void )\r
-{\r
- /* Called from the inline assembler - this cannot be static\r
- otherwise it can get optimised away. */\r
- xRegTestStatus = pdFAIL;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvRegTestTask1( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- /* The first register test task as described at the top of this file. The\r
- values used in the registers are different to those use in the second \r
- register test task. Also, unlike the second register test task, this task\r
- yields between setting the register values and subsequently checking the\r
- register values. */\r
- asm volatile\r
- (\r
- "RegTest1Start: \n\t" \\r
- " \n\t" \\r
- " li 0, 301 \n\t" \\r
- " mtspr 256, 0 #USPRG0 \n\t" \\r
- " li 0, 501 \n\t" \\r
- " mtspr 8, 0 #LR \n\t" \\r
- " li 0, 4 \n\t" \\r
- " mtspr 1, 0 #XER \n\t" \\r
- " \n\t" \\r
- " li 0, 1 \n\t" \\r
- " li 2, 2 \n\t" \\r
- " li 3, 3 \n\t" \\r
- " li 4, 4 \n\t" \\r
- " li 5, 5 \n\t" \\r
- " li 6, 6 \n\t" \\r
- " li 7, 7 \n\t" \\r
- " li 8, 8 \n\t" \\r
- " li 9, 9 \n\t" \\r
- " li 10, 10 \n\t" \\r
- " li 11, 11 \n\t" \\r
- " li 12, 12 \n\t" \\r
- " li 13, 13 \n\t" \\r
- " li 14, 14 \n\t" \\r
- " li 15, 15 \n\t" \\r
- " li 16, 16 \n\t" \\r
- " li 17, 17 \n\t" \\r
- " li 18, 18 \n\t" \\r
- " li 19, 19 \n\t" \\r
- " li 20, 20 \n\t" \\r
- " li 21, 21 \n\t" \\r
- " li 22, 22 \n\t" \\r
- " li 23, 23 \n\t" \\r
- " li 24, 24 \n\t" \\r
- " li 25, 25 \n\t" \\r
- " li 26, 26 \n\t" \\r
- " li 27, 27 \n\t" \\r
- " li 28, 28 \n\t" \\r
- " li 29, 29 \n\t" \\r
- " li 30, 30 \n\t" \\r
- " li 31, 31 \n\t" \\r
- " \n\t" \\r
- " sc \n\t" \\r
- " nop \n\t" \\r
- " \n\t" \\r
- " cmpwi 0, 1 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 2, 2 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 3, 3 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 4, 4 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 5, 5 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 6, 6 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 7, 7 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 8, 8 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 9, 9 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 10, 10 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 11, 11 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 12, 12 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 13, 13 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 14, 14 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 15, 15 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 16, 16 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 17, 17 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 18, 18 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 19, 19 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 20, 20 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 21, 21 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 22, 22 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 23, 23 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 24, 24 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 25, 25 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 26, 26 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 27, 27 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 28, 28 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 29, 29 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 30, 30 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " cmpwi 31, 31 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " \n\t" \\r
- " mfspr 0, 256 #USPRG0 \n\t" \\r
- " cmpwi 0, 301 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " mfspr 0, 8 #LR \n\t" \\r
- " cmpwi 0, 501 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " mfspr 0, 1 #XER \n\t" \\r
- " cmpwi 0, 4 \n\t" \\r
- " bne RegTest1Fail \n\t" \\r
- " \n\t" \\r
- " bl prvRegTest1Pass \n\t" \\r
- " b RegTest1Start \n\t" \\r
- " \n\t" \\r
- "RegTest1Fail: \n\t" \\r
- " \n\t" \\r
- " \n\t" \\r
- " bl prvRegTestFail \n\t" \\r
- " b RegTest1Start \n\t" \\r
- );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvRegTestTask2( void *pvParameters )\r
-{\r
- /* Just to remove compiler warning. */\r
- ( void ) pvParameters;\r
-\r
- /* The second register test task as described at the top of this file. \r
- Note that this task fills the registers with different values to the\r
- first register test task. */\r
- asm volatile\r
- (\r
- "RegTest2Start: \n\t" \\r
- " \n\t" \\r
- " li 0, 300 \n\t" \\r
- " mtspr 256, 0 #USPRG0 \n\t" \\r
- " li 0, 500 \n\t" \\r
- " mtspr 8, 0 #LR \n\t" \\r
- " li 0, 4 \n\t" \\r
- " mtspr 1, 0 #XER \n\t" \\r
- " \n\t" \\r
- " li 0, 11 \n\t" \\r
- " li 2, 12 \n\t" \\r
- " li 3, 13 \n\t" \\r
- " li 4, 14 \n\t" \\r
- " li 5, 15 \n\t" \\r
- " li 6, 16 \n\t" \\r
- " li 7, 17 \n\t" \\r
- " li 8, 18 \n\t" \\r
- " li 9, 19 \n\t" \\r
- " li 10, 110 \n\t" \\r
- " li 11, 111 \n\t" \\r
- " li 12, 112 \n\t" \\r
- " li 13, 113 \n\t" \\r
- " li 14, 114 \n\t" \\r
- " li 15, 115 \n\t" \\r
- " li 16, 116 \n\t" \\r
- " li 17, 117 \n\t" \\r
- " li 18, 118 \n\t" \\r
- " li 19, 119 \n\t" \\r
- " li 20, 120 \n\t" \\r
- " li 21, 121 \n\t" \\r
- " li 22, 122 \n\t" \\r
- " li 23, 123 \n\t" \\r
- " li 24, 124 \n\t" \\r
- " li 25, 125 \n\t" \\r
- " li 26, 126 \n\t" \\r
- " li 27, 127 \n\t" \\r
- " li 28, 128 \n\t" \\r
- " li 29, 129 \n\t" \\r
- " li 30, 130 \n\t" \\r
- " li 31, 131 \n\t" \\r
- " \n\t" \\r
- " cmpwi 0, 11 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 2, 12 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 3, 13 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 4, 14 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 5, 15 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 6, 16 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 7, 17 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 8, 18 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 9, 19 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 10, 110 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 11, 111 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 12, 112 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 13, 113 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 14, 114 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 15, 115 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 16, 116 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 17, 117 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 18, 118 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 19, 119 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 20, 120 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 21, 121 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 22, 122 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 23, 123 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 24, 124 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 25, 125 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 26, 126 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 27, 127 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 28, 128 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 29, 129 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 30, 130 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " cmpwi 31, 131 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " \n\t" \\r
- " mfspr 0, 256 #USPRG0 \n\t" \\r
- " cmpwi 0, 300 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " mfspr 0, 8 #LR \n\t" \\r
- " cmpwi 0, 500 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " mfspr 0, 1 #XER \n\t" \\r
- " cmpwi 0, 4 \n\t" \\r
- " bne RegTest2Fail \n\t" \\r
- " \n\t" \\r
- " bl prvRegTest2Pass \n\t" \\r
- " b RegTest2Start \n\t" \\r
- " \n\t" \\r
- "RegTest2Fail: \n\t" \\r
- " \n\t" \\r
- " \n\t" \\r
- " bl prvRegTestFail \n\t" \\r
- " b RegTest2Start \n\t" \\r
- );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-/* This hook function will get called if there is a suspected stack overflow.\r
-An overflow can cause the task name to be corrupted, in which case the task\r
-handle needs to be used to determine the offending task. */\r
-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName );\r
-void vApplicationStackOverflowHook( TaskHandle_t xTask, signed char *pcTaskName )\r
-{\r
-/* To prevent the optimiser removing the variables. */\r
-volatile TaskHandle_t xTaskIn = xTask;\r
-volatile signed char *pcTaskNameIn = pcTaskName;\r
-\r
- /* Remove compiler warnings. */\r
- ( void ) xTaskIn;\r
- ( void ) pcTaskNameIn;\r
-\r
- /* The following three calls are simply to stop compiler warnings about the\r
- functions not being used - they are called from the inline assembly. */\r
- prvRegTest1Pass();\r
- prvRegTest2Pass();\r
- prvRegTestFail();\r
-\r
- for( ;; );\r
-}\r
-\r
-\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-\r
-/* Demo application includes. */\r
-#include "partest.h"\r
-\r
-/* Library includes. */\r
-#include "xparameters.h"\r
-#include "xgpio_l.h"\r
-\r
-/* Misc hardware specific definitions. */\r
-#define partstALL_AS_OUTPUT 0x00\r
-#define partstCHANNEL_1 0x01\r
-#define partstMAX_4BIT_LED 0x03\r
-\r
-/* The outputs are split into two IO sections, these variables maintain the \r
-current value of either section. */\r
-static unsigned portBASE_TYPE uxCurrentOutput4Bit, uxCurrentOutput5Bit;\r
-\r
-/*-----------------------------------------------------------*/\r
-/*\r
- * Setup the IO for the LED outputs.\r
- */\r
-void vParTestInitialise( void )\r
-{\r
- /* Set both sets of LED's on the demo board to outputs. */\r
- XGpio_mSetDataDirection( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );\r
- XGpio_mSetDataDirection( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT );\r
-\r
- /* Start with all outputs off. */\r
- uxCurrentOutput4Bit = 0;\r
- XGpio_mSetDataReg( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, 0x00 );\r
- uxCurrentOutput5Bit = 0;\r
- XGpio_mSetDataReg( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, 0x00 );\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )\r
-{\r
-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;\r
-\r
- portENTER_CRITICAL();\r
- {\r
- /* Which IO section does the LED being set/cleared belong to? The\r
- 4 bit or 5 bit outputs? */\r
- if( uxLED <= partstMAX_4BIT_LED )\r
- {\r
- uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput5Bit;\r
- } \r
- else\r
- {\r
- uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput4Bit;\r
- uxLED -= partstMAX_4BIT_LED;\r
- }\r
-\r
- /* Setup the bit mask accordingly. */\r
- uxLED = 0x01 << uxLED;\r
-\r
- /* Maintain the current output value. */\r
- if( xValue )\r
- {\r
- *puxCurrentValue |= uxLED;\r
- }\r
- else\r
- {\r
- *puxCurrentValue &= ~uxLED;\r
- }\r
-\r
- /* Write the value to the port. */\r
- XGpio_mSetDataReg( uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );\r
- }\r
- portEXIT_CRITICAL();\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestToggleLED( unsigned portBASE_TYPE uxLED )\r
-{\r
-unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue;\r
-\r
- portENTER_CRITICAL();\r
- {\r
- /* Which IO section does the LED being toggled belong to? The\r
- 4 bit or 5 bit outputs? */\r
- if( uxLED <= partstMAX_4BIT_LED )\r
- {\r
-\r
- uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput5Bit;\r
- } \r
- else\r
- {\r
- uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR;\r
- puxCurrentValue = &uxCurrentOutput4Bit;\r
- uxLED -= partstMAX_4BIT_LED;\r
- }\r
-\r
- /* Setup the bit mask accordingly. */\r
- uxLED = 0x01 << uxLED;\r
-\r
- /* Maintain the current output value. */\r
- if( *puxCurrentValue & uxLED )\r
- {\r
- *puxCurrentValue &= ~uxLED;\r
- }\r
- else\r
- {\r
- *puxCurrentValue |= uxLED;\r
- }\r
-\r
- /* Write the value to the port. */\r
- XGpio_mSetDataReg(uxBaseAddress, partstCHANNEL_1, *puxCurrentValue );\r
- }\r
- portEXIT_CRITICAL();\r
-}\r
-\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-\r
-/* \r
- BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART\r
-*/\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "queue.h"\r
-#include "task.h"\r
-\r
-/* Demo application includes. */\r
-#include "serial.h"\r
-\r
-/* Library includes. */\r
-#include "xparameters.h"\r
-#include "xuartlite.h"\r
-#include "xuartlite_l.h"\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Queues used to hold received characters, and characters waiting to be\r
-transmitted. */\r
-static QueueHandle_t xRxedChars; \r
-static QueueHandle_t xCharsForTx; \r
-\r
-/* Structure that maintains information on the UART being used. */\r
-static XUartLite xUART;\r
-\r
-/*\r
- * Sample UART interrupt handler. Note this is used to demonstrate the kernel\r
- * features and test the port - it is not intended to represent an efficient\r
- * implementation.\r
- */\r
-static void vSerialISR( XUartLite *pxUART );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength )\r
-{\r
- /* NOTE: The baud rate used by this driver is determined by the hardware\r
- parameterization of the UART Lite peripheral, and the baud value passed to\r
- this function has no effect. */\r
- ( void ) ulWantedBaud;\r
-\r
- /* Create the queues used to hold Rx and Tx characters. */\r
- xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) );\r
- xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) );\r
-\r
- /* Only initialise the UART if the queues were created correctly. */\r
- if( ( xRxedChars != NULL ) && ( xCharsForTx != NULL ) )\r
- {\r
-\r
- XUartLite_Initialize( &xUART, XPAR_RS232_UART_DEVICE_ID );\r
- XUartLite_ResetFifos( &xUART );\r
- XUartLite_DisableInterrupt( &xUART );\r
-\r
- if( xPortInstallInterruptHandler( XPAR_XPS_INTC_0_RS232_UART_INTERRUPT_INTR, ( XInterruptHandler )vSerialISR, (void *)&xUART ) == pdPASS )\r
- {\r
- /* xPortInstallInterruptHandler() could fail if \r
- vPortSetupInterruptController() has not been called prior to this \r
- function. */\r
- XUartLite_EnableInterrupt( &xUART );\r
- }\r
- }\r
- \r
- /* There is only one port so the handle is not used. */\r
- return ( xComPortHandle ) 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime )\r
-{\r
- /* The port handle is not required as this driver only supports one UART. */\r
- ( void ) pxPort;\r
-\r
- /* Get the next character from the buffer. Return false if no characters\r
- are available, or arrive before xBlockTime expires. */\r
- if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )\r
- {\r
- return pdTRUE;\r
- }\r
- else\r
- {\r
- return pdFALSE;\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime )\r
-{\r
-portBASE_TYPE xReturn = pdTRUE;\r
-\r
- /* Just to remove compiler warning. */\r
- ( void ) pxPort;\r
-\r
- portENTER_CRITICAL();\r
- {\r
- /* If the UART FIFO is full we can block posting the new data on the\r
- Tx queue. */\r
- if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) )\r
- {\r
- if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )\r
- {\r
- xReturn = pdFAIL;\r
- }\r
- }\r
- /* Otherwise, if there is data already in the queue we should add the\r
- new data to the back of the queue to ensure the sequencing is \r
- maintained. */\r
- else if( uxQueueMessagesWaiting( xCharsForTx ) )\r
- {\r
- if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS )\r
- {\r
- xReturn = pdFAIL;\r
- } \r
- }\r
- /* If the UART FIFO is not full and there is no data already in the\r
- queue we can write directly to the FIFO without disrupting the \r
- sequence. */\r
- else\r
- {\r
- XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar );\r
- }\r
- }\r
- portEXIT_CRITICAL();\r
-\r
- return xReturn;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vSerialClose( xComPortHandle xPort )\r
-{\r
- /* Not supported as not required by the demo application. */\r
- ( void ) xPort;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vSerialISR( XUartLite *pxUART )\r
-{\r
-unsigned long ulISRStatus;\r
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE, lDidSomething;\r
-char cChar;\r
-\r
- /* Just to remove compiler warning. */\r
- ( void ) pxUART;\r
-\r
- do\r
- {\r
- lDidSomething = pdFALSE;\r
-\r
- ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET );\r
-\r
- if( ( ulISRStatus & XUL_SR_RX_FIFO_VALID_DATA ) != 0 )\r
- {\r
- /* A character is available - place it in the queue of received\r
- characters. This might wake a task that was blocked waiting for \r
- data. */\r
- cChar = ( char ) XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET );\r
- xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken );\r
- lDidSomething = pdTRUE;\r
- }\r
- \r
- if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 )\r
- {\r
- /* There is space in the FIFO - if there are any characters queue for\r
- transmission they can be sent to the UART now. This might unblock a\r
- task that was waiting for space to become available on the Tx queue. */\r
- if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE )\r
- {\r
- XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar );\r
- lDidSomething = pdTRUE;\r
- } \r
- }\r
- } while( lDidSomething == pdTRUE );\r
-\r
- /* If we woke any tasks we may require a context switch. */\r
- if( xHigherPriorityTaskWoken )\r
- {\r
- portYIELD_FROM_ISR();\r
- }\r
-}\r
-\r
-\r
-\r
--- /dev/null
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3\r
+from http://sourceforge.net/projects/freertos/files/FreeRTOS/\r
+\r
+++ /dev/null
-<?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>
+++ /dev/null
-<?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>
+++ /dev/null
- 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;
- }
-
+++ /dev/null
-<?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_ > $stackToEast_AbvSbs_H_)">
- <xsl:value-of select="($stackToWest_AbvSbs_H_ - $stackToEast_AbvSbs_H_)"/>
- </xsl:if>
-
- <xsl:if test="not($stackToWest_AbvSbs_H_ > $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_ > $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_ > $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_ > $vert_line_y2_">
- <xsl:value-of select="$vert_line_y2_"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $vert_line_y2_">
- <xsl:value-of select="$vert_line_y2_"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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_ > $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
+++ /dev/null
-<?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>
+++ /dev/null
-<?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 < /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 < /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 < $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 < $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 < $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 < $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 < $iStackIdx)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX < $iStackIdx)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX < $iStackIdx)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[(@EAST <= $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 < $iStackToEast)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/BLKDSHAPES/PROCSHAPES[(@STACK_HORIZ_INDEX < $iStackToEast)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:if test="not(/EDKSYSTEM/SBSBUCKETS/SBSBUCKET[(@STACK_HORIZ_INDEX < $iStackToEast)])">
- <STACKSPACE WIDTH="0"/>
- </xsl:if>
-
- <xsl:for-each select="/EDKSYSTEM/BLKDSHAPES/BCLANESPACES/BCLANESPACE[((@EAST < $iStackToEast) or (not($iStackToWest = 'NONE') and (@EAST <= $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>
+++ /dev/null
-<?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>
+++ /dev/null
-<?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_ > 30)">
- <xsl:call-template name="Draw_IOPorts_4Sides"/>
- </xsl:if>
-
- <xsl:if test="($ports_count_ <= 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_ >= ($ports_per_side_ * 0) and ($pcount_ < ($ports_per_side_ * 1)))">W</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 1) and ($pcount_ < ($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_ >= ($ports_per_side_ * 0) and ($pcount_ < ($ports_per_side_ * 1)))">W</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 1) and ($pcount_ < ($ports_per_side_ * 2)))">S</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 2) and ($pcount_ < ($ports_per_side_ * 3)))">E</xsl:when>
- <xsl:when test="($pcount_ >= ($ports_per_side_ * 3) and ($pcount_ < ($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>
+++ /dev/null
-<?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 > ($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 > ($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> </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 < /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_ >= ($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_ < ($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_ > $vert_line_y2_">
- <xsl:value-of select="$vert_line_y2_"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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_ > $vert_line_y2_">
- <xsl:value-of select="($vert_line_y1_ - $vert_line_y2_)"/>
- </xsl:when>
- <xsl:when test="$vert_line_y2_ > $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
+++ /dev/null
-<?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_ > 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) <= 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) <= 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_ > 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_ > 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 > 9)">4.5</xsl:if>
- <xsl:if test="not($iIntr_PRI > 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 < $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>
-
+++ /dev/null
-<?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 < /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) <= 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>
+++ /dev/null
- 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;
- }
+++ /dev/null
-<?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 > 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 > 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">   <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">          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">   <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">   <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">   <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">   <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">   <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">   <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">   <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">   <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_ > 16"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
- <xsl:if test="$gpin_CNT_ <= 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">  indicates Clock ports, (SIGIS = CLK) </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">  indicates Interrupt ports,(SIGIS = INTR) </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">  indicates Reset ports, (SIGIS = RST) </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">  Indicates ports that instantiate or infer IOB primitives, (IOB_STATE = BUF or REG) </SPAN>
- </TD>
-
- <xsl:if test="$gpin_CNT_ <= 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"> CLK </SPAN></xsl:if>
- <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if>
- <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </SPAN></xsl:if>
- </TD>
- </xsl:for-each>
-
- </TABLE>
- </TD>
- </xsl:if>
-
- <xsl:if test="$gpin_CNT_ > 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() <= $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"> CLK </SPAN></xsl:if>
- <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if>
- <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </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"> </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() > $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"> CLK </SPAN></xsl:if>
- <xsl:if test="@SIGIS='RST'"><SPAN style="color:{$DS_COL_ATTR_RST}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> RESET </SPAN></xsl:if>
- <xsl:if test="@SIGIS='INTERRUPT'"><SPAN style="color:{$DS_COL_ATTR_INT}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> INTR </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='BUF'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> BUF </SPAN></xsl:if>
- <xsl:if test="@IOB_STATE='REG'"><SPAN style="color:{$DS_COL_ATTR_BUF}; font: bold 10px Verdana,Arial,Helvetica,sans-serif"> REG </SPAN></xsl:if>
- </TD>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:if test="$left_extra_ > 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"> </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_ < 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_ > 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>
+++ /dev/null
-<?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">
-   <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">⌊</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"> </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">⌋</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_ > 10">1</xsl:if>
- <xsl:if test="not($mhsParamCNT_ > 10)">0</xsl:if>
- </xsl:variable>
-
- <xsl:variable name="table_width_">
- <xsl:if test="$mhsParamCNT_ > 10"><xsl:value-of select="$DS_WIDTH"/></xsl:if>
- <xsl:if test="$mhsParamCNT_ <= 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_ > 10">4</xsl:if>
- <xsl:if test="$mhsParamCNT_ <= 10">2</xsl:if>
- </xsl:variable>
-
- <xsl:variable name="mdr_othr_col_">
- <xsl:if test="$mhsParamCNT_ > 10">2</xsl:if>
- <xsl:if test="$mhsParamCNT_ <= 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_ > 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_ <= 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_ > 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() <= $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"> </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() > $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_ > 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"> </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>
+++ /dev/null
-<?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    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'">■</xsl:if>
- <xsl:if test="not(@IS_DATA='TRUE')"> </xsl:if>
- </xsl:variable>
-
- <xsl:variable name="isinst">
- <xsl:if test="@IS_INSTRUCTION='TRUE'">
- ■
- </xsl:if>
- <xsl:if test="not(@IS_INSTRUCTION='TRUE')">
-  
- </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>
+++ /dev/null
-<?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 > 1">
- <SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processors </SPAN>
- </xsl:if>
- <xsl:if test="not($proc_CNT > 1)">
- <SPAN style="color:{$DS_COL_BLACK}; font: bold 16px Verdana Arial,Helvetica,sans-serif">Processor </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">   <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">          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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 </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">   <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 =================================== -->
+++ /dev/null
-<!-- =====================================================================
- 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; >
+++ /dev/null
-
-<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
">
-
- <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 & 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
+++ /dev/null
- -pe ppc405_0 $(PPC405_0_BOOTLOOP) \r
+++ /dev/null
- -p virtex4\r
+++ /dev/null
- -p xc4vfx12ff668-10 -lang vhdl
-\r
+++ /dev/null
-ppc405_0\r
-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\r
-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h \r
-RTOSDEMO_CC = powerpc-eabi-gcc\r
-RTOSDEMO_CC_SIZE = powerpc-eabi-size\r
-RTOSDEMO_CC_OPT = -O0\r
-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\r
-RTOSDEMO_CC_SEARCH = # -B\r
-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L\r
-RTOSDEMO_INCLUDES = -I./ppc405_0/include/ -IRTOSDemo/ # -I\r
-RTOSDEMO_LFLAGS = # -l\r
-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld\r
-RTOSDEMO_CC_DEBUG_FLAG = -g \r
-RTOSDEMO_CC_PROFILE_FLAG = # -pg\r
-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi\r
-RTOSDEMO_CC_INFERRED_FLAGS= \r
-RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=\r
-RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=\r
-RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=\r
- $(RTOSDEMO_CC_INFERRED_FLAGS) \\r
+++ /dev/null
- -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/\r
+++ /dev/null
-
-<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>\r
+++ /dev/null
-ppc405_0\r
-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 \r
-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 \r
-TESTAPP_PERIPHERAL_CC = powerpc-eabi-gcc\r
-TESTAPP_PERIPHERAL_CC_SIZE = powerpc-eabi-size\r
-TESTAPP_PERIPHERAL_CC_OPT = -O0\r
-TESTAPP_PERIPHERAL_CFLAGS = \r
-TESTAPP_PERIPHERAL_CC_SEARCH = # -B\r
-TESTAPP_PERIPHERAL_LIBPATH = -L./ppc405_0/lib/ # -L\r
-TESTAPP_PERIPHERAL_INCLUDES = -I./ppc405_0/include/ -ITestApp_Peripheral/src/ # -I\r
-TESTAPP_PERIPHERAL_LFLAGS = # -l\r
-TESTAPP_PERIPHERAL_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy2/Demo/PPC405_FPU_Xilinx_Virtex4_GCC/TestApp_Peripheral/src/TestApp_Peripheral_LinkScr.ld\r
-TESTAPP_PERIPHERAL_CC_DEBUG_FLAG = -g \r
-TESTAPP_PERIPHERAL_CC_PROFILE_FLAG = # -pg\r
-TESTAPP_PERIPHERAL_CC_GLOBPTR_FLAG= # -msdata=eabi\r
-TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS= -mfpu=sp_full \r
-TESTAPP_PERIPHERAL_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=\r
-TESTAPP_PERIPHERAL_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=\r
-TESTAPP_PERIPHERAL_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=\r
- $(TESTAPP_PERIPHERAL_CC_INFERRED_FLAGS) \\r
+++ /dev/null
- -p xc4vfx12ff668-10\r
+++ /dev/null
--device xc4vfx12ff668-10data/system.ucf7 0\r
+++ /dev/null
--device xc4vfx12ff668-10data/system.ucf 0\r
+++ /dev/null
-<!-- =====================================================================
- 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; >
+++ /dev/null
- 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;
- }
-
+++ /dev/null
-<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>
+++ /dev/null
-<?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>
+++ /dev/null
-############################################################################\r
-## This system.ucf file is generated by Base System Builder based on the\r
-## settings in the selected Xilinx Board Definition file. Please add other\r
-## user constraints to this file based on customer design specifications.\r
-############################################################################\r
-\r
-Net sys_clk_pin LOC=AE14;\r
-Net sys_clk_pin IOSTANDARD = LVCMOS33;\r
-Net sys_rst_pin LOC=D6;\r
-Net sys_rst_pin PULLUP;\r
-## System level constraints\r
-Net sys_clk_pin TNM_NET = sys_clk_pin;\r
-TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps;\r
-Net sys_rst_pin TIG;\r
-NET "ppc_reset_bus_Chip_Reset_Req" TPTHRU = "RST_GRP";\r
-NET "ppc_reset_bus_Core_Reset_Req" TPTHRU = "RST_GRP";\r
-NET "ppc_reset_bus_System_Reset_Req" TPTHRU = "RST_GRP";\r
-TIMESPEC "TS_RST1" = FROM CPUS THRU RST_GRP TO FFS TIG;\r
-Net fpga_0_SRAM_CLOCK LOC=AF7;\r
-Net fpga_0_SRAM_CLOCK SLEW = FAST;\r
-Net fpga_0_SRAM_CLOCK IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_CLOCK DRIVE = 16;\r
-\r
-## IO Devices constraints\r
-\r
-#### Module RS232_Uart constraints\r
-\r
-Net fpga_0_RS232_Uart_RX_pin LOC=W2;\r
-Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_RS232_Uart_TX_pin LOC=W1;\r
-Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33;\r
-\r
-#### Module LEDs_4Bit constraints\r
-\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> LOC=G5;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> TIG;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> LOC=G6;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> TIG;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> LOC=A11;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> TIG;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> LOC=A12;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> PULLUP;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> SLEW = SLOW;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> DRIVE = 2;\r
-Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> TIG;\r
-\r
-#### Module LEDs_Positions constraints\r
-\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> LOC=C6;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> LOC=F9;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> LOC=A5;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> LOC=E10;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> TIG;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> LOC=E2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> IOSTANDARD = LVCMOS25;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> PULLUP;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> SLEW = SLOW;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> DRIVE = 2;\r
-Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> TIG;\r
-\r
-#### Module SysACE_CompactFlash constraints\r
-\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin LOC=AF11;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CLK_pin PERIOD = 30000 ps;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> LOC=Y10;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> LOC=AA10;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> LOC=AC7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> LOC=Y7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<4> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> LOC=AA9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<5> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> LOC=Y9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPA_pin<6> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> LOC=AB7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> LOC=AC9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> LOC=AB9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> LOC=AE6;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> LOC=AD6;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<4> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> LOC=AF9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<5> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> LOC=AE9;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<6> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> LOC=AD8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<7> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> LOC=AC8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<8> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> LOC=AF4;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<9> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> LOC=AE4;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<10> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> LOC=AD3;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<11> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> LOC=AC3;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<12> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> LOC=AF6;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<13> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> LOC=AF5;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<14> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> LOC=AA7;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPD_pin<15> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin LOC=AD5;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_CEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin LOC=AA8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_OEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin LOC=Y8;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_WEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin LOC=AD4;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin TIG;\r
-\r
-#### Module SRAM constraints\r
-\r
-Net fpga_0_SRAM_Mem_A_pin<29> LOC=Y1;\r
-Net fpga_0_SRAM_Mem_A_pin<29> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<29> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<29> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<28> LOC=Y2;\r
-Net fpga_0_SRAM_Mem_A_pin<28> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<28> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<28> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<27> LOC=AA1;\r
-Net fpga_0_SRAM_Mem_A_pin<27> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<27> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<27> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<26> LOC=AB1;\r
-Net fpga_0_SRAM_Mem_A_pin<26> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<26> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<26> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<25> LOC=AB2;\r
-Net fpga_0_SRAM_Mem_A_pin<25> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<25> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<25> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<24> LOC=AC1;\r
-Net fpga_0_SRAM_Mem_A_pin<24> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<24> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<24> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<23> LOC=AC2;\r
-Net fpga_0_SRAM_Mem_A_pin<23> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<23> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<23> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<22> LOC=AD1;\r
-Net fpga_0_SRAM_Mem_A_pin<22> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<22> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<22> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<21> LOC=AD2;\r
-Net fpga_0_SRAM_Mem_A_pin<21> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<21> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<21> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<20> LOC=AE3;\r
-Net fpga_0_SRAM_Mem_A_pin<20> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<20> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<20> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<19> LOC=AF3;\r
-Net fpga_0_SRAM_Mem_A_pin<19> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<19> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<19> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<18> LOC=W3;\r
-Net fpga_0_SRAM_Mem_A_pin<18> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<18> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<18> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<17> LOC=W6;\r
-Net fpga_0_SRAM_Mem_A_pin<17> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<17> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<17> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<16> LOC=W5;\r
-Net fpga_0_SRAM_Mem_A_pin<16> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<16> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<16> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<15> LOC=AA3;\r
-Net fpga_0_SRAM_Mem_A_pin<15> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<15> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<15> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<14> LOC=AA4;\r
-Net fpga_0_SRAM_Mem_A_pin<14> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<14> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<14> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<13> LOC=AB3;\r
-Net fpga_0_SRAM_Mem_A_pin<13> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<13> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<13> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<12> LOC=AB4;\r
-Net fpga_0_SRAM_Mem_A_pin<12> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<12> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<12> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<11> LOC=AC4;\r
-Net fpga_0_SRAM_Mem_A_pin<11> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<11> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<11> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<10> LOC=AB5;\r
-Net fpga_0_SRAM_Mem_A_pin<10> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<10> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<10> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_A_pin<9> LOC=AC5;\r
-Net fpga_0_SRAM_Mem_A_pin<9> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_A_pin<9> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_A_pin<9> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> LOC=Y6;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<3> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> LOC=Y5;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<2> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> LOC=Y4;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<1> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> LOC=Y3;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_BEN_pin<0> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_WEN_pin LOC=AB6;\r
-Net fpga_0_SRAM_Mem_WEN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_WEN_pin SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_WEN_pin DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> LOC=AD13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<31> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> LOC=AC13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<30> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> LOC=AC15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<29> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> LOC=AC16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<28> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> LOC=AA11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<27> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> LOC=AA12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<26> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> LOC=AD14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<25> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> LOC=AC14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<24> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> LOC=AA13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<23> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> LOC=AB13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<22> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> LOC=AA15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<21> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> LOC=AA16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<20> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> LOC=AC11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<19> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> LOC=AC12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<18> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> LOC=AB14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<17> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> LOC=AA14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<16> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> LOC=D12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<15> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> LOC=E13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<14> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> LOC=C16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<13> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> LOC=D16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<12> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> LOC=D11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<11> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> LOC=C11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<10> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> LOC=E14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<9> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> LOC=D15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<8> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> LOC=D13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<7> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> LOC=D14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<6> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> LOC=F15;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<5> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> LOC=F16;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<4> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> LOC=F11;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<3> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> LOC=F12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<2> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> LOC=F13;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<1> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> LOC=F14;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_DQ_pin<0> DRIVE = 12;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> LOC=AC6;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_OEN_pin<0> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> LOC=V7;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_CEN_pin<0> DRIVE = 8;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin LOC=W4;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin IOSTANDARD = LVCMOS33;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin SLEW = FAST;\r
-Net fpga_0_SRAM_Mem_ADV_LDN_pin DRIVE = 8;\r
-\r
+++ /dev/null
--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
+++ /dev/null
-setMode -bscan\r
-setCable -p auto\r
-identify\r
-assignfile -p 3 -file implementation/download.bit\r
-program -p 3\r
-quit\r
+++ /dev/null
-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
-
-
+++ /dev/null
-connect ppc hw -cable type xilinx_parallel port LPT1 frequency 5000000 -debugdevice cpunr 1\r
+++ /dev/null
--p\r
-xc4vfx12ff668-10\r
--lang\r
-vhdl\r
-system.mhs\r
+++ /dev/null
-\1d\84æÄ®Òôtt¦Êè¬ÊäæÒÞÜ@Db`\b\`bDvC\84æÄ®Òôtt¦Êè\84ÞÂäÈ@D°ÒØÒÜðD@D¬ÒäèÊð@h@\9a\98h`f@\8aìÂØêÂèÒÞÜ@ ØÂèÌÞäÚD@DbDv,\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D\82¤\86\90\92¨\8a\86¨ª¤\8aD@DìÒäèÊðhDv,\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D\88\8a¬\92\86\8a¾¦\92´\8aD@DðÆhìÌðbdDv%\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D \82\86\96\82\8e\8aD@DÌÌllpDv&\84æÄ®ÒôttªàÈÂèÊ\8c \8e\82@D¦ \8a\8a\88\8e¤\82\88\8aD@DZb`Dv3\84æÄ®Òôtt¦Êè¦òæèÊÚ@DààÆh`j¾ìÒäèÊðh¾àØÄìhlD@Db\``\ÂDv,\84æÄ®ÒôttªàÈÂèÊ\86ØÞÆÖ@D\84ª¦¾\8c¤\8a¢D@Db``\``````Dv,\84æÄ®ÒôttªàÈÂèÊ\86ØÞÆÖ@D\86\98\96¾\8c¤\8a¢D@Db``\``````Dv-\84æÄ®ÒôttªàÈÂèÊ\86ØÞÆÖ@D ¤\9e\86¾\8c¤\8a¢D@Dd``\``````Dv(\84æÄ®ÒôttªàÈÂèʦòæèÊÚ@D¤¦¨¾ \9e\98\82¤\92¨²D@D`Dv1\84æÄ®Òôtt\82ÈÈ äÞÆÊææÞä@DààÆh`j¾`D@DààÆh`j¾ìÒäèÊðhDv/\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\86\82\86\90\8aD@DbDv3\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\86¾ª¦\8a¾\8c ªD@DbDv:\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\88\8a\84ª\8e¾\92\8cD@D\8c \8e\82@\94¨\82\8eDv6\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\88\9e\86\9a@¦\92´\8aD@D\9c\9e\9c\8aDv6\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\92\9e\86\9a@¦\92´\8aD@D\9c\9e\9c\8aDv2\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@DààÆh`j¾`D@D\9e\86\9a¾\9e\9c\98²D@D`Dv2\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D¤¦dfd¾ªÂäèD@Dðàæ¾êÂäèØÒèÊDv9\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾\84\82ª\88¤\82¨\8aD@Drl``Dv7\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾\88\82¨\82¾\84\92¨¦D@DpDv8\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾\9e\88\88¾ \82¤\92¨²D@D`Dv8\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\86¾ª¦\8a¾ \82¤\92¨²D@D`Dv<\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D\92\9e¨² \8aD@D°\92\98¾ª\82¤¨¾¬bDv<\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@Dª¦\8a¾\92\9c¨\8a¤¤ª ¨D@D¨¤ª\8aDv-\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D\98\8a\88æ¾h\84ÒèD@Dðàæ¾ÎàÒÞDv;\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D\98\8a\88æ¾h\84ÒèD@D\92\9e¨² \8aD@D°\92\98¾\8e \92\9e¾¬bDv2\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D\98\8a\88æ¾ ÞæÒèÒÞÜæD@Dðàæ¾ÎàÒÞDv@\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D\98\8a\88æ¾ ÞæÒèÒÞÜæD@D\92\9e¨² \8aD@D°\92\98¾\8e \92\9e¾¬bDv9\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D¦òæ\82\86\8a¾\86ÞÚàÂÆè\8cØÂæÐD@Dðàæ¾æòæÂÆÊDvG\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¦òæ\82\86\8a¾\86ÞÚàÂÆè\8cØÂæÐD@D\92\9e¨² \8aD@D°\92\98¾¦²¦\82\86\8a¾¬bDv+\84æÄ®Òôtt\82ÈÈ ÊäÒàÐÊäÂØ@D¦¤\82\9aD@Dðàæ¾ÚÆоÊÚÆDv5\84æÄ®ÒôttªàÈÂèÊ\86ÞÚàÞÜÊÜè@D¦¤\82\9aD@D\92\9e¨² \8aD@D°\92\98¾\8a\9a\86¾¬bDv:\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\86\82\86\90\8a¾\86\82\9c\88\92\88\82¨\8a¦D@D¦¤\82\9avDv8\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\86¾\86\82\86\90\8a¾\84²¨\8a¾¦\92´\8aD@DblDv9\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\86¾\88\86\82\86\90\8a¾\84²¨\8a¾¦\92´\8aD@DblDv9\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\88\86\82\86\90\8a¾\86\9e¤\8a\98\92¦¨D@Dv¦¤\82\9aDv9\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\92\86\82\86\90\8a¾\86\9e¤\8a\98\92¦¨D@Dv¦¤\82\9aDv:\84æÄ®ÒôttªàÈÂèÊ\86ÂÆÐÊ@DààÆh`j¾`D@D\92\9c¦¨\82\9c\86\8a¾\9c\82\9a\8aD@DààÆh`j¾`Dv/\84æÄ®ÒôttªàÈÂèʦ®@D¦®¾\8e\8a\9c\8a¤\82¨\8a¾\9a\8a\9a¨\8a¦¨D@D\8c\82\98¦\8aDv1\84æÄ®ÒôttªàÈÂèʦ®@D¦®¾\8e\8a\9c\8a¤\82¨\8a¾ \8a¤\92 \90¨\8a¦¨D@D¨¤ª\8aDv)\84æÄ®ÒôttªàÈÂèʦ®@D¦®¾\8e\8a\9c\8a¤\82¨\8a¾¦®\82 ¦D@DDv7\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D\92\9c¦¨\82\9c\86\8a¾\9c\82\9a\8aD@DààÆh`j¾`Dv0\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾\84\9e\9e¨\9a\8a\9aD@D¦¤\82\9aDv.\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨\88\92\9cD@D\9cÞÜÊDv/\84æÄ®ÒôttªàÈÂèʦ®@DààÆh`j¾`D@D¦®¾¦¨\88\9eª¨D@D\9cÞÜÊDv@\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾\88\82¨\82¾\92\9c¦D@D¦¤\82\9aDvK\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾\88\82¨\82¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤DvC\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾ ¤\9e\8e¤\82\9a¾\92\9c¦D@D¦¤\82\9aDvN\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾ ¤\9e\8e¤\82\9a¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤DvA\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¦¨\82\86\96¾\92\9c¦D@D¦¤\82\9aDvL\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¦¨\82\86\96¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤DvC\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¬\8a\86¨\9e¤¦¾\92\9c¦D@D¦¤\82\9aDvN\84æÄ®ÒôttªàÈÂèʨÊæè\82àà@D¨Êæè\82àྠÊäÒàÐÊäÂØD@D¦®¾¬\8a\86¨\9e¤¦¾ \82¤D@D\86¾\9a\8a\9a`¾\84\82¦\8a\82\88\88¤Dv
\ No newline at end of file
+++ /dev/null
-#################################################################\r
-# Makefile generated by Xilinx Platform Studio \r
-# Project:C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.xmp\r
-#\r
-# WARNING : This file will be re-generated every time a command\r
-# to run a make target is invoked. So, any changes made to this \r
-# file manually, will be lost when make is invoked next. \r
-#################################################################\r
-\r
-# Name of the Microprocessor system\r
-# The hardware specification of the system is in file :\r
-# C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.mhs\r
-# The software specification of the system is in file :\r
-# C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.mss\r
-\r
-include system_incl.make\r
-\r
-#################################################################\r
-# PHONY TARGETS\r
-#################################################################\r
-.PHONY: dummy\r
-.PHONY: netlistclean\r
-.PHONY: bitsclean\r
-.PHONY: simclean\r
-.PHONY: vpclean\r
-\r
-#################################################################\r
-# EXTERNAL TARGETS\r
-#################################################################\r
-all:\r
- @echo "Makefile to build a Microprocessor system :"\r
- @echo "Run make with any of the following targets"\r
- @echo " "\r
- @echo " netlist : Generates the netlist for the given MHS "\r
- @echo " bits : Runs Implementation tools to generate the bitstream"\r
- @echo " "\r
- @echo " libs : Configures the sw libraries for this system"\r
- @echo " program : Compiles the program sources for all the processor instances"\r
- @echo " "\r
- @echo " init_bram: Initializes bitstream with BRAM data"\r
- @echo " ace : Generate ace file from bitstream and elf"\r
- @echo " download : Downloads the bitstream onto the board"\r
- @echo " "\r
- @echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode"\r
- @echo " simmodel : Generates HDL simulation models for chosen simulation mode"\r
- @echo " behavioral_model : Generates behavioral HDL models with BRAM initialization"\r
- @echo " structural_model : Generates structural simulation HDL models with BRAM initialization"\r
- @echo " timing : Generates timing simulation HDL models with BRAM initialization"\r
- @echo " vp : Generates virtual platform model"\r
- @echo " "\r
- @echo " netlistclean: Deletes netlist"\r
- @echo " bitsclean: Deletes bit, ncd, bmm files"\r
- @echo " hwclean : Deletes implementation dir"\r
- @echo " libsclean: Deletes sw libraries"\r
- @echo " programclean: Deletes compiled ELF files"\r
- @echo " swclean : Deletes sw libraries and ELF files"\r
- @echo " simclean : Deletes simulation dir"\r
- @echo " vpclean : Deletes virtualplatform dir"\r
- @echo " clean : Deletes all generated files/directories"\r
- @echo " "\r
- @echo " make <target> : (Default)"\r
- @echo " Creates a Microprocessor system using default initializations"\r
- @echo " specified for each processor in MSS file"\r
-\r
-\r
-bits: $(SYSTEM_BIT)\r
-\r
-ace: $(SYSTEM_ACE)\r
-\r
-netlist: $(POSTSYN_NETLIST)\r
-\r
-libs: $(LIBRARIES)\r
-\r
-program: $(ALL_USER_ELF_FILES)\r
-\r
-download: $(DOWNLOAD_BIT) dummy\r
- @echo "*********************************************"\r
- @echo "Downloading Bitstream onto the target board"\r
- @echo "*********************************************"\r
- impact -batch etc/download.cmd\r
-\r
-init_bram: $(DOWNLOAD_BIT)\r
-\r
-sim: $(DEFAULT_SIM_SCRIPT)\r
- cd simulation/behavioral; \\r
- $(SIM_CMD) &\r
-\r
-simmodel: $(DEFAULT_SIM_SCRIPT)\r
-\r
-behavioral_model: $(BEHAVIORAL_SIM_SCRIPT)\r
-\r
-structural_model: $(STRUCTURAL_SIM_SCRIPT)\r
-\r
-vp: $(VPEXEC)\r
-\r
-clean: hwclean libsclean programclean simclean vpclean\r
- rm -f _impact.cmd\r
- rm -f *.log\r
-\r
-hwclean: netlistclean bitsclean\r
- rm -rf implementation synthesis xst hdl\r
- rm -rf xst.srp $(SYSTEM).srp\r
-\r
-netlistclean:\r
- rm -f $(POSTSYN_NETLIST)\r
- rm -f platgen.log\r
- rm -f $(BMM_FILE)\r
-\r
-bitsclean:\r
- rm -f $(SYSTEM_BIT)\r
- rm -f implementation/$(SYSTEM).ncd\r
- rm -f implementation/$(SYSTEM)_bd.bmm \r
- rm -f implementation/$(SYSTEM)_map.ncd \r
-\r
-simclean: \r
- rm -rf simulation/behavioral\r
- rm -f simgen.log\r
-\r
-swclean: libsclean programclean\r
- @echo ""\r
-\r
-libsclean: $(LIBSCLEAN_TARGETS)\r
- rm -f libgen.log\r
-\r
-programclean: $(PROGRAMCLEAN_TARGETS)\r
-\r
-vpclean:\r
- rm -rf virtualplatform\r
- rm -f vpgen.log\r
-\r
-#################################################################\r
-# SOFTWARE PLATFORM FLOW\r
-#################################################################\r
-\r
-\r
-$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt\r
- @echo "*********************************************"\r
- @echo "Creating software libraries..."\r
- @echo "*********************************************"\r
- libgen $(LIBGEN_OPTIONS) $(MSSFILE)\r
-\r
-\r
-ppc405_0_libsclean:\r
- rm -rf ppc405_0/\r
-\r
-#################################################################\r
-# SOFTWARE APPLICATION RTOSDEMO\r
-#################################################################\r
-\r
-RTOSDemo_program: $(RTOSDEMO_OUTPUT) \r
-\r
-$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \\r
- $(LIBRARIES) __xps/rtosdemo_compiler.opt\r
- @mkdir -p $(RTOSDEMO_OUTPUT_DIR) \r
- $(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \\r
- $(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \\r
- $(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) \r
- $(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) \r
- @echo ""\r
-\r
-RTOSDemo_programclean:\r
- rm -f $(RTOSDEMO_OUTPUT) \r
-\r
-#################################################################\r
-# BOOTLOOP ELF FILES\r
-#################################################################\r
-\r
-\r
-\r
-$(PPC405_0_BOOTLOOP): $(PPC405_BOOTLOOP)\r
- @mkdir -p $(BOOTLOOP_DIR)\r
- cp -f $(PPC405_BOOTLOOP) $(PPC405_0_BOOTLOOP)\r
-\r
-#################################################################\r
-# HARDWARE IMPLEMENTATION FLOW\r
-#################################################################\r
-\r
-\r
-$(BMM_FILE) \\r
-$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \\r
- $(CORE_STATE_DEVELOPMENT_FILES)\r
- @echo "****************************************************"\r
- @echo "Creating system netlist for hardware specification.."\r
- @echo "****************************************************"\r
- platgen $(PLATGEN_OPTIONS) $(MHSFILE)\r
-\r
-$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES)\r
- @echo "Running synthesis..."\r
- bash -c "cd synthesis; ./synthesis.sh"\r
-\r
-__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY)\r
- @echo "*********************************************"\r
- @echo "Running Xilinx Implementation tools.."\r
- @echo "*********************************************"\r
- @cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf\r
- xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/manage_fastruntime_opt.pl $(MANAGE_FASTRT_OPTIONS)\r
- xflow -wd implementation -p $(DEVICE) -implement xflow.opt $(SYSTEM).ngc\r
- touch __xps/$(SYSTEM)_routed\r
-\r
-$(SYSTEM_BIT): __xps/$(SYSTEM)_routed\r
- xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par\r
- @echo "*********************************************"\r
- @echo "Running Bitgen.."\r
- @echo "*********************************************"\r
- @cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut\r
- cd implementation; bitgen -w -f bitgen.ut $(SYSTEM)\r
-\r
-$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_FILES) __xps/bitinit.opt\r
- # @cp -f implementation/$(SYSTEM)_bd.bmm .\r
- @echo "*********************************************"\r
- @echo "Initializing BRAM contents of the bitstream"\r
- @echo "*********************************************"\r
- bitinit $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \\r
- -bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT)\r
- @rm -f $(SYSTEM)_bd.bmm\r
-\r
-$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) \r
- @echo "*********************************************"\r
- @echo "Creating system ace file"\r
- @echo "*********************************************"\r
- xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT) -target ppc_hw -ace $(SYSTEM_ACE)\r
-\r
-#################################################################\r
-# SIMULATION FLOW\r
-#################################################################\r
-\r
-\r
-################## BEHAVIORAL SIMULATION ##################\r
-\r
-$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \\r
- $(BRAMINIT_ELF_FILES)\r
- @echo "*********************************************"\r
- @echo "Creating behavioral simulation models..."\r
- @echo "*********************************************"\r
- simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE)\r
-\r
-################## STRUCTURAL SIMULATION ##################\r
-\r
-$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \\r
- $(BRAMINIT_ELF_FILES)\r
- @echo "*********************************************"\r
- @echo "Creating structural simulation models..."\r
- @echo "*********************************************"\r
- simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE)\r
-\r
-\r
-################## TIMING SIMULATION ##################\r
-\r
-$(TIMING_SIM_SCRIPT): $(SYSTEM_BIT) __xps/simgen.opt \\r
- $(BRAMINIT_ELF_FILES)\r
- @echo "*********************************************"\r
- @echo "Creating timing simulation models..."\r
- @echo "*********************************************"\r
- simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE)\r
-\r
-#################################################################\r
-# VIRTUAL PLATFORM FLOW\r
-#################################################################\r
-\r
-\r
-$(VPEXEC): $(MHSFILE) __xps/vpgen.opt\r
- @echo "****************************************************"\r
- @echo "Creating virtual platform for hardware specification.."\r
- @echo "****************************************************"\r
- vpgen $(VPGEN_OPTIONS) $(MHSFILE)\r
-\r
-dummy:\r
- @echo ""\r
-\r
+++ /dev/null
-\r
-# ##############################################################################\r
-# Created by Base System Builder Wizard for Xilinx EDK 10.1.01 Build EDK_K_SP1.3\r
-# Fri May 09 11:01:33 2008\r
-# Target Board: Xilinx Virtex 4 ML403 Evaluation Platform Rev 1\r
-# Family: virtex4\r
-# Device: xc4vfx12\r
-# Package: ff668\r
-# Speed Grade: -10\r
-# Processor: ppc405_0\r
-# Processor clock frequency: 200.00 MHz\r
-# Bus clock frequency: 100.00 MHz\r
-# Total Off Chip Memory : 1 MB\r
-# - SRAM = 1 MB\r
-# ##############################################################################\r
- PARAMETER VERSION = 2.1.0\r
-\r
-\r
- PORT fpga_0_RS232_Uart_RX_pin = fpga_0_RS232_Uart_RX, DIR = I\r
- PORT fpga_0_RS232_Uart_TX_pin = fpga_0_RS232_Uart_TX, DIR = O\r
- PORT fpga_0_LEDs_4Bit_GPIO_IO_pin = fpga_0_LEDs_4Bit_GPIO_IO, DIR = IO, VEC = [0:3]\r
- PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO, DIR = IO, VEC = [0:4]\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_CLK_pin = fpga_0_SysACE_CompactFlash_SysACE_CLK, DIR = I\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_MPA_pin = fpga_0_SysACE_CompactFlash_SysACE_MPA, DIR = O, VEC = [6:1]\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_MPD_pin = fpga_0_SysACE_CompactFlash_SysACE_MPD, DIR = IO, VEC = [15:0]\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_CEN_pin = fpga_0_SysACE_CompactFlash_SysACE_CEN, DIR = O\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_OEN_pin = fpga_0_SysACE_CompactFlash_SysACE_OEN, DIR = O\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_WEN_pin = fpga_0_SysACE_CompactFlash_SysACE_WEN, DIR = O\r
- PORT fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ, DIR = I\r
- PORT fpga_0_SRAM_Mem_A_pin = fpga_0_SRAM_Mem_A, DIR = O, VEC = [9:29]\r
- PORT fpga_0_SRAM_Mem_BEN_pin = fpga_0_SRAM_Mem_BEN, DIR = O, VEC = [0:3]\r
- PORT fpga_0_SRAM_Mem_WEN_pin = fpga_0_SRAM_Mem_WEN, DIR = O\r
- PORT fpga_0_SRAM_Mem_DQ_pin = fpga_0_SRAM_Mem_DQ, DIR = IO, VEC = [0:31]\r
- PORT fpga_0_SRAM_Mem_OEN_pin = fpga_0_SRAM_Mem_OEN, DIR = O, VEC = [0:0]\r
- PORT fpga_0_SRAM_Mem_CEN_pin = fpga_0_SRAM_Mem_CEN, DIR = O, VEC = [0:0]\r
- PORT fpga_0_SRAM_Mem_ADV_LDN_pin = fpga_0_SRAM_Mem_ADV_LDN, DIR = O\r
- PORT fpga_0_SRAM_CLOCK = sys_clk_s, DIR = O\r
- PORT sys_clk_pin = dcm_clk_s, DIR = I, SIGIS = CLK, CLK_FREQ = 100000000\r
- PORT sys_rst_pin = sys_rst_s, DIR = I, RST_POLARITY = 0, SIGIS = RST\r
-\r
-\r
-BEGIN ppc405_virtex4\r
- PARAMETER INSTANCE = ppc405_0\r
- PARAMETER HW_VER = 2.01.a\r
- PARAMETER C_FASTEST_PLB_CLOCK = DPLB0\r
- PARAMETER C_APU_CONTROL = 0b0000000000000001\r
- PARAMETER C_IDCR_BASEADDR = 0b0100000000\r
- PARAMETER C_IDCR_HIGHADDR = 0b0111111111\r
- BUS_INTERFACE JTAGPPC = jtagppc_0_0\r
- BUS_INTERFACE IPLB0 = plb\r
- BUS_INTERFACE DPLB0 = plb\r
- BUS_INTERFACE RESETPPC = ppc_reset_bus\r
- PORT CPMC405CLOCK = proc_clk_s\r
- PORT EICC405EXTINPUTIRQ = EICC405EXTINPUTIRQ\r
-END\r
-\r
-BEGIN jtagppc_cntlr\r
- PARAMETER INSTANCE = jtagppc_0\r
- PARAMETER HW_VER = 2.01.a\r
- BUS_INTERFACE JTAGPPC0 = jtagppc_0_0\r
-END\r
-\r
-BEGIN plb_v46\r
- PARAMETER INSTANCE = plb\r
- PARAMETER C_DCR_INTFCE = 0\r
- PARAMETER C_NUM_CLK_PLB2OPB_REARB = 100\r
- PARAMETER HW_VER = 1.02.a\r
- PORT PLB_Clk = sys_clk_s\r
- PORT SYS_Rst = sys_bus_reset\r
-END\r
-\r
-BEGIN xps_uartlite\r
- PARAMETER INSTANCE = RS232_Uart\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_BAUDRATE = 9600\r
- PARAMETER C_DATA_BITS = 8\r
- PARAMETER C_ODD_PARITY = 0\r
- PARAMETER C_USE_PARITY = 0\r
- PARAMETER C_SPLB_CLK_FREQ_HZ = 100000000\r
- PARAMETER C_BASEADDR = 0x84000000\r
- PARAMETER C_HIGHADDR = 0x8400ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT RX = fpga_0_RS232_Uart_RX\r
- PORT TX = fpga_0_RS232_Uart_TX\r
- PORT Interrupt = RS232_Uart_Interrupt\r
-END\r
-\r
-BEGIN xps_gpio\r
- PARAMETER INSTANCE = LEDs_4Bit\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_GPIO_WIDTH = 4\r
- PARAMETER C_IS_DUAL = 0\r
- PARAMETER C_IS_BIDIR = 1\r
- PARAMETER C_ALL_INPUTS = 0\r
- PARAMETER C_BASEADDR = 0x81400000\r
- PARAMETER C_HIGHADDR = 0x8140ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT GPIO_IO = fpga_0_LEDs_4Bit_GPIO_IO\r
-END\r
-\r
-BEGIN xps_gpio\r
- PARAMETER INSTANCE = LEDs_Positions\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_GPIO_WIDTH = 5\r
- PARAMETER C_IS_DUAL = 0\r
- PARAMETER C_IS_BIDIR = 1\r
- PARAMETER C_ALL_INPUTS = 0\r
- PARAMETER C_BASEADDR = 0x81420000\r
- PARAMETER C_HIGHADDR = 0x8142ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO\r
-END\r
-\r
-BEGIN xps_sysace\r
- PARAMETER INSTANCE = SysACE_CompactFlash\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_MEM_WIDTH = 16\r
- PARAMETER C_BASEADDR = 0x83600000\r
- PARAMETER C_HIGHADDR = 0x8360ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT SysACE_CLK = fpga_0_SysACE_CompactFlash_SysACE_CLK\r
- PORT SysACE_MPA = fpga_0_SysACE_CompactFlash_SysACE_MPA & SysACE_CompactFlash_SysACE_MPA\r
- PORT SysACE_MPD = fpga_0_SysACE_CompactFlash_SysACE_MPD\r
- PORT SysACE_CEN = fpga_0_SysACE_CompactFlash_SysACE_CEN\r
- PORT SysACE_OEN = fpga_0_SysACE_CompactFlash_SysACE_OEN\r
- PORT SysACE_WEN = fpga_0_SysACE_CompactFlash_SysACE_WEN\r
- PORT SysACE_MPIRQ = fpga_0_SysACE_CompactFlash_SysACE_MPIRQ\r
-END\r
-\r
-BEGIN xps_mch_emc\r
- PARAMETER INSTANCE = SRAM\r
- PARAMETER HW_VER = 1.01.a\r
- PARAMETER C_MCH_PLB_CLK_PERIOD_PS = 10000\r
- PARAMETER C_NUM_BANKS_MEM = 1\r
- PARAMETER C_MAX_MEM_WIDTH = 32\r
- PARAMETER C_INCLUDE_NEGEDGE_IOREGS = 1\r
- PARAMETER C_INCLUDE_DATAWIDTH_MATCHING_0 = 1\r
- PARAMETER C_MEM0_WIDTH = 32\r
- PARAMETER C_SYNCH_MEM_0 = 1\r
- PARAMETER C_TCEDV_PS_MEM_0 = 0\r
- PARAMETER C_TWC_PS_MEM_0 = 0\r
- PARAMETER C_TAVDV_PS_MEM_0 = 0\r
- PARAMETER C_TWP_PS_MEM_0 = 0\r
- PARAMETER C_THZCE_PS_MEM_0 = 0\r
- PARAMETER C_TLZWE_PS_MEM_0 = 0\r
- PARAMETER C_MEM0_BASEADDR = 0xfff00000\r
- PARAMETER C_MEM0_HIGHADDR = 0xffffffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT Mem_A = fpga_0_SRAM_Mem_A_split\r
- PORT Mem_BEN = fpga_0_SRAM_Mem_BEN\r
- PORT Mem_WEN = fpga_0_SRAM_Mem_WEN\r
- PORT Mem_DQ = fpga_0_SRAM_Mem_DQ\r
- PORT Mem_OEN = fpga_0_SRAM_Mem_OEN\r
- PORT Mem_CEN = fpga_0_SRAM_Mem_CEN\r
- PORT Mem_ADV_LDN = fpga_0_SRAM_Mem_ADV_LDN\r
- PORT RdClk = sys_clk_s\r
-END\r
-\r
-BEGIN util_bus_split\r
- PARAMETER INSTANCE = SRAM_util_bus_split_0\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_SIZE_IN = 32\r
- PARAMETER C_LEFT_POS = 9\r
- PARAMETER C_SPLIT = 30\r
- PORT Sig = fpga_0_SRAM_Mem_A_split\r
- PORT Out1 = fpga_0_SRAM_Mem_A\r
-END\r
-\r
-BEGIN clock_generator\r
- PARAMETER INSTANCE = clock_generator_0\r
- PARAMETER HW_VER = 2.01.a\r
- PARAMETER C_EXT_RESET_HIGH = 1\r
- PARAMETER C_CLKIN_FREQ = 100000000\r
- PARAMETER C_CLKOUT0_FREQ = 200000000\r
- PARAMETER C_CLKOUT0_BUF = TRUE\r
- PARAMETER C_CLKOUT0_PHASE = 0\r
- PARAMETER C_CLKOUT0_GROUP = NONE\r
- PARAMETER C_CLKOUT1_FREQ = 100000000\r
- PARAMETER C_CLKOUT1_BUF = TRUE\r
- PARAMETER C_CLKOUT1_PHASE = 0\r
- PARAMETER C_CLKOUT1_GROUP = NONE\r
- PORT CLKOUT0 = proc_clk_s\r
- PORT CLKOUT1 = sys_clk_s\r
- PORT CLKIN = dcm_clk_s\r
- PORT LOCKED = Dcm_all_locked\r
- PORT RST = net_gnd\r
-END\r
-\r
-BEGIN proc_sys_reset\r
- PARAMETER INSTANCE = proc_sys_reset_0\r
- PARAMETER HW_VER = 2.00.a\r
- PARAMETER C_EXT_RESET_HIGH = 0\r
- BUS_INTERFACE RESETPPC0 = ppc_reset_bus\r
- PORT Slowest_sync_clk = sys_clk_s\r
- PORT Dcm_locked = Dcm_all_locked\r
- PORT Ext_Reset_In = sys_rst_s\r
- PORT Bus_Struct_Reset = sys_bus_reset\r
- PORT Peripheral_Reset = sys_periph_reset\r
-END\r
-\r
-BEGIN xps_intc\r
- PARAMETER INSTANCE = xps_intc_0\r
- PARAMETER HW_VER = 1.00.a\r
- PARAMETER C_BASEADDR = 0x81800000\r
- PARAMETER C_HIGHADDR = 0x8180ffff\r
- BUS_INTERFACE SPLB = plb\r
- PORT Irq = EICC405EXTINPUTIRQ\r
- PORT Intr = RS232_Uart_Interrupt\r
-END\r
-\r
+++ /dev/null
-\r
- PARAMETER VERSION = 2.2.0\r
-\r
-\r
-BEGIN OS\r
- PARAMETER OS_NAME = standalone\r
- PARAMETER OS_VER = 2.00.a\r
- PARAMETER PROC_INSTANCE = ppc405_0\r
-END\r
-\r
-\r
-BEGIN PROCESSOR\r
- PARAMETER DRIVER_NAME = cpu_ppc405\r
- PARAMETER DRIVER_VER = 1.10.a\r
- PARAMETER HW_INSTANCE = ppc405_0\r
- PARAMETER COMPILER = powerpc-eabi-gcc\r
- PARAMETER ARCHIVER = powerpc-eabi-ar\r
- PARAMETER CORE_CLOCK_FREQ_HZ = 200000000\r
-END\r
-\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = jtagppc_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = uartlite\r
- PARAMETER DRIVER_VER = 1.13.a\r
- PARAMETER HW_INSTANCE = RS232_Uart\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = gpio\r
- PARAMETER DRIVER_VER = 2.12.a\r
- PARAMETER HW_INSTANCE = LEDs_4Bit\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = gpio\r
- PARAMETER DRIVER_VER = 2.12.a\r
- PARAMETER HW_INSTANCE = LEDs_Positions\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = sysace\r
- PARAMETER DRIVER_VER = 1.11.a\r
- PARAMETER HW_INSTANCE = SysACE_CompactFlash\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = emc\r
- PARAMETER DRIVER_VER = 2.00.a\r
- PARAMETER HW_INSTANCE = SRAM\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = SRAM_util_bus_split_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = clock_generator_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = generic\r
- PARAMETER DRIVER_VER = 1.00.a\r
- PARAMETER HW_INSTANCE = proc_sys_reset_0\r
-END\r
-\r
-BEGIN DRIVER\r
- PARAMETER DRIVER_NAME = intc\r
- PARAMETER DRIVER_VER = 1.11.a\r
- PARAMETER HW_INSTANCE = xps_intc_0\r
-END\r
-\r
-\r
+++ /dev/null
-#Please do not modify this file by hand\r
-XmpVersion: 10.1.01\r
-VerMgmt: 10.1.01\r
-IntStyle: default\r
-MHS File: system.mhs\r
-MSS File: system.mss\r
-NPL File: projnav/system.ise\r
-Architecture: virtex4\r
-Device: xc4vfx12\r
-Package: ff668\r
-SpeedGrade: -10\r
-UserCmd1: \r
-UserCmd1Type: 0\r
-UserCmd2: \r
-UserCmd2Type: 0\r
-TopInst: system_i\r
-GenSimTB: 0\r
-InsertNoPads: 0\r
-WarnForEAArch: 1\r
-HdlLang: VHDL\r
-Simulator: mti\r
-SimModel: BEHAVIORAL\r
-MixLangSim: 1\r
-UcfFile: data/system.ucf\r
-FpgaImpMode: 0\r
-EnableParTimingError: 1\r
-EnableResetOptimization: 0\r
-ShowLicenseDialog: 1\r
-ICacheAddr: SRAM,\r
-DCacheAddr: SRAM,\r
-Processor: ppc405_0\r
-BootLoop: 1\r
-XmdStub: 0\r
-SwProj: RTOSDemo\r
-Processor: ppc405_0\r
-Executable: RTOSDemo/executable.elf\r
-Source: RTOSDemo/../../Common/Minimal/BlockQ.c\r
-Source: RTOSDemo/../../Common/Minimal/blocktim.c\r
-Source: RTOSDemo/../../Common/Minimal/comtest.c\r
-Source: RTOSDemo/../../Common/Minimal/countsem.c\r
-Source: RTOSDemo/../../Common/Minimal/death.c\r
-Source: RTOSDemo/../../Common/Minimal/dynamic.c\r
-Source: RTOSDemo/../../Common/Minimal/flash.c\r
-Source: RTOSDemo/../../Common/Minimal/GenQTest.c\r
-Source: RTOSDemo/../../Common/Minimal/integer.c\r
-Source: RTOSDemo/../../Common/Minimal/QPeek.c\r
-Source: RTOSDemo/../../Common/Minimal/recmutex.c\r
-Source: RTOSDemo/../../Common/Minimal/semtest.c\r
-Source: RTOSDemo/../../../Source/tasks.c\r
-Source: RTOSDemo/../../../Source/list.c\r
-Source: RTOSDemo/../../../Source/queue.c\r
-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/port.c\r
-Source: RTOSDemo/main.c\r
-Source: RTOSDemo/serial/serial.c\r
-Source: RTOSDemo/partest/partest.c\r
-Source: RTOSDemo/../../../Source/portable/GCC/PPC405_Xilinx/portasm.S\r
-Source: RTOSDemo/../../../Source/portable/MemMang/heap_2.c\r
-Source: RTOSDemo/flop/flop.c\r
-Source: RTOSDemo/flop/flop-reg-test.c\r
-Header: RTOSDemo/FreeRTOSConfig.h\r
-DefaultInit: EXECUTABLE\r
-InitBram: 0\r
-Active: 1\r
-CompilerOptLevel: 0\r
-GlobPtrOpt: 0\r
-DebugSym: 1\r
-ProfileFlag: 0\r
-ProgStart: \r
-StackSize: \r
-HeapSize: \r
-LinkerScript: RTOSDemo/RTOSDemo_linker_script.ld\r
-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\r
-CompileInXps: 1\r
-NonXpsApp: 0\r
+++ /dev/null
-#################################################################\r
-# Makefile generated by Xilinx Platform Studio \r
-# Project:C:\E\temp\rc\3\V5.0.2\FreeRTOS\Demo\PPC405_Xilinx_Virtex4_GCC\system.xmp\r
-#\r
-# WARNING : This file will be re-generated every time a command\r
-# to run a make target is invoked. So, any changes made to this \r
-# file manually, will be lost when make is invoked next. \r
-#################################################################\r
-\r
-XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/10.1/EDK\r
-NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/10.1/EDK\r
-\r
-SYSTEM = system\r
-\r
-MHSFILE = system.mhs\r
-\r
-MSSFILE = system.mss\r
-\r
-FPGA_ARCH = virtex4\r
-\r
-DEVICE = xc4vfx12ff668-10\r
-\r
-LANGUAGE = vhdl\r
-\r
-SEARCHPATHOPT = \r
-\r
-SUBMODULE_OPT = \r
-\r
-PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT)\r
-\r
-LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT)\r
-\r
-VPGEN_OPTIONS = -p $(DEVICE) $(SEARCHPATHOPT)\r
-\r
-MANAGE_FASTRT_OPTIONS = -reduce_fanout no\r
-\r
-OBSERVE_PAR_OPTIONS = -error yes\r
-\r
-RTOSDEMO_OUTPUT_DIR = RTOSDemo\r
-RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf\r
-\r
-MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf\r
-PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf\r
-PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf\r
-BOOTLOOP_DIR = bootloops\r
-\r
-PPC405_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc405_0.elf\r
-\r
-BRAMINIT_ELF_FILES = \r
-BRAMINIT_ELF_FILE_ARGS = \r
-\r
-ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) \r
-\r
-SIM_CMD = vsim\r
-\r
-BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do\r
-\r
-STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do\r
-\r
-TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do\r
-\r
-DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT)\r
-\r
-MIX_LANG_SIM_OPT = -mixed yes\r
-\r
-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/\r
-\r
-\r
-LIBRARIES = \\r
- ppc405_0/lib/libxil.a \r
-VPEXEC = virtualplatform/vpexec.exe\r
-\r
-LIBSCLEAN_TARGETS = ppc405_0_libsclean \r
-\r
-PROGRAMCLEAN_TARGETS = RTOSDemo_programclean \r
-\r
-CORE_STATE_DEVELOPMENT_FILES = \r
-\r
-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\r
-\r
-POSTSYN_NETLIST = implementation/$(SYSTEM).ngc\r
-\r
-SYSTEM_BIT = implementation/$(SYSTEM).bit\r
-\r
-DOWNLOAD_BIT = implementation/download.bit\r
-\r
-SYSTEM_ACE = implementation/$(SYSTEM).ace\r
-\r
-UCF_FILE = data/system.ucf\r
-\r
-BMM_FILE = implementation/$(SYSTEM).bmm\r
-\r
-BITGEN_UT_FILE = etc/bitgen.ut\r
-\r
-XFLOW_OPT_FILE = etc/fast_runtime.opt\r
-XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE)\r
-\r
-XPLORER_DEPENDENCY = __xps/xplorer.opt\r
-XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7\r
-\r
-FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(BITGEN_UT_FILE) $(XFLOW_DEPENDENCY)\r
-\r
-#################################################################\r
-# SOFTWARE APPLICATION RTOSDEMO\r
-#################################################################\r
-\r
-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\r
-\r
-RTOSDEMO_HEADERS = RTOSDemo/FreeRTOSConfig.h \r
-\r
-RTOSDEMO_CC = powerpc-eabi-gcc\r
-RTOSDEMO_CC_SIZE = powerpc-eabi-size\r
-RTOSDEMO_CC_OPT = -O0\r
-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\r
-RTOSDEMO_CC_SEARCH = # -B\r
-RTOSDEMO_LIBPATH = -L./ppc405_0/lib/ # -L\r
-RTOSDEMO_INCLUDES = -I./ppc405_0/include/ -IRTOSDemo/ # -I\r
-RTOSDEMO_LFLAGS = # -l\r
-RTOSDEMO_LINKER_SCRIPT = RTOSDemo/RTOSDemo_linker_script.ld\r
-RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) \r
-RTOSDEMO_CC_DEBUG_FLAG = -g \r
-RTOSDEMO_CC_PROFILE_FLAG = # -pg\r
-RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi\r
-RTOSDEMO_CC_INFERRED_FLAGS= \r
-RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR=\r
-RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE=\r
-RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE=\r
-RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \\r
- $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG) \\r
- $(RTOSDEMO_CC_INFERRED_FLAGS) \\r
- $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG) \r
+++ /dev/null
-WARNING:MDT - ppc405_virtex4 (ppc405_0) -\r
- C:\E\Dev\FreeRTOS\WorkingCopy2\Demo\PPC405_FPU_Xilinx_Virtex4_GCC\dump.mhs\r
- line 28 - ADDRESS specified by PARAMETER C_IDCR_BASEADDR is ignored
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
- RSEG ICODE:CODE\r
- CODE32\r
-\r
- EXTERN vEMACISR\r
- PUBLIC vEMACISREntry\r
-\r
-; Wrapper for the EMAC interrupt service routine. This can cause a\r
-; context switch so requires an assembly wrapper.\r
-\r
-; Defines the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.\r
-#include "ISR_Support.h"\r
-\r
-vEMACISREntry:\r
-\r
- portSAVE_CONTEXT ; Save the context of the current task.\r
-\r
- bl vEMACISR ; Call the ISR routine.\r
-\r
- portRESTORE_CONTEXT ; Restore the context of the current task -\r
- ; which may be different to the task that\r
- ; was interrupted.\r
-\r
- END\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Basic interrupt driven driver for the EMAC peripheral. This driver is not\r
- * reentrant as with uIP the buffers are only ever accessed from a single task.\r
- *\r
- * The simple buffer management used within uIP allows the EMAC driver to also\r
- * be simplistic. The driver contained within the lwIP demo is more\r
- * comprehensive.\r
- */\r
-\r
-\r
-/*\r
-Changes from V3.2.2\r
-\r
- + Corrected the byte order when writing the MAC address to the MAC.\r
- + Support added for MII interfaces. Previously only RMII was supported.\r
-\r
-Changes from V3.2.3\r
-\r
- + The MII interface is now the default.\r
- + Modified the initialisation sequence slightly to allow auto init more\r
- time to complete.\r
-\r
-Changes from V3.2.4\r
-\r
- + Also read the EMAC_RSR register in the EMAC ISR as a work around the \r
- the EMAC bug that can reset the RX bit in EMAC_ISR register before the\r
- bit has been read.\r
-\r
-Changes from V4.0.4\r
-\r
- + Corrected the Rx frame length mask when obtaining the length from the\r
- rx descriptor.\r
-\r
-*/\r
-\r
-/* Standard includes. */\r
-#include <string.h>\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "semphr.h"\r
-#include "task.h"\r
-\r
-/* uIP includes. */\r
-#include "uip.h"\r
-\r
-/* Hardware specific includes. */\r
-#include "Emac.h"\r
-#include "mii.h"\r
-\r
-\r
-/* USE_RMII_INTERFACE must be defined as 1 to use an RMII interface, or 0\r
-to use an MII interface. */\r
-#define USE_RMII_INTERFACE 0\r
-\r
-/* The buffer addresses written into the descriptors must be aligned so the\r
-last few bits are zero. These bits have special meaning for the EMAC\r
-peripheral and cannot be used as part of the address. */\r
-#define emacADDRESS_MASK ( ( unsigned long ) 0xFFFFFFFC )\r
-\r
-/* Bit used within the address stored in the descriptor to mark the last\r
-descriptor in the array. */\r
-#define emacRX_WRAP_BIT ( ( unsigned long ) 0x02 )\r
-\r
-/* Bit used within the Tx descriptor status to indicate whether the\r
-descriptor is under the control of the EMAC or the software. */\r
-#define emacTX_BUF_USED ( ( unsigned long ) 0x80000000 )\r
-\r
-/* A short delay is used to wait for a buffer to become available, should\r
-one not be immediately available when trying to transmit a frame. */\r
-#define emacBUFFER_WAIT_DELAY ( 2 )\r
-#define emacMAX_WAIT_CYCLES ( configTICK_RATE_HZ / 40 )\r
-\r
-/* Misc defines. */\r
-#define emacINTERRUPT_LEVEL ( 5 )\r
-#define emacNO_DELAY ( 0 )\r
-#define emacTOTAL_FRAME_HEADER_SIZE ( 54 )\r
-#define emacPHY_INIT_DELAY ( 5000 / portTICK_PERIOD_MS )\r
-#define emacRESET_KEY ( ( unsigned long ) 0xA5000000 )\r
-#define emacRESET_LENGTH ( ( unsigned long ) ( 0x01 << 8 ) )\r
-\r
-/* The Atmel header file only defines the TX frame length mask. */\r
-#define emacRX_LENGTH_FRAME ( 0xfff )\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * Prototype for the EMAC interrupt asm wrapper.\r
- */\r
-extern void vEMACISREntry( void );\r
-\r
-/*\r
- * Prototype for the EMAC interrupt function - called by the asm wrapper.\r
- */\r
-__arm void vEMACISR( void );\r
-\r
-/*\r
- * Initialise both the Tx and Rx descriptors used by the EMAC.\r
- */\r
-static void prvSetupDescriptors(void);\r
-\r
-/*\r
- * Write our MAC address into the EMAC. The MAC address is set as one of the\r
- * uip options.\r
- */\r
-static void prvSetupMACAddress( void );\r
-\r
-/*\r
- * Configure the EMAC and AIC for EMAC interrupts.\r
- */\r
-static void prvSetupEMACInterrupt( void );\r
-\r
-/*\r
- * Some initialisation functions taken from the Atmel EMAC sample code.\r
- */\r
-static void vReadPHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long *pulValue );\r
-#if USE_RMII_INTERFACE != 1\r
- static void vWritePHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long ulValue);\r
-#endif\r
-static portBASE_TYPE xGetLinkSpeed( void );\r
-static portBASE_TYPE prvProbePHY( void );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Buffer written to by the EMAC DMA. Must be aligned as described by the\r
-comment above the emacADDRESS_MASK definition. */\r
-#pragma data_alignment=8\r
-static volatile char pcRxBuffer[ NB_RX_BUFFERS * ETH_RX_BUFFER_SIZE ];\r
-\r
-/* Buffer read by the EMAC DMA. Must be aligned as described by he comment\r
-above the emacADDRESS_MASK definition. */\r
-#pragma data_alignment=8\r
-static char pcTxBuffer[ NB_TX_BUFFERS * ETH_TX_BUFFER_SIZE ];\r
-\r
-/* Descriptors used to communicate between the program and the EMAC peripheral.\r
-These descriptors hold the locations and state of the Rx and Tx buffers. */\r
-static volatile AT91S_TxTdDescriptor xTxDescriptors[ NB_TX_BUFFERS ];\r
-static volatile AT91S_RxTdDescriptor xRxDescriptors[ NB_RX_BUFFERS ];\r
-\r
-/* The IP and Ethernet addresses are read from the uIP setup. */\r
-const char cMACAddress[ 6 ] = { UIP_ETHADDR0, UIP_ETHADDR1, UIP_ETHADDR2, UIP_ETHADDR3, UIP_ETHADDR4, UIP_ETHADDR5 };\r
-const unsigned char ucIPAddress[ 4 ] = { UIP_IPADDR0, UIP_IPADDR1, UIP_IPADDR2, UIP_IPADDR3 };\r
-\r
-/* The semaphore used by the EMAC ISR to wake the EMAC task. */\r
-static SemaphoreHandle_t xSemaphore = NULL;\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-SemaphoreHandle_t xEMACInit( void )\r
-{\r
- /* Code supplied by Atmel (modified) --------------------*/\r
-\r
- /* disable pull up on RXDV => PHY normal mode (not in test mode),\r
- PHY has internal pull down. */\r
- AT91C_BASE_PIOB->PIO_PPUDR = 1 << 15;\r
-\r
- #if USE_RMII_INTERFACE != 1\r
- /* PHY has internal pull down : set MII mode. */\r
- AT91C_BASE_PIOB->PIO_PPUDR= 1 << 16;\r
- #endif\r
-\r
- /* clear PB18 <=> PHY powerdown. */\r
- AT91F_PIO_CfgOutput( AT91C_BASE_PIOB, 1 << 18 ) ;\r
- AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, 1 << 18) ;\r
-\r
- /* After PHY power up, hardware reset. */\r
- AT91C_BASE_RSTC->RSTC_RMR = emacRESET_KEY | emacRESET_LENGTH;\r
- AT91C_BASE_RSTC->RSTC_RCR = emacRESET_KEY | AT91C_RSTC_EXTRST;\r
- \r
- /* Wait for hardware reset end. */\r
- while( !( AT91C_BASE_RSTC->RSTC_RSR & AT91C_RSTC_NRSTL ) )\r
- {\r
- __asm( "NOP" );\r
- }\r
- __asm( "NOP" );\r
- \r
- /* EMAC IO init for EMAC-PHY com. Remove EF100 config. */\r
- AT91F_EMAC_CfgPIO();\r
-\r
- /* Enable com between EMAC PHY.\r
-\r
- Enable management port. */\r
- AT91C_BASE_EMAC->EMAC_NCR |= AT91C_EMAC_MPE; \r
-\r
- /* MDC = MCK/32. */\r
- AT91C_BASE_EMAC->EMAC_NCFGR |= ( 2 ) << 10; \r
-\r
- /* Wait for PHY auto init end (rather crude delay!). */\r
- vTaskDelay( emacPHY_INIT_DELAY );\r
-\r
- /* PHY configuration. */\r
- #if USE_RMII_INTERFACE != 1\r
- {\r
- unsigned long ulControl;\r
-\r
- /* PHY has internal pull down : disable MII isolate. */\r
- vReadPHY( AT91C_PHY_ADDR, MII_BMCR, &ulControl );\r
- vReadPHY( AT91C_PHY_ADDR, MII_BMCR, &ulControl );\r
- ulControl &= ~BMCR_ISOLATE;\r
- vWritePHY( AT91C_PHY_ADDR, MII_BMCR, ulControl );\r
- }\r
- #endif\r
-\r
- /* Disable management port again. */\r
- AT91C_BASE_EMAC->EMAC_NCR &= ~AT91C_EMAC_MPE;\r
-\r
- #if USE_RMII_INTERFACE != 1\r
- /* Enable EMAC in MII mode, enable clock ERXCK and ETXCK. */\r
- AT91C_BASE_EMAC->EMAC_USRIO = AT91C_EMAC_CLKEN ;\r
- #else\r
- /* Enable EMAC in RMII mode, enable RMII clock (50MHz from oscillator\r
- on ERFCK). */\r
- AT91C_BASE_EMAC->EMAC_USRIO = AT91C_EMAC_RMII | AT91C_EMAC_CLKEN ;\r
- #endif\r
-\r
- /* End of code supplied by Atmel ------------------------*/\r
-\r
- /* Setup the buffers and descriptors. */\r
- prvSetupDescriptors();\r
- \r
- /* Load our MAC address into the EMAC. */\r
- prvSetupMACAddress();\r
-\r
- /* Try to connect. */\r
- if( prvProbePHY() )\r
- {\r
- /* Enable the interrupt! */\r
- prvSetupEMACInterrupt();\r
- }\r
-\r
- return xSemaphore;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-long lEMACSend( void )\r
-{\r
-static unsigned portBASE_TYPE uxTxBufferIndex = 0;\r
-portBASE_TYPE xWaitCycles = 0;\r
-long lReturn = pdPASS;\r
-char *pcBuffer;\r
-\r
- /* Is a buffer available? */\r
- while( !( xTxDescriptors[ uxTxBufferIndex ].U_Status.status & AT91C_TRANSMIT_OK ) )\r
- {\r
- /* There is no room to write the Tx data to the Tx buffer. Wait a\r
- short while, then try again. */\r
- xWaitCycles++;\r
- if( xWaitCycles > emacMAX_WAIT_CYCLES )\r
- {\r
- /* Give up. */\r
- lReturn = pdFAIL;\r
- break;\r
- }\r
- else\r
- {\r
- vTaskDelay( emacBUFFER_WAIT_DELAY );\r
- }\r
- }\r
-\r
- /* lReturn will only be pdPASS if a buffer is available. */\r
- if( lReturn == pdPASS )\r
- {\r
- /* Copy the headers into the Tx buffer. These will be in the uIP buffer. */\r
- pcBuffer = ( char * ) xTxDescriptors[ uxTxBufferIndex ].addr;\r
- memcpy( ( void * ) pcBuffer, ( void * ) uip_buf, emacTOTAL_FRAME_HEADER_SIZE );\r
- if( uip_len > emacTOTAL_FRAME_HEADER_SIZE )\r
- {\r
- memcpy( ( void * ) &( pcBuffer[ emacTOTAL_FRAME_HEADER_SIZE ] ), ( void * ) uip_appdata, ( uip_len - emacTOTAL_FRAME_HEADER_SIZE ) );\r
- }\r
-\r
- /* Send. */ \r
- portENTER_CRITICAL();\r
- {\r
- if( uxTxBufferIndex >= ( NB_TX_BUFFERS - 1 ) )\r
- {\r
- /* Fill out the necessary in the descriptor to get the data sent. */\r
- xTxDescriptors[ uxTxBufferIndex ].U_Status.status = ( uip_len & ( unsigned long ) AT91C_LENGTH_FRAME )\r
- | AT91C_LAST_BUFFER\r
- | AT91C_TRANSMIT_WRAP;\r
- uxTxBufferIndex = 0;\r
- }\r
- else\r
- {\r
- /* Fill out the necessary in the descriptor to get the data sent. */\r
- xTxDescriptors[ uxTxBufferIndex ].U_Status.status = ( uip_len & ( unsigned long ) AT91C_LENGTH_FRAME )\r
- | AT91C_LAST_BUFFER;\r
- uxTxBufferIndex++;\r
- }\r
- \r
- AT91C_BASE_EMAC->EMAC_NCR |= AT91C_EMAC_TSTART;\r
- }\r
- portEXIT_CRITICAL();\r
- }\r
-\r
- return lReturn;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-unsigned long ulEMACPoll( void )\r
-{\r
-static unsigned portBASE_TYPE ulNextRxBuffer = 0;\r
-unsigned long ulSectionLength = 0, ulLengthSoFar = 0, ulEOF = pdFALSE;\r
-char *pcSource;\r
-\r
- /* Skip any fragments. */\r
- while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !( xRxDescriptors[ ulNextRxBuffer ].U_Status.status & AT91C_SOF ) )\r
- {\r
- /* Mark the buffer as free again. */\r
- xRxDescriptors[ ulNextRxBuffer ].addr &= ~( AT91C_OWNERSHIP_BIT ); \r
- ulNextRxBuffer++;\r
- if( ulNextRxBuffer >= NB_RX_BUFFERS )\r
- {\r
- ulNextRxBuffer = 0;\r
- }\r
- }\r
-\r
- /* Is there a packet ready? */\r
-\r
- while( ( xRxDescriptors[ ulNextRxBuffer ].addr & AT91C_OWNERSHIP_BIT ) && !ulSectionLength )\r
- {\r
- pcSource = ( char * )( xRxDescriptors[ ulNextRxBuffer ].addr & emacADDRESS_MASK );\r
- ulSectionLength = xRxDescriptors[ ulNextRxBuffer ].U_Status.status & emacRX_LENGTH_FRAME;\r
-\r
- if( ulSectionLength == 0 )\r
- {\r
- /* The frame is longer than the buffer pointed to by this\r
- descriptor so copy the entire buffer to uIP - then move onto\r
- the next descriptor to get the rest of the frame. */\r
- if( ( ulLengthSoFar + ETH_RX_BUFFER_SIZE ) <= UIP_BUFSIZE )\r
- {\r
- memcpy( &( uip_buf[ ulLengthSoFar ] ), pcSource, ETH_RX_BUFFER_SIZE );\r
- ulLengthSoFar += ETH_RX_BUFFER_SIZE;\r
- } \r
- }\r
- else\r
- {\r
- /* This is the last section of the frame. Copy the section to\r
- uIP. */\r
- if( ulSectionLength < UIP_BUFSIZE )\r
- {\r
- /* The section length holds the length of the entire frame.\r
- ulLengthSoFar holds the length of the frame sections already\r
- copied to uIP, so the length of the final section is\r
- ulSectionLength - ulLengthSoFar; */\r
- if( ulSectionLength > ulLengthSoFar )\r
- {\r
- memcpy( &( uip_buf[ ulLengthSoFar ] ), pcSource, ( ulSectionLength - ulLengthSoFar ) );\r
- }\r
- } \r
-\r
- /* Is this the last buffer for the frame? If not why? */\r
- ulEOF = xRxDescriptors[ ulNextRxBuffer ].U_Status.status & AT91C_EOF;\r
- }\r
-\r
- /* Mark the buffer as free again. */\r
- xRxDescriptors[ ulNextRxBuffer ].addr &= ~( AT91C_OWNERSHIP_BIT );\r
-\r
- /* Increment to the next buffer, wrapping if necessary. */\r
- ulNextRxBuffer++;\r
- if( ulNextRxBuffer >= NB_RX_BUFFERS )\r
- {\r
- ulNextRxBuffer = 0;\r
- }\r
- }\r
-\r
- /* If we obtained data but for some reason did not find the end of the\r
- frame then discard the data as it must contain an error. */\r
- if( !ulEOF )\r
- {\r
- ulSectionLength = 0;\r
- }\r
-\r
- return ulSectionLength;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupDescriptors(void)\r
-{\r
-unsigned portBASE_TYPE xIndex;\r
-unsigned long ulAddress;\r
-\r
- /* Initialise xRxDescriptors descriptor. */\r
- for( xIndex = 0; xIndex < NB_RX_BUFFERS; ++xIndex )\r
- {\r
- /* Calculate the address of the nth buffer within the array. */\r
- ulAddress = ( unsigned long )( pcRxBuffer + ( xIndex * ETH_RX_BUFFER_SIZE ) );\r
-\r
- /* Write the buffer address into the descriptor. The DMA will place\r
- the data at this address when this descriptor is being used. Mask off\r
- the bottom bits of the address as these have special meaning. */\r
- xRxDescriptors[ xIndex ].addr = ulAddress & emacADDRESS_MASK;\r
- } \r
-\r
- /* The last buffer has the wrap bit set so the EMAC knows to wrap back\r
- to the first buffer. */\r
- xRxDescriptors[ NB_RX_BUFFERS - 1 ].addr |= emacRX_WRAP_BIT;\r
-\r
- /* Initialise xTxDescriptors. */\r
- for( xIndex = 0; xIndex < NB_TX_BUFFERS; ++xIndex )\r
- {\r
- /* Calculate the address of the nth buffer within the array. */\r
- ulAddress = ( unsigned long )( pcTxBuffer + ( xIndex * ETH_TX_BUFFER_SIZE ) );\r
-\r
- /* Write the buffer address into the descriptor. The DMA will read\r
- data from here when the descriptor is being used. */\r
- xTxDescriptors[ xIndex ].addr = ulAddress & emacADDRESS_MASK;\r
- xTxDescriptors[ xIndex ].U_Status.status = AT91C_TRANSMIT_OK;\r
- } \r
-\r
- /* The last buffer has the wrap bit set so the EMAC knows to wrap back\r
- to the first buffer. */\r
- xTxDescriptors[ NB_TX_BUFFERS - 1 ].U_Status.status = AT91C_TRANSMIT_WRAP | AT91C_TRANSMIT_OK;\r
-\r
- /* Tell the EMAC where to find the descriptors. */\r
- AT91C_BASE_EMAC->EMAC_RBQP = ( unsigned long ) xRxDescriptors;\r
- AT91C_BASE_EMAC->EMAC_TBQP = ( unsigned long ) xTxDescriptors;\r
- \r
- /* Clear all the bits in the receive status register. */\r
- AT91C_BASE_EMAC->EMAC_RSR = ( AT91C_EMAC_OVR | AT91C_EMAC_REC | AT91C_EMAC_BNA );\r
-\r
- /* Enable the copy of data into the buffers, ignore broadcasts,\r
- and don't copy FCS. */\r
- AT91C_BASE_EMAC->EMAC_NCFGR |= ( AT91C_EMAC_CAF | AT91C_EMAC_NBC | AT91C_EMAC_DRFCS);\r
-\r
- /* Enable Rx and Tx, plus the stats register. */\r
- AT91C_BASE_EMAC->EMAC_NCR |= ( AT91C_EMAC_TE | AT91C_EMAC_RE | AT91C_EMAC_WESTAT );\r
-} \r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupMACAddress( void )\r
-{\r
- /* Must be written SA1L then SA1H. */\r
- AT91C_BASE_EMAC->EMAC_SA1L = ( ( unsigned long ) cMACAddress[ 3 ] << 24 ) |\r
- ( ( unsigned long ) cMACAddress[ 2 ] << 16 ) |\r
- ( ( unsigned long ) cMACAddress[ 1 ] << 8 ) |\r
- cMACAddress[ 0 ];\r
-\r
- AT91C_BASE_EMAC->EMAC_SA1H = ( ( unsigned long ) cMACAddress[ 5 ] << 8 ) |\r
- cMACAddress[ 4 ];\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupEMACInterrupt( void )\r
-{\r
- /* Create the semaphore used to trigger the EMAC task. */\r
- vSemaphoreCreateBinary( xSemaphore );\r
- if( xSemaphore )\r
- {\r
- /* We start by 'taking' the semaphore so the ISR can 'give' it when the\r
- first interrupt occurs. */\r
- xSemaphoreTake( xSemaphore, emacNO_DELAY );\r
- portENTER_CRITICAL();\r
- {\r
- /* We want to interrupt on Rx events. */\r
- AT91C_BASE_EMAC->EMAC_IER = AT91C_EMAC_RCOMP;\r
-\r
- /* Enable the interrupts in the AIC. */\r
- AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, AT91C_ID_EMAC, emacINTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, ( void (*)( void ) ) vEMACISREntry );\r
- AT91F_AIC_EnableIt( AT91C_BASE_AIC, AT91C_ID_EMAC );\r
- }\r
- portEXIT_CRITICAL();\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-__arm void vEMACISR( void )\r
-{\r
-volatile unsigned long ulIntStatus, ulRxStatus;\r
-portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE;\r
-\r
- ulIntStatus = AT91C_BASE_EMAC->EMAC_ISR;\r
- ulRxStatus = AT91C_BASE_EMAC->EMAC_RSR;\r
-\r
- if( ( ulIntStatus & AT91C_EMAC_RCOMP ) || ( ulRxStatus & AT91C_EMAC_REC ) )\r
- {\r
- /* A frame has been received, signal the uIP task so it can process\r
- the Rx descriptors. */\r
- xSemaphoreGiveFromISR( xSemaphore, &xHigherPriorityTaskWoken );\r
- AT91C_BASE_EMAC->EMAC_RSR = AT91C_EMAC_REC;\r
- }\r
-\r
- /* If a task was woken by either a character being received or a character\r
- being transmitted then we may need to switch to another task. */\r
- portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );\r
-\r
- /* Clear the interrupt. */\r
- AT91C_BASE_AIC->AIC_EOICR = 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-\r
-\r
-/*\r
- * The following functions are initialisation functions taken from the Atmel\r
- * EMAC sample code.\r
- */\r
-\r
-static portBASE_TYPE prvProbePHY( void )\r
-{\r
-unsigned long ulPHYId1, ulPHYId2, ulStatus;\r
-portBASE_TYPE xReturn = pdPASS;\r
- \r
- /* Code supplied by Atmel (reformatted) -----------------*/\r
-\r
- /* Enable management port */\r
- AT91C_BASE_EMAC->EMAC_NCR |= AT91C_EMAC_MPE; \r
- AT91C_BASE_EMAC->EMAC_NCFGR |= ( 2 ) << 10;\r
-\r
- /* Read the PHY ID. */\r
- vReadPHY( AT91C_PHY_ADDR, MII_PHYSID1, &ulPHYId1 );\r
- vReadPHY( AT91C_PHY_ADDR, MII_PHYSID2, &ulPHYId2 );\r
-\r
- /* AMD AM79C875:\r
- PHY_ID1 = 0x0022\r
- PHY_ID2 = 0x5541\r
- Bits 3:0 Revision Number Four bit manufacturer\92s revision number.\r
- 0001 stands for Rev. A, etc.\r
- */\r
- if( ( ( ulPHYId1 << 16 ) | ( ulPHYId2 & 0xfff0 ) ) != MII_DM9161_ID )\r
- {\r
- /* Did not expect this ID. */\r
- xReturn = pdFAIL;\r
- }\r
- else\r
- {\r
- ulStatus = xGetLinkSpeed();\r
-\r
- if( ulStatus != pdPASS )\r
- {\r
- xReturn = pdFAIL;\r
- }\r
- }\r
-\r
- /* Disable management port */\r
- AT91C_BASE_EMAC->EMAC_NCR &= ~AT91C_EMAC_MPE; \r
-\r
- /* End of code supplied by Atmel ------------------------*/\r
-\r
- return xReturn;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vReadPHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long *pulValue )\r
-{\r
- /* Code supplied by Atmel (reformatted) ----------------------*/\r
-\r
- AT91C_BASE_EMAC->EMAC_MAN = (AT91C_EMAC_SOF & (0x01<<30))\r
- | (2 << 16) | (2 << 28)\r
- | ((ucPHYAddress & 0x1f) << 23)\r
- | (ucAddress << 18);\r
-\r
- /* Wait until IDLE bit in Network Status register is cleared. */\r
- while( !( AT91C_BASE_EMAC->EMAC_NSR & AT91C_EMAC_IDLE ) )\r
- {\r
- __asm( "NOP" );\r
- }\r
-\r
- *pulValue = ( AT91C_BASE_EMAC->EMAC_MAN & 0x0000ffff ); \r
-\r
- /* End of code supplied by Atmel ------------------------*/\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-#if USE_RMII_INTERFACE != 1\r
-static void vWritePHY( unsigned char ucPHYAddress, unsigned char ucAddress, unsigned long ulValue )\r
-{\r
- /* Code supplied by Atmel (reformatted) ----------------------*/\r
-\r
- AT91C_BASE_EMAC->EMAC_MAN = (( AT91C_EMAC_SOF & (0x01<<30))\r
- | (2 << 16) | (1 << 28)\r
- | ((ucPHYAddress & 0x1f) << 23)\r
- | (ucAddress << 18))\r
- | (ulValue & 0xffff);\r
-\r
- /* Wait until IDLE bit in Network Status register is cleared */\r
- while( !( AT91C_BASE_EMAC->EMAC_NSR & AT91C_EMAC_IDLE ) )\r
- {\r
- __asm( "NOP" );\r
- };\r
-\r
- /* End of code supplied by Atmel ------------------------*/\r
-}\r
-#endif\r
-/*-----------------------------------------------------------*/\r
-\r
-static portBASE_TYPE xGetLinkSpeed( void )\r
-{\r
- unsigned long ulBMSR, ulBMCR, ulLPA, ulMACCfg, ulSpeed, ulDuplex;\r
-\r
- /* Code supplied by Atmel (reformatted) -----------------*/\r
-\r
- /* Link status is latched, so read twice to get current value */\r
- vReadPHY(AT91C_PHY_ADDR, MII_BMSR, &ulBMSR);\r
- vReadPHY(AT91C_PHY_ADDR, MII_BMSR, &ulBMSR);\r
-\r
- if( !( ulBMSR & BMSR_LSTATUS ) )\r
- { \r
- /* No Link. */\r
- return pdFAIL;\r
- }\r
-\r
- vReadPHY(AT91C_PHY_ADDR, MII_BMCR, &ulBMCR);\r
- if (ulBMCR & BMCR_ANENABLE)\r
- { \r
- /* AutoNegotiation is enabled. */\r
- if (!(ulBMSR & BMSR_ANEGCOMPLETE))\r
- {\r
- /* Auto-negotiation in progress. */\r
- return pdFAIL; \r
- } \r
-\r
- vReadPHY(AT91C_PHY_ADDR, MII_LPA, &ulLPA);\r
- if( ( ulLPA & LPA_100FULL ) || ( ulLPA & LPA_100HALF ) )\r
- {\r
- ulSpeed = SPEED_100;\r
- }\r
- else\r
- {\r
- ulSpeed = SPEED_10;\r
- }\r
-\r
- if( ( ulLPA & LPA_100FULL ) || ( ulLPA & LPA_10FULL ) )\r
- {\r
- ulDuplex = DUPLEX_FULL;\r
- }\r
- else\r
- {\r
- ulDuplex = DUPLEX_HALF;\r
- }\r
- }\r
- else\r
- {\r
- ulSpeed = ( ulBMCR & BMCR_SPEED100 ) ? SPEED_100 : SPEED_10;\r
- ulDuplex = ( ulBMCR & BMCR_FULLDPLX ) ? DUPLEX_FULL : DUPLEX_HALF;\r
- }\r
-\r
- /* Update the MAC */\r
- ulMACCfg = AT91C_BASE_EMAC->EMAC_NCFGR & ~( AT91C_EMAC_SPD | AT91C_EMAC_FD );\r
- if( ulSpeed == SPEED_100 )\r
- {\r
- if( ulDuplex == DUPLEX_FULL )\r
- {\r
- /* 100 Full Duplex */\r
- AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg | AT91C_EMAC_SPD | AT91C_EMAC_FD;\r
- }\r
- else\r
- { \r
- /* 100 Half Duplex */\r
- AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg | AT91C_EMAC_SPD;\r
- }\r
- }\r
- else\r
- {\r
- if (ulDuplex == DUPLEX_FULL)\r
- {\r
- /* 10 Full Duplex */\r
- AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg | AT91C_EMAC_FD;\r
- }\r
- else\r
- {\r
- /* 10 Half Duplex */\r
- AT91C_BASE_EMAC->EMAC_NCFGR = ulMACCfg;\r
- }\r
- }\r
-\r
- /* End of code supplied by Atmel ------------------------*/\r
-\r
- return pdPASS;\r
-}\r
+++ /dev/null
-#ifndef SAM_7_EMAC_H\r
-#define SAM_7_EMAC_H\r
-\r
-\r
-/*\r
- * Initialise the EMAC driver. If successful a semaphore is returned that\r
- * is used by the EMAC ISR to indicate that Rx packets have been received.\r
- * If the initialisation fails then NULL is returned.\r
- */\r
-SemaphoreHandle_t xEMACInit( void );\r
-\r
-/*\r
- * Send the current uIP buffer. This copies the uIP buffer to one of the\r
- * EMAC Tx buffers, then indicates to the EMAC that the buffer is ready.\r
- */\r
-long lEMACSend( void );\r
-\r
-/*\r
- * Called in response to an EMAC Rx interrupt. Copies the received frame\r
- * into the uIP buffer.\r
- */\r
-unsigned long ulEMACPoll( void );\r
-\r
-#endif\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#ifndef FREERTOS_CONFIG_H\r
-#define FREERTOS_CONFIG_H\r
-\r
-#include <intrinsics.h>\r
-#include "Board.h"\r
-\r
-/*-----------------------------------------------------------\r
- * Application specific definitions.\r
- *\r
- * These definitions should be adjusted for your particular hardware and\r
- * application requirements.\r
- *\r
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE.\r
- *\r
- * See http://www.freertos.org/a00110.html.\r
- *----------------------------------------------------------*/\r
-\r
-#define configUSE_PREEMPTION 1\r
-#define configUSE_IDLE_HOOK 0\r
-#define configUSE_TICK_HOOK 0\r
-#define configCPU_CLOCK_HZ ( ( unsigned long ) 47923200 )\r
-#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )\r
-#define configMAX_PRIORITIES ( 5 )\r
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 100 )\r
-#define configTOTAL_HEAP_SIZE ( ( size_t ) 22000 )\r
-#define configMAX_TASK_NAME_LEN ( 16 )\r
-#define configUSE_TRACE_FACILITY 1\r
-#define configUSE_16_BIT_TICKS 0\r
-#define configIDLE_SHOULD_YIELD 0\r
-#define configQUEUE_REGISTRY_SIZE 10\r
-\r
-/* Co-routine definitions. */\r
-#define configUSE_CO_ROUTINES 0\r
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
-\r
-/* Set the following definitions to 1 to include the API function, or zero\r
-to exclude the API function. */\r
-\r
-#define INCLUDE_vTaskPrioritySet 1\r
-#define INCLUDE_uxTaskPriorityGet 1\r
-#define INCLUDE_vTaskDelete 1\r
-#define INCLUDE_vTaskCleanUpResources 0\r
-#define INCLUDE_vTaskSuspend 1\r
-#define INCLUDE_vTaskDelayUntil 1\r
-#define INCLUDE_vTaskDelay 1\r
-\r
-/* This demo makes use of one or more example stats formatting functions. These\r
-format the raw data provided by the uxTaskGetSystemState() function in to human\r
-readable ASCII form. See the notes in the implementation of vTaskList() within \r
-FreeRTOS/Source/tasks.c for limitations. */\r
-#define configUSE_STATS_FORMATTING_FUNCTIONS 1\r
-\r
-#endif /* FREERTOS_CONFIG_H */\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#include "FreeRTOS.h"\r
-#include "partest.h"\r
-#include "board.h"\r
-\r
-/*-----------------------------------------------------------\r
- * Simple parallel port IO routines for the LED's. LED's can be set, cleared\r
- * or toggled.\r
- *-----------------------------------------------------------*/\r
-const unsigned long ulLED_MASK[ NB_LED ]= { LED1, LED2, LED3, LED4 };\r
-\r
-void vParTestInitialise( void )\r
-{ \r
- /* Start with all LED's off. */\r
- AT91F_PIO_SetOutput( AT91C_BASE_PIOB, LED_MASK ); \r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue )\r
-{\r
- if( uxLED < ( portBASE_TYPE ) NB_LED )\r
- {\r
- if( xValue )\r
- {\r
- AT91F_PIO_SetOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ] );\r
- }\r
- else\r
- {\r
- AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ]);\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void vParTestToggleLED( unsigned portBASE_TYPE uxLED )\r
-{\r
- if( uxLED < ( portBASE_TYPE ) NB_LED )\r
- {\r
- if( AT91F_PIO_GetInput( AT91C_BASE_PIOB ) & ulLED_MASK[ uxLED ] )\r
- {\r
- AT91F_PIO_ClearOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ]);\r
- }\r
- else\r
- {\r
- AT91F_PIO_SetOutput( AT91C_BASE_PIOB, ulLED_MASK[ uxLED ] ); \r
- }\r
- }\r
-}\r
-\r
-\r
--- /dev/null
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3\r
+from http://sourceforge.net/projects/freertos/files/FreeRTOS/\r
+\r
+FreeRTOS now uses its own TCP/IP stack: http://www.FreeRTOS.org/TCP\r
+\r
+++ /dev/null
-/*----------------------------------------------------------------------------\r
-* ATMEL Microcontroller Software Support - ROUSSET -\r
-*----------------------------------------------------------------------------\r
-* The software is delivered "AS IS" without warranty or condition of any\r
-* kind, either express, implied or statutory. This includes without\r
-* limitation any warranty or condition with respect to merchantability or\r
-* fitness for any particular purpose, or against the infringements of\r
-* intellectual property rights of others.\r
-*----------------------------------------------------------------------------\r
-* File Name : Board.h\r
-* Object : AT91SAM7X Evaluation Board Features Definition File.\r
-*\r
-* Creation : JG 20/Jun/2005\r
-*----------------------------------------------------------------------------\r
-*/\r
-#ifndef Board_h\r
-#define Board_h\r
-\r
-#include <AT91SAM7X256.h>\r
-#define __inline static inline\r
-#include <lib_AT91SAM7X256.h>\r
-\r
-#define true -1\r
-#define false 0\r
-\r
-/*-------------------------------*/\r
-/* SAM7Board Memories Definition */\r
-/*-------------------------------*/\r
-// The AT91SAM7X128 embeds a 32-Kbyte SRAM bank, and 128K-Byte Flash\r
-\r
-#define FLASH_PAGE_NB 256\r
-#define FLASH_PAGE_SIZE 128\r
-\r
-/*-----------------*/\r
-/* Leds Definition */\r
-/*-----------------*/\r
-#define LED1 (1<<19) // PB19\r
-#define LED2 (1<<20) // PB20\r
-#define LED3 (1<<21) // PB21\r
-#define LED4 (1<<22) // PB22\r
-#define NB_LED 4\r
-\r
-#define LED_MASK (LED1|LED2|LED3|LED4)\r
-\r
-/*-------------------------*/\r
-/* Push Buttons Definition */\r
-/*-------------------------*/\r
-\r
-#define SW1_MASK (1<<21) // PA21\r
-#define SW2_MASK (1<<22) // PA22\r
-#define SW3_MASK (1<<23) // PA23\r
-#define SW4_MASK (1<<24) // PA24\r
-#define SW_MASK (SW1_MASK|SW2_MASK|SW3_MASK|SW4_MASK)\r
-\r
-\r
-#define SW1 (1<<21) // PA21\r
-#define SW2 (1<<22) // PA22\r
-#define SW3 (1<<23) // PA23\r
-#define SW4 (1<<24) // PA24\r
-\r
-/*--------------*/\r
-/* Master Clock */\r
-/*--------------*/\r
-\r
-#define EXT_OC 18432000 // Exetrnal ocilator MAINCK\r
-#define MCK 47923200 // MCK (PLLRC div by 2)\r
-#define MCKKHz (MCK/1000) //\r
-\r
-#endif /* Board_h */\r
+++ /dev/null
-;* ----------------------------------------------------------------------------\r
-;* ATMEL Microcontroller Software Support - ROUSSET -\r
-;* ----------------------------------------------------------------------------\r
-;* Copyright (c) 2006, Atmel Corporation\r
-;\r
-;* All rights reserved.\r
-;*\r
-;* Redistribution and use in source and binary forms, with or without\r
-;* modification, are permitted provided that the following conditions are met:\r
-;*\r
-;* - Redistributions of source code must retain the above copyright notice,\r
-;* this list of conditions and the disclaimer below.\r
-;*\r
-;* - Redistributions in binary form must reproduce the above copyright notice,\r
-;* this list of conditions and the disclaimer below in the documentation and/or\r
-;* other materials provided with the distribution.\r
-;*\r
-;* Atmel's name may not be used to endorse or promote products derived from\r
-;* this software without specific prior written permission.\r
-;*\r
-;* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR\r
-;* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
-;* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
-;* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,\r
-;* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
-;* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\r
-;* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
-;* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-;* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
-;* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-;* ----------------------------------------------------------------------------\r
-\r
-;------------------------------------------------------------------------------\r
-; Include your AT91 Library files\r
-;------------------------------------------------------------------------------\r
-#include "AT91SAM7X256_inc.h"\r
-;------------------------------------------------------------------------------\r
-\r
-#define TOP_OF_MEMORY (AT91C_ISRAM + AT91C_ISRAM_SIZE)\r
-#define IRQ_STACK_SIZE 200\r
- ; 3 words to be saved per interrupt priority level\r
-\r
-; Mode, correspords to bits 0-5 in CPSR\r
-MODE_BITS DEFINE 0x1F ; Bit mask for mode bits in CPSR\r
-USR_MODE DEFINE 0x10 ; User mode\r
-FIQ_MODE DEFINE 0x11 ; Fast Interrupt Request mode\r
-IRQ_MODE DEFINE 0x12 ; Interrupt Request mode\r
-SVC_MODE DEFINE 0x13 ; Supervisor mode\r
-ABT_MODE DEFINE 0x17 ; Abort mode\r
-UND_MODE DEFINE 0x1B ; Undefined Instruction mode\r
-SYS_MODE DEFINE 0x1F ; System mode\r
-\r
-I_BIT DEFINE 0x80\r
-F_BIT DEFINE 0x40\r
-\r
-;------------------------------------------------------------------------------\r
-; ?RESET\r
-; Reset Vector.\r
-; Normally, segment INTVEC is linked at address 0.\r
-; For debugging purposes, INTVEC may be placed at other addresses.\r
-; A debugger that honors the entry point will start the\r
-; program in a normal way even if INTVEC is not at address 0.\r
-;------------------------------------------------------------------------------\r
- SECTION .intvec:CODE:NOROOT(2)\r
- PUBLIC __vector\r
- PUBLIC __iar_program_start\r
- EXTERN vPortYieldProcessor\r
-\r
- ARM\r
-__vector:\r
- ldr pc,[pc,#+24] ;; Reset\r
-__und_handler:\r
- ldr pc,[pc,#+24] ;; Undefined instructions\r
-__swi_handler:\r
- ldr pc,[pc,#+24] ;; Software interrupt (SWI/SVC)\r
-__prefetch_handler:\r
- ldr pc,[pc,#+24] ;; Prefetch abort\r
-__data_handler:\r
- ldr pc,[pc,#+24] ;; Data abort\r
- DC32 0xFFFFFFFF ;; RESERVED\r
-__irq_handler:\r
- LDR PC, [PC, #-0xF20]\r
-__fiq_handler:\r
- ldr pc,[pc,#+24] ;; FIQ\r
-\r
- DC32 __iar_program_start\r
- DC32 __und_handler\r
- DC32 vPortYieldProcessor\r
- DC32 __prefetch_handler\r
- DC32 __data_handler\r
- B .\r
- DC32 IRQ_Handler_Entry\r
- DC32 FIQ_Handler_Entry\r
-\r
-;------------------------------------------------------------------------------\r
-;- Manage exception: The exception must be ensure in ARM mode\r
-;------------------------------------------------------------------------------\r
- SECTION text:CODE:NOROOT(2)\r
- ARM\r
-;------------------------------------------------------------------------------\r
-;- Function : FIQ_Handler_Entry\r
-;- Treatments : FIQ Controller Interrupt Handler.\r
-;- R8 is initialize in Cstartup\r
-;- Called Functions : None only by FIQ\r
-;------------------------------------------------------------------------------\r
-FIQ_Handler_Entry:\r
-\r
-;- Switch in SVC/User Mode to allow User Stack access for C code\r
-; because the FIQ is not yet acknowledged\r
-\r
-;- Save and r0 in FIQ_Register\r
- mov r9,r0\r
- ldr r0 , [r8, #AIC_FVR]\r
- msr CPSR_c,#I_BIT | F_BIT | SVC_MODE\r
-;- Save scratch/used registers and LR in User Stack\r
- stmfd sp!, { r1-r3, r12, lr}\r
-\r
-;- Branch to the routine pointed by the AIC_FVR\r
- mov r14, pc\r
- bx r0\r
-\r
-;- Restore scratch/used registers and LR from User Stack\r
- ldmia sp!, { r1-r3, r12, lr}\r
-\r
-;- Leave Interrupts disabled and switch back in FIQ mode\r
- msr CPSR_c, #I_BIT | F_BIT | FIQ_MODE\r
-\r
-;- Restore the R0 ARM_MODE_SVC register\r
- mov r0,r9\r
-\r
-;- Restore the Program Counter using the LR_fiq directly in the PC\r
- subs pc,lr,#4\r
-;------------------------------------------------------------------------------\r
-;- Function : IRQ_Handler_Entry\r
-;- Treatments : IRQ Controller Interrupt Handler.\r
-;- Called Functions : AIC_IVR[interrupt]\r
-;------------------------------------------------------------------------------\r
-IRQ_Handler_Entry:\r
-;-------------------------\r
-;- Manage Exception Entry\r
-;-------------------------\r
-;- Adjust and save LR_irq in IRQ stack\r
- sub lr, lr, #4\r
- stmfd sp!, {lr}\r
-\r
-;- Save r0 and SPSR (need to be saved for nested interrupt)\r
- mrs r14, SPSR\r
- stmfd sp!, {r0,r14}\r
-\r
-;- Write in the IVR to support Protect Mode\r
-;- No effect in Normal Mode\r
-;- De-assert the NIRQ and clear the source in Protect Mode\r
- ldr r14, =AT91C_BASE_AIC\r
- ldr r0 , [r14, #AIC_IVR]\r
- str r14, [r14, #AIC_IVR]\r
-\r
-;- Enable Interrupt and Switch in Supervisor Mode\r
- msr CPSR_c, #SVC_MODE\r
-\r
-;- Save scratch/used registers and LR in User Stack\r
- stmfd sp!, { r1-r3, r12, r14}\r
-\r
-;----------------------------------------------\r
-;- Branch to the routine pointed by the AIC_IVR\r
-;----------------------------------------------\r
- mov r14, pc\r
- bx r0\r
-\r
-;----------------------------------------------\r
-;- Manage Exception Exit\r
-;----------------------------------------------\r
-;- Restore scratch/used registers and LR from User Stack\r
- ldmia sp!, { r1-r3, r12, r14}\r
-\r
-;- Disable Interrupt and switch back in IRQ mode\r
- msr CPSR_c, #I_BIT | IRQ_MODE\r
-\r
-;- Mark the End of Interrupt on the AIC\r
- ldr r14, =AT91C_BASE_AIC\r
- str r14, [r14, #AIC_EOICR]\r
-\r
-;- Restore SPSR_irq and r0 from IRQ stack\r
- ldmia sp!, {r0,r14}\r
- msr SPSR_cxsf, r14\r
-\r
-;- Restore adjusted LR_irq from IRQ stack directly in the PC\r
- ldmia sp!, {pc}^\r
-\r
-;------------------------------------------------------------------------------\r
-;- Exception Vectors\r
-;------------------------------------------------------------------------------\r
- PUBLIC AT91F_Default_FIQ_handler\r
- PUBLIC AT91F_Default_IRQ_handler\r
- PUBLIC AT91F_Spurious_handler\r
-\r
- ARM ; Always ARM mode after exeption\r
-\r
-AT91F_Default_FIQ_handler\r
- b AT91F_Default_FIQ_handler\r
-\r
-AT91F_Default_IRQ_handler\r
- b AT91F_Default_IRQ_handler\r
-\r
-AT91F_Spurious_handler\r
- b AT91F_Spurious_handler\r
-\r
-\r
-;------------------------------------------------------------------------------\r
-; ?INIT\r
-; Program entry.\r
-;------------------------------------------------------------------------------\r
-\r
- SECTION FIQ_STACK:DATA:NOROOT(3)\r
- SECTION IRQ_STACK:DATA:NOROOT(3)\r
- SECTION SVC_STACK:DATA:NOROOT(3)\r
- SECTION ABT_STACK:DATA:NOROOT(3)\r
- SECTION UND_STACK:DATA:NOROOT(3)\r
- SECTION CSTACK:DATA:NOROOT(3)\r
- SECTION text:CODE:NOROOT(2)\r
- REQUIRE __vector\r
- EXTERN ?main\r
- PUBLIC __iar_program_start\r
- EXTERN AT91F_LowLevelInit\r
-\r
-\r
-__iar_program_start:\r
-\r
-;------------------------------------------------------------------------------\r
-;- Low level Init is performed in a C function: AT91F_LowLevelInit\r
-;- Init Stack Pointer to a valid memory area before calling AT91F_LowLevelInit\r
-;------------------------------------------------------------------------------\r
-\r
-;- Retrieve end of RAM address\r
-\r
- ldr r13,=TOP_OF_MEMORY ;- Temporary stack in internal RAM for Low Level Init execution\r
- ldr r0,=AT91F_LowLevelInit\r
- mov lr, pc\r
- bx r0 ;- Branch on C function (with interworking)\r
-\r
-; Initialize the stack pointers.\r
-; The pattern below can be used for any of the exception stacks:\r
-; FIQ, IRQ, SVC, ABT, UND, SYS.\r
-; The USR mode uses the same stack as SYS.\r
-; The stack segments must be defined in the linker command file,\r
-; and be declared above.\r
-\r
- mrs r0,cpsr ; Original PSR value\r
- bic r0,r0,#MODE_BITS ; Clear the mode bits\r
- orr r0,r0,#SVC_MODE ; Set SVC mode bits\r
- msr cpsr_c,r0 ; Change the mode\r
- ldr sp,=SFE(SVC_STACK) ; End of SVC_STACK\r
-\r
- bic r0,r0,#MODE_BITS ; Clear the mode bits\r
- orr r0,r0,#UND_MODE ; Set UND mode bits\r
- msr cpsr_c,r0 ; Change the mode\r
- ldr sp,=SFE(UND_STACK) ; End of UND_STACK\r
-\r
- bic r0,r0,#MODE_BITS ; Clear the mode bits\r
- orr r0,r0,#ABT_MODE ; Set ABT mode bits\r
- msr cpsr_c,r0 ; Change the mode\r
- ldr sp,=SFE(ABT_STACK) ; End of ABT_STACK\r
-\r
- bic r0,r0,#MODE_BITS ; Clear the mode bits\r
- orr r0,r0,#FIQ_MODE ; Set FIQ mode bits\r
- msr cpsr_c,r0 ; Change the mode\r
- ldr sp,=SFE(FIQ_STACK) ; End of FIQ_STACK\r
- ;- Init the FIQ register\r
- ldr r8, =AT91C_BASE_AIC\r
-\r
- bic r0,r0,#MODE_BITS ; Clear the mode bits\r
- orr r0,r0,#IRQ_MODE ; Set IRQ mode bits\r
- msr cpsr_c,r0 ; Change the mode\r
- ldr sp,=SFE(IRQ_STACK) ; End of IRQ_STACK\r
-\r
- bic r0,r0,#MODE_BITS ; Clear the mode bits\r
- orr r0,r0,#SYS_MODE ; Set System mode bits\r
- msr cpsr_c,r0 ; Change the mode\r
- ldr sp,=SFE(CSTACK) ; End of CSTACK\r
-\r
-\r
-#ifdef __ARMVFP__\r
-; Enable the VFP coprocessor.\r
- mov r0, #0x40000000 ; Set EN bit in VFP\r
- fmxr fpexc, r0 ; FPEXC, clear others.\r
-\r
-; Disable underflow exceptions by setting flush to zero mode.\r
-; For full IEEE 754 underflow compliance this code should be removed\r
-; and the appropriate exception handler installed.\r
- mov r0, #0x01000000 ; Set FZ bit in VFP\r
- fmxr fpscr, r0 ; FPSCR, clear others.\r
-#endif\r
-\r
-; Add more initialization here\r
- msr CPSR_c,#I_BIT | F_BIT | SVC_MODE\r
-\r
-\r
-; Continue to ?main for more IAR specific system startup\r
-\r
- ldr r0,=?main\r
- bx r0\r
-\r
- END ;- Terminates the assembly of the last module in a file\r
+++ /dev/null
-//-----------------------------------------------------------------------------\r
-// ATMEL Microcontroller Software Support - ROUSSET -\r
-//-----------------------------------------------------------------------------\r
-// DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR\r
-// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
-// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,\r
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\r
-// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
-// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-//-----------------------------------------------------------------------------\r
-// File Name : Cstartup_SAM7.c\r
-// Object : Low level initialisations written in C for Tools\r
-// For AT91SAM7X256 with 2 flash plane\r
-// Creation : JPP 14-Sep-2006\r
-//-----------------------------------------------------------------------------\r
-\r
-\r
-#include "Board.h"\r
-// The following functions must be write in ARM mode this function called\r
-// directly by exception vector\r
-extern void AT91F_Spurious_handler(void);\r
-extern void AT91F_Default_IRQ_handler(void);\r
-extern void AT91F_Default_FIQ_handler(void);\r
-\r
-//*----------------------------------------------------------------------------\r
-//* \fn AT91F_LowLevelInit\r
-//* \brief This function performs very low level HW initialization\r
-//* this function can use a Stack, depending the compilation\r
-//* optimization mode\r
-//*----------------------------------------------------------------------------\r
-void AT91F_LowLevelInit(void) @ "ICODE"\r
-{\r
- unsigned char i;\r
- ///////////////////////////////////////////////////////////////////////////\r
- // EFC Init\r
- ///////////////////////////////////////////////////////////////////////////\r
- AT91C_BASE_MC->MC_FMR = AT91C_MC_FWS_1FWS ;\r
-\r
- ///////////////////////////////////////////////////////////////////////////\r
- // Init PMC Step 1. Enable Main Oscillator\r
- // Main Oscillator startup time is board specific:\r
- // Main Oscillator Startup Time worst case (3MHz) corresponds to 15ms\r
- // (0x40 for AT91C_CKGR_OSCOUNT field)\r
- ///////////////////////////////////////////////////////////////////////////\r
- AT91C_BASE_PMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x40 <<8) | AT91C_CKGR_MOSCEN ));\r
- // Wait Main Oscillator stabilization\r
- while(!(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MOSCS));\r
-\r
- ///////////////////////////////////////////////////////////////////////////\r
- // Init PMC Step 2.\r
- // Set PLL to 96MHz (96,109MHz) and UDP Clock to 48MHz\r
- // PLL Startup time depends on PLL RC filter: worst case is choosen\r
- // UDP Clock (48,058MHz) is compliant with the Universal Serial Bus\r
- // Specification (+/- 0.25% for full speed)\r
- ///////////////////////////////////////////////////////////////////////////\r
- AT91C_BASE_PMC->PMC_PLLR = AT91C_CKGR_USBDIV_1 |\r
- (16 << 8) |\r
- (AT91C_CKGR_MUL & (72 << 16)) |\r
- (AT91C_CKGR_DIV & 14);\r
- // Wait for PLL stabilization\r
- while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_LOCK) );\r
- // Wait until the master clock is established for the case we already\r
- // turn on the PLL\r
- while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );\r
-\r
- ///////////////////////////////////////////////////////////////////////////\r
- // Init PMC Step 3.\r
- // Selection of Master Clock MCK equal to (Processor Clock PCK) PLL/2=48MHz\r
- // The PMC_MCKR register must not be programmed in a single write operation\r
- // (see. Product Errata Sheet)\r
- ///////////////////////////////////////////////////////////////////////////\r
- AT91C_BASE_PMC->PMC_MCKR = AT91C_PMC_PRES_CLK_2;\r
- // Wait until the master clock is established\r
- while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );\r
-\r
- AT91C_BASE_PMC->PMC_MCKR |= AT91C_PMC_CSS_PLL_CLK;\r
- // Wait until the master clock is established\r
- while( !(AT91C_BASE_PMC->PMC_SR & AT91C_PMC_MCKRDY) );\r
-\r
- ///////////////////////////////////////////////////////////////////////////\r
- // Disable Watchdog (write once register)\r
- ///////////////////////////////////////////////////////////////////////////\r
- AT91C_BASE_WDTC->WDTC_WDMR = AT91C_WDTC_WDDIS;\r
-\r
- ///////////////////////////////////////////////////////////////////////////\r
- // Init AIC: assign corresponding handler for each interrupt source\r
- ///////////////////////////////////////////////////////////////////////////\r
- AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;\r
- for (i = 1; i < 31; i++) {\r
- AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;\r
- }\r
- AT91C_BASE_AIC->AIC_SPU = (unsigned int) AT91F_Spurious_handler;\r
-}\r
+++ /dev/null
-//*----------------------------------------------------------------------------\r
-//* ATMEL Microcontroller Software Support - ROUSSET -\r
-//*----------------------------------------------------------------------------\r
-//* The software is delivered "AS IS" without warranty or condition of any\r
-//* kind, either express, implied or statutory. This includes without\r
-//* limitation any warranty or condition with respect to merchantability or\r
-//* fitness for any particular purpose, or against the infringements of\r
-//* intellectual property rights of others.\r
-//*----------------------------------------------------------------------------\r
-//* File Name : Emac.h\r
-//* Object : Emac header file\r
-//* Creation : Hi 11/18/2002\r
-//*\r
-//*----------------------------------------------------------------------------\r
-#ifndef AT91C_EMAC_H\r
-#define AT91C_EMAC_H\r
-\r
-\r
-//* Allows to display all IP header in the main.c\r
-//* If not defined, only ICMP packets are displayed\r
-#define AT91C_DISPLAY_ALL_IPHEADER 0\r
-\r
-#define NB_RX_BUFFERS 25 //* Number of receive buffers\r
-#define ETH_RX_BUFFER_SIZE 128 //*\r
-\r
-#define NB_TX_BUFFERS 2 //* Number of Transmit buffers\r
-#define ETH_TX_BUFFER_SIZE UIP_BUFSIZE //*\r
-\r
-#define AT91C_NO_IPPACKET 0\r
-#define AT91C_IPPACKET 1\r
-\r
-#define ARP_REQUEST 0x0001\r
-#define ARP_REPLY 0x0002\r
-#define PROT_ARP 0x0806\r
-#define PROT_IP 0x0800\r
-#define PROT_ICMP 0x01\r
-#define ICMP_ECHO_REQUEST 0x08\r
-#define ICMP_ECHO_REPLY 0x00\r
-\r
-#define AT91C_EMAC_CLKEN 0x2\r
-#define SWAP16(x) (((x & 0xff) << 8) | (x >> 8))\r
-\r
-#if 0\r
-//* Transfer descriptor structure\r
-typedef struct _AT91S_TdDescriptor {\r
- unsigned int addr;\r
- unsigned int status;\r
-}AT91S_TdDescriptor, *AT91PS_TdDescriptor;\r
-#endif\r
-\r
-//* Receive Transfer descriptor structure\r
-typedef struct _AT91S_RxTdDescriptor {\r
- unsigned int addr;\r
- union\r
- {\r
- unsigned int status;\r
- struct {\r
- unsigned int Length:11;\r
- unsigned int Res0:1;\r
- unsigned int Rxbuf_off:2;\r
- unsigned int StartOfFrame:1;\r
- unsigned int EndOfFrame:1;\r
- unsigned int Cfi:1;\r
- unsigned int VlanPriority:3;\r
- unsigned int PriorityTag:1;\r
- unsigned int VlanTag:1;\r
- unsigned int TypeID:1;\r
- unsigned int Sa4Match:1;\r
- unsigned int Sa3Match:1;\r
- unsigned int Sa2Match:1;\r
- unsigned int Sa1Match:1;\r
- unsigned int Res1:1;\r
- unsigned int ExternalAdd:1;\r
- unsigned int UniCast:1;\r
- unsigned int MultiCast:1;\r
- unsigned int BroadCast:1;\r
- }S_Status; \r
- }U_Status;\r
-}AT91S_RxTdDescriptor, *AT91PS_RxTdDescriptor;\r
-\r
-\r
-//* Transmit Transfer descriptor structure\r
-typedef struct _AT91S_TxTdDescriptor {\r
- unsigned int addr;\r
- union\r
- {\r
- unsigned int status;\r
- struct {\r
- unsigned int Length:11;\r
- unsigned int Res0:4;\r
- unsigned int LastBuff:1;\r
- unsigned int NoCrc:1;\r
- unsigned int Res1:10;\r
- unsigned int BufExhausted:1;\r
- unsigned int TransmitUnderrun:1;\r
- unsigned int TransmitError:1;\r
- unsigned int Wrap:1;\r
- unsigned int BuffUsed:1;\r
- }S_Status; \r
- }U_Status;\r
-}AT91S_TxTdDescriptor, *AT91PS_TxTdDescriptor;\r
-\r
-#define AT91C_OWNERSHIP_BIT 0x00000001\r
-\r
-/* Receive status defintion */\r
-#define AT91C_BROADCAST_ADDR ((unsigned int) (1 << 31)) //* Broadcat address detected\r
-#define AT91C_MULTICAST_HASH ((unsigned int) (1 << 30)) //* MultiCast hash match\r
-#define AT91C_UNICAST_HASH ((unsigned int) (1 << 29)) //* UniCast hash match\r
-#define AT91C_EXTERNAL_ADDR ((unsigned int) (1 << 28)) //* External Address match\r
-#define AT91C_SA1_ADDR ((unsigned int) (1 << 26)) //* Specific address 1 match\r
-#define AT91C_SA2_ADDR ((unsigned int) (1 << 25)) //* Specific address 2 match\r
-#define AT91C_SA3_ADDR ((unsigned int) (1 << 24)) //* Specific address 3 match\r
-#define AT91C_SA4_ADDR ((unsigned int) (1 << 23)) //* Specific address 4 match\r
-#define AT91C_TYPE_ID ((unsigned int) (1 << 22)) //* Type ID match\r
-#define AT91C_VLAN_TAG ((unsigned int) (1 << 21)) //* VLAN tag detected\r
-#define AT91C_PRIORITY_TAG ((unsigned int) (1 << 20)) //* PRIORITY tag detected\r
-#define AT91C_VLAN_PRIORITY ((unsigned int) (7 << 17)) //* PRIORITY Mask\r
-#define AT91C_CFI_IND ((unsigned int) (1 << 16)) //* CFI indicator\r
-#define AT91C_EOF ((unsigned int) (1 << 15)) //* EOF\r
-#define AT91C_SOF ((unsigned int) (1 << 14)) //* SOF\r
-#define AT91C_RBF_OFFSET ((unsigned int) (3 << 12)) //* Receive Buffer Offset Mask\r
-#define AT91C_LENGTH_FRAME ((unsigned int) 0x07FF) //* Length of frame\r
-\r
-/* Transmit Status definition */\r
-#define AT91C_TRANSMIT_OK ((unsigned int) (1 << 31)) //*\r
-#define AT91C_TRANSMIT_WRAP ((unsigned int) (1 << 30)) //* Wrap bit: mark the last descriptor\r
-#define AT91C_TRANSMIT_ERR ((unsigned int) (1 << 29)) //* RLE:transmit error\r
-#define AT91C_TRANSMIT_UND ((unsigned int) (1 << 28)) //* Transmit Underrun\r
-#define AT91C_BUF_EX ((unsigned int) (1 << 27)) //* Buffers exhausted in mid frame\r
-#define AT91C_TRANSMIT_NO_CRC ((unsigned int) (1 << 16)) //* No CRC will be appended to the current frame\r
-#define AT91C_LAST_BUFFER ((unsigned int) (1 << 15)) //*\r
-\r
-#define ARP_ETHER 1 /* Ethernet hardware address */\r
-#define ARPOP_REQUEST 1 /* Request to resolve address */\r
-#define ARPOP_REPLY 2 /* Response to previous request */\r
-#define RARPOP_REQUEST 3 /* Request to resolve address */\r
-#define RARPOP_REPLY 4 /* Response to previous request */\r
-\r
-\r
-typedef struct _AT91S_EthHdr\r
-{\r
- unsigned char et_dest[6]; /* Destination node */\r
- unsigned char et_src[6]; /* Source node */\r
- unsigned short et_protlen; /* Protocol or length */\r
-} AT91S_EthHdr, *AT91PS_EthHdr;\r
-\r
-typedef struct _AT91S_ArpHdr\r
-{\r
- unsigned short ar_hrd; /* Format of hardware address */\r
- unsigned short ar_pro; /* Format of protocol address */\r
- unsigned char ar_hln; /* Length of hardware address */\r
- unsigned char ar_pln; /* Length of protocol address */\r
- unsigned short ar_op; /* Operation */\r
- unsigned char ar_sha[6]; /* Sender hardware address */\r
- unsigned char ar_spa[4]; /* Sender protocol address */\r
- unsigned char ar_tha[6]; /* Target hardware address */\r
- unsigned char ar_tpa[4]; /* Target protocol address */\r
-} AT91S_ArpHdr, *AT91PS_ArpHdr;\r
-\r
-//* IP Header structure\r
-typedef struct _AT91S_IPheader {\r
- unsigned char ip_hl_v; /* header length and version */\r
- unsigned char ip_tos; /* type of service */\r
- unsigned short ip_len; /* total length */\r
- unsigned short ip_id; /* identification */\r
- unsigned short ip_off; /* fragment offset field */\r
- unsigned char ip_ttl; /* time to live */\r
- unsigned char ip_p; /* protocol */\r
- unsigned short ip_sum; /* checksum */\r
- unsigned char ip_src[4]; /* Source IP address */\r
- unsigned char ip_dst[4]; /* Destination IP address */\r
- unsigned short udp_src; /* UDP source port */\r
- unsigned short udp_dst; /* UDP destination port */\r
- unsigned short udp_len; /* Length of UDP packet */\r
- unsigned short udp_xsum; /* Checksum */\r
-} AT91S_IPheader, *AT91PS_IPheader;\r
-\r
-//* ICMP echo header structure\r
-typedef struct _AT91S_IcmpEchoHdr {\r
- unsigned char type; /* type of message */\r
- unsigned char code; /* type subcode */\r
- unsigned short cksum; /* ones complement cksum of struct */\r
- unsigned short id; /* identifier */\r
- unsigned short seq; /* sequence number */\r
-}AT91S_IcmpEchoHdr, *AT91PS_IcmpEchoHdr;\r
-\r
-\r
-typedef struct _AT91S_EthPack\r
-{\r
- AT91S_EthHdr EthHdr;\r
- AT91S_ArpHdr ArpHdr;\r
-} AT91S_EthPack, *AT91PS_EthPack;\r
-\r
-\r
-#endif //* AT91C_EMAC_H\r
+++ /dev/null
-//*----------------------------------------------------------------------------\r
-//* ATMEL Microcontroller Software Support - ROUSSET -\r
-//*----------------------------------------------------------------------------\r
-//* The software is delivered "AS IS" without warranty or condition of any\r
-//* kind, either express, implied or statutory. This includes without\r
-//* limitation any warranty or condition with respect to merchantability or\r
-//* fitness for any particular purpose, or against the infringements of\r
-//* intellectual property rights of others.\r
-//*----------------------------------------------------------------------------\r
-//* File Name : dbgu.c\r
-//* Object : DBGU routines written in C\r
-//* Creation : JG 16/Aug/2004\r
-//*----------------------------------------------------------------------------\r
-\r
-// Include Standard files\r
-#include "Board.h"\r
-\r
-//*--------------------------1--------------------------------------------------\r
-//* \fn AT91F_DBGU_Printk\r
-//* \brief This function is used to send a string through the DBGU channel (Very low level debugging)\r
-//*----------------------------------------------------------------------------\r
-void AT91F_DBGU_Printk( char *buffer)\r
-{\r
- AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
- unsigned int temp;\r
- \r
- while(*buffer != '\0') \r
- {\r
- temp=0;\r
- \r
- while (temp==0)\r
- {\r
- if ( (pDbgu->DBGU_CSR & 0x0200) == 0)\r
- temp=0;\r
- else\r
- temp=1;\r
- }\r
-\r
- pDbgu->DBGU_THR = *buffer;\r
- buffer++;\r
- }\r
-}\r
-\r
-\r
-void Init_DBGU_CLK(void)\r
-{\r
- AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, ((unsigned int) 1 << AT91C_ID_SYS));\r
-}\r
-\r
-void Init_DBGU_BGR(unsigned short baud)\r
-{\r
- AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
- \r
- pDbgu->DBGU_BRGR = (unsigned short)baud;\r
-}\r
-\r
-void DBGU_TX_Enable(void)\r
-{\r
- AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
- \r
- pDbgu->DBGU_CR = 0x00000040;\r
-}\r
-\r
-void DBGU_RX_Enable(void)\r
-{\r
- AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
- \r
- pDbgu->DBGU_CR = 0x00000010;\r
-}\r
-\r
-void DBGU_RX_TX_RST_DIS(void)\r
-{\r
- AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
- pDbgu->DBGU_CR = 0x000000AC;\r
-}\r
-\r
-void DBGU_Parity_Cfg(unsigned int par)\r
-{\r
- AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ; \r
- \r
- pDbgu->DBGU_MR = par << 9;\r
-}\r
-\r
-\r
-void Init_DBGU(void)\r
-{ \r
- AT91F_DBGU_CfgPIO();\r
- DBGU_RX_TX_RST_DIS();\r
- Init_DBGU_BGR(26); //26 <=> 115kBd\r
- DBGU_Parity_Cfg(4);\r
- DBGU_TX_Enable(); \r
- DBGU_RX_Enable();\r
-}\r
-\r
-\r
+++ /dev/null
-//*----------------------------------------------------------------------------\r
-//* ATMEL Microcontroller Software Support - ROUSSET -\r
-//*----------------------------------------------------------------------------\r
-//* The software is delivered "AS IS" without warranty or condition of any\r
-//* kind, either express, implied or statutory. This includes without\r
-//* limitation any warranty or condition with respect to merchantability or\r
-//* fitness for any particular purpose, or against the infringements of\r
-//* intellectual property rights of others.\r
-//*----------------------------------------------------------------------------\r
-//* File Name : dbgu.c\r
-//* Object : DBGU routines written in C\r
-//* Creation : JG 16/Aug/2004\r
-//*----------------------------------------------------------------------------\r
-\r
-// Include Standard files\r
-extern void APPLI_DBGU(void); \r
-extern void D1_TEST_REGISTER_RESET_VALUES(void);\r
-extern void D2_CHIP_ID_VALUES(void);\r
-\r
-\r
-\r
-\r
+++ /dev/null
-//*----------------------------------------------------------------------------\r
-//* ATMEL Microcontroller Software Support - ROUSSET -\r
-//*----------------------------------------------------------------------------\r
-//* The software is delivered "AS IS" without warranty or condition of any\r
-//* kind, either express, implied or statutory. This includes without\r
-//* limitation any warranty or condition with respect to merchantability or\r
-//* fitness for any particular purpose, or against the infringements of\r
-//* intellectual property rights of others.\r
-//*----------------------------------------------------------------------------\r
-//* File Name : init.c\r
-//* Object : Low level initialisations written in C\r
-//* Creation : ODi 06/26/2002\r
-//*\r
-//*----------------------------------------------------------------------------\r
-#include "board.h"\r
-//#include "init.h"\r
-#include <string.h>\r
-\r
-//*----------------------------------------------------------------------------\r
-//* \fn AT91F_DBGU_Printk\r
-//* \brief This function is used to send a string through the DBGU channel (Very low level debugging)\r
-//*----------------------------------------------------------------------------\r
-void AT91F_DBGU_Printk(\r
- char *buffer) // \arg pointer to a string ending by \0\r
-{\r
- while(*buffer != '\0') {\r
- while (!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));\r
- AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, *buffer++);\r
- }\r
-}\r
-\r
+++ /dev/null
-// - ----------------------------------------------------------------------------\r
-// - ATMEL Microcontroller Software Support - ROUSSET -\r
-// - ----------------------------------------------------------------------------\r
-// - DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR\r
-// - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
-// - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
-// - DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,\r
-// - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
-// - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\r
-// - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
-// - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-// - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
-// - EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-// - ----------------------------------------------------------------------------\r
-// - File Name : AT91SAM7X128.h\r
-// - Object : AT91SAM7X128 definitions\r
-// - Generated : AT91 SW Application Group 05/20/2005 (16:22:23)\r
-// - \r
-// - CVS Reference : /AT91SAM7X128.pl/1.14/Tue May 10 12:12:05 2005//\r
-// - CVS Reference : /SYS_SAM7X.pl/1.3/Tue Feb 1 17:01:43 2005//\r
-// - CVS Reference : /MC_SAM7X.pl/1.2/Fri May 20 14:13:04 2005//\r
-// - CVS Reference : /PMC_SAM7X.pl/1.4/Tue Feb 8 13:58:10 2005//\r
-// - CVS Reference : /RSTC_SAM7X.pl/1.1/Tue Feb 1 16:16:26 2005//\r
-// - CVS Reference : /UDP_SAM7X.pl/1.1/Tue May 10 11:35:35 2005//\r
-// - CVS Reference : /PWM_SAM7X.pl/1.1/Tue May 10 11:53:07 2005//\r
-// - CVS Reference : /AIC_6075B.pl/1.3/Fri May 20 14:01:30 2005//\r
-// - CVS Reference : /PIO_6057A.pl/1.2/Thu Feb 3 10:18:28 2005//\r
-// - CVS Reference : /RTTC_6081A.pl/1.2/Tue Nov 9 14:43:58 2004//\r
-// - CVS Reference : /PITC_6079A.pl/1.2/Tue Nov 9 14:43:56 2004//\r
-// - CVS Reference : /WDTC_6080A.pl/1.3/Tue Nov 9 14:44:00 2004//\r
-// - CVS Reference : /VREG_6085B.pl/1.1/Tue Feb 1 16:05:48 2005//\r
-// - CVS Reference : /PDC_6074C.pl/1.2/Thu Feb 3 08:48:54 2005//\r
-// - CVS Reference : /DBGU_6059D.pl/1.1/Mon Jan 31 13:15:32 2005//\r
-// - CVS Reference : /SPI_6088D.pl/1.3/Fri May 20 14:08:59 2005//\r
-// - CVS Reference : /US_6089C.pl/1.1/Mon Jul 12 18:23:26 2004//\r
-// - CVS Reference : /SSC_6078A.pl/1.1/Tue Jul 13 07:45:40 2004//\r
-// - CVS Reference : /TWI_6061A.pl/1.1/Tue Jul 13 07:38:06 2004//\r
-// - CVS Reference : /TC_6082A.pl/1.7/Fri Mar 11 12:52:17 2005//\r
-// - CVS Reference : /CAN_6019B.pl/1.1/Tue Mar 8 12:42:22 2005//\r
-// - CVS Reference : /EMACB_6119A.pl/1.5/Thu Feb 3 15:52:04 2005//\r
-// - CVS Reference : /ADC_6051C.pl/1.1/Fri Oct 17 09:12:38 2003//\r
-// - CVS Reference : /AES_6149A.pl/1.10/Mon Feb 7 09:44:25 2005//\r
-// - CVS Reference : /DES3_6150A.pl/1.1/Mon Jan 17 08:34:31 2005//\r
-// - ----------------------------------------------------------------------------\r
-\r
-#ifndef AT91SAM7X128_H\r
-#define AT91SAM7X128_H\r
-\r
-#ifdef __IAR_SYSTEMS_ICC__\r
-\r
-typedef volatile unsigned int AT91_REG;// Hardware register definition\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR System Peripherals\r
-// *****************************************************************************\r
-typedef struct _AT91S_SYS {\r
- AT91_REG AIC_SMR[32]; // Source Mode Register\r
- AT91_REG AIC_SVR[32]; // Source Vector Register\r
- AT91_REG AIC_IVR; // IRQ Vector Register\r
- AT91_REG AIC_FVR; // FIQ Vector Register\r
- AT91_REG AIC_ISR; // Interrupt Status Register\r
- AT91_REG AIC_IPR; // Interrupt Pending Register\r
- AT91_REG AIC_IMR; // Interrupt Mask Register\r
- AT91_REG AIC_CISR; // Core Interrupt Status Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG AIC_IECR; // Interrupt Enable Command Register\r
- AT91_REG AIC_IDCR; // Interrupt Disable Command Register\r
- AT91_REG AIC_ICCR; // Interrupt Clear Command Register\r
- AT91_REG AIC_ISCR; // Interrupt Set Command Register\r
- AT91_REG AIC_EOICR; // End of Interrupt Command Register\r
- AT91_REG AIC_SPU; // Spurious Vector Register\r
- AT91_REG AIC_DCR; // Debug Control Register (Protect)\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG AIC_FFER; // Fast Forcing Enable Register\r
- AT91_REG AIC_FFDR; // Fast Forcing Disable Register\r
- AT91_REG AIC_FFSR; // Fast Forcing Status Register\r
- AT91_REG Reserved2[45]; // \r
- AT91_REG DBGU_CR; // Control Register\r
- AT91_REG DBGU_MR; // Mode Register\r
- AT91_REG DBGU_IER; // Interrupt Enable Register\r
- AT91_REG DBGU_IDR; // Interrupt Disable Register\r
- AT91_REG DBGU_IMR; // Interrupt Mask Register\r
- AT91_REG DBGU_CSR; // Channel Status Register\r
- AT91_REG DBGU_RHR; // Receiver Holding Register\r
- AT91_REG DBGU_THR; // Transmitter Holding Register\r
- AT91_REG DBGU_BRGR; // Baud Rate Generator Register\r
- AT91_REG Reserved3[7]; // \r
- AT91_REG DBGU_CIDR; // Chip ID Register\r
- AT91_REG DBGU_EXID; // Chip ID Extension Register\r
- AT91_REG DBGU_FNTR; // Force NTRST Register\r
- AT91_REG Reserved4[45]; // \r
- AT91_REG DBGU_RPR; // Receive Pointer Register\r
- AT91_REG DBGU_RCR; // Receive Counter Register\r
- AT91_REG DBGU_TPR; // Transmit Pointer Register\r
- AT91_REG DBGU_TCR; // Transmit Counter Register\r
- AT91_REG DBGU_RNPR; // Receive Next Pointer Register\r
- AT91_REG DBGU_RNCR; // Receive Next Counter Register\r
- AT91_REG DBGU_TNPR; // Transmit Next Pointer Register\r
- AT91_REG DBGU_TNCR; // Transmit Next Counter Register\r
- AT91_REG DBGU_PTCR; // PDC Transfer Control Register\r
- AT91_REG DBGU_PTSR; // PDC Transfer Status Register\r
- AT91_REG Reserved5[54]; // \r
- AT91_REG PIOA_PER; // PIO Enable Register\r
- AT91_REG PIOA_PDR; // PIO Disable Register\r
- AT91_REG PIOA_PSR; // PIO Status Register\r
- AT91_REG Reserved6[1]; // \r
- AT91_REG PIOA_OER; // Output Enable Register\r
- AT91_REG PIOA_ODR; // Output Disable Registerr\r
- AT91_REG PIOA_OSR; // Output Status Register\r
- AT91_REG Reserved7[1]; // \r
- AT91_REG PIOA_IFER; // Input Filter Enable Register\r
- AT91_REG PIOA_IFDR; // Input Filter Disable Register\r
- AT91_REG PIOA_IFSR; // Input Filter Status Register\r
- AT91_REG Reserved8[1]; // \r
- AT91_REG PIOA_SODR; // Set Output Data Register\r
- AT91_REG PIOA_CODR; // Clear Output Data Register\r
- AT91_REG PIOA_ODSR; // Output Data Status Register\r
- AT91_REG PIOA_PDSR; // Pin Data Status Register\r
- AT91_REG PIOA_IER; // Interrupt Enable Register\r
- AT91_REG PIOA_IDR; // Interrupt Disable Register\r
- AT91_REG PIOA_IMR; // Interrupt Mask Register\r
- AT91_REG PIOA_ISR; // Interrupt Status Register\r
- AT91_REG PIOA_MDER; // Multi-driver Enable Register\r
- AT91_REG PIOA_MDDR; // Multi-driver Disable Register\r
- AT91_REG PIOA_MDSR; // Multi-driver Status Register\r
- AT91_REG Reserved9[1]; // \r
- AT91_REG PIOA_PPUDR; // Pull-up Disable Register\r
- AT91_REG PIOA_PPUER; // Pull-up Enable Register\r
- AT91_REG PIOA_PPUSR; // Pull-up Status Register\r
- AT91_REG Reserved10[1]; // \r
- AT91_REG PIOA_ASR; // Select A Register\r
- AT91_REG PIOA_BSR; // Select B Register\r
- AT91_REG PIOA_ABSR; // AB Select Status Register\r
- AT91_REG Reserved11[9]; // \r
- AT91_REG PIOA_OWER; // Output Write Enable Register\r
- AT91_REG PIOA_OWDR; // Output Write Disable Register\r
- AT91_REG PIOA_OWSR; // Output Write Status Register\r
- AT91_REG Reserved12[85]; // \r
- AT91_REG PIOB_PER; // PIO Enable Register\r
- AT91_REG PIOB_PDR; // PIO Disable Register\r
- AT91_REG PIOB_PSR; // PIO Status Register\r
- AT91_REG Reserved13[1]; // \r
- AT91_REG PIOB_OER; // Output Enable Register\r
- AT91_REG PIOB_ODR; // Output Disable Registerr\r
- AT91_REG PIOB_OSR; // Output Status Register\r
- AT91_REG Reserved14[1]; // \r
- AT91_REG PIOB_IFER; // Input Filter Enable Register\r
- AT91_REG PIOB_IFDR; // Input Filter Disable Register\r
- AT91_REG PIOB_IFSR; // Input Filter Status Register\r
- AT91_REG Reserved15[1]; // \r
- AT91_REG PIOB_SODR; // Set Output Data Register\r
- AT91_REG PIOB_CODR; // Clear Output Data Register\r
- AT91_REG PIOB_ODSR; // Output Data Status Register\r
- AT91_REG PIOB_PDSR; // Pin Data Status Register\r
- AT91_REG PIOB_IER; // Interrupt Enable Register\r
- AT91_REG PIOB_IDR; // Interrupt Disable Register\r
- AT91_REG PIOB_IMR; // Interrupt Mask Register\r
- AT91_REG PIOB_ISR; // Interrupt Status Register\r
- AT91_REG PIOB_MDER; // Multi-driver Enable Register\r
- AT91_REG PIOB_MDDR; // Multi-driver Disable Register\r
- AT91_REG PIOB_MDSR; // Multi-driver Status Register\r
- AT91_REG Reserved16[1]; // \r
- AT91_REG PIOB_PPUDR; // Pull-up Disable Register\r
- AT91_REG PIOB_PPUER; // Pull-up Enable Register\r
- AT91_REG PIOB_PPUSR; // Pull-up Status Register\r
- AT91_REG Reserved17[1]; // \r
- AT91_REG PIOB_ASR; // Select A Register\r
- AT91_REG PIOB_BSR; // Select B Register\r
- AT91_REG PIOB_ABSR; // AB Select Status Register\r
- AT91_REG Reserved18[9]; // \r
- AT91_REG PIOB_OWER; // Output Write Enable Register\r
- AT91_REG PIOB_OWDR; // Output Write Disable Register\r
- AT91_REG PIOB_OWSR; // Output Write Status Register\r
- AT91_REG Reserved19[341]; // \r
- AT91_REG PMC_SCER; // System Clock Enable Register\r
- AT91_REG PMC_SCDR; // System Clock Disable Register\r
- AT91_REG PMC_SCSR; // System Clock Status Register\r
- AT91_REG Reserved20[1]; // \r
- AT91_REG PMC_PCER; // Peripheral Clock Enable Register\r
- AT91_REG PMC_PCDR; // Peripheral Clock Disable Register\r
- AT91_REG PMC_PCSR; // Peripheral Clock Status Register\r
- AT91_REG Reserved21[1]; // \r
- AT91_REG PMC_MOR; // Main Oscillator Register\r
- AT91_REG PMC_MCFR; // Main Clock Frequency Register\r
- AT91_REG Reserved22[1]; // \r
- AT91_REG PMC_PLLR; // PLL Register\r
- AT91_REG PMC_MCKR; // Master Clock Register\r
- AT91_REG Reserved23[3]; // \r
- AT91_REG PMC_PCKR[4]; // Programmable Clock Register\r
- AT91_REG Reserved24[4]; // \r
- AT91_REG PMC_IER; // Interrupt Enable Register\r
- AT91_REG PMC_IDR; // Interrupt Disable Register\r
- AT91_REG PMC_SR; // Status Register\r
- AT91_REG PMC_IMR; // Interrupt Mask Register\r
- AT91_REG Reserved25[36]; // \r
- AT91_REG RSTC_RCR; // Reset Control Register\r
- AT91_REG RSTC_RSR; // Reset Status Register\r
- AT91_REG RSTC_RMR; // Reset Mode Register\r
- AT91_REG Reserved26[5]; // \r
- AT91_REG RTTC_RTMR; // Real-time Mode Register\r
- AT91_REG RTTC_RTAR; // Real-time Alarm Register\r
- AT91_REG RTTC_RTVR; // Real-time Value Register\r
- AT91_REG RTTC_RTSR; // Real-time Status Register\r
- AT91_REG PITC_PIMR; // Period Interval Mode Register\r
- AT91_REG PITC_PISR; // Period Interval Status Register\r
- AT91_REG PITC_PIVR; // Period Interval Value Register\r
- AT91_REG PITC_PIIR; // Period Interval Image Register\r
- AT91_REG WDTC_WDCR; // Watchdog Control Register\r
- AT91_REG WDTC_WDMR; // Watchdog Mode Register\r
- AT91_REG WDTC_WDSR; // Watchdog Status Register\r
- AT91_REG Reserved27[5]; // \r
- AT91_REG VREG_MR; // Voltage Regulator Mode Register\r
-} AT91S_SYS, *AT91PS_SYS;\r
-\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Advanced Interrupt Controller\r
-// *****************************************************************************\r
-typedef struct _AT91S_AIC {\r
- AT91_REG AIC_SMR[32]; // Source Mode Register\r
- AT91_REG AIC_SVR[32]; // Source Vector Register\r
- AT91_REG AIC_IVR; // IRQ Vector Register\r
- AT91_REG AIC_FVR; // FIQ Vector Register\r
- AT91_REG AIC_ISR; // Interrupt Status Register\r
- AT91_REG AIC_IPR; // Interrupt Pending Register\r
- AT91_REG AIC_IMR; // Interrupt Mask Register\r
- AT91_REG AIC_CISR; // Core Interrupt Status Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG AIC_IECR; // Interrupt Enable Command Register\r
- AT91_REG AIC_IDCR; // Interrupt Disable Command Register\r
- AT91_REG AIC_ICCR; // Interrupt Clear Command Register\r
- AT91_REG AIC_ISCR; // Interrupt Set Command Register\r
- AT91_REG AIC_EOICR; // End of Interrupt Command Register\r
- AT91_REG AIC_SPU; // Spurious Vector Register\r
- AT91_REG AIC_DCR; // Debug Control Register (Protect)\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG AIC_FFER; // Fast Forcing Enable Register\r
- AT91_REG AIC_FFDR; // Fast Forcing Disable Register\r
- AT91_REG AIC_FFSR; // Fast Forcing Status Register\r
-} AT91S_AIC, *AT91PS_AIC;\r
-\r
-// -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- \r
-#define AT91C_AIC_PRIOR ((unsigned int) 0x7 << 0) // (AIC) Priority Level\r
-#define AT91C_AIC_PRIOR_LOWEST ((unsigned int) 0x0) // (AIC) Lowest priority level\r
-#define AT91C_AIC_PRIOR_HIGHEST ((unsigned int) 0x7) // (AIC) Highest priority level\r
-#define AT91C_AIC_SRCTYPE ((unsigned int) 0x3 << 5) // (AIC) Interrupt Source Type\r
-#define AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL ((unsigned int) 0x0 << 5) // (AIC) Internal Sources Code Label High-level Sensitive\r
-#define AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL ((unsigned int) 0x0 << 5) // (AIC) External Sources Code Label Low-level Sensitive\r
-#define AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE ((unsigned int) 0x1 << 5) // (AIC) Internal Sources Code Label Positive Edge triggered\r
-#define AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE ((unsigned int) 0x1 << 5) // (AIC) External Sources Code Label Negative Edge triggered\r
-#define AT91C_AIC_SRCTYPE_HIGH_LEVEL ((unsigned int) 0x2 << 5) // (AIC) Internal Or External Sources Code Label High-level Sensitive\r
-#define AT91C_AIC_SRCTYPE_POSITIVE_EDGE ((unsigned int) 0x3 << 5) // (AIC) Internal Or External Sources Code Label Positive Edge triggered\r
-// -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- \r
-#define AT91C_AIC_NFIQ ((unsigned int) 0x1 << 0) // (AIC) NFIQ Status\r
-#define AT91C_AIC_NIRQ ((unsigned int) 0x1 << 1) // (AIC) NIRQ Status\r
-// -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- \r
-#define AT91C_AIC_DCR_PROT ((unsigned int) 0x1 << 0) // (AIC) Protection Mode\r
-#define AT91C_AIC_DCR_GMSK ((unsigned int) 0x1 << 1) // (AIC) General Mask\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Peripheral DMA Controller\r
-// *****************************************************************************\r
-typedef struct _AT91S_PDC {\r
- AT91_REG PDC_RPR; // Receive Pointer Register\r
- AT91_REG PDC_RCR; // Receive Counter Register\r
- AT91_REG PDC_TPR; // Transmit Pointer Register\r
- AT91_REG PDC_TCR; // Transmit Counter Register\r
- AT91_REG PDC_RNPR; // Receive Next Pointer Register\r
- AT91_REG PDC_RNCR; // Receive Next Counter Register\r
- AT91_REG PDC_TNPR; // Transmit Next Pointer Register\r
- AT91_REG PDC_TNCR; // Transmit Next Counter Register\r
- AT91_REG PDC_PTCR; // PDC Transfer Control Register\r
- AT91_REG PDC_PTSR; // PDC Transfer Status Register\r
-} AT91S_PDC, *AT91PS_PDC;\r
-\r
-// -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- \r
-#define AT91C_PDC_RXTEN ((unsigned int) 0x1 << 0) // (PDC) Receiver Transfer Enable\r
-#define AT91C_PDC_RXTDIS ((unsigned int) 0x1 << 1) // (PDC) Receiver Transfer Disable\r
-#define AT91C_PDC_TXTEN ((unsigned int) 0x1 << 8) // (PDC) Transmitter Transfer Enable\r
-#define AT91C_PDC_TXTDIS ((unsigned int) 0x1 << 9) // (PDC) Transmitter Transfer Disable\r
-// -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Debug Unit\r
-// *****************************************************************************\r
-typedef struct _AT91S_DBGU {\r
- AT91_REG DBGU_CR; // Control Register\r
- AT91_REG DBGU_MR; // Mode Register\r
- AT91_REG DBGU_IER; // Interrupt Enable Register\r
- AT91_REG DBGU_IDR; // Interrupt Disable Register\r
- AT91_REG DBGU_IMR; // Interrupt Mask Register\r
- AT91_REG DBGU_CSR; // Channel Status Register\r
- AT91_REG DBGU_RHR; // Receiver Holding Register\r
- AT91_REG DBGU_THR; // Transmitter Holding Register\r
- AT91_REG DBGU_BRGR; // Baud Rate Generator Register\r
- AT91_REG Reserved0[7]; // \r
- AT91_REG DBGU_CIDR; // Chip ID Register\r
- AT91_REG DBGU_EXID; // Chip ID Extension Register\r
- AT91_REG DBGU_FNTR; // Force NTRST Register\r
- AT91_REG Reserved1[45]; // \r
- AT91_REG DBGU_RPR; // Receive Pointer Register\r
- AT91_REG DBGU_RCR; // Receive Counter Register\r
- AT91_REG DBGU_TPR; // Transmit Pointer Register\r
- AT91_REG DBGU_TCR; // Transmit Counter Register\r
- AT91_REG DBGU_RNPR; // Receive Next Pointer Register\r
- AT91_REG DBGU_RNCR; // Receive Next Counter Register\r
- AT91_REG DBGU_TNPR; // Transmit Next Pointer Register\r
- AT91_REG DBGU_TNCR; // Transmit Next Counter Register\r
- AT91_REG DBGU_PTCR; // PDC Transfer Control Register\r
- AT91_REG DBGU_PTSR; // PDC Transfer Status Register\r
-} AT91S_DBGU, *AT91PS_DBGU;\r
-\r
-// -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- \r
-#define AT91C_US_RSTRX ((unsigned int) 0x1 << 2) // (DBGU) Reset Receiver\r
-#define AT91C_US_RSTTX ((unsigned int) 0x1 << 3) // (DBGU) Reset Transmitter\r
-#define AT91C_US_RXEN ((unsigned int) 0x1 << 4) // (DBGU) Receiver Enable\r
-#define AT91C_US_RXDIS ((unsigned int) 0x1 << 5) // (DBGU) Receiver Disable\r
-#define AT91C_US_TXEN ((unsigned int) 0x1 << 6) // (DBGU) Transmitter Enable\r
-#define AT91C_US_TXDIS ((unsigned int) 0x1 << 7) // (DBGU) Transmitter Disable\r
-#define AT91C_US_RSTSTA ((unsigned int) 0x1 << 8) // (DBGU) Reset Status Bits\r
-// -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- \r
-#define AT91C_US_PAR ((unsigned int) 0x7 << 9) // (DBGU) Parity type\r
-#define AT91C_US_PAR_EVEN ((unsigned int) 0x0 << 9) // (DBGU) Even Parity\r
-#define AT91C_US_PAR_ODD ((unsigned int) 0x1 << 9) // (DBGU) Odd Parity\r
-#define AT91C_US_PAR_SPACE ((unsigned int) 0x2 << 9) // (DBGU) Parity forced to 0 (Space)\r
-#define AT91C_US_PAR_MARK ((unsigned int) 0x3 << 9) // (DBGU) Parity forced to 1 (Mark)\r
-#define AT91C_US_PAR_NONE ((unsigned int) 0x4 << 9) // (DBGU) No Parity\r
-#define AT91C_US_PAR_MULTI_DROP ((unsigned int) 0x6 << 9) // (DBGU) Multi-drop mode\r
-#define AT91C_US_CHMODE ((unsigned int) 0x3 << 14) // (DBGU) Channel Mode\r
-#define AT91C_US_CHMODE_NORMAL ((unsigned int) 0x0 << 14) // (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.\r
-#define AT91C_US_CHMODE_AUTO ((unsigned int) 0x1 << 14) // (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.\r
-#define AT91C_US_CHMODE_LOCAL ((unsigned int) 0x2 << 14) // (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.\r
-#define AT91C_US_CHMODE_REMOTE ((unsigned int) 0x3 << 14) // (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.\r
-// -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-#define AT91C_US_RXRDY ((unsigned int) 0x1 << 0) // (DBGU) RXRDY Interrupt\r
-#define AT91C_US_TXRDY ((unsigned int) 0x1 << 1) // (DBGU) TXRDY Interrupt\r
-#define AT91C_US_ENDRX ((unsigned int) 0x1 << 3) // (DBGU) End of Receive Transfer Interrupt\r
-#define AT91C_US_ENDTX ((unsigned int) 0x1 << 4) // (DBGU) End of Transmit Interrupt\r
-#define AT91C_US_OVRE ((unsigned int) 0x1 << 5) // (DBGU) Overrun Interrupt\r
-#define AT91C_US_FRAME ((unsigned int) 0x1 << 6) // (DBGU) Framing Error Interrupt\r
-#define AT91C_US_PARE ((unsigned int) 0x1 << 7) // (DBGU) Parity Error Interrupt\r
-#define AT91C_US_TXEMPTY ((unsigned int) 0x1 << 9) // (DBGU) TXEMPTY Interrupt\r
-#define AT91C_US_TXBUFE ((unsigned int) 0x1 << 11) // (DBGU) TXBUFE Interrupt\r
-#define AT91C_US_RXBUFF ((unsigned int) 0x1 << 12) // (DBGU) RXBUFF Interrupt\r
-#define AT91C_US_COMM_TX ((unsigned int) 0x1 << 30) // (DBGU) COMM_TX Interrupt\r
-#define AT91C_US_COMM_RX ((unsigned int) 0x1 << 31) // (DBGU) COMM_RX Interrupt\r
-// -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- \r
-// -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- \r
-#define AT91C_US_FORCE_NTRST ((unsigned int) 0x1 << 0) // (DBGU) Force NTRST in JTAG\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Parallel Input Output Controler\r
-// *****************************************************************************\r
-typedef struct _AT91S_PIO {\r
- AT91_REG PIO_PER; // PIO Enable Register\r
- AT91_REG PIO_PDR; // PIO Disable Register\r
- AT91_REG PIO_PSR; // PIO Status Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG PIO_OER; // Output Enable Register\r
- AT91_REG PIO_ODR; // Output Disable Registerr\r
- AT91_REG PIO_OSR; // Output Status Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG PIO_IFER; // Input Filter Enable Register\r
- AT91_REG PIO_IFDR; // Input Filter Disable Register\r
- AT91_REG PIO_IFSR; // Input Filter Status Register\r
- AT91_REG Reserved2[1]; // \r
- AT91_REG PIO_SODR; // Set Output Data Register\r
- AT91_REG PIO_CODR; // Clear Output Data Register\r
- AT91_REG PIO_ODSR; // Output Data Status Register\r
- AT91_REG PIO_PDSR; // Pin Data Status Register\r
- AT91_REG PIO_IER; // Interrupt Enable Register\r
- AT91_REG PIO_IDR; // Interrupt Disable Register\r
- AT91_REG PIO_IMR; // Interrupt Mask Register\r
- AT91_REG PIO_ISR; // Interrupt Status Register\r
- AT91_REG PIO_MDER; // Multi-driver Enable Register\r
- AT91_REG PIO_MDDR; // Multi-driver Disable Register\r
- AT91_REG PIO_MDSR; // Multi-driver Status Register\r
- AT91_REG Reserved3[1]; // \r
- AT91_REG PIO_PPUDR; // Pull-up Disable Register\r
- AT91_REG PIO_PPUER; // Pull-up Enable Register\r
- AT91_REG PIO_PPUSR; // Pull-up Status Register\r
- AT91_REG Reserved4[1]; // \r
- AT91_REG PIO_ASR; // Select A Register\r
- AT91_REG PIO_BSR; // Select B Register\r
- AT91_REG PIO_ABSR; // AB Select Status Register\r
- AT91_REG Reserved5[9]; // \r
- AT91_REG PIO_OWER; // Output Write Enable Register\r
- AT91_REG PIO_OWDR; // Output Write Disable Register\r
- AT91_REG PIO_OWSR; // Output Write Status Register\r
-} AT91S_PIO, *AT91PS_PIO;\r
-\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Clock Generator Controler\r
-// *****************************************************************************\r
-typedef struct _AT91S_CKGR {\r
- AT91_REG CKGR_MOR; // Main Oscillator Register\r
- AT91_REG CKGR_MCFR; // Main Clock Frequency Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG CKGR_PLLR; // PLL Register\r
-} AT91S_CKGR, *AT91PS_CKGR;\r
-\r
-// -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- \r
-#define AT91C_CKGR_MOSCEN ((unsigned int) 0x1 << 0) // (CKGR) Main Oscillator Enable\r
-#define AT91C_CKGR_OSCBYPASS ((unsigned int) 0x1 << 1) // (CKGR) Main Oscillator Bypass\r
-#define AT91C_CKGR_OSCOUNT ((unsigned int) 0xFF << 8) // (CKGR) Main Oscillator Start-up Time\r
-// -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- \r
-#define AT91C_CKGR_MAINF ((unsigned int) 0xFFFF << 0) // (CKGR) Main Clock Frequency\r
-#define AT91C_CKGR_MAINRDY ((unsigned int) 0x1 << 16) // (CKGR) Main Clock Ready\r
-// -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- \r
-#define AT91C_CKGR_DIV ((unsigned int) 0xFF << 0) // (CKGR) Divider Selected\r
-#define AT91C_CKGR_DIV_0 ((unsigned int) 0x0) // (CKGR) Divider output is 0\r
-#define AT91C_CKGR_DIV_BYPASS ((unsigned int) 0x1) // (CKGR) Divider is bypassed\r
-#define AT91C_CKGR_PLLCOUNT ((unsigned int) 0x3F << 8) // (CKGR) PLL Counter\r
-#define AT91C_CKGR_OUT ((unsigned int) 0x3 << 14) // (CKGR) PLL Output Frequency Range\r
-#define AT91C_CKGR_OUT_0 ((unsigned int) 0x0 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_OUT_1 ((unsigned int) 0x1 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_OUT_2 ((unsigned int) 0x2 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_OUT_3 ((unsigned int) 0x3 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_MUL ((unsigned int) 0x7FF << 16) // (CKGR) PLL Multiplier\r
-#define AT91C_CKGR_USBDIV ((unsigned int) 0x3 << 28) // (CKGR) Divider for USB Clocks\r
-#define AT91C_CKGR_USBDIV_0 ((unsigned int) 0x0 << 28) // (CKGR) Divider output is PLL clock output\r
-#define AT91C_CKGR_USBDIV_1 ((unsigned int) 0x1 << 28) // (CKGR) Divider output is PLL clock output divided by 2\r
-#define AT91C_CKGR_USBDIV_2 ((unsigned int) 0x2 << 28) // (CKGR) Divider output is PLL clock output divided by 4\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Power Management Controler\r
-// *****************************************************************************\r
-typedef struct _AT91S_PMC {\r
- AT91_REG PMC_SCER; // System Clock Enable Register\r
- AT91_REG PMC_SCDR; // System Clock Disable Register\r
- AT91_REG PMC_SCSR; // System Clock Status Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG PMC_PCER; // Peripheral Clock Enable Register\r
- AT91_REG PMC_PCDR; // Peripheral Clock Disable Register\r
- AT91_REG PMC_PCSR; // Peripheral Clock Status Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG PMC_MOR; // Main Oscillator Register\r
- AT91_REG PMC_MCFR; // Main Clock Frequency Register\r
- AT91_REG Reserved2[1]; // \r
- AT91_REG PMC_PLLR; // PLL Register\r
- AT91_REG PMC_MCKR; // Master Clock Register\r
- AT91_REG Reserved3[3]; // \r
- AT91_REG PMC_PCKR[4]; // Programmable Clock Register\r
- AT91_REG Reserved4[4]; // \r
- AT91_REG PMC_IER; // Interrupt Enable Register\r
- AT91_REG PMC_IDR; // Interrupt Disable Register\r
- AT91_REG PMC_SR; // Status Register\r
- AT91_REG PMC_IMR; // Interrupt Mask Register\r
-} AT91S_PMC, *AT91PS_PMC;\r
-\r
-// -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- \r
-#define AT91C_PMC_PCK ((unsigned int) 0x1 << 0) // (PMC) Processor Clock\r
-#define AT91C_PMC_UDP ((unsigned int) 0x1 << 7) // (PMC) USB Device Port Clock\r
-#define AT91C_PMC_PCK0 ((unsigned int) 0x1 << 8) // (PMC) Programmable Clock Output\r
-#define AT91C_PMC_PCK1 ((unsigned int) 0x1 << 9) // (PMC) Programmable Clock Output\r
-#define AT91C_PMC_PCK2 ((unsigned int) 0x1 << 10) // (PMC) Programmable Clock Output\r
-#define AT91C_PMC_PCK3 ((unsigned int) 0x1 << 11) // (PMC) Programmable Clock Output\r
-// -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- \r
-// -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- \r
-// -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- \r
-// -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- \r
-// -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- \r
-// -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- \r
-#define AT91C_PMC_CSS ((unsigned int) 0x3 << 0) // (PMC) Programmable Clock Selection\r
-#define AT91C_PMC_CSS_SLOW_CLK ((unsigned int) 0x0) // (PMC) Slow Clock is selected\r
-#define AT91C_PMC_CSS_MAIN_CLK ((unsigned int) 0x1) // (PMC) Main Clock is selected\r
-#define AT91C_PMC_CSS_PLL_CLK ((unsigned int) 0x3) // (PMC) Clock from PLL is selected\r
-#define AT91C_PMC_PRES ((unsigned int) 0x7 << 2) // (PMC) Programmable Clock Prescaler\r
-#define AT91C_PMC_PRES_CLK ((unsigned int) 0x0 << 2) // (PMC) Selected clock\r
-#define AT91C_PMC_PRES_CLK_2 ((unsigned int) 0x1 << 2) // (PMC) Selected clock divided by 2\r
-#define AT91C_PMC_PRES_CLK_4 ((unsigned int) 0x2 << 2) // (PMC) Selected clock divided by 4\r
-#define AT91C_PMC_PRES_CLK_8 ((unsigned int) 0x3 << 2) // (PMC) Selected clock divided by 8\r
-#define AT91C_PMC_PRES_CLK_16 ((unsigned int) 0x4 << 2) // (PMC) Selected clock divided by 16\r
-#define AT91C_PMC_PRES_CLK_32 ((unsigned int) 0x5 << 2) // (PMC) Selected clock divided by 32\r
-#define AT91C_PMC_PRES_CLK_64 ((unsigned int) 0x6 << 2) // (PMC) Selected clock divided by 64\r
-// -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- \r
-// -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- \r
-#define AT91C_PMC_MOSCS ((unsigned int) 0x1 << 0) // (PMC) MOSC Status/Enable/Disable/Mask\r
-#define AT91C_PMC_LOCK ((unsigned int) 0x1 << 2) // (PMC) PLL Status/Enable/Disable/Mask\r
-#define AT91C_PMC_MCKRDY ((unsigned int) 0x1 << 3) // (PMC) MCK_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK0RDY ((unsigned int) 0x1 << 8) // (PMC) PCK0_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK1RDY ((unsigned int) 0x1 << 9) // (PMC) PCK1_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK2RDY ((unsigned int) 0x1 << 10) // (PMC) PCK2_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK3RDY ((unsigned int) 0x1 << 11) // (PMC) PCK3_RDY Status/Enable/Disable/Mask\r
-// -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- \r
-// -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- \r
-// -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Reset Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_RSTC {\r
- AT91_REG RSTC_RCR; // Reset Control Register\r
- AT91_REG RSTC_RSR; // Reset Status Register\r
- AT91_REG RSTC_RMR; // Reset Mode Register\r
-} AT91S_RSTC, *AT91PS_RSTC;\r
-\r
-// -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- \r
-#define AT91C_RSTC_PROCRST ((unsigned int) 0x1 << 0) // (RSTC) Processor Reset\r
-#define AT91C_RSTC_PERRST ((unsigned int) 0x1 << 2) // (RSTC) Peripheral Reset\r
-#define AT91C_RSTC_EXTRST ((unsigned int) 0x1 << 3) // (RSTC) External Reset\r
-#define AT91C_RSTC_KEY ((unsigned int) 0xFF << 24) // (RSTC) Password\r
-// -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- \r
-#define AT91C_RSTC_URSTS ((unsigned int) 0x1 << 0) // (RSTC) User Reset Status\r
-#define AT91C_RSTC_BODSTS ((unsigned int) 0x1 << 1) // (RSTC) Brownout Detection Status\r
-#define AT91C_RSTC_RSTTYP ((unsigned int) 0x7 << 8) // (RSTC) Reset Type\r
-#define AT91C_RSTC_RSTTYP_POWERUP ((unsigned int) 0x0 << 8) // (RSTC) Power-up Reset. VDDCORE rising.\r
-#define AT91C_RSTC_RSTTYP_WAKEUP ((unsigned int) 0x1 << 8) // (RSTC) WakeUp Reset. VDDCORE rising.\r
-#define AT91C_RSTC_RSTTYP_WATCHDOG ((unsigned int) 0x2 << 8) // (RSTC) Watchdog Reset. Watchdog overflow occured.\r
-#define AT91C_RSTC_RSTTYP_SOFTWARE ((unsigned int) 0x3 << 8) // (RSTC) Software Reset. Processor reset required by the software.\r
-#define AT91C_RSTC_RSTTYP_USER ((unsigned int) 0x4 << 8) // (RSTC) User Reset. NRST pin detected low.\r
-#define AT91C_RSTC_RSTTYP_BROWNOUT ((unsigned int) 0x5 << 8) // (RSTC) Brownout Reset occured.\r
-#define AT91C_RSTC_NRSTL ((unsigned int) 0x1 << 16) // (RSTC) NRST pin level\r
-#define AT91C_RSTC_SRCMP ((unsigned int) 0x1 << 17) // (RSTC) Software Reset Command in Progress.\r
-// -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- \r
-#define AT91C_RSTC_URSTEN ((unsigned int) 0x1 << 0) // (RSTC) User Reset Enable\r
-#define AT91C_RSTC_URSTIEN ((unsigned int) 0x1 << 4) // (RSTC) User Reset Interrupt Enable\r
-#define AT91C_RSTC_ERSTL ((unsigned int) 0xF << 8) // (RSTC) User Reset Enable\r
-#define AT91C_RSTC_BODIEN ((unsigned int) 0x1 << 16) // (RSTC) Brownout Detection Interrupt Enable\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Real Time Timer Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_RTTC {\r
- AT91_REG RTTC_RTMR; // Real-time Mode Register\r
- AT91_REG RTTC_RTAR; // Real-time Alarm Register\r
- AT91_REG RTTC_RTVR; // Real-time Value Register\r
- AT91_REG RTTC_RTSR; // Real-time Status Register\r
-} AT91S_RTTC, *AT91PS_RTTC;\r
-\r
-// -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- \r
-#define AT91C_RTTC_RTPRES ((unsigned int) 0xFFFF << 0) // (RTTC) Real-time Timer Prescaler Value\r
-#define AT91C_RTTC_ALMIEN ((unsigned int) 0x1 << 16) // (RTTC) Alarm Interrupt Enable\r
-#define AT91C_RTTC_RTTINCIEN ((unsigned int) 0x1 << 17) // (RTTC) Real Time Timer Increment Interrupt Enable\r
-#define AT91C_RTTC_RTTRST ((unsigned int) 0x1 << 18) // (RTTC) Real Time Timer Restart\r
-// -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- \r
-#define AT91C_RTTC_ALMV ((unsigned int) 0x0 << 0) // (RTTC) Alarm Value\r
-// -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- \r
-#define AT91C_RTTC_CRTV ((unsigned int) 0x0 << 0) // (RTTC) Current Real-time Value\r
-// -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- \r
-#define AT91C_RTTC_ALMS ((unsigned int) 0x1 << 0) // (RTTC) Real-time Alarm Status\r
-#define AT91C_RTTC_RTTINC ((unsigned int) 0x1 << 1) // (RTTC) Real-time Timer Increment\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Periodic Interval Timer Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_PITC {\r
- AT91_REG PITC_PIMR; // Period Interval Mode Register\r
- AT91_REG PITC_PISR; // Period Interval Status Register\r
- AT91_REG PITC_PIVR; // Period Interval Value Register\r
- AT91_REG PITC_PIIR; // Period Interval Image Register\r
-} AT91S_PITC, *AT91PS_PITC;\r
-\r
-// -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- \r
-#define AT91C_PITC_PIV ((unsigned int) 0xFFFFF << 0) // (PITC) Periodic Interval Value\r
-#define AT91C_PITC_PITEN ((unsigned int) 0x1 << 24) // (PITC) Periodic Interval Timer Enabled\r
-#define AT91C_PITC_PITIEN ((unsigned int) 0x1 << 25) // (PITC) Periodic Interval Timer Interrupt Enable\r
-// -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- \r
-#define AT91C_PITC_PITS ((unsigned int) 0x1 << 0) // (PITC) Periodic Interval Timer Status\r
-// -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- \r
-#define AT91C_PITC_CPIV ((unsigned int) 0xFFFFF << 0) // (PITC) Current Periodic Interval Value\r
-#define AT91C_PITC_PICNT ((unsigned int) 0xFFF << 20) // (PITC) Periodic Interval Counter\r
-// -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Watchdog Timer Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_WDTC {\r
- AT91_REG WDTC_WDCR; // Watchdog Control Register\r
- AT91_REG WDTC_WDMR; // Watchdog Mode Register\r
- AT91_REG WDTC_WDSR; // Watchdog Status Register\r
-} AT91S_WDTC, *AT91PS_WDTC;\r
-\r
-// -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- \r
-#define AT91C_WDTC_WDRSTT ((unsigned int) 0x1 << 0) // (WDTC) Watchdog Restart\r
-#define AT91C_WDTC_KEY ((unsigned int) 0xFF << 24) // (WDTC) Watchdog KEY Password\r
-// -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- \r
-#define AT91C_WDTC_WDV ((unsigned int) 0xFFF << 0) // (WDTC) Watchdog Timer Restart\r
-#define AT91C_WDTC_WDFIEN ((unsigned int) 0x1 << 12) // (WDTC) Watchdog Fault Interrupt Enable\r
-#define AT91C_WDTC_WDRSTEN ((unsigned int) 0x1 << 13) // (WDTC) Watchdog Reset Enable\r
-#define AT91C_WDTC_WDRPROC ((unsigned int) 0x1 << 14) // (WDTC) Watchdog Timer Restart\r
-#define AT91C_WDTC_WDDIS ((unsigned int) 0x1 << 15) // (WDTC) Watchdog Disable\r
-#define AT91C_WDTC_WDD ((unsigned int) 0xFFF << 16) // (WDTC) Watchdog Delta Value\r
-#define AT91C_WDTC_WDDBGHLT ((unsigned int) 0x1 << 28) // (WDTC) Watchdog Debug Halt\r
-#define AT91C_WDTC_WDIDLEHLT ((unsigned int) 0x1 << 29) // (WDTC) Watchdog Idle Halt\r
-// -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- \r
-#define AT91C_WDTC_WDUNF ((unsigned int) 0x1 << 0) // (WDTC) Watchdog Underflow\r
-#define AT91C_WDTC_WDERR ((unsigned int) 0x1 << 1) // (WDTC) Watchdog Error\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Voltage Regulator Mode Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_VREG {\r
- AT91_REG VREG_MR; // Voltage Regulator Mode Register\r
-} AT91S_VREG, *AT91PS_VREG;\r
-\r
-// -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- \r
-#define AT91C_VREG_PSTDBY ((unsigned int) 0x1 << 0) // (VREG) Voltage Regulator Power Standby Mode\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Memory Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_MC {\r
- AT91_REG MC_RCR; // MC Remap Control Register\r
- AT91_REG MC_ASR; // MC Abort Status Register\r
- AT91_REG MC_AASR; // MC Abort Address Status Register\r
- AT91_REG Reserved0[21]; // \r
- AT91_REG MC_FMR; // MC Flash Mode Register\r
- AT91_REG MC_FCR; // MC Flash Command Register\r
- AT91_REG MC_FSR; // MC Flash Status Register\r
-} AT91S_MC, *AT91PS_MC;\r
-\r
-// -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- \r
-#define AT91C_MC_RCB ((unsigned int) 0x1 << 0) // (MC) Remap Command Bit\r
-// -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- \r
-#define AT91C_MC_UNDADD ((unsigned int) 0x1 << 0) // (MC) Undefined Addess Abort Status\r
-#define AT91C_MC_MISADD ((unsigned int) 0x1 << 1) // (MC) Misaligned Addess Abort Status\r
-#define AT91C_MC_ABTSZ ((unsigned int) 0x3 << 8) // (MC) Abort Size Status\r
-#define AT91C_MC_ABTSZ_BYTE ((unsigned int) 0x0 << 8) // (MC) Byte\r
-#define AT91C_MC_ABTSZ_HWORD ((unsigned int) 0x1 << 8) // (MC) Half-word\r
-#define AT91C_MC_ABTSZ_WORD ((unsigned int) 0x2 << 8) // (MC) Word\r
-#define AT91C_MC_ABTTYP ((unsigned int) 0x3 << 10) // (MC) Abort Type Status\r
-#define AT91C_MC_ABTTYP_DATAR ((unsigned int) 0x0 << 10) // (MC) Data Read\r
-#define AT91C_MC_ABTTYP_DATAW ((unsigned int) 0x1 << 10) // (MC) Data Write\r
-#define AT91C_MC_ABTTYP_FETCH ((unsigned int) 0x2 << 10) // (MC) Code Fetch\r
-#define AT91C_MC_MST0 ((unsigned int) 0x1 << 16) // (MC) Master 0 Abort Source\r
-#define AT91C_MC_MST1 ((unsigned int) 0x1 << 17) // (MC) Master 1 Abort Source\r
-#define AT91C_MC_SVMST0 ((unsigned int) 0x1 << 24) // (MC) Saved Master 0 Abort Source\r
-#define AT91C_MC_SVMST1 ((unsigned int) 0x1 << 25) // (MC) Saved Master 1 Abort Source\r
-// -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- \r
-#define AT91C_MC_FRDY ((unsigned int) 0x1 << 0) // (MC) Flash Ready\r
-#define AT91C_MC_LOCKE ((unsigned int) 0x1 << 2) // (MC) Lock Error\r
-#define AT91C_MC_PROGE ((unsigned int) 0x1 << 3) // (MC) Programming Error\r
-#define AT91C_MC_NEBP ((unsigned int) 0x1 << 7) // (MC) No Erase Before Programming\r
-#define AT91C_MC_FWS ((unsigned int) 0x3 << 8) // (MC) Flash Wait State\r
-#define AT91C_MC_FWS_0FWS ((unsigned int) 0x0 << 8) // (MC) 1 cycle for Read, 2 for Write operations\r
-#define AT91C_MC_FWS_1FWS ((unsigned int) 0x1 << 8) // (MC) 2 cycles for Read, 3 for Write operations\r
-#define AT91C_MC_FWS_2FWS ((unsigned int) 0x2 << 8) // (MC) 3 cycles for Read, 4 for Write operations\r
-#define AT91C_MC_FWS_3FWS ((unsigned int) 0x3 << 8) // (MC) 4 cycles for Read, 4 for Write operations\r
-#define AT91C_MC_FMCN ((unsigned int) 0xFF << 16) // (MC) Flash Microsecond Cycle Number\r
-// -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- \r
-#define AT91C_MC_FCMD ((unsigned int) 0xF << 0) // (MC) Flash Command\r
-#define AT91C_MC_FCMD_START_PROG ((unsigned int) 0x1) // (MC) Starts the programming of th epage specified by PAGEN.\r
-#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.\r
-#define AT91C_MC_FCMD_PROG_AND_LOCK ((unsigned int) 0x3) // (MC) The lock sequence automatically happens after the programming sequence is completed.\r
-#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.\r
-#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.\r
-#define AT91C_MC_FCMD_SET_GP_NVM ((unsigned int) 0xB) // (MC) Set General Purpose NVM bits.\r
-#define AT91C_MC_FCMD_CLR_GP_NVM ((unsigned int) 0xD) // (MC) Clear General Purpose NVM bits.\r
-#define AT91C_MC_FCMD_SET_SECURITY ((unsigned int) 0xF) // (MC) Set Security Bit.\r
-#define AT91C_MC_PAGEN ((unsigned int) 0x3FF << 8) // (MC) Page Number\r
-#define AT91C_MC_KEY ((unsigned int) 0xFF << 24) // (MC) Writing Protect Key\r
-// -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- \r
-#define AT91C_MC_SECURITY ((unsigned int) 0x1 << 4) // (MC) Security Bit Status\r
-#define AT91C_MC_GPNVM0 ((unsigned int) 0x1 << 8) // (MC) Sector 0 Lock Status\r
-#define AT91C_MC_GPNVM1 ((unsigned int) 0x1 << 9) // (MC) Sector 1 Lock Status\r
-#define AT91C_MC_GPNVM2 ((unsigned int) 0x1 << 10) // (MC) Sector 2 Lock Status\r
-#define AT91C_MC_GPNVM3 ((unsigned int) 0x1 << 11) // (MC) Sector 3 Lock Status\r
-#define AT91C_MC_GPNVM4 ((unsigned int) 0x1 << 12) // (MC) Sector 4 Lock Status\r
-#define AT91C_MC_GPNVM5 ((unsigned int) 0x1 << 13) // (MC) Sector 5 Lock Status\r
-#define AT91C_MC_GPNVM6 ((unsigned int) 0x1 << 14) // (MC) Sector 6 Lock Status\r
-#define AT91C_MC_GPNVM7 ((unsigned int) 0x1 << 15) // (MC) Sector 7 Lock Status\r
-#define AT91C_MC_LOCKS0 ((unsigned int) 0x1 << 16) // (MC) Sector 0 Lock Status\r
-#define AT91C_MC_LOCKS1 ((unsigned int) 0x1 << 17) // (MC) Sector 1 Lock Status\r
-#define AT91C_MC_LOCKS2 ((unsigned int) 0x1 << 18) // (MC) Sector 2 Lock Status\r
-#define AT91C_MC_LOCKS3 ((unsigned int) 0x1 << 19) // (MC) Sector 3 Lock Status\r
-#define AT91C_MC_LOCKS4 ((unsigned int) 0x1 << 20) // (MC) Sector 4 Lock Status\r
-#define AT91C_MC_LOCKS5 ((unsigned int) 0x1 << 21) // (MC) Sector 5 Lock Status\r
-#define AT91C_MC_LOCKS6 ((unsigned int) 0x1 << 22) // (MC) Sector 6 Lock Status\r
-#define AT91C_MC_LOCKS7 ((unsigned int) 0x1 << 23) // (MC) Sector 7 Lock Status\r
-#define AT91C_MC_LOCKS8 ((unsigned int) 0x1 << 24) // (MC) Sector 8 Lock Status\r
-#define AT91C_MC_LOCKS9 ((unsigned int) 0x1 << 25) // (MC) Sector 9 Lock Status\r
-#define AT91C_MC_LOCKS10 ((unsigned int) 0x1 << 26) // (MC) Sector 10 Lock Status\r
-#define AT91C_MC_LOCKS11 ((unsigned int) 0x1 << 27) // (MC) Sector 11 Lock Status\r
-#define AT91C_MC_LOCKS12 ((unsigned int) 0x1 << 28) // (MC) Sector 12 Lock Status\r
-#define AT91C_MC_LOCKS13 ((unsigned int) 0x1 << 29) // (MC) Sector 13 Lock Status\r
-#define AT91C_MC_LOCKS14 ((unsigned int) 0x1 << 30) // (MC) Sector 14 Lock Status\r
-#define AT91C_MC_LOCKS15 ((unsigned int) 0x1 << 31) // (MC) Sector 15 Lock Status\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Serial Parallel Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_SPI {\r
- AT91_REG SPI_CR; // Control Register\r
- AT91_REG SPI_MR; // Mode Register\r
- AT91_REG SPI_RDR; // Receive Data Register\r
- AT91_REG SPI_TDR; // Transmit Data Register\r
- AT91_REG SPI_SR; // Status Register\r
- AT91_REG SPI_IER; // Interrupt Enable Register\r
- AT91_REG SPI_IDR; // Interrupt Disable Register\r
- AT91_REG SPI_IMR; // Interrupt Mask Register\r
- AT91_REG Reserved0[4]; // \r
- AT91_REG SPI_CSR[4]; // Chip Select Register\r
- AT91_REG Reserved1[48]; // \r
- AT91_REG SPI_RPR; // Receive Pointer Register\r
- AT91_REG SPI_RCR; // Receive Counter Register\r
- AT91_REG SPI_TPR; // Transmit Pointer Register\r
- AT91_REG SPI_TCR; // Transmit Counter Register\r
- AT91_REG SPI_RNPR; // Receive Next Pointer Register\r
- AT91_REG SPI_RNCR; // Receive Next Counter Register\r
- AT91_REG SPI_TNPR; // Transmit Next Pointer Register\r
- AT91_REG SPI_TNCR; // Transmit Next Counter Register\r
- AT91_REG SPI_PTCR; // PDC Transfer Control Register\r
- AT91_REG SPI_PTSR; // PDC Transfer Status Register\r
-} AT91S_SPI, *AT91PS_SPI;\r
-\r
-// -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- \r
-#define AT91C_SPI_SPIEN ((unsigned int) 0x1 << 0) // (SPI) SPI Enable\r
-#define AT91C_SPI_SPIDIS ((unsigned int) 0x1 << 1) // (SPI) SPI Disable\r
-#define AT91C_SPI_SWRST ((unsigned int) 0x1 << 7) // (SPI) SPI Software reset\r
-#define AT91C_SPI_LASTXFER ((unsigned int) 0x1 << 24) // (SPI) SPI Last Transfer\r
-// -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- \r
-#define AT91C_SPI_MSTR ((unsigned int) 0x1 << 0) // (SPI) Master/Slave Mode\r
-#define AT91C_SPI_PS ((unsigned int) 0x1 << 1) // (SPI) Peripheral Select\r
-#define AT91C_SPI_PS_FIXED ((unsigned int) 0x0 << 1) // (SPI) Fixed Peripheral Select\r
-#define AT91C_SPI_PS_VARIABLE ((unsigned int) 0x1 << 1) // (SPI) Variable Peripheral Select\r
-#define AT91C_SPI_PCSDEC ((unsigned int) 0x1 << 2) // (SPI) Chip Select Decode\r
-#define AT91C_SPI_FDIV ((unsigned int) 0x1 << 3) // (SPI) Clock Selection\r
-#define AT91C_SPI_MODFDIS ((unsigned int) 0x1 << 4) // (SPI) Mode Fault Detection\r
-#define AT91C_SPI_LLB ((unsigned int) 0x1 << 7) // (SPI) Clock Selection\r
-#define AT91C_SPI_PCS ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select\r
-#define AT91C_SPI_DLYBCS ((unsigned int) 0xFF << 24) // (SPI) Delay Between Chip Selects\r
-// -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- \r
-#define AT91C_SPI_RD ((unsigned int) 0xFFFF << 0) // (SPI) Receive Data\r
-#define AT91C_SPI_RPCS ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status\r
-// -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- \r
-#define AT91C_SPI_TD ((unsigned int) 0xFFFF << 0) // (SPI) Transmit Data\r
-#define AT91C_SPI_TPCS ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status\r
-// -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- \r
-#define AT91C_SPI_RDRF ((unsigned int) 0x1 << 0) // (SPI) Receive Data Register Full\r
-#define AT91C_SPI_TDRE ((unsigned int) 0x1 << 1) // (SPI) Transmit Data Register Empty\r
-#define AT91C_SPI_MODF ((unsigned int) 0x1 << 2) // (SPI) Mode Fault Error\r
-#define AT91C_SPI_OVRES ((unsigned int) 0x1 << 3) // (SPI) Overrun Error Status\r
-#define AT91C_SPI_ENDRX ((unsigned int) 0x1 << 4) // (SPI) End of Receiver Transfer\r
-#define AT91C_SPI_ENDTX ((unsigned int) 0x1 << 5) // (SPI) End of Receiver Transfer\r
-#define AT91C_SPI_RXBUFF ((unsigned int) 0x1 << 6) // (SPI) RXBUFF Interrupt\r
-#define AT91C_SPI_TXBUFE ((unsigned int) 0x1 << 7) // (SPI) TXBUFE Interrupt\r
-#define AT91C_SPI_NSSR ((unsigned int) 0x1 << 8) // (SPI) NSSR Interrupt\r
-#define AT91C_SPI_TXEMPTY ((unsigned int) 0x1 << 9) // (SPI) TXEMPTY Interrupt\r
-#define AT91C_SPI_SPIENS ((unsigned int) 0x1 << 16) // (SPI) Enable Status\r
-// -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- \r
-// -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- \r
-// -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- \r
-// -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- \r
-#define AT91C_SPI_CPOL ((unsigned int) 0x1 << 0) // (SPI) Clock Polarity\r
-#define AT91C_SPI_NCPHA ((unsigned int) 0x1 << 1) // (SPI) Clock Phase\r
-#define AT91C_SPI_CSAAT ((unsigned int) 0x1 << 3) // (SPI) Chip Select Active After Transfer\r
-#define AT91C_SPI_BITS ((unsigned int) 0xF << 4) // (SPI) Bits Per Transfer\r
-#define AT91C_SPI_BITS_8 ((unsigned int) 0x0 << 4) // (SPI) 8 Bits Per transfer\r
-#define AT91C_SPI_BITS_9 ((unsigned int) 0x1 << 4) // (SPI) 9 Bits Per transfer\r
-#define AT91C_SPI_BITS_10 ((unsigned int) 0x2 << 4) // (SPI) 10 Bits Per transfer\r
-#define AT91C_SPI_BITS_11 ((unsigned int) 0x3 << 4) // (SPI) 11 Bits Per transfer\r
-#define AT91C_SPI_BITS_12 ((unsigned int) 0x4 << 4) // (SPI) 12 Bits Per transfer\r
-#define AT91C_SPI_BITS_13 ((unsigned int) 0x5 << 4) // (SPI) 13 Bits Per transfer\r
-#define AT91C_SPI_BITS_14 ((unsigned int) 0x6 << 4) // (SPI) 14 Bits Per transfer\r
-#define AT91C_SPI_BITS_15 ((unsigned int) 0x7 << 4) // (SPI) 15 Bits Per transfer\r
-#define AT91C_SPI_BITS_16 ((unsigned int) 0x8 << 4) // (SPI) 16 Bits Per transfer\r
-#define AT91C_SPI_SCBR ((unsigned int) 0xFF << 8) // (SPI) Serial Clock Baud Rate\r
-#define AT91C_SPI_DLYBS ((unsigned int) 0xFF << 16) // (SPI) Delay Before SPCK\r
-#define AT91C_SPI_DLYBCT ((unsigned int) 0xFF << 24) // (SPI) Delay Between Consecutive Transfers\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Usart\r
-// *****************************************************************************\r
-typedef struct _AT91S_USART {\r
- AT91_REG US_CR; // Control Register\r
- AT91_REG US_MR; // Mode Register\r
- AT91_REG US_IER; // Interrupt Enable Register\r
- AT91_REG US_IDR; // Interrupt Disable Register\r
- AT91_REG US_IMR; // Interrupt Mask Register\r
- AT91_REG US_CSR; // Channel Status Register\r
- AT91_REG US_RHR; // Receiver Holding Register\r
- AT91_REG US_THR; // Transmitter Holding Register\r
- AT91_REG US_BRGR; // Baud Rate Generator Register\r
- AT91_REG US_RTOR; // Receiver Time-out Register\r
- AT91_REG US_TTGR; // Transmitter Time-guard Register\r
- AT91_REG Reserved0[5]; // \r
- AT91_REG US_FIDI; // FI_DI_Ratio Register\r
- AT91_REG US_NER; // Nb Errors Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG US_IF; // IRDA_FILTER Register\r
- AT91_REG Reserved2[44]; // \r
- AT91_REG US_RPR; // Receive Pointer Register\r
- AT91_REG US_RCR; // Receive Counter Register\r
- AT91_REG US_TPR; // Transmit Pointer Register\r
- AT91_REG US_TCR; // Transmit Counter Register\r
- AT91_REG US_RNPR; // Receive Next Pointer Register\r
- AT91_REG US_RNCR; // Receive Next Counter Register\r
- AT91_REG US_TNPR; // Transmit Next Pointer Register\r
- AT91_REG US_TNCR; // Transmit Next Counter Register\r
- AT91_REG US_PTCR; // PDC Transfer Control Register\r
- AT91_REG US_PTSR; // PDC Transfer Status Register\r
-} AT91S_USART, *AT91PS_USART;\r
-\r
-// -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- \r
-#define AT91C_US_STTBRK ((unsigned int) 0x1 << 9) // (USART) Start Break\r
-#define AT91C_US_STPBRK ((unsigned int) 0x1 << 10) // (USART) Stop Break\r
-#define AT91C_US_STTTO ((unsigned int) 0x1 << 11) // (USART) Start Time-out\r
-#define AT91C_US_SENDA ((unsigned int) 0x1 << 12) // (USART) Send Address\r
-#define AT91C_US_RSTIT ((unsigned int) 0x1 << 13) // (USART) Reset Iterations\r
-#define AT91C_US_RSTNACK ((unsigned int) 0x1 << 14) // (USART) Reset Non Acknowledge\r
-#define AT91C_US_RETTO ((unsigned int) 0x1 << 15) // (USART) Rearm Time-out\r
-#define AT91C_US_DTREN ((unsigned int) 0x1 << 16) // (USART) Data Terminal ready Enable\r
-#define AT91C_US_DTRDIS ((unsigned int) 0x1 << 17) // (USART) Data Terminal ready Disable\r
-#define AT91C_US_RTSEN ((unsigned int) 0x1 << 18) // (USART) Request to Send enable\r
-#define AT91C_US_RTSDIS ((unsigned int) 0x1 << 19) // (USART) Request to Send Disable\r
-// -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- \r
-#define AT91C_US_USMODE ((unsigned int) 0xF << 0) // (USART) Usart mode\r
-#define AT91C_US_USMODE_NORMAL ((unsigned int) 0x0) // (USART) Normal\r
-#define AT91C_US_USMODE_RS485 ((unsigned int) 0x1) // (USART) RS485\r
-#define AT91C_US_USMODE_HWHSH ((unsigned int) 0x2) // (USART) Hardware Handshaking\r
-#define AT91C_US_USMODE_MODEM ((unsigned int) 0x3) // (USART) Modem\r
-#define AT91C_US_USMODE_ISO7816_0 ((unsigned int) 0x4) // (USART) ISO7816 protocol: T = 0\r
-#define AT91C_US_USMODE_ISO7816_1 ((unsigned int) 0x6) // (USART) ISO7816 protocol: T = 1\r
-#define AT91C_US_USMODE_IRDA ((unsigned int) 0x8) // (USART) IrDA\r
-#define AT91C_US_USMODE_SWHSH ((unsigned int) 0xC) // (USART) Software Handshaking\r
-#define AT91C_US_CLKS ((unsigned int) 0x3 << 4) // (USART) Clock Selection (Baud Rate generator Input Clock\r
-#define AT91C_US_CLKS_CLOCK ((unsigned int) 0x0 << 4) // (USART) Clock\r
-#define AT91C_US_CLKS_FDIV1 ((unsigned int) 0x1 << 4) // (USART) fdiv1\r
-#define AT91C_US_CLKS_SLOW ((unsigned int) 0x2 << 4) // (USART) slow_clock (ARM)\r
-#define AT91C_US_CLKS_EXT ((unsigned int) 0x3 << 4) // (USART) External (SCK)\r
-#define AT91C_US_CHRL ((unsigned int) 0x3 << 6) // (USART) Clock Selection (Baud Rate generator Input Clock\r
-#define AT91C_US_CHRL_5_BITS ((unsigned int) 0x0 << 6) // (USART) Character Length: 5 bits\r
-#define AT91C_US_CHRL_6_BITS ((unsigned int) 0x1 << 6) // (USART) Character Length: 6 bits\r
-#define AT91C_US_CHRL_7_BITS ((unsigned int) 0x2 << 6) // (USART) Character Length: 7 bits\r
-#define AT91C_US_CHRL_8_BITS ((unsigned int) 0x3 << 6) // (USART) Character Length: 8 bits\r
-#define AT91C_US_SYNC ((unsigned int) 0x1 << 8) // (USART) Synchronous Mode Select\r
-#define AT91C_US_NBSTOP ((unsigned int) 0x3 << 12) // (USART) Number of Stop bits\r
-#define AT91C_US_NBSTOP_1_BIT ((unsigned int) 0x0 << 12) // (USART) 1 stop bit\r
-#define AT91C_US_NBSTOP_15_BIT ((unsigned int) 0x1 << 12) // (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits\r
-#define AT91C_US_NBSTOP_2_BIT ((unsigned int) 0x2 << 12) // (USART) 2 stop bits\r
-#define AT91C_US_MSBF ((unsigned int) 0x1 << 16) // (USART) Bit Order\r
-#define AT91C_US_MODE9 ((unsigned int) 0x1 << 17) // (USART) 9-bit Character length\r
-#define AT91C_US_CKLO ((unsigned int) 0x1 << 18) // (USART) Clock Output Select\r
-#define AT91C_US_OVER ((unsigned int) 0x1 << 19) // (USART) Over Sampling Mode\r
-#define AT91C_US_INACK ((unsigned int) 0x1 << 20) // (USART) Inhibit Non Acknowledge\r
-#define AT91C_US_DSNACK ((unsigned int) 0x1 << 21) // (USART) Disable Successive NACK\r
-#define AT91C_US_MAX_ITER ((unsigned int) 0x1 << 24) // (USART) Number of Repetitions\r
-#define AT91C_US_FILTER ((unsigned int) 0x1 << 28) // (USART) Receive Line Filter\r
-// -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-#define AT91C_US_RXBRK ((unsigned int) 0x1 << 2) // (USART) Break Received/End of Break\r
-#define AT91C_US_TIMEOUT ((unsigned int) 0x1 << 8) // (USART) Receiver Time-out\r
-#define AT91C_US_ITERATION ((unsigned int) 0x1 << 10) // (USART) Max number of Repetitions Reached\r
-#define AT91C_US_NACK ((unsigned int) 0x1 << 13) // (USART) Non Acknowledge\r
-#define AT91C_US_RIIC ((unsigned int) 0x1 << 16) // (USART) Ring INdicator Input Change Flag\r
-#define AT91C_US_DSRIC ((unsigned int) 0x1 << 17) // (USART) Data Set Ready Input Change Flag\r
-#define AT91C_US_DCDIC ((unsigned int) 0x1 << 18) // (USART) Data Carrier Flag\r
-#define AT91C_US_CTSIC ((unsigned int) 0x1 << 19) // (USART) Clear To Send Input Change Flag\r
-// -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- \r
-#define AT91C_US_RI ((unsigned int) 0x1 << 20) // (USART) Image of RI Input\r
-#define AT91C_US_DSR ((unsigned int) 0x1 << 21) // (USART) Image of DSR Input\r
-#define AT91C_US_DCD ((unsigned int) 0x1 << 22) // (USART) Image of DCD Input\r
-#define AT91C_US_CTS ((unsigned int) 0x1 << 23) // (USART) Image of CTS Input\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Synchronous Serial Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_SSC {\r
- AT91_REG SSC_CR; // Control Register\r
- AT91_REG SSC_CMR; // Clock Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG SSC_RCMR; // Receive Clock ModeRegister\r
- AT91_REG SSC_RFMR; // Receive Frame Mode Register\r
- AT91_REG SSC_TCMR; // Transmit Clock Mode Register\r
- AT91_REG SSC_TFMR; // Transmit Frame Mode Register\r
- AT91_REG SSC_RHR; // Receive Holding Register\r
- AT91_REG SSC_THR; // Transmit Holding Register\r
- AT91_REG Reserved1[2]; // \r
- AT91_REG SSC_RSHR; // Receive Sync Holding Register\r
- AT91_REG SSC_TSHR; // Transmit Sync Holding Register\r
- AT91_REG Reserved2[2]; // \r
- AT91_REG SSC_SR; // Status Register\r
- AT91_REG SSC_IER; // Interrupt Enable Register\r
- AT91_REG SSC_IDR; // Interrupt Disable Register\r
- AT91_REG SSC_IMR; // Interrupt Mask Register\r
- AT91_REG Reserved3[44]; // \r
- AT91_REG SSC_RPR; // Receive Pointer Register\r
- AT91_REG SSC_RCR; // Receive Counter Register\r
- AT91_REG SSC_TPR; // Transmit Pointer Register\r
- AT91_REG SSC_TCR; // Transmit Counter Register\r
- AT91_REG SSC_RNPR; // Receive Next Pointer Register\r
- AT91_REG SSC_RNCR; // Receive Next Counter Register\r
- AT91_REG SSC_TNPR; // Transmit Next Pointer Register\r
- AT91_REG SSC_TNCR; // Transmit Next Counter Register\r
- AT91_REG SSC_PTCR; // PDC Transfer Control Register\r
- AT91_REG SSC_PTSR; // PDC Transfer Status Register\r
-} AT91S_SSC, *AT91PS_SSC;\r
-\r
-// -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- \r
-#define AT91C_SSC_RXEN ((unsigned int) 0x1 << 0) // (SSC) Receive Enable\r
-#define AT91C_SSC_RXDIS ((unsigned int) 0x1 << 1) // (SSC) Receive Disable\r
-#define AT91C_SSC_TXEN ((unsigned int) 0x1 << 8) // (SSC) Transmit Enable\r
-#define AT91C_SSC_TXDIS ((unsigned int) 0x1 << 9) // (SSC) Transmit Disable\r
-#define AT91C_SSC_SWRST ((unsigned int) 0x1 << 15) // (SSC) Software Reset\r
-// -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- \r
-#define AT91C_SSC_CKS ((unsigned int) 0x3 << 0) // (SSC) Receive/Transmit Clock Selection\r
-#define AT91C_SSC_CKS_DIV ((unsigned int) 0x0) // (SSC) Divided Clock\r
-#define AT91C_SSC_CKS_TK ((unsigned int) 0x1) // (SSC) TK Clock signal\r
-#define AT91C_SSC_CKS_RK ((unsigned int) 0x2) // (SSC) RK pin\r
-#define AT91C_SSC_CKO ((unsigned int) 0x7 << 2) // (SSC) Receive/Transmit Clock Output Mode Selection\r
-#define AT91C_SSC_CKO_NONE ((unsigned int) 0x0 << 2) // (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only\r
-#define AT91C_SSC_CKO_CONTINOUS ((unsigned int) 0x1 << 2) // (SSC) Continuous Receive/Transmit Clock RK pin: Output\r
-#define AT91C_SSC_CKO_DATA_TX ((unsigned int) 0x2 << 2) // (SSC) Receive/Transmit Clock only during data transfers RK pin: Output\r
-#define AT91C_SSC_CKI ((unsigned int) 0x1 << 5) // (SSC) Receive/Transmit Clock Inversion\r
-#define AT91C_SSC_START ((unsigned int) 0xF << 8) // (SSC) Receive/Transmit Start Selection\r
-#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.\r
-#define AT91C_SSC_START_TX ((unsigned int) 0x1 << 8) // (SSC) Transmit/Receive start\r
-#define AT91C_SSC_START_LOW_RF ((unsigned int) 0x2 << 8) // (SSC) Detection of a low level on RF input\r
-#define AT91C_SSC_START_HIGH_RF ((unsigned int) 0x3 << 8) // (SSC) Detection of a high level on RF input\r
-#define AT91C_SSC_START_FALL_RF ((unsigned int) 0x4 << 8) // (SSC) Detection of a falling edge on RF input\r
-#define AT91C_SSC_START_RISE_RF ((unsigned int) 0x5 << 8) // (SSC) Detection of a rising edge on RF input\r
-#define AT91C_SSC_START_LEVEL_RF ((unsigned int) 0x6 << 8) // (SSC) Detection of any level change on RF input\r
-#define AT91C_SSC_START_EDGE_RF ((unsigned int) 0x7 << 8) // (SSC) Detection of any edge on RF input\r
-#define AT91C_SSC_START_0 ((unsigned int) 0x8 << 8) // (SSC) Compare 0\r
-#define AT91C_SSC_STTDLY ((unsigned int) 0xFF << 16) // (SSC) Receive/Transmit Start Delay\r
-#define AT91C_SSC_PERIOD ((unsigned int) 0xFF << 24) // (SSC) Receive/Transmit Period Divider Selection\r
-// -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- \r
-#define AT91C_SSC_DATLEN ((unsigned int) 0x1F << 0) // (SSC) Data Length\r
-#define AT91C_SSC_LOOP ((unsigned int) 0x1 << 5) // (SSC) Loop Mode\r
-#define AT91C_SSC_MSBF ((unsigned int) 0x1 << 7) // (SSC) Most Significant Bit First\r
-#define AT91C_SSC_DATNB ((unsigned int) 0xF << 8) // (SSC) Data Number per Frame\r
-#define AT91C_SSC_FSLEN ((unsigned int) 0xF << 16) // (SSC) Receive/Transmit Frame Sync length\r
-#define AT91C_SSC_FSOS ((unsigned int) 0x7 << 20) // (SSC) Receive/Transmit Frame Sync Output Selection\r
-#define AT91C_SSC_FSOS_NONE ((unsigned int) 0x0 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only\r
-#define AT91C_SSC_FSOS_NEGATIVE ((unsigned int) 0x1 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse\r
-#define AT91C_SSC_FSOS_POSITIVE ((unsigned int) 0x2 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse\r
-#define AT91C_SSC_FSOS_LOW ((unsigned int) 0x3 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer\r
-#define AT91C_SSC_FSOS_HIGH ((unsigned int) 0x4 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer\r
-#define AT91C_SSC_FSOS_TOGGLE ((unsigned int) 0x5 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer\r
-#define AT91C_SSC_FSEDGE ((unsigned int) 0x1 << 24) // (SSC) Frame Sync Edge Detection\r
-// -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- \r
-// -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- \r
-#define AT91C_SSC_DATDEF ((unsigned int) 0x1 << 5) // (SSC) Data Default Value\r
-#define AT91C_SSC_FSDEN ((unsigned int) 0x1 << 23) // (SSC) Frame Sync Data Enable\r
-// -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- \r
-#define AT91C_SSC_TXRDY ((unsigned int) 0x1 << 0) // (SSC) Transmit Ready\r
-#define AT91C_SSC_TXEMPTY ((unsigned int) 0x1 << 1) // (SSC) Transmit Empty\r
-#define AT91C_SSC_ENDTX ((unsigned int) 0x1 << 2) // (SSC) End Of Transmission\r
-#define AT91C_SSC_TXBUFE ((unsigned int) 0x1 << 3) // (SSC) Transmit Buffer Empty\r
-#define AT91C_SSC_RXRDY ((unsigned int) 0x1 << 4) // (SSC) Receive Ready\r
-#define AT91C_SSC_OVRUN ((unsigned int) 0x1 << 5) // (SSC) Receive Overrun\r
-#define AT91C_SSC_ENDRX ((unsigned int) 0x1 << 6) // (SSC) End of Reception\r
-#define AT91C_SSC_RXBUFF ((unsigned int) 0x1 << 7) // (SSC) Receive Buffer Full\r
-#define AT91C_SSC_TXSYN ((unsigned int) 0x1 << 10) // (SSC) Transmit Sync\r
-#define AT91C_SSC_RXSYN ((unsigned int) 0x1 << 11) // (SSC) Receive Sync\r
-#define AT91C_SSC_TXENA ((unsigned int) 0x1 << 16) // (SSC) Transmit Enable\r
-#define AT91C_SSC_RXENA ((unsigned int) 0x1 << 17) // (SSC) Receive Enable\r
-// -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- \r
-// -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- \r
-// -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Two-wire Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_TWI {\r
- AT91_REG TWI_CR; // Control Register\r
- AT91_REG TWI_MMR; // Master Mode Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG TWI_IADR; // Internal Address Register\r
- AT91_REG TWI_CWGR; // Clock Waveform Generator Register\r
- AT91_REG Reserved1[3]; // \r
- AT91_REG TWI_SR; // Status Register\r
- AT91_REG TWI_IER; // Interrupt Enable Register\r
- AT91_REG TWI_IDR; // Interrupt Disable Register\r
- AT91_REG TWI_IMR; // Interrupt Mask Register\r
- AT91_REG TWI_RHR; // Receive Holding Register\r
- AT91_REG TWI_THR; // Transmit Holding Register\r
-} AT91S_TWI, *AT91PS_TWI;\r
-\r
-// -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- \r
-#define AT91C_TWI_START ((unsigned int) 0x1 << 0) // (TWI) Send a START Condition\r
-#define AT91C_TWI_STOP ((unsigned int) 0x1 << 1) // (TWI) Send a STOP Condition\r
-#define AT91C_TWI_MSEN ((unsigned int) 0x1 << 2) // (TWI) TWI Master Transfer Enabled\r
-#define AT91C_TWI_MSDIS ((unsigned int) 0x1 << 3) // (TWI) TWI Master Transfer Disabled\r
-#define AT91C_TWI_SWRST ((unsigned int) 0x1 << 7) // (TWI) Software Reset\r
-// -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- \r
-#define AT91C_TWI_IADRSZ ((unsigned int) 0x3 << 8) // (TWI) Internal Device Address Size\r
-#define AT91C_TWI_IADRSZ_NO ((unsigned int) 0x0 << 8) // (TWI) No internal device address\r
-#define AT91C_TWI_IADRSZ_1_BYTE ((unsigned int) 0x1 << 8) // (TWI) One-byte internal device address\r
-#define AT91C_TWI_IADRSZ_2_BYTE ((unsigned int) 0x2 << 8) // (TWI) Two-byte internal device address\r
-#define AT91C_TWI_IADRSZ_3_BYTE ((unsigned int) 0x3 << 8) // (TWI) Three-byte internal device address\r
-#define AT91C_TWI_MREAD ((unsigned int) 0x1 << 12) // (TWI) Master Read Direction\r
-#define AT91C_TWI_DADR ((unsigned int) 0x7F << 16) // (TWI) Device Address\r
-// -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- \r
-#define AT91C_TWI_CLDIV ((unsigned int) 0xFF << 0) // (TWI) Clock Low Divider\r
-#define AT91C_TWI_CHDIV ((unsigned int) 0xFF << 8) // (TWI) Clock High Divider\r
-#define AT91C_TWI_CKDIV ((unsigned int) 0x7 << 16) // (TWI) Clock Divider\r
-// -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- \r
-#define AT91C_TWI_TXCOMP ((unsigned int) 0x1 << 0) // (TWI) Transmission Completed\r
-#define AT91C_TWI_RXRDY ((unsigned int) 0x1 << 1) // (TWI) Receive holding register ReaDY\r
-#define AT91C_TWI_TXRDY ((unsigned int) 0x1 << 2) // (TWI) Transmit holding register ReaDY\r
-#define AT91C_TWI_OVRE ((unsigned int) 0x1 << 6) // (TWI) Overrun Error\r
-#define AT91C_TWI_UNRE ((unsigned int) 0x1 << 7) // (TWI) Underrun Error\r
-#define AT91C_TWI_NACK ((unsigned int) 0x1 << 8) // (TWI) Not Acknowledged\r
-// -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- \r
-// -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- \r
-// -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR PWMC Channel Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_PWMC_CH {\r
- AT91_REG PWMC_CMR; // Channel Mode Register\r
- AT91_REG PWMC_CDTYR; // Channel Duty Cycle Register\r
- AT91_REG PWMC_CPRDR; // Channel Period Register\r
- AT91_REG PWMC_CCNTR; // Channel Counter Register\r
- AT91_REG PWMC_CUPDR; // Channel Update Register\r
- AT91_REG PWMC_Reserved[3]; // Reserved\r
-} AT91S_PWMC_CH, *AT91PS_PWMC_CH;\r
-\r
-// -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- \r
-#define AT91C_PWMC_CPRE ((unsigned int) 0xF << 0) // (PWMC_CH) Channel Pre-scaler : PWMC_CLKx\r
-#define AT91C_PWMC_CPRE_MCK ((unsigned int) 0x0) // (PWMC_CH) \r
-#define AT91C_PWMC_CPRE_MCKA ((unsigned int) 0xB) // (PWMC_CH) \r
-#define AT91C_PWMC_CPRE_MCKB ((unsigned int) 0xC) // (PWMC_CH) \r
-#define AT91C_PWMC_CALG ((unsigned int) 0x1 << 8) // (PWMC_CH) Channel Alignment\r
-#define AT91C_PWMC_CPOL ((unsigned int) 0x1 << 9) // (PWMC_CH) Channel Polarity\r
-#define AT91C_PWMC_CPD ((unsigned int) 0x1 << 10) // (PWMC_CH) Channel Update Period\r
-// -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- \r
-#define AT91C_PWMC_CDTY ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Duty Cycle\r
-// -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- \r
-#define AT91C_PWMC_CPRD ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Period\r
-// -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- \r
-#define AT91C_PWMC_CCNT ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Counter\r
-// -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- \r
-#define AT91C_PWMC_CUPD ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Update\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Pulse Width Modulation Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_PWMC {\r
- AT91_REG PWMC_MR; // PWMC Mode Register\r
- AT91_REG PWMC_ENA; // PWMC Enable Register\r
- AT91_REG PWMC_DIS; // PWMC Disable Register\r
- AT91_REG PWMC_SR; // PWMC Status Register\r
- AT91_REG PWMC_IER; // PWMC Interrupt Enable Register\r
- AT91_REG PWMC_IDR; // PWMC Interrupt Disable Register\r
- AT91_REG PWMC_IMR; // PWMC Interrupt Mask Register\r
- AT91_REG PWMC_ISR; // PWMC Interrupt Status Register\r
- AT91_REG Reserved0[55]; // \r
- AT91_REG PWMC_VR; // PWMC Version Register\r
- AT91_REG Reserved1[64]; // \r
- AT91S_PWMC_CH PWMC_CH[4]; // PWMC Channel\r
-} AT91S_PWMC, *AT91PS_PWMC;\r
-\r
-// -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- \r
-#define AT91C_PWMC_DIVA ((unsigned int) 0xFF << 0) // (PWMC) CLKA divide factor.\r
-#define AT91C_PWMC_PREA ((unsigned int) 0xF << 8) // (PWMC) Divider Input Clock Prescaler A\r
-#define AT91C_PWMC_PREA_MCK ((unsigned int) 0x0 << 8) // (PWMC) \r
-#define AT91C_PWMC_DIVB ((unsigned int) 0xFF << 16) // (PWMC) CLKB divide factor.\r
-#define AT91C_PWMC_PREB ((unsigned int) 0xF << 24) // (PWMC) Divider Input Clock Prescaler B\r
-#define AT91C_PWMC_PREB_MCK ((unsigned int) 0x0 << 24) // (PWMC) \r
-// -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- \r
-#define AT91C_PWMC_CHID0 ((unsigned int) 0x1 << 0) // (PWMC) Channel ID 0\r
-#define AT91C_PWMC_CHID1 ((unsigned int) 0x1 << 1) // (PWMC) Channel ID 1\r
-#define AT91C_PWMC_CHID2 ((unsigned int) 0x1 << 2) // (PWMC) Channel ID 2\r
-#define AT91C_PWMC_CHID3 ((unsigned int) 0x1 << 3) // (PWMC) Channel ID 3\r
-// -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- \r
-// -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- \r
-// -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- \r
-// -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- \r
-// -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- \r
-// -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR USB Device Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_UDP {\r
- AT91_REG UDP_NUM; // Frame Number Register\r
- AT91_REG UDP_GLBSTATE; // Global State Register\r
- AT91_REG UDP_FADDR; // Function Address Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG UDP_IER; // Interrupt Enable Register\r
- AT91_REG UDP_IDR; // Interrupt Disable Register\r
- AT91_REG UDP_IMR; // Interrupt Mask Register\r
- AT91_REG UDP_ISR; // Interrupt Status Register\r
- AT91_REG UDP_ICR; // Interrupt Clear Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG UDP_RSTEP; // Reset Endpoint Register\r
- AT91_REG Reserved2[1]; // \r
- AT91_REG UDP_CSR[6]; // Endpoint Control and Status Register\r
- AT91_REG Reserved3[2]; // \r
- AT91_REG UDP_FDR[6]; // Endpoint FIFO Data Register\r
- AT91_REG Reserved4[3]; // \r
- AT91_REG UDP_TXVC; // Transceiver Control Register\r
-} AT91S_UDP, *AT91PS_UDP;\r
-\r
-// -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- \r
-#define AT91C_UDP_FRM_NUM ((unsigned int) 0x7FF << 0) // (UDP) Frame Number as Defined in the Packet Field Formats\r
-#define AT91C_UDP_FRM_ERR ((unsigned int) 0x1 << 16) // (UDP) Frame Error\r
-#define AT91C_UDP_FRM_OK ((unsigned int) 0x1 << 17) // (UDP) Frame OK\r
-// -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- \r
-#define AT91C_UDP_FADDEN ((unsigned int) 0x1 << 0) // (UDP) Function Address Enable\r
-#define AT91C_UDP_CONFG ((unsigned int) 0x1 << 1) // (UDP) Configured\r
-#define AT91C_UDP_ESR ((unsigned int) 0x1 << 2) // (UDP) Enable Send Resume\r
-#define AT91C_UDP_RSMINPR ((unsigned int) 0x1 << 3) // (UDP) A Resume Has Been Sent to the Host\r
-#define AT91C_UDP_RMWUPE ((unsigned int) 0x1 << 4) // (UDP) Remote Wake Up Enable\r
-// -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- \r
-#define AT91C_UDP_FADD ((unsigned int) 0xFF << 0) // (UDP) Function Address Value\r
-#define AT91C_UDP_FEN ((unsigned int) 0x1 << 8) // (UDP) Function Enable\r
-// -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- \r
-#define AT91C_UDP_EPINT0 ((unsigned int) 0x1 << 0) // (UDP) Endpoint 0 Interrupt\r
-#define AT91C_UDP_EPINT1 ((unsigned int) 0x1 << 1) // (UDP) Endpoint 0 Interrupt\r
-#define AT91C_UDP_EPINT2 ((unsigned int) 0x1 << 2) // (UDP) Endpoint 2 Interrupt\r
-#define AT91C_UDP_EPINT3 ((unsigned int) 0x1 << 3) // (UDP) Endpoint 3 Interrupt\r
-#define AT91C_UDP_EPINT4 ((unsigned int) 0x1 << 4) // (UDP) Endpoint 4 Interrupt\r
-#define AT91C_UDP_EPINT5 ((unsigned int) 0x1 << 5) // (UDP) Endpoint 5 Interrupt\r
-#define AT91C_UDP_RXSUSP ((unsigned int) 0x1 << 8) // (UDP) USB Suspend Interrupt\r
-#define AT91C_UDP_RXRSM ((unsigned int) 0x1 << 9) // (UDP) USB Resume Interrupt\r
-#define AT91C_UDP_EXTRSM ((unsigned int) 0x1 << 10) // (UDP) USB External Resume Interrupt\r
-#define AT91C_UDP_SOFINT ((unsigned int) 0x1 << 11) // (UDP) USB Start Of frame Interrupt\r
-#define AT91C_UDP_WAKEUP ((unsigned int) 0x1 << 13) // (UDP) USB Resume Interrupt\r
-// -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- \r
-// -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- \r
-// -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- \r
-#define AT91C_UDP_ENDBUSRES ((unsigned int) 0x1 << 12) // (UDP) USB End Of Bus Reset Interrupt\r
-// -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- \r
-// -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- \r
-#define AT91C_UDP_EP0 ((unsigned int) 0x1 << 0) // (UDP) Reset Endpoint 0\r
-#define AT91C_UDP_EP1 ((unsigned int) 0x1 << 1) // (UDP) Reset Endpoint 1\r
-#define AT91C_UDP_EP2 ((unsigned int) 0x1 << 2) // (UDP) Reset Endpoint 2\r
-#define AT91C_UDP_EP3 ((unsigned int) 0x1 << 3) // (UDP) Reset Endpoint 3\r
-#define AT91C_UDP_EP4 ((unsigned int) 0x1 << 4) // (UDP) Reset Endpoint 4\r
-#define AT91C_UDP_EP5 ((unsigned int) 0x1 << 5) // (UDP) Reset Endpoint 5\r
-// -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- \r
-#define AT91C_UDP_TXCOMP ((unsigned int) 0x1 << 0) // (UDP) Generates an IN packet with data previously written in the DPR\r
-#define AT91C_UDP_RX_DATA_BK0 ((unsigned int) 0x1 << 1) // (UDP) Receive Data Bank 0\r
-#define AT91C_UDP_RXSETUP ((unsigned int) 0x1 << 2) // (UDP) Sends STALL to the Host (Control endpoints)\r
-#define AT91C_UDP_ISOERROR ((unsigned int) 0x1 << 3) // (UDP) Isochronous error (Isochronous endpoints)\r
-#define AT91C_UDP_TXPKTRDY ((unsigned int) 0x1 << 4) // (UDP) Transmit Packet Ready\r
-#define AT91C_UDP_FORCESTALL ((unsigned int) 0x1 << 5) // (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).\r
-#define AT91C_UDP_RX_DATA_BK1 ((unsigned int) 0x1 << 6) // (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).\r
-#define AT91C_UDP_DIR ((unsigned int) 0x1 << 7) // (UDP) Transfer Direction\r
-#define AT91C_UDP_EPTYPE ((unsigned int) 0x7 << 8) // (UDP) Endpoint type\r
-#define AT91C_UDP_EPTYPE_CTRL ((unsigned int) 0x0 << 8) // (UDP) Control\r
-#define AT91C_UDP_EPTYPE_ISO_OUT ((unsigned int) 0x1 << 8) // (UDP) Isochronous OUT\r
-#define AT91C_UDP_EPTYPE_BULK_OUT ((unsigned int) 0x2 << 8) // (UDP) Bulk OUT\r
-#define AT91C_UDP_EPTYPE_INT_OUT ((unsigned int) 0x3 << 8) // (UDP) Interrupt OUT\r
-#define AT91C_UDP_EPTYPE_ISO_IN ((unsigned int) 0x5 << 8) // (UDP) Isochronous IN\r
-#define AT91C_UDP_EPTYPE_BULK_IN ((unsigned int) 0x6 << 8) // (UDP) Bulk IN\r
-#define AT91C_UDP_EPTYPE_INT_IN ((unsigned int) 0x7 << 8) // (UDP) Interrupt IN\r
-#define AT91C_UDP_DTGLE ((unsigned int) 0x1 << 11) // (UDP) Data Toggle\r
-#define AT91C_UDP_EPEDS ((unsigned int) 0x1 << 15) // (UDP) Endpoint Enable Disable\r
-#define AT91C_UDP_RXBYTECNT ((unsigned int) 0x7FF << 16) // (UDP) Number Of Bytes Available in the FIFO\r
-// -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- \r
-#define AT91C_UDP_TXVDIS ((unsigned int) 0x1 << 8) // (UDP) \r
-#define AT91C_UDP_PUON ((unsigned int) 0x1 << 9) // (UDP) Pull-up ON\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Timer Counter Channel Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_TC {\r
- AT91_REG TC_CCR; // Channel Control Register\r
- AT91_REG TC_CMR; // Channel Mode Register (Capture Mode / Waveform Mode)\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG TC_CV; // Counter Value\r
- AT91_REG TC_RA; // Register A\r
- AT91_REG TC_RB; // Register B\r
- AT91_REG TC_RC; // Register C\r
- AT91_REG TC_SR; // Status Register\r
- AT91_REG TC_IER; // Interrupt Enable Register\r
- AT91_REG TC_IDR; // Interrupt Disable Register\r
- AT91_REG TC_IMR; // Interrupt Mask Register\r
-} AT91S_TC, *AT91PS_TC;\r
-\r
-// -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- \r
-#define AT91C_TC_CLKEN ((unsigned int) 0x1 << 0) // (TC) Counter Clock Enable Command\r
-#define AT91C_TC_CLKDIS ((unsigned int) 0x1 << 1) // (TC) Counter Clock Disable Command\r
-#define AT91C_TC_SWTRG ((unsigned int) 0x1 << 2) // (TC) Software Trigger Command\r
-// -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- \r
-#define AT91C_TC_CLKS ((unsigned int) 0x7 << 0) // (TC) Clock Selection\r
-#define AT91C_TC_CLKS_TIMER_DIV1_CLOCK ((unsigned int) 0x0) // (TC) Clock selected: TIMER_DIV1_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV2_CLOCK ((unsigned int) 0x1) // (TC) Clock selected: TIMER_DIV2_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV3_CLOCK ((unsigned int) 0x2) // (TC) Clock selected: TIMER_DIV3_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV4_CLOCK ((unsigned int) 0x3) // (TC) Clock selected: TIMER_DIV4_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV5_CLOCK ((unsigned int) 0x4) // (TC) Clock selected: TIMER_DIV5_CLOCK\r
-#define AT91C_TC_CLKS_XC0 ((unsigned int) 0x5) // (TC) Clock selected: XC0\r
-#define AT91C_TC_CLKS_XC1 ((unsigned int) 0x6) // (TC) Clock selected: XC1\r
-#define AT91C_TC_CLKS_XC2 ((unsigned int) 0x7) // (TC) Clock selected: XC2\r
-#define AT91C_TC_CLKI ((unsigned int) 0x1 << 3) // (TC) Clock Invert\r
-#define AT91C_TC_BURST ((unsigned int) 0x3 << 4) // (TC) Burst Signal Selection\r
-#define AT91C_TC_BURST_NONE ((unsigned int) 0x0 << 4) // (TC) The clock is not gated by an external signal\r
-#define AT91C_TC_BURST_XC0 ((unsigned int) 0x1 << 4) // (TC) XC0 is ANDed with the selected clock\r
-#define AT91C_TC_BURST_XC1 ((unsigned int) 0x2 << 4) // (TC) XC1 is ANDed with the selected clock\r
-#define AT91C_TC_BURST_XC2 ((unsigned int) 0x3 << 4) // (TC) XC2 is ANDed with the selected clock\r
-#define AT91C_TC_CPCSTOP ((unsigned int) 0x1 << 6) // (TC) Counter Clock Stopped with RC Compare\r
-#define AT91C_TC_LDBSTOP ((unsigned int) 0x1 << 6) // (TC) Counter Clock Stopped with RB Loading\r
-#define AT91C_TC_CPCDIS ((unsigned int) 0x1 << 7) // (TC) Counter Clock Disable with RC Compare\r
-#define AT91C_TC_LDBDIS ((unsigned int) 0x1 << 7) // (TC) Counter Clock Disabled with RB Loading\r
-#define AT91C_TC_ETRGEDG ((unsigned int) 0x3 << 8) // (TC) External Trigger Edge Selection\r
-#define AT91C_TC_ETRGEDG_NONE ((unsigned int) 0x0 << 8) // (TC) Edge: None\r
-#define AT91C_TC_ETRGEDG_RISING ((unsigned int) 0x1 << 8) // (TC) Edge: rising edge\r
-#define AT91C_TC_ETRGEDG_FALLING ((unsigned int) 0x2 << 8) // (TC) Edge: falling edge\r
-#define AT91C_TC_ETRGEDG_BOTH ((unsigned int) 0x3 << 8) // (TC) Edge: each edge\r
-#define AT91C_TC_EEVTEDG ((unsigned int) 0x3 << 8) // (TC) External Event Edge Selection\r
-#define AT91C_TC_EEVTEDG_NONE ((unsigned int) 0x0 << 8) // (TC) Edge: None\r
-#define AT91C_TC_EEVTEDG_RISING ((unsigned int) 0x1 << 8) // (TC) Edge: rising edge\r
-#define AT91C_TC_EEVTEDG_FALLING ((unsigned int) 0x2 << 8) // (TC) Edge: falling edge\r
-#define AT91C_TC_EEVTEDG_BOTH ((unsigned int) 0x3 << 8) // (TC) Edge: each edge\r
-#define AT91C_TC_EEVT ((unsigned int) 0x3 << 10) // (TC) External Event Selection\r
-#define AT91C_TC_EEVT_TIOB ((unsigned int) 0x0 << 10) // (TC) Signal selected as external event: TIOB TIOB direction: input\r
-#define AT91C_TC_EEVT_XC0 ((unsigned int) 0x1 << 10) // (TC) Signal selected as external event: XC0 TIOB direction: output\r
-#define AT91C_TC_EEVT_XC1 ((unsigned int) 0x2 << 10) // (TC) Signal selected as external event: XC1 TIOB direction: output\r
-#define AT91C_TC_EEVT_XC2 ((unsigned int) 0x3 << 10) // (TC) Signal selected as external event: XC2 TIOB direction: output\r
-#define AT91C_TC_ABETRG ((unsigned int) 0x1 << 10) // (TC) TIOA or TIOB External Trigger Selection\r
-#define AT91C_TC_ENETRG ((unsigned int) 0x1 << 12) // (TC) External Event Trigger enable\r
-#define AT91C_TC_WAVESEL ((unsigned int) 0x3 << 13) // (TC) Waveform Selection\r
-#define AT91C_TC_WAVESEL_UP ((unsigned int) 0x0 << 13) // (TC) UP mode without atomatic trigger on RC Compare\r
-#define AT91C_TC_WAVESEL_UPDOWN ((unsigned int) 0x1 << 13) // (TC) UPDOWN mode without automatic trigger on RC Compare\r
-#define AT91C_TC_WAVESEL_UP_AUTO ((unsigned int) 0x2 << 13) // (TC) UP mode with automatic trigger on RC Compare\r
-#define AT91C_TC_WAVESEL_UPDOWN_AUTO ((unsigned int) 0x3 << 13) // (TC) UPDOWN mode with automatic trigger on RC Compare\r
-#define AT91C_TC_CPCTRG ((unsigned int) 0x1 << 14) // (TC) RC Compare Trigger Enable\r
-#define AT91C_TC_WAVE ((unsigned int) 0x1 << 15) // (TC) \r
-#define AT91C_TC_ACPA ((unsigned int) 0x3 << 16) // (TC) RA Compare Effect on TIOA\r
-#define AT91C_TC_ACPA_NONE ((unsigned int) 0x0 << 16) // (TC) Effect: none\r
-#define AT91C_TC_ACPA_SET ((unsigned int) 0x1 << 16) // (TC) Effect: set\r
-#define AT91C_TC_ACPA_CLEAR ((unsigned int) 0x2 << 16) // (TC) Effect: clear\r
-#define AT91C_TC_ACPA_TOGGLE ((unsigned int) 0x3 << 16) // (TC) Effect: toggle\r
-#define AT91C_TC_LDRA ((unsigned int) 0x3 << 16) // (TC) RA Loading Selection\r
-#define AT91C_TC_LDRA_NONE ((unsigned int) 0x0 << 16) // (TC) Edge: None\r
-#define AT91C_TC_LDRA_RISING ((unsigned int) 0x1 << 16) // (TC) Edge: rising edge of TIOA\r
-#define AT91C_TC_LDRA_FALLING ((unsigned int) 0x2 << 16) // (TC) Edge: falling edge of TIOA\r
-#define AT91C_TC_LDRA_BOTH ((unsigned int) 0x3 << 16) // (TC) Edge: each edge of TIOA\r
-#define AT91C_TC_ACPC ((unsigned int) 0x3 << 18) // (TC) RC Compare Effect on TIOA\r
-#define AT91C_TC_ACPC_NONE ((unsigned int) 0x0 << 18) // (TC) Effect: none\r
-#define AT91C_TC_ACPC_SET ((unsigned int) 0x1 << 18) // (TC) Effect: set\r
-#define AT91C_TC_ACPC_CLEAR ((unsigned int) 0x2 << 18) // (TC) Effect: clear\r
-#define AT91C_TC_ACPC_TOGGLE ((unsigned int) 0x3 << 18) // (TC) Effect: toggle\r
-#define AT91C_TC_LDRB ((unsigned int) 0x3 << 18) // (TC) RB Loading Selection\r
-#define AT91C_TC_LDRB_NONE ((unsigned int) 0x0 << 18) // (TC) Edge: None\r
-#define AT91C_TC_LDRB_RISING ((unsigned int) 0x1 << 18) // (TC) Edge: rising edge of TIOA\r
-#define AT91C_TC_LDRB_FALLING ((unsigned int) 0x2 << 18) // (TC) Edge: falling edge of TIOA\r
-#define AT91C_TC_LDRB_BOTH ((unsigned int) 0x3 << 18) // (TC) Edge: each edge of TIOA\r
-#define AT91C_TC_AEEVT ((unsigned int) 0x3 << 20) // (TC) External Event Effect on TIOA\r
-#define AT91C_TC_AEEVT_NONE ((unsigned int) 0x0 << 20) // (TC) Effect: none\r
-#define AT91C_TC_AEEVT_SET ((unsigned int) 0x1 << 20) // (TC) Effect: set\r
-#define AT91C_TC_AEEVT_CLEAR ((unsigned int) 0x2 << 20) // (TC) Effect: clear\r
-#define AT91C_TC_AEEVT_TOGGLE ((unsigned int) 0x3 << 20) // (TC) Effect: toggle\r
-#define AT91C_TC_ASWTRG ((unsigned int) 0x3 << 22) // (TC) Software Trigger Effect on TIOA\r
-#define AT91C_TC_ASWTRG_NONE ((unsigned int) 0x0 << 22) // (TC) Effect: none\r
-#define AT91C_TC_ASWTRG_SET ((unsigned int) 0x1 << 22) // (TC) Effect: set\r
-#define AT91C_TC_ASWTRG_CLEAR ((unsigned int) 0x2 << 22) // (TC) Effect: clear\r
-#define AT91C_TC_ASWTRG_TOGGLE ((unsigned int) 0x3 << 22) // (TC) Effect: toggle\r
-#define AT91C_TC_BCPB ((unsigned int) 0x3 << 24) // (TC) RB Compare Effect on TIOB\r
-#define AT91C_TC_BCPB_NONE ((unsigned int) 0x0 << 24) // (TC) Effect: none\r
-#define AT91C_TC_BCPB_SET ((unsigned int) 0x1 << 24) // (TC) Effect: set\r
-#define AT91C_TC_BCPB_CLEAR ((unsigned int) 0x2 << 24) // (TC) Effect: clear\r
-#define AT91C_TC_BCPB_TOGGLE ((unsigned int) 0x3 << 24) // (TC) Effect: toggle\r
-#define AT91C_TC_BCPC ((unsigned int) 0x3 << 26) // (TC) RC Compare Effect on TIOB\r
-#define AT91C_TC_BCPC_NONE ((unsigned int) 0x0 << 26) // (TC) Effect: none\r
-#define AT91C_TC_BCPC_SET ((unsigned int) 0x1 << 26) // (TC) Effect: set\r
-#define AT91C_TC_BCPC_CLEAR ((unsigned int) 0x2 << 26) // (TC) Effect: clear\r
-#define AT91C_TC_BCPC_TOGGLE ((unsigned int) 0x3 << 26) // (TC) Effect: toggle\r
-#define AT91C_TC_BEEVT ((unsigned int) 0x3 << 28) // (TC) External Event Effect on TIOB\r
-#define AT91C_TC_BEEVT_NONE ((unsigned int) 0x0 << 28) // (TC) Effect: none\r
-#define AT91C_TC_BEEVT_SET ((unsigned int) 0x1 << 28) // (TC) Effect: set\r
-#define AT91C_TC_BEEVT_CLEAR ((unsigned int) 0x2 << 28) // (TC) Effect: clear\r
-#define AT91C_TC_BEEVT_TOGGLE ((unsigned int) 0x3 << 28) // (TC) Effect: toggle\r
-#define AT91C_TC_BSWTRG ((unsigned int) 0x3 << 30) // (TC) Software Trigger Effect on TIOB\r
-#define AT91C_TC_BSWTRG_NONE ((unsigned int) 0x0 << 30) // (TC) Effect: none\r
-#define AT91C_TC_BSWTRG_SET ((unsigned int) 0x1 << 30) // (TC) Effect: set\r
-#define AT91C_TC_BSWTRG_CLEAR ((unsigned int) 0x2 << 30) // (TC) Effect: clear\r
-#define AT91C_TC_BSWTRG_TOGGLE ((unsigned int) 0x3 << 30) // (TC) Effect: toggle\r
-// -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- \r
-#define AT91C_TC_COVFS ((unsigned int) 0x1 << 0) // (TC) Counter Overflow\r
-#define AT91C_TC_LOVRS ((unsigned int) 0x1 << 1) // (TC) Load Overrun\r
-#define AT91C_TC_CPAS ((unsigned int) 0x1 << 2) // (TC) RA Compare\r
-#define AT91C_TC_CPBS ((unsigned int) 0x1 << 3) // (TC) RB Compare\r
-#define AT91C_TC_CPCS ((unsigned int) 0x1 << 4) // (TC) RC Compare\r
-#define AT91C_TC_LDRAS ((unsigned int) 0x1 << 5) // (TC) RA Loading\r
-#define AT91C_TC_LDRBS ((unsigned int) 0x1 << 6) // (TC) RB Loading\r
-#define AT91C_TC_ETRGS ((unsigned int) 0x1 << 7) // (TC) External Trigger\r
-#define AT91C_TC_CLKSTA ((unsigned int) 0x1 << 16) // (TC) Clock Enabling\r
-#define AT91C_TC_MTIOA ((unsigned int) 0x1 << 17) // (TC) TIOA Mirror\r
-#define AT91C_TC_MTIOB ((unsigned int) 0x1 << 18) // (TC) TIOA Mirror\r
-// -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- \r
-// -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- \r
-// -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Timer Counter Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_TCB {\r
- AT91S_TC TCB_TC0; // TC Channel 0\r
- AT91_REG Reserved0[4]; // \r
- AT91S_TC TCB_TC1; // TC Channel 1\r
- AT91_REG Reserved1[4]; // \r
- AT91S_TC TCB_TC2; // TC Channel 2\r
- AT91_REG Reserved2[4]; // \r
- AT91_REG TCB_BCR; // TC Block Control Register\r
- AT91_REG TCB_BMR; // TC Block Mode Register\r
-} AT91S_TCB, *AT91PS_TCB;\r
-\r
-// -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- \r
-#define AT91C_TCB_SYNC ((unsigned int) 0x1 << 0) // (TCB) Synchro Command\r
-// -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- \r
-#define AT91C_TCB_TC0XC0S ((unsigned int) 0x3 << 0) // (TCB) External Clock Signal 0 Selection\r
-#define AT91C_TCB_TC0XC0S_TCLK0 ((unsigned int) 0x0) // (TCB) TCLK0 connected to XC0\r
-#define AT91C_TCB_TC0XC0S_NONE ((unsigned int) 0x1) // (TCB) None signal connected to XC0\r
-#define AT91C_TCB_TC0XC0S_TIOA1 ((unsigned int) 0x2) // (TCB) TIOA1 connected to XC0\r
-#define AT91C_TCB_TC0XC0S_TIOA2 ((unsigned int) 0x3) // (TCB) TIOA2 connected to XC0\r
-#define AT91C_TCB_TC1XC1S ((unsigned int) 0x3 << 2) // (TCB) External Clock Signal 1 Selection\r
-#define AT91C_TCB_TC1XC1S_TCLK1 ((unsigned int) 0x0 << 2) // (TCB) TCLK1 connected to XC1\r
-#define AT91C_TCB_TC1XC1S_NONE ((unsigned int) 0x1 << 2) // (TCB) None signal connected to XC1\r
-#define AT91C_TCB_TC1XC1S_TIOA0 ((unsigned int) 0x2 << 2) // (TCB) TIOA0 connected to XC1\r
-#define AT91C_TCB_TC1XC1S_TIOA2 ((unsigned int) 0x3 << 2) // (TCB) TIOA2 connected to XC1\r
-#define AT91C_TCB_TC2XC2S ((unsigned int) 0x3 << 4) // (TCB) External Clock Signal 2 Selection\r
-#define AT91C_TCB_TC2XC2S_TCLK2 ((unsigned int) 0x0 << 4) // (TCB) TCLK2 connected to XC2\r
-#define AT91C_TCB_TC2XC2S_NONE ((unsigned int) 0x1 << 4) // (TCB) None signal connected to XC2\r
-#define AT91C_TCB_TC2XC2S_TIOA0 ((unsigned int) 0x2 << 4) // (TCB) TIOA0 connected to XC2\r
-#define AT91C_TCB_TC2XC2S_TIOA1 ((unsigned int) 0x3 << 4) // (TCB) TIOA2 connected to XC2\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Control Area Network MailBox Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_CAN_MB {\r
- AT91_REG CAN_MB_MMR; // MailBox Mode Register\r
- AT91_REG CAN_MB_MAM; // MailBox Acceptance Mask Register\r
- AT91_REG CAN_MB_MID; // MailBox ID Register\r
- AT91_REG CAN_MB_MFID; // MailBox Family ID Register\r
- AT91_REG CAN_MB_MSR; // MailBox Status Register\r
- AT91_REG CAN_MB_MDL; // MailBox Data Low Register\r
- AT91_REG CAN_MB_MDH; // MailBox Data High Register\r
- AT91_REG CAN_MB_MCR; // MailBox Control Register\r
-} AT91S_CAN_MB, *AT91PS_CAN_MB;\r
-\r
-// -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- \r
-#define AT91C_CAN_MTIMEMARK ((unsigned int) 0xFFFF << 0) // (CAN_MB) Mailbox Timemark\r
-#define AT91C_CAN_PRIOR ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Priority\r
-#define AT91C_CAN_MOT ((unsigned int) 0x7 << 24) // (CAN_MB) Mailbox Object Type\r
-#define AT91C_CAN_MOT_DIS ((unsigned int) 0x0 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_RX ((unsigned int) 0x1 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_RXOVERWRITE ((unsigned int) 0x2 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_TX ((unsigned int) 0x3 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_CONSUMER ((unsigned int) 0x4 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_PRODUCER ((unsigned int) 0x5 << 24) // (CAN_MB) \r
-// -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- \r
-#define AT91C_CAN_MIDvB ((unsigned int) 0x3FFFF << 0) // (CAN_MB) Complementary bits for identifier in extended mode\r
-#define AT91C_CAN_MIDvA ((unsigned int) 0x7FF << 18) // (CAN_MB) Identifier for standard frame mode\r
-#define AT91C_CAN_MIDE ((unsigned int) 0x1 << 29) // (CAN_MB) Identifier Version\r
-// -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- \r
-// -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- \r
-// -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- \r
-#define AT91C_CAN_MTIMESTAMP ((unsigned int) 0xFFFF << 0) // (CAN_MB) Timer Value\r
-#define AT91C_CAN_MDLC ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Data Length Code\r
-#define AT91C_CAN_MRTR ((unsigned int) 0x1 << 20) // (CAN_MB) Mailbox Remote Transmission Request\r
-#define AT91C_CAN_MABT ((unsigned int) 0x1 << 22) // (CAN_MB) Mailbox Message Abort\r
-#define AT91C_CAN_MRDY ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Ready\r
-#define AT91C_CAN_MMI ((unsigned int) 0x1 << 24) // (CAN_MB) Mailbox Message Ignored\r
-// -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- \r
-// -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- \r
-// -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- \r
-#define AT91C_CAN_MACR ((unsigned int) 0x1 << 22) // (CAN_MB) Abort Request for Mailbox\r
-#define AT91C_CAN_MTCR ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Transfer Command\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Control Area Network Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_CAN {\r
- AT91_REG CAN_MR; // Mode Register\r
- AT91_REG CAN_IER; // Interrupt Enable Register\r
- AT91_REG CAN_IDR; // Interrupt Disable Register\r
- AT91_REG CAN_IMR; // Interrupt Mask Register\r
- AT91_REG CAN_SR; // Status Register\r
- AT91_REG CAN_BR; // Baudrate Register\r
- AT91_REG CAN_TIM; // Timer Register\r
- AT91_REG CAN_TIMESTP; // Time Stamp Register\r
- AT91_REG CAN_ECR; // Error Counter Register\r
- AT91_REG CAN_TCR; // Transfer Command Register\r
- AT91_REG CAN_ACR; // Abort Command Register\r
- AT91_REG Reserved0[52]; // \r
- AT91_REG CAN_VR; // Version Register\r
- AT91_REG Reserved1[64]; // \r
- AT91S_CAN_MB CAN_MB0; // CAN Mailbox 0\r
- AT91S_CAN_MB CAN_MB1; // CAN Mailbox 1\r
- AT91S_CAN_MB CAN_MB2; // CAN Mailbox 2\r
- AT91S_CAN_MB CAN_MB3; // CAN Mailbox 3\r
- AT91S_CAN_MB CAN_MB4; // CAN Mailbox 4\r
- AT91S_CAN_MB CAN_MB5; // CAN Mailbox 5\r
- AT91S_CAN_MB CAN_MB6; // CAN Mailbox 6\r
- AT91S_CAN_MB CAN_MB7; // CAN Mailbox 7\r
- AT91S_CAN_MB CAN_MB8; // CAN Mailbox 8\r
- AT91S_CAN_MB CAN_MB9; // CAN Mailbox 9\r
- AT91S_CAN_MB CAN_MB10; // CAN Mailbox 10\r
- AT91S_CAN_MB CAN_MB11; // CAN Mailbox 11\r
- AT91S_CAN_MB CAN_MB12; // CAN Mailbox 12\r
- AT91S_CAN_MB CAN_MB13; // CAN Mailbox 13\r
- AT91S_CAN_MB CAN_MB14; // CAN Mailbox 14\r
- AT91S_CAN_MB CAN_MB15; // CAN Mailbox 15\r
-} AT91S_CAN, *AT91PS_CAN;\r
-\r
-// -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- \r
-#define AT91C_CAN_CANEN ((unsigned int) 0x1 << 0) // (CAN) CAN Controller Enable\r
-#define AT91C_CAN_LPM ((unsigned int) 0x1 << 1) // (CAN) Disable/Enable Low Power Mode\r
-#define AT91C_CAN_ABM ((unsigned int) 0x1 << 2) // (CAN) Disable/Enable Autobaud/Listen Mode\r
-#define AT91C_CAN_OVL ((unsigned int) 0x1 << 3) // (CAN) Disable/Enable Overload Frame\r
-#define AT91C_CAN_TEOF ((unsigned int) 0x1 << 4) // (CAN) Time Stamp messages at each end of Frame\r
-#define AT91C_CAN_TTM ((unsigned int) 0x1 << 5) // (CAN) Disable/Enable Time Trigger Mode\r
-#define AT91C_CAN_TIMFRZ ((unsigned int) 0x1 << 6) // (CAN) Enable Timer Freeze\r
-#define AT91C_CAN_DRPT ((unsigned int) 0x1 << 7) // (CAN) Disable Repeat\r
-// -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- \r
-#define AT91C_CAN_MB0 ((unsigned int) 0x1 << 0) // (CAN) Mailbox 0 Flag\r
-#define AT91C_CAN_MB1 ((unsigned int) 0x1 << 1) // (CAN) Mailbox 1 Flag\r
-#define AT91C_CAN_MB2 ((unsigned int) 0x1 << 2) // (CAN) Mailbox 2 Flag\r
-#define AT91C_CAN_MB3 ((unsigned int) 0x1 << 3) // (CAN) Mailbox 3 Flag\r
-#define AT91C_CAN_MB4 ((unsigned int) 0x1 << 4) // (CAN) Mailbox 4 Flag\r
-#define AT91C_CAN_MB5 ((unsigned int) 0x1 << 5) // (CAN) Mailbox 5 Flag\r
-#define AT91C_CAN_MB6 ((unsigned int) 0x1 << 6) // (CAN) Mailbox 6 Flag\r
-#define AT91C_CAN_MB7 ((unsigned int) 0x1 << 7) // (CAN) Mailbox 7 Flag\r
-#define AT91C_CAN_MB8 ((unsigned int) 0x1 << 8) // (CAN) Mailbox 8 Flag\r
-#define AT91C_CAN_MB9 ((unsigned int) 0x1 << 9) // (CAN) Mailbox 9 Flag\r
-#define AT91C_CAN_MB10 ((unsigned int) 0x1 << 10) // (CAN) Mailbox 10 Flag\r
-#define AT91C_CAN_MB11 ((unsigned int) 0x1 << 11) // (CAN) Mailbox 11 Flag\r
-#define AT91C_CAN_MB12 ((unsigned int) 0x1 << 12) // (CAN) Mailbox 12 Flag\r
-#define AT91C_CAN_MB13 ((unsigned int) 0x1 << 13) // (CAN) Mailbox 13 Flag\r
-#define AT91C_CAN_MB14 ((unsigned int) 0x1 << 14) // (CAN) Mailbox 14 Flag\r
-#define AT91C_CAN_MB15 ((unsigned int) 0x1 << 15) // (CAN) Mailbox 15 Flag\r
-#define AT91C_CAN_ERRA ((unsigned int) 0x1 << 16) // (CAN) Error Active Mode Flag\r
-#define AT91C_CAN_WARN ((unsigned int) 0x1 << 17) // (CAN) Warning Limit Flag\r
-#define AT91C_CAN_ERRP ((unsigned int) 0x1 << 18) // (CAN) Error Passive Mode Flag\r
-#define AT91C_CAN_BOFF ((unsigned int) 0x1 << 19) // (CAN) Bus Off Mode Flag\r
-#define AT91C_CAN_SLEEP ((unsigned int) 0x1 << 20) // (CAN) Sleep Flag\r
-#define AT91C_CAN_WAKEUP ((unsigned int) 0x1 << 21) // (CAN) Wakeup Flag\r
-#define AT91C_CAN_TOVF ((unsigned int) 0x1 << 22) // (CAN) Timer Overflow Flag\r
-#define AT91C_CAN_TSTP ((unsigned int) 0x1 << 23) // (CAN) Timestamp Flag\r
-#define AT91C_CAN_CERR ((unsigned int) 0x1 << 24) // (CAN) CRC Error\r
-#define AT91C_CAN_SERR ((unsigned int) 0x1 << 25) // (CAN) Stuffing Error\r
-#define AT91C_CAN_AERR ((unsigned int) 0x1 << 26) // (CAN) Acknowledgment Error\r
-#define AT91C_CAN_FERR ((unsigned int) 0x1 << 27) // (CAN) Form Error\r
-#define AT91C_CAN_BERR ((unsigned int) 0x1 << 28) // (CAN) Bit Error\r
-// -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- \r
-// -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- \r
-// -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- \r
-#define AT91C_CAN_RBSY ((unsigned int) 0x1 << 29) // (CAN) Receiver Busy\r
-#define AT91C_CAN_TBSY ((unsigned int) 0x1 << 30) // (CAN) Transmitter Busy\r
-#define AT91C_CAN_OVLY ((unsigned int) 0x1 << 31) // (CAN) Overload Busy\r
-// -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- \r
-#define AT91C_CAN_PHASE2 ((unsigned int) 0x7 << 0) // (CAN) Phase 2 segment\r
-#define AT91C_CAN_PHASE1 ((unsigned int) 0x7 << 4) // (CAN) Phase 1 segment\r
-#define AT91C_CAN_PROPAG ((unsigned int) 0x7 << 8) // (CAN) Programmation time segment\r
-#define AT91C_CAN_SYNC ((unsigned int) 0x3 << 12) // (CAN) Re-synchronization jump width segment\r
-#define AT91C_CAN_BRP ((unsigned int) 0x7F << 16) // (CAN) Baudrate Prescaler\r
-#define AT91C_CAN_SMP ((unsigned int) 0x1 << 24) // (CAN) Sampling mode\r
-// -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- \r
-#define AT91C_CAN_TIMER ((unsigned int) 0xFFFF << 0) // (CAN) Timer field\r
-// -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- \r
-// -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- \r
-#define AT91C_CAN_REC ((unsigned int) 0xFF << 0) // (CAN) Receive Error Counter\r
-#define AT91C_CAN_TEC ((unsigned int) 0xFF << 16) // (CAN) Transmit Error Counter\r
-// -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- \r
-#define AT91C_CAN_TIMRST ((unsigned int) 0x1 << 31) // (CAN) Timer Reset Field\r
-// -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Ethernet MAC 10/100\r
-// *****************************************************************************\r
-typedef struct _AT91S_EMAC {\r
- AT91_REG EMAC_NCR; // Network Control Register\r
- AT91_REG EMAC_NCFGR; // Network Configuration Register\r
- AT91_REG EMAC_NSR; // Network Status Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG EMAC_TSR; // Transmit Status Register\r
- AT91_REG EMAC_RBQP; // Receive Buffer Queue Pointer\r
- AT91_REG EMAC_TBQP; // Transmit Buffer Queue Pointer\r
- AT91_REG EMAC_RSR; // Receive Status Register\r
- AT91_REG EMAC_ISR; // Interrupt Status Register\r
- AT91_REG EMAC_IER; // Interrupt Enable Register\r
- AT91_REG EMAC_IDR; // Interrupt Disable Register\r
- AT91_REG EMAC_IMR; // Interrupt Mask Register\r
- AT91_REG EMAC_MAN; // PHY Maintenance Register\r
- AT91_REG EMAC_PTR; // Pause Time Register\r
- AT91_REG EMAC_PFR; // Pause Frames received Register\r
- AT91_REG EMAC_FTO; // Frames Transmitted OK Register\r
- AT91_REG EMAC_SCF; // Single Collision Frame Register\r
- AT91_REG EMAC_MCF; // Multiple Collision Frame Register\r
- AT91_REG EMAC_FRO; // Frames Received OK Register\r
- AT91_REG EMAC_FCSE; // Frame Check Sequence Error Register\r
- AT91_REG EMAC_ALE; // Alignment Error Register\r
- AT91_REG EMAC_DTF; // Deferred Transmission Frame Register\r
- AT91_REG EMAC_LCOL; // Late Collision Register\r
- AT91_REG EMAC_ECOL; // Excessive Collision Register\r
- AT91_REG EMAC_TUND; // Transmit Underrun Error Register\r
- AT91_REG EMAC_CSE; // Carrier Sense Error Register\r
- AT91_REG EMAC_RRE; // Receive Ressource Error Register\r
- AT91_REG EMAC_ROV; // Receive Overrun Errors Register\r
- AT91_REG EMAC_RSE; // Receive Symbol Errors Register\r
- AT91_REG EMAC_ELE; // Excessive Length Errors Register\r
- AT91_REG EMAC_RJA; // Receive Jabbers Register\r
- AT91_REG EMAC_USF; // Undersize Frames Register\r
- AT91_REG EMAC_STE; // SQE Test Error Register\r
- AT91_REG EMAC_RLE; // Receive Length Field Mismatch Register\r
- AT91_REG EMAC_TPF; // Transmitted Pause Frames Register\r
- AT91_REG EMAC_HRB; // Hash Address Bottom[31:0]\r
- AT91_REG EMAC_HRT; // Hash Address Top[63:32]\r
- AT91_REG EMAC_SA1L; // Specific Address 1 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA1H; // Specific Address 1 Top, Last 2 bytes\r
- AT91_REG EMAC_SA2L; // Specific Address 2 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA2H; // Specific Address 2 Top, Last 2 bytes\r
- AT91_REG EMAC_SA3L; // Specific Address 3 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA3H; // Specific Address 3 Top, Last 2 bytes\r
- AT91_REG EMAC_SA4L; // Specific Address 4 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA4H; // Specific Address 4 Top, Last 2 bytes\r
- AT91_REG EMAC_TID; // Type ID Checking Register\r
- AT91_REG EMAC_TPQ; // Transmit Pause Quantum Register\r
- AT91_REG EMAC_USRIO; // USER Input/Output Register\r
- AT91_REG EMAC_WOL; // Wake On LAN Register\r
- AT91_REG Reserved1[13]; // \r
- AT91_REG EMAC_REV; // Revision Register\r
-} AT91S_EMAC, *AT91PS_EMAC;\r
-\r
-// -------- EMAC_NCR : (EMAC Offset: 0x0) -------- \r
-#define AT91C_EMAC_LB ((unsigned int) 0x1 << 0) // (EMAC) Loopback. Optional. When set, loopback signal is at high level.\r
-#define AT91C_EMAC_LLB ((unsigned int) 0x1 << 1) // (EMAC) Loopback local. \r
-#define AT91C_EMAC_RE ((unsigned int) 0x1 << 2) // (EMAC) Receive enable. \r
-#define AT91C_EMAC_TE ((unsigned int) 0x1 << 3) // (EMAC) Transmit enable. \r
-#define AT91C_EMAC_MPE ((unsigned int) 0x1 << 4) // (EMAC) Management port enable. \r
-#define AT91C_EMAC_CLRSTAT ((unsigned int) 0x1 << 5) // (EMAC) Clear statistics registers. \r
-#define AT91C_EMAC_INCSTAT ((unsigned int) 0x1 << 6) // (EMAC) Increment statistics registers. \r
-#define AT91C_EMAC_WESTAT ((unsigned int) 0x1 << 7) // (EMAC) Write enable for statistics registers. \r
-#define AT91C_EMAC_BP ((unsigned int) 0x1 << 8) // (EMAC) Back pressure. \r
-#define AT91C_EMAC_TSTART ((unsigned int) 0x1 << 9) // (EMAC) Start Transmission. \r
-#define AT91C_EMAC_THALT ((unsigned int) 0x1 << 10) // (EMAC) Transmission Halt. \r
-#define AT91C_EMAC_TPFR ((unsigned int) 0x1 << 11) // (EMAC) Transmit pause frame \r
-#define AT91C_EMAC_TZQ ((unsigned int) 0x1 << 12) // (EMAC) Transmit zero quantum pause frame\r
-// -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- \r
-#define AT91C_EMAC_SPD ((unsigned int) 0x1 << 0) // (EMAC) Speed. \r
-#define AT91C_EMAC_FD ((unsigned int) 0x1 << 1) // (EMAC) Full duplex. \r
-#define AT91C_EMAC_JFRAME ((unsigned int) 0x1 << 3) // (EMAC) Jumbo Frames. \r
-#define AT91C_EMAC_CAF ((unsigned int) 0x1 << 4) // (EMAC) Copy all frames. \r
-#define AT91C_EMAC_NBC ((unsigned int) 0x1 << 5) // (EMAC) No broadcast. \r
-#define AT91C_EMAC_MTI ((unsigned int) 0x1 << 6) // (EMAC) Multicast hash event enable\r
-#define AT91C_EMAC_UNI ((unsigned int) 0x1 << 7) // (EMAC) Unicast hash enable. \r
-#define AT91C_EMAC_BIG ((unsigned int) 0x1 << 8) // (EMAC) Receive 1522 bytes. \r
-#define AT91C_EMAC_EAE ((unsigned int) 0x1 << 9) // (EMAC) External address match enable. \r
-#define AT91C_EMAC_CLK ((unsigned int) 0x3 << 10) // (EMAC) \r
-#define AT91C_EMAC_CLK_HCLK_8 ((unsigned int) 0x0 << 10) // (EMAC) HCLK divided by 8\r
-#define AT91C_EMAC_CLK_HCLK_16 ((unsigned int) 0x1 << 10) // (EMAC) HCLK divided by 16\r
-#define AT91C_EMAC_CLK_HCLK_32 ((unsigned int) 0x2 << 10) // (EMAC) HCLK divided by 32\r
-#define AT91C_EMAC_CLK_HCLK_64 ((unsigned int) 0x3 << 10) // (EMAC) HCLK divided by 64\r
-#define AT91C_EMAC_RTY ((unsigned int) 0x1 << 12) // (EMAC) \r
-#define AT91C_EMAC_PAE ((unsigned int) 0x1 << 13) // (EMAC) \r
-#define AT91C_EMAC_RBOF ((unsigned int) 0x3 << 14) // (EMAC) \r
-#define AT91C_EMAC_RBOF_OFFSET_0 ((unsigned int) 0x0 << 14) // (EMAC) no offset from start of receive buffer\r
-#define AT91C_EMAC_RBOF_OFFSET_1 ((unsigned int) 0x1 << 14) // (EMAC) one byte offset from start of receive buffer\r
-#define AT91C_EMAC_RBOF_OFFSET_2 ((unsigned int) 0x2 << 14) // (EMAC) two bytes offset from start of receive buffer\r
-#define AT91C_EMAC_RBOF_OFFSET_3 ((unsigned int) 0x3 << 14) // (EMAC) three bytes offset from start of receive buffer\r
-#define AT91C_EMAC_RLCE ((unsigned int) 0x1 << 16) // (EMAC) Receive Length field Checking Enable\r
-#define AT91C_EMAC_DRFCS ((unsigned int) 0x1 << 17) // (EMAC) Discard Receive FCS\r
-#define AT91C_EMAC_EFRHD ((unsigned int) 0x1 << 18) // (EMAC) \r
-#define AT91C_EMAC_IRXFCS ((unsigned int) 0x1 << 19) // (EMAC) Ignore RX FCS\r
-// -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- \r
-#define AT91C_EMAC_LINKR ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_MDIO ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_IDLE ((unsigned int) 0x1 << 2) // (EMAC) \r
-// -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- \r
-#define AT91C_EMAC_UBR ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_COL ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_RLES ((unsigned int) 0x1 << 2) // (EMAC) \r
-#define AT91C_EMAC_TGO ((unsigned int) 0x1 << 3) // (EMAC) Transmit Go\r
-#define AT91C_EMAC_BEX ((unsigned int) 0x1 << 4) // (EMAC) Buffers exhausted mid frame\r
-#define AT91C_EMAC_COMP ((unsigned int) 0x1 << 5) // (EMAC) \r
-#define AT91C_EMAC_UND ((unsigned int) 0x1 << 6) // (EMAC) \r
-// -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- \r
-#define AT91C_EMAC_BNA ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_REC ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_OVR ((unsigned int) 0x1 << 2) // (EMAC) \r
-// -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- \r
-#define AT91C_EMAC_MFD ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_RCOMP ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_RXUBR ((unsigned int) 0x1 << 2) // (EMAC) \r
-#define AT91C_EMAC_TXUBR ((unsigned int) 0x1 << 3) // (EMAC) \r
-#define AT91C_EMAC_TUNDR ((unsigned int) 0x1 << 4) // (EMAC) \r
-#define AT91C_EMAC_RLEX ((unsigned int) 0x1 << 5) // (EMAC) \r
-#define AT91C_EMAC_TXERR ((unsigned int) 0x1 << 6) // (EMAC) \r
-#define AT91C_EMAC_TCOMP ((unsigned int) 0x1 << 7) // (EMAC) \r
-#define AT91C_EMAC_LINK ((unsigned int) 0x1 << 9) // (EMAC) \r
-#define AT91C_EMAC_ROVR ((unsigned int) 0x1 << 10) // (EMAC) \r
-#define AT91C_EMAC_HRESP ((unsigned int) 0x1 << 11) // (EMAC) \r
-#define AT91C_EMAC_PFRE ((unsigned int) 0x1 << 12) // (EMAC) \r
-#define AT91C_EMAC_PTZ ((unsigned int) 0x1 << 13) // (EMAC) \r
-// -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- \r
-// -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- \r
-// -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- \r
-// -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- \r
-#define AT91C_EMAC_DATA ((unsigned int) 0xFFFF << 0) // (EMAC) \r
-#define AT91C_EMAC_CODE ((unsigned int) 0x3 << 16) // (EMAC) \r
-#define AT91C_EMAC_REGA ((unsigned int) 0x1F << 18) // (EMAC) \r
-#define AT91C_EMAC_PHYA ((unsigned int) 0x1F << 23) // (EMAC) \r
-#define AT91C_EMAC_RW ((unsigned int) 0x3 << 28) // (EMAC) \r
-#define AT91C_EMAC_SOF ((unsigned int) 0x3 << 30) // (EMAC) \r
-// -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- \r
-#define AT91C_EMAC_RMII ((unsigned int) 0x1 << 0) // (EMAC) Reduce MII\r
-// -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- \r
-#define AT91C_EMAC_IP ((unsigned int) 0xFFFF << 0) // (EMAC) ARP request IP address\r
-#define AT91C_EMAC_MAG ((unsigned int) 0x1 << 16) // (EMAC) Magic packet event enable\r
-#define AT91C_EMAC_ARP ((unsigned int) 0x1 << 17) // (EMAC) ARP request event enable\r
-#define AT91C_EMAC_SA1 ((unsigned int) 0x1 << 18) // (EMAC) Specific address register 1 event enable\r
-// -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- \r
-#define AT91C_EMAC_REVREF ((unsigned int) 0xFFFF << 0) // (EMAC) \r
-#define AT91C_EMAC_PARTREF ((unsigned int) 0xFFFF << 16) // (EMAC) \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Analog to Digital Convertor\r
-// *****************************************************************************\r
-typedef struct _AT91S_ADC {\r
- AT91_REG ADC_CR; // ADC Control Register\r
- AT91_REG ADC_MR; // ADC Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG ADC_CHER; // ADC Channel Enable Register\r
- AT91_REG ADC_CHDR; // ADC Channel Disable Register\r
- AT91_REG ADC_CHSR; // ADC Channel Status Register\r
- AT91_REG ADC_SR; // ADC Status Register\r
- AT91_REG ADC_LCDR; // ADC Last Converted Data Register\r
- AT91_REG ADC_IER; // ADC Interrupt Enable Register\r
- AT91_REG ADC_IDR; // ADC Interrupt Disable Register\r
- AT91_REG ADC_IMR; // ADC Interrupt Mask Register\r
- AT91_REG ADC_CDR0; // ADC Channel Data Register 0\r
- AT91_REG ADC_CDR1; // ADC Channel Data Register 1\r
- AT91_REG ADC_CDR2; // ADC Channel Data Register 2\r
- AT91_REG ADC_CDR3; // ADC Channel Data Register 3\r
- AT91_REG ADC_CDR4; // ADC Channel Data Register 4\r
- AT91_REG ADC_CDR5; // ADC Channel Data Register 5\r
- AT91_REG ADC_CDR6; // ADC Channel Data Register 6\r
- AT91_REG ADC_CDR7; // ADC Channel Data Register 7\r
- AT91_REG Reserved1[44]; // \r
- AT91_REG ADC_RPR; // Receive Pointer Register\r
- AT91_REG ADC_RCR; // Receive Counter Register\r
- AT91_REG ADC_TPR; // Transmit Pointer Register\r
- AT91_REG ADC_TCR; // Transmit Counter Register\r
- AT91_REG ADC_RNPR; // Receive Next Pointer Register\r
- AT91_REG ADC_RNCR; // Receive Next Counter Register\r
- AT91_REG ADC_TNPR; // Transmit Next Pointer Register\r
- AT91_REG ADC_TNCR; // Transmit Next Counter Register\r
- AT91_REG ADC_PTCR; // PDC Transfer Control Register\r
- AT91_REG ADC_PTSR; // PDC Transfer Status Register\r
-} AT91S_ADC, *AT91PS_ADC;\r
-\r
-// -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- \r
-#define AT91C_ADC_SWRST ((unsigned int) 0x1 << 0) // (ADC) Software Reset\r
-#define AT91C_ADC_START ((unsigned int) 0x1 << 1) // (ADC) Start Conversion\r
-// -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- \r
-#define AT91C_ADC_TRGEN ((unsigned int) 0x1 << 0) // (ADC) Trigger Enable\r
-#define AT91C_ADC_TRGEN_DIS ((unsigned int) 0x0) // (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software\r
-#define AT91C_ADC_TRGEN_EN ((unsigned int) 0x1) // (ADC) Hardware trigger selected by TRGSEL field is enabled.\r
-#define AT91C_ADC_TRGSEL ((unsigned int) 0x7 << 1) // (ADC) Trigger Selection\r
-#define AT91C_ADC_TRGSEL_TIOA0 ((unsigned int) 0x0 << 1) // (ADC) Selected TRGSEL = TIAO0\r
-#define AT91C_ADC_TRGSEL_TIOA1 ((unsigned int) 0x1 << 1) // (ADC) Selected TRGSEL = TIAO1\r
-#define AT91C_ADC_TRGSEL_TIOA2 ((unsigned int) 0x2 << 1) // (ADC) Selected TRGSEL = TIAO2\r
-#define AT91C_ADC_TRGSEL_TIOA3 ((unsigned int) 0x3 << 1) // (ADC) Selected TRGSEL = TIAO3\r
-#define AT91C_ADC_TRGSEL_TIOA4 ((unsigned int) 0x4 << 1) // (ADC) Selected TRGSEL = TIAO4\r
-#define AT91C_ADC_TRGSEL_TIOA5 ((unsigned int) 0x5 << 1) // (ADC) Selected TRGSEL = TIAO5\r
-#define AT91C_ADC_TRGSEL_EXT ((unsigned int) 0x6 << 1) // (ADC) Selected TRGSEL = External Trigger\r
-#define AT91C_ADC_LOWRES ((unsigned int) 0x1 << 4) // (ADC) Resolution.\r
-#define AT91C_ADC_LOWRES_10_BIT ((unsigned int) 0x0 << 4) // (ADC) 10-bit resolution\r
-#define AT91C_ADC_LOWRES_8_BIT ((unsigned int) 0x1 << 4) // (ADC) 8-bit resolution\r
-#define AT91C_ADC_SLEEP ((unsigned int) 0x1 << 5) // (ADC) Sleep Mode\r
-#define AT91C_ADC_SLEEP_NORMAL_MODE ((unsigned int) 0x0 << 5) // (ADC) Normal Mode\r
-#define AT91C_ADC_SLEEP_MODE ((unsigned int) 0x1 << 5) // (ADC) Sleep Mode\r
-#define AT91C_ADC_PRESCAL ((unsigned int) 0x3F << 8) // (ADC) Prescaler rate selection\r
-#define AT91C_ADC_STARTUP ((unsigned int) 0x1F << 16) // (ADC) Startup Time\r
-#define AT91C_ADC_SHTIM ((unsigned int) 0xF << 24) // (ADC) Sample & Hold Time\r
-// -------- ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- \r
-#define AT91C_ADC_CH0 ((unsigned int) 0x1 << 0) // (ADC) Channel 0\r
-#define AT91C_ADC_CH1 ((unsigned int) 0x1 << 1) // (ADC) Channel 1\r
-#define AT91C_ADC_CH2 ((unsigned int) 0x1 << 2) // (ADC) Channel 2\r
-#define AT91C_ADC_CH3 ((unsigned int) 0x1 << 3) // (ADC) Channel 3\r
-#define AT91C_ADC_CH4 ((unsigned int) 0x1 << 4) // (ADC) Channel 4\r
-#define AT91C_ADC_CH5 ((unsigned int) 0x1 << 5) // (ADC) Channel 5\r
-#define AT91C_ADC_CH6 ((unsigned int) 0x1 << 6) // (ADC) Channel 6\r
-#define AT91C_ADC_CH7 ((unsigned int) 0x1 << 7) // (ADC) Channel 7\r
-// -------- ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- \r
-// -------- ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- \r
-// -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- \r
-#define AT91C_ADC_EOC0 ((unsigned int) 0x1 << 0) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC1 ((unsigned int) 0x1 << 1) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC2 ((unsigned int) 0x1 << 2) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC3 ((unsigned int) 0x1 << 3) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC4 ((unsigned int) 0x1 << 4) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC5 ((unsigned int) 0x1 << 5) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC6 ((unsigned int) 0x1 << 6) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC7 ((unsigned int) 0x1 << 7) // (ADC) End of Conversion\r
-#define AT91C_ADC_OVRE0 ((unsigned int) 0x1 << 8) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE1 ((unsigned int) 0x1 << 9) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE2 ((unsigned int) 0x1 << 10) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE3 ((unsigned int) 0x1 << 11) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE4 ((unsigned int) 0x1 << 12) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE5 ((unsigned int) 0x1 << 13) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE6 ((unsigned int) 0x1 << 14) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE7 ((unsigned int) 0x1 << 15) // (ADC) Overrun Error\r
-#define AT91C_ADC_DRDY ((unsigned int) 0x1 << 16) // (ADC) Data Ready\r
-#define AT91C_ADC_GOVRE ((unsigned int) 0x1 << 17) // (ADC) General Overrun\r
-#define AT91C_ADC_ENDRX ((unsigned int) 0x1 << 18) // (ADC) End of Receiver Transfer\r
-#define AT91C_ADC_RXBUFF ((unsigned int) 0x1 << 19) // (ADC) RXBUFF Interrupt\r
-// -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- \r
-#define AT91C_ADC_LDATA ((unsigned int) 0x3FF << 0) // (ADC) Last Data Converted\r
-// -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- \r
-// -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- \r
-// -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- \r
-// -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- \r
-#define AT91C_ADC_DATA ((unsigned int) 0x3FF << 0) // (ADC) Converted Data\r
-// -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- \r
-// -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- \r
-// -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- \r
-// -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- \r
-// -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- \r
-// -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- \r
-// -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Advanced Encryption Standard\r
-// *****************************************************************************\r
-typedef struct _AT91S_AES {\r
- AT91_REG AES_CR; // Control Register\r
- AT91_REG AES_MR; // Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG AES_IER; // Interrupt Enable Register\r
- AT91_REG AES_IDR; // Interrupt Disable Register\r
- AT91_REG AES_IMR; // Interrupt Mask Register\r
- AT91_REG AES_ISR; // Interrupt Status Register\r
- AT91_REG AES_KEYWxR[4]; // Key Word x Register\r
- AT91_REG Reserved1[4]; // \r
- AT91_REG AES_IDATAxR[4]; // Input Data x Register\r
- AT91_REG AES_ODATAxR[4]; // Output Data x Register\r
- AT91_REG AES_IVxR[4]; // Initialization Vector x Register\r
- AT91_REG Reserved2[35]; // \r
- AT91_REG AES_VR; // AES Version Register\r
- AT91_REG AES_RPR; // Receive Pointer Register\r
- AT91_REG AES_RCR; // Receive Counter Register\r
- AT91_REG AES_TPR; // Transmit Pointer Register\r
- AT91_REG AES_TCR; // Transmit Counter Register\r
- AT91_REG AES_RNPR; // Receive Next Pointer Register\r
- AT91_REG AES_RNCR; // Receive Next Counter Register\r
- AT91_REG AES_TNPR; // Transmit Next Pointer Register\r
- AT91_REG AES_TNCR; // Transmit Next Counter Register\r
- AT91_REG AES_PTCR; // PDC Transfer Control Register\r
- AT91_REG AES_PTSR; // PDC Transfer Status Register\r
-} AT91S_AES, *AT91PS_AES;\r
-\r
-// -------- AES_CR : (AES Offset: 0x0) Control Register -------- \r
-#define AT91C_AES_START ((unsigned int) 0x1 << 0) // (AES) Starts Processing\r
-#define AT91C_AES_SWRST ((unsigned int) 0x1 << 8) // (AES) Software Reset\r
-#define AT91C_AES_LOADSEED ((unsigned int) 0x1 << 16) // (AES) Random Number Generator Seed Loading\r
-// -------- AES_MR : (AES Offset: 0x4) Mode Register -------- \r
-#define AT91C_AES_CIPHER ((unsigned int) 0x1 << 0) // (AES) Processing Mode\r
-#define AT91C_AES_PROCDLY ((unsigned int) 0xF << 4) // (AES) Processing Delay\r
-#define AT91C_AES_SMOD ((unsigned int) 0x3 << 8) // (AES) Start Mode\r
-#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.\r
-#define AT91C_AES_SMOD_AUTO ((unsigned int) 0x1 << 8) // (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).\r
-#define AT91C_AES_SMOD_PDC ((unsigned int) 0x2 << 8) // (AES) PDC Mode (cf datasheet).\r
-#define AT91C_AES_OPMOD ((unsigned int) 0x7 << 12) // (AES) Operation Mode\r
-#define AT91C_AES_OPMOD_ECB ((unsigned int) 0x0 << 12) // (AES) ECB Electronic CodeBook mode.\r
-#define AT91C_AES_OPMOD_CBC ((unsigned int) 0x1 << 12) // (AES) CBC Cipher Block Chaining mode.\r
-#define AT91C_AES_OPMOD_OFB ((unsigned int) 0x2 << 12) // (AES) OFB Output Feedback mode.\r
-#define AT91C_AES_OPMOD_CFB ((unsigned int) 0x3 << 12) // (AES) CFB Cipher Feedback mode.\r
-#define AT91C_AES_OPMOD_CTR ((unsigned int) 0x4 << 12) // (AES) CTR Counter mode.\r
-#define AT91C_AES_LOD ((unsigned int) 0x1 << 15) // (AES) Last Output Data Mode\r
-#define AT91C_AES_CFBS ((unsigned int) 0x7 << 16) // (AES) Cipher Feedback Data Size\r
-#define AT91C_AES_CFBS_128_BIT ((unsigned int) 0x0 << 16) // (AES) 128-bit.\r
-#define AT91C_AES_CFBS_64_BIT ((unsigned int) 0x1 << 16) // (AES) 64-bit.\r
-#define AT91C_AES_CFBS_32_BIT ((unsigned int) 0x2 << 16) // (AES) 32-bit.\r
-#define AT91C_AES_CFBS_16_BIT ((unsigned int) 0x3 << 16) // (AES) 16-bit.\r
-#define AT91C_AES_CFBS_8_BIT ((unsigned int) 0x4 << 16) // (AES) 8-bit.\r
-#define AT91C_AES_CKEY ((unsigned int) 0xF << 20) // (AES) Countermeasure Key\r
-#define AT91C_AES_CTYPE ((unsigned int) 0x1F << 24) // (AES) Countermeasure Type\r
-#define AT91C_AES_CTYPE_TYPE1_EN ((unsigned int) 0x1 << 24) // (AES) Countermeasure type 1 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE2_EN ((unsigned int) 0x2 << 24) // (AES) Countermeasure type 2 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE3_EN ((unsigned int) 0x4 << 24) // (AES) Countermeasure type 3 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE4_EN ((unsigned int) 0x8 << 24) // (AES) Countermeasure type 4 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE5_EN ((unsigned int) 0x10 << 24) // (AES) Countermeasure type 5 is enabled.\r
-// -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- \r
-#define AT91C_AES_DATRDY ((unsigned int) 0x1 << 0) // (AES) DATRDY\r
-#define AT91C_AES_ENDRX ((unsigned int) 0x1 << 1) // (AES) PDC Read Buffer End\r
-#define AT91C_AES_ENDTX ((unsigned int) 0x1 << 2) // (AES) PDC Write Buffer End\r
-#define AT91C_AES_RXBUFF ((unsigned int) 0x1 << 3) // (AES) PDC Read Buffer Full\r
-#define AT91C_AES_TXBUFE ((unsigned int) 0x1 << 4) // (AES) PDC Write Buffer Empty\r
-#define AT91C_AES_URAD ((unsigned int) 0x1 << 8) // (AES) Unspecified Register Access Detection\r
-// -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- \r
-// -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- \r
-// -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- \r
-#define AT91C_AES_URAT ((unsigned int) 0x7 << 12) // (AES) Unspecified Register Access Type Status\r
-#define AT91C_AES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (AES) Input data register written during the data processing in PDC mode.\r
-#define AT91C_AES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (AES) Output data register read during the data processing.\r
-#define AT91C_AES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (AES) Mode register written during the data processing.\r
-#define AT91C_AES_URAT_OUT_DAT_READ_SUBKEY ((unsigned int) 0x3 << 12) // (AES) Output data register read during the sub-keys generation.\r
-#define AT91C_AES_URAT_MODEREG_WRITE_SUBKEY ((unsigned int) 0x4 << 12) // (AES) Mode register written during the sub-keys generation.\r
-#define AT91C_AES_URAT_WO_REG_READ ((unsigned int) 0x5 << 12) // (AES) Write-only register read access.\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Triple Data Encryption Standard\r
-// *****************************************************************************\r
-typedef struct _AT91S_TDES {\r
- AT91_REG TDES_CR; // Control Register\r
- AT91_REG TDES_MR; // Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG TDES_IER; // Interrupt Enable Register\r
- AT91_REG TDES_IDR; // Interrupt Disable Register\r
- AT91_REG TDES_IMR; // Interrupt Mask Register\r
- AT91_REG TDES_ISR; // Interrupt Status Register\r
- AT91_REG TDES_KEY1WxR[2]; // Key 1 Word x Register\r
- AT91_REG TDES_KEY2WxR[2]; // Key 2 Word x Register\r
- AT91_REG TDES_KEY3WxR[2]; // Key 3 Word x Register\r
- AT91_REG Reserved1[2]; // \r
- AT91_REG TDES_IDATAxR[2]; // Input Data x Register\r
- AT91_REG Reserved2[2]; // \r
- AT91_REG TDES_ODATAxR[2]; // Output Data x Register\r
- AT91_REG Reserved3[2]; // \r
- AT91_REG TDES_IVxR[2]; // Initialization Vector x Register\r
- AT91_REG Reserved4[37]; // \r
- AT91_REG TDES_VR; // TDES Version Register\r
- AT91_REG TDES_RPR; // Receive Pointer Register\r
- AT91_REG TDES_RCR; // Receive Counter Register\r
- AT91_REG TDES_TPR; // Transmit Pointer Register\r
- AT91_REG TDES_TCR; // Transmit Counter Register\r
- AT91_REG TDES_RNPR; // Receive Next Pointer Register\r
- AT91_REG TDES_RNCR; // Receive Next Counter Register\r
- AT91_REG TDES_TNPR; // Transmit Next Pointer Register\r
- AT91_REG TDES_TNCR; // Transmit Next Counter Register\r
- AT91_REG TDES_PTCR; // PDC Transfer Control Register\r
- AT91_REG TDES_PTSR; // PDC Transfer Status Register\r
-} AT91S_TDES, *AT91PS_TDES;\r
-\r
-// -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- \r
-#define AT91C_TDES_START ((unsigned int) 0x1 << 0) // (TDES) Starts Processing\r
-#define AT91C_TDES_SWRST ((unsigned int) 0x1 << 8) // (TDES) Software Reset\r
-// -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- \r
-#define AT91C_TDES_CIPHER ((unsigned int) 0x1 << 0) // (TDES) Processing Mode\r
-#define AT91C_TDES_TDESMOD ((unsigned int) 0x1 << 1) // (TDES) Single or Triple DES Mode\r
-#define AT91C_TDES_KEYMOD ((unsigned int) 0x1 << 4) // (TDES) Key Mode\r
-#define AT91C_TDES_SMOD ((unsigned int) 0x3 << 8) // (TDES) Start Mode\r
-#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.\r
-#define AT91C_TDES_SMOD_AUTO ((unsigned int) 0x1 << 8) // (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).\r
-#define AT91C_TDES_SMOD_PDC ((unsigned int) 0x2 << 8) // (TDES) PDC Mode (cf datasheet).\r
-#define AT91C_TDES_OPMOD ((unsigned int) 0x3 << 12) // (TDES) Operation Mode\r
-#define AT91C_TDES_OPMOD_ECB ((unsigned int) 0x0 << 12) // (TDES) ECB Electronic CodeBook mode.\r
-#define AT91C_TDES_OPMOD_CBC ((unsigned int) 0x1 << 12) // (TDES) CBC Cipher Block Chaining mode.\r
-#define AT91C_TDES_OPMOD_OFB ((unsigned int) 0x2 << 12) // (TDES) OFB Output Feedback mode.\r
-#define AT91C_TDES_OPMOD_CFB ((unsigned int) 0x3 << 12) // (TDES) CFB Cipher Feedback mode.\r
-#define AT91C_TDES_LOD ((unsigned int) 0x1 << 15) // (TDES) Last Output Data Mode\r
-#define AT91C_TDES_CFBS ((unsigned int) 0x3 << 16) // (TDES) Cipher Feedback Data Size\r
-#define AT91C_TDES_CFBS_64_BIT ((unsigned int) 0x0 << 16) // (TDES) 64-bit.\r
-#define AT91C_TDES_CFBS_32_BIT ((unsigned int) 0x1 << 16) // (TDES) 32-bit.\r
-#define AT91C_TDES_CFBS_16_BIT ((unsigned int) 0x2 << 16) // (TDES) 16-bit.\r
-#define AT91C_TDES_CFBS_8_BIT ((unsigned int) 0x3 << 16) // (TDES) 8-bit.\r
-// -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- \r
-#define AT91C_TDES_DATRDY ((unsigned int) 0x1 << 0) // (TDES) DATRDY\r
-#define AT91C_TDES_ENDRX ((unsigned int) 0x1 << 1) // (TDES) PDC Read Buffer End\r
-#define AT91C_TDES_ENDTX ((unsigned int) 0x1 << 2) // (TDES) PDC Write Buffer End\r
-#define AT91C_TDES_RXBUFF ((unsigned int) 0x1 << 3) // (TDES) PDC Read Buffer Full\r
-#define AT91C_TDES_TXBUFE ((unsigned int) 0x1 << 4) // (TDES) PDC Write Buffer Empty\r
-#define AT91C_TDES_URAD ((unsigned int) 0x1 << 8) // (TDES) Unspecified Register Access Detection\r
-// -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- \r
-// -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- \r
-// -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- \r
-#define AT91C_TDES_URAT ((unsigned int) 0x3 << 12) // (TDES) Unspecified Register Access Type Status\r
-#define AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (TDES) Input data register written during the data processing in PDC mode.\r
-#define AT91C_TDES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (TDES) Output data register read during the data processing.\r
-#define AT91C_TDES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (TDES) Mode register written during the data processing.\r
-#define AT91C_TDES_URAT_WO_REG_READ ((unsigned int) 0x3 << 12) // (TDES) Write-only register read access.\r
-\r
-// *****************************************************************************\r
-// REGISTER ADDRESS DEFINITION FOR AT91SAM7X128\r
-// *****************************************************************************\r
-// ========== Register definition for SYS peripheral ========== \r
-// ========== Register definition for AIC peripheral ========== \r
-#define AT91C_AIC_IVR ((AT91_REG *) 0xFFFFF100) // (AIC) IRQ Vector Register\r
-#define AT91C_AIC_SMR ((AT91_REG *) 0xFFFFF000) // (AIC) Source Mode Register\r
-#define AT91C_AIC_FVR ((AT91_REG *) 0xFFFFF104) // (AIC) FIQ Vector Register\r
-#define AT91C_AIC_DCR ((AT91_REG *) 0xFFFFF138) // (AIC) Debug Control Register (Protect)\r
-#define AT91C_AIC_EOICR ((AT91_REG *) 0xFFFFF130) // (AIC) End of Interrupt Command Register\r
-#define AT91C_AIC_SVR ((AT91_REG *) 0xFFFFF080) // (AIC) Source Vector Register\r
-#define AT91C_AIC_FFSR ((AT91_REG *) 0xFFFFF148) // (AIC) Fast Forcing Status Register\r
-#define AT91C_AIC_ICCR ((AT91_REG *) 0xFFFFF128) // (AIC) Interrupt Clear Command Register\r
-#define AT91C_AIC_ISR ((AT91_REG *) 0xFFFFF108) // (AIC) Interrupt Status Register\r
-#define AT91C_AIC_IMR ((AT91_REG *) 0xFFFFF110) // (AIC) Interrupt Mask Register\r
-#define AT91C_AIC_IPR ((AT91_REG *) 0xFFFFF10C) // (AIC) Interrupt Pending Register\r
-#define AT91C_AIC_FFER ((AT91_REG *) 0xFFFFF140) // (AIC) Fast Forcing Enable Register\r
-#define AT91C_AIC_IECR ((AT91_REG *) 0xFFFFF120) // (AIC) Interrupt Enable Command Register\r
-#define AT91C_AIC_ISCR ((AT91_REG *) 0xFFFFF12C) // (AIC) Interrupt Set Command Register\r
-#define AT91C_AIC_FFDR ((AT91_REG *) 0xFFFFF144) // (AIC) Fast Forcing Disable Register\r
-#define AT91C_AIC_CISR ((AT91_REG *) 0xFFFFF114) // (AIC) Core Interrupt Status Register\r
-#define AT91C_AIC_IDCR ((AT91_REG *) 0xFFFFF124) // (AIC) Interrupt Disable Command Register\r
-#define AT91C_AIC_SPU ((AT91_REG *) 0xFFFFF134) // (AIC) Spurious Vector Register\r
-// ========== Register definition for PDC_DBGU peripheral ========== \r
-#define AT91C_DBGU_TCR ((AT91_REG *) 0xFFFFF30C) // (PDC_DBGU) Transmit Counter Register\r
-#define AT91C_DBGU_RNPR ((AT91_REG *) 0xFFFFF310) // (PDC_DBGU) Receive Next Pointer Register\r
-#define AT91C_DBGU_TNPR ((AT91_REG *) 0xFFFFF318) // (PDC_DBGU) Transmit Next Pointer Register\r
-#define AT91C_DBGU_TPR ((AT91_REG *) 0xFFFFF308) // (PDC_DBGU) Transmit Pointer Register\r
-#define AT91C_DBGU_RPR ((AT91_REG *) 0xFFFFF300) // (PDC_DBGU) Receive Pointer Register\r
-#define AT91C_DBGU_RCR ((AT91_REG *) 0xFFFFF304) // (PDC_DBGU) Receive Counter Register\r
-#define AT91C_DBGU_RNCR ((AT91_REG *) 0xFFFFF314) // (PDC_DBGU) Receive Next Counter Register\r
-#define AT91C_DBGU_PTCR ((AT91_REG *) 0xFFFFF320) // (PDC_DBGU) PDC Transfer Control Register\r
-#define AT91C_DBGU_PTSR ((AT91_REG *) 0xFFFFF324) // (PDC_DBGU) PDC Transfer Status Register\r
-#define AT91C_DBGU_TNCR ((AT91_REG *) 0xFFFFF31C) // (PDC_DBGU) Transmit Next Counter Register\r
-// ========== Register definition for DBGU peripheral ========== \r
-#define AT91C_DBGU_EXID ((AT91_REG *) 0xFFFFF244) // (DBGU) Chip ID Extension Register\r
-#define AT91C_DBGU_BRGR ((AT91_REG *) 0xFFFFF220) // (DBGU) Baud Rate Generator Register\r
-#define AT91C_DBGU_IDR ((AT91_REG *) 0xFFFFF20C) // (DBGU) Interrupt Disable Register\r
-#define AT91C_DBGU_CSR ((AT91_REG *) 0xFFFFF214) // (DBGU) Channel Status Register\r
-#define AT91C_DBGU_CIDR ((AT91_REG *) 0xFFFFF240) // (DBGU) Chip ID Register\r
-#define AT91C_DBGU_MR ((AT91_REG *) 0xFFFFF204) // (DBGU) Mode Register\r
-#define AT91C_DBGU_IMR ((AT91_REG *) 0xFFFFF210) // (DBGU) Interrupt Mask Register\r
-#define AT91C_DBGU_CR ((AT91_REG *) 0xFFFFF200) // (DBGU) Control Register\r
-#define AT91C_DBGU_FNTR ((AT91_REG *) 0xFFFFF248) // (DBGU) Force NTRST Register\r
-#define AT91C_DBGU_THR ((AT91_REG *) 0xFFFFF21C) // (DBGU) Transmitter Holding Register\r
-#define AT91C_DBGU_RHR ((AT91_REG *) 0xFFFFF218) // (DBGU) Receiver Holding Register\r
-#define AT91C_DBGU_IER ((AT91_REG *) 0xFFFFF208) // (DBGU) Interrupt Enable Register\r
-// ========== Register definition for PIOA peripheral ========== \r
-#define AT91C_PIOA_ODR ((AT91_REG *) 0xFFFFF414) // (PIOA) Output Disable Registerr\r
-#define AT91C_PIOA_SODR ((AT91_REG *) 0xFFFFF430) // (PIOA) Set Output Data Register\r
-#define AT91C_PIOA_ISR ((AT91_REG *) 0xFFFFF44C) // (PIOA) Interrupt Status Register\r
-#define AT91C_PIOA_ABSR ((AT91_REG *) 0xFFFFF478) // (PIOA) AB Select Status Register\r
-#define AT91C_PIOA_IER ((AT91_REG *) 0xFFFFF440) // (PIOA) Interrupt Enable Register\r
-#define AT91C_PIOA_PPUDR ((AT91_REG *) 0xFFFFF460) // (PIOA) Pull-up Disable Register\r
-#define AT91C_PIOA_IMR ((AT91_REG *) 0xFFFFF448) // (PIOA) Interrupt Mask Register\r
-#define AT91C_PIOA_PER ((AT91_REG *) 0xFFFFF400) // (PIOA) PIO Enable Register\r
-#define AT91C_PIOA_IFDR ((AT91_REG *) 0xFFFFF424) // (PIOA) Input Filter Disable Register\r
-#define AT91C_PIOA_OWDR ((AT91_REG *) 0xFFFFF4A4) // (PIOA) Output Write Disable Register\r
-#define AT91C_PIOA_MDSR ((AT91_REG *) 0xFFFFF458) // (PIOA) Multi-driver Status Register\r
-#define AT91C_PIOA_IDR ((AT91_REG *) 0xFFFFF444) // (PIOA) Interrupt Disable Register\r
-#define AT91C_PIOA_ODSR ((AT91_REG *) 0xFFFFF438) // (PIOA) Output Data Status Register\r
-#define AT91C_PIOA_PPUSR ((AT91_REG *) 0xFFFFF468) // (PIOA) Pull-up Status Register\r
-#define AT91C_PIOA_OWSR ((AT91_REG *) 0xFFFFF4A8) // (PIOA) Output Write Status Register\r
-#define AT91C_PIOA_BSR ((AT91_REG *) 0xFFFFF474) // (PIOA) Select B Register\r
-#define AT91C_PIOA_OWER ((AT91_REG *) 0xFFFFF4A0) // (PIOA) Output Write Enable Register\r
-#define AT91C_PIOA_IFER ((AT91_REG *) 0xFFFFF420) // (PIOA) Input Filter Enable Register\r
-#define AT91C_PIOA_PDSR ((AT91_REG *) 0xFFFFF43C) // (PIOA) Pin Data Status Register\r
-#define AT91C_PIOA_PPUER ((AT91_REG *) 0xFFFFF464) // (PIOA) Pull-up Enable Register\r
-#define AT91C_PIOA_OSR ((AT91_REG *) 0xFFFFF418) // (PIOA) Output Status Register\r
-#define AT91C_PIOA_ASR ((AT91_REG *) 0xFFFFF470) // (PIOA) Select A Register\r
-#define AT91C_PIOA_MDDR ((AT91_REG *) 0xFFFFF454) // (PIOA) Multi-driver Disable Register\r
-#define AT91C_PIOA_CODR ((AT91_REG *) 0xFFFFF434) // (PIOA) Clear Output Data Register\r
-#define AT91C_PIOA_MDER ((AT91_REG *) 0xFFFFF450) // (PIOA) Multi-driver Enable Register\r
-#define AT91C_PIOA_PDR ((AT91_REG *) 0xFFFFF404) // (PIOA) PIO Disable Register\r
-#define AT91C_PIOA_IFSR ((AT91_REG *) 0xFFFFF428) // (PIOA) Input Filter Status Register\r
-#define AT91C_PIOA_OER ((AT91_REG *) 0xFFFFF410) // (PIOA) Output Enable Register\r
-#define AT91C_PIOA_PSR ((AT91_REG *) 0xFFFFF408) // (PIOA) PIO Status Register\r
-// ========== Register definition for PIOB peripheral ========== \r
-#define AT91C_PIOB_OWDR ((AT91_REG *) 0xFFFFF6A4) // (PIOB) Output Write Disable Register\r
-#define AT91C_PIOB_MDER ((AT91_REG *) 0xFFFFF650) // (PIOB) Multi-driver Enable Register\r
-#define AT91C_PIOB_PPUSR ((AT91_REG *) 0xFFFFF668) // (PIOB) Pull-up Status Register\r
-#define AT91C_PIOB_IMR ((AT91_REG *) 0xFFFFF648) // (PIOB) Interrupt Mask Register\r
-#define AT91C_PIOB_ASR ((AT91_REG *) 0xFFFFF670) // (PIOB) Select A Register\r
-#define AT91C_PIOB_PPUDR ((AT91_REG *) 0xFFFFF660) // (PIOB) Pull-up Disable Register\r
-#define AT91C_PIOB_PSR ((AT91_REG *) 0xFFFFF608) // (PIOB) PIO Status Register\r
-#define AT91C_PIOB_IER ((AT91_REG *) 0xFFFFF640) // (PIOB) Interrupt Enable Register\r
-#define AT91C_PIOB_CODR ((AT91_REG *) 0xFFFFF634) // (PIOB) Clear Output Data Register\r
-#define AT91C_PIOB_OWER ((AT91_REG *) 0xFFFFF6A0) // (PIOB) Output Write Enable Register\r
-#define AT91C_PIOB_ABSR ((AT91_REG *) 0xFFFFF678) // (PIOB) AB Select Status Register\r
-#define AT91C_PIOB_IFDR ((AT91_REG *) 0xFFFFF624) // (PIOB) Input Filter Disable Register\r
-#define AT91C_PIOB_PDSR ((AT91_REG *) 0xFFFFF63C) // (PIOB) Pin Data Status Register\r
-#define AT91C_PIOB_IDR ((AT91_REG *) 0xFFFFF644) // (PIOB) Interrupt Disable Register\r
-#define AT91C_PIOB_OWSR ((AT91_REG *) 0xFFFFF6A8) // (PIOB) Output Write Status Register\r
-#define AT91C_PIOB_PDR ((AT91_REG *) 0xFFFFF604) // (PIOB) PIO Disable Register\r
-#define AT91C_PIOB_ODR ((AT91_REG *) 0xFFFFF614) // (PIOB) Output Disable Registerr\r
-#define AT91C_PIOB_IFSR ((AT91_REG *) 0xFFFFF628) // (PIOB) Input Filter Status Register\r
-#define AT91C_PIOB_PPUER ((AT91_REG *) 0xFFFFF664) // (PIOB) Pull-up Enable Register\r
-#define AT91C_PIOB_SODR ((AT91_REG *) 0xFFFFF630) // (PIOB) Set Output Data Register\r
-#define AT91C_PIOB_ISR ((AT91_REG *) 0xFFFFF64C) // (PIOB) Interrupt Status Register\r
-#define AT91C_PIOB_ODSR ((AT91_REG *) 0xFFFFF638) // (PIOB) Output Data Status Register\r
-#define AT91C_PIOB_OSR ((AT91_REG *) 0xFFFFF618) // (PIOB) Output Status Register\r
-#define AT91C_PIOB_MDSR ((AT91_REG *) 0xFFFFF658) // (PIOB) Multi-driver Status Register\r
-#define AT91C_PIOB_IFER ((AT91_REG *) 0xFFFFF620) // (PIOB) Input Filter Enable Register\r
-#define AT91C_PIOB_BSR ((AT91_REG *) 0xFFFFF674) // (PIOB) Select B Register\r
-#define AT91C_PIOB_MDDR ((AT91_REG *) 0xFFFFF654) // (PIOB) Multi-driver Disable Register\r
-#define AT91C_PIOB_OER ((AT91_REG *) 0xFFFFF610) // (PIOB) Output Enable Register\r
-#define AT91C_PIOB_PER ((AT91_REG *) 0xFFFFF600) // (PIOB) PIO Enable Register\r
-// ========== Register definition for CKGR peripheral ========== \r
-#define AT91C_CKGR_MOR ((AT91_REG *) 0xFFFFFC20) // (CKGR) Main Oscillator Register\r
-#define AT91C_CKGR_PLLR ((AT91_REG *) 0xFFFFFC2C) // (CKGR) PLL Register\r
-#define AT91C_CKGR_MCFR ((AT91_REG *) 0xFFFFFC24) // (CKGR) Main Clock Frequency Register\r
-// ========== Register definition for PMC peripheral ========== \r
-#define AT91C_PMC_IDR ((AT91_REG *) 0xFFFFFC64) // (PMC) Interrupt Disable Register\r
-#define AT91C_PMC_MOR ((AT91_REG *) 0xFFFFFC20) // (PMC) Main Oscillator Register\r
-#define AT91C_PMC_PLLR ((AT91_REG *) 0xFFFFFC2C) // (PMC) PLL Register\r
-#define AT91C_PMC_PCER ((AT91_REG *) 0xFFFFFC10) // (PMC) Peripheral Clock Enable Register\r
-#define AT91C_PMC_PCKR ((AT91_REG *) 0xFFFFFC40) // (PMC) Programmable Clock Register\r
-#define AT91C_PMC_MCKR ((AT91_REG *) 0xFFFFFC30) // (PMC) Master Clock Register\r
-#define AT91C_PMC_SCDR ((AT91_REG *) 0xFFFFFC04) // (PMC) System Clock Disable Register\r
-#define AT91C_PMC_PCDR ((AT91_REG *) 0xFFFFFC14) // (PMC) Peripheral Clock Disable Register\r
-#define AT91C_PMC_SCSR ((AT91_REG *) 0xFFFFFC08) // (PMC) System Clock Status Register\r
-#define AT91C_PMC_PCSR ((AT91_REG *) 0xFFFFFC18) // (PMC) Peripheral Clock Status Register\r
-#define AT91C_PMC_MCFR ((AT91_REG *) 0xFFFFFC24) // (PMC) Main Clock Frequency Register\r
-#define AT91C_PMC_SCER ((AT91_REG *) 0xFFFFFC00) // (PMC) System Clock Enable Register\r
-#define AT91C_PMC_IMR ((AT91_REG *) 0xFFFFFC6C) // (PMC) Interrupt Mask Register\r
-#define AT91C_PMC_IER ((AT91_REG *) 0xFFFFFC60) // (PMC) Interrupt Enable Register\r
-#define AT91C_PMC_SR ((AT91_REG *) 0xFFFFFC68) // (PMC) Status Register\r
-// ========== Register definition for RSTC peripheral ========== \r
-#define AT91C_RSTC_RCR ((AT91_REG *) 0xFFFFFD00) // (RSTC) Reset Control Register\r
-#define AT91C_RSTC_RMR ((AT91_REG *) 0xFFFFFD08) // (RSTC) Reset Mode Register\r
-#define AT91C_RSTC_RSR ((AT91_REG *) 0xFFFFFD04) // (RSTC) Reset Status Register\r
-// ========== Register definition for RTTC peripheral ========== \r
-#define AT91C_RTTC_RTSR ((AT91_REG *) 0xFFFFFD2C) // (RTTC) Real-time Status Register\r
-#define AT91C_RTTC_RTMR ((AT91_REG *) 0xFFFFFD20) // (RTTC) Real-time Mode Register\r
-#define AT91C_RTTC_RTVR ((AT91_REG *) 0xFFFFFD28) // (RTTC) Real-time Value Register\r
-#define AT91C_RTTC_RTAR ((AT91_REG *) 0xFFFFFD24) // (RTTC) Real-time Alarm Register\r
-// ========== Register definition for PITC peripheral ========== \r
-#define AT91C_PITC_PIVR ((AT91_REG *) 0xFFFFFD38) // (PITC) Period Interval Value Register\r
-#define AT91C_PITC_PISR ((AT91_REG *) 0xFFFFFD34) // (PITC) Period Interval Status Register\r
-#define AT91C_PITC_PIIR ((AT91_REG *) 0xFFFFFD3C) // (PITC) Period Interval Image Register\r
-#define AT91C_PITC_PIMR ((AT91_REG *) 0xFFFFFD30) // (PITC) Period Interval Mode Register\r
-// ========== Register definition for WDTC peripheral ========== \r
-#define AT91C_WDTC_WDCR ((AT91_REG *) 0xFFFFFD40) // (WDTC) Watchdog Control Register\r
-#define AT91C_WDTC_WDSR ((AT91_REG *) 0xFFFFFD48) // (WDTC) Watchdog Status Register\r
-#define AT91C_WDTC_WDMR ((AT91_REG *) 0xFFFFFD44) // (WDTC) Watchdog Mode Register\r
-// ========== Register definition for VREG peripheral ========== \r
-#define AT91C_VREG_MR ((AT91_REG *) 0xFFFFFD60) // (VREG) Voltage Regulator Mode Register\r
-// ========== Register definition for MC peripheral ========== \r
-#define AT91C_MC_ASR ((AT91_REG *) 0xFFFFFF04) // (MC) MC Abort Status Register\r
-#define AT91C_MC_RCR ((AT91_REG *) 0xFFFFFF00) // (MC) MC Remap Control Register\r
-#define AT91C_MC_FCR ((AT91_REG *) 0xFFFFFF64) // (MC) MC Flash Command Register\r
-#define AT91C_MC_AASR ((AT91_REG *) 0xFFFFFF08) // (MC) MC Abort Address Status Register\r
-#define AT91C_MC_FSR ((AT91_REG *) 0xFFFFFF68) // (MC) MC Flash Status Register\r
-#define AT91C_MC_FMR ((AT91_REG *) 0xFFFFFF60) // (MC) MC Flash Mode Register\r
-// ========== Register definition for PDC_SPI1 peripheral ========== \r
-#define AT91C_SPI1_PTCR ((AT91_REG *) 0xFFFE4120) // (PDC_SPI1) PDC Transfer Control Register\r
-#define AT91C_SPI1_RPR ((AT91_REG *) 0xFFFE4100) // (PDC_SPI1) Receive Pointer Register\r
-#define AT91C_SPI1_TNCR ((AT91_REG *) 0xFFFE411C) // (PDC_SPI1) Transmit Next Counter Register\r
-#define AT91C_SPI1_TPR ((AT91_REG *) 0xFFFE4108) // (PDC_SPI1) Transmit Pointer Register\r
-#define AT91C_SPI1_TNPR ((AT91_REG *) 0xFFFE4118) // (PDC_SPI1) Transmit Next Pointer Register\r
-#define AT91C_SPI1_TCR ((AT91_REG *) 0xFFFE410C) // (PDC_SPI1) Transmit Counter Register\r
-#define AT91C_SPI1_RCR ((AT91_REG *) 0xFFFE4104) // (PDC_SPI1) Receive Counter Register\r
-#define AT91C_SPI1_RNPR ((AT91_REG *) 0xFFFE4110) // (PDC_SPI1) Receive Next Pointer Register\r
-#define AT91C_SPI1_RNCR ((AT91_REG *) 0xFFFE4114) // (PDC_SPI1) Receive Next Counter Register\r
-#define AT91C_SPI1_PTSR ((AT91_REG *) 0xFFFE4124) // (PDC_SPI1) PDC Transfer Status Register\r
-// ========== Register definition for SPI1 peripheral ========== \r
-#define AT91C_SPI1_IMR ((AT91_REG *) 0xFFFE401C) // (SPI1) Interrupt Mask Register\r
-#define AT91C_SPI1_IER ((AT91_REG *) 0xFFFE4014) // (SPI1) Interrupt Enable Register\r
-#define AT91C_SPI1_MR ((AT91_REG *) 0xFFFE4004) // (SPI1) Mode Register\r
-#define AT91C_SPI1_RDR ((AT91_REG *) 0xFFFE4008) // (SPI1) Receive Data Register\r
-#define AT91C_SPI1_IDR ((AT91_REG *) 0xFFFE4018) // (SPI1) Interrupt Disable Register\r
-#define AT91C_SPI1_SR ((AT91_REG *) 0xFFFE4010) // (SPI1) Status Register\r
-#define AT91C_SPI1_TDR ((AT91_REG *) 0xFFFE400C) // (SPI1) Transmit Data Register\r
-#define AT91C_SPI1_CR ((AT91_REG *) 0xFFFE4000) // (SPI1) Control Register\r
-#define AT91C_SPI1_CSR ((AT91_REG *) 0xFFFE4030) // (SPI1) Chip Select Register\r
-// ========== Register definition for PDC_SPI0 peripheral ========== \r
-#define AT91C_SPI0_PTCR ((AT91_REG *) 0xFFFE0120) // (PDC_SPI0) PDC Transfer Control Register\r
-#define AT91C_SPI0_TPR ((AT91_REG *) 0xFFFE0108) // (PDC_SPI0) Transmit Pointer Register\r
-#define AT91C_SPI0_TCR ((AT91_REG *) 0xFFFE010C) // (PDC_SPI0) Transmit Counter Register\r
-#define AT91C_SPI0_RCR ((AT91_REG *) 0xFFFE0104) // (PDC_SPI0) Receive Counter Register\r
-#define AT91C_SPI0_PTSR ((AT91_REG *) 0xFFFE0124) // (PDC_SPI0) PDC Transfer Status Register\r
-#define AT91C_SPI0_RNPR ((AT91_REG *) 0xFFFE0110) // (PDC_SPI0) Receive Next Pointer Register\r
-#define AT91C_SPI0_RPR ((AT91_REG *) 0xFFFE0100) // (PDC_SPI0) Receive Pointer Register\r
-#define AT91C_SPI0_TNCR ((AT91_REG *) 0xFFFE011C) // (PDC_SPI0) Transmit Next Counter Register\r
-#define AT91C_SPI0_RNCR ((AT91_REG *) 0xFFFE0114) // (PDC_SPI0) Receive Next Counter Register\r
-#define AT91C_SPI0_TNPR ((AT91_REG *) 0xFFFE0118) // (PDC_SPI0) Transmit Next Pointer Register\r
-// ========== Register definition for SPI0 peripheral ========== \r
-#define AT91C_SPI0_IER ((AT91_REG *) 0xFFFE0014) // (SPI0) Interrupt Enable Register\r
-#define AT91C_SPI0_SR ((AT91_REG *) 0xFFFE0010) // (SPI0) Status Register\r
-#define AT91C_SPI0_IDR ((AT91_REG *) 0xFFFE0018) // (SPI0) Interrupt Disable Register\r
-#define AT91C_SPI0_CR ((AT91_REG *) 0xFFFE0000) // (SPI0) Control Register\r
-#define AT91C_SPI0_MR ((AT91_REG *) 0xFFFE0004) // (SPI0) Mode Register\r
-#define AT91C_SPI0_IMR ((AT91_REG *) 0xFFFE001C) // (SPI0) Interrupt Mask Register\r
-#define AT91C_SPI0_TDR ((AT91_REG *) 0xFFFE000C) // (SPI0) Transmit Data Register\r
-#define AT91C_SPI0_RDR ((AT91_REG *) 0xFFFE0008) // (SPI0) Receive Data Register\r
-#define AT91C_SPI0_CSR ((AT91_REG *) 0xFFFE0030) // (SPI0) Chip Select Register\r
-// ========== Register definition for PDC_US1 peripheral ========== \r
-#define AT91C_US1_RNCR ((AT91_REG *) 0xFFFC4114) // (PDC_US1) Receive Next Counter Register\r
-#define AT91C_US1_PTCR ((AT91_REG *) 0xFFFC4120) // (PDC_US1) PDC Transfer Control Register\r
-#define AT91C_US1_TCR ((AT91_REG *) 0xFFFC410C) // (PDC_US1) Transmit Counter Register\r
-#define AT91C_US1_PTSR ((AT91_REG *) 0xFFFC4124) // (PDC_US1) PDC Transfer Status Register\r
-#define AT91C_US1_TNPR ((AT91_REG *) 0xFFFC4118) // (PDC_US1) Transmit Next Pointer Register\r
-#define AT91C_US1_RCR ((AT91_REG *) 0xFFFC4104) // (PDC_US1) Receive Counter Register\r
-#define AT91C_US1_RNPR ((AT91_REG *) 0xFFFC4110) // (PDC_US1) Receive Next Pointer Register\r
-#define AT91C_US1_RPR ((AT91_REG *) 0xFFFC4100) // (PDC_US1) Receive Pointer Register\r
-#define AT91C_US1_TNCR ((AT91_REG *) 0xFFFC411C) // (PDC_US1) Transmit Next Counter Register\r
-#define AT91C_US1_TPR ((AT91_REG *) 0xFFFC4108) // (PDC_US1) Transmit Pointer Register\r
-// ========== Register definition for US1 peripheral ========== \r
-#define AT91C_US1_IF ((AT91_REG *) 0xFFFC404C) // (US1) IRDA_FILTER Register\r
-#define AT91C_US1_NER ((AT91_REG *) 0xFFFC4044) // (US1) Nb Errors Register\r
-#define AT91C_US1_RTOR ((AT91_REG *) 0xFFFC4024) // (US1) Receiver Time-out Register\r
-#define AT91C_US1_CSR ((AT91_REG *) 0xFFFC4014) // (US1) Channel Status Register\r
-#define AT91C_US1_IDR ((AT91_REG *) 0xFFFC400C) // (US1) Interrupt Disable Register\r
-#define AT91C_US1_IER ((AT91_REG *) 0xFFFC4008) // (US1) Interrupt Enable Register\r
-#define AT91C_US1_THR ((AT91_REG *) 0xFFFC401C) // (US1) Transmitter Holding Register\r
-#define AT91C_US1_TTGR ((AT91_REG *) 0xFFFC4028) // (US1) Transmitter Time-guard Register\r
-#define AT91C_US1_RHR ((AT91_REG *) 0xFFFC4018) // (US1) Receiver Holding Register\r
-#define AT91C_US1_BRGR ((AT91_REG *) 0xFFFC4020) // (US1) Baud Rate Generator Register\r
-#define AT91C_US1_IMR ((AT91_REG *) 0xFFFC4010) // (US1) Interrupt Mask Register\r
-#define AT91C_US1_FIDI ((AT91_REG *) 0xFFFC4040) // (US1) FI_DI_Ratio Register\r
-#define AT91C_US1_CR ((AT91_REG *) 0xFFFC4000) // (US1) Control Register\r
-#define AT91C_US1_MR ((AT91_REG *) 0xFFFC4004) // (US1) Mode Register\r
-// ========== Register definition for PDC_US0 peripheral ========== \r
-#define AT91C_US0_TNPR ((AT91_REG *) 0xFFFC0118) // (PDC_US0) Transmit Next Pointer Register\r
-#define AT91C_US0_RNPR ((AT91_REG *) 0xFFFC0110) // (PDC_US0) Receive Next Pointer Register\r
-#define AT91C_US0_TCR ((AT91_REG *) 0xFFFC010C) // (PDC_US0) Transmit Counter Register\r
-#define AT91C_US0_PTCR ((AT91_REG *) 0xFFFC0120) // (PDC_US0) PDC Transfer Control Register\r
-#define AT91C_US0_PTSR ((AT91_REG *) 0xFFFC0124) // (PDC_US0) PDC Transfer Status Register\r
-#define AT91C_US0_TNCR ((AT91_REG *) 0xFFFC011C) // (PDC_US0) Transmit Next Counter Register\r
-#define AT91C_US0_TPR ((AT91_REG *) 0xFFFC0108) // (PDC_US0) Transmit Pointer Register\r
-#define AT91C_US0_RCR ((AT91_REG *) 0xFFFC0104) // (PDC_US0) Receive Counter Register\r
-#define AT91C_US0_RPR ((AT91_REG *) 0xFFFC0100) // (PDC_US0) Receive Pointer Register\r
-#define AT91C_US0_RNCR ((AT91_REG *) 0xFFFC0114) // (PDC_US0) Receive Next Counter Register\r
-// ========== Register definition for US0 peripheral ========== \r
-#define AT91C_US0_BRGR ((AT91_REG *) 0xFFFC0020) // (US0) Baud Rate Generator Register\r
-#define AT91C_US0_NER ((AT91_REG *) 0xFFFC0044) // (US0) Nb Errors Register\r
-#define AT91C_US0_CR ((AT91_REG *) 0xFFFC0000) // (US0) Control Register\r
-#define AT91C_US0_IMR ((AT91_REG *) 0xFFFC0010) // (US0) Interrupt Mask Register\r
-#define AT91C_US0_FIDI ((AT91_REG *) 0xFFFC0040) // (US0) FI_DI_Ratio Register\r
-#define AT91C_US0_TTGR ((AT91_REG *) 0xFFFC0028) // (US0) Transmitter Time-guard Register\r
-#define AT91C_US0_MR ((AT91_REG *) 0xFFFC0004) // (US0) Mode Register\r
-#define AT91C_US0_RTOR ((AT91_REG *) 0xFFFC0024) // (US0) Receiver Time-out Register\r
-#define AT91C_US0_CSR ((AT91_REG *) 0xFFFC0014) // (US0) Channel Status Register\r
-#define AT91C_US0_RHR ((AT91_REG *) 0xFFFC0018) // (US0) Receiver Holding Register\r
-#define AT91C_US0_IDR ((AT91_REG *) 0xFFFC000C) // (US0) Interrupt Disable Register\r
-#define AT91C_US0_THR ((AT91_REG *) 0xFFFC001C) // (US0) Transmitter Holding Register\r
-#define AT91C_US0_IF ((AT91_REG *) 0xFFFC004C) // (US0) IRDA_FILTER Register\r
-#define AT91C_US0_IER ((AT91_REG *) 0xFFFC0008) // (US0) Interrupt Enable Register\r
-// ========== Register definition for PDC_SSC peripheral ========== \r
-#define AT91C_SSC_TNCR ((AT91_REG *) 0xFFFD411C) // (PDC_SSC) Transmit Next Counter Register\r
-#define AT91C_SSC_RPR ((AT91_REG *) 0xFFFD4100) // (PDC_SSC) Receive Pointer Register\r
-#define AT91C_SSC_RNCR ((AT91_REG *) 0xFFFD4114) // (PDC_SSC) Receive Next Counter Register\r
-#define AT91C_SSC_TPR ((AT91_REG *) 0xFFFD4108) // (PDC_SSC) Transmit Pointer Register\r
-#define AT91C_SSC_PTCR ((AT91_REG *) 0xFFFD4120) // (PDC_SSC) PDC Transfer Control Register\r
-#define AT91C_SSC_TCR ((AT91_REG *) 0xFFFD410C) // (PDC_SSC) Transmit Counter Register\r
-#define AT91C_SSC_RCR ((AT91_REG *) 0xFFFD4104) // (PDC_SSC) Receive Counter Register\r
-#define AT91C_SSC_RNPR ((AT91_REG *) 0xFFFD4110) // (PDC_SSC) Receive Next Pointer Register\r
-#define AT91C_SSC_TNPR ((AT91_REG *) 0xFFFD4118) // (PDC_SSC) Transmit Next Pointer Register\r
-#define AT91C_SSC_PTSR ((AT91_REG *) 0xFFFD4124) // (PDC_SSC) PDC Transfer Status Register\r
-// ========== Register definition for SSC peripheral ========== \r
-#define AT91C_SSC_RHR ((AT91_REG *) 0xFFFD4020) // (SSC) Receive Holding Register\r
-#define AT91C_SSC_RSHR ((AT91_REG *) 0xFFFD4030) // (SSC) Receive Sync Holding Register\r
-#define AT91C_SSC_TFMR ((AT91_REG *) 0xFFFD401C) // (SSC) Transmit Frame Mode Register\r
-#define AT91C_SSC_IDR ((AT91_REG *) 0xFFFD4048) // (SSC) Interrupt Disable Register\r
-#define AT91C_SSC_THR ((AT91_REG *) 0xFFFD4024) // (SSC) Transmit Holding Register\r
-#define AT91C_SSC_RCMR ((AT91_REG *) 0xFFFD4010) // (SSC) Receive Clock ModeRegister\r
-#define AT91C_SSC_IER ((AT91_REG *) 0xFFFD4044) // (SSC) Interrupt Enable Register\r
-#define AT91C_SSC_TSHR ((AT91_REG *) 0xFFFD4034) // (SSC) Transmit Sync Holding Register\r
-#define AT91C_SSC_SR ((AT91_REG *) 0xFFFD4040) // (SSC) Status Register\r
-#define AT91C_SSC_CMR ((AT91_REG *) 0xFFFD4004) // (SSC) Clock Mode Register\r
-#define AT91C_SSC_TCMR ((AT91_REG *) 0xFFFD4018) // (SSC) Transmit Clock Mode Register\r
-#define AT91C_SSC_CR ((AT91_REG *) 0xFFFD4000) // (SSC) Control Register\r
-#define AT91C_SSC_IMR ((AT91_REG *) 0xFFFD404C) // (SSC) Interrupt Mask Register\r
-#define AT91C_SSC_RFMR ((AT91_REG *) 0xFFFD4014) // (SSC) Receive Frame Mode Register\r
-// ========== Register definition for TWI peripheral ========== \r
-#define AT91C_TWI_IER ((AT91_REG *) 0xFFFB8024) // (TWI) Interrupt Enable Register\r
-#define AT91C_TWI_CR ((AT91_REG *) 0xFFFB8000) // (TWI) Control Register\r
-#define AT91C_TWI_SR ((AT91_REG *) 0xFFFB8020) // (TWI) Status Register\r
-#define AT91C_TWI_IMR ((AT91_REG *) 0xFFFB802C) // (TWI) Interrupt Mask Register\r
-#define AT91C_TWI_THR ((AT91_REG *) 0xFFFB8034) // (TWI) Transmit Holding Register\r
-#define AT91C_TWI_IDR ((AT91_REG *) 0xFFFB8028) // (TWI) Interrupt Disable Register\r
-#define AT91C_TWI_IADR ((AT91_REG *) 0xFFFB800C) // (TWI) Internal Address Register\r
-#define AT91C_TWI_MMR ((AT91_REG *) 0xFFFB8004) // (TWI) Master Mode Register\r
-#define AT91C_TWI_CWGR ((AT91_REG *) 0xFFFB8010) // (TWI) Clock Waveform Generator Register\r
-#define AT91C_TWI_RHR ((AT91_REG *) 0xFFFB8030) // (TWI) Receive Holding Register\r
-// ========== Register definition for PWMC_CH3 peripheral ========== \r
-#define AT91C_PWMC_CH3_CUPDR ((AT91_REG *) 0xFFFCC270) // (PWMC_CH3) Channel Update Register\r
-#define AT91C_PWMC_CH3_Reserved ((AT91_REG *) 0xFFFCC274) // (PWMC_CH3) Reserved\r
-#define AT91C_PWMC_CH3_CPRDR ((AT91_REG *) 0xFFFCC268) // (PWMC_CH3) Channel Period Register\r
-#define AT91C_PWMC_CH3_CDTYR ((AT91_REG *) 0xFFFCC264) // (PWMC_CH3) Channel Duty Cycle Register\r
-#define AT91C_PWMC_CH3_CCNTR ((AT91_REG *) 0xFFFCC26C) // (PWMC_CH3) Channel Counter Register\r
-#define AT91C_PWMC_CH3_CMR ((AT91_REG *) 0xFFFCC260) // (PWMC_CH3) Channel Mode Register\r
-// ========== Register definition for PWMC_CH2 peripheral ========== \r
-#define AT91C_PWMC_CH2_Reserved ((AT91_REG *) 0xFFFCC254) // (PWMC_CH2) Reserved\r
-#define AT91C_PWMC_CH2_CMR ((AT91_REG *) 0xFFFCC240) // (PWMC_CH2) Channel Mode Register\r
-#define AT91C_PWMC_CH2_CCNTR ((AT91_REG *) 0xFFFCC24C) // (PWMC_CH2) Channel Counter Register\r
-#define AT91C_PWMC_CH2_CPRDR ((AT91_REG *) 0xFFFCC248) // (PWMC_CH2) Channel Period Register\r
-#define AT91C_PWMC_CH2_CUPDR ((AT91_REG *) 0xFFFCC250) // (PWMC_CH2) Channel Update Register\r
-#define AT91C_PWMC_CH2_CDTYR ((AT91_REG *) 0xFFFCC244) // (PWMC_CH2) Channel Duty Cycle Register\r
-// ========== Register definition for PWMC_CH1 peripheral ========== \r
-#define AT91C_PWMC_CH1_Reserved ((AT91_REG *) 0xFFFCC234) // (PWMC_CH1) Reserved\r
-#define AT91C_PWMC_CH1_CUPDR ((AT91_REG *) 0xFFFCC230) // (PWMC_CH1) Channel Update Register\r
-#define AT91C_PWMC_CH1_CPRDR ((AT91_REG *) 0xFFFCC228) // (PWMC_CH1) Channel Period Register\r
-#define AT91C_PWMC_CH1_CCNTR ((AT91_REG *) 0xFFFCC22C) // (PWMC_CH1) Channel Counter Register\r
-#define AT91C_PWMC_CH1_CDTYR ((AT91_REG *) 0xFFFCC224) // (PWMC_CH1) Channel Duty Cycle Register\r
-#define AT91C_PWMC_CH1_CMR ((AT91_REG *) 0xFFFCC220) // (PWMC_CH1) Channel Mode Register\r
-// ========== Register definition for PWMC_CH0 peripheral ========== \r
-#define AT91C_PWMC_CH0_Reserved ((AT91_REG *) 0xFFFCC214) // (PWMC_CH0) Reserved\r
-#define AT91C_PWMC_CH0_CPRDR ((AT91_REG *) 0xFFFCC208) // (PWMC_CH0) Channel Period Register\r
-#define AT91C_PWMC_CH0_CDTYR ((AT91_REG *) 0xFFFCC204) // (PWMC_CH0) Channel Duty Cycle Register\r
-#define AT91C_PWMC_CH0_CMR ((AT91_REG *) 0xFFFCC200) // (PWMC_CH0) Channel Mode Register\r
-#define AT91C_PWMC_CH0_CUPDR ((AT91_REG *) 0xFFFCC210) // (PWMC_CH0) Channel Update Register\r
-#define AT91C_PWMC_CH0_CCNTR ((AT91_REG *) 0xFFFCC20C) // (PWMC_CH0) Channel Counter Register\r
-// ========== Register definition for PWMC peripheral ========== \r
-#define AT91C_PWMC_IDR ((AT91_REG *) 0xFFFCC014) // (PWMC) PWMC Interrupt Disable Register\r
-#define AT91C_PWMC_DIS ((AT91_REG *) 0xFFFCC008) // (PWMC) PWMC Disable Register\r
-#define AT91C_PWMC_IER ((AT91_REG *) 0xFFFCC010) // (PWMC) PWMC Interrupt Enable Register\r
-#define AT91C_PWMC_VR ((AT91_REG *) 0xFFFCC0FC) // (PWMC) PWMC Version Register\r
-#define AT91C_PWMC_ISR ((AT91_REG *) 0xFFFCC01C) // (PWMC) PWMC Interrupt Status Register\r
-#define AT91C_PWMC_SR ((AT91_REG *) 0xFFFCC00C) // (PWMC) PWMC Status Register\r
-#define AT91C_PWMC_IMR ((AT91_REG *) 0xFFFCC018) // (PWMC) PWMC Interrupt Mask Register\r
-#define AT91C_PWMC_MR ((AT91_REG *) 0xFFFCC000) // (PWMC) PWMC Mode Register\r
-#define AT91C_PWMC_ENA ((AT91_REG *) 0xFFFCC004) // (PWMC) PWMC Enable Register\r
-// ========== Register definition for UDP peripheral ========== \r
-#define AT91C_UDP_IMR ((AT91_REG *) 0xFFFB0018) // (UDP) Interrupt Mask Register\r
-#define AT91C_UDP_FADDR ((AT91_REG *) 0xFFFB0008) // (UDP) Function Address Register\r
-#define AT91C_UDP_NUM ((AT91_REG *) 0xFFFB0000) // (UDP) Frame Number Register\r
-#define AT91C_UDP_FDR ((AT91_REG *) 0xFFFB0050) // (UDP) Endpoint FIFO Data Register\r
-#define AT91C_UDP_ISR ((AT91_REG *) 0xFFFB001C) // (UDP) Interrupt Status Register\r
-#define AT91C_UDP_CSR ((AT91_REG *) 0xFFFB0030) // (UDP) Endpoint Control and Status Register\r
-#define AT91C_UDP_IDR ((AT91_REG *) 0xFFFB0014) // (UDP) Interrupt Disable Register\r
-#define AT91C_UDP_ICR ((AT91_REG *) 0xFFFB0020) // (UDP) Interrupt Clear Register\r
-#define AT91C_UDP_RSTEP ((AT91_REG *) 0xFFFB0028) // (UDP) Reset Endpoint Register\r
-#define AT91C_UDP_TXVC ((AT91_REG *) 0xFFFB0074) // (UDP) Transceiver Control Register\r
-#define AT91C_UDP_GLBSTATE ((AT91_REG *) 0xFFFB0004) // (UDP) Global State Register\r
-#define AT91C_UDP_IER ((AT91_REG *) 0xFFFB0010) // (UDP) Interrupt Enable Register\r
-// ========== Register definition for TC0 peripheral ========== \r
-#define AT91C_TC0_SR ((AT91_REG *) 0xFFFA0020) // (TC0) Status Register\r
-#define AT91C_TC0_RC ((AT91_REG *) 0xFFFA001C) // (TC0) Register C\r
-#define AT91C_TC0_RB ((AT91_REG *) 0xFFFA0018) // (TC0) Register B\r
-#define AT91C_TC0_CCR ((AT91_REG *) 0xFFFA0000) // (TC0) Channel Control Register\r
-#define AT91C_TC0_CMR ((AT91_REG *) 0xFFFA0004) // (TC0) Channel Mode Register (Capture Mode / Waveform Mode)\r
-#define AT91C_TC0_IER ((AT91_REG *) 0xFFFA0024) // (TC0) Interrupt Enable Register\r
-#define AT91C_TC0_RA ((AT91_REG *) 0xFFFA0014) // (TC0) Register A\r
-#define AT91C_TC0_IDR ((AT91_REG *) 0xFFFA0028) // (TC0) Interrupt Disable Register\r
-#define AT91C_TC0_CV ((AT91_REG *) 0xFFFA0010) // (TC0) Counter Value\r
-#define AT91C_TC0_IMR ((AT91_REG *) 0xFFFA002C) // (TC0) Interrupt Mask Register\r
-// ========== Register definition for TC1 peripheral ========== \r
-#define AT91C_TC1_RB ((AT91_REG *) 0xFFFA0058) // (TC1) Register B\r
-#define AT91C_TC1_CCR ((AT91_REG *) 0xFFFA0040) // (TC1) Channel Control Register\r
-#define AT91C_TC1_IER ((AT91_REG *) 0xFFFA0064) // (TC1) Interrupt Enable Register\r
-#define AT91C_TC1_IDR ((AT91_REG *) 0xFFFA0068) // (TC1) Interrupt Disable Register\r
-#define AT91C_TC1_SR ((AT91_REG *) 0xFFFA0060) // (TC1) Status Register\r
-#define AT91C_TC1_CMR ((AT91_REG *) 0xFFFA0044) // (TC1) Channel Mode Register (Capture Mode / Waveform Mode)\r
-#define AT91C_TC1_RA ((AT91_REG *) 0xFFFA0054) // (TC1) Register A\r
-#define AT91C_TC1_RC ((AT91_REG *) 0xFFFA005C) // (TC1) Register C\r
-#define AT91C_TC1_IMR ((AT91_REG *) 0xFFFA006C) // (TC1) Interrupt Mask Register\r
-#define AT91C_TC1_CV ((AT91_REG *) 0xFFFA0050) // (TC1) Counter Value\r
-// ========== Register definition for TC2 peripheral ========== \r
-#define AT91C_TC2_CMR ((AT91_REG *) 0xFFFA0084) // (TC2) Channel Mode Register (Capture Mode / Waveform Mode)\r
-#define AT91C_TC2_CCR ((AT91_REG *) 0xFFFA0080) // (TC2) Channel Control Register\r
-#define AT91C_TC2_CV ((AT91_REG *) 0xFFFA0090) // (TC2) Counter Value\r
-#define AT91C_TC2_RA ((AT91_REG *) 0xFFFA0094) // (TC2) Register A\r
-#define AT91C_TC2_RB ((AT91_REG *) 0xFFFA0098) // (TC2) Register B\r
-#define AT91C_TC2_IDR ((AT91_REG *) 0xFFFA00A8) // (TC2) Interrupt Disable Register\r
-#define AT91C_TC2_IMR ((AT91_REG *) 0xFFFA00AC) // (TC2) Interrupt Mask Register\r
-#define AT91C_TC2_RC ((AT91_REG *) 0xFFFA009C) // (TC2) Register C\r
-#define AT91C_TC2_IER ((AT91_REG *) 0xFFFA00A4) // (TC2) Interrupt Enable Register\r
-#define AT91C_TC2_SR ((AT91_REG *) 0xFFFA00A0) // (TC2) Status Register\r
-// ========== Register definition for TCB peripheral ========== \r
-#define AT91C_TCB_BMR ((AT91_REG *) 0xFFFA00C4) // (TCB) TC Block Mode Register\r
-#define AT91C_TCB_BCR ((AT91_REG *) 0xFFFA00C0) // (TCB) TC Block Control Register\r
-// ========== Register definition for CAN_MB0 peripheral ========== \r
-#define AT91C_CAN_MB0_MDL ((AT91_REG *) 0xFFFD0214) // (CAN_MB0) MailBox Data Low Register\r
-#define AT91C_CAN_MB0_MAM ((AT91_REG *) 0xFFFD0204) // (CAN_MB0) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB0_MCR ((AT91_REG *) 0xFFFD021C) // (CAN_MB0) MailBox Control Register\r
-#define AT91C_CAN_MB0_MID ((AT91_REG *) 0xFFFD0208) // (CAN_MB0) MailBox ID Register\r
-#define AT91C_CAN_MB0_MSR ((AT91_REG *) 0xFFFD0210) // (CAN_MB0) MailBox Status Register\r
-#define AT91C_CAN_MB0_MFID ((AT91_REG *) 0xFFFD020C) // (CAN_MB0) MailBox Family ID Register\r
-#define AT91C_CAN_MB0_MDH ((AT91_REG *) 0xFFFD0218) // (CAN_MB0) MailBox Data High Register\r
-#define AT91C_CAN_MB0_MMR ((AT91_REG *) 0xFFFD0200) // (CAN_MB0) MailBox Mode Register\r
-// ========== Register definition for CAN_MB1 peripheral ========== \r
-#define AT91C_CAN_MB1_MDL ((AT91_REG *) 0xFFFD0234) // (CAN_MB1) MailBox Data Low Register\r
-#define AT91C_CAN_MB1_MID ((AT91_REG *) 0xFFFD0228) // (CAN_MB1) MailBox ID Register\r
-#define AT91C_CAN_MB1_MMR ((AT91_REG *) 0xFFFD0220) // (CAN_MB1) MailBox Mode Register\r
-#define AT91C_CAN_MB1_MSR ((AT91_REG *) 0xFFFD0230) // (CAN_MB1) MailBox Status Register\r
-#define AT91C_CAN_MB1_MAM ((AT91_REG *) 0xFFFD0224) // (CAN_MB1) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB1_MDH ((AT91_REG *) 0xFFFD0238) // (CAN_MB1) MailBox Data High Register\r
-#define AT91C_CAN_MB1_MCR ((AT91_REG *) 0xFFFD023C) // (CAN_MB1) MailBox Control Register\r
-#define AT91C_CAN_MB1_MFID ((AT91_REG *) 0xFFFD022C) // (CAN_MB1) MailBox Family ID Register\r
-// ========== Register definition for CAN_MB2 peripheral ========== \r
-#define AT91C_CAN_MB2_MCR ((AT91_REG *) 0xFFFD025C) // (CAN_MB2) MailBox Control Register\r
-#define AT91C_CAN_MB2_MDH ((AT91_REG *) 0xFFFD0258) // (CAN_MB2) MailBox Data High Register\r
-#define AT91C_CAN_MB2_MID ((AT91_REG *) 0xFFFD0248) // (CAN_MB2) MailBox ID Register\r
-#define AT91C_CAN_MB2_MDL ((AT91_REG *) 0xFFFD0254) // (CAN_MB2) MailBox Data Low Register\r
-#define AT91C_CAN_MB2_MMR ((AT91_REG *) 0xFFFD0240) // (CAN_MB2) MailBox Mode Register\r
-#define AT91C_CAN_MB2_MAM ((AT91_REG *) 0xFFFD0244) // (CAN_MB2) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB2_MFID ((AT91_REG *) 0xFFFD024C) // (CAN_MB2) MailBox Family ID Register\r
-#define AT91C_CAN_MB2_MSR ((AT91_REG *) 0xFFFD0250) // (CAN_MB2) MailBox Status Register\r
-// ========== Register definition for CAN_MB3 peripheral ========== \r
-#define AT91C_CAN_MB3_MFID ((AT91_REG *) 0xFFFD026C) // (CAN_MB3) MailBox Family ID Register\r
-#define AT91C_CAN_MB3_MAM ((AT91_REG *) 0xFFFD0264) // (CAN_MB3) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB3_MID ((AT91_REG *) 0xFFFD0268) // (CAN_MB3) MailBox ID Register\r
-#define AT91C_CAN_MB3_MCR ((AT91_REG *) 0xFFFD027C) // (CAN_MB3) MailBox Control Register\r
-#define AT91C_CAN_MB3_MMR ((AT91_REG *) 0xFFFD0260) // (CAN_MB3) MailBox Mode Register\r
-#define AT91C_CAN_MB3_MSR ((AT91_REG *) 0xFFFD0270) // (CAN_MB3) MailBox Status Register\r
-#define AT91C_CAN_MB3_MDL ((AT91_REG *) 0xFFFD0274) // (CAN_MB3) MailBox Data Low Register\r
-#define AT91C_CAN_MB3_MDH ((AT91_REG *) 0xFFFD0278) // (CAN_MB3) MailBox Data High Register\r
-// ========== Register definition for CAN_MB4 peripheral ========== \r
-#define AT91C_CAN_MB4_MID ((AT91_REG *) 0xFFFD0288) // (CAN_MB4) MailBox ID Register\r
-#define AT91C_CAN_MB4_MMR ((AT91_REG *) 0xFFFD0280) // (CAN_MB4) MailBox Mode Register\r
-#define AT91C_CAN_MB4_MDH ((AT91_REG *) 0xFFFD0298) // (CAN_MB4) MailBox Data High Register\r
-#define AT91C_CAN_MB4_MFID ((AT91_REG *) 0xFFFD028C) // (CAN_MB4) MailBox Family ID Register\r
-#define AT91C_CAN_MB4_MSR ((AT91_REG *) 0xFFFD0290) // (CAN_MB4) MailBox Status Register\r
-#define AT91C_CAN_MB4_MCR ((AT91_REG *) 0xFFFD029C) // (CAN_MB4) MailBox Control Register\r
-#define AT91C_CAN_MB4_MDL ((AT91_REG *) 0xFFFD0294) // (CAN_MB4) MailBox Data Low Register\r
-#define AT91C_CAN_MB4_MAM ((AT91_REG *) 0xFFFD0284) // (CAN_MB4) MailBox Acceptance Mask Register\r
-// ========== Register definition for CAN_MB5 peripheral ========== \r
-#define AT91C_CAN_MB5_MSR ((AT91_REG *) 0xFFFD02B0) // (CAN_MB5) MailBox Status Register\r
-#define AT91C_CAN_MB5_MCR ((AT91_REG *) 0xFFFD02BC) // (CAN_MB5) MailBox Control Register\r
-#define AT91C_CAN_MB5_MFID ((AT91_REG *) 0xFFFD02AC) // (CAN_MB5) MailBox Family ID Register\r
-#define AT91C_CAN_MB5_MDH ((AT91_REG *) 0xFFFD02B8) // (CAN_MB5) MailBox Data High Register\r
-#define AT91C_CAN_MB5_MID ((AT91_REG *) 0xFFFD02A8) // (CAN_MB5) MailBox ID Register\r
-#define AT91C_CAN_MB5_MMR ((AT91_REG *) 0xFFFD02A0) // (CAN_MB5) MailBox Mode Register\r
-#define AT91C_CAN_MB5_MDL ((AT91_REG *) 0xFFFD02B4) // (CAN_MB5) MailBox Data Low Register\r
-#define AT91C_CAN_MB5_MAM ((AT91_REG *) 0xFFFD02A4) // (CAN_MB5) MailBox Acceptance Mask Register\r
-// ========== Register definition for CAN_MB6 peripheral ========== \r
-#define AT91C_CAN_MB6_MFID ((AT91_REG *) 0xFFFD02CC) // (CAN_MB6) MailBox Family ID Register\r
-#define AT91C_CAN_MB6_MID ((AT91_REG *) 0xFFFD02C8) // (CAN_MB6) MailBox ID Register\r
-#define AT91C_CAN_MB6_MAM ((AT91_REG *) 0xFFFD02C4) // (CAN_MB6) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB6_MSR ((AT91_REG *) 0xFFFD02D0) // (CAN_MB6) MailBox Status Register\r
-#define AT91C_CAN_MB6_MDL ((AT91_REG *) 0xFFFD02D4) // (CAN_MB6) MailBox Data Low Register\r
-#define AT91C_CAN_MB6_MCR ((AT91_REG *) 0xFFFD02DC) // (CAN_MB6) MailBox Control Register\r
-#define AT91C_CAN_MB6_MDH ((AT91_REG *) 0xFFFD02D8) // (CAN_MB6) MailBox Data High Register\r
-#define AT91C_CAN_MB6_MMR ((AT91_REG *) 0xFFFD02C0) // (CAN_MB6) MailBox Mode Register\r
-// ========== Register definition for CAN_MB7 peripheral ========== \r
-#define AT91C_CAN_MB7_MCR ((AT91_REG *) 0xFFFD02FC) // (CAN_MB7) MailBox Control Register\r
-#define AT91C_CAN_MB7_MDH ((AT91_REG *) 0xFFFD02F8) // (CAN_MB7) MailBox Data High Register\r
-#define AT91C_CAN_MB7_MFID ((AT91_REG *) 0xFFFD02EC) // (CAN_MB7) MailBox Family ID Register\r
-#define AT91C_CAN_MB7_MDL ((AT91_REG *) 0xFFFD02F4) // (CAN_MB7) MailBox Data Low Register\r
-#define AT91C_CAN_MB7_MID ((AT91_REG *) 0xFFFD02E8) // (CAN_MB7) MailBox ID Register\r
-#define AT91C_CAN_MB7_MMR ((AT91_REG *) 0xFFFD02E0) // (CAN_MB7) MailBox Mode Register\r
-#define AT91C_CAN_MB7_MAM ((AT91_REG *) 0xFFFD02E4) // (CAN_MB7) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB7_MSR ((AT91_REG *) 0xFFFD02F0) // (CAN_MB7) MailBox Status Register\r
-// ========== Register definition for CAN peripheral ========== \r
-#define AT91C_CAN_TCR ((AT91_REG *) 0xFFFD0024) // (CAN) Transfer Command Register\r
-#define AT91C_CAN_IMR ((AT91_REG *) 0xFFFD000C) // (CAN) Interrupt Mask Register\r
-#define AT91C_CAN_IER ((AT91_REG *) 0xFFFD0004) // (CAN) Interrupt Enable Register\r
-#define AT91C_CAN_ECR ((AT91_REG *) 0xFFFD0020) // (CAN) Error Counter Register\r
-#define AT91C_CAN_TIMESTP ((AT91_REG *) 0xFFFD001C) // (CAN) Time Stamp Register\r
-#define AT91C_CAN_MR ((AT91_REG *) 0xFFFD0000) // (CAN) Mode Register\r
-#define AT91C_CAN_IDR ((AT91_REG *) 0xFFFD0008) // (CAN) Interrupt Disable Register\r
-#define AT91C_CAN_ACR ((AT91_REG *) 0xFFFD0028) // (CAN) Abort Command Register\r
-#define AT91C_CAN_TIM ((AT91_REG *) 0xFFFD0018) // (CAN) Timer Register\r
-#define AT91C_CAN_SR ((AT91_REG *) 0xFFFD0010) // (CAN) Status Register\r
-#define AT91C_CAN_BR ((AT91_REG *) 0xFFFD0014) // (CAN) Baudrate Register\r
-#define AT91C_CAN_VR ((AT91_REG *) 0xFFFD00FC) // (CAN) Version Register\r
-// ========== Register definition for EMAC peripheral ========== \r
-#define AT91C_EMAC_ISR ((AT91_REG *) 0xFFFDC024) // (EMAC) Interrupt Status Register\r
-#define AT91C_EMAC_SA4H ((AT91_REG *) 0xFFFDC0B4) // (EMAC) Specific Address 4 Top, Last 2 bytes\r
-#define AT91C_EMAC_SA1L ((AT91_REG *) 0xFFFDC098) // (EMAC) Specific Address 1 Bottom, First 4 bytes\r
-#define AT91C_EMAC_ELE ((AT91_REG *) 0xFFFDC078) // (EMAC) Excessive Length Errors Register\r
-#define AT91C_EMAC_LCOL ((AT91_REG *) 0xFFFDC05C) // (EMAC) Late Collision Register\r
-#define AT91C_EMAC_RLE ((AT91_REG *) 0xFFFDC088) // (EMAC) Receive Length Field Mismatch Register\r
-#define AT91C_EMAC_WOL ((AT91_REG *) 0xFFFDC0C4) // (EMAC) Wake On LAN Register\r
-#define AT91C_EMAC_DTF ((AT91_REG *) 0xFFFDC058) // (EMAC) Deferred Transmission Frame Register\r
-#define AT91C_EMAC_TUND ((AT91_REG *) 0xFFFDC064) // (EMAC) Transmit Underrun Error Register\r
-#define AT91C_EMAC_NCR ((AT91_REG *) 0xFFFDC000) // (EMAC) Network Control Register\r
-#define AT91C_EMAC_SA4L ((AT91_REG *) 0xFFFDC0B0) // (EMAC) Specific Address 4 Bottom, First 4 bytes\r
-#define AT91C_EMAC_RSR ((AT91_REG *) 0xFFFDC020) // (EMAC) Receive Status Register\r
-#define AT91C_EMAC_SA3L ((AT91_REG *) 0xFFFDC0A8) // (EMAC) Specific Address 3 Bottom, First 4 bytes\r
-#define AT91C_EMAC_TSR ((AT91_REG *) 0xFFFDC014) // (EMAC) Transmit Status Register\r
-#define AT91C_EMAC_IDR ((AT91_REG *) 0xFFFDC02C) // (EMAC) Interrupt Disable Register\r
-#define AT91C_EMAC_RSE ((AT91_REG *) 0xFFFDC074) // (EMAC) Receive Symbol Errors Register\r
-#define AT91C_EMAC_ECOL ((AT91_REG *) 0xFFFDC060) // (EMAC) Excessive Collision Register\r
-#define AT91C_EMAC_TID ((AT91_REG *) 0xFFFDC0B8) // (EMAC) Type ID Checking Register\r
-#define AT91C_EMAC_HRB ((AT91_REG *) 0xFFFDC090) // (EMAC) Hash Address Bottom[31:0]\r
-#define AT91C_EMAC_TBQP ((AT91_REG *) 0xFFFDC01C) // (EMAC) Transmit Buffer Queue Pointer\r
-#define AT91C_EMAC_USRIO ((AT91_REG *) 0xFFFDC0C0) // (EMAC) USER Input/Output Register\r
-#define AT91C_EMAC_PTR ((AT91_REG *) 0xFFFDC038) // (EMAC) Pause Time Register\r
-#define AT91C_EMAC_SA2H ((AT91_REG *) 0xFFFDC0A4) // (EMAC) Specific Address 2 Top, Last 2 bytes\r
-#define AT91C_EMAC_ROV ((AT91_REG *) 0xFFFDC070) // (EMAC) Receive Overrun Errors Register\r
-#define AT91C_EMAC_ALE ((AT91_REG *) 0xFFFDC054) // (EMAC) Alignment Error Register\r
-#define AT91C_EMAC_RJA ((AT91_REG *) 0xFFFDC07C) // (EMAC) Receive Jabbers Register\r
-#define AT91C_EMAC_RBQP ((AT91_REG *) 0xFFFDC018) // (EMAC) Receive Buffer Queue Pointer\r
-#define AT91C_EMAC_TPF ((AT91_REG *) 0xFFFDC08C) // (EMAC) Transmitted Pause Frames Register\r
-#define AT91C_EMAC_NCFGR ((AT91_REG *) 0xFFFDC004) // (EMAC) Network Configuration Register\r
-#define AT91C_EMAC_HRT ((AT91_REG *) 0xFFFDC094) // (EMAC) Hash Address Top[63:32]\r
-#define AT91C_EMAC_USF ((AT91_REG *) 0xFFFDC080) // (EMAC) Undersize Frames Register\r
-#define AT91C_EMAC_FCSE ((AT91_REG *) 0xFFFDC050) // (EMAC) Frame Check Sequence Error Register\r
-#define AT91C_EMAC_TPQ ((AT91_REG *) 0xFFFDC0BC) // (EMAC) Transmit Pause Quantum Register\r
-#define AT91C_EMAC_MAN ((AT91_REG *) 0xFFFDC034) // (EMAC) PHY Maintenance Register\r
-#define AT91C_EMAC_FTO ((AT91_REG *) 0xFFFDC040) // (EMAC) Frames Transmitted OK Register\r
-#define AT91C_EMAC_REV ((AT91_REG *) 0xFFFDC0FC) // (EMAC) Revision Register\r
-#define AT91C_EMAC_IMR ((AT91_REG *) 0xFFFDC030) // (EMAC) Interrupt Mask Register\r
-#define AT91C_EMAC_SCF ((AT91_REG *) 0xFFFDC044) // (EMAC) Single Collision Frame Register\r
-#define AT91C_EMAC_PFR ((AT91_REG *) 0xFFFDC03C) // (EMAC) Pause Frames received Register\r
-#define AT91C_EMAC_MCF ((AT91_REG *) 0xFFFDC048) // (EMAC) Multiple Collision Frame Register\r
-#define AT91C_EMAC_NSR ((AT91_REG *) 0xFFFDC008) // (EMAC) Network Status Register\r
-#define AT91C_EMAC_SA2L ((AT91_REG *) 0xFFFDC0A0) // (EMAC) Specific Address 2 Bottom, First 4 bytes\r
-#define AT91C_EMAC_FRO ((AT91_REG *) 0xFFFDC04C) // (EMAC) Frames Received OK Register\r
-#define AT91C_EMAC_IER ((AT91_REG *) 0xFFFDC028) // (EMAC) Interrupt Enable Register\r
-#define AT91C_EMAC_SA1H ((AT91_REG *) 0xFFFDC09C) // (EMAC) Specific Address 1 Top, Last 2 bytes\r
-#define AT91C_EMAC_CSE ((AT91_REG *) 0xFFFDC068) // (EMAC) Carrier Sense Error Register\r
-#define AT91C_EMAC_SA3H ((AT91_REG *) 0xFFFDC0AC) // (EMAC) Specific Address 3 Top, Last 2 bytes\r
-#define AT91C_EMAC_RRE ((AT91_REG *) 0xFFFDC06C) // (EMAC) Receive Ressource Error Register\r
-#define AT91C_EMAC_STE ((AT91_REG *) 0xFFFDC084) // (EMAC) SQE Test Error Register\r
-// ========== Register definition for PDC_ADC peripheral ========== \r
-#define AT91C_ADC_PTSR ((AT91_REG *) 0xFFFD8124) // (PDC_ADC) PDC Transfer Status Register\r
-#define AT91C_ADC_PTCR ((AT91_REG *) 0xFFFD8120) // (PDC_ADC) PDC Transfer Control Register\r
-#define AT91C_ADC_TNPR ((AT91_REG *) 0xFFFD8118) // (PDC_ADC) Transmit Next Pointer Register\r
-#define AT91C_ADC_TNCR ((AT91_REG *) 0xFFFD811C) // (PDC_ADC) Transmit Next Counter Register\r
-#define AT91C_ADC_RNPR ((AT91_REG *) 0xFFFD8110) // (PDC_ADC) Receive Next Pointer Register\r
-#define AT91C_ADC_RNCR ((AT91_REG *) 0xFFFD8114) // (PDC_ADC) Receive Next Counter Register\r
-#define AT91C_ADC_RPR ((AT91_REG *) 0xFFFD8100) // (PDC_ADC) Receive Pointer Register\r
-#define AT91C_ADC_TCR ((AT91_REG *) 0xFFFD810C) // (PDC_ADC) Transmit Counter Register\r
-#define AT91C_ADC_TPR ((AT91_REG *) 0xFFFD8108) // (PDC_ADC) Transmit Pointer Register\r
-#define AT91C_ADC_RCR ((AT91_REG *) 0xFFFD8104) // (PDC_ADC) Receive Counter Register\r
-// ========== Register definition for ADC peripheral ========== \r
-#define AT91C_ADC_CDR2 ((AT91_REG *) 0xFFFD8038) // (ADC) ADC Channel Data Register 2\r
-#define AT91C_ADC_CDR3 ((AT91_REG *) 0xFFFD803C) // (ADC) ADC Channel Data Register 3\r
-#define AT91C_ADC_CDR0 ((AT91_REG *) 0xFFFD8030) // (ADC) ADC Channel Data Register 0\r
-#define AT91C_ADC_CDR5 ((AT91_REG *) 0xFFFD8044) // (ADC) ADC Channel Data Register 5\r
-#define AT91C_ADC_CHDR ((AT91_REG *) 0xFFFD8014) // (ADC) ADC Channel Disable Register\r
-#define AT91C_ADC_SR ((AT91_REG *) 0xFFFD801C) // (ADC) ADC Status Register\r
-#define AT91C_ADC_CDR4 ((AT91_REG *) 0xFFFD8040) // (ADC) ADC Channel Data Register 4\r
-#define AT91C_ADC_CDR1 ((AT91_REG *) 0xFFFD8034) // (ADC) ADC Channel Data Register 1\r
-#define AT91C_ADC_LCDR ((AT91_REG *) 0xFFFD8020) // (ADC) ADC Last Converted Data Register\r
-#define AT91C_ADC_IDR ((AT91_REG *) 0xFFFD8028) // (ADC) ADC Interrupt Disable Register\r
-#define AT91C_ADC_CR ((AT91_REG *) 0xFFFD8000) // (ADC) ADC Control Register\r
-#define AT91C_ADC_CDR7 ((AT91_REG *) 0xFFFD804C) // (ADC) ADC Channel Data Register 7\r
-#define AT91C_ADC_CDR6 ((AT91_REG *) 0xFFFD8048) // (ADC) ADC Channel Data Register 6\r
-#define AT91C_ADC_IER ((AT91_REG *) 0xFFFD8024) // (ADC) ADC Interrupt Enable Register\r
-#define AT91C_ADC_CHER ((AT91_REG *) 0xFFFD8010) // (ADC) ADC Channel Enable Register\r
-#define AT91C_ADC_CHSR ((AT91_REG *) 0xFFFD8018) // (ADC) ADC Channel Status Register\r
-#define AT91C_ADC_MR ((AT91_REG *) 0xFFFD8004) // (ADC) ADC Mode Register\r
-#define AT91C_ADC_IMR ((AT91_REG *) 0xFFFD802C) // (ADC) ADC Interrupt Mask Register\r
-// ========== Register definition for PDC_AES peripheral ========== \r
-#define AT91C_AES_TPR ((AT91_REG *) 0xFFFA4108) // (PDC_AES) Transmit Pointer Register\r
-#define AT91C_AES_PTCR ((AT91_REG *) 0xFFFA4120) // (PDC_AES) PDC Transfer Control Register\r
-#define AT91C_AES_RNPR ((AT91_REG *) 0xFFFA4110) // (PDC_AES) Receive Next Pointer Register\r
-#define AT91C_AES_TNCR ((AT91_REG *) 0xFFFA411C) // (PDC_AES) Transmit Next Counter Register\r
-#define AT91C_AES_TCR ((AT91_REG *) 0xFFFA410C) // (PDC_AES) Transmit Counter Register\r
-#define AT91C_AES_RCR ((AT91_REG *) 0xFFFA4104) // (PDC_AES) Receive Counter Register\r
-#define AT91C_AES_RNCR ((AT91_REG *) 0xFFFA4114) // (PDC_AES) Receive Next Counter Register\r
-#define AT91C_AES_TNPR ((AT91_REG *) 0xFFFA4118) // (PDC_AES) Transmit Next Pointer Register\r
-#define AT91C_AES_RPR ((AT91_REG *) 0xFFFA4100) // (PDC_AES) Receive Pointer Register\r
-#define AT91C_AES_PTSR ((AT91_REG *) 0xFFFA4124) // (PDC_AES) PDC Transfer Status Register\r
-// ========== Register definition for AES peripheral ========== \r
-#define AT91C_AES_IVxR ((AT91_REG *) 0xFFFA4060) // (AES) Initialization Vector x Register\r
-#define AT91C_AES_MR ((AT91_REG *) 0xFFFA4004) // (AES) Mode Register\r
-#define AT91C_AES_VR ((AT91_REG *) 0xFFFA40FC) // (AES) AES Version Register\r
-#define AT91C_AES_ODATAxR ((AT91_REG *) 0xFFFA4050) // (AES) Output Data x Register\r
-#define AT91C_AES_IDATAxR ((AT91_REG *) 0xFFFA4040) // (AES) Input Data x Register\r
-#define AT91C_AES_CR ((AT91_REG *) 0xFFFA4000) // (AES) Control Register\r
-#define AT91C_AES_IDR ((AT91_REG *) 0xFFFA4014) // (AES) Interrupt Disable Register\r
-#define AT91C_AES_IMR ((AT91_REG *) 0xFFFA4018) // (AES) Interrupt Mask Register\r
-#define AT91C_AES_IER ((AT91_REG *) 0xFFFA4010) // (AES) Interrupt Enable Register\r
-#define AT91C_AES_KEYWxR ((AT91_REG *) 0xFFFA4020) // (AES) Key Word x Register\r
-#define AT91C_AES_ISR ((AT91_REG *) 0xFFFA401C) // (AES) Interrupt Status Register\r
-// ========== Register definition for PDC_TDES peripheral ========== \r
-#define AT91C_TDES_RNCR ((AT91_REG *) 0xFFFA8114) // (PDC_TDES) Receive Next Counter Register\r
-#define AT91C_TDES_TCR ((AT91_REG *) 0xFFFA810C) // (PDC_TDES) Transmit Counter Register\r
-#define AT91C_TDES_RCR ((AT91_REG *) 0xFFFA8104) // (PDC_TDES) Receive Counter Register\r
-#define AT91C_TDES_TNPR ((AT91_REG *) 0xFFFA8118) // (PDC_TDES) Transmit Next Pointer Register\r
-#define AT91C_TDES_RNPR ((AT91_REG *) 0xFFFA8110) // (PDC_TDES) Receive Next Pointer Register\r
-#define AT91C_TDES_RPR ((AT91_REG *) 0xFFFA8100) // (PDC_TDES) Receive Pointer Register\r
-#define AT91C_TDES_TNCR ((AT91_REG *) 0xFFFA811C) // (PDC_TDES) Transmit Next Counter Register\r
-#define AT91C_TDES_TPR ((AT91_REG *) 0xFFFA8108) // (PDC_TDES) Transmit Pointer Register\r
-#define AT91C_TDES_PTSR ((AT91_REG *) 0xFFFA8124) // (PDC_TDES) PDC Transfer Status Register\r
-#define AT91C_TDES_PTCR ((AT91_REG *) 0xFFFA8120) // (PDC_TDES) PDC Transfer Control Register\r
-// ========== Register definition for TDES peripheral ========== \r
-#define AT91C_TDES_KEY2WxR ((AT91_REG *) 0xFFFA8028) // (TDES) Key 2 Word x Register\r
-#define AT91C_TDES_KEY3WxR ((AT91_REG *) 0xFFFA8030) // (TDES) Key 3 Word x Register\r
-#define AT91C_TDES_IDR ((AT91_REG *) 0xFFFA8014) // (TDES) Interrupt Disable Register\r
-#define AT91C_TDES_VR ((AT91_REG *) 0xFFFA80FC) // (TDES) TDES Version Register\r
-#define AT91C_TDES_IVxR ((AT91_REG *) 0xFFFA8060) // (TDES) Initialization Vector x Register\r
-#define AT91C_TDES_ODATAxR ((AT91_REG *) 0xFFFA8050) // (TDES) Output Data x Register\r
-#define AT91C_TDES_IMR ((AT91_REG *) 0xFFFA8018) // (TDES) Interrupt Mask Register\r
-#define AT91C_TDES_MR ((AT91_REG *) 0xFFFA8004) // (TDES) Mode Register\r
-#define AT91C_TDES_CR ((AT91_REG *) 0xFFFA8000) // (TDES) Control Register\r
-#define AT91C_TDES_IER ((AT91_REG *) 0xFFFA8010) // (TDES) Interrupt Enable Register\r
-#define AT91C_TDES_ISR ((AT91_REG *) 0xFFFA801C) // (TDES) Interrupt Status Register\r
-#define AT91C_TDES_IDATAxR ((AT91_REG *) 0xFFFA8040) // (TDES) Input Data x Register\r
-#define AT91C_TDES_KEY1WxR ((AT91_REG *) 0xFFFA8020) // (TDES) Key 1 Word x Register\r
-\r
-// *****************************************************************************\r
-// PIO DEFINITIONS FOR AT91SAM7X128\r
-// *****************************************************************************\r
-#define AT91C_PIO_PA0 ((unsigned int) 1 << 0) // Pin Controlled by PA0\r
-#define AT91C_PA0_RXD0 ((unsigned int) AT91C_PIO_PA0) // USART 0 Receive Data\r
-#define AT91C_PIO_PA1 ((unsigned int) 1 << 1) // Pin Controlled by PA1\r
-#define AT91C_PA1_TXD0 ((unsigned int) AT91C_PIO_PA1) // USART 0 Transmit Data\r
-#define AT91C_PIO_PA10 ((unsigned int) 1 << 10) // Pin Controlled by PA10\r
-#define AT91C_PA10_TWD ((unsigned int) AT91C_PIO_PA10) // TWI Two-wire Serial Data\r
-#define AT91C_PIO_PA11 ((unsigned int) 1 << 11) // Pin Controlled by PA11\r
-#define AT91C_PA11_TWCK ((unsigned int) AT91C_PIO_PA11) // TWI Two-wire Serial Clock\r
-#define AT91C_PIO_PA12 ((unsigned int) 1 << 12) // Pin Controlled by PA12\r
-#define AT91C_PA12_NPCS00 ((unsigned int) AT91C_PIO_PA12) // SPI 0 Peripheral Chip Select 0\r
-#define AT91C_PIO_PA13 ((unsigned int) 1 << 13) // Pin Controlled by PA13\r
-#define AT91C_PA13_NPCS01 ((unsigned int) AT91C_PIO_PA13) // SPI 0 Peripheral Chip Select 1\r
-#define AT91C_PA13_PCK1 ((unsigned int) AT91C_PIO_PA13) // PMC Programmable Clock Output 1\r
-#define AT91C_PIO_PA14 ((unsigned int) 1 << 14) // Pin Controlled by PA14\r
-#define AT91C_PA14_NPCS02 ((unsigned int) AT91C_PIO_PA14) // SPI 0 Peripheral Chip Select 2\r
-#define AT91C_PA14_IRQ1 ((unsigned int) AT91C_PIO_PA14) // External Interrupt 1\r
-#define AT91C_PIO_PA15 ((unsigned int) 1 << 15) // Pin Controlled by PA15\r
-#define AT91C_PA15_NPCS03 ((unsigned int) AT91C_PIO_PA15) // SPI 0 Peripheral Chip Select 3\r
-#define AT91C_PA15_TCLK2 ((unsigned int) AT91C_PIO_PA15) // Timer Counter 2 external clock input\r
-#define AT91C_PIO_PA16 ((unsigned int) 1 << 16) // Pin Controlled by PA16\r
-#define AT91C_PA16_MISO0 ((unsigned int) AT91C_PIO_PA16) // SPI 0 Master In Slave\r
-#define AT91C_PIO_PA17 ((unsigned int) 1 << 17) // Pin Controlled by PA17\r
-#define AT91C_PA17_MOSI0 ((unsigned int) AT91C_PIO_PA17) // SPI 0 Master Out Slave\r
-#define AT91C_PIO_PA18 ((unsigned int) 1 << 18) // Pin Controlled by PA18\r
-#define AT91C_PA18_SPCK0 ((unsigned int) AT91C_PIO_PA18) // SPI 0 Serial Clock\r
-#define AT91C_PIO_PA19 ((unsigned int) 1 << 19) // Pin Controlled by PA19\r
-#define AT91C_PA19_CANRX ((unsigned int) AT91C_PIO_PA19) // CAN Receive\r
-#define AT91C_PIO_PA2 ((unsigned int) 1 << 2) // Pin Controlled by PA2\r
-#define AT91C_PA2_SCK0 ((unsigned int) AT91C_PIO_PA2) // USART 0 Serial Clock\r
-#define AT91C_PA2_NPCS11 ((unsigned int) AT91C_PIO_PA2) // SPI 1 Peripheral Chip Select 1\r
-#define AT91C_PIO_PA20 ((unsigned int) 1 << 20) // Pin Controlled by PA20\r
-#define AT91C_PA20_CANTX ((unsigned int) AT91C_PIO_PA20) // CAN Transmit\r
-#define AT91C_PIO_PA21 ((unsigned int) 1 << 21) // Pin Controlled by PA21\r
-#define AT91C_PA21_TF ((unsigned int) AT91C_PIO_PA21) // SSC Transmit Frame Sync\r
-#define AT91C_PA21_NPCS10 ((unsigned int) AT91C_PIO_PA21) // SPI 1 Peripheral Chip Select 0\r
-#define AT91C_PIO_PA22 ((unsigned int) 1 << 22) // Pin Controlled by PA22\r
-#define AT91C_PA22_TK ((unsigned int) AT91C_PIO_PA22) // SSC Transmit Clock\r
-#define AT91C_PA22_SPCK1 ((unsigned int) AT91C_PIO_PA22) // SPI 1 Serial Clock\r
-#define AT91C_PIO_PA23 ((unsigned int) 1 << 23) // Pin Controlled by PA23\r
-#define AT91C_PA23_TD ((unsigned int) AT91C_PIO_PA23) // SSC Transmit data\r
-#define AT91C_PA23_MOSI1 ((unsigned int) AT91C_PIO_PA23) // SPI 1 Master Out Slave\r
-#define AT91C_PIO_PA24 ((unsigned int) 1 << 24) // Pin Controlled by PA24\r
-#define AT91C_PA24_RD ((unsigned int) AT91C_PIO_PA24) // SSC Receive Data\r
-#define AT91C_PA24_MISO1 ((unsigned int) AT91C_PIO_PA24) // SPI 1 Master In Slave\r
-#define AT91C_PIO_PA25 ((unsigned int) 1 << 25) // Pin Controlled by PA25\r
-#define AT91C_PA25_RK ((unsigned int) AT91C_PIO_PA25) // SSC Receive Clock\r
-#define AT91C_PA25_NPCS11 ((unsigned int) AT91C_PIO_PA25) // SPI 1 Peripheral Chip Select 1\r
-#define AT91C_PIO_PA26 ((unsigned int) 1 << 26) // Pin Controlled by PA26\r
-#define AT91C_PA26_RF ((unsigned int) AT91C_PIO_PA26) // SSC Receive Frame Sync\r
-#define AT91C_PA26_NPCS12 ((unsigned int) AT91C_PIO_PA26) // SPI 1 Peripheral Chip Select 2\r
-#define AT91C_PIO_PA27 ((unsigned int) 1 << 27) // Pin Controlled by PA27\r
-#define AT91C_PA27_DRXD ((unsigned int) AT91C_PIO_PA27) // DBGU Debug Receive Data\r
-#define AT91C_PA27_PCK3 ((unsigned int) AT91C_PIO_PA27) // PMC Programmable Clock Output 3\r
-#define AT91C_PIO_PA28 ((unsigned int) 1 << 28) // Pin Controlled by PA28\r
-#define AT91C_PA28_DTXD ((unsigned int) AT91C_PIO_PA28) // DBGU Debug Transmit Data\r
-#define AT91C_PIO_PA29 ((unsigned int) 1 << 29) // Pin Controlled by PA29\r
-#define AT91C_PA29_FIQ ((unsigned int) AT91C_PIO_PA29) // AIC Fast Interrupt Input\r
-#define AT91C_PA29_NPCS13 ((unsigned int) AT91C_PIO_PA29) // SPI 1 Peripheral Chip Select 3\r
-#define AT91C_PIO_PA3 ((unsigned int) 1 << 3) // Pin Controlled by PA3\r
-#define AT91C_PA3_RTS0 ((unsigned int) AT91C_PIO_PA3) // USART 0 Ready To Send\r
-#define AT91C_PA3_NPCS12 ((unsigned int) AT91C_PIO_PA3) // SPI 1 Peripheral Chip Select 2\r
-#define AT91C_PIO_PA30 ((unsigned int) 1 << 30) // Pin Controlled by PA30\r
-#define AT91C_PA30_IRQ0 ((unsigned int) AT91C_PIO_PA30) // External Interrupt 0\r
-#define AT91C_PA30_PCK2 ((unsigned int) AT91C_PIO_PA30) // PMC Programmable Clock Output 2\r
-#define AT91C_PIO_PA4 ((unsigned int) 1 << 4) // Pin Controlled by PA4\r
-#define AT91C_PA4_CTS0 ((unsigned int) AT91C_PIO_PA4) // USART 0 Clear To Send\r
-#define AT91C_PA4_NPCS13 ((unsigned int) AT91C_PIO_PA4) // SPI 1 Peripheral Chip Select 3\r
-#define AT91C_PIO_PA5 ((unsigned int) 1 << 5) // Pin Controlled by PA5\r
-#define AT91C_PA5_RXD1 ((unsigned int) AT91C_PIO_PA5) // USART 1 Receive Data\r
-#define AT91C_PIO_PA6 ((unsigned int) 1 << 6) // Pin Controlled by PA6\r
-#define AT91C_PA6_TXD1 ((unsigned int) AT91C_PIO_PA6) // USART 1 Transmit Data\r
-#define AT91C_PIO_PA7 ((unsigned int) 1 << 7) // Pin Controlled by PA7\r
-#define AT91C_PA7_SCK1 ((unsigned int) AT91C_PIO_PA7) // USART 1 Serial Clock\r
-#define AT91C_PA7_NPCS01 ((unsigned int) AT91C_PIO_PA7) // SPI 0 Peripheral Chip Select 1\r
-#define AT91C_PIO_PA8 ((unsigned int) 1 << 8) // Pin Controlled by PA8\r
-#define AT91C_PA8_RTS1 ((unsigned int) AT91C_PIO_PA8) // USART 1 Ready To Send\r
-#define AT91C_PA8_NPCS02 ((unsigned int) AT91C_PIO_PA8) // SPI 0 Peripheral Chip Select 2\r
-#define AT91C_PIO_PA9 ((unsigned int) 1 << 9) // Pin Controlled by PA9\r
-#define AT91C_PA9_CTS1 ((unsigned int) AT91C_PIO_PA9) // USART 1 Clear To Send\r
-#define AT91C_PA9_NPCS03 ((unsigned int) AT91C_PIO_PA9) // SPI 0 Peripheral Chip Select 3\r
-#define AT91C_PIO_PB0 ((unsigned int) 1 << 0) // Pin Controlled by PB0\r
-#define AT91C_PB0_ETXCK_EREFCK ((unsigned int) AT91C_PIO_PB0) // Ethernet MAC Transmit Clock/Reference Clock\r
-#define AT91C_PB0_PCK0 ((unsigned int) AT91C_PIO_PB0) // PMC Programmable Clock Output 0\r
-#define AT91C_PIO_PB1 ((unsigned int) 1 << 1) // Pin Controlled by PB1\r
-#define AT91C_PB1_ETXEN ((unsigned int) AT91C_PIO_PB1) // Ethernet MAC Transmit Enable\r
-#define AT91C_PIO_PB10 ((unsigned int) 1 << 10) // Pin Controlled by PB10\r
-#define AT91C_PB10_ETX2 ((unsigned int) AT91C_PIO_PB10) // Ethernet MAC Transmit Data 2\r
-#define AT91C_PB10_NPCS11 ((unsigned int) AT91C_PIO_PB10) // SPI 1 Peripheral Chip Select 1\r
-#define AT91C_PIO_PB11 ((unsigned int) 1 << 11) // Pin Controlled by PB11\r
-#define AT91C_PB11_ETX3 ((unsigned int) AT91C_PIO_PB11) // Ethernet MAC Transmit Data 3\r
-#define AT91C_PB11_NPCS12 ((unsigned int) AT91C_PIO_PB11) // SPI 1 Peripheral Chip Select 2\r
-#define AT91C_PIO_PB12 ((unsigned int) 1 << 12) // Pin Controlled by PB12\r
-#define AT91C_PB12_ETXER ((unsigned int) AT91C_PIO_PB12) // Ethernet MAC Transmikt Coding Error\r
-#define AT91C_PB12_TCLK0 ((unsigned int) AT91C_PIO_PB12) // Timer Counter 0 external clock input\r
-#define AT91C_PIO_PB13 ((unsigned int) 1 << 13) // Pin Controlled by PB13\r
-#define AT91C_PB13_ERX2 ((unsigned int) AT91C_PIO_PB13) // Ethernet MAC Receive Data 2\r
-#define AT91C_PB13_NPCS01 ((unsigned int) AT91C_PIO_PB13) // SPI 0 Peripheral Chip Select 1\r
-#define AT91C_PIO_PB14 ((unsigned int) 1 << 14) // Pin Controlled by PB14\r
-#define AT91C_PB14_ERX3 ((unsigned int) AT91C_PIO_PB14) // Ethernet MAC Receive Data 3\r
-#define AT91C_PB14_NPCS02 ((unsigned int) AT91C_PIO_PB14) // SPI 0 Peripheral Chip Select 2\r
-#define AT91C_PIO_PB15 ((unsigned int) 1 << 15) // Pin Controlled by PB15\r
-#define AT91C_PB15_ERXDV ((unsigned int) AT91C_PIO_PB15) // Ethernet MAC Receive Data Valid\r
-#define AT91C_PIO_PB16 ((unsigned int) 1 << 16) // Pin Controlled by PB16\r
-#define AT91C_PB16_ECOL ((unsigned int) AT91C_PIO_PB16) // Ethernet MAC Collision Detected\r
-#define AT91C_PB16_NPCS13 ((unsigned int) AT91C_PIO_PB16) // SPI 1 Peripheral Chip Select 3\r
-#define AT91C_PIO_PB17 ((unsigned int) 1 << 17) // Pin Controlled by PB17\r
-#define AT91C_PB17_ERXCK ((unsigned int) AT91C_PIO_PB17) // Ethernet MAC Receive Clock\r
-#define AT91C_PB17_NPCS03 ((unsigned int) AT91C_PIO_PB17) // SPI 0 Peripheral Chip Select 3\r
-#define AT91C_PIO_PB18 ((unsigned int) 1 << 18) // Pin Controlled by PB18\r
-#define AT91C_PB18_EF100 ((unsigned int) AT91C_PIO_PB18) // Ethernet MAC Force 100 Mbits/sec\r
-#define AT91C_PB18_ADTRG ((unsigned int) AT91C_PIO_PB18) // ADC External Trigger\r
-#define AT91C_PIO_PB19 ((unsigned int) 1 << 19) // Pin Controlled by PB19\r
-#define AT91C_PB19_PWM0 ((unsigned int) AT91C_PIO_PB19) // PWM Channel 0\r
-#define AT91C_PB19_TCLK1 ((unsigned int) AT91C_PIO_PB19) // Timer Counter 1 external clock input\r
-#define AT91C_PIO_PB2 ((unsigned int) 1 << 2) // Pin Controlled by PB2\r
-#define AT91C_PB2_ETX0 ((unsigned int) AT91C_PIO_PB2) // Ethernet MAC Transmit Data 0\r
-#define AT91C_PIO_PB20 ((unsigned int) 1 << 20) // Pin Controlled by PB20\r
-#define AT91C_PB20_PWM1 ((unsigned int) AT91C_PIO_PB20) // PWM Channel 1\r
-#define AT91C_PB20_PCK0 ((unsigned int) AT91C_PIO_PB20) // PMC Programmable Clock Output 0\r
-#define AT91C_PIO_PB21 ((unsigned int) 1 << 21) // Pin Controlled by PB21\r
-#define AT91C_PB21_PWM2 ((unsigned int) AT91C_PIO_PB21) // PWM Channel 2\r
-#define AT91C_PB21_PCK1 ((unsigned int) AT91C_PIO_PB21) // PMC Programmable Clock Output 1\r
-#define AT91C_PIO_PB22 ((unsigned int) 1 << 22) // Pin Controlled by PB22\r
-#define AT91C_PB22_PWM3 ((unsigned int) AT91C_PIO_PB22) // PWM Channel 3\r
-#define AT91C_PB22_PCK2 ((unsigned int) AT91C_PIO_PB22) // PMC Programmable Clock Output 2\r
-#define AT91C_PIO_PB23 ((unsigned int) 1 << 23) // Pin Controlled by PB23\r
-#define AT91C_PB23_TIOA0 ((unsigned int) AT91C_PIO_PB23) // Timer Counter 0 Multipurpose Timer I/O Pin A\r
-#define AT91C_PB23_DCD1 ((unsigned int) AT91C_PIO_PB23) // USART 1 Data Carrier Detect\r
-#define AT91C_PIO_PB24 ((unsigned int) 1 << 24) // Pin Controlled by PB24\r
-#define AT91C_PB24_TIOB0 ((unsigned int) AT91C_PIO_PB24) // Timer Counter 0 Multipurpose Timer I/O Pin B\r
-#define AT91C_PB24_DSR1 ((unsigned int) AT91C_PIO_PB24) // USART 1 Data Set ready\r
-#define AT91C_PIO_PB25 ((unsigned int) 1 << 25) // Pin Controlled by PB25\r
-#define AT91C_PB25_TIOA1 ((unsigned int) AT91C_PIO_PB25) // Timer Counter 1 Multipurpose Timer I/O Pin A\r
-#define AT91C_PB25_DTR1 ((unsigned int) AT91C_PIO_PB25) // USART 1 Data Terminal ready\r
-#define AT91C_PIO_PB26 ((unsigned int) 1 << 26) // Pin Controlled by PB26\r
-#define AT91C_PB26_TIOB1 ((unsigned int) AT91C_PIO_PB26) // Timer Counter 1 Multipurpose Timer I/O Pin B\r
-#define AT91C_PB26_RI1 ((unsigned int) AT91C_PIO_PB26) // USART 1 Ring Indicator\r
-#define AT91C_PIO_PB27 ((unsigned int) 1 << 27) // Pin Controlled by PB27\r
-#define AT91C_PB27_TIOA2 ((unsigned int) AT91C_PIO_PB27) // Timer Counter 2 Multipurpose Timer I/O Pin A\r
-#define AT91C_PB27_PWM0 ((unsigned int) AT91C_PIO_PB27) // PWM Channel 0\r
-#define AT91C_PIO_PB28 ((unsigned int) 1 << 28) // Pin Controlled by PB28\r
-#define AT91C_PB28_TIOB2 ((unsigned int) AT91C_PIO_PB28) // Timer Counter 2 Multipurpose Timer I/O Pin B\r
-#define AT91C_PB28_PWM1 ((unsigned int) AT91C_PIO_PB28) // PWM Channel 1\r
-#define AT91C_PIO_PB29 ((unsigned int) 1 << 29) // Pin Controlled by PB29\r
-#define AT91C_PB29_PCK1 ((unsigned int) AT91C_PIO_PB29) // PMC Programmable Clock Output 1\r
-#define AT91C_PB29_PWM2 ((unsigned int) AT91C_PIO_PB29) // PWM Channel 2\r
-#define AT91C_PIO_PB3 ((unsigned int) 1 << 3) // Pin Controlled by PB3\r
-#define AT91C_PB3_ETX1 ((unsigned int) AT91C_PIO_PB3) // Ethernet MAC Transmit Data 1\r
-#define AT91C_PIO_PB30 ((unsigned int) 1 << 30) // Pin Controlled by PB30\r
-#define AT91C_PB30_PCK2 ((unsigned int) AT91C_PIO_PB30) // PMC Programmable Clock Output 2\r
-#define AT91C_PB30_PWM3 ((unsigned int) AT91C_PIO_PB30) // PWM Channel 3\r
-#define AT91C_PIO_PB4 ((unsigned int) 1 << 4) // Pin Controlled by PB4\r
-#define AT91C_PB4_ECRS_ECRSDV ((unsigned int) AT91C_PIO_PB4) // Ethernet MAC Carrier Sense/Carrier Sense and Data Valid\r
-#define AT91C_PIO_PB5 ((unsigned int) 1 << 5) // Pin Controlled by PB5\r
-#define AT91C_PB5_ERX0 ((unsigned int) AT91C_PIO_PB5) // Ethernet MAC Receive Data 0\r
-#define AT91C_PIO_PB6 ((unsigned int) 1 << 6) // Pin Controlled by PB6\r
-#define AT91C_PB6_ERX1 ((unsigned int) AT91C_PIO_PB6) // Ethernet MAC Receive Data 1\r
-#define AT91C_PIO_PB7 ((unsigned int) 1 << 7) // Pin Controlled by PB7\r
-#define AT91C_PB7_ERXER ((unsigned int) AT91C_PIO_PB7) // Ethernet MAC Receive Error\r
-#define AT91C_PIO_PB8 ((unsigned int) 1 << 8) // Pin Controlled by PB8\r
-#define AT91C_PB8_EMDC ((unsigned int) AT91C_PIO_PB8) // Ethernet MAC Management Data Clock\r
-#define AT91C_PIO_PB9 ((unsigned int) 1 << 9) // Pin Controlled by PB9\r
-#define AT91C_PB9_EMDIO ((unsigned int) AT91C_PIO_PB9) // Ethernet MAC Management Data Input/Output\r
-\r
-// *****************************************************************************\r
-// PERIPHERAL ID DEFINITIONS FOR AT91SAM7X128\r
-// *****************************************************************************\r
-#define AT91C_ID_FIQ ((unsigned int) 0) // Advanced Interrupt Controller (FIQ)\r
-#define AT91C_ID_SYS ((unsigned int) 1) // System Peripheral\r
-#define AT91C_ID_PIOA ((unsigned int) 2) // Parallel IO Controller A\r
-#define AT91C_ID_PIOB ((unsigned int) 3) // Parallel IO Controller B\r
-#define AT91C_ID_SPI0 ((unsigned int) 4) // Serial Peripheral Interface 0\r
-#define AT91C_ID_SPI1 ((unsigned int) 5) // Serial Peripheral Interface 1\r
-#define AT91C_ID_US0 ((unsigned int) 6) // USART 0\r
-#define AT91C_ID_US1 ((unsigned int) 7) // USART 1\r
-#define AT91C_ID_SSC ((unsigned int) 8) // Serial Synchronous Controller\r
-#define AT91C_ID_TWI ((unsigned int) 9) // Two-Wire Interface\r
-#define AT91C_ID_PWMC ((unsigned int) 10) // PWM Controller\r
-#define AT91C_ID_UDP ((unsigned int) 11) // USB Device Port\r
-#define AT91C_ID_TC0 ((unsigned int) 12) // Timer Counter 0\r
-#define AT91C_ID_TC1 ((unsigned int) 13) // Timer Counter 1\r
-#define AT91C_ID_TC2 ((unsigned int) 14) // Timer Counter 2\r
-#define AT91C_ID_CAN ((unsigned int) 15) // Control Area Network Controller\r
-#define AT91C_ID_EMAC ((unsigned int) 16) // Ethernet MAC\r
-#define AT91C_ID_ADC ((unsigned int) 17) // Analog-to-Digital Converter\r
-#define AT91C_ID_AES ((unsigned int) 18) // Advanced Encryption Standard 128-bit\r
-#define AT91C_ID_TDES ((unsigned int) 19) // Triple Data Encryption Standard\r
-#define AT91C_ID_20_Reserved ((unsigned int) 20) // Reserved\r
-#define AT91C_ID_21_Reserved ((unsigned int) 21) // Reserved\r
-#define AT91C_ID_22_Reserved ((unsigned int) 22) // Reserved\r
-#define AT91C_ID_23_Reserved ((unsigned int) 23) // Reserved\r
-#define AT91C_ID_24_Reserved ((unsigned int) 24) // Reserved\r
-#define AT91C_ID_25_Reserved ((unsigned int) 25) // Reserved\r
-#define AT91C_ID_26_Reserved ((unsigned int) 26) // Reserved\r
-#define AT91C_ID_27_Reserved ((unsigned int) 27) // Reserved\r
-#define AT91C_ID_28_Reserved ((unsigned int) 28) // Reserved\r
-#define AT91C_ID_29_Reserved ((unsigned int) 29) // Reserved\r
-#define AT91C_ID_IRQ0 ((unsigned int) 30) // Advanced Interrupt Controller (IRQ0)\r
-#define AT91C_ID_IRQ1 ((unsigned int) 31) // Advanced Interrupt Controller (IRQ1)\r
-\r
-// *****************************************************************************\r
-// BASE ADDRESS DEFINITIONS FOR AT91SAM7X128\r
-// *****************************************************************************\r
-#define AT91C_BASE_SYS ((AT91PS_SYS) 0xFFFFF000) // (SYS) Base Address\r
-#define AT91C_BASE_AIC ((AT91PS_AIC) 0xFFFFF000) // (AIC) Base Address\r
-#define AT91C_BASE_PDC_DBGU ((AT91PS_PDC) 0xFFFFF300) // (PDC_DBGU) Base Address\r
-#define AT91C_BASE_DBGU ((AT91PS_DBGU) 0xFFFFF200) // (DBGU) Base Address\r
-#define AT91C_BASE_PIOA ((AT91PS_PIO) 0xFFFFF400) // (PIOA) Base Address\r
-#define AT91C_BASE_PIOB ((AT91PS_PIO) 0xFFFFF600) // (PIOB) Base Address\r
-#define AT91C_BASE_CKGR ((AT91PS_CKGR) 0xFFFFFC20) // (CKGR) Base Address\r
-#define AT91C_BASE_PMC ((AT91PS_PMC) 0xFFFFFC00) // (PMC) Base Address\r
-#define AT91C_BASE_RSTC ((AT91PS_RSTC) 0xFFFFFD00) // (RSTC) Base Address\r
-#define AT91C_BASE_RTTC ((AT91PS_RTTC) 0xFFFFFD20) // (RTTC) Base Address\r
-#define AT91C_BASE_PITC ((AT91PS_PITC) 0xFFFFFD30) // (PITC) Base Address\r
-#define AT91C_BASE_WDTC ((AT91PS_WDTC) 0xFFFFFD40) // (WDTC) Base Address\r
-#define AT91C_BASE_VREG ((AT91PS_VREG) 0xFFFFFD60) // (VREG) Base Address\r
-#define AT91C_BASE_MC ((AT91PS_MC) 0xFFFFFF00) // (MC) Base Address\r
-#define AT91C_BASE_PDC_SPI1 ((AT91PS_PDC) 0xFFFE4100) // (PDC_SPI1) Base Address\r
-#define AT91C_BASE_SPI1 ((AT91PS_SPI) 0xFFFE4000) // (SPI1) Base Address\r
-#define AT91C_BASE_PDC_SPI0 ((AT91PS_PDC) 0xFFFE0100) // (PDC_SPI0) Base Address\r
-#define AT91C_BASE_SPI0 ((AT91PS_SPI) 0xFFFE0000) // (SPI0) Base Address\r
-#define AT91C_BASE_PDC_US1 ((AT91PS_PDC) 0xFFFC4100) // (PDC_US1) Base Address\r
-#define AT91C_BASE_US1 ((AT91PS_USART) 0xFFFC4000) // (US1) Base Address\r
-#define AT91C_BASE_PDC_US0 ((AT91PS_PDC) 0xFFFC0100) // (PDC_US0) Base Address\r
-#define AT91C_BASE_US0 ((AT91PS_USART) 0xFFFC0000) // (US0) Base Address\r
-#define AT91C_BASE_PDC_SSC ((AT91PS_PDC) 0xFFFD4100) // (PDC_SSC) Base Address\r
-#define AT91C_BASE_SSC ((AT91PS_SSC) 0xFFFD4000) // (SSC) Base Address\r
-#define AT91C_BASE_TWI ((AT91PS_TWI) 0xFFFB8000) // (TWI) Base Address\r
-#define AT91C_BASE_PWMC_CH3 ((AT91PS_PWMC_CH) 0xFFFCC260) // (PWMC_CH3) Base Address\r
-#define AT91C_BASE_PWMC_CH2 ((AT91PS_PWMC_CH) 0xFFFCC240) // (PWMC_CH2) Base Address\r
-#define AT91C_BASE_PWMC_CH1 ((AT91PS_PWMC_CH) 0xFFFCC220) // (PWMC_CH1) Base Address\r
-#define AT91C_BASE_PWMC_CH0 ((AT91PS_PWMC_CH) 0xFFFCC200) // (PWMC_CH0) Base Address\r
-#define AT91C_BASE_PWMC ((AT91PS_PWMC) 0xFFFCC000) // (PWMC) Base Address\r
-#define AT91C_BASE_UDP ((AT91PS_UDP) 0xFFFB0000) // (UDP) Base Address\r
-#define AT91C_BASE_TC0 ((AT91PS_TC) 0xFFFA0000) // (TC0) Base Address\r
-#define AT91C_BASE_TC1 ((AT91PS_TC) 0xFFFA0040) // (TC1) Base Address\r
-#define AT91C_BASE_TC2 ((AT91PS_TC) 0xFFFA0080) // (TC2) Base Address\r
-#define AT91C_BASE_TCB ((AT91PS_TCB) 0xFFFA0000) // (TCB) Base Address\r
-#define AT91C_BASE_CAN_MB0 ((AT91PS_CAN_MB) 0xFFFD0200) // (CAN_MB0) Base Address\r
-#define AT91C_BASE_CAN_MB1 ((AT91PS_CAN_MB) 0xFFFD0220) // (CAN_MB1) Base Address\r
-#define AT91C_BASE_CAN_MB2 ((AT91PS_CAN_MB) 0xFFFD0240) // (CAN_MB2) Base Address\r
-#define AT91C_BASE_CAN_MB3 ((AT91PS_CAN_MB) 0xFFFD0260) // (CAN_MB3) Base Address\r
-#define AT91C_BASE_CAN_MB4 ((AT91PS_CAN_MB) 0xFFFD0280) // (CAN_MB4) Base Address\r
-#define AT91C_BASE_CAN_MB5 ((AT91PS_CAN_MB) 0xFFFD02A0) // (CAN_MB5) Base Address\r
-#define AT91C_BASE_CAN_MB6 ((AT91PS_CAN_MB) 0xFFFD02C0) // (CAN_MB6) Base Address\r
-#define AT91C_BASE_CAN_MB7 ((AT91PS_CAN_MB) 0xFFFD02E0) // (CAN_MB7) Base Address\r
-#define AT91C_BASE_CAN ((AT91PS_CAN) 0xFFFD0000) // (CAN) Base Address\r
-#define AT91C_BASE_EMAC ((AT91PS_EMAC) 0xFFFDC000) // (EMAC) Base Address\r
-#define AT91C_BASE_PDC_ADC ((AT91PS_PDC) 0xFFFD8100) // (PDC_ADC) Base Address\r
-#define AT91C_BASE_ADC ((AT91PS_ADC) 0xFFFD8000) // (ADC) Base Address\r
-#define AT91C_BASE_PDC_AES ((AT91PS_PDC) 0xFFFA4100) // (PDC_AES) Base Address\r
-#define AT91C_BASE_AES ((AT91PS_AES) 0xFFFA4000) // (AES) Base Address\r
-#define AT91C_BASE_PDC_TDES ((AT91PS_PDC) 0xFFFA8100) // (PDC_TDES) Base Address\r
-#define AT91C_BASE_TDES ((AT91PS_TDES) 0xFFFA8000) // (TDES) Base Address\r
-\r
-// *****************************************************************************\r
-// MEMORY MAPPING DEFINITIONS FOR AT91SAM7X128\r
-// *****************************************************************************\r
-#define AT91C_ISRAM ((char *) 0x00200000) // Internal SRAM base address\r
-#define AT91C_ISRAM_SIZE ((unsigned int) 0x00008000) // Internal SRAM size in byte (32 Kbyte)\r
-#define AT91C_IFLASH ((char *) 0x00100000) // Internal ROM base address\r
-#define AT91C_IFLASH_SIZE ((unsigned int) 0x00020000) // Internal ROM size in byte (128 Kbyte)\r
-#endif /* __IAR_SYSTEMS_ICC__ */\r
-\r
-#ifdef __IAR_SYSTEMS_ASM__\r
-\r
-// - Hardware register definition\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR System Peripherals\r
-// - *****************************************************************************\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Advanced Interrupt Controller\r
-// - *****************************************************************************\r
-// - -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- \r
-AT91C_AIC_PRIOR EQU (0x7 << 0) ;- (AIC) Priority Level\r
-AT91C_AIC_PRIOR_LOWEST EQU (0x0) ;- (AIC) Lowest priority level\r
-AT91C_AIC_PRIOR_HIGHEST EQU (0x7) ;- (AIC) Highest priority level\r
-AT91C_AIC_SRCTYPE EQU (0x3 << 5) ;- (AIC) Interrupt Source Type\r
-AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL EQU (0x0 << 5) ;- (AIC) Internal Sources Code Label High-level Sensitive\r
-AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL EQU (0x0 << 5) ;- (AIC) External Sources Code Label Low-level Sensitive\r
-AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE EQU (0x1 << 5) ;- (AIC) Internal Sources Code Label Positive Edge triggered\r
-AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE EQU (0x1 << 5) ;- (AIC) External Sources Code Label Negative Edge triggered\r
-AT91C_AIC_SRCTYPE_HIGH_LEVEL EQU (0x2 << 5) ;- (AIC) Internal Or External Sources Code Label High-level Sensitive\r
-AT91C_AIC_SRCTYPE_POSITIVE_EDGE EQU (0x3 << 5) ;- (AIC) Internal Or External Sources Code Label Positive Edge triggered\r
-// - -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- \r
-AT91C_AIC_NFIQ EQU (0x1 << 0) ;- (AIC) NFIQ Status\r
-AT91C_AIC_NIRQ EQU (0x1 << 1) ;- (AIC) NIRQ Status\r
-// - -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- \r
-AT91C_AIC_DCR_PROT EQU (0x1 << 0) ;- (AIC) Protection Mode\r
-AT91C_AIC_DCR_GMSK EQU (0x1 << 1) ;- (AIC) General Mask\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Peripheral DMA Controller\r
-// - *****************************************************************************\r
-// - -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- \r
-AT91C_PDC_RXTEN EQU (0x1 << 0) ;- (PDC) Receiver Transfer Enable\r
-AT91C_PDC_RXTDIS EQU (0x1 << 1) ;- (PDC) Receiver Transfer Disable\r
-AT91C_PDC_TXTEN EQU (0x1 << 8) ;- (PDC) Transmitter Transfer Enable\r
-AT91C_PDC_TXTDIS EQU (0x1 << 9) ;- (PDC) Transmitter Transfer Disable\r
-// - -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Debug Unit\r
-// - *****************************************************************************\r
-// - -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- \r
-AT91C_US_RSTRX EQU (0x1 << 2) ;- (DBGU) Reset Receiver\r
-AT91C_US_RSTTX EQU (0x1 << 3) ;- (DBGU) Reset Transmitter\r
-AT91C_US_RXEN EQU (0x1 << 4) ;- (DBGU) Receiver Enable\r
-AT91C_US_RXDIS EQU (0x1 << 5) ;- (DBGU) Receiver Disable\r
-AT91C_US_TXEN EQU (0x1 << 6) ;- (DBGU) Transmitter Enable\r
-AT91C_US_TXDIS EQU (0x1 << 7) ;- (DBGU) Transmitter Disable\r
-AT91C_US_RSTSTA EQU (0x1 << 8) ;- (DBGU) Reset Status Bits\r
-// - -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- \r
-AT91C_US_PAR EQU (0x7 << 9) ;- (DBGU) Parity type\r
-AT91C_US_PAR_EVEN EQU (0x0 << 9) ;- (DBGU) Even Parity\r
-AT91C_US_PAR_ODD EQU (0x1 << 9) ;- (DBGU) Odd Parity\r
-AT91C_US_PAR_SPACE EQU (0x2 << 9) ;- (DBGU) Parity forced to 0 (Space)\r
-AT91C_US_PAR_MARK EQU (0x3 << 9) ;- (DBGU) Parity forced to 1 (Mark)\r
-AT91C_US_PAR_NONE EQU (0x4 << 9) ;- (DBGU) No Parity\r
-AT91C_US_PAR_MULTI_DROP EQU (0x6 << 9) ;- (DBGU) Multi-drop mode\r
-AT91C_US_CHMODE EQU (0x3 << 14) ;- (DBGU) Channel Mode\r
-AT91C_US_CHMODE_NORMAL EQU (0x0 << 14) ;- (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.\r
-AT91C_US_CHMODE_AUTO EQU (0x1 << 14) ;- (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.\r
-AT91C_US_CHMODE_LOCAL EQU (0x2 << 14) ;- (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.\r
-AT91C_US_CHMODE_REMOTE EQU (0x3 << 14) ;- (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.\r
-// - -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-AT91C_US_RXRDY EQU (0x1 << 0) ;- (DBGU) RXRDY Interrupt\r
-AT91C_US_TXRDY EQU (0x1 << 1) ;- (DBGU) TXRDY Interrupt\r
-AT91C_US_ENDRX EQU (0x1 << 3) ;- (DBGU) End of Receive Transfer Interrupt\r
-AT91C_US_ENDTX EQU (0x1 << 4) ;- (DBGU) End of Transmit Interrupt\r
-AT91C_US_OVRE EQU (0x1 << 5) ;- (DBGU) Overrun Interrupt\r
-AT91C_US_FRAME EQU (0x1 << 6) ;- (DBGU) Framing Error Interrupt\r
-AT91C_US_PARE EQU (0x1 << 7) ;- (DBGU) Parity Error Interrupt\r
-AT91C_US_TXEMPTY EQU (0x1 << 9) ;- (DBGU) TXEMPTY Interrupt\r
-AT91C_US_TXBUFE EQU (0x1 << 11) ;- (DBGU) TXBUFE Interrupt\r
-AT91C_US_RXBUFF EQU (0x1 << 12) ;- (DBGU) RXBUFF Interrupt\r
-AT91C_US_COMM_TX EQU (0x1 << 30) ;- (DBGU) COMM_TX Interrupt\r
-AT91C_US_COMM_RX EQU (0x1 << 31) ;- (DBGU) COMM_RX Interrupt\r
-// - -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// - -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// - -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- \r
-// - -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- \r
-AT91C_US_FORCE_NTRST EQU (0x1 << 0) ;- (DBGU) Force NTRST in JTAG\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Parallel Input Output Controler\r
-// - *****************************************************************************\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Clock Generator Controler\r
-// - *****************************************************************************\r
-// - -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- \r
-AT91C_CKGR_MOSCEN EQU (0x1 << 0) ;- (CKGR) Main Oscillator Enable\r
-AT91C_CKGR_OSCBYPASS EQU (0x1 << 1) ;- (CKGR) Main Oscillator Bypass\r
-AT91C_CKGR_OSCOUNT EQU (0xFF << 8) ;- (CKGR) Main Oscillator Start-up Time\r
-// - -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- \r
-AT91C_CKGR_MAINF EQU (0xFFFF << 0) ;- (CKGR) Main Clock Frequency\r
-AT91C_CKGR_MAINRDY EQU (0x1 << 16) ;- (CKGR) Main Clock Ready\r
-// - -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- \r
-AT91C_CKGR_DIV EQU (0xFF << 0) ;- (CKGR) Divider Selected\r
-AT91C_CKGR_DIV_0 EQU (0x0) ;- (CKGR) Divider output is 0\r
-AT91C_CKGR_DIV_BYPASS EQU (0x1) ;- (CKGR) Divider is bypassed\r
-AT91C_CKGR_PLLCOUNT EQU (0x3F << 8) ;- (CKGR) PLL Counter\r
-AT91C_CKGR_OUT EQU (0x3 << 14) ;- (CKGR) PLL Output Frequency Range\r
-AT91C_CKGR_OUT_0 EQU (0x0 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_OUT_1 EQU (0x1 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_OUT_2 EQU (0x2 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_OUT_3 EQU (0x3 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_MUL EQU (0x7FF << 16) ;- (CKGR) PLL Multiplier\r
-AT91C_CKGR_USBDIV EQU (0x3 << 28) ;- (CKGR) Divider for USB Clocks\r
-AT91C_CKGR_USBDIV_0 EQU (0x0 << 28) ;- (CKGR) Divider output is PLL clock output\r
-AT91C_CKGR_USBDIV_1 EQU (0x1 << 28) ;- (CKGR) Divider output is PLL clock output divided by 2\r
-AT91C_CKGR_USBDIV_2 EQU (0x2 << 28) ;- (CKGR) Divider output is PLL clock output divided by 4\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Power Management Controler\r
-// - *****************************************************************************\r
-// - -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- \r
-AT91C_PMC_PCK EQU (0x1 << 0) ;- (PMC) Processor Clock\r
-AT91C_PMC_UDP EQU (0x1 << 7) ;- (PMC) USB Device Port Clock\r
-AT91C_PMC_PCK0 EQU (0x1 << 8) ;- (PMC) Programmable Clock Output\r
-AT91C_PMC_PCK1 EQU (0x1 << 9) ;- (PMC) Programmable Clock Output\r
-AT91C_PMC_PCK2 EQU (0x1 << 10) ;- (PMC) Programmable Clock Output\r
-AT91C_PMC_PCK3 EQU (0x1 << 11) ;- (PMC) Programmable Clock Output\r
-// - -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- \r
-// - -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- \r
-// - -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- \r
-// - -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- \r
-// - -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- \r
-// - -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- \r
-AT91C_PMC_CSS EQU (0x3 << 0) ;- (PMC) Programmable Clock Selection\r
-AT91C_PMC_CSS_SLOW_CLK EQU (0x0) ;- (PMC) Slow Clock is selected\r
-AT91C_PMC_CSS_MAIN_CLK EQU (0x1) ;- (PMC) Main Clock is selected\r
-AT91C_PMC_CSS_PLL_CLK EQU (0x3) ;- (PMC) Clock from PLL is selected\r
-AT91C_PMC_PRES EQU (0x7 << 2) ;- (PMC) Programmable Clock Prescaler\r
-AT91C_PMC_PRES_CLK EQU (0x0 << 2) ;- (PMC) Selected clock\r
-AT91C_PMC_PRES_CLK_2 EQU (0x1 << 2) ;- (PMC) Selected clock divided by 2\r
-AT91C_PMC_PRES_CLK_4 EQU (0x2 << 2) ;- (PMC) Selected clock divided by 4\r
-AT91C_PMC_PRES_CLK_8 EQU (0x3 << 2) ;- (PMC) Selected clock divided by 8\r
-AT91C_PMC_PRES_CLK_16 EQU (0x4 << 2) ;- (PMC) Selected clock divided by 16\r
-AT91C_PMC_PRES_CLK_32 EQU (0x5 << 2) ;- (PMC) Selected clock divided by 32\r
-AT91C_PMC_PRES_CLK_64 EQU (0x6 << 2) ;- (PMC) Selected clock divided by 64\r
-// - -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- \r
-// - -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- \r
-AT91C_PMC_MOSCS EQU (0x1 << 0) ;- (PMC) MOSC Status/Enable/Disable/Mask\r
-AT91C_PMC_LOCK EQU (0x1 << 2) ;- (PMC) PLL Status/Enable/Disable/Mask\r
-AT91C_PMC_MCKRDY EQU (0x1 << 3) ;- (PMC) MCK_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK0RDY EQU (0x1 << 8) ;- (PMC) PCK0_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK1RDY EQU (0x1 << 9) ;- (PMC) PCK1_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK2RDY EQU (0x1 << 10) ;- (PMC) PCK2_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK3RDY EQU (0x1 << 11) ;- (PMC) PCK3_RDY Status/Enable/Disable/Mask\r
-// - -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- \r
-// - -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- \r
-// - -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Reset Controller Interface\r
-// - *****************************************************************************\r
-// - -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- \r
-AT91C_RSTC_PROCRST EQU (0x1 << 0) ;- (RSTC) Processor Reset\r
-AT91C_RSTC_PERRST EQU (0x1 << 2) ;- (RSTC) Peripheral Reset\r
-AT91C_RSTC_EXTRST EQU (0x1 << 3) ;- (RSTC) External Reset\r
-AT91C_RSTC_KEY EQU (0xFF << 24) ;- (RSTC) Password\r
-// - -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- \r
-AT91C_RSTC_URSTS EQU (0x1 << 0) ;- (RSTC) User Reset Status\r
-AT91C_RSTC_BODSTS EQU (0x1 << 1) ;- (RSTC) Brownout Detection Status\r
-AT91C_RSTC_RSTTYP EQU (0x7 << 8) ;- (RSTC) Reset Type\r
-AT91C_RSTC_RSTTYP_POWERUP EQU (0x0 << 8) ;- (RSTC) Power-up Reset. VDDCORE rising.\r
-AT91C_RSTC_RSTTYP_WAKEUP EQU (0x1 << 8) ;- (RSTC) WakeUp Reset. VDDCORE rising.\r
-AT91C_RSTC_RSTTYP_WATCHDOG EQU (0x2 << 8) ;- (RSTC) Watchdog Reset. Watchdog overflow occured.\r
-AT91C_RSTC_RSTTYP_SOFTWARE EQU (0x3 << 8) ;- (RSTC) Software Reset. Processor reset required by the software.\r
-AT91C_RSTC_RSTTYP_USER EQU (0x4 << 8) ;- (RSTC) User Reset. NRST pin detected low.\r
-AT91C_RSTC_RSTTYP_BROWNOUT EQU (0x5 << 8) ;- (RSTC) Brownout Reset occured.\r
-AT91C_RSTC_NRSTL EQU (0x1 << 16) ;- (RSTC) NRST pin level\r
-AT91C_RSTC_SRCMP EQU (0x1 << 17) ;- (RSTC) Software Reset Command in Progress.\r
-// - -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- \r
-AT91C_RSTC_URSTEN EQU (0x1 << 0) ;- (RSTC) User Reset Enable\r
-AT91C_RSTC_URSTIEN EQU (0x1 << 4) ;- (RSTC) User Reset Interrupt Enable\r
-AT91C_RSTC_ERSTL EQU (0xF << 8) ;- (RSTC) User Reset Enable\r
-AT91C_RSTC_BODIEN EQU (0x1 << 16) ;- (RSTC) Brownout Detection Interrupt Enable\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Real Time Timer Controller Interface\r
-// - *****************************************************************************\r
-// - -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- \r
-AT91C_RTTC_RTPRES EQU (0xFFFF << 0) ;- (RTTC) Real-time Timer Prescaler Value\r
-AT91C_RTTC_ALMIEN EQU (0x1 << 16) ;- (RTTC) Alarm Interrupt Enable\r
-AT91C_RTTC_RTTINCIEN EQU (0x1 << 17) ;- (RTTC) Real Time Timer Increment Interrupt Enable\r
-AT91C_RTTC_RTTRST EQU (0x1 << 18) ;- (RTTC) Real Time Timer Restart\r
-// - -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- \r
-AT91C_RTTC_ALMV EQU (0x0 << 0) ;- (RTTC) Alarm Value\r
-// - -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- \r
-AT91C_RTTC_CRTV EQU (0x0 << 0) ;- (RTTC) Current Real-time Value\r
-// - -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- \r
-AT91C_RTTC_ALMS EQU (0x1 << 0) ;- (RTTC) Real-time Alarm Status\r
-AT91C_RTTC_RTTINC EQU (0x1 << 1) ;- (RTTC) Real-time Timer Increment\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Periodic Interval Timer Controller Interface\r
-// - *****************************************************************************\r
-// - -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- \r
-AT91C_PITC_PIV EQU (0xFFFFF << 0) ;- (PITC) Periodic Interval Value\r
-AT91C_PITC_PITEN EQU (0x1 << 24) ;- (PITC) Periodic Interval Timer Enabled\r
-AT91C_PITC_PITIEN EQU (0x1 << 25) ;- (PITC) Periodic Interval Timer Interrupt Enable\r
-// - -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- \r
-AT91C_PITC_PITS EQU (0x1 << 0) ;- (PITC) Periodic Interval Timer Status\r
-// - -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- \r
-AT91C_PITC_CPIV EQU (0xFFFFF << 0) ;- (PITC) Current Periodic Interval Value\r
-AT91C_PITC_PICNT EQU (0xFFF << 20) ;- (PITC) Periodic Interval Counter\r
-// - -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Watchdog Timer Controller Interface\r
-// - *****************************************************************************\r
-// - -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- \r
-AT91C_WDTC_WDRSTT EQU (0x1 << 0) ;- (WDTC) Watchdog Restart\r
-AT91C_WDTC_KEY EQU (0xFF << 24) ;- (WDTC) Watchdog KEY Password\r
-// - -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- \r
-AT91C_WDTC_WDV EQU (0xFFF << 0) ;- (WDTC) Watchdog Timer Restart\r
-AT91C_WDTC_WDFIEN EQU (0x1 << 12) ;- (WDTC) Watchdog Fault Interrupt Enable\r
-AT91C_WDTC_WDRSTEN EQU (0x1 << 13) ;- (WDTC) Watchdog Reset Enable\r
-AT91C_WDTC_WDRPROC EQU (0x1 << 14) ;- (WDTC) Watchdog Timer Restart\r
-AT91C_WDTC_WDDIS EQU (0x1 << 15) ;- (WDTC) Watchdog Disable\r
-AT91C_WDTC_WDD EQU (0xFFF << 16) ;- (WDTC) Watchdog Delta Value\r
-AT91C_WDTC_WDDBGHLT EQU (0x1 << 28) ;- (WDTC) Watchdog Debug Halt\r
-AT91C_WDTC_WDIDLEHLT EQU (0x1 << 29) ;- (WDTC) Watchdog Idle Halt\r
-// - -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- \r
-AT91C_WDTC_WDUNF EQU (0x1 << 0) ;- (WDTC) Watchdog Underflow\r
-AT91C_WDTC_WDERR EQU (0x1 << 1) ;- (WDTC) Watchdog Error\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Voltage Regulator Mode Controller Interface\r
-// - *****************************************************************************\r
-// - -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- \r
-AT91C_VREG_PSTDBY EQU (0x1 << 0) ;- (VREG) Voltage Regulator Power Standby Mode\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Memory Controller Interface\r
-// - *****************************************************************************\r
-// - -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- \r
-AT91C_MC_RCB EQU (0x1 << 0) ;- (MC) Remap Command Bit\r
-// - -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- \r
-AT91C_MC_UNDADD EQU (0x1 << 0) ;- (MC) Undefined Addess Abort Status\r
-AT91C_MC_MISADD EQU (0x1 << 1) ;- (MC) Misaligned Addess Abort Status\r
-AT91C_MC_ABTSZ EQU (0x3 << 8) ;- (MC) Abort Size Status\r
-AT91C_MC_ABTSZ_BYTE EQU (0x0 << 8) ;- (MC) Byte\r
-AT91C_MC_ABTSZ_HWORD EQU (0x1 << 8) ;- (MC) Half-word\r
-AT91C_MC_ABTSZ_WORD EQU (0x2 << 8) ;- (MC) Word\r
-AT91C_MC_ABTTYP EQU (0x3 << 10) ;- (MC) Abort Type Status\r
-AT91C_MC_ABTTYP_DATAR EQU (0x0 << 10) ;- (MC) Data Read\r
-AT91C_MC_ABTTYP_DATAW EQU (0x1 << 10) ;- (MC) Data Write\r
-AT91C_MC_ABTTYP_FETCH EQU (0x2 << 10) ;- (MC) Code Fetch\r
-AT91C_MC_MST0 EQU (0x1 << 16) ;- (MC) Master 0 Abort Source\r
-AT91C_MC_MST1 EQU (0x1 << 17) ;- (MC) Master 1 Abort Source\r
-AT91C_MC_SVMST0 EQU (0x1 << 24) ;- (MC) Saved Master 0 Abort Source\r
-AT91C_MC_SVMST1 EQU (0x1 << 25) ;- (MC) Saved Master 1 Abort Source\r
-// - -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- \r
-AT91C_MC_FRDY EQU (0x1 << 0) ;- (MC) Flash Ready\r
-AT91C_MC_LOCKE EQU (0x1 << 2) ;- (MC) Lock Error\r
-AT91C_MC_PROGE EQU (0x1 << 3) ;- (MC) Programming Error\r
-AT91C_MC_NEBP EQU (0x1 << 7) ;- (MC) No Erase Before Programming\r
-AT91C_MC_FWS EQU (0x3 << 8) ;- (MC) Flash Wait State\r
-AT91C_MC_FWS_0FWS EQU (0x0 << 8) ;- (MC) 1 cycle for Read, 2 for Write operations\r
-AT91C_MC_FWS_1FWS EQU (0x1 << 8) ;- (MC) 2 cycles for Read, 3 for Write operations\r
-AT91C_MC_FWS_2FWS EQU (0x2 << 8) ;- (MC) 3 cycles for Read, 4 for Write operations\r
-AT91C_MC_FWS_3FWS EQU (0x3 << 8) ;- (MC) 4 cycles for Read, 4 for Write operations\r
-AT91C_MC_FMCN EQU (0xFF << 16) ;- (MC) Flash Microsecond Cycle Number\r
-// - -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- \r
-AT91C_MC_FCMD EQU (0xF << 0) ;- (MC) Flash Command\r
-AT91C_MC_FCMD_START_PROG EQU (0x1) ;- (MC) Starts the programming of th epage specified by PAGEN.\r
-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.\r
-AT91C_MC_FCMD_PROG_AND_LOCK EQU (0x3) ;- (MC) The lock sequence automatically happens after the programming sequence is completed.\r
-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.\r
-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.\r
-AT91C_MC_FCMD_SET_GP_NVM EQU (0xB) ;- (MC) Set General Purpose NVM bits.\r
-AT91C_MC_FCMD_CLR_GP_NVM EQU (0xD) ;- (MC) Clear General Purpose NVM bits.\r
-AT91C_MC_FCMD_SET_SECURITY EQU (0xF) ;- (MC) Set Security Bit.\r
-AT91C_MC_PAGEN EQU (0x3FF << 8) ;- (MC) Page Number\r
-AT91C_MC_KEY EQU (0xFF << 24) ;- (MC) Writing Protect Key\r
-// - -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- \r
-AT91C_MC_SECURITY EQU (0x1 << 4) ;- (MC) Security Bit Status\r
-AT91C_MC_GPNVM0 EQU (0x1 << 8) ;- (MC) Sector 0 Lock Status\r
-AT91C_MC_GPNVM1 EQU (0x1 << 9) ;- (MC) Sector 1 Lock Status\r
-AT91C_MC_GPNVM2 EQU (0x1 << 10) ;- (MC) Sector 2 Lock Status\r
-AT91C_MC_GPNVM3 EQU (0x1 << 11) ;- (MC) Sector 3 Lock Status\r
-AT91C_MC_GPNVM4 EQU (0x1 << 12) ;- (MC) Sector 4 Lock Status\r
-AT91C_MC_GPNVM5 EQU (0x1 << 13) ;- (MC) Sector 5 Lock Status\r
-AT91C_MC_GPNVM6 EQU (0x1 << 14) ;- (MC) Sector 6 Lock Status\r
-AT91C_MC_GPNVM7 EQU (0x1 << 15) ;- (MC) Sector 7 Lock Status\r
-AT91C_MC_LOCKS0 EQU (0x1 << 16) ;- (MC) Sector 0 Lock Status\r
-AT91C_MC_LOCKS1 EQU (0x1 << 17) ;- (MC) Sector 1 Lock Status\r
-AT91C_MC_LOCKS2 EQU (0x1 << 18) ;- (MC) Sector 2 Lock Status\r
-AT91C_MC_LOCKS3 EQU (0x1 << 19) ;- (MC) Sector 3 Lock Status\r
-AT91C_MC_LOCKS4 EQU (0x1 << 20) ;- (MC) Sector 4 Lock Status\r
-AT91C_MC_LOCKS5 EQU (0x1 << 21) ;- (MC) Sector 5 Lock Status\r
-AT91C_MC_LOCKS6 EQU (0x1 << 22) ;- (MC) Sector 6 Lock Status\r
-AT91C_MC_LOCKS7 EQU (0x1 << 23) ;- (MC) Sector 7 Lock Status\r
-AT91C_MC_LOCKS8 EQU (0x1 << 24) ;- (MC) Sector 8 Lock Status\r
-AT91C_MC_LOCKS9 EQU (0x1 << 25) ;- (MC) Sector 9 Lock Status\r
-AT91C_MC_LOCKS10 EQU (0x1 << 26) ;- (MC) Sector 10 Lock Status\r
-AT91C_MC_LOCKS11 EQU (0x1 << 27) ;- (MC) Sector 11 Lock Status\r
-AT91C_MC_LOCKS12 EQU (0x1 << 28) ;- (MC) Sector 12 Lock Status\r
-AT91C_MC_LOCKS13 EQU (0x1 << 29) ;- (MC) Sector 13 Lock Status\r
-AT91C_MC_LOCKS14 EQU (0x1 << 30) ;- (MC) Sector 14 Lock Status\r
-AT91C_MC_LOCKS15 EQU (0x1 << 31) ;- (MC) Sector 15 Lock Status\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Serial Parallel Interface\r
-// - *****************************************************************************\r
-// - -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- \r
-AT91C_SPI_SPIEN EQU (0x1 << 0) ;- (SPI) SPI Enable\r
-AT91C_SPI_SPIDIS EQU (0x1 << 1) ;- (SPI) SPI Disable\r
-AT91C_SPI_SWRST EQU (0x1 << 7) ;- (SPI) SPI Software reset\r
-AT91C_SPI_LASTXFER EQU (0x1 << 24) ;- (SPI) SPI Last Transfer\r
-// - -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- \r
-AT91C_SPI_MSTR EQU (0x1 << 0) ;- (SPI) Master/Slave Mode\r
-AT91C_SPI_PS EQU (0x1 << 1) ;- (SPI) Peripheral Select\r
-AT91C_SPI_PS_FIXED EQU (0x0 << 1) ;- (SPI) Fixed Peripheral Select\r
-AT91C_SPI_PS_VARIABLE EQU (0x1 << 1) ;- (SPI) Variable Peripheral Select\r
-AT91C_SPI_PCSDEC EQU (0x1 << 2) ;- (SPI) Chip Select Decode\r
-AT91C_SPI_FDIV EQU (0x1 << 3) ;- (SPI) Clock Selection\r
-AT91C_SPI_MODFDIS EQU (0x1 << 4) ;- (SPI) Mode Fault Detection\r
-AT91C_SPI_LLB EQU (0x1 << 7) ;- (SPI) Clock Selection\r
-AT91C_SPI_PCS EQU (0xF << 16) ;- (SPI) Peripheral Chip Select\r
-AT91C_SPI_DLYBCS EQU (0xFF << 24) ;- (SPI) Delay Between Chip Selects\r
-// - -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- \r
-AT91C_SPI_RD EQU (0xFFFF << 0) ;- (SPI) Receive Data\r
-AT91C_SPI_RPCS EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status\r
-// - -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- \r
-AT91C_SPI_TD EQU (0xFFFF << 0) ;- (SPI) Transmit Data\r
-AT91C_SPI_TPCS EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status\r
-// - -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- \r
-AT91C_SPI_RDRF EQU (0x1 << 0) ;- (SPI) Receive Data Register Full\r
-AT91C_SPI_TDRE EQU (0x1 << 1) ;- (SPI) Transmit Data Register Empty\r
-AT91C_SPI_MODF EQU (0x1 << 2) ;- (SPI) Mode Fault Error\r
-AT91C_SPI_OVRES EQU (0x1 << 3) ;- (SPI) Overrun Error Status\r
-AT91C_SPI_ENDRX EQU (0x1 << 4) ;- (SPI) End of Receiver Transfer\r
-AT91C_SPI_ENDTX EQU (0x1 << 5) ;- (SPI) End of Receiver Transfer\r
-AT91C_SPI_RXBUFF EQU (0x1 << 6) ;- (SPI) RXBUFF Interrupt\r
-AT91C_SPI_TXBUFE EQU (0x1 << 7) ;- (SPI) TXBUFE Interrupt\r
-AT91C_SPI_NSSR EQU (0x1 << 8) ;- (SPI) NSSR Interrupt\r
-AT91C_SPI_TXEMPTY EQU (0x1 << 9) ;- (SPI) TXEMPTY Interrupt\r
-AT91C_SPI_SPIENS EQU (0x1 << 16) ;- (SPI) Enable Status\r
-// - -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- \r
-// - -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- \r
-// - -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- \r
-// - -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- \r
-AT91C_SPI_CPOL EQU (0x1 << 0) ;- (SPI) Clock Polarity\r
-AT91C_SPI_NCPHA EQU (0x1 << 1) ;- (SPI) Clock Phase\r
-AT91C_SPI_CSAAT EQU (0x1 << 3) ;- (SPI) Chip Select Active After Transfer\r
-AT91C_SPI_BITS EQU (0xF << 4) ;- (SPI) Bits Per Transfer\r
-AT91C_SPI_BITS_8 EQU (0x0 << 4) ;- (SPI) 8 Bits Per transfer\r
-AT91C_SPI_BITS_9 EQU (0x1 << 4) ;- (SPI) 9 Bits Per transfer\r
-AT91C_SPI_BITS_10 EQU (0x2 << 4) ;- (SPI) 10 Bits Per transfer\r
-AT91C_SPI_BITS_11 EQU (0x3 << 4) ;- (SPI) 11 Bits Per transfer\r
-AT91C_SPI_BITS_12 EQU (0x4 << 4) ;- (SPI) 12 Bits Per transfer\r
-AT91C_SPI_BITS_13 EQU (0x5 << 4) ;- (SPI) 13 Bits Per transfer\r
-AT91C_SPI_BITS_14 EQU (0x6 << 4) ;- (SPI) 14 Bits Per transfer\r
-AT91C_SPI_BITS_15 EQU (0x7 << 4) ;- (SPI) 15 Bits Per transfer\r
-AT91C_SPI_BITS_16 EQU (0x8 << 4) ;- (SPI) 16 Bits Per transfer\r
-AT91C_SPI_SCBR EQU (0xFF << 8) ;- (SPI) Serial Clock Baud Rate\r
-AT91C_SPI_DLYBS EQU (0xFF << 16) ;- (SPI) Delay Before SPCK\r
-AT91C_SPI_DLYBCT EQU (0xFF << 24) ;- (SPI) Delay Between Consecutive Transfers\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Usart\r
-// - *****************************************************************************\r
-// - -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- \r
-AT91C_US_STTBRK EQU (0x1 << 9) ;- (USART) Start Break\r
-AT91C_US_STPBRK EQU (0x1 << 10) ;- (USART) Stop Break\r
-AT91C_US_STTTO EQU (0x1 << 11) ;- (USART) Start Time-out\r
-AT91C_US_SENDA EQU (0x1 << 12) ;- (USART) Send Address\r
-AT91C_US_RSTIT EQU (0x1 << 13) ;- (USART) Reset Iterations\r
-AT91C_US_RSTNACK EQU (0x1 << 14) ;- (USART) Reset Non Acknowledge\r
-AT91C_US_RETTO EQU (0x1 << 15) ;- (USART) Rearm Time-out\r
-AT91C_US_DTREN EQU (0x1 << 16) ;- (USART) Data Terminal ready Enable\r
-AT91C_US_DTRDIS EQU (0x1 << 17) ;- (USART) Data Terminal ready Disable\r
-AT91C_US_RTSEN EQU (0x1 << 18) ;- (USART) Request to Send enable\r
-AT91C_US_RTSDIS EQU (0x1 << 19) ;- (USART) Request to Send Disable\r
-// - -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- \r
-AT91C_US_USMODE EQU (0xF << 0) ;- (USART) Usart mode\r
-AT91C_US_USMODE_NORMAL EQU (0x0) ;- (USART) Normal\r
-AT91C_US_USMODE_RS485 EQU (0x1) ;- (USART) RS485\r
-AT91C_US_USMODE_HWHSH EQU (0x2) ;- (USART) Hardware Handshaking\r
-AT91C_US_USMODE_MODEM EQU (0x3) ;- (USART) Modem\r
-AT91C_US_USMODE_ISO7816_0 EQU (0x4) ;- (USART) ISO7816 protocol: T = 0\r
-AT91C_US_USMODE_ISO7816_1 EQU (0x6) ;- (USART) ISO7816 protocol: T = 1\r
-AT91C_US_USMODE_IRDA EQU (0x8) ;- (USART) IrDA\r
-AT91C_US_USMODE_SWHSH EQU (0xC) ;- (USART) Software Handshaking\r
-AT91C_US_CLKS EQU (0x3 << 4) ;- (USART) Clock Selection (Baud Rate generator Input Clock\r
-AT91C_US_CLKS_CLOCK EQU (0x0 << 4) ;- (USART) Clock\r
-AT91C_US_CLKS_FDIV1 EQU (0x1 << 4) ;- (USART) fdiv1\r
-AT91C_US_CLKS_SLOW EQU (0x2 << 4) ;- (USART) slow_clock (ARM)\r
-AT91C_US_CLKS_EXT EQU (0x3 << 4) ;- (USART) External (SCK)\r
-AT91C_US_CHRL EQU (0x3 << 6) ;- (USART) Clock Selection (Baud Rate generator Input Clock\r
-AT91C_US_CHRL_5_BITS EQU (0x0 << 6) ;- (USART) Character Length: 5 bits\r
-AT91C_US_CHRL_6_BITS EQU (0x1 << 6) ;- (USART) Character Length: 6 bits\r
-AT91C_US_CHRL_7_BITS EQU (0x2 << 6) ;- (USART) Character Length: 7 bits\r
-AT91C_US_CHRL_8_BITS EQU (0x3 << 6) ;- (USART) Character Length: 8 bits\r
-AT91C_US_SYNC EQU (0x1 << 8) ;- (USART) Synchronous Mode Select\r
-AT91C_US_NBSTOP EQU (0x3 << 12) ;- (USART) Number of Stop bits\r
-AT91C_US_NBSTOP_1_BIT EQU (0x0 << 12) ;- (USART) 1 stop bit\r
-AT91C_US_NBSTOP_15_BIT EQU (0x1 << 12) ;- (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits\r
-AT91C_US_NBSTOP_2_BIT EQU (0x2 << 12) ;- (USART) 2 stop bits\r
-AT91C_US_MSBF EQU (0x1 << 16) ;- (USART) Bit Order\r
-AT91C_US_MODE9 EQU (0x1 << 17) ;- (USART) 9-bit Character length\r
-AT91C_US_CKLO EQU (0x1 << 18) ;- (USART) Clock Output Select\r
-AT91C_US_OVER EQU (0x1 << 19) ;- (USART) Over Sampling Mode\r
-AT91C_US_INACK EQU (0x1 << 20) ;- (USART) Inhibit Non Acknowledge\r
-AT91C_US_DSNACK EQU (0x1 << 21) ;- (USART) Disable Successive NACK\r
-AT91C_US_MAX_ITER EQU (0x1 << 24) ;- (USART) Number of Repetitions\r
-AT91C_US_FILTER EQU (0x1 << 28) ;- (USART) Receive Line Filter\r
-// - -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-AT91C_US_RXBRK EQU (0x1 << 2) ;- (USART) Break Received/End of Break\r
-AT91C_US_TIMEOUT EQU (0x1 << 8) ;- (USART) Receiver Time-out\r
-AT91C_US_ITERATION EQU (0x1 << 10) ;- (USART) Max number of Repetitions Reached\r
-AT91C_US_NACK EQU (0x1 << 13) ;- (USART) Non Acknowledge\r
-AT91C_US_RIIC EQU (0x1 << 16) ;- (USART) Ring INdicator Input Change Flag\r
-AT91C_US_DSRIC EQU (0x1 << 17) ;- (USART) Data Set Ready Input Change Flag\r
-AT91C_US_DCDIC EQU (0x1 << 18) ;- (USART) Data Carrier Flag\r
-AT91C_US_CTSIC EQU (0x1 << 19) ;- (USART) Clear To Send Input Change Flag\r
-// - -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// - -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// - -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- \r
-AT91C_US_RI EQU (0x1 << 20) ;- (USART) Image of RI Input\r
-AT91C_US_DSR EQU (0x1 << 21) ;- (USART) Image of DSR Input\r
-AT91C_US_DCD EQU (0x1 << 22) ;- (USART) Image of DCD Input\r
-AT91C_US_CTS EQU (0x1 << 23) ;- (USART) Image of CTS Input\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Synchronous Serial Controller Interface\r
-// - *****************************************************************************\r
-// - -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- \r
-AT91C_SSC_RXEN EQU (0x1 << 0) ;- (SSC) Receive Enable\r
-AT91C_SSC_RXDIS EQU (0x1 << 1) ;- (SSC) Receive Disable\r
-AT91C_SSC_TXEN EQU (0x1 << 8) ;- (SSC) Transmit Enable\r
-AT91C_SSC_TXDIS EQU (0x1 << 9) ;- (SSC) Transmit Disable\r
-AT91C_SSC_SWRST EQU (0x1 << 15) ;- (SSC) Software Reset\r
-// - -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- \r
-AT91C_SSC_CKS EQU (0x3 << 0) ;- (SSC) Receive/Transmit Clock Selection\r
-AT91C_SSC_CKS_DIV EQU (0x0) ;- (SSC) Divided Clock\r
-AT91C_SSC_CKS_TK EQU (0x1) ;- (SSC) TK Clock signal\r
-AT91C_SSC_CKS_RK EQU (0x2) ;- (SSC) RK pin\r
-AT91C_SSC_CKO EQU (0x7 << 2) ;- (SSC) Receive/Transmit Clock Output Mode Selection\r
-AT91C_SSC_CKO_NONE EQU (0x0 << 2) ;- (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only\r
-AT91C_SSC_CKO_CONTINOUS EQU (0x1 << 2) ;- (SSC) Continuous Receive/Transmit Clock RK pin: Output\r
-AT91C_SSC_CKO_DATA_TX EQU (0x2 << 2) ;- (SSC) Receive/Transmit Clock only during data transfers RK pin: Output\r
-AT91C_SSC_CKI EQU (0x1 << 5) ;- (SSC) Receive/Transmit Clock Inversion\r
-AT91C_SSC_START EQU (0xF << 8) ;- (SSC) Receive/Transmit Start Selection\r
-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.\r
-AT91C_SSC_START_TX EQU (0x1 << 8) ;- (SSC) Transmit/Receive start\r
-AT91C_SSC_START_LOW_RF EQU (0x2 << 8) ;- (SSC) Detection of a low level on RF input\r
-AT91C_SSC_START_HIGH_RF EQU (0x3 << 8) ;- (SSC) Detection of a high level on RF input\r
-AT91C_SSC_START_FALL_RF EQU (0x4 << 8) ;- (SSC) Detection of a falling edge on RF input\r
-AT91C_SSC_START_RISE_RF EQU (0x5 << 8) ;- (SSC) Detection of a rising edge on RF input\r
-AT91C_SSC_START_LEVEL_RF EQU (0x6 << 8) ;- (SSC) Detection of any level change on RF input\r
-AT91C_SSC_START_EDGE_RF EQU (0x7 << 8) ;- (SSC) Detection of any edge on RF input\r
-AT91C_SSC_START_0 EQU (0x8 << 8) ;- (SSC) Compare 0\r
-AT91C_SSC_STTDLY EQU (0xFF << 16) ;- (SSC) Receive/Transmit Start Delay\r
-AT91C_SSC_PERIOD EQU (0xFF << 24) ;- (SSC) Receive/Transmit Period Divider Selection\r
-// - -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- \r
-AT91C_SSC_DATLEN EQU (0x1F << 0) ;- (SSC) Data Length\r
-AT91C_SSC_LOOP EQU (0x1 << 5) ;- (SSC) Loop Mode\r
-AT91C_SSC_MSBF EQU (0x1 << 7) ;- (SSC) Most Significant Bit First\r
-AT91C_SSC_DATNB EQU (0xF << 8) ;- (SSC) Data Number per Frame\r
-AT91C_SSC_FSLEN EQU (0xF << 16) ;- (SSC) Receive/Transmit Frame Sync length\r
-AT91C_SSC_FSOS EQU (0x7 << 20) ;- (SSC) Receive/Transmit Frame Sync Output Selection\r
-AT91C_SSC_FSOS_NONE EQU (0x0 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only\r
-AT91C_SSC_FSOS_NEGATIVE EQU (0x1 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse\r
-AT91C_SSC_FSOS_POSITIVE EQU (0x2 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse\r
-AT91C_SSC_FSOS_LOW EQU (0x3 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer\r
-AT91C_SSC_FSOS_HIGH EQU (0x4 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer\r
-AT91C_SSC_FSOS_TOGGLE EQU (0x5 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer\r
-AT91C_SSC_FSEDGE EQU (0x1 << 24) ;- (SSC) Frame Sync Edge Detection\r
-// - -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- \r
-// - -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- \r
-AT91C_SSC_DATDEF EQU (0x1 << 5) ;- (SSC) Data Default Value\r
-AT91C_SSC_FSDEN EQU (0x1 << 23) ;- (SSC) Frame Sync Data Enable\r
-// - -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- \r
-AT91C_SSC_TXRDY EQU (0x1 << 0) ;- (SSC) Transmit Ready\r
-AT91C_SSC_TXEMPTY EQU (0x1 << 1) ;- (SSC) Transmit Empty\r
-AT91C_SSC_ENDTX EQU (0x1 << 2) ;- (SSC) End Of Transmission\r
-AT91C_SSC_TXBUFE EQU (0x1 << 3) ;- (SSC) Transmit Buffer Empty\r
-AT91C_SSC_RXRDY EQU (0x1 << 4) ;- (SSC) Receive Ready\r
-AT91C_SSC_OVRUN EQU (0x1 << 5) ;- (SSC) Receive Overrun\r
-AT91C_SSC_ENDRX EQU (0x1 << 6) ;- (SSC) End of Reception\r
-AT91C_SSC_RXBUFF EQU (0x1 << 7) ;- (SSC) Receive Buffer Full\r
-AT91C_SSC_TXSYN EQU (0x1 << 10) ;- (SSC) Transmit Sync\r
-AT91C_SSC_RXSYN EQU (0x1 << 11) ;- (SSC) Receive Sync\r
-AT91C_SSC_TXENA EQU (0x1 << 16) ;- (SSC) Transmit Enable\r
-AT91C_SSC_RXENA EQU (0x1 << 17) ;- (SSC) Receive Enable\r
-// - -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- \r
-// - -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- \r
-// - -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Two-wire Interface\r
-// - *****************************************************************************\r
-// - -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- \r
-AT91C_TWI_START EQU (0x1 << 0) ;- (TWI) Send a START Condition\r
-AT91C_TWI_STOP EQU (0x1 << 1) ;- (TWI) Send a STOP Condition\r
-AT91C_TWI_MSEN EQU (0x1 << 2) ;- (TWI) TWI Master Transfer Enabled\r
-AT91C_TWI_MSDIS EQU (0x1 << 3) ;- (TWI) TWI Master Transfer Disabled\r
-AT91C_TWI_SWRST EQU (0x1 << 7) ;- (TWI) Software Reset\r
-// - -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- \r
-AT91C_TWI_IADRSZ EQU (0x3 << 8) ;- (TWI) Internal Device Address Size\r
-AT91C_TWI_IADRSZ_NO EQU (0x0 << 8) ;- (TWI) No internal device address\r
-AT91C_TWI_IADRSZ_1_BYTE EQU (0x1 << 8) ;- (TWI) One-byte internal device address\r
-AT91C_TWI_IADRSZ_2_BYTE EQU (0x2 << 8) ;- (TWI) Two-byte internal device address\r
-AT91C_TWI_IADRSZ_3_BYTE EQU (0x3 << 8) ;- (TWI) Three-byte internal device address\r
-AT91C_TWI_MREAD EQU (0x1 << 12) ;- (TWI) Master Read Direction\r
-AT91C_TWI_DADR EQU (0x7F << 16) ;- (TWI) Device Address\r
-// - -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- \r
-AT91C_TWI_CLDIV EQU (0xFF << 0) ;- (TWI) Clock Low Divider\r
-AT91C_TWI_CHDIV EQU (0xFF << 8) ;- (TWI) Clock High Divider\r
-AT91C_TWI_CKDIV EQU (0x7 << 16) ;- (TWI) Clock Divider\r
-// - -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- \r
-AT91C_TWI_TXCOMP EQU (0x1 << 0) ;- (TWI) Transmission Completed\r
-AT91C_TWI_RXRDY EQU (0x1 << 1) ;- (TWI) Receive holding register ReaDY\r
-AT91C_TWI_TXRDY EQU (0x1 << 2) ;- (TWI) Transmit holding register ReaDY\r
-AT91C_TWI_OVRE EQU (0x1 << 6) ;- (TWI) Overrun Error\r
-AT91C_TWI_UNRE EQU (0x1 << 7) ;- (TWI) Underrun Error\r
-AT91C_TWI_NACK EQU (0x1 << 8) ;- (TWI) Not Acknowledged\r
-// - -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- \r
-// - -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- \r
-// - -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR PWMC Channel Interface\r
-// - *****************************************************************************\r
-// - -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- \r
-AT91C_PWMC_CPRE EQU (0xF << 0) ;- (PWMC_CH) Channel Pre-scaler : PWMC_CLKx\r
-AT91C_PWMC_CPRE_MCK EQU (0x0) ;- (PWMC_CH) \r
-AT91C_PWMC_CPRE_MCKA EQU (0xB) ;- (PWMC_CH) \r
-AT91C_PWMC_CPRE_MCKB EQU (0xC) ;- (PWMC_CH) \r
-AT91C_PWMC_CALG EQU (0x1 << 8) ;- (PWMC_CH) Channel Alignment\r
-AT91C_PWMC_CPOL EQU (0x1 << 9) ;- (PWMC_CH) Channel Polarity\r
-AT91C_PWMC_CPD EQU (0x1 << 10) ;- (PWMC_CH) Channel Update Period\r
-// - -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- \r
-AT91C_PWMC_CDTY EQU (0x0 << 0) ;- (PWMC_CH) Channel Duty Cycle\r
-// - -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- \r
-AT91C_PWMC_CPRD EQU (0x0 << 0) ;- (PWMC_CH) Channel Period\r
-// - -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- \r
-AT91C_PWMC_CCNT EQU (0x0 << 0) ;- (PWMC_CH) Channel Counter\r
-// - -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- \r
-AT91C_PWMC_CUPD EQU (0x0 << 0) ;- (PWMC_CH) Channel Update\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Pulse Width Modulation Controller Interface\r
-// - *****************************************************************************\r
-// - -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- \r
-AT91C_PWMC_DIVA EQU (0xFF << 0) ;- (PWMC) CLKA divide factor.\r
-AT91C_PWMC_PREA EQU (0xF << 8) ;- (PWMC) Divider Input Clock Prescaler A\r
-AT91C_PWMC_PREA_MCK EQU (0x0 << 8) ;- (PWMC) \r
-AT91C_PWMC_DIVB EQU (0xFF << 16) ;- (PWMC) CLKB divide factor.\r
-AT91C_PWMC_PREB EQU (0xF << 24) ;- (PWMC) Divider Input Clock Prescaler B\r
-AT91C_PWMC_PREB_MCK EQU (0x0 << 24) ;- (PWMC) \r
-// - -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- \r
-AT91C_PWMC_CHID0 EQU (0x1 << 0) ;- (PWMC) Channel ID 0\r
-AT91C_PWMC_CHID1 EQU (0x1 << 1) ;- (PWMC) Channel ID 1\r
-AT91C_PWMC_CHID2 EQU (0x1 << 2) ;- (PWMC) Channel ID 2\r
-AT91C_PWMC_CHID3 EQU (0x1 << 3) ;- (PWMC) Channel ID 3\r
-// - -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- \r
-// - -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- \r
-// - -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- \r
-// - -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- \r
-// - -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- \r
-// - -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR USB Device Interface\r
-// - *****************************************************************************\r
-// - -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- \r
-AT91C_UDP_FRM_NUM EQU (0x7FF << 0) ;- (UDP) Frame Number as Defined in the Packet Field Formats\r
-AT91C_UDP_FRM_ERR EQU (0x1 << 16) ;- (UDP) Frame Error\r
-AT91C_UDP_FRM_OK EQU (0x1 << 17) ;- (UDP) Frame OK\r
-// - -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- \r
-AT91C_UDP_FADDEN EQU (0x1 << 0) ;- (UDP) Function Address Enable\r
-AT91C_UDP_CONFG EQU (0x1 << 1) ;- (UDP) Configured\r
-AT91C_UDP_ESR EQU (0x1 << 2) ;- (UDP) Enable Send Resume\r
-AT91C_UDP_RSMINPR EQU (0x1 << 3) ;- (UDP) A Resume Has Been Sent to the Host\r
-AT91C_UDP_RMWUPE EQU (0x1 << 4) ;- (UDP) Remote Wake Up Enable\r
-// - -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- \r
-AT91C_UDP_FADD EQU (0xFF << 0) ;- (UDP) Function Address Value\r
-AT91C_UDP_FEN EQU (0x1 << 8) ;- (UDP) Function Enable\r
-// - -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- \r
-AT91C_UDP_EPINT0 EQU (0x1 << 0) ;- (UDP) Endpoint 0 Interrupt\r
-AT91C_UDP_EPINT1 EQU (0x1 << 1) ;- (UDP) Endpoint 0 Interrupt\r
-AT91C_UDP_EPINT2 EQU (0x1 << 2) ;- (UDP) Endpoint 2 Interrupt\r
-AT91C_UDP_EPINT3 EQU (0x1 << 3) ;- (UDP) Endpoint 3 Interrupt\r
-AT91C_UDP_EPINT4 EQU (0x1 << 4) ;- (UDP) Endpoint 4 Interrupt\r
-AT91C_UDP_EPINT5 EQU (0x1 << 5) ;- (UDP) Endpoint 5 Interrupt\r
-AT91C_UDP_RXSUSP EQU (0x1 << 8) ;- (UDP) USB Suspend Interrupt\r
-AT91C_UDP_RXRSM EQU (0x1 << 9) ;- (UDP) USB Resume Interrupt\r
-AT91C_UDP_EXTRSM EQU (0x1 << 10) ;- (UDP) USB External Resume Interrupt\r
-AT91C_UDP_SOFINT EQU (0x1 << 11) ;- (UDP) USB Start Of frame Interrupt\r
-AT91C_UDP_WAKEUP EQU (0x1 << 13) ;- (UDP) USB Resume Interrupt\r
-// - -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- \r
-// - -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- \r
-// - -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- \r
-AT91C_UDP_ENDBUSRES EQU (0x1 << 12) ;- (UDP) USB End Of Bus Reset Interrupt\r
-// - -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- \r
-// - -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- \r
-AT91C_UDP_EP0 EQU (0x1 << 0) ;- (UDP) Reset Endpoint 0\r
-AT91C_UDP_EP1 EQU (0x1 << 1) ;- (UDP) Reset Endpoint 1\r
-AT91C_UDP_EP2 EQU (0x1 << 2) ;- (UDP) Reset Endpoint 2\r
-AT91C_UDP_EP3 EQU (0x1 << 3) ;- (UDP) Reset Endpoint 3\r
-AT91C_UDP_EP4 EQU (0x1 << 4) ;- (UDP) Reset Endpoint 4\r
-AT91C_UDP_EP5 EQU (0x1 << 5) ;- (UDP) Reset Endpoint 5\r
-// - -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- \r
-AT91C_UDP_TXCOMP EQU (0x1 << 0) ;- (UDP) Generates an IN packet with data previously written in the DPR\r
-AT91C_UDP_RX_DATA_BK0 EQU (0x1 << 1) ;- (UDP) Receive Data Bank 0\r
-AT91C_UDP_RXSETUP EQU (0x1 << 2) ;- (UDP) Sends STALL to the Host (Control endpoints)\r
-AT91C_UDP_ISOERROR EQU (0x1 << 3) ;- (UDP) Isochronous error (Isochronous endpoints)\r
-AT91C_UDP_TXPKTRDY EQU (0x1 << 4) ;- (UDP) Transmit Packet Ready\r
-AT91C_UDP_FORCESTALL EQU (0x1 << 5) ;- (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).\r
-AT91C_UDP_RX_DATA_BK1 EQU (0x1 << 6) ;- (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).\r
-AT91C_UDP_DIR EQU (0x1 << 7) ;- (UDP) Transfer Direction\r
-AT91C_UDP_EPTYPE EQU (0x7 << 8) ;- (UDP) Endpoint type\r
-AT91C_UDP_EPTYPE_CTRL EQU (0x0 << 8) ;- (UDP) Control\r
-AT91C_UDP_EPTYPE_ISO_OUT EQU (0x1 << 8) ;- (UDP) Isochronous OUT\r
-AT91C_UDP_EPTYPE_BULK_OUT EQU (0x2 << 8) ;- (UDP) Bulk OUT\r
-AT91C_UDP_EPTYPE_INT_OUT EQU (0x3 << 8) ;- (UDP) Interrupt OUT\r
-AT91C_UDP_EPTYPE_ISO_IN EQU (0x5 << 8) ;- (UDP) Isochronous IN\r
-AT91C_UDP_EPTYPE_BULK_IN EQU (0x6 << 8) ;- (UDP) Bulk IN\r
-AT91C_UDP_EPTYPE_INT_IN EQU (0x7 << 8) ;- (UDP) Interrupt IN\r
-AT91C_UDP_DTGLE EQU (0x1 << 11) ;- (UDP) Data Toggle\r
-AT91C_UDP_EPEDS EQU (0x1 << 15) ;- (UDP) Endpoint Enable Disable\r
-AT91C_UDP_RXBYTECNT EQU (0x7FF << 16) ;- (UDP) Number Of Bytes Available in the FIFO\r
-// - -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- \r
-AT91C_UDP_TXVDIS EQU (0x1 << 8) ;- (UDP) \r
-AT91C_UDP_PUON EQU (0x1 << 9) ;- (UDP) Pull-up ON\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Timer Counter Channel Interface\r
-// - *****************************************************************************\r
-// - -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- \r
-AT91C_TC_CLKEN EQU (0x1 << 0) ;- (TC) Counter Clock Enable Command\r
-AT91C_TC_CLKDIS EQU (0x1 << 1) ;- (TC) Counter Clock Disable Command\r
-AT91C_TC_SWTRG EQU (0x1 << 2) ;- (TC) Software Trigger Command\r
-// - -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- \r
-AT91C_TC_CLKS EQU (0x7 << 0) ;- (TC) Clock Selection\r
-AT91C_TC_CLKS_TIMER_DIV1_CLOCK EQU (0x0) ;- (TC) Clock selected: TIMER_DIV1_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV2_CLOCK EQU (0x1) ;- (TC) Clock selected: TIMER_DIV2_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV3_CLOCK EQU (0x2) ;- (TC) Clock selected: TIMER_DIV3_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV4_CLOCK EQU (0x3) ;- (TC) Clock selected: TIMER_DIV4_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV5_CLOCK EQU (0x4) ;- (TC) Clock selected: TIMER_DIV5_CLOCK\r
-AT91C_TC_CLKS_XC0 EQU (0x5) ;- (TC) Clock selected: XC0\r
-AT91C_TC_CLKS_XC1 EQU (0x6) ;- (TC) Clock selected: XC1\r
-AT91C_TC_CLKS_XC2 EQU (0x7) ;- (TC) Clock selected: XC2\r
-AT91C_TC_CLKI EQU (0x1 << 3) ;- (TC) Clock Invert\r
-AT91C_TC_BURST EQU (0x3 << 4) ;- (TC) Burst Signal Selection\r
-AT91C_TC_BURST_NONE EQU (0x0 << 4) ;- (TC) The clock is not gated by an external signal\r
-AT91C_TC_BURST_XC0 EQU (0x1 << 4) ;- (TC) XC0 is ANDed with the selected clock\r
-AT91C_TC_BURST_XC1 EQU (0x2 << 4) ;- (TC) XC1 is ANDed with the selected clock\r
-AT91C_TC_BURST_XC2 EQU (0x3 << 4) ;- (TC) XC2 is ANDed with the selected clock\r
-AT91C_TC_CPCSTOP EQU (0x1 << 6) ;- (TC) Counter Clock Stopped with RC Compare\r
-AT91C_TC_LDBSTOP EQU (0x1 << 6) ;- (TC) Counter Clock Stopped with RB Loading\r
-AT91C_TC_CPCDIS EQU (0x1 << 7) ;- (TC) Counter Clock Disable with RC Compare\r
-AT91C_TC_LDBDIS EQU (0x1 << 7) ;- (TC) Counter Clock Disabled with RB Loading\r
-AT91C_TC_ETRGEDG EQU (0x3 << 8) ;- (TC) External Trigger Edge Selection\r
-AT91C_TC_ETRGEDG_NONE EQU (0x0 << 8) ;- (TC) Edge: None\r
-AT91C_TC_ETRGEDG_RISING EQU (0x1 << 8) ;- (TC) Edge: rising edge\r
-AT91C_TC_ETRGEDG_FALLING EQU (0x2 << 8) ;- (TC) Edge: falling edge\r
-AT91C_TC_ETRGEDG_BOTH EQU (0x3 << 8) ;- (TC) Edge: each edge\r
-AT91C_TC_EEVTEDG EQU (0x3 << 8) ;- (TC) External Event Edge Selection\r
-AT91C_TC_EEVTEDG_NONE EQU (0x0 << 8) ;- (TC) Edge: None\r
-AT91C_TC_EEVTEDG_RISING EQU (0x1 << 8) ;- (TC) Edge: rising edge\r
-AT91C_TC_EEVTEDG_FALLING EQU (0x2 << 8) ;- (TC) Edge: falling edge\r
-AT91C_TC_EEVTEDG_BOTH EQU (0x3 << 8) ;- (TC) Edge: each edge\r
-AT91C_TC_EEVT EQU (0x3 << 10) ;- (TC) External Event Selection\r
-AT91C_TC_EEVT_TIOB EQU (0x0 << 10) ;- (TC) Signal selected as external event: TIOB TIOB direction: input\r
-AT91C_TC_EEVT_XC0 EQU (0x1 << 10) ;- (TC) Signal selected as external event: XC0 TIOB direction: output\r
-AT91C_TC_EEVT_XC1 EQU (0x2 << 10) ;- (TC) Signal selected as external event: XC1 TIOB direction: output\r
-AT91C_TC_EEVT_XC2 EQU (0x3 << 10) ;- (TC) Signal selected as external event: XC2 TIOB direction: output\r
-AT91C_TC_ABETRG EQU (0x1 << 10) ;- (TC) TIOA or TIOB External Trigger Selection\r
-AT91C_TC_ENETRG EQU (0x1 << 12) ;- (TC) External Event Trigger enable\r
-AT91C_TC_WAVESEL EQU (0x3 << 13) ;- (TC) Waveform Selection\r
-AT91C_TC_WAVESEL_UP EQU (0x0 << 13) ;- (TC) UP mode without atomatic trigger on RC Compare\r
-AT91C_TC_WAVESEL_UPDOWN EQU (0x1 << 13) ;- (TC) UPDOWN mode without automatic trigger on RC Compare\r
-AT91C_TC_WAVESEL_UP_AUTO EQU (0x2 << 13) ;- (TC) UP mode with automatic trigger on RC Compare\r
-AT91C_TC_WAVESEL_UPDOWN_AUTO EQU (0x3 << 13) ;- (TC) UPDOWN mode with automatic trigger on RC Compare\r
-AT91C_TC_CPCTRG EQU (0x1 << 14) ;- (TC) RC Compare Trigger Enable\r
-AT91C_TC_WAVE EQU (0x1 << 15) ;- (TC) \r
-AT91C_TC_ACPA EQU (0x3 << 16) ;- (TC) RA Compare Effect on TIOA\r
-AT91C_TC_ACPA_NONE EQU (0x0 << 16) ;- (TC) Effect: none\r
-AT91C_TC_ACPA_SET EQU (0x1 << 16) ;- (TC) Effect: set\r
-AT91C_TC_ACPA_CLEAR EQU (0x2 << 16) ;- (TC) Effect: clear\r
-AT91C_TC_ACPA_TOGGLE EQU (0x3 << 16) ;- (TC) Effect: toggle\r
-AT91C_TC_LDRA EQU (0x3 << 16) ;- (TC) RA Loading Selection\r
-AT91C_TC_LDRA_NONE EQU (0x0 << 16) ;- (TC) Edge: None\r
-AT91C_TC_LDRA_RISING EQU (0x1 << 16) ;- (TC) Edge: rising edge of TIOA\r
-AT91C_TC_LDRA_FALLING EQU (0x2 << 16) ;- (TC) Edge: falling edge of TIOA\r
-AT91C_TC_LDRA_BOTH EQU (0x3 << 16) ;- (TC) Edge: each edge of TIOA\r
-AT91C_TC_ACPC EQU (0x3 << 18) ;- (TC) RC Compare Effect on TIOA\r
-AT91C_TC_ACPC_NONE EQU (0x0 << 18) ;- (TC) Effect: none\r
-AT91C_TC_ACPC_SET EQU (0x1 << 18) ;- (TC) Effect: set\r
-AT91C_TC_ACPC_CLEAR EQU (0x2 << 18) ;- (TC) Effect: clear\r
-AT91C_TC_ACPC_TOGGLE EQU (0x3 << 18) ;- (TC) Effect: toggle\r
-AT91C_TC_LDRB EQU (0x3 << 18) ;- (TC) RB Loading Selection\r
-AT91C_TC_LDRB_NONE EQU (0x0 << 18) ;- (TC) Edge: None\r
-AT91C_TC_LDRB_RISING EQU (0x1 << 18) ;- (TC) Edge: rising edge of TIOA\r
-AT91C_TC_LDRB_FALLING EQU (0x2 << 18) ;- (TC) Edge: falling edge of TIOA\r
-AT91C_TC_LDRB_BOTH EQU (0x3 << 18) ;- (TC) Edge: each edge of TIOA\r
-AT91C_TC_AEEVT EQU (0x3 << 20) ;- (TC) External Event Effect on TIOA\r
-AT91C_TC_AEEVT_NONE EQU (0x0 << 20) ;- (TC) Effect: none\r
-AT91C_TC_AEEVT_SET EQU (0x1 << 20) ;- (TC) Effect: set\r
-AT91C_TC_AEEVT_CLEAR EQU (0x2 << 20) ;- (TC) Effect: clear\r
-AT91C_TC_AEEVT_TOGGLE EQU (0x3 << 20) ;- (TC) Effect: toggle\r
-AT91C_TC_ASWTRG EQU (0x3 << 22) ;- (TC) Software Trigger Effect on TIOA\r
-AT91C_TC_ASWTRG_NONE EQU (0x0 << 22) ;- (TC) Effect: none\r
-AT91C_TC_ASWTRG_SET EQU (0x1 << 22) ;- (TC) Effect: set\r
-AT91C_TC_ASWTRG_CLEAR EQU (0x2 << 22) ;- (TC) Effect: clear\r
-AT91C_TC_ASWTRG_TOGGLE EQU (0x3 << 22) ;- (TC) Effect: toggle\r
-AT91C_TC_BCPB EQU (0x3 << 24) ;- (TC) RB Compare Effect on TIOB\r
-AT91C_TC_BCPB_NONE EQU (0x0 << 24) ;- (TC) Effect: none\r
-AT91C_TC_BCPB_SET EQU (0x1 << 24) ;- (TC) Effect: set\r
-AT91C_TC_BCPB_CLEAR EQU (0x2 << 24) ;- (TC) Effect: clear\r
-AT91C_TC_BCPB_TOGGLE EQU (0x3 << 24) ;- (TC) Effect: toggle\r
-AT91C_TC_BCPC EQU (0x3 << 26) ;- (TC) RC Compare Effect on TIOB\r
-AT91C_TC_BCPC_NONE EQU (0x0 << 26) ;- (TC) Effect: none\r
-AT91C_TC_BCPC_SET EQU (0x1 << 26) ;- (TC) Effect: set\r
-AT91C_TC_BCPC_CLEAR EQU (0x2 << 26) ;- (TC) Effect: clear\r
-AT91C_TC_BCPC_TOGGLE EQU (0x3 << 26) ;- (TC) Effect: toggle\r
-AT91C_TC_BEEVT EQU (0x3 << 28) ;- (TC) External Event Effect on TIOB\r
-AT91C_TC_BEEVT_NONE EQU (0x0 << 28) ;- (TC) Effect: none\r
-AT91C_TC_BEEVT_SET EQU (0x1 << 28) ;- (TC) Effect: set\r
-AT91C_TC_BEEVT_CLEAR EQU (0x2 << 28) ;- (TC) Effect: clear\r
-AT91C_TC_BEEVT_TOGGLE EQU (0x3 << 28) ;- (TC) Effect: toggle\r
-AT91C_TC_BSWTRG EQU (0x3 << 30) ;- (TC) Software Trigger Effect on TIOB\r
-AT91C_TC_BSWTRG_NONE EQU (0x0 << 30) ;- (TC) Effect: none\r
-AT91C_TC_BSWTRG_SET EQU (0x1 << 30) ;- (TC) Effect: set\r
-AT91C_TC_BSWTRG_CLEAR EQU (0x2 << 30) ;- (TC) Effect: clear\r
-AT91C_TC_BSWTRG_TOGGLE EQU (0x3 << 30) ;- (TC) Effect: toggle\r
-// - -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- \r
-AT91C_TC_COVFS EQU (0x1 << 0) ;- (TC) Counter Overflow\r
-AT91C_TC_LOVRS EQU (0x1 << 1) ;- (TC) Load Overrun\r
-AT91C_TC_CPAS EQU (0x1 << 2) ;- (TC) RA Compare\r
-AT91C_TC_CPBS EQU (0x1 << 3) ;- (TC) RB Compare\r
-AT91C_TC_CPCS EQU (0x1 << 4) ;- (TC) RC Compare\r
-AT91C_TC_LDRAS EQU (0x1 << 5) ;- (TC) RA Loading\r
-AT91C_TC_LDRBS EQU (0x1 << 6) ;- (TC) RB Loading\r
-AT91C_TC_ETRGS EQU (0x1 << 7) ;- (TC) External Trigger\r
-AT91C_TC_CLKSTA EQU (0x1 << 16) ;- (TC) Clock Enabling\r
-AT91C_TC_MTIOA EQU (0x1 << 17) ;- (TC) TIOA Mirror\r
-AT91C_TC_MTIOB EQU (0x1 << 18) ;- (TC) TIOA Mirror\r
-// - -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- \r
-// - -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- \r
-// - -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Timer Counter Interface\r
-// - *****************************************************************************\r
-// - -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- \r
-AT91C_TCB_SYNC EQU (0x1 << 0) ;- (TCB) Synchro Command\r
-// - -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- \r
-AT91C_TCB_TC0XC0S EQU (0x3 << 0) ;- (TCB) External Clock Signal 0 Selection\r
-AT91C_TCB_TC0XC0S_TCLK0 EQU (0x0) ;- (TCB) TCLK0 connected to XC0\r
-AT91C_TCB_TC0XC0S_NONE EQU (0x1) ;- (TCB) None signal connected to XC0\r
-AT91C_TCB_TC0XC0S_TIOA1 EQU (0x2) ;- (TCB) TIOA1 connected to XC0\r
-AT91C_TCB_TC0XC0S_TIOA2 EQU (0x3) ;- (TCB) TIOA2 connected to XC0\r
-AT91C_TCB_TC1XC1S EQU (0x3 << 2) ;- (TCB) External Clock Signal 1 Selection\r
-AT91C_TCB_TC1XC1S_TCLK1 EQU (0x0 << 2) ;- (TCB) TCLK1 connected to XC1\r
-AT91C_TCB_TC1XC1S_NONE EQU (0x1 << 2) ;- (TCB) None signal connected to XC1\r
-AT91C_TCB_TC1XC1S_TIOA0 EQU (0x2 << 2) ;- (TCB) TIOA0 connected to XC1\r
-AT91C_TCB_TC1XC1S_TIOA2 EQU (0x3 << 2) ;- (TCB) TIOA2 connected to XC1\r
-AT91C_TCB_TC2XC2S EQU (0x3 << 4) ;- (TCB) External Clock Signal 2 Selection\r
-AT91C_TCB_TC2XC2S_TCLK2 EQU (0x0 << 4) ;- (TCB) TCLK2 connected to XC2\r
-AT91C_TCB_TC2XC2S_NONE EQU (0x1 << 4) ;- (TCB) None signal connected to XC2\r
-AT91C_TCB_TC2XC2S_TIOA0 EQU (0x2 << 4) ;- (TCB) TIOA0 connected to XC2\r
-AT91C_TCB_TC2XC2S_TIOA1 EQU (0x3 << 4) ;- (TCB) TIOA2 connected to XC2\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Control Area Network MailBox Interface\r
-// - *****************************************************************************\r
-// - -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- \r
-AT91C_CAN_MTIMEMARK EQU (0xFFFF << 0) ;- (CAN_MB) Mailbox Timemark\r
-AT91C_CAN_PRIOR EQU (0xF << 16) ;- (CAN_MB) Mailbox Priority\r
-AT91C_CAN_MOT EQU (0x7 << 24) ;- (CAN_MB) Mailbox Object Type\r
-AT91C_CAN_MOT_DIS EQU (0x0 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_RX EQU (0x1 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_RXOVERWRITE EQU (0x2 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_TX EQU (0x3 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_CONSUMER EQU (0x4 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_PRODUCER EQU (0x5 << 24) ;- (CAN_MB) \r
-// - -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- \r
-AT91C_CAN_MIDvB EQU (0x3FFFF << 0) ;- (CAN_MB) Complementary bits for identifier in extended mode\r
-AT91C_CAN_MIDvA EQU (0x7FF << 18) ;- (CAN_MB) Identifier for standard frame mode\r
-AT91C_CAN_MIDE EQU (0x1 << 29) ;- (CAN_MB) Identifier Version\r
-// - -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- \r
-// - -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- \r
-// - -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- \r
-AT91C_CAN_MTIMESTAMP EQU (0xFFFF << 0) ;- (CAN_MB) Timer Value\r
-AT91C_CAN_MDLC EQU (0xF << 16) ;- (CAN_MB) Mailbox Data Length Code\r
-AT91C_CAN_MRTR EQU (0x1 << 20) ;- (CAN_MB) Mailbox Remote Transmission Request\r
-AT91C_CAN_MABT EQU (0x1 << 22) ;- (CAN_MB) Mailbox Message Abort\r
-AT91C_CAN_MRDY EQU (0x1 << 23) ;- (CAN_MB) Mailbox Ready\r
-AT91C_CAN_MMI EQU (0x1 << 24) ;- (CAN_MB) Mailbox Message Ignored\r
-// - -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- \r
-// - -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- \r
-// - -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- \r
-AT91C_CAN_MACR EQU (0x1 << 22) ;- (CAN_MB) Abort Request for Mailbox\r
-AT91C_CAN_MTCR EQU (0x1 << 23) ;- (CAN_MB) Mailbox Transfer Command\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Control Area Network Interface\r
-// - *****************************************************************************\r
-// - -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- \r
-AT91C_CAN_CANEN EQU (0x1 << 0) ;- (CAN) CAN Controller Enable\r
-AT91C_CAN_LPM EQU (0x1 << 1) ;- (CAN) Disable/Enable Low Power Mode\r
-AT91C_CAN_ABM EQU (0x1 << 2) ;- (CAN) Disable/Enable Autobaud/Listen Mode\r
-AT91C_CAN_OVL EQU (0x1 << 3) ;- (CAN) Disable/Enable Overload Frame\r
-AT91C_CAN_TEOF EQU (0x1 << 4) ;- (CAN) Time Stamp messages at each end of Frame\r
-AT91C_CAN_TTM EQU (0x1 << 5) ;- (CAN) Disable/Enable Time Trigger Mode\r
-AT91C_CAN_TIMFRZ EQU (0x1 << 6) ;- (CAN) Enable Timer Freeze\r
-AT91C_CAN_DRPT EQU (0x1 << 7) ;- (CAN) Disable Repeat\r
-// - -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- \r
-AT91C_CAN_MB0 EQU (0x1 << 0) ;- (CAN) Mailbox 0 Flag\r
-AT91C_CAN_MB1 EQU (0x1 << 1) ;- (CAN) Mailbox 1 Flag\r
-AT91C_CAN_MB2 EQU (0x1 << 2) ;- (CAN) Mailbox 2 Flag\r
-AT91C_CAN_MB3 EQU (0x1 << 3) ;- (CAN) Mailbox 3 Flag\r
-AT91C_CAN_MB4 EQU (0x1 << 4) ;- (CAN) Mailbox 4 Flag\r
-AT91C_CAN_MB5 EQU (0x1 << 5) ;- (CAN) Mailbox 5 Flag\r
-AT91C_CAN_MB6 EQU (0x1 << 6) ;- (CAN) Mailbox 6 Flag\r
-AT91C_CAN_MB7 EQU (0x1 << 7) ;- (CAN) Mailbox 7 Flag\r
-AT91C_CAN_MB8 EQU (0x1 << 8) ;- (CAN) Mailbox 8 Flag\r
-AT91C_CAN_MB9 EQU (0x1 << 9) ;- (CAN) Mailbox 9 Flag\r
-AT91C_CAN_MB10 EQU (0x1 << 10) ;- (CAN) Mailbox 10 Flag\r
-AT91C_CAN_MB11 EQU (0x1 << 11) ;- (CAN) Mailbox 11 Flag\r
-AT91C_CAN_MB12 EQU (0x1 << 12) ;- (CAN) Mailbox 12 Flag\r
-AT91C_CAN_MB13 EQU (0x1 << 13) ;- (CAN) Mailbox 13 Flag\r
-AT91C_CAN_MB14 EQU (0x1 << 14) ;- (CAN) Mailbox 14 Flag\r
-AT91C_CAN_MB15 EQU (0x1 << 15) ;- (CAN) Mailbox 15 Flag\r
-AT91C_CAN_ERRA EQU (0x1 << 16) ;- (CAN) Error Active Mode Flag\r
-AT91C_CAN_WARN EQU (0x1 << 17) ;- (CAN) Warning Limit Flag\r
-AT91C_CAN_ERRP EQU (0x1 << 18) ;- (CAN) Error Passive Mode Flag\r
-AT91C_CAN_BOFF EQU (0x1 << 19) ;- (CAN) Bus Off Mode Flag\r
-AT91C_CAN_SLEEP EQU (0x1 << 20) ;- (CAN) Sleep Flag\r
-AT91C_CAN_WAKEUP EQU (0x1 << 21) ;- (CAN) Wakeup Flag\r
-AT91C_CAN_TOVF EQU (0x1 << 22) ;- (CAN) Timer Overflow Flag\r
-AT91C_CAN_TSTP EQU (0x1 << 23) ;- (CAN) Timestamp Flag\r
-AT91C_CAN_CERR EQU (0x1 << 24) ;- (CAN) CRC Error\r
-AT91C_CAN_SERR EQU (0x1 << 25) ;- (CAN) Stuffing Error\r
-AT91C_CAN_AERR EQU (0x1 << 26) ;- (CAN) Acknowledgment Error\r
-AT91C_CAN_FERR EQU (0x1 << 27) ;- (CAN) Form Error\r
-AT91C_CAN_BERR EQU (0x1 << 28) ;- (CAN) Bit Error\r
-// - -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- \r
-// - -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- \r
-// - -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- \r
-AT91C_CAN_RBSY EQU (0x1 << 29) ;- (CAN) Receiver Busy\r
-AT91C_CAN_TBSY EQU (0x1 << 30) ;- (CAN) Transmitter Busy\r
-AT91C_CAN_OVLY EQU (0x1 << 31) ;- (CAN) Overload Busy\r
-// - -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- \r
-AT91C_CAN_PHASE2 EQU (0x7 << 0) ;- (CAN) Phase 2 segment\r
-AT91C_CAN_PHASE1 EQU (0x7 << 4) ;- (CAN) Phase 1 segment\r
-AT91C_CAN_PROPAG EQU (0x7 << 8) ;- (CAN) Programmation time segment\r
-AT91C_CAN_SYNC EQU (0x3 << 12) ;- (CAN) Re-synchronization jump width segment\r
-AT91C_CAN_BRP EQU (0x7F << 16) ;- (CAN) Baudrate Prescaler\r
-AT91C_CAN_SMP EQU (0x1 << 24) ;- (CAN) Sampling mode\r
-// - -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- \r
-AT91C_CAN_TIMER EQU (0xFFFF << 0) ;- (CAN) Timer field\r
-// - -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- \r
-// - -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- \r
-AT91C_CAN_REC EQU (0xFF << 0) ;- (CAN) Receive Error Counter\r
-AT91C_CAN_TEC EQU (0xFF << 16) ;- (CAN) Transmit Error Counter\r
-// - -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- \r
-AT91C_CAN_TIMRST EQU (0x1 << 31) ;- (CAN) Timer Reset Field\r
-// - -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Ethernet MAC 10/100\r
-// - *****************************************************************************\r
-// - -------- EMAC_NCR : (EMAC Offset: 0x0) -------- \r
-AT91C_EMAC_LB EQU (0x1 << 0) ;- (EMAC) Loopback. Optional. When set, loopback signal is at high level.\r
-AT91C_EMAC_LLB EQU (0x1 << 1) ;- (EMAC) Loopback local. \r
-AT91C_EMAC_RE EQU (0x1 << 2) ;- (EMAC) Receive enable. \r
-AT91C_EMAC_TE EQU (0x1 << 3) ;- (EMAC) Transmit enable. \r
-AT91C_EMAC_MPE EQU (0x1 << 4) ;- (EMAC) Management port enable. \r
-AT91C_EMAC_CLRSTAT EQU (0x1 << 5) ;- (EMAC) Clear statistics registers. \r
-AT91C_EMAC_INCSTAT EQU (0x1 << 6) ;- (EMAC) Increment statistics registers. \r
-AT91C_EMAC_WESTAT EQU (0x1 << 7) ;- (EMAC) Write enable for statistics registers. \r
-AT91C_EMAC_BP EQU (0x1 << 8) ;- (EMAC) Back pressure. \r
-AT91C_EMAC_TSTART EQU (0x1 << 9) ;- (EMAC) Start Transmission. \r
-AT91C_EMAC_THALT EQU (0x1 << 10) ;- (EMAC) Transmission Halt. \r
-AT91C_EMAC_TPFR EQU (0x1 << 11) ;- (EMAC) Transmit pause frame \r
-AT91C_EMAC_TZQ EQU (0x1 << 12) ;- (EMAC) Transmit zero quantum pause frame\r
-// - -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- \r
-AT91C_EMAC_SPD EQU (0x1 << 0) ;- (EMAC) Speed. \r
-AT91C_EMAC_FD EQU (0x1 << 1) ;- (EMAC) Full duplex. \r
-AT91C_EMAC_JFRAME EQU (0x1 << 3) ;- (EMAC) Jumbo Frames. \r
-AT91C_EMAC_CAF EQU (0x1 << 4) ;- (EMAC) Copy all frames. \r
-AT91C_EMAC_NBC EQU (0x1 << 5) ;- (EMAC) No broadcast. \r
-AT91C_EMAC_MTI EQU (0x1 << 6) ;- (EMAC) Multicast hash event enable\r
-AT91C_EMAC_UNI EQU (0x1 << 7) ;- (EMAC) Unicast hash enable. \r
-AT91C_EMAC_BIG EQU (0x1 << 8) ;- (EMAC) Receive 1522 bytes. \r
-AT91C_EMAC_EAE EQU (0x1 << 9) ;- (EMAC) External address match enable. \r
-AT91C_EMAC_CLK EQU (0x3 << 10) ;- (EMAC) \r
-AT91C_EMAC_CLK_HCLK_8 EQU (0x0 << 10) ;- (EMAC) HCLK divided by 8\r
-AT91C_EMAC_CLK_HCLK_16 EQU (0x1 << 10) ;- (EMAC) HCLK divided by 16\r
-AT91C_EMAC_CLK_HCLK_32 EQU (0x2 << 10) ;- (EMAC) HCLK divided by 32\r
-AT91C_EMAC_CLK_HCLK_64 EQU (0x3 << 10) ;- (EMAC) HCLK divided by 64\r
-AT91C_EMAC_RTY EQU (0x1 << 12) ;- (EMAC) \r
-AT91C_EMAC_PAE EQU (0x1 << 13) ;- (EMAC) \r
-AT91C_EMAC_RBOF EQU (0x3 << 14) ;- (EMAC) \r
-AT91C_EMAC_RBOF_OFFSET_0 EQU (0x0 << 14) ;- (EMAC) no offset from start of receive buffer\r
-AT91C_EMAC_RBOF_OFFSET_1 EQU (0x1 << 14) ;- (EMAC) one byte offset from start of receive buffer\r
-AT91C_EMAC_RBOF_OFFSET_2 EQU (0x2 << 14) ;- (EMAC) two bytes offset from start of receive buffer\r
-AT91C_EMAC_RBOF_OFFSET_3 EQU (0x3 << 14) ;- (EMAC) three bytes offset from start of receive buffer\r
-AT91C_EMAC_RLCE EQU (0x1 << 16) ;- (EMAC) Receive Length field Checking Enable\r
-AT91C_EMAC_DRFCS EQU (0x1 << 17) ;- (EMAC) Discard Receive FCS\r
-AT91C_EMAC_EFRHD EQU (0x1 << 18) ;- (EMAC) \r
-AT91C_EMAC_IRXFCS EQU (0x1 << 19) ;- (EMAC) Ignore RX FCS\r
-// - -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- \r
-AT91C_EMAC_LINKR EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_MDIO EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_IDLE EQU (0x1 << 2) ;- (EMAC) \r
-// - -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- \r
-AT91C_EMAC_UBR EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_COL EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_RLES EQU (0x1 << 2) ;- (EMAC) \r
-AT91C_EMAC_TGO EQU (0x1 << 3) ;- (EMAC) Transmit Go\r
-AT91C_EMAC_BEX EQU (0x1 << 4) ;- (EMAC) Buffers exhausted mid frame\r
-AT91C_EMAC_COMP EQU (0x1 << 5) ;- (EMAC) \r
-AT91C_EMAC_UND EQU (0x1 << 6) ;- (EMAC) \r
-// - -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- \r
-AT91C_EMAC_BNA EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_REC EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_OVR EQU (0x1 << 2) ;- (EMAC) \r
-// - -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- \r
-AT91C_EMAC_MFD EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_RCOMP EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_RXUBR EQU (0x1 << 2) ;- (EMAC) \r
-AT91C_EMAC_TXUBR EQU (0x1 << 3) ;- (EMAC) \r
-AT91C_EMAC_TUNDR EQU (0x1 << 4) ;- (EMAC) \r
-AT91C_EMAC_RLEX EQU (0x1 << 5) ;- (EMAC) \r
-AT91C_EMAC_TXERR EQU (0x1 << 6) ;- (EMAC) \r
-AT91C_EMAC_TCOMP EQU (0x1 << 7) ;- (EMAC) \r
-AT91C_EMAC_LINK EQU (0x1 << 9) ;- (EMAC) \r
-AT91C_EMAC_ROVR EQU (0x1 << 10) ;- (EMAC) \r
-AT91C_EMAC_HRESP EQU (0x1 << 11) ;- (EMAC) \r
-AT91C_EMAC_PFRE EQU (0x1 << 12) ;- (EMAC) \r
-AT91C_EMAC_PTZ EQU (0x1 << 13) ;- (EMAC) \r
-// - -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- \r
-// - -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- \r
-// - -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- \r
-// - -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- \r
-AT91C_EMAC_DATA EQU (0xFFFF << 0) ;- (EMAC) \r
-AT91C_EMAC_CODE EQU (0x3 << 16) ;- (EMAC) \r
-AT91C_EMAC_REGA EQU (0x1F << 18) ;- (EMAC) \r
-AT91C_EMAC_PHYA EQU (0x1F << 23) ;- (EMAC) \r
-AT91C_EMAC_RW EQU (0x3 << 28) ;- (EMAC) \r
-AT91C_EMAC_SOF EQU (0x3 << 30) ;- (EMAC) \r
-// - -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- \r
-AT91C_EMAC_RMII EQU (0x1 << 0) ;- (EMAC) Reduce MII\r
-// - -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- \r
-AT91C_EMAC_IP EQU (0xFFFF << 0) ;- (EMAC) ARP request IP address\r
-AT91C_EMAC_MAG EQU (0x1 << 16) ;- (EMAC) Magic packet event enable\r
-AT91C_EMAC_ARP EQU (0x1 << 17) ;- (EMAC) ARP request event enable\r
-AT91C_EMAC_SA1 EQU (0x1 << 18) ;- (EMAC) Specific address register 1 event enable\r
-// - -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- \r
-AT91C_EMAC_REVREF EQU (0xFFFF << 0) ;- (EMAC) \r
-AT91C_EMAC_PARTREF EQU (0xFFFF << 16) ;- (EMAC) \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Analog to Digital Convertor\r
-// - *****************************************************************************\r
-// - -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- \r
-AT91C_ADC_SWRST EQU (0x1 << 0) ;- (ADC) Software Reset\r
-AT91C_ADC_START EQU (0x1 << 1) ;- (ADC) Start Conversion\r
-// - -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- \r
-AT91C_ADC_TRGEN EQU (0x1 << 0) ;- (ADC) Trigger Enable\r
-AT91C_ADC_TRGEN_DIS EQU (0x0) ;- (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software\r
-AT91C_ADC_TRGEN_EN EQU (0x1) ;- (ADC) Hardware trigger selected by TRGSEL field is enabled.\r
-AT91C_ADC_TRGSEL EQU (0x7 << 1) ;- (ADC) Trigger Selection\r
-AT91C_ADC_TRGSEL_TIOA0 EQU (0x0 << 1) ;- (ADC) Selected TRGSEL = TIAO0\r
-AT91C_ADC_TRGSEL_TIOA1 EQU (0x1 << 1) ;- (ADC) Selected TRGSEL = TIAO1\r
-AT91C_ADC_TRGSEL_TIOA2 EQU (0x2 << 1) ;- (ADC) Selected TRGSEL = TIAO2\r
-AT91C_ADC_TRGSEL_TIOA3 EQU (0x3 << 1) ;- (ADC) Selected TRGSEL = TIAO3\r
-AT91C_ADC_TRGSEL_TIOA4 EQU (0x4 << 1) ;- (ADC) Selected TRGSEL = TIAO4\r
-AT91C_ADC_TRGSEL_TIOA5 EQU (0x5 << 1) ;- (ADC) Selected TRGSEL = TIAO5\r
-AT91C_ADC_TRGSEL_EXT EQU (0x6 << 1) ;- (ADC) Selected TRGSEL = External Trigger\r
-AT91C_ADC_LOWRES EQU (0x1 << 4) ;- (ADC) Resolution.\r
-AT91C_ADC_LOWRES_10_BIT EQU (0x0 << 4) ;- (ADC) 10-bit resolution\r
-AT91C_ADC_LOWRES_8_BIT EQU (0x1 << 4) ;- (ADC) 8-bit resolution\r
-AT91C_ADC_SLEEP EQU (0x1 << 5) ;- (ADC) Sleep Mode\r
-AT91C_ADC_SLEEP_NORMAL_MODE EQU (0x0 << 5) ;- (ADC) Normal Mode\r
-AT91C_ADC_SLEEP_MODE EQU (0x1 << 5) ;- (ADC) Sleep Mode\r
-AT91C_ADC_PRESCAL EQU (0x3F << 8) ;- (ADC) Prescaler rate selection\r
-AT91C_ADC_STARTUP EQU (0x1F << 16) ;- (ADC) Startup Time\r
-AT91C_ADC_SHTIM EQU (0xF << 24) ;- (ADC) Sample & Hold Time\r
-// - -------- ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- \r
-AT91C_ADC_CH0 EQU (0x1 << 0) ;- (ADC) Channel 0\r
-AT91C_ADC_CH1 EQU (0x1 << 1) ;- (ADC) Channel 1\r
-AT91C_ADC_CH2 EQU (0x1 << 2) ;- (ADC) Channel 2\r
-AT91C_ADC_CH3 EQU (0x1 << 3) ;- (ADC) Channel 3\r
-AT91C_ADC_CH4 EQU (0x1 << 4) ;- (ADC) Channel 4\r
-AT91C_ADC_CH5 EQU (0x1 << 5) ;- (ADC) Channel 5\r
-AT91C_ADC_CH6 EQU (0x1 << 6) ;- (ADC) Channel 6\r
-AT91C_ADC_CH7 EQU (0x1 << 7) ;- (ADC) Channel 7\r
-// - -------- ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- \r
-// - -------- ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- \r
-// - -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- \r
-AT91C_ADC_EOC0 EQU (0x1 << 0) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC1 EQU (0x1 << 1) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC2 EQU (0x1 << 2) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC3 EQU (0x1 << 3) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC4 EQU (0x1 << 4) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC5 EQU (0x1 << 5) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC6 EQU (0x1 << 6) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC7 EQU (0x1 << 7) ;- (ADC) End of Conversion\r
-AT91C_ADC_OVRE0 EQU (0x1 << 8) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE1 EQU (0x1 << 9) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE2 EQU (0x1 << 10) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE3 EQU (0x1 << 11) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE4 EQU (0x1 << 12) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE5 EQU (0x1 << 13) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE6 EQU (0x1 << 14) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE7 EQU (0x1 << 15) ;- (ADC) Overrun Error\r
-AT91C_ADC_DRDY EQU (0x1 << 16) ;- (ADC) Data Ready\r
-AT91C_ADC_GOVRE EQU (0x1 << 17) ;- (ADC) General Overrun\r
-AT91C_ADC_ENDRX EQU (0x1 << 18) ;- (ADC) End of Receiver Transfer\r
-AT91C_ADC_RXBUFF EQU (0x1 << 19) ;- (ADC) RXBUFF Interrupt\r
-// - -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- \r
-AT91C_ADC_LDATA EQU (0x3FF << 0) ;- (ADC) Last Data Converted\r
-// - -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- \r
-// - -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- \r
-// - -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- \r
-// - -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- \r
-AT91C_ADC_DATA EQU (0x3FF << 0) ;- (ADC) Converted Data\r
-// - -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- \r
-// - -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- \r
-// - -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- \r
-// - -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- \r
-// - -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- \r
-// - -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- \r
-// - -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Advanced Encryption Standard\r
-// - *****************************************************************************\r
-// - -------- AES_CR : (AES Offset: 0x0) Control Register -------- \r
-AT91C_AES_START EQU (0x1 << 0) ;- (AES) Starts Processing\r
-AT91C_AES_SWRST EQU (0x1 << 8) ;- (AES) Software Reset\r
-AT91C_AES_LOADSEED EQU (0x1 << 16) ;- (AES) Random Number Generator Seed Loading\r
-// - -------- AES_MR : (AES Offset: 0x4) Mode Register -------- \r
-AT91C_AES_CIPHER EQU (0x1 << 0) ;- (AES) Processing Mode\r
-AT91C_AES_PROCDLY EQU (0xF << 4) ;- (AES) Processing Delay\r
-AT91C_AES_SMOD EQU (0x3 << 8) ;- (AES) Start Mode\r
-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.\r
-AT91C_AES_SMOD_AUTO EQU (0x1 << 8) ;- (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).\r
-AT91C_AES_SMOD_PDC EQU (0x2 << 8) ;- (AES) PDC Mode (cf datasheet).\r
-AT91C_AES_OPMOD EQU (0x7 << 12) ;- (AES) Operation Mode\r
-AT91C_AES_OPMOD_ECB EQU (0x0 << 12) ;- (AES) ECB Electronic CodeBook mode.\r
-AT91C_AES_OPMOD_CBC EQU (0x1 << 12) ;- (AES) CBC Cipher Block Chaining mode.\r
-AT91C_AES_OPMOD_OFB EQU (0x2 << 12) ;- (AES) OFB Output Feedback mode.\r
-AT91C_AES_OPMOD_CFB EQU (0x3 << 12) ;- (AES) CFB Cipher Feedback mode.\r
-AT91C_AES_OPMOD_CTR EQU (0x4 << 12) ;- (AES) CTR Counter mode.\r
-AT91C_AES_LOD EQU (0x1 << 15) ;- (AES) Last Output Data Mode\r
-AT91C_AES_CFBS EQU (0x7 << 16) ;- (AES) Cipher Feedback Data Size\r
-AT91C_AES_CFBS_128_BIT EQU (0x0 << 16) ;- (AES) 128-bit.\r
-AT91C_AES_CFBS_64_BIT EQU (0x1 << 16) ;- (AES) 64-bit.\r
-AT91C_AES_CFBS_32_BIT EQU (0x2 << 16) ;- (AES) 32-bit.\r
-AT91C_AES_CFBS_16_BIT EQU (0x3 << 16) ;- (AES) 16-bit.\r
-AT91C_AES_CFBS_8_BIT EQU (0x4 << 16) ;- (AES) 8-bit.\r
-AT91C_AES_CKEY EQU (0xF << 20) ;- (AES) Countermeasure Key\r
-AT91C_AES_CTYPE EQU (0x1F << 24) ;- (AES) Countermeasure Type\r
-AT91C_AES_CTYPE_TYPE1_EN EQU (0x1 << 24) ;- (AES) Countermeasure type 1 is enabled.\r
-AT91C_AES_CTYPE_TYPE2_EN EQU (0x2 << 24) ;- (AES) Countermeasure type 2 is enabled.\r
-AT91C_AES_CTYPE_TYPE3_EN EQU (0x4 << 24) ;- (AES) Countermeasure type 3 is enabled.\r
-AT91C_AES_CTYPE_TYPE4_EN EQU (0x8 << 24) ;- (AES) Countermeasure type 4 is enabled.\r
-AT91C_AES_CTYPE_TYPE5_EN EQU (0x10 << 24) ;- (AES) Countermeasure type 5 is enabled.\r
-// - -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- \r
-AT91C_AES_DATRDY EQU (0x1 << 0) ;- (AES) DATRDY\r
-AT91C_AES_ENDRX EQU (0x1 << 1) ;- (AES) PDC Read Buffer End\r
-AT91C_AES_ENDTX EQU (0x1 << 2) ;- (AES) PDC Write Buffer End\r
-AT91C_AES_RXBUFF EQU (0x1 << 3) ;- (AES) PDC Read Buffer Full\r
-AT91C_AES_TXBUFE EQU (0x1 << 4) ;- (AES) PDC Write Buffer Empty\r
-AT91C_AES_URAD EQU (0x1 << 8) ;- (AES) Unspecified Register Access Detection\r
-// - -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- \r
-// - -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- \r
-// - -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- \r
-AT91C_AES_URAT EQU (0x7 << 12) ;- (AES) Unspecified Register Access Type Status\r
-AT91C_AES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (AES) Input data register written during the data processing in PDC mode.\r
-AT91C_AES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (AES) Output data register read during the data processing.\r
-AT91C_AES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (AES) Mode register written during the data processing.\r
-AT91C_AES_URAT_OUT_DAT_READ_SUBKEY EQU (0x3 << 12) ;- (AES) Output data register read during the sub-keys generation.\r
-AT91C_AES_URAT_MODEREG_WRITE_SUBKEY EQU (0x4 << 12) ;- (AES) Mode register written during the sub-keys generation.\r
-AT91C_AES_URAT_WO_REG_READ EQU (0x5 << 12) ;- (AES) Write-only register read access.\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Triple Data Encryption Standard\r
-// - *****************************************************************************\r
-// - -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- \r
-AT91C_TDES_START EQU (0x1 << 0) ;- (TDES) Starts Processing\r
-AT91C_TDES_SWRST EQU (0x1 << 8) ;- (TDES) Software Reset\r
-// - -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- \r
-AT91C_TDES_CIPHER EQU (0x1 << 0) ;- (TDES) Processing Mode\r
-AT91C_TDES_TDESMOD EQU (0x1 << 1) ;- (TDES) Single or Triple DES Mode\r
-AT91C_TDES_KEYMOD EQU (0x1 << 4) ;- (TDES) Key Mode\r
-AT91C_TDES_SMOD EQU (0x3 << 8) ;- (TDES) Start Mode\r
-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.\r
-AT91C_TDES_SMOD_AUTO EQU (0x1 << 8) ;- (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).\r
-AT91C_TDES_SMOD_PDC EQU (0x2 << 8) ;- (TDES) PDC Mode (cf datasheet).\r
-AT91C_TDES_OPMOD EQU (0x3 << 12) ;- (TDES) Operation Mode\r
-AT91C_TDES_OPMOD_ECB EQU (0x0 << 12) ;- (TDES) ECB Electronic CodeBook mode.\r
-AT91C_TDES_OPMOD_CBC EQU (0x1 << 12) ;- (TDES) CBC Cipher Block Chaining mode.\r
-AT91C_TDES_OPMOD_OFB EQU (0x2 << 12) ;- (TDES) OFB Output Feedback mode.\r
-AT91C_TDES_OPMOD_CFB EQU (0x3 << 12) ;- (TDES) CFB Cipher Feedback mode.\r
-AT91C_TDES_LOD EQU (0x1 << 15) ;- (TDES) Last Output Data Mode\r
-AT91C_TDES_CFBS EQU (0x3 << 16) ;- (TDES) Cipher Feedback Data Size\r
-AT91C_TDES_CFBS_64_BIT EQU (0x0 << 16) ;- (TDES) 64-bit.\r
-AT91C_TDES_CFBS_32_BIT EQU (0x1 << 16) ;- (TDES) 32-bit.\r
-AT91C_TDES_CFBS_16_BIT EQU (0x2 << 16) ;- (TDES) 16-bit.\r
-AT91C_TDES_CFBS_8_BIT EQU (0x3 << 16) ;- (TDES) 8-bit.\r
-// - -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- \r
-AT91C_TDES_DATRDY EQU (0x1 << 0) ;- (TDES) DATRDY\r
-AT91C_TDES_ENDRX EQU (0x1 << 1) ;- (TDES) PDC Read Buffer End\r
-AT91C_TDES_ENDTX EQU (0x1 << 2) ;- (TDES) PDC Write Buffer End\r
-AT91C_TDES_RXBUFF EQU (0x1 << 3) ;- (TDES) PDC Read Buffer Full\r
-AT91C_TDES_TXBUFE EQU (0x1 << 4) ;- (TDES) PDC Write Buffer Empty\r
-AT91C_TDES_URAD EQU (0x1 << 8) ;- (TDES) Unspecified Register Access Detection\r
-// - -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- \r
-// - -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- \r
-// - -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- \r
-AT91C_TDES_URAT EQU (0x3 << 12) ;- (TDES) Unspecified Register Access Type Status\r
-AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (TDES) Input data register written during the data processing in PDC mode.\r
-AT91C_TDES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (TDES) Output data register read during the data processing.\r
-AT91C_TDES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (TDES) Mode register written during the data processing.\r
-AT91C_TDES_URAT_WO_REG_READ EQU (0x3 << 12) ;- (TDES) Write-only register read access.\r
-\r
-// - *****************************************************************************\r
-// - REGISTER ADDRESS DEFINITION FOR AT91SAM7X128\r
-// - *****************************************************************************\r
-// - ========== Register definition for SYS peripheral ========== \r
-// - ========== Register definition for AIC peripheral ========== \r
-AT91C_AIC_IVR EQU (0xFFFFF100) ;- (AIC) IRQ Vector Register\r
-AT91C_AIC_SMR EQU (0xFFFFF000) ;- (AIC) Source Mode Register\r
-AT91C_AIC_FVR EQU (0xFFFFF104) ;- (AIC) FIQ Vector Register\r
-AT91C_AIC_DCR EQU (0xFFFFF138) ;- (AIC) Debug Control Register (Protect)\r
-AT91C_AIC_EOICR EQU (0xFFFFF130) ;- (AIC) End of Interrupt Command Register\r
-AT91C_AIC_SVR EQU (0xFFFFF080) ;- (AIC) Source Vector Register\r
-AT91C_AIC_FFSR EQU (0xFFFFF148) ;- (AIC) Fast Forcing Status Register\r
-AT91C_AIC_ICCR EQU (0xFFFFF128) ;- (AIC) Interrupt Clear Command Register\r
-AT91C_AIC_ISR EQU (0xFFFFF108) ;- (AIC) Interrupt Status Register\r
-AT91C_AIC_IMR EQU (0xFFFFF110) ;- (AIC) Interrupt Mask Register\r
-AT91C_AIC_IPR EQU (0xFFFFF10C) ;- (AIC) Interrupt Pending Register\r
-AT91C_AIC_FFER EQU (0xFFFFF140) ;- (AIC) Fast Forcing Enable Register\r
-AT91C_AIC_IECR EQU (0xFFFFF120) ;- (AIC) Interrupt Enable Command Register\r
-AT91C_AIC_ISCR EQU (0xFFFFF12C) ;- (AIC) Interrupt Set Command Register\r
-AT91C_AIC_FFDR EQU (0xFFFFF144) ;- (AIC) Fast Forcing Disable Register\r
-AT91C_AIC_CISR EQU (0xFFFFF114) ;- (AIC) Core Interrupt Status Register\r
-AT91C_AIC_IDCR EQU (0xFFFFF124) ;- (AIC) Interrupt Disable Command Register\r
-AT91C_AIC_SPU EQU (0xFFFFF134) ;- (AIC) Spurious Vector Register\r
-// - ========== Register definition for PDC_DBGU peripheral ========== \r
-AT91C_DBGU_TCR EQU (0xFFFFF30C) ;- (PDC_DBGU) Transmit Counter Register\r
-AT91C_DBGU_RNPR EQU (0xFFFFF310) ;- (PDC_DBGU) Receive Next Pointer Register\r
-AT91C_DBGU_TNPR EQU (0xFFFFF318) ;- (PDC_DBGU) Transmit Next Pointer Register\r
-AT91C_DBGU_TPR EQU (0xFFFFF308) ;- (PDC_DBGU) Transmit Pointer Register\r
-AT91C_DBGU_RPR EQU (0xFFFFF300) ;- (PDC_DBGU) Receive Pointer Register\r
-AT91C_DBGU_RCR EQU (0xFFFFF304) ;- (PDC_DBGU) Receive Counter Register\r
-AT91C_DBGU_RNCR EQU (0xFFFFF314) ;- (PDC_DBGU) Receive Next Counter Register\r
-AT91C_DBGU_PTCR EQU (0xFFFFF320) ;- (PDC_DBGU) PDC Transfer Control Register\r
-AT91C_DBGU_PTSR EQU (0xFFFFF324) ;- (PDC_DBGU) PDC Transfer Status Register\r
-AT91C_DBGU_TNCR EQU (0xFFFFF31C) ;- (PDC_DBGU) Transmit Next Counter Register\r
-// - ========== Register definition for DBGU peripheral ========== \r
-AT91C_DBGU_EXID EQU (0xFFFFF244) ;- (DBGU) Chip ID Extension Register\r
-AT91C_DBGU_BRGR EQU (0xFFFFF220) ;- (DBGU) Baud Rate Generator Register\r
-AT91C_DBGU_IDR EQU (0xFFFFF20C) ;- (DBGU) Interrupt Disable Register\r
-AT91C_DBGU_CSR EQU (0xFFFFF214) ;- (DBGU) Channel Status Register\r
-AT91C_DBGU_CIDR EQU (0xFFFFF240) ;- (DBGU) Chip ID Register\r
-AT91C_DBGU_MR EQU (0xFFFFF204) ;- (DBGU) Mode Register\r
-AT91C_DBGU_IMR EQU (0xFFFFF210) ;- (DBGU) Interrupt Mask Register\r
-AT91C_DBGU_CR EQU (0xFFFFF200) ;- (DBGU) Control Register\r
-AT91C_DBGU_FNTR EQU (0xFFFFF248) ;- (DBGU) Force NTRST Register\r
-AT91C_DBGU_THR EQU (0xFFFFF21C) ;- (DBGU) Transmitter Holding Register\r
-AT91C_DBGU_RHR EQU (0xFFFFF218) ;- (DBGU) Receiver Holding Register\r
-AT91C_DBGU_IER EQU (0xFFFFF208) ;- (DBGU) Interrupt Enable Register\r
-// - ========== Register definition for PIOA peripheral ========== \r
-AT91C_PIOA_ODR EQU (0xFFFFF414) ;- (PIOA) Output Disable Registerr\r
-AT91C_PIOA_SODR EQU (0xFFFFF430) ;- (PIOA) Set Output Data Register\r
-AT91C_PIOA_ISR EQU (0xFFFFF44C) ;- (PIOA) Interrupt Status Register\r
-AT91C_PIOA_ABSR EQU (0xFFFFF478) ;- (PIOA) AB Select Status Register\r
-AT91C_PIOA_IER EQU (0xFFFFF440) ;- (PIOA) Interrupt Enable Register\r
-AT91C_PIOA_PPUDR EQU (0xFFFFF460) ;- (PIOA) Pull-up Disable Register\r
-AT91C_PIOA_IMR EQU (0xFFFFF448) ;- (PIOA) Interrupt Mask Register\r
-AT91C_PIOA_PER EQU (0xFFFFF400) ;- (PIOA) PIO Enable Register\r
-AT91C_PIOA_IFDR EQU (0xFFFFF424) ;- (PIOA) Input Filter Disable Register\r
-AT91C_PIOA_OWDR EQU (0xFFFFF4A4) ;- (PIOA) Output Write Disable Register\r
-AT91C_PIOA_MDSR EQU (0xFFFFF458) ;- (PIOA) Multi-driver Status Register\r
-AT91C_PIOA_IDR EQU (0xFFFFF444) ;- (PIOA) Interrupt Disable Register\r
-AT91C_PIOA_ODSR EQU (0xFFFFF438) ;- (PIOA) Output Data Status Register\r
-AT91C_PIOA_PPUSR EQU (0xFFFFF468) ;- (PIOA) Pull-up Status Register\r
-AT91C_PIOA_OWSR EQU (0xFFFFF4A8) ;- (PIOA) Output Write Status Register\r
-AT91C_PIOA_BSR EQU (0xFFFFF474) ;- (PIOA) Select B Register\r
-AT91C_PIOA_OWER EQU (0xFFFFF4A0) ;- (PIOA) Output Write Enable Register\r
-AT91C_PIOA_IFER EQU (0xFFFFF420) ;- (PIOA) Input Filter Enable Register\r
-AT91C_PIOA_PDSR EQU (0xFFFFF43C) ;- (PIOA) Pin Data Status Register\r
-AT91C_PIOA_PPUER EQU (0xFFFFF464) ;- (PIOA) Pull-up Enable Register\r
-AT91C_PIOA_OSR EQU (0xFFFFF418) ;- (PIOA) Output Status Register\r
-AT91C_PIOA_ASR EQU (0xFFFFF470) ;- (PIOA) Select A Register\r
-AT91C_PIOA_MDDR EQU (0xFFFFF454) ;- (PIOA) Multi-driver Disable Register\r
-AT91C_PIOA_CODR EQU (0xFFFFF434) ;- (PIOA) Clear Output Data Register\r
-AT91C_PIOA_MDER EQU (0xFFFFF450) ;- (PIOA) Multi-driver Enable Register\r
-AT91C_PIOA_PDR EQU (0xFFFFF404) ;- (PIOA) PIO Disable Register\r
-AT91C_PIOA_IFSR EQU (0xFFFFF428) ;- (PIOA) Input Filter Status Register\r
-AT91C_PIOA_OER EQU (0xFFFFF410) ;- (PIOA) Output Enable Register\r
-AT91C_PIOA_PSR EQU (0xFFFFF408) ;- (PIOA) PIO Status Register\r
-// - ========== Register definition for PIOB peripheral ========== \r
-AT91C_PIOB_OWDR EQU (0xFFFFF6A4) ;- (PIOB) Output Write Disable Register\r
-AT91C_PIOB_MDER EQU (0xFFFFF650) ;- (PIOB) Multi-driver Enable Register\r
-AT91C_PIOB_PPUSR EQU (0xFFFFF668) ;- (PIOB) Pull-up Status Register\r
-AT91C_PIOB_IMR EQU (0xFFFFF648) ;- (PIOB) Interrupt Mask Register\r
-AT91C_PIOB_ASR EQU (0xFFFFF670) ;- (PIOB) Select A Register\r
-AT91C_PIOB_PPUDR EQU (0xFFFFF660) ;- (PIOB) Pull-up Disable Register\r
-AT91C_PIOB_PSR EQU (0xFFFFF608) ;- (PIOB) PIO Status Register\r
-AT91C_PIOB_IER EQU (0xFFFFF640) ;- (PIOB) Interrupt Enable Register\r
-AT91C_PIOB_CODR EQU (0xFFFFF634) ;- (PIOB) Clear Output Data Register\r
-AT91C_PIOB_OWER EQU (0xFFFFF6A0) ;- (PIOB) Output Write Enable Register\r
-AT91C_PIOB_ABSR EQU (0xFFFFF678) ;- (PIOB) AB Select Status Register\r
-AT91C_PIOB_IFDR EQU (0xFFFFF624) ;- (PIOB) Input Filter Disable Register\r
-AT91C_PIOB_PDSR EQU (0xFFFFF63C) ;- (PIOB) Pin Data Status Register\r
-AT91C_PIOB_IDR EQU (0xFFFFF644) ;- (PIOB) Interrupt Disable Register\r
-AT91C_PIOB_OWSR EQU (0xFFFFF6A8) ;- (PIOB) Output Write Status Register\r
-AT91C_PIOB_PDR EQU (0xFFFFF604) ;- (PIOB) PIO Disable Register\r
-AT91C_PIOB_ODR EQU (0xFFFFF614) ;- (PIOB) Output Disable Registerr\r
-AT91C_PIOB_IFSR EQU (0xFFFFF628) ;- (PIOB) Input Filter Status Register\r
-AT91C_PIOB_PPUER EQU (0xFFFFF664) ;- (PIOB) Pull-up Enable Register\r
-AT91C_PIOB_SODR EQU (0xFFFFF630) ;- (PIOB) Set Output Data Register\r
-AT91C_PIOB_ISR EQU (0xFFFFF64C) ;- (PIOB) Interrupt Status Register\r
-AT91C_PIOB_ODSR EQU (0xFFFFF638) ;- (PIOB) Output Data Status Register\r
-AT91C_PIOB_OSR EQU (0xFFFFF618) ;- (PIOB) Output Status Register\r
-AT91C_PIOB_MDSR EQU (0xFFFFF658) ;- (PIOB) Multi-driver Status Register\r
-AT91C_PIOB_IFER EQU (0xFFFFF620) ;- (PIOB) Input Filter Enable Register\r
-AT91C_PIOB_BSR EQU (0xFFFFF674) ;- (PIOB) Select B Register\r
-AT91C_PIOB_MDDR EQU (0xFFFFF654) ;- (PIOB) Multi-driver Disable Register\r
-AT91C_PIOB_OER EQU (0xFFFFF610) ;- (PIOB) Output Enable Register\r
-AT91C_PIOB_PER EQU (0xFFFFF600) ;- (PIOB) PIO Enable Register\r
-// - ========== Register definition for CKGR peripheral ========== \r
-AT91C_CKGR_MOR EQU (0xFFFFFC20) ;- (CKGR) Main Oscillator Register\r
-AT91C_CKGR_PLLR EQU (0xFFFFFC2C) ;- (CKGR) PLL Register\r
-AT91C_CKGR_MCFR EQU (0xFFFFFC24) ;- (CKGR) Main Clock Frequency Register\r
-// - ========== Register definition for PMC peripheral ========== \r
-AT91C_PMC_IDR EQU (0xFFFFFC64) ;- (PMC) Interrupt Disable Register\r
-AT91C_PMC_MOR EQU (0xFFFFFC20) ;- (PMC) Main Oscillator Register\r
-AT91C_PMC_PLLR EQU (0xFFFFFC2C) ;- (PMC) PLL Register\r
-AT91C_PMC_PCER EQU (0xFFFFFC10) ;- (PMC) Peripheral Clock Enable Register\r
-AT91C_PMC_PCKR EQU (0xFFFFFC40) ;- (PMC) Programmable Clock Register\r
-AT91C_PMC_MCKR EQU (0xFFFFFC30) ;- (PMC) Master Clock Register\r
-AT91C_PMC_SCDR EQU (0xFFFFFC04) ;- (PMC) System Clock Disable Register\r
-AT91C_PMC_PCDR EQU (0xFFFFFC14) ;- (PMC) Peripheral Clock Disable Register\r
-AT91C_PMC_SCSR EQU (0xFFFFFC08) ;- (PMC) System Clock Status Register\r
-AT91C_PMC_PCSR EQU (0xFFFFFC18) ;- (PMC) Peripheral Clock Status Register\r
-AT91C_PMC_MCFR EQU (0xFFFFFC24) ;- (PMC) Main Clock Frequency Register\r
-AT91C_PMC_SCER EQU (0xFFFFFC00) ;- (PMC) System Clock Enable Register\r
-AT91C_PMC_IMR EQU (0xFFFFFC6C) ;- (PMC) Interrupt Mask Register\r
-AT91C_PMC_IER EQU (0xFFFFFC60) ;- (PMC) Interrupt Enable Register\r
-AT91C_PMC_SR EQU (0xFFFFFC68) ;- (PMC) Status Register\r
-// - ========== Register definition for RSTC peripheral ========== \r
-AT91C_RSTC_RCR EQU (0xFFFFFD00) ;- (RSTC) Reset Control Register\r
-AT91C_RSTC_RMR EQU (0xFFFFFD08) ;- (RSTC) Reset Mode Register\r
-AT91C_RSTC_RSR EQU (0xFFFFFD04) ;- (RSTC) Reset Status Register\r
-// - ========== Register definition for RTTC peripheral ========== \r
-AT91C_RTTC_RTSR EQU (0xFFFFFD2C) ;- (RTTC) Real-time Status Register\r
-AT91C_RTTC_RTMR EQU (0xFFFFFD20) ;- (RTTC) Real-time Mode Register\r
-AT91C_RTTC_RTVR EQU (0xFFFFFD28) ;- (RTTC) Real-time Value Register\r
-AT91C_RTTC_RTAR EQU (0xFFFFFD24) ;- (RTTC) Real-time Alarm Register\r
-// - ========== Register definition for PITC peripheral ========== \r
-AT91C_PITC_PIVR EQU (0xFFFFFD38) ;- (PITC) Period Interval Value Register\r
-AT91C_PITC_PISR EQU (0xFFFFFD34) ;- (PITC) Period Interval Status Register\r
-AT91C_PITC_PIIR EQU (0xFFFFFD3C) ;- (PITC) Period Interval Image Register\r
-AT91C_PITC_PIMR EQU (0xFFFFFD30) ;- (PITC) Period Interval Mode Register\r
-// - ========== Register definition for WDTC peripheral ========== \r
-AT91C_WDTC_WDCR EQU (0xFFFFFD40) ;- (WDTC) Watchdog Control Register\r
-AT91C_WDTC_WDSR EQU (0xFFFFFD48) ;- (WDTC) Watchdog Status Register\r
-AT91C_WDTC_WDMR EQU (0xFFFFFD44) ;- (WDTC) Watchdog Mode Register\r
-// - ========== Register definition for VREG peripheral ========== \r
-AT91C_VREG_MR EQU (0xFFFFFD60) ;- (VREG) Voltage Regulator Mode Register\r
-// - ========== Register definition for MC peripheral ========== \r
-AT91C_MC_ASR EQU (0xFFFFFF04) ;- (MC) MC Abort Status Register\r
-AT91C_MC_RCR EQU (0xFFFFFF00) ;- (MC) MC Remap Control Register\r
-AT91C_MC_FCR EQU (0xFFFFFF64) ;- (MC) MC Flash Command Register\r
-AT91C_MC_AASR EQU (0xFFFFFF08) ;- (MC) MC Abort Address Status Register\r
-AT91C_MC_FSR EQU (0xFFFFFF68) ;- (MC) MC Flash Status Register\r
-AT91C_MC_FMR EQU (0xFFFFFF60) ;- (MC) MC Flash Mode Register\r
-// - ========== Register definition for PDC_SPI1 peripheral ========== \r
-AT91C_SPI1_PTCR EQU (0xFFFE4120) ;- (PDC_SPI1) PDC Transfer Control Register\r
-AT91C_SPI1_RPR EQU (0xFFFE4100) ;- (PDC_SPI1) Receive Pointer Register\r
-AT91C_SPI1_TNCR EQU (0xFFFE411C) ;- (PDC_SPI1) Transmit Next Counter Register\r
-AT91C_SPI1_TPR EQU (0xFFFE4108) ;- (PDC_SPI1) Transmit Pointer Register\r
-AT91C_SPI1_TNPR EQU (0xFFFE4118) ;- (PDC_SPI1) Transmit Next Pointer Register\r
-AT91C_SPI1_TCR EQU (0xFFFE410C) ;- (PDC_SPI1) Transmit Counter Register\r
-AT91C_SPI1_RCR EQU (0xFFFE4104) ;- (PDC_SPI1) Receive Counter Register\r
-AT91C_SPI1_RNPR EQU (0xFFFE4110) ;- (PDC_SPI1) Receive Next Pointer Register\r
-AT91C_SPI1_RNCR EQU (0xFFFE4114) ;- (PDC_SPI1) Receive Next Counter Register\r
-AT91C_SPI1_PTSR EQU (0xFFFE4124) ;- (PDC_SPI1) PDC Transfer Status Register\r
-// - ========== Register definition for SPI1 peripheral ========== \r
-AT91C_SPI1_IMR EQU (0xFFFE401C) ;- (SPI1) Interrupt Mask Register\r
-AT91C_SPI1_IER EQU (0xFFFE4014) ;- (SPI1) Interrupt Enable Register\r
-AT91C_SPI1_MR EQU (0xFFFE4004) ;- (SPI1) Mode Register\r
-AT91C_SPI1_RDR EQU (0xFFFE4008) ;- (SPI1) Receive Data Register\r
-AT91C_SPI1_IDR EQU (0xFFFE4018) ;- (SPI1) Interrupt Disable Register\r
-AT91C_SPI1_SR EQU (0xFFFE4010) ;- (SPI1) Status Register\r
-AT91C_SPI1_TDR EQU (0xFFFE400C) ;- (SPI1) Transmit Data Register\r
-AT91C_SPI1_CR EQU (0xFFFE4000) ;- (SPI1) Control Register\r
-AT91C_SPI1_CSR EQU (0xFFFE4030) ;- (SPI1) Chip Select Register\r
-// - ========== Register definition for PDC_SPI0 peripheral ========== \r
-AT91C_SPI0_PTCR EQU (0xFFFE0120) ;- (PDC_SPI0) PDC Transfer Control Register\r
-AT91C_SPI0_TPR EQU (0xFFFE0108) ;- (PDC_SPI0) Transmit Pointer Register\r
-AT91C_SPI0_TCR EQU (0xFFFE010C) ;- (PDC_SPI0) Transmit Counter Register\r
-AT91C_SPI0_RCR EQU (0xFFFE0104) ;- (PDC_SPI0) Receive Counter Register\r
-AT91C_SPI0_PTSR EQU (0xFFFE0124) ;- (PDC_SPI0) PDC Transfer Status Register\r
-AT91C_SPI0_RNPR EQU (0xFFFE0110) ;- (PDC_SPI0) Receive Next Pointer Register\r
-AT91C_SPI0_RPR EQU (0xFFFE0100) ;- (PDC_SPI0) Receive Pointer Register\r
-AT91C_SPI0_TNCR EQU (0xFFFE011C) ;- (PDC_SPI0) Transmit Next Counter Register\r
-AT91C_SPI0_RNCR EQU (0xFFFE0114) ;- (PDC_SPI0) Receive Next Counter Register\r
-AT91C_SPI0_TNPR EQU (0xFFFE0118) ;- (PDC_SPI0) Transmit Next Pointer Register\r
-// - ========== Register definition for SPI0 peripheral ========== \r
-AT91C_SPI0_IER EQU (0xFFFE0014) ;- (SPI0) Interrupt Enable Register\r
-AT91C_SPI0_SR EQU (0xFFFE0010) ;- (SPI0) Status Register\r
-AT91C_SPI0_IDR EQU (0xFFFE0018) ;- (SPI0) Interrupt Disable Register\r
-AT91C_SPI0_CR EQU (0xFFFE0000) ;- (SPI0) Control Register\r
-AT91C_SPI0_MR EQU (0xFFFE0004) ;- (SPI0) Mode Register\r
-AT91C_SPI0_IMR EQU (0xFFFE001C) ;- (SPI0) Interrupt Mask Register\r
-AT91C_SPI0_TDR EQU (0xFFFE000C) ;- (SPI0) Transmit Data Register\r
-AT91C_SPI0_RDR EQU (0xFFFE0008) ;- (SPI0) Receive Data Register\r
-AT91C_SPI0_CSR EQU (0xFFFE0030) ;- (SPI0) Chip Select Register\r
-// - ========== Register definition for PDC_US1 peripheral ========== \r
-AT91C_US1_RNCR EQU (0xFFFC4114) ;- (PDC_US1) Receive Next Counter Register\r
-AT91C_US1_PTCR EQU (0xFFFC4120) ;- (PDC_US1) PDC Transfer Control Register\r
-AT91C_US1_TCR EQU (0xFFFC410C) ;- (PDC_US1) Transmit Counter Register\r
-AT91C_US1_PTSR EQU (0xFFFC4124) ;- (PDC_US1) PDC Transfer Status Register\r
-AT91C_US1_TNPR EQU (0xFFFC4118) ;- (PDC_US1) Transmit Next Pointer Register\r
-AT91C_US1_RCR EQU (0xFFFC4104) ;- (PDC_US1) Receive Counter Register\r
-AT91C_US1_RNPR EQU (0xFFFC4110) ;- (PDC_US1) Receive Next Pointer Register\r
-AT91C_US1_RPR EQU (0xFFFC4100) ;- (PDC_US1) Receive Pointer Register\r
-AT91C_US1_TNCR EQU (0xFFFC411C) ;- (PDC_US1) Transmit Next Counter Register\r
-AT91C_US1_TPR EQU (0xFFFC4108) ;- (PDC_US1) Transmit Pointer Register\r
-// - ========== Register definition for US1 peripheral ========== \r
-AT91C_US1_IF EQU (0xFFFC404C) ;- (US1) IRDA_FILTER Register\r
-AT91C_US1_NER EQU (0xFFFC4044) ;- (US1) Nb Errors Register\r
-AT91C_US1_RTOR EQU (0xFFFC4024) ;- (US1) Receiver Time-out Register\r
-AT91C_US1_CSR EQU (0xFFFC4014) ;- (US1) Channel Status Register\r
-AT91C_US1_IDR EQU (0xFFFC400C) ;- (US1) Interrupt Disable Register\r
-AT91C_US1_IER EQU (0xFFFC4008) ;- (US1) Interrupt Enable Register\r
-AT91C_US1_THR EQU (0xFFFC401C) ;- (US1) Transmitter Holding Register\r
-AT91C_US1_TTGR EQU (0xFFFC4028) ;- (US1) Transmitter Time-guard Register\r
-AT91C_US1_RHR EQU (0xFFFC4018) ;- (US1) Receiver Holding Register\r
-AT91C_US1_BRGR EQU (0xFFFC4020) ;- (US1) Baud Rate Generator Register\r
-AT91C_US1_IMR EQU (0xFFFC4010) ;- (US1) Interrupt Mask Register\r
-AT91C_US1_FIDI EQU (0xFFFC4040) ;- (US1) FI_DI_Ratio Register\r
-AT91C_US1_CR EQU (0xFFFC4000) ;- (US1) Control Register\r
-AT91C_US1_MR EQU (0xFFFC4004) ;- (US1) Mode Register\r
-// - ========== Register definition for PDC_US0 peripheral ========== \r
-AT91C_US0_TNPR EQU (0xFFFC0118) ;- (PDC_US0) Transmit Next Pointer Register\r
-AT91C_US0_RNPR EQU (0xFFFC0110) ;- (PDC_US0) Receive Next Pointer Register\r
-AT91C_US0_TCR EQU (0xFFFC010C) ;- (PDC_US0) Transmit Counter Register\r
-AT91C_US0_PTCR EQU (0xFFFC0120) ;- (PDC_US0) PDC Transfer Control Register\r
-AT91C_US0_PTSR EQU (0xFFFC0124) ;- (PDC_US0) PDC Transfer Status Register\r
-AT91C_US0_TNCR EQU (0xFFFC011C) ;- (PDC_US0) Transmit Next Counter Register\r
-AT91C_US0_TPR EQU (0xFFFC0108) ;- (PDC_US0) Transmit Pointer Register\r
-AT91C_US0_RCR EQU (0xFFFC0104) ;- (PDC_US0) Receive Counter Register\r
-AT91C_US0_RPR EQU (0xFFFC0100) ;- (PDC_US0) Receive Pointer Register\r
-AT91C_US0_RNCR EQU (0xFFFC0114) ;- (PDC_US0) Receive Next Counter Register\r
-// - ========== Register definition for US0 peripheral ========== \r
-AT91C_US0_BRGR EQU (0xFFFC0020) ;- (US0) Baud Rate Generator Register\r
-AT91C_US0_NER EQU (0xFFFC0044) ;- (US0) Nb Errors Register\r
-AT91C_US0_CR EQU (0xFFFC0000) ;- (US0) Control Register\r
-AT91C_US0_IMR EQU (0xFFFC0010) ;- (US0) Interrupt Mask Register\r
-AT91C_US0_FIDI EQU (0xFFFC0040) ;- (US0) FI_DI_Ratio Register\r
-AT91C_US0_TTGR EQU (0xFFFC0028) ;- (US0) Transmitter Time-guard Register\r
-AT91C_US0_MR EQU (0xFFFC0004) ;- (US0) Mode Register\r
-AT91C_US0_RTOR EQU (0xFFFC0024) ;- (US0) Receiver Time-out Register\r
-AT91C_US0_CSR EQU (0xFFFC0014) ;- (US0) Channel Status Register\r
-AT91C_US0_RHR EQU (0xFFFC0018) ;- (US0) Receiver Holding Register\r
-AT91C_US0_IDR EQU (0xFFFC000C) ;- (US0) Interrupt Disable Register\r
-AT91C_US0_THR EQU (0xFFFC001C) ;- (US0) Transmitter Holding Register\r
-AT91C_US0_IF EQU (0xFFFC004C) ;- (US0) IRDA_FILTER Register\r
-AT91C_US0_IER EQU (0xFFFC0008) ;- (US0) Interrupt Enable Register\r
-// - ========== Register definition for PDC_SSC peripheral ========== \r
-AT91C_SSC_TNCR EQU (0xFFFD411C) ;- (PDC_SSC) Transmit Next Counter Register\r
-AT91C_SSC_RPR EQU (0xFFFD4100) ;- (PDC_SSC) Receive Pointer Register\r
-AT91C_SSC_RNCR EQU (0xFFFD4114) ;- (PDC_SSC) Receive Next Counter Register\r
-AT91C_SSC_TPR EQU (0xFFFD4108) ;- (PDC_SSC) Transmit Pointer Register\r
-AT91C_SSC_PTCR EQU (0xFFFD4120) ;- (PDC_SSC) PDC Transfer Control Register\r
-AT91C_SSC_TCR EQU (0xFFFD410C) ;- (PDC_SSC) Transmit Counter Register\r
-AT91C_SSC_RCR EQU (0xFFFD4104) ;- (PDC_SSC) Receive Counter Register\r
-AT91C_SSC_RNPR EQU (0xFFFD4110) ;- (PDC_SSC) Receive Next Pointer Register\r
-AT91C_SSC_TNPR EQU (0xFFFD4118) ;- (PDC_SSC) Transmit Next Pointer Register\r
-AT91C_SSC_PTSR EQU (0xFFFD4124) ;- (PDC_SSC) PDC Transfer Status Register\r
-// - ========== Register definition for SSC peripheral ========== \r
-AT91C_SSC_RHR EQU (0xFFFD4020) ;- (SSC) Receive Holding Register\r
-AT91C_SSC_RSHR EQU (0xFFFD4030) ;- (SSC) Receive Sync Holding Register\r
-AT91C_SSC_TFMR EQU (0xFFFD401C) ;- (SSC) Transmit Frame Mode Register\r
-AT91C_SSC_IDR EQU (0xFFFD4048) ;- (SSC) Interrupt Disable Register\r
-AT91C_SSC_THR EQU (0xFFFD4024) ;- (SSC) Transmit Holding Register\r
-AT91C_SSC_RCMR EQU (0xFFFD4010) ;- (SSC) Receive Clock ModeRegister\r
-AT91C_SSC_IER EQU (0xFFFD4044) ;- (SSC) Interrupt Enable Register\r
-AT91C_SSC_TSHR EQU (0xFFFD4034) ;- (SSC) Transmit Sync Holding Register\r
-AT91C_SSC_SR EQU (0xFFFD4040) ;- (SSC) Status Register\r
-AT91C_SSC_CMR EQU (0xFFFD4004) ;- (SSC) Clock Mode Register\r
-AT91C_SSC_TCMR EQU (0xFFFD4018) ;- (SSC) Transmit Clock Mode Register\r
-AT91C_SSC_CR EQU (0xFFFD4000) ;- (SSC) Control Register\r
-AT91C_SSC_IMR EQU (0xFFFD404C) ;- (SSC) Interrupt Mask Register\r
-AT91C_SSC_RFMR EQU (0xFFFD4014) ;- (SSC) Receive Frame Mode Register\r
-// - ========== Register definition for TWI peripheral ========== \r
-AT91C_TWI_IER EQU (0xFFFB8024) ;- (TWI) Interrupt Enable Register\r
-AT91C_TWI_CR EQU (0xFFFB8000) ;- (TWI) Control Register\r
-AT91C_TWI_SR EQU (0xFFFB8020) ;- (TWI) Status Register\r
-AT91C_TWI_IMR EQU (0xFFFB802C) ;- (TWI) Interrupt Mask Register\r
-AT91C_TWI_THR EQU (0xFFFB8034) ;- (TWI) Transmit Holding Register\r
-AT91C_TWI_IDR EQU (0xFFFB8028) ;- (TWI) Interrupt Disable Register\r
-AT91C_TWI_IADR EQU (0xFFFB800C) ;- (TWI) Internal Address Register\r
-AT91C_TWI_MMR EQU (0xFFFB8004) ;- (TWI) Master Mode Register\r
-AT91C_TWI_CWGR EQU (0xFFFB8010) ;- (TWI) Clock Waveform Generator Register\r
-AT91C_TWI_RHR EQU (0xFFFB8030) ;- (TWI) Receive Holding Register\r
-// - ========== Register definition for PWMC_CH3 peripheral ========== \r
-AT91C_PWMC_CH3_CUPDR EQU (0xFFFCC270) ;- (PWMC_CH3) Channel Update Register\r
-AT91C_PWMC_CH3_Reserved EQU (0xFFFCC274) ;- (PWMC_CH3) Reserved\r
-AT91C_PWMC_CH3_CPRDR EQU (0xFFFCC268) ;- (PWMC_CH3) Channel Period Register\r
-AT91C_PWMC_CH3_CDTYR EQU (0xFFFCC264) ;- (PWMC_CH3) Channel Duty Cycle Register\r
-AT91C_PWMC_CH3_CCNTR EQU (0xFFFCC26C) ;- (PWMC_CH3) Channel Counter Register\r
-AT91C_PWMC_CH3_CMR EQU (0xFFFCC260) ;- (PWMC_CH3) Channel Mode Register\r
-// - ========== Register definition for PWMC_CH2 peripheral ========== \r
-AT91C_PWMC_CH2_Reserved EQU (0xFFFCC254) ;- (PWMC_CH2) Reserved\r
-AT91C_PWMC_CH2_CMR EQU (0xFFFCC240) ;- (PWMC_CH2) Channel Mode Register\r
-AT91C_PWMC_CH2_CCNTR EQU (0xFFFCC24C) ;- (PWMC_CH2) Channel Counter Register\r
-AT91C_PWMC_CH2_CPRDR EQU (0xFFFCC248) ;- (PWMC_CH2) Channel Period Register\r
-AT91C_PWMC_CH2_CUPDR EQU (0xFFFCC250) ;- (PWMC_CH2) Channel Update Register\r
-AT91C_PWMC_CH2_CDTYR EQU (0xFFFCC244) ;- (PWMC_CH2) Channel Duty Cycle Register\r
-// - ========== Register definition for PWMC_CH1 peripheral ========== \r
-AT91C_PWMC_CH1_Reserved EQU (0xFFFCC234) ;- (PWMC_CH1) Reserved\r
-AT91C_PWMC_CH1_CUPDR EQU (0xFFFCC230) ;- (PWMC_CH1) Channel Update Register\r
-AT91C_PWMC_CH1_CPRDR EQU (0xFFFCC228) ;- (PWMC_CH1) Channel Period Register\r
-AT91C_PWMC_CH1_CCNTR EQU (0xFFFCC22C) ;- (PWMC_CH1) Channel Counter Register\r
-AT91C_PWMC_CH1_CDTYR EQU (0xFFFCC224) ;- (PWMC_CH1) Channel Duty Cycle Register\r
-AT91C_PWMC_CH1_CMR EQU (0xFFFCC220) ;- (PWMC_CH1) Channel Mode Register\r
-// - ========== Register definition for PWMC_CH0 peripheral ========== \r
-AT91C_PWMC_CH0_Reserved EQU (0xFFFCC214) ;- (PWMC_CH0) Reserved\r
-AT91C_PWMC_CH0_CPRDR EQU (0xFFFCC208) ;- (PWMC_CH0) Channel Period Register\r
-AT91C_PWMC_CH0_CDTYR EQU (0xFFFCC204) ;- (PWMC_CH0) Channel Duty Cycle Register\r
-AT91C_PWMC_CH0_CMR EQU (0xFFFCC200) ;- (PWMC_CH0) Channel Mode Register\r
-AT91C_PWMC_CH0_CUPDR EQU (0xFFFCC210) ;- (PWMC_CH0) Channel Update Register\r
-AT91C_PWMC_CH0_CCNTR EQU (0xFFFCC20C) ;- (PWMC_CH0) Channel Counter Register\r
-// - ========== Register definition for PWMC peripheral ========== \r
-AT91C_PWMC_IDR EQU (0xFFFCC014) ;- (PWMC) PWMC Interrupt Disable Register\r
-AT91C_PWMC_DIS EQU (0xFFFCC008) ;- (PWMC) PWMC Disable Register\r
-AT91C_PWMC_IER EQU (0xFFFCC010) ;- (PWMC) PWMC Interrupt Enable Register\r
-AT91C_PWMC_VR EQU (0xFFFCC0FC) ;- (PWMC) PWMC Version Register\r
-AT91C_PWMC_ISR EQU (0xFFFCC01C) ;- (PWMC) PWMC Interrupt Status Register\r
-AT91C_PWMC_SR EQU (0xFFFCC00C) ;- (PWMC) PWMC Status Register\r
-AT91C_PWMC_IMR EQU (0xFFFCC018) ;- (PWMC) PWMC Interrupt Mask Register\r
-AT91C_PWMC_MR EQU (0xFFFCC000) ;- (PWMC) PWMC Mode Register\r
-AT91C_PWMC_ENA EQU (0xFFFCC004) ;- (PWMC) PWMC Enable Register\r
-// - ========== Register definition for UDP peripheral ========== \r
-AT91C_UDP_IMR EQU (0xFFFB0018) ;- (UDP) Interrupt Mask Register\r
-AT91C_UDP_FADDR EQU (0xFFFB0008) ;- (UDP) Function Address Register\r
-AT91C_UDP_NUM EQU (0xFFFB0000) ;- (UDP) Frame Number Register\r
-AT91C_UDP_FDR EQU (0xFFFB0050) ;- (UDP) Endpoint FIFO Data Register\r
-AT91C_UDP_ISR EQU (0xFFFB001C) ;- (UDP) Interrupt Status Register\r
-AT91C_UDP_CSR EQU (0xFFFB0030) ;- (UDP) Endpoint Control and Status Register\r
-AT91C_UDP_IDR EQU (0xFFFB0014) ;- (UDP) Interrupt Disable Register\r
-AT91C_UDP_ICR EQU (0xFFFB0020) ;- (UDP) Interrupt Clear Register\r
-AT91C_UDP_RSTEP EQU (0xFFFB0028) ;- (UDP) Reset Endpoint Register\r
-AT91C_UDP_TXVC EQU (0xFFFB0074) ;- (UDP) Transceiver Control Register\r
-AT91C_UDP_GLBSTATE EQU (0xFFFB0004) ;- (UDP) Global State Register\r
-AT91C_UDP_IER EQU (0xFFFB0010) ;- (UDP) Interrupt Enable Register\r
-// - ========== Register definition for TC0 peripheral ========== \r
-AT91C_TC0_SR EQU (0xFFFA0020) ;- (TC0) Status Register\r
-AT91C_TC0_RC EQU (0xFFFA001C) ;- (TC0) Register C\r
-AT91C_TC0_RB EQU (0xFFFA0018) ;- (TC0) Register B\r
-AT91C_TC0_CCR EQU (0xFFFA0000) ;- (TC0) Channel Control Register\r
-AT91C_TC0_CMR EQU (0xFFFA0004) ;- (TC0) Channel Mode Register (Capture Mode / Waveform Mode)\r
-AT91C_TC0_IER EQU (0xFFFA0024) ;- (TC0) Interrupt Enable Register\r
-AT91C_TC0_RA EQU (0xFFFA0014) ;- (TC0) Register A\r
-AT91C_TC0_IDR EQU (0xFFFA0028) ;- (TC0) Interrupt Disable Register\r
-AT91C_TC0_CV EQU (0xFFFA0010) ;- (TC0) Counter Value\r
-AT91C_TC0_IMR EQU (0xFFFA002C) ;- (TC0) Interrupt Mask Register\r
-// - ========== Register definition for TC1 peripheral ========== \r
-AT91C_TC1_RB EQU (0xFFFA0058) ;- (TC1) Register B\r
-AT91C_TC1_CCR EQU (0xFFFA0040) ;- (TC1) Channel Control Register\r
-AT91C_TC1_IER EQU (0xFFFA0064) ;- (TC1) Interrupt Enable Register\r
-AT91C_TC1_IDR EQU (0xFFFA0068) ;- (TC1) Interrupt Disable Register\r
-AT91C_TC1_SR EQU (0xFFFA0060) ;- (TC1) Status Register\r
-AT91C_TC1_CMR EQU (0xFFFA0044) ;- (TC1) Channel Mode Register (Capture Mode / Waveform Mode)\r
-AT91C_TC1_RA EQU (0xFFFA0054) ;- (TC1) Register A\r
-AT91C_TC1_RC EQU (0xFFFA005C) ;- (TC1) Register C\r
-AT91C_TC1_IMR EQU (0xFFFA006C) ;- (TC1) Interrupt Mask Register\r
-AT91C_TC1_CV EQU (0xFFFA0050) ;- (TC1) Counter Value\r
-// - ========== Register definition for TC2 peripheral ========== \r
-AT91C_TC2_CMR EQU (0xFFFA0084) ;- (TC2) Channel Mode Register (Capture Mode / Waveform Mode)\r
-AT91C_TC2_CCR EQU (0xFFFA0080) ;- (TC2) Channel Control Register\r
-AT91C_TC2_CV EQU (0xFFFA0090) ;- (TC2) Counter Value\r
-AT91C_TC2_RA EQU (0xFFFA0094) ;- (TC2) Register A\r
-AT91C_TC2_RB EQU (0xFFFA0098) ;- (TC2) Register B\r
-AT91C_TC2_IDR EQU (0xFFFA00A8) ;- (TC2) Interrupt Disable Register\r
-AT91C_TC2_IMR EQU (0xFFFA00AC) ;- (TC2) Interrupt Mask Register\r
-AT91C_TC2_RC EQU (0xFFFA009C) ;- (TC2) Register C\r
-AT91C_TC2_IER EQU (0xFFFA00A4) ;- (TC2) Interrupt Enable Register\r
-AT91C_TC2_SR EQU (0xFFFA00A0) ;- (TC2) Status Register\r
-// - ========== Register definition for TCB peripheral ========== \r
-AT91C_TCB_BMR EQU (0xFFFA00C4) ;- (TCB) TC Block Mode Register\r
-AT91C_TCB_BCR EQU (0xFFFA00C0) ;- (TCB) TC Block Control Register\r
-// - ========== Register definition for CAN_MB0 peripheral ========== \r
-AT91C_CAN_MB0_MDL EQU (0xFFFD0214) ;- (CAN_MB0) MailBox Data Low Register\r
-AT91C_CAN_MB0_MAM EQU (0xFFFD0204) ;- (CAN_MB0) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB0_MCR EQU (0xFFFD021C) ;- (CAN_MB0) MailBox Control Register\r
-AT91C_CAN_MB0_MID EQU (0xFFFD0208) ;- (CAN_MB0) MailBox ID Register\r
-AT91C_CAN_MB0_MSR EQU (0xFFFD0210) ;- (CAN_MB0) MailBox Status Register\r
-AT91C_CAN_MB0_MFID EQU (0xFFFD020C) ;- (CAN_MB0) MailBox Family ID Register\r
-AT91C_CAN_MB0_MDH EQU (0xFFFD0218) ;- (CAN_MB0) MailBox Data High Register\r
-AT91C_CAN_MB0_MMR EQU (0xFFFD0200) ;- (CAN_MB0) MailBox Mode Register\r
-// - ========== Register definition for CAN_MB1 peripheral ========== \r
-AT91C_CAN_MB1_MDL EQU (0xFFFD0234) ;- (CAN_MB1) MailBox Data Low Register\r
-AT91C_CAN_MB1_MID EQU (0xFFFD0228) ;- (CAN_MB1) MailBox ID Register\r
-AT91C_CAN_MB1_MMR EQU (0xFFFD0220) ;- (CAN_MB1) MailBox Mode Register\r
-AT91C_CAN_MB1_MSR EQU (0xFFFD0230) ;- (CAN_MB1) MailBox Status Register\r
-AT91C_CAN_MB1_MAM EQU (0xFFFD0224) ;- (CAN_MB1) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB1_MDH EQU (0xFFFD0238) ;- (CAN_MB1) MailBox Data High Register\r
-AT91C_CAN_MB1_MCR EQU (0xFFFD023C) ;- (CAN_MB1) MailBox Control Register\r
-AT91C_CAN_MB1_MFID EQU (0xFFFD022C) ;- (CAN_MB1) MailBox Family ID Register\r
-// - ========== Register definition for CAN_MB2 peripheral ========== \r
-AT91C_CAN_MB2_MCR EQU (0xFFFD025C) ;- (CAN_MB2) MailBox Control Register\r
-AT91C_CAN_MB2_MDH EQU (0xFFFD0258) ;- (CAN_MB2) MailBox Data High Register\r
-AT91C_CAN_MB2_MID EQU (0xFFFD0248) ;- (CAN_MB2) MailBox ID Register\r
-AT91C_CAN_MB2_MDL EQU (0xFFFD0254) ;- (CAN_MB2) MailBox Data Low Register\r
-AT91C_CAN_MB2_MMR EQU (0xFFFD0240) ;- (CAN_MB2) MailBox Mode Register\r
-AT91C_CAN_MB2_MAM EQU (0xFFFD0244) ;- (CAN_MB2) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB2_MFID EQU (0xFFFD024C) ;- (CAN_MB2) MailBox Family ID Register\r
-AT91C_CAN_MB2_MSR EQU (0xFFFD0250) ;- (CAN_MB2) MailBox Status Register\r
-// - ========== Register definition for CAN_MB3 peripheral ========== \r
-AT91C_CAN_MB3_MFID EQU (0xFFFD026C) ;- (CAN_MB3) MailBox Family ID Register\r
-AT91C_CAN_MB3_MAM EQU (0xFFFD0264) ;- (CAN_MB3) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB3_MID EQU (0xFFFD0268) ;- (CAN_MB3) MailBox ID Register\r
-AT91C_CAN_MB3_MCR EQU (0xFFFD027C) ;- (CAN_MB3) MailBox Control Register\r
-AT91C_CAN_MB3_MMR EQU (0xFFFD0260) ;- (CAN_MB3) MailBox Mode Register\r
-AT91C_CAN_MB3_MSR EQU (0xFFFD0270) ;- (CAN_MB3) MailBox Status Register\r
-AT91C_CAN_MB3_MDL EQU (0xFFFD0274) ;- (CAN_MB3) MailBox Data Low Register\r
-AT91C_CAN_MB3_MDH EQU (0xFFFD0278) ;- (CAN_MB3) MailBox Data High Register\r
-// - ========== Register definition for CAN_MB4 peripheral ========== \r
-AT91C_CAN_MB4_MID EQU (0xFFFD0288) ;- (CAN_MB4) MailBox ID Register\r
-AT91C_CAN_MB4_MMR EQU (0xFFFD0280) ;- (CAN_MB4) MailBox Mode Register\r
-AT91C_CAN_MB4_MDH EQU (0xFFFD0298) ;- (CAN_MB4) MailBox Data High Register\r
-AT91C_CAN_MB4_MFID EQU (0xFFFD028C) ;- (CAN_MB4) MailBox Family ID Register\r
-AT91C_CAN_MB4_MSR EQU (0xFFFD0290) ;- (CAN_MB4) MailBox Status Register\r
-AT91C_CAN_MB4_MCR EQU (0xFFFD029C) ;- (CAN_MB4) MailBox Control Register\r
-AT91C_CAN_MB4_MDL EQU (0xFFFD0294) ;- (CAN_MB4) MailBox Data Low Register\r
-AT91C_CAN_MB4_MAM EQU (0xFFFD0284) ;- (CAN_MB4) MailBox Acceptance Mask Register\r
-// - ========== Register definition for CAN_MB5 peripheral ========== \r
-AT91C_CAN_MB5_MSR EQU (0xFFFD02B0) ;- (CAN_MB5) MailBox Status Register\r
-AT91C_CAN_MB5_MCR EQU (0xFFFD02BC) ;- (CAN_MB5) MailBox Control Register\r
-AT91C_CAN_MB5_MFID EQU (0xFFFD02AC) ;- (CAN_MB5) MailBox Family ID Register\r
-AT91C_CAN_MB5_MDH EQU (0xFFFD02B8) ;- (CAN_MB5) MailBox Data High Register\r
-AT91C_CAN_MB5_MID EQU (0xFFFD02A8) ;- (CAN_MB5) MailBox ID Register\r
-AT91C_CAN_MB5_MMR EQU (0xFFFD02A0) ;- (CAN_MB5) MailBox Mode Register\r
-AT91C_CAN_MB5_MDL EQU (0xFFFD02B4) ;- (CAN_MB5) MailBox Data Low Register\r
-AT91C_CAN_MB5_MAM EQU (0xFFFD02A4) ;- (CAN_MB5) MailBox Acceptance Mask Register\r
-// - ========== Register definition for CAN_MB6 peripheral ========== \r
-AT91C_CAN_MB6_MFID EQU (0xFFFD02CC) ;- (CAN_MB6) MailBox Family ID Register\r
-AT91C_CAN_MB6_MID EQU (0xFFFD02C8) ;- (CAN_MB6) MailBox ID Register\r
-AT91C_CAN_MB6_MAM EQU (0xFFFD02C4) ;- (CAN_MB6) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB6_MSR EQU (0xFFFD02D0) ;- (CAN_MB6) MailBox Status Register\r
-AT91C_CAN_MB6_MDL EQU (0xFFFD02D4) ;- (CAN_MB6) MailBox Data Low Register\r
-AT91C_CAN_MB6_MCR EQU (0xFFFD02DC) ;- (CAN_MB6) MailBox Control Register\r
-AT91C_CAN_MB6_MDH EQU (0xFFFD02D8) ;- (CAN_MB6) MailBox Data High Register\r
-AT91C_CAN_MB6_MMR EQU (0xFFFD02C0) ;- (CAN_MB6) MailBox Mode Register\r
-// - ========== Register definition for CAN_MB7 peripheral ========== \r
-AT91C_CAN_MB7_MCR EQU (0xFFFD02FC) ;- (CAN_MB7) MailBox Control Register\r
-AT91C_CAN_MB7_MDH EQU (0xFFFD02F8) ;- (CAN_MB7) MailBox Data High Register\r
-AT91C_CAN_MB7_MFID EQU (0xFFFD02EC) ;- (CAN_MB7) MailBox Family ID Register\r
-AT91C_CAN_MB7_MDL EQU (0xFFFD02F4) ;- (CAN_MB7) MailBox Data Low Register\r
-AT91C_CAN_MB7_MID EQU (0xFFFD02E8) ;- (CAN_MB7) MailBox ID Register\r
-AT91C_CAN_MB7_MMR EQU (0xFFFD02E0) ;- (CAN_MB7) MailBox Mode Register\r
-AT91C_CAN_MB7_MAM EQU (0xFFFD02E4) ;- (CAN_MB7) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB7_MSR EQU (0xFFFD02F0) ;- (CAN_MB7) MailBox Status Register\r
-// - ========== Register definition for CAN peripheral ========== \r
-AT91C_CAN_TCR EQU (0xFFFD0024) ;- (CAN) Transfer Command Register\r
-AT91C_CAN_IMR EQU (0xFFFD000C) ;- (CAN) Interrupt Mask Register\r
-AT91C_CAN_IER EQU (0xFFFD0004) ;- (CAN) Interrupt Enable Register\r
-AT91C_CAN_ECR EQU (0xFFFD0020) ;- (CAN) Error Counter Register\r
-AT91C_CAN_TIMESTP EQU (0xFFFD001C) ;- (CAN) Time Stamp Register\r
-AT91C_CAN_MR EQU (0xFFFD0000) ;- (CAN) Mode Register\r
-AT91C_CAN_IDR EQU (0xFFFD0008) ;- (CAN) Interrupt Disable Register\r
-AT91C_CAN_ACR EQU (0xFFFD0028) ;- (CAN) Abort Command Register\r
-AT91C_CAN_TIM EQU (0xFFFD0018) ;- (CAN) Timer Register\r
-AT91C_CAN_SR EQU (0xFFFD0010) ;- (CAN) Status Register\r
-AT91C_CAN_BR EQU (0xFFFD0014) ;- (CAN) Baudrate Register\r
-AT91C_CAN_VR EQU (0xFFFD00FC) ;- (CAN) Version Register\r
-// - ========== Register definition for EMAC peripheral ========== \r
-AT91C_EMAC_ISR EQU (0xFFFDC024) ;- (EMAC) Interrupt Status Register\r
-AT91C_EMAC_SA4H EQU (0xFFFDC0B4) ;- (EMAC) Specific Address 4 Top, Last 2 bytes\r
-AT91C_EMAC_SA1L EQU (0xFFFDC098) ;- (EMAC) Specific Address 1 Bottom, First 4 bytes\r
-AT91C_EMAC_ELE EQU (0xFFFDC078) ;- (EMAC) Excessive Length Errors Register\r
-AT91C_EMAC_LCOL EQU (0xFFFDC05C) ;- (EMAC) Late Collision Register\r
-AT91C_EMAC_RLE EQU (0xFFFDC088) ;- (EMAC) Receive Length Field Mismatch Register\r
-AT91C_EMAC_WOL EQU (0xFFFDC0C4) ;- (EMAC) Wake On LAN Register\r
-AT91C_EMAC_DTF EQU (0xFFFDC058) ;- (EMAC) Deferred Transmission Frame Register\r
-AT91C_EMAC_TUND EQU (0xFFFDC064) ;- (EMAC) Transmit Underrun Error Register\r
-AT91C_EMAC_NCR EQU (0xFFFDC000) ;- (EMAC) Network Control Register\r
-AT91C_EMAC_SA4L EQU (0xFFFDC0B0) ;- (EMAC) Specific Address 4 Bottom, First 4 bytes\r
-AT91C_EMAC_RSR EQU (0xFFFDC020) ;- (EMAC) Receive Status Register\r
-AT91C_EMAC_SA3L EQU (0xFFFDC0A8) ;- (EMAC) Specific Address 3 Bottom, First 4 bytes\r
-AT91C_EMAC_TSR EQU (0xFFFDC014) ;- (EMAC) Transmit Status Register\r
-AT91C_EMAC_IDR EQU (0xFFFDC02C) ;- (EMAC) Interrupt Disable Register\r
-AT91C_EMAC_RSE EQU (0xFFFDC074) ;- (EMAC) Receive Symbol Errors Register\r
-AT91C_EMAC_ECOL EQU (0xFFFDC060) ;- (EMAC) Excessive Collision Register\r
-AT91C_EMAC_TID EQU (0xFFFDC0B8) ;- (EMAC) Type ID Checking Register\r
-AT91C_EMAC_HRB EQU (0xFFFDC090) ;- (EMAC) Hash Address Bottom[31:0]\r
-AT91C_EMAC_TBQP EQU (0xFFFDC01C) ;- (EMAC) Transmit Buffer Queue Pointer\r
-AT91C_EMAC_USRIO EQU (0xFFFDC0C0) ;- (EMAC) USER Input/Output Register\r
-AT91C_EMAC_PTR EQU (0xFFFDC038) ;- (EMAC) Pause Time Register\r
-AT91C_EMAC_SA2H EQU (0xFFFDC0A4) ;- (EMAC) Specific Address 2 Top, Last 2 bytes\r
-AT91C_EMAC_ROV EQU (0xFFFDC070) ;- (EMAC) Receive Overrun Errors Register\r
-AT91C_EMAC_ALE EQU (0xFFFDC054) ;- (EMAC) Alignment Error Register\r
-AT91C_EMAC_RJA EQU (0xFFFDC07C) ;- (EMAC) Receive Jabbers Register\r
-AT91C_EMAC_RBQP EQU (0xFFFDC018) ;- (EMAC) Receive Buffer Queue Pointer\r
-AT91C_EMAC_TPF EQU (0xFFFDC08C) ;- (EMAC) Transmitted Pause Frames Register\r
-AT91C_EMAC_NCFGR EQU (0xFFFDC004) ;- (EMAC) Network Configuration Register\r
-AT91C_EMAC_HRT EQU (0xFFFDC094) ;- (EMAC) Hash Address Top[63:32]\r
-AT91C_EMAC_USF EQU (0xFFFDC080) ;- (EMAC) Undersize Frames Register\r
-AT91C_EMAC_FCSE EQU (0xFFFDC050) ;- (EMAC) Frame Check Sequence Error Register\r
-AT91C_EMAC_TPQ EQU (0xFFFDC0BC) ;- (EMAC) Transmit Pause Quantum Register\r
-AT91C_EMAC_MAN EQU (0xFFFDC034) ;- (EMAC) PHY Maintenance Register\r
-AT91C_EMAC_FTO EQU (0xFFFDC040) ;- (EMAC) Frames Transmitted OK Register\r
-AT91C_EMAC_REV EQU (0xFFFDC0FC) ;- (EMAC) Revision Register\r
-AT91C_EMAC_IMR EQU (0xFFFDC030) ;- (EMAC) Interrupt Mask Register\r
-AT91C_EMAC_SCF EQU (0xFFFDC044) ;- (EMAC) Single Collision Frame Register\r
-AT91C_EMAC_PFR EQU (0xFFFDC03C) ;- (EMAC) Pause Frames received Register\r
-AT91C_EMAC_MCF EQU (0xFFFDC048) ;- (EMAC) Multiple Collision Frame Register\r
-AT91C_EMAC_NSR EQU (0xFFFDC008) ;- (EMAC) Network Status Register\r
-AT91C_EMAC_SA2L EQU (0xFFFDC0A0) ;- (EMAC) Specific Address 2 Bottom, First 4 bytes\r
-AT91C_EMAC_FRO EQU (0xFFFDC04C) ;- (EMAC) Frames Received OK Register\r
-AT91C_EMAC_IER EQU (0xFFFDC028) ;- (EMAC) Interrupt Enable Register\r
-AT91C_EMAC_SA1H EQU (0xFFFDC09C) ;- (EMAC) Specific Address 1 Top, Last 2 bytes\r
-AT91C_EMAC_CSE EQU (0xFFFDC068) ;- (EMAC) Carrier Sense Error Register\r
-AT91C_EMAC_SA3H EQU (0xFFFDC0AC) ;- (EMAC) Specific Address 3 Top, Last 2 bytes\r
-AT91C_EMAC_RRE EQU (0xFFFDC06C) ;- (EMAC) Receive Ressource Error Register\r
-AT91C_EMAC_STE EQU (0xFFFDC084) ;- (EMAC) SQE Test Error Register\r
-// - ========== Register definition for PDC_ADC peripheral ========== \r
-AT91C_ADC_PTSR EQU (0xFFFD8124) ;- (PDC_ADC) PDC Transfer Status Register\r
-AT91C_ADC_PTCR EQU (0xFFFD8120) ;- (PDC_ADC) PDC Transfer Control Register\r
-AT91C_ADC_TNPR EQU (0xFFFD8118) ;- (PDC_ADC) Transmit Next Pointer Register\r
-AT91C_ADC_TNCR EQU (0xFFFD811C) ;- (PDC_ADC) Transmit Next Counter Register\r
-AT91C_ADC_RNPR EQU (0xFFFD8110) ;- (PDC_ADC) Receive Next Pointer Register\r
-AT91C_ADC_RNCR EQU (0xFFFD8114) ;- (PDC_ADC) Receive Next Counter Register\r
-AT91C_ADC_RPR EQU (0xFFFD8100) ;- (PDC_ADC) Receive Pointer Register\r
-AT91C_ADC_TCR EQU (0xFFFD810C) ;- (PDC_ADC) Transmit Counter Register\r
-AT91C_ADC_TPR EQU (0xFFFD8108) ;- (PDC_ADC) Transmit Pointer Register\r
-AT91C_ADC_RCR EQU (0xFFFD8104) ;- (PDC_ADC) Receive Counter Register\r
-// - ========== Register definition for ADC peripheral ========== \r
-AT91C_ADC_CDR2 EQU (0xFFFD8038) ;- (ADC) ADC Channel Data Register 2\r
-AT91C_ADC_CDR3 EQU (0xFFFD803C) ;- (ADC) ADC Channel Data Register 3\r
-AT91C_ADC_CDR0 EQU (0xFFFD8030) ;- (ADC) ADC Channel Data Register 0\r
-AT91C_ADC_CDR5 EQU (0xFFFD8044) ;- (ADC) ADC Channel Data Register 5\r
-AT91C_ADC_CHDR EQU (0xFFFD8014) ;- (ADC) ADC Channel Disable Register\r
-AT91C_ADC_SR EQU (0xFFFD801C) ;- (ADC) ADC Status Register\r
-AT91C_ADC_CDR4 EQU (0xFFFD8040) ;- (ADC) ADC Channel Data Register 4\r
-AT91C_ADC_CDR1 EQU (0xFFFD8034) ;- (ADC) ADC Channel Data Register 1\r
-AT91C_ADC_LCDR EQU (0xFFFD8020) ;- (ADC) ADC Last Converted Data Register\r
-AT91C_ADC_IDR EQU (0xFFFD8028) ;- (ADC) ADC Interrupt Disable Register\r
-AT91C_ADC_CR EQU (0xFFFD8000) ;- (ADC) ADC Control Register\r
-AT91C_ADC_CDR7 EQU (0xFFFD804C) ;- (ADC) ADC Channel Data Register 7\r
-AT91C_ADC_CDR6 EQU (0xFFFD8048) ;- (ADC) ADC Channel Data Register 6\r
-AT91C_ADC_IER EQU (0xFFFD8024) ;- (ADC) ADC Interrupt Enable Register\r
-AT91C_ADC_CHER EQU (0xFFFD8010) ;- (ADC) ADC Channel Enable Register\r
-AT91C_ADC_CHSR EQU (0xFFFD8018) ;- (ADC) ADC Channel Status Register\r
-AT91C_ADC_MR EQU (0xFFFD8004) ;- (ADC) ADC Mode Register\r
-AT91C_ADC_IMR EQU (0xFFFD802C) ;- (ADC) ADC Interrupt Mask Register\r
-// - ========== Register definition for PDC_AES peripheral ========== \r
-AT91C_AES_TPR EQU (0xFFFA4108) ;- (PDC_AES) Transmit Pointer Register\r
-AT91C_AES_PTCR EQU (0xFFFA4120) ;- (PDC_AES) PDC Transfer Control Register\r
-AT91C_AES_RNPR EQU (0xFFFA4110) ;- (PDC_AES) Receive Next Pointer Register\r
-AT91C_AES_TNCR EQU (0xFFFA411C) ;- (PDC_AES) Transmit Next Counter Register\r
-AT91C_AES_TCR EQU (0xFFFA410C) ;- (PDC_AES) Transmit Counter Register\r
-AT91C_AES_RCR EQU (0xFFFA4104) ;- (PDC_AES) Receive Counter Register\r
-AT91C_AES_RNCR EQU (0xFFFA4114) ;- (PDC_AES) Receive Next Counter Register\r
-AT91C_AES_TNPR EQU (0xFFFA4118) ;- (PDC_AES) Transmit Next Pointer Register\r
-AT91C_AES_RPR EQU (0xFFFA4100) ;- (PDC_AES) Receive Pointer Register\r
-AT91C_AES_PTSR EQU (0xFFFA4124) ;- (PDC_AES) PDC Transfer Status Register\r
-// - ========== Register definition for AES peripheral ========== \r
-AT91C_AES_IVxR EQU (0xFFFA4060) ;- (AES) Initialization Vector x Register\r
-AT91C_AES_MR EQU (0xFFFA4004) ;- (AES) Mode Register\r
-AT91C_AES_VR EQU (0xFFFA40FC) ;- (AES) AES Version Register\r
-AT91C_AES_ODATAxR EQU (0xFFFA4050) ;- (AES) Output Data x Register\r
-AT91C_AES_IDATAxR EQU (0xFFFA4040) ;- (AES) Input Data x Register\r
-AT91C_AES_CR EQU (0xFFFA4000) ;- (AES) Control Register\r
-AT91C_AES_IDR EQU (0xFFFA4014) ;- (AES) Interrupt Disable Register\r
-AT91C_AES_IMR EQU (0xFFFA4018) ;- (AES) Interrupt Mask Register\r
-AT91C_AES_IER EQU (0xFFFA4010) ;- (AES) Interrupt Enable Register\r
-AT91C_AES_KEYWxR EQU (0xFFFA4020) ;- (AES) Key Word x Register\r
-AT91C_AES_ISR EQU (0xFFFA401C) ;- (AES) Interrupt Status Register\r
-// - ========== Register definition for PDC_TDES peripheral ========== \r
-AT91C_TDES_RNCR EQU (0xFFFA8114) ;- (PDC_TDES) Receive Next Counter Register\r
-AT91C_TDES_TCR EQU (0xFFFA810C) ;- (PDC_TDES) Transmit Counter Register\r
-AT91C_TDES_RCR EQU (0xFFFA8104) ;- (PDC_TDES) Receive Counter Register\r
-AT91C_TDES_TNPR EQU (0xFFFA8118) ;- (PDC_TDES) Transmit Next Pointer Register\r
-AT91C_TDES_RNPR EQU (0xFFFA8110) ;- (PDC_TDES) Receive Next Pointer Register\r
-AT91C_TDES_RPR EQU (0xFFFA8100) ;- (PDC_TDES) Receive Pointer Register\r
-AT91C_TDES_TNCR EQU (0xFFFA811C) ;- (PDC_TDES) Transmit Next Counter Register\r
-AT91C_TDES_TPR EQU (0xFFFA8108) ;- (PDC_TDES) Transmit Pointer Register\r
-AT91C_TDES_PTSR EQU (0xFFFA8124) ;- (PDC_TDES) PDC Transfer Status Register\r
-AT91C_TDES_PTCR EQU (0xFFFA8120) ;- (PDC_TDES) PDC Transfer Control Register\r
-// - ========== Register definition for TDES peripheral ========== \r
-AT91C_TDES_KEY2WxR EQU (0xFFFA8028) ;- (TDES) Key 2 Word x Register\r
-AT91C_TDES_KEY3WxR EQU (0xFFFA8030) ;- (TDES) Key 3 Word x Register\r
-AT91C_TDES_IDR EQU (0xFFFA8014) ;- (TDES) Interrupt Disable Register\r
-AT91C_TDES_VR EQU (0xFFFA80FC) ;- (TDES) TDES Version Register\r
-AT91C_TDES_IVxR EQU (0xFFFA8060) ;- (TDES) Initialization Vector x Register\r
-AT91C_TDES_ODATAxR EQU (0xFFFA8050) ;- (TDES) Output Data x Register\r
-AT91C_TDES_IMR EQU (0xFFFA8018) ;- (TDES) Interrupt Mask Register\r
-AT91C_TDES_MR EQU (0xFFFA8004) ;- (TDES) Mode Register\r
-AT91C_TDES_CR EQU (0xFFFA8000) ;- (TDES) Control Register\r
-AT91C_TDES_IER EQU (0xFFFA8010) ;- (TDES) Interrupt Enable Register\r
-AT91C_TDES_ISR EQU (0xFFFA801C) ;- (TDES) Interrupt Status Register\r
-AT91C_TDES_IDATAxR EQU (0xFFFA8040) ;- (TDES) Input Data x Register\r
-AT91C_TDES_KEY1WxR EQU (0xFFFA8020) ;- (TDES) Key 1 Word x Register\r
-\r
-// - *****************************************************************************\r
-// - PIO DEFINITIONS FOR AT91SAM7X128\r
-// - *****************************************************************************\r
-AT91C_PIO_PA0 EQU (1 << 0) ;- Pin Controlled by PA0\r
-AT91C_PA0_RXD0 EQU (AT91C_PIO_PA0) ;- USART 0 Receive Data\r
-AT91C_PIO_PA1 EQU (1 << 1) ;- Pin Controlled by PA1\r
-AT91C_PA1_TXD0 EQU (AT91C_PIO_PA1) ;- USART 0 Transmit Data\r
-AT91C_PIO_PA10 EQU (1 << 10) ;- Pin Controlled by PA10\r
-AT91C_PA10_TWD EQU (AT91C_PIO_PA10) ;- TWI Two-wire Serial Data\r
-AT91C_PIO_PA11 EQU (1 << 11) ;- Pin Controlled by PA11\r
-AT91C_PA11_TWCK EQU (AT91C_PIO_PA11) ;- TWI Two-wire Serial Clock\r
-AT91C_PIO_PA12 EQU (1 << 12) ;- Pin Controlled by PA12\r
-AT91C_PA12_NPCS00 EQU (AT91C_PIO_PA12) ;- SPI 0 Peripheral Chip Select 0\r
-AT91C_PIO_PA13 EQU (1 << 13) ;- Pin Controlled by PA13\r
-AT91C_PA13_NPCS01 EQU (AT91C_PIO_PA13) ;- SPI 0 Peripheral Chip Select 1\r
-AT91C_PA13_PCK1 EQU (AT91C_PIO_PA13) ;- PMC Programmable Clock Output 1\r
-AT91C_PIO_PA14 EQU (1 << 14) ;- Pin Controlled by PA14\r
-AT91C_PA14_NPCS02 EQU (AT91C_PIO_PA14) ;- SPI 0 Peripheral Chip Select 2\r
-AT91C_PA14_IRQ1 EQU (AT91C_PIO_PA14) ;- External Interrupt 1\r
-AT91C_PIO_PA15 EQU (1 << 15) ;- Pin Controlled by PA15\r
-AT91C_PA15_NPCS03 EQU (AT91C_PIO_PA15) ;- SPI 0 Peripheral Chip Select 3\r
-AT91C_PA15_TCLK2 EQU (AT91C_PIO_PA15) ;- Timer Counter 2 external clock input\r
-AT91C_PIO_PA16 EQU (1 << 16) ;- Pin Controlled by PA16\r
-AT91C_PA16_MISO0 EQU (AT91C_PIO_PA16) ;- SPI 0 Master In Slave\r
-AT91C_PIO_PA17 EQU (1 << 17) ;- Pin Controlled by PA17\r
-AT91C_PA17_MOSI0 EQU (AT91C_PIO_PA17) ;- SPI 0 Master Out Slave\r
-AT91C_PIO_PA18 EQU (1 << 18) ;- Pin Controlled by PA18\r
-AT91C_PA18_SPCK0 EQU (AT91C_PIO_PA18) ;- SPI 0 Serial Clock\r
-AT91C_PIO_PA19 EQU (1 << 19) ;- Pin Controlled by PA19\r
-AT91C_PA19_CANRX EQU (AT91C_PIO_PA19) ;- CAN Receive\r
-AT91C_PIO_PA2 EQU (1 << 2) ;- Pin Controlled by PA2\r
-AT91C_PA2_SCK0 EQU (AT91C_PIO_PA2) ;- USART 0 Serial Clock\r
-AT91C_PA2_NPCS11 EQU (AT91C_PIO_PA2) ;- SPI 1 Peripheral Chip Select 1\r
-AT91C_PIO_PA20 EQU (1 << 20) ;- Pin Controlled by PA20\r
-AT91C_PA20_CANTX EQU (AT91C_PIO_PA20) ;- CAN Transmit\r
-AT91C_PIO_PA21 EQU (1 << 21) ;- Pin Controlled by PA21\r
-AT91C_PA21_TF EQU (AT91C_PIO_PA21) ;- SSC Transmit Frame Sync\r
-AT91C_PA21_NPCS10 EQU (AT91C_PIO_PA21) ;- SPI 1 Peripheral Chip Select 0\r
-AT91C_PIO_PA22 EQU (1 << 22) ;- Pin Controlled by PA22\r
-AT91C_PA22_TK EQU (AT91C_PIO_PA22) ;- SSC Transmit Clock\r
-AT91C_PA22_SPCK1 EQU (AT91C_PIO_PA22) ;- SPI 1 Serial Clock\r
-AT91C_PIO_PA23 EQU (1 << 23) ;- Pin Controlled by PA23\r
-AT91C_PA23_TD EQU (AT91C_PIO_PA23) ;- SSC Transmit data\r
-AT91C_PA23_MOSI1 EQU (AT91C_PIO_PA23) ;- SPI 1 Master Out Slave\r
-AT91C_PIO_PA24 EQU (1 << 24) ;- Pin Controlled by PA24\r
-AT91C_PA24_RD EQU (AT91C_PIO_PA24) ;- SSC Receive Data\r
-AT91C_PA24_MISO1 EQU (AT91C_PIO_PA24) ;- SPI 1 Master In Slave\r
-AT91C_PIO_PA25 EQU (1 << 25) ;- Pin Controlled by PA25\r
-AT91C_PA25_RK EQU (AT91C_PIO_PA25) ;- SSC Receive Clock\r
-AT91C_PA25_NPCS11 EQU (AT91C_PIO_PA25) ;- SPI 1 Peripheral Chip Select 1\r
-AT91C_PIO_PA26 EQU (1 << 26) ;- Pin Controlled by PA26\r
-AT91C_PA26_RF EQU (AT91C_PIO_PA26) ;- SSC Receive Frame Sync\r
-AT91C_PA26_NPCS12 EQU (AT91C_PIO_PA26) ;- SPI 1 Peripheral Chip Select 2\r
-AT91C_PIO_PA27 EQU (1 << 27) ;- Pin Controlled by PA27\r
-AT91C_PA27_DRXD EQU (AT91C_PIO_PA27) ;- DBGU Debug Receive Data\r
-AT91C_PA27_PCK3 EQU (AT91C_PIO_PA27) ;- PMC Programmable Clock Output 3\r
-AT91C_PIO_PA28 EQU (1 << 28) ;- Pin Controlled by PA28\r
-AT91C_PA28_DTXD EQU (AT91C_PIO_PA28) ;- DBGU Debug Transmit Data\r
-AT91C_PIO_PA29 EQU (1 << 29) ;- Pin Controlled by PA29\r
-AT91C_PA29_FIQ EQU (AT91C_PIO_PA29) ;- AIC Fast Interrupt Input\r
-AT91C_PA29_NPCS13 EQU (AT91C_PIO_PA29) ;- SPI 1 Peripheral Chip Select 3\r
-AT91C_PIO_PA3 EQU (1 << 3) ;- Pin Controlled by PA3\r
-AT91C_PA3_RTS0 EQU (AT91C_PIO_PA3) ;- USART 0 Ready To Send\r
-AT91C_PA3_NPCS12 EQU (AT91C_PIO_PA3) ;- SPI 1 Peripheral Chip Select 2\r
-AT91C_PIO_PA30 EQU (1 << 30) ;- Pin Controlled by PA30\r
-AT91C_PA30_IRQ0 EQU (AT91C_PIO_PA30) ;- External Interrupt 0\r
-AT91C_PA30_PCK2 EQU (AT91C_PIO_PA30) ;- PMC Programmable Clock Output 2\r
-AT91C_PIO_PA4 EQU (1 << 4) ;- Pin Controlled by PA4\r
-AT91C_PA4_CTS0 EQU (AT91C_PIO_PA4) ;- USART 0 Clear To Send\r
-AT91C_PA4_NPCS13 EQU (AT91C_PIO_PA4) ;- SPI 1 Peripheral Chip Select 3\r
-AT91C_PIO_PA5 EQU (1 << 5) ;- Pin Controlled by PA5\r
-AT91C_PA5_RXD1 EQU (AT91C_PIO_PA5) ;- USART 1 Receive Data\r
-AT91C_PIO_PA6 EQU (1 << 6) ;- Pin Controlled by PA6\r
-AT91C_PA6_TXD1 EQU (AT91C_PIO_PA6) ;- USART 1 Transmit Data\r
-AT91C_PIO_PA7 EQU (1 << 7) ;- Pin Controlled by PA7\r
-AT91C_PA7_SCK1 EQU (AT91C_PIO_PA7) ;- USART 1 Serial Clock\r
-AT91C_PA7_NPCS01 EQU (AT91C_PIO_PA7) ;- SPI 0 Peripheral Chip Select 1\r
-AT91C_PIO_PA8 EQU (1 << 8) ;- Pin Controlled by PA8\r
-AT91C_PA8_RTS1 EQU (AT91C_PIO_PA8) ;- USART 1 Ready To Send\r
-AT91C_PA8_NPCS02 EQU (AT91C_PIO_PA8) ;- SPI 0 Peripheral Chip Select 2\r
-AT91C_PIO_PA9 EQU (1 << 9) ;- Pin Controlled by PA9\r
-AT91C_PA9_CTS1 EQU (AT91C_PIO_PA9) ;- USART 1 Clear To Send\r
-AT91C_PA9_NPCS03 EQU (AT91C_PIO_PA9) ;- SPI 0 Peripheral Chip Select 3\r
-AT91C_PIO_PB0 EQU (1 << 0) ;- Pin Controlled by PB0\r
-AT91C_PB0_ETXCK_EREFCK EQU (AT91C_PIO_PB0) ;- Ethernet MAC Transmit Clock/Reference Clock\r
-AT91C_PB0_PCK0 EQU (AT91C_PIO_PB0) ;- PMC Programmable Clock Output 0\r
-AT91C_PIO_PB1 EQU (1 << 1) ;- Pin Controlled by PB1\r
-AT91C_PB1_ETXEN EQU (AT91C_PIO_PB1) ;- Ethernet MAC Transmit Enable\r
-AT91C_PIO_PB10 EQU (1 << 10) ;- Pin Controlled by PB10\r
-AT91C_PB10_ETX2 EQU (AT91C_PIO_PB10) ;- Ethernet MAC Transmit Data 2\r
-AT91C_PB10_NPCS11 EQU (AT91C_PIO_PB10) ;- SPI 1 Peripheral Chip Select 1\r
-AT91C_PIO_PB11 EQU (1 << 11) ;- Pin Controlled by PB11\r
-AT91C_PB11_ETX3 EQU (AT91C_PIO_PB11) ;- Ethernet MAC Transmit Data 3\r
-AT91C_PB11_NPCS12 EQU (AT91C_PIO_PB11) ;- SPI 1 Peripheral Chip Select 2\r
-AT91C_PIO_PB12 EQU (1 << 12) ;- Pin Controlled by PB12\r
-AT91C_PB12_ETXER EQU (AT91C_PIO_PB12) ;- Ethernet MAC Transmikt Coding Error\r
-AT91C_PB12_TCLK0 EQU (AT91C_PIO_PB12) ;- Timer Counter 0 external clock input\r
-AT91C_PIO_PB13 EQU (1 << 13) ;- Pin Controlled by PB13\r
-AT91C_PB13_ERX2 EQU (AT91C_PIO_PB13) ;- Ethernet MAC Receive Data 2\r
-AT91C_PB13_NPCS01 EQU (AT91C_PIO_PB13) ;- SPI 0 Peripheral Chip Select 1\r
-AT91C_PIO_PB14 EQU (1 << 14) ;- Pin Controlled by PB14\r
-AT91C_PB14_ERX3 EQU (AT91C_PIO_PB14) ;- Ethernet MAC Receive Data 3\r
-AT91C_PB14_NPCS02 EQU (AT91C_PIO_PB14) ;- SPI 0 Peripheral Chip Select 2\r
-AT91C_PIO_PB15 EQU (1 << 15) ;- Pin Controlled by PB15\r
-AT91C_PB15_ERXDV EQU (AT91C_PIO_PB15) ;- Ethernet MAC Receive Data Valid\r
-AT91C_PIO_PB16 EQU (1 << 16) ;- Pin Controlled by PB16\r
-AT91C_PB16_ECOL EQU (AT91C_PIO_PB16) ;- Ethernet MAC Collision Detected\r
-AT91C_PB16_NPCS13 EQU (AT91C_PIO_PB16) ;- SPI 1 Peripheral Chip Select 3\r
-AT91C_PIO_PB17 EQU (1 << 17) ;- Pin Controlled by PB17\r
-AT91C_PB17_ERXCK EQU (AT91C_PIO_PB17) ;- Ethernet MAC Receive Clock\r
-AT91C_PB17_NPCS03 EQU (AT91C_PIO_PB17) ;- SPI 0 Peripheral Chip Select 3\r
-AT91C_PIO_PB18 EQU (1 << 18) ;- Pin Controlled by PB18\r
-AT91C_PB18_EF100 EQU (AT91C_PIO_PB18) ;- Ethernet MAC Force 100 Mbits/sec\r
-AT91C_PB18_ADTRG EQU (AT91C_PIO_PB18) ;- ADC External Trigger\r
-AT91C_PIO_PB19 EQU (1 << 19) ;- Pin Controlled by PB19\r
-AT91C_PB19_PWM0 EQU (AT91C_PIO_PB19) ;- PWM Channel 0\r
-AT91C_PB19_TCLK1 EQU (AT91C_PIO_PB19) ;- Timer Counter 1 external clock input\r
-AT91C_PIO_PB2 EQU (1 << 2) ;- Pin Controlled by PB2\r
-AT91C_PB2_ETX0 EQU (AT91C_PIO_PB2) ;- Ethernet MAC Transmit Data 0\r
-AT91C_PIO_PB20 EQU (1 << 20) ;- Pin Controlled by PB20\r
-AT91C_PB20_PWM1 EQU (AT91C_PIO_PB20) ;- PWM Channel 1\r
-AT91C_PB20_PCK0 EQU (AT91C_PIO_PB20) ;- PMC Programmable Clock Output 0\r
-AT91C_PIO_PB21 EQU (1 << 21) ;- Pin Controlled by PB21\r
-AT91C_PB21_PWM2 EQU (AT91C_PIO_PB21) ;- PWM Channel 2\r
-AT91C_PB21_PCK1 EQU (AT91C_PIO_PB21) ;- PMC Programmable Clock Output 1\r
-AT91C_PIO_PB22 EQU (1 << 22) ;- Pin Controlled by PB22\r
-AT91C_PB22_PWM3 EQU (AT91C_PIO_PB22) ;- PWM Channel 3\r
-AT91C_PB22_PCK2 EQU (AT91C_PIO_PB22) ;- PMC Programmable Clock Output 2\r
-AT91C_PIO_PB23 EQU (1 << 23) ;- Pin Controlled by PB23\r
-AT91C_PB23_TIOA0 EQU (AT91C_PIO_PB23) ;- Timer Counter 0 Multipurpose Timer I/O Pin A\r
-AT91C_PB23_DCD1 EQU (AT91C_PIO_PB23) ;- USART 1 Data Carrier Detect\r
-AT91C_PIO_PB24 EQU (1 << 24) ;- Pin Controlled by PB24\r
-AT91C_PB24_TIOB0 EQU (AT91C_PIO_PB24) ;- Timer Counter 0 Multipurpose Timer I/O Pin B\r
-AT91C_PB24_DSR1 EQU (AT91C_PIO_PB24) ;- USART 1 Data Set ready\r
-AT91C_PIO_PB25 EQU (1 << 25) ;- Pin Controlled by PB25\r
-AT91C_PB25_TIOA1 EQU (AT91C_PIO_PB25) ;- Timer Counter 1 Multipurpose Timer I/O Pin A\r
-AT91C_PB25_DTR1 EQU (AT91C_PIO_PB25) ;- USART 1 Data Terminal ready\r
-AT91C_PIO_PB26 EQU (1 << 26) ;- Pin Controlled by PB26\r
-AT91C_PB26_TIOB1 EQU (AT91C_PIO_PB26) ;- Timer Counter 1 Multipurpose Timer I/O Pin B\r
-AT91C_PB26_RI1 EQU (AT91C_PIO_PB26) ;- USART 1 Ring Indicator\r
-AT91C_PIO_PB27 EQU (1 << 27) ;- Pin Controlled by PB27\r
-AT91C_PB27_TIOA2 EQU (AT91C_PIO_PB27) ;- Timer Counter 2 Multipurpose Timer I/O Pin A\r
-AT91C_PB27_PWM0 EQU (AT91C_PIO_PB27) ;- PWM Channel 0\r
-AT91C_PIO_PB28 EQU (1 << 28) ;- Pin Controlled by PB28\r
-AT91C_PB28_TIOB2 EQU (AT91C_PIO_PB28) ;- Timer Counter 2 Multipurpose Timer I/O Pin B\r
-AT91C_PB28_PWM1 EQU (AT91C_PIO_PB28) ;- PWM Channel 1\r
-AT91C_PIO_PB29 EQU (1 << 29) ;- Pin Controlled by PB29\r
-AT91C_PB29_PCK1 EQU (AT91C_PIO_PB29) ;- PMC Programmable Clock Output 1\r
-AT91C_PB29_PWM2 EQU (AT91C_PIO_PB29) ;- PWM Channel 2\r
-AT91C_PIO_PB3 EQU (1 << 3) ;- Pin Controlled by PB3\r
-AT91C_PB3_ETX1 EQU (AT91C_PIO_PB3) ;- Ethernet MAC Transmit Data 1\r
-AT91C_PIO_PB30 EQU (1 << 30) ;- Pin Controlled by PB30\r
-AT91C_PB30_PCK2 EQU (AT91C_PIO_PB30) ;- PMC Programmable Clock Output 2\r
-AT91C_PB30_PWM3 EQU (AT91C_PIO_PB30) ;- PWM Channel 3\r
-AT91C_PIO_PB4 EQU (1 << 4) ;- Pin Controlled by PB4\r
-AT91C_PB4_ECRS_ECRSDV EQU (AT91C_PIO_PB4) ;- Ethernet MAC Carrier Sense/Carrier Sense and Data Valid\r
-AT91C_PIO_PB5 EQU (1 << 5) ;- Pin Controlled by PB5\r
-AT91C_PB5_ERX0 EQU (AT91C_PIO_PB5) ;- Ethernet MAC Receive Data 0\r
-AT91C_PIO_PB6 EQU (1 << 6) ;- Pin Controlled by PB6\r
-AT91C_PB6_ERX1 EQU (AT91C_PIO_PB6) ;- Ethernet MAC Receive Data 1\r
-AT91C_PIO_PB7 EQU (1 << 7) ;- Pin Controlled by PB7\r
-AT91C_PB7_ERXER EQU (AT91C_PIO_PB7) ;- Ethernet MAC Receive Error\r
-AT91C_PIO_PB8 EQU (1 << 8) ;- Pin Controlled by PB8\r
-AT91C_PB8_EMDC EQU (AT91C_PIO_PB8) ;- Ethernet MAC Management Data Clock\r
-AT91C_PIO_PB9 EQU (1 << 9) ;- Pin Controlled by PB9\r
-AT91C_PB9_EMDIO EQU (AT91C_PIO_PB9) ;- Ethernet MAC Management Data Input/Output\r
-\r
-// - *****************************************************************************\r
-// - PERIPHERAL ID DEFINITIONS FOR AT91SAM7X128\r
-// - *****************************************************************************\r
-AT91C_ID_FIQ EQU ( 0) ;- Advanced Interrupt Controller (FIQ)\r
-AT91C_ID_SYS EQU ( 1) ;- System Peripheral\r
-AT91C_ID_PIOA EQU ( 2) ;- Parallel IO Controller A\r
-AT91C_ID_PIOB EQU ( 3) ;- Parallel IO Controller B\r
-AT91C_ID_SPI0 EQU ( 4) ;- Serial Peripheral Interface 0\r
-AT91C_ID_SPI1 EQU ( 5) ;- Serial Peripheral Interface 1\r
-AT91C_ID_US0 EQU ( 6) ;- USART 0\r
-AT91C_ID_US1 EQU ( 7) ;- USART 1\r
-AT91C_ID_SSC EQU ( 8) ;- Serial Synchronous Controller\r
-AT91C_ID_TWI EQU ( 9) ;- Two-Wire Interface\r
-AT91C_ID_PWMC EQU (10) ;- PWM Controller\r
-AT91C_ID_UDP EQU (11) ;- USB Device Port\r
-AT91C_ID_TC0 EQU (12) ;- Timer Counter 0\r
-AT91C_ID_TC1 EQU (13) ;- Timer Counter 1\r
-AT91C_ID_TC2 EQU (14) ;- Timer Counter 2\r
-AT91C_ID_CAN EQU (15) ;- Control Area Network Controller\r
-AT91C_ID_EMAC EQU (16) ;- Ethernet MAC\r
-AT91C_ID_ADC EQU (17) ;- Analog-to-Digital Converter\r
-AT91C_ID_AES EQU (18) ;- Advanced Encryption Standard 128-bit\r
-AT91C_ID_TDES EQU (19) ;- Triple Data Encryption Standard\r
-AT91C_ID_20_Reserved EQU (20) ;- Reserved\r
-AT91C_ID_21_Reserved EQU (21) ;- Reserved\r
-AT91C_ID_22_Reserved EQU (22) ;- Reserved\r
-AT91C_ID_23_Reserved EQU (23) ;- Reserved\r
-AT91C_ID_24_Reserved EQU (24) ;- Reserved\r
-AT91C_ID_25_Reserved EQU (25) ;- Reserved\r
-AT91C_ID_26_Reserved EQU (26) ;- Reserved\r
-AT91C_ID_27_Reserved EQU (27) ;- Reserved\r
-AT91C_ID_28_Reserved EQU (28) ;- Reserved\r
-AT91C_ID_29_Reserved EQU (29) ;- Reserved\r
-AT91C_ID_IRQ0 EQU (30) ;- Advanced Interrupt Controller (IRQ0)\r
-AT91C_ID_IRQ1 EQU (31) ;- Advanced Interrupt Controller (IRQ1)\r
-\r
-// - *****************************************************************************\r
-// - BASE ADDRESS DEFINITIONS FOR AT91SAM7X128\r
-// - *****************************************************************************\r
-AT91C_BASE_SYS EQU (0xFFFFF000) ;- (SYS) Base Address\r
-AT91C_BASE_AIC EQU (0xFFFFF000) ;- (AIC) Base Address\r
-AT91C_BASE_PDC_DBGU EQU (0xFFFFF300) ;- (PDC_DBGU) Base Address\r
-AT91C_BASE_DBGU EQU (0xFFFFF200) ;- (DBGU) Base Address\r
-AT91C_BASE_PIOA EQU (0xFFFFF400) ;- (PIOA) Base Address\r
-AT91C_BASE_PIOB EQU (0xFFFFF600) ;- (PIOB) Base Address\r
-AT91C_BASE_CKGR EQU (0xFFFFFC20) ;- (CKGR) Base Address\r
-AT91C_BASE_PMC EQU (0xFFFFFC00) ;- (PMC) Base Address\r
-AT91C_BASE_RSTC EQU (0xFFFFFD00) ;- (RSTC) Base Address\r
-AT91C_BASE_RTTC EQU (0xFFFFFD20) ;- (RTTC) Base Address\r
-AT91C_BASE_PITC EQU (0xFFFFFD30) ;- (PITC) Base Address\r
-AT91C_BASE_WDTC EQU (0xFFFFFD40) ;- (WDTC) Base Address\r
-AT91C_BASE_VREG EQU (0xFFFFFD60) ;- (VREG) Base Address\r
-AT91C_BASE_MC EQU (0xFFFFFF00) ;- (MC) Base Address\r
-AT91C_BASE_PDC_SPI1 EQU (0xFFFE4100) ;- (PDC_SPI1) Base Address\r
-AT91C_BASE_SPI1 EQU (0xFFFE4000) ;- (SPI1) Base Address\r
-AT91C_BASE_PDC_SPI0 EQU (0xFFFE0100) ;- (PDC_SPI0) Base Address\r
-AT91C_BASE_SPI0 EQU (0xFFFE0000) ;- (SPI0) Base Address\r
-AT91C_BASE_PDC_US1 EQU (0xFFFC4100) ;- (PDC_US1) Base Address\r
-AT91C_BASE_US1 EQU (0xFFFC4000) ;- (US1) Base Address\r
-AT91C_BASE_PDC_US0 EQU (0xFFFC0100) ;- (PDC_US0) Base Address\r
-AT91C_BASE_US0 EQU (0xFFFC0000) ;- (US0) Base Address\r
-AT91C_BASE_PDC_SSC EQU (0xFFFD4100) ;- (PDC_SSC) Base Address\r
-AT91C_BASE_SSC EQU (0xFFFD4000) ;- (SSC) Base Address\r
-AT91C_BASE_TWI EQU (0xFFFB8000) ;- (TWI) Base Address\r
-AT91C_BASE_PWMC_CH3 EQU (0xFFFCC260) ;- (PWMC_CH3) Base Address\r
-AT91C_BASE_PWMC_CH2 EQU (0xFFFCC240) ;- (PWMC_CH2) Base Address\r
-AT91C_BASE_PWMC_CH1 EQU (0xFFFCC220) ;- (PWMC_CH1) Base Address\r
-AT91C_BASE_PWMC_CH0 EQU (0xFFFCC200) ;- (PWMC_CH0) Base Address\r
-AT91C_BASE_PWMC EQU (0xFFFCC000) ;- (PWMC) Base Address\r
-AT91C_BASE_UDP EQU (0xFFFB0000) ;- (UDP) Base Address\r
-AT91C_BASE_TC0 EQU (0xFFFA0000) ;- (TC0) Base Address\r
-AT91C_BASE_TC1 EQU (0xFFFA0040) ;- (TC1) Base Address\r
-AT91C_BASE_TC2 EQU (0xFFFA0080) ;- (TC2) Base Address\r
-AT91C_BASE_TCB EQU (0xFFFA0000) ;- (TCB) Base Address\r
-AT91C_BASE_CAN_MB0 EQU (0xFFFD0200) ;- (CAN_MB0) Base Address\r
-AT91C_BASE_CAN_MB1 EQU (0xFFFD0220) ;- (CAN_MB1) Base Address\r
-AT91C_BASE_CAN_MB2 EQU (0xFFFD0240) ;- (CAN_MB2) Base Address\r
-AT91C_BASE_CAN_MB3 EQU (0xFFFD0260) ;- (CAN_MB3) Base Address\r
-AT91C_BASE_CAN_MB4 EQU (0xFFFD0280) ;- (CAN_MB4) Base Address\r
-AT91C_BASE_CAN_MB5 EQU (0xFFFD02A0) ;- (CAN_MB5) Base Address\r
-AT91C_BASE_CAN_MB6 EQU (0xFFFD02C0) ;- (CAN_MB6) Base Address\r
-AT91C_BASE_CAN_MB7 EQU (0xFFFD02E0) ;- (CAN_MB7) Base Address\r
-AT91C_BASE_CAN EQU (0xFFFD0000) ;- (CAN) Base Address\r
-AT91C_BASE_EMAC EQU (0xFFFDC000) ;- (EMAC) Base Address\r
-AT91C_BASE_PDC_ADC EQU (0xFFFD8100) ;- (PDC_ADC) Base Address\r
-AT91C_BASE_ADC EQU (0xFFFD8000) ;- (ADC) Base Address\r
-AT91C_BASE_PDC_AES EQU (0xFFFA4100) ;- (PDC_AES) Base Address\r
-AT91C_BASE_AES EQU (0xFFFA4000) ;- (AES) Base Address\r
-AT91C_BASE_PDC_TDES EQU (0xFFFA8100) ;- (PDC_TDES) Base Address\r
-AT91C_BASE_TDES EQU (0xFFFA8000) ;- (TDES) Base Address\r
-\r
-// - *****************************************************************************\r
-// - MEMORY MAPPING DEFINITIONS FOR AT91SAM7X128\r
-// - *****************************************************************************\r
-AT91C_ISRAM EQU (0x00200000) ;- Internal SRAM base address\r
-AT91C_ISRAM_SIZE EQU (0x00008000) ;- Internal SRAM size in byte (32 Kbyte)\r
-AT91C_IFLASH EQU (0x00100000) ;- Internal ROM base address\r
-AT91C_IFLASH_SIZE EQU (0x00020000) ;- Internal ROM size in byte (128 Kbyte)\r
-#endif /* __IAR_SYSTEMS_ASM__ */\r
-\r
-\r
-#endif /* AT91SAM7X128_H */\r
+++ /dev/null
-// - ----------------------------------------------------------------------------\r
-// - ATMEL Microcontroller Software Support - ROUSSET -\r
-// - ----------------------------------------------------------------------------\r
-// - DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR\r
-// - IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
-// - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
-// - DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,\r
-// - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
-// - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\r
-// - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
-// - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-// - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
-// - EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-// - ----------------------------------------------------------------------------\r
-// - File Name : AT91SAM7X256.h\r
-// - Object : AT91SAM7X256 definitions\r
-// - Generated : AT91 SW Application Group 05/20/2005 (16:22:29)\r
-// - \r
-// - CVS Reference : /AT91SAM7X256.pl/1.11/Tue May 10 12:15:32 2005//\r
-// - CVS Reference : /SYS_SAM7X.pl/1.3/Tue Feb 1 17:01:43 2005//\r
-// - CVS Reference : /MC_SAM7X.pl/1.2/Fri May 20 14:13:04 2005//\r
-// - CVS Reference : /PMC_SAM7X.pl/1.4/Tue Feb 8 13:58:10 2005//\r
-// - CVS Reference : /RSTC_SAM7X.pl/1.1/Tue Feb 1 16:16:26 2005//\r
-// - CVS Reference : /UDP_SAM7X.pl/1.1/Tue May 10 11:35:35 2005//\r
-// - CVS Reference : /PWM_SAM7X.pl/1.1/Tue May 10 11:53:07 2005//\r
-// - CVS Reference : /AIC_6075B.pl/1.3/Fri May 20 14:01:30 2005//\r
-// - CVS Reference : /PIO_6057A.pl/1.2/Thu Feb 3 10:18:28 2005//\r
-// - CVS Reference : /RTTC_6081A.pl/1.2/Tue Nov 9 14:43:58 2004//\r
-// - CVS Reference : /PITC_6079A.pl/1.2/Tue Nov 9 14:43:56 2004//\r
-// - CVS Reference : /WDTC_6080A.pl/1.3/Tue Nov 9 14:44:00 2004//\r
-// - CVS Reference : /VREG_6085B.pl/1.1/Tue Feb 1 16:05:48 2005//\r
-// - CVS Reference : /PDC_6074C.pl/1.2/Thu Feb 3 08:48:54 2005//\r
-// - CVS Reference : /DBGU_6059D.pl/1.1/Mon Jan 31 13:15:32 2005//\r
-// - CVS Reference : /SPI_6088D.pl/1.3/Fri May 20 14:08:59 2005//\r
-// - CVS Reference : /US_6089C.pl/1.1/Mon Jul 12 18:23:26 2004//\r
-// - CVS Reference : /SSC_6078A.pl/1.1/Tue Jul 13 07:45:40 2004//\r
-// - CVS Reference : /TWI_6061A.pl/1.1/Tue Jul 13 07:38:06 2004//\r
-// - CVS Reference : /TC_6082A.pl/1.7/Fri Mar 11 12:52:17 2005//\r
-// - CVS Reference : /CAN_6019B.pl/1.1/Tue Mar 8 12:42:22 2005//\r
-// - CVS Reference : /EMACB_6119A.pl/1.5/Thu Feb 3 15:52:04 2005//\r
-// - CVS Reference : /ADC_6051C.pl/1.1/Fri Oct 17 09:12:38 2003//\r
-// - CVS Reference : /AES_6149A.pl/1.10/Mon Feb 7 09:44:25 2005//\r
-// - CVS Reference : /DES3_6150A.pl/1.1/Mon Jan 17 08:34:31 2005//\r
-// - ----------------------------------------------------------------------------\r
-\r
-#ifndef AT91SAM7X256_H\r
-#define AT91SAM7X256_H\r
-\r
-#ifdef __IAR_SYSTEMS_ICC__\r
-\r
-typedef volatile unsigned int AT91_REG;// Hardware register definition\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR System Peripherals\r
-// *****************************************************************************\r
-typedef struct _AT91S_SYS {\r
- AT91_REG AIC_SMR[32]; // Source Mode Register\r
- AT91_REG AIC_SVR[32]; // Source Vector Register\r
- AT91_REG AIC_IVR; // IRQ Vector Register\r
- AT91_REG AIC_FVR; // FIQ Vector Register\r
- AT91_REG AIC_ISR; // Interrupt Status Register\r
- AT91_REG AIC_IPR; // Interrupt Pending Register\r
- AT91_REG AIC_IMR; // Interrupt Mask Register\r
- AT91_REG AIC_CISR; // Core Interrupt Status Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG AIC_IECR; // Interrupt Enable Command Register\r
- AT91_REG AIC_IDCR; // Interrupt Disable Command Register\r
- AT91_REG AIC_ICCR; // Interrupt Clear Command Register\r
- AT91_REG AIC_ISCR; // Interrupt Set Command Register\r
- AT91_REG AIC_EOICR; // End of Interrupt Command Register\r
- AT91_REG AIC_SPU; // Spurious Vector Register\r
- AT91_REG AIC_DCR; // Debug Control Register (Protect)\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG AIC_FFER; // Fast Forcing Enable Register\r
- AT91_REG AIC_FFDR; // Fast Forcing Disable Register\r
- AT91_REG AIC_FFSR; // Fast Forcing Status Register\r
- AT91_REG Reserved2[45]; // \r
- AT91_REG DBGU_CR; // Control Register\r
- AT91_REG DBGU_MR; // Mode Register\r
- AT91_REG DBGU_IER; // Interrupt Enable Register\r
- AT91_REG DBGU_IDR; // Interrupt Disable Register\r
- AT91_REG DBGU_IMR; // Interrupt Mask Register\r
- AT91_REG DBGU_CSR; // Channel Status Register\r
- AT91_REG DBGU_RHR; // Receiver Holding Register\r
- AT91_REG DBGU_THR; // Transmitter Holding Register\r
- AT91_REG DBGU_BRGR; // Baud Rate Generator Register\r
- AT91_REG Reserved3[7]; // \r
- AT91_REG DBGU_CIDR; // Chip ID Register\r
- AT91_REG DBGU_EXID; // Chip ID Extension Register\r
- AT91_REG DBGU_FNTR; // Force NTRST Register\r
- AT91_REG Reserved4[45]; // \r
- AT91_REG DBGU_RPR; // Receive Pointer Register\r
- AT91_REG DBGU_RCR; // Receive Counter Register\r
- AT91_REG DBGU_TPR; // Transmit Pointer Register\r
- AT91_REG DBGU_TCR; // Transmit Counter Register\r
- AT91_REG DBGU_RNPR; // Receive Next Pointer Register\r
- AT91_REG DBGU_RNCR; // Receive Next Counter Register\r
- AT91_REG DBGU_TNPR; // Transmit Next Pointer Register\r
- AT91_REG DBGU_TNCR; // Transmit Next Counter Register\r
- AT91_REG DBGU_PTCR; // PDC Transfer Control Register\r
- AT91_REG DBGU_PTSR; // PDC Transfer Status Register\r
- AT91_REG Reserved5[54]; // \r
- AT91_REG PIOA_PER; // PIO Enable Register\r
- AT91_REG PIOA_PDR; // PIO Disable Register\r
- AT91_REG PIOA_PSR; // PIO Status Register\r
- AT91_REG Reserved6[1]; // \r
- AT91_REG PIOA_OER; // Output Enable Register\r
- AT91_REG PIOA_ODR; // Output Disable Registerr\r
- AT91_REG PIOA_OSR; // Output Status Register\r
- AT91_REG Reserved7[1]; // \r
- AT91_REG PIOA_IFER; // Input Filter Enable Register\r
- AT91_REG PIOA_IFDR; // Input Filter Disable Register\r
- AT91_REG PIOA_IFSR; // Input Filter Status Register\r
- AT91_REG Reserved8[1]; // \r
- AT91_REG PIOA_SODR; // Set Output Data Register\r
- AT91_REG PIOA_CODR; // Clear Output Data Register\r
- AT91_REG PIOA_ODSR; // Output Data Status Register\r
- AT91_REG PIOA_PDSR; // Pin Data Status Register\r
- AT91_REG PIOA_IER; // Interrupt Enable Register\r
- AT91_REG PIOA_IDR; // Interrupt Disable Register\r
- AT91_REG PIOA_IMR; // Interrupt Mask Register\r
- AT91_REG PIOA_ISR; // Interrupt Status Register\r
- AT91_REG PIOA_MDER; // Multi-driver Enable Register\r
- AT91_REG PIOA_MDDR; // Multi-driver Disable Register\r
- AT91_REG PIOA_MDSR; // Multi-driver Status Register\r
- AT91_REG Reserved9[1]; // \r
- AT91_REG PIOA_PPUDR; // Pull-up Disable Register\r
- AT91_REG PIOA_PPUER; // Pull-up Enable Register\r
- AT91_REG PIOA_PPUSR; // Pull-up Status Register\r
- AT91_REG Reserved10[1]; // \r
- AT91_REG PIOA_ASR; // Select A Register\r
- AT91_REG PIOA_BSR; // Select B Register\r
- AT91_REG PIOA_ABSR; // AB Select Status Register\r
- AT91_REG Reserved11[9]; // \r
- AT91_REG PIOA_OWER; // Output Write Enable Register\r
- AT91_REG PIOA_OWDR; // Output Write Disable Register\r
- AT91_REG PIOA_OWSR; // Output Write Status Register\r
- AT91_REG Reserved12[85]; // \r
- AT91_REG PIOB_PER; // PIO Enable Register\r
- AT91_REG PIOB_PDR; // PIO Disable Register\r
- AT91_REG PIOB_PSR; // PIO Status Register\r
- AT91_REG Reserved13[1]; // \r
- AT91_REG PIOB_OER; // Output Enable Register\r
- AT91_REG PIOB_ODR; // Output Disable Registerr\r
- AT91_REG PIOB_OSR; // Output Status Register\r
- AT91_REG Reserved14[1]; // \r
- AT91_REG PIOB_IFER; // Input Filter Enable Register\r
- AT91_REG PIOB_IFDR; // Input Filter Disable Register\r
- AT91_REG PIOB_IFSR; // Input Filter Status Register\r
- AT91_REG Reserved15[1]; // \r
- AT91_REG PIOB_SODR; // Set Output Data Register\r
- AT91_REG PIOB_CODR; // Clear Output Data Register\r
- AT91_REG PIOB_ODSR; // Output Data Status Register\r
- AT91_REG PIOB_PDSR; // Pin Data Status Register\r
- AT91_REG PIOB_IER; // Interrupt Enable Register\r
- AT91_REG PIOB_IDR; // Interrupt Disable Register\r
- AT91_REG PIOB_IMR; // Interrupt Mask Register\r
- AT91_REG PIOB_ISR; // Interrupt Status Register\r
- AT91_REG PIOB_MDER; // Multi-driver Enable Register\r
- AT91_REG PIOB_MDDR; // Multi-driver Disable Register\r
- AT91_REG PIOB_MDSR; // Multi-driver Status Register\r
- AT91_REG Reserved16[1]; // \r
- AT91_REG PIOB_PPUDR; // Pull-up Disable Register\r
- AT91_REG PIOB_PPUER; // Pull-up Enable Register\r
- AT91_REG PIOB_PPUSR; // Pull-up Status Register\r
- AT91_REG Reserved17[1]; // \r
- AT91_REG PIOB_ASR; // Select A Register\r
- AT91_REG PIOB_BSR; // Select B Register\r
- AT91_REG PIOB_ABSR; // AB Select Status Register\r
- AT91_REG Reserved18[9]; // \r
- AT91_REG PIOB_OWER; // Output Write Enable Register\r
- AT91_REG PIOB_OWDR; // Output Write Disable Register\r
- AT91_REG PIOB_OWSR; // Output Write Status Register\r
- AT91_REG Reserved19[341]; // \r
- AT91_REG PMC_SCER; // System Clock Enable Register\r
- AT91_REG PMC_SCDR; // System Clock Disable Register\r
- AT91_REG PMC_SCSR; // System Clock Status Register\r
- AT91_REG Reserved20[1]; // \r
- AT91_REG PMC_PCER; // Peripheral Clock Enable Register\r
- AT91_REG PMC_PCDR; // Peripheral Clock Disable Register\r
- AT91_REG PMC_PCSR; // Peripheral Clock Status Register\r
- AT91_REG Reserved21[1]; // \r
- AT91_REG PMC_MOR; // Main Oscillator Register\r
- AT91_REG PMC_MCFR; // Main Clock Frequency Register\r
- AT91_REG Reserved22[1]; // \r
- AT91_REG PMC_PLLR; // PLL Register\r
- AT91_REG PMC_MCKR; // Master Clock Register\r
- AT91_REG Reserved23[3]; // \r
- AT91_REG PMC_PCKR[4]; // Programmable Clock Register\r
- AT91_REG Reserved24[4]; // \r
- AT91_REG PMC_IER; // Interrupt Enable Register\r
- AT91_REG PMC_IDR; // Interrupt Disable Register\r
- AT91_REG PMC_SR; // Status Register\r
- AT91_REG PMC_IMR; // Interrupt Mask Register\r
- AT91_REG Reserved25[36]; // \r
- AT91_REG RSTC_RCR; // Reset Control Register\r
- AT91_REG RSTC_RSR; // Reset Status Register\r
- AT91_REG RSTC_RMR; // Reset Mode Register\r
- AT91_REG Reserved26[5]; // \r
- AT91_REG RTTC_RTMR; // Real-time Mode Register\r
- AT91_REG RTTC_RTAR; // Real-time Alarm Register\r
- AT91_REG RTTC_RTVR; // Real-time Value Register\r
- AT91_REG RTTC_RTSR; // Real-time Status Register\r
- AT91_REG PITC_PIMR; // Period Interval Mode Register\r
- AT91_REG PITC_PISR; // Period Interval Status Register\r
- AT91_REG PITC_PIVR; // Period Interval Value Register\r
- AT91_REG PITC_PIIR; // Period Interval Image Register\r
- AT91_REG WDTC_WDCR; // Watchdog Control Register\r
- AT91_REG WDTC_WDMR; // Watchdog Mode Register\r
- AT91_REG WDTC_WDSR; // Watchdog Status Register\r
- AT91_REG Reserved27[5]; // \r
- AT91_REG VREG_MR; // Voltage Regulator Mode Register\r
-} AT91S_SYS, *AT91PS_SYS;\r
-\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Advanced Interrupt Controller\r
-// *****************************************************************************\r
-typedef struct _AT91S_AIC {\r
- AT91_REG AIC_SMR[32]; // Source Mode Register\r
- AT91_REG AIC_SVR[32]; // Source Vector Register\r
- AT91_REG AIC_IVR; // IRQ Vector Register\r
- AT91_REG AIC_FVR; // FIQ Vector Register\r
- AT91_REG AIC_ISR; // Interrupt Status Register\r
- AT91_REG AIC_IPR; // Interrupt Pending Register\r
- AT91_REG AIC_IMR; // Interrupt Mask Register\r
- AT91_REG AIC_CISR; // Core Interrupt Status Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG AIC_IECR; // Interrupt Enable Command Register\r
- AT91_REG AIC_IDCR; // Interrupt Disable Command Register\r
- AT91_REG AIC_ICCR; // Interrupt Clear Command Register\r
- AT91_REG AIC_ISCR; // Interrupt Set Command Register\r
- AT91_REG AIC_EOICR; // End of Interrupt Command Register\r
- AT91_REG AIC_SPU; // Spurious Vector Register\r
- AT91_REG AIC_DCR; // Debug Control Register (Protect)\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG AIC_FFER; // Fast Forcing Enable Register\r
- AT91_REG AIC_FFDR; // Fast Forcing Disable Register\r
- AT91_REG AIC_FFSR; // Fast Forcing Status Register\r
-} AT91S_AIC, *AT91PS_AIC;\r
-\r
-// -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- \r
-#define AT91C_AIC_PRIOR ((unsigned int) 0x7 << 0) // (AIC) Priority Level\r
-#define AT91C_AIC_PRIOR_LOWEST ((unsigned int) 0x0) // (AIC) Lowest priority level\r
-#define AT91C_AIC_PRIOR_HIGHEST ((unsigned int) 0x7) // (AIC) Highest priority level\r
-#define AT91C_AIC_SRCTYPE ((unsigned int) 0x3 << 5) // (AIC) Interrupt Source Type\r
-#define AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL ((unsigned int) 0x0 << 5) // (AIC) Internal Sources Code Label High-level Sensitive\r
-#define AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL ((unsigned int) 0x0 << 5) // (AIC) External Sources Code Label Low-level Sensitive\r
-#define AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE ((unsigned int) 0x1 << 5) // (AIC) Internal Sources Code Label Positive Edge triggered\r
-#define AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE ((unsigned int) 0x1 << 5) // (AIC) External Sources Code Label Negative Edge triggered\r
-#define AT91C_AIC_SRCTYPE_HIGH_LEVEL ((unsigned int) 0x2 << 5) // (AIC) Internal Or External Sources Code Label High-level Sensitive\r
-#define AT91C_AIC_SRCTYPE_POSITIVE_EDGE ((unsigned int) 0x3 << 5) // (AIC) Internal Or External Sources Code Label Positive Edge triggered\r
-// -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- \r
-#define AT91C_AIC_NFIQ ((unsigned int) 0x1 << 0) // (AIC) NFIQ Status\r
-#define AT91C_AIC_NIRQ ((unsigned int) 0x1 << 1) // (AIC) NIRQ Status\r
-// -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- \r
-#define AT91C_AIC_DCR_PROT ((unsigned int) 0x1 << 0) // (AIC) Protection Mode\r
-#define AT91C_AIC_DCR_GMSK ((unsigned int) 0x1 << 1) // (AIC) General Mask\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Peripheral DMA Controller\r
-// *****************************************************************************\r
-typedef struct _AT91S_PDC {\r
- AT91_REG PDC_RPR; // Receive Pointer Register\r
- AT91_REG PDC_RCR; // Receive Counter Register\r
- AT91_REG PDC_TPR; // Transmit Pointer Register\r
- AT91_REG PDC_TCR; // Transmit Counter Register\r
- AT91_REG PDC_RNPR; // Receive Next Pointer Register\r
- AT91_REG PDC_RNCR; // Receive Next Counter Register\r
- AT91_REG PDC_TNPR; // Transmit Next Pointer Register\r
- AT91_REG PDC_TNCR; // Transmit Next Counter Register\r
- AT91_REG PDC_PTCR; // PDC Transfer Control Register\r
- AT91_REG PDC_PTSR; // PDC Transfer Status Register\r
-} AT91S_PDC, *AT91PS_PDC;\r
-\r
-// -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- \r
-#define AT91C_PDC_RXTEN ((unsigned int) 0x1 << 0) // (PDC) Receiver Transfer Enable\r
-#define AT91C_PDC_RXTDIS ((unsigned int) 0x1 << 1) // (PDC) Receiver Transfer Disable\r
-#define AT91C_PDC_TXTEN ((unsigned int) 0x1 << 8) // (PDC) Transmitter Transfer Enable\r
-#define AT91C_PDC_TXTDIS ((unsigned int) 0x1 << 9) // (PDC) Transmitter Transfer Disable\r
-// -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Debug Unit\r
-// *****************************************************************************\r
-typedef struct _AT91S_DBGU {\r
- AT91_REG DBGU_CR; // Control Register\r
- AT91_REG DBGU_MR; // Mode Register\r
- AT91_REG DBGU_IER; // Interrupt Enable Register\r
- AT91_REG DBGU_IDR; // Interrupt Disable Register\r
- AT91_REG DBGU_IMR; // Interrupt Mask Register\r
- AT91_REG DBGU_CSR; // Channel Status Register\r
- AT91_REG DBGU_RHR; // Receiver Holding Register\r
- AT91_REG DBGU_THR; // Transmitter Holding Register\r
- AT91_REG DBGU_BRGR; // Baud Rate Generator Register\r
- AT91_REG Reserved0[7]; // \r
- AT91_REG DBGU_CIDR; // Chip ID Register\r
- AT91_REG DBGU_EXID; // Chip ID Extension Register\r
- AT91_REG DBGU_FNTR; // Force NTRST Register\r
- AT91_REG Reserved1[45]; // \r
- AT91_REG DBGU_RPR; // Receive Pointer Register\r
- AT91_REG DBGU_RCR; // Receive Counter Register\r
- AT91_REG DBGU_TPR; // Transmit Pointer Register\r
- AT91_REG DBGU_TCR; // Transmit Counter Register\r
- AT91_REG DBGU_RNPR; // Receive Next Pointer Register\r
- AT91_REG DBGU_RNCR; // Receive Next Counter Register\r
- AT91_REG DBGU_TNPR; // Transmit Next Pointer Register\r
- AT91_REG DBGU_TNCR; // Transmit Next Counter Register\r
- AT91_REG DBGU_PTCR; // PDC Transfer Control Register\r
- AT91_REG DBGU_PTSR; // PDC Transfer Status Register\r
-} AT91S_DBGU, *AT91PS_DBGU;\r
-\r
-// -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- \r
-#define AT91C_US_RSTRX ((unsigned int) 0x1 << 2) // (DBGU) Reset Receiver\r
-#define AT91C_US_RSTTX ((unsigned int) 0x1 << 3) // (DBGU) Reset Transmitter\r
-#define AT91C_US_RXEN ((unsigned int) 0x1 << 4) // (DBGU) Receiver Enable\r
-#define AT91C_US_RXDIS ((unsigned int) 0x1 << 5) // (DBGU) Receiver Disable\r
-#define AT91C_US_TXEN ((unsigned int) 0x1 << 6) // (DBGU) Transmitter Enable\r
-#define AT91C_US_TXDIS ((unsigned int) 0x1 << 7) // (DBGU) Transmitter Disable\r
-#define AT91C_US_RSTSTA ((unsigned int) 0x1 << 8) // (DBGU) Reset Status Bits\r
-// -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- \r
-#define AT91C_US_PAR ((unsigned int) 0x7 << 9) // (DBGU) Parity type\r
-#define AT91C_US_PAR_EVEN ((unsigned int) 0x0 << 9) // (DBGU) Even Parity\r
-#define AT91C_US_PAR_ODD ((unsigned int) 0x1 << 9) // (DBGU) Odd Parity\r
-#define AT91C_US_PAR_SPACE ((unsigned int) 0x2 << 9) // (DBGU) Parity forced to 0 (Space)\r
-#define AT91C_US_PAR_MARK ((unsigned int) 0x3 << 9) // (DBGU) Parity forced to 1 (Mark)\r
-#define AT91C_US_PAR_NONE ((unsigned int) 0x4 << 9) // (DBGU) No Parity\r
-#define AT91C_US_PAR_MULTI_DROP ((unsigned int) 0x6 << 9) // (DBGU) Multi-drop mode\r
-#define AT91C_US_CHMODE ((unsigned int) 0x3 << 14) // (DBGU) Channel Mode\r
-#define AT91C_US_CHMODE_NORMAL ((unsigned int) 0x0 << 14) // (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.\r
-#define AT91C_US_CHMODE_AUTO ((unsigned int) 0x1 << 14) // (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.\r
-#define AT91C_US_CHMODE_LOCAL ((unsigned int) 0x2 << 14) // (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.\r
-#define AT91C_US_CHMODE_REMOTE ((unsigned int) 0x3 << 14) // (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.\r
-// -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-#define AT91C_US_RXRDY ((unsigned int) 0x1 << 0) // (DBGU) RXRDY Interrupt\r
-#define AT91C_US_TXRDY ((unsigned int) 0x1 << 1) // (DBGU) TXRDY Interrupt\r
-#define AT91C_US_ENDRX ((unsigned int) 0x1 << 3) // (DBGU) End of Receive Transfer Interrupt\r
-#define AT91C_US_ENDTX ((unsigned int) 0x1 << 4) // (DBGU) End of Transmit Interrupt\r
-#define AT91C_US_OVRE ((unsigned int) 0x1 << 5) // (DBGU) Overrun Interrupt\r
-#define AT91C_US_FRAME ((unsigned int) 0x1 << 6) // (DBGU) Framing Error Interrupt\r
-#define AT91C_US_PARE ((unsigned int) 0x1 << 7) // (DBGU) Parity Error Interrupt\r
-#define AT91C_US_TXEMPTY ((unsigned int) 0x1 << 9) // (DBGU) TXEMPTY Interrupt\r
-#define AT91C_US_TXBUFE ((unsigned int) 0x1 << 11) // (DBGU) TXBUFE Interrupt\r
-#define AT91C_US_RXBUFF ((unsigned int) 0x1 << 12) // (DBGU) RXBUFF Interrupt\r
-#define AT91C_US_COMM_TX ((unsigned int) 0x1 << 30) // (DBGU) COMM_TX Interrupt\r
-#define AT91C_US_COMM_RX ((unsigned int) 0x1 << 31) // (DBGU) COMM_RX Interrupt\r
-// -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- \r
-// -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- \r
-#define AT91C_US_FORCE_NTRST ((unsigned int) 0x1 << 0) // (DBGU) Force NTRST in JTAG\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Parallel Input Output Controler\r
-// *****************************************************************************\r
-typedef struct _AT91S_PIO {\r
- AT91_REG PIO_PER; // PIO Enable Register\r
- AT91_REG PIO_PDR; // PIO Disable Register\r
- AT91_REG PIO_PSR; // PIO Status Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG PIO_OER; // Output Enable Register\r
- AT91_REG PIO_ODR; // Output Disable Registerr\r
- AT91_REG PIO_OSR; // Output Status Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG PIO_IFER; // Input Filter Enable Register\r
- AT91_REG PIO_IFDR; // Input Filter Disable Register\r
- AT91_REG PIO_IFSR; // Input Filter Status Register\r
- AT91_REG Reserved2[1]; // \r
- AT91_REG PIO_SODR; // Set Output Data Register\r
- AT91_REG PIO_CODR; // Clear Output Data Register\r
- AT91_REG PIO_ODSR; // Output Data Status Register\r
- AT91_REG PIO_PDSR; // Pin Data Status Register\r
- AT91_REG PIO_IER; // Interrupt Enable Register\r
- AT91_REG PIO_IDR; // Interrupt Disable Register\r
- AT91_REG PIO_IMR; // Interrupt Mask Register\r
- AT91_REG PIO_ISR; // Interrupt Status Register\r
- AT91_REG PIO_MDER; // Multi-driver Enable Register\r
- AT91_REG PIO_MDDR; // Multi-driver Disable Register\r
- AT91_REG PIO_MDSR; // Multi-driver Status Register\r
- AT91_REG Reserved3[1]; // \r
- AT91_REG PIO_PPUDR; // Pull-up Disable Register\r
- AT91_REG PIO_PPUER; // Pull-up Enable Register\r
- AT91_REG PIO_PPUSR; // Pull-up Status Register\r
- AT91_REG Reserved4[1]; // \r
- AT91_REG PIO_ASR; // Select A Register\r
- AT91_REG PIO_BSR; // Select B Register\r
- AT91_REG PIO_ABSR; // AB Select Status Register\r
- AT91_REG Reserved5[9]; // \r
- AT91_REG PIO_OWER; // Output Write Enable Register\r
- AT91_REG PIO_OWDR; // Output Write Disable Register\r
- AT91_REG PIO_OWSR; // Output Write Status Register\r
-} AT91S_PIO, *AT91PS_PIO;\r
-\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Clock Generator Controler\r
-// *****************************************************************************\r
-typedef struct _AT91S_CKGR {\r
- AT91_REG CKGR_MOR; // Main Oscillator Register\r
- AT91_REG CKGR_MCFR; // Main Clock Frequency Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG CKGR_PLLR; // PLL Register\r
-} AT91S_CKGR, *AT91PS_CKGR;\r
-\r
-// -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- \r
-#define AT91C_CKGR_MOSCEN ((unsigned int) 0x1 << 0) // (CKGR) Main Oscillator Enable\r
-#define AT91C_CKGR_OSCBYPASS ((unsigned int) 0x1 << 1) // (CKGR) Main Oscillator Bypass\r
-#define AT91C_CKGR_OSCOUNT ((unsigned int) 0xFF << 8) // (CKGR) Main Oscillator Start-up Time\r
-// -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- \r
-#define AT91C_CKGR_MAINF ((unsigned int) 0xFFFF << 0) // (CKGR) Main Clock Frequency\r
-#define AT91C_CKGR_MAINRDY ((unsigned int) 0x1 << 16) // (CKGR) Main Clock Ready\r
-// -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- \r
-#define AT91C_CKGR_DIV ((unsigned int) 0xFF << 0) // (CKGR) Divider Selected\r
-#define AT91C_CKGR_DIV_0 ((unsigned int) 0x0) // (CKGR) Divider output is 0\r
-#define AT91C_CKGR_DIV_BYPASS ((unsigned int) 0x1) // (CKGR) Divider is bypassed\r
-#define AT91C_CKGR_PLLCOUNT ((unsigned int) 0x3F << 8) // (CKGR) PLL Counter\r
-#define AT91C_CKGR_OUT ((unsigned int) 0x3 << 14) // (CKGR) PLL Output Frequency Range\r
-#define AT91C_CKGR_OUT_0 ((unsigned int) 0x0 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_OUT_1 ((unsigned int) 0x1 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_OUT_2 ((unsigned int) 0x2 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_OUT_3 ((unsigned int) 0x3 << 14) // (CKGR) Please refer to the PLL datasheet\r
-#define AT91C_CKGR_MUL ((unsigned int) 0x7FF << 16) // (CKGR) PLL Multiplier\r
-#define AT91C_CKGR_USBDIV ((unsigned int) 0x3 << 28) // (CKGR) Divider for USB Clocks\r
-#define AT91C_CKGR_USBDIV_0 ((unsigned int) 0x0 << 28) // (CKGR) Divider output is PLL clock output\r
-#define AT91C_CKGR_USBDIV_1 ((unsigned int) 0x1 << 28) // (CKGR) Divider output is PLL clock output divided by 2\r
-#define AT91C_CKGR_USBDIV_2 ((unsigned int) 0x2 << 28) // (CKGR) Divider output is PLL clock output divided by 4\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Power Management Controler\r
-// *****************************************************************************\r
-typedef struct _AT91S_PMC {\r
- AT91_REG PMC_SCER; // System Clock Enable Register\r
- AT91_REG PMC_SCDR; // System Clock Disable Register\r
- AT91_REG PMC_SCSR; // System Clock Status Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG PMC_PCER; // Peripheral Clock Enable Register\r
- AT91_REG PMC_PCDR; // Peripheral Clock Disable Register\r
- AT91_REG PMC_PCSR; // Peripheral Clock Status Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG PMC_MOR; // Main Oscillator Register\r
- AT91_REG PMC_MCFR; // Main Clock Frequency Register\r
- AT91_REG Reserved2[1]; // \r
- AT91_REG PMC_PLLR; // PLL Register\r
- AT91_REG PMC_MCKR; // Master Clock Register\r
- AT91_REG Reserved3[3]; // \r
- AT91_REG PMC_PCKR[4]; // Programmable Clock Register\r
- AT91_REG Reserved4[4]; // \r
- AT91_REG PMC_IER; // Interrupt Enable Register\r
- AT91_REG PMC_IDR; // Interrupt Disable Register\r
- AT91_REG PMC_SR; // Status Register\r
- AT91_REG PMC_IMR; // Interrupt Mask Register\r
-} AT91S_PMC, *AT91PS_PMC;\r
-\r
-// -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- \r
-#define AT91C_PMC_PCK ((unsigned int) 0x1 << 0) // (PMC) Processor Clock\r
-#define AT91C_PMC_UDP ((unsigned int) 0x1 << 7) // (PMC) USB Device Port Clock\r
-#define AT91C_PMC_PCK0 ((unsigned int) 0x1 << 8) // (PMC) Programmable Clock Output\r
-#define AT91C_PMC_PCK1 ((unsigned int) 0x1 << 9) // (PMC) Programmable Clock Output\r
-#define AT91C_PMC_PCK2 ((unsigned int) 0x1 << 10) // (PMC) Programmable Clock Output\r
-#define AT91C_PMC_PCK3 ((unsigned int) 0x1 << 11) // (PMC) Programmable Clock Output\r
-// -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- \r
-// -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- \r
-// -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- \r
-// -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- \r
-// -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- \r
-// -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- \r
-#define AT91C_PMC_CSS ((unsigned int) 0x3 << 0) // (PMC) Programmable Clock Selection\r
-#define AT91C_PMC_CSS_SLOW_CLK ((unsigned int) 0x0) // (PMC) Slow Clock is selected\r
-#define AT91C_PMC_CSS_MAIN_CLK ((unsigned int) 0x1) // (PMC) Main Clock is selected\r
-#define AT91C_PMC_CSS_PLL_CLK ((unsigned int) 0x3) // (PMC) Clock from PLL is selected\r
-#define AT91C_PMC_PRES ((unsigned int) 0x7 << 2) // (PMC) Programmable Clock Prescaler\r
-#define AT91C_PMC_PRES_CLK ((unsigned int) 0x0 << 2) // (PMC) Selected clock\r
-#define AT91C_PMC_PRES_CLK_2 ((unsigned int) 0x1 << 2) // (PMC) Selected clock divided by 2\r
-#define AT91C_PMC_PRES_CLK_4 ((unsigned int) 0x2 << 2) // (PMC) Selected clock divided by 4\r
-#define AT91C_PMC_PRES_CLK_8 ((unsigned int) 0x3 << 2) // (PMC) Selected clock divided by 8\r
-#define AT91C_PMC_PRES_CLK_16 ((unsigned int) 0x4 << 2) // (PMC) Selected clock divided by 16\r
-#define AT91C_PMC_PRES_CLK_32 ((unsigned int) 0x5 << 2) // (PMC) Selected clock divided by 32\r
-#define AT91C_PMC_PRES_CLK_64 ((unsigned int) 0x6 << 2) // (PMC) Selected clock divided by 64\r
-// -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- \r
-// -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- \r
-#define AT91C_PMC_MOSCS ((unsigned int) 0x1 << 0) // (PMC) MOSC Status/Enable/Disable/Mask\r
-#define AT91C_PMC_LOCK ((unsigned int) 0x1 << 2) // (PMC) PLL Status/Enable/Disable/Mask\r
-#define AT91C_PMC_MCKRDY ((unsigned int) 0x1 << 3) // (PMC) MCK_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK0RDY ((unsigned int) 0x1 << 8) // (PMC) PCK0_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK1RDY ((unsigned int) 0x1 << 9) // (PMC) PCK1_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK2RDY ((unsigned int) 0x1 << 10) // (PMC) PCK2_RDY Status/Enable/Disable/Mask\r
-#define AT91C_PMC_PCK3RDY ((unsigned int) 0x1 << 11) // (PMC) PCK3_RDY Status/Enable/Disable/Mask\r
-// -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- \r
-// -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- \r
-// -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Reset Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_RSTC {\r
- AT91_REG RSTC_RCR; // Reset Control Register\r
- AT91_REG RSTC_RSR; // Reset Status Register\r
- AT91_REG RSTC_RMR; // Reset Mode Register\r
-} AT91S_RSTC, *AT91PS_RSTC;\r
-\r
-// -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- \r
-#define AT91C_RSTC_PROCRST ((unsigned int) 0x1 << 0) // (RSTC) Processor Reset\r
-#define AT91C_RSTC_PERRST ((unsigned int) 0x1 << 2) // (RSTC) Peripheral Reset\r
-#define AT91C_RSTC_EXTRST ((unsigned int) 0x1 << 3) // (RSTC) External Reset\r
-#define AT91C_RSTC_KEY ((unsigned int) 0xFF << 24) // (RSTC) Password\r
-// -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- \r
-#define AT91C_RSTC_URSTS ((unsigned int) 0x1 << 0) // (RSTC) User Reset Status\r
-#define AT91C_RSTC_BODSTS ((unsigned int) 0x1 << 1) // (RSTC) Brownout Detection Status\r
-#define AT91C_RSTC_RSTTYP ((unsigned int) 0x7 << 8) // (RSTC) Reset Type\r
-#define AT91C_RSTC_RSTTYP_POWERUP ((unsigned int) 0x0 << 8) // (RSTC) Power-up Reset. VDDCORE rising.\r
-#define AT91C_RSTC_RSTTYP_WAKEUP ((unsigned int) 0x1 << 8) // (RSTC) WakeUp Reset. VDDCORE rising.\r
-#define AT91C_RSTC_RSTTYP_WATCHDOG ((unsigned int) 0x2 << 8) // (RSTC) Watchdog Reset. Watchdog overflow occured.\r
-#define AT91C_RSTC_RSTTYP_SOFTWARE ((unsigned int) 0x3 << 8) // (RSTC) Software Reset. Processor reset required by the software.\r
-#define AT91C_RSTC_RSTTYP_USER ((unsigned int) 0x4 << 8) // (RSTC) User Reset. NRST pin detected low.\r
-#define AT91C_RSTC_RSTTYP_BROWNOUT ((unsigned int) 0x5 << 8) // (RSTC) Brownout Reset occured.\r
-#define AT91C_RSTC_NRSTL ((unsigned int) 0x1 << 16) // (RSTC) NRST pin level\r
-#define AT91C_RSTC_SRCMP ((unsigned int) 0x1 << 17) // (RSTC) Software Reset Command in Progress.\r
-// -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- \r
-#define AT91C_RSTC_URSTEN ((unsigned int) 0x1 << 0) // (RSTC) User Reset Enable\r
-#define AT91C_RSTC_URSTIEN ((unsigned int) 0x1 << 4) // (RSTC) User Reset Interrupt Enable\r
-#define AT91C_RSTC_ERSTL ((unsigned int) 0xF << 8) // (RSTC) User Reset Enable\r
-#define AT91C_RSTC_BODIEN ((unsigned int) 0x1 << 16) // (RSTC) Brownout Detection Interrupt Enable\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Real Time Timer Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_RTTC {\r
- AT91_REG RTTC_RTMR; // Real-time Mode Register\r
- AT91_REG RTTC_RTAR; // Real-time Alarm Register\r
- AT91_REG RTTC_RTVR; // Real-time Value Register\r
- AT91_REG RTTC_RTSR; // Real-time Status Register\r
-} AT91S_RTTC, *AT91PS_RTTC;\r
-\r
-// -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- \r
-#define AT91C_RTTC_RTPRES ((unsigned int) 0xFFFF << 0) // (RTTC) Real-time Timer Prescaler Value\r
-#define AT91C_RTTC_ALMIEN ((unsigned int) 0x1 << 16) // (RTTC) Alarm Interrupt Enable\r
-#define AT91C_RTTC_RTTINCIEN ((unsigned int) 0x1 << 17) // (RTTC) Real Time Timer Increment Interrupt Enable\r
-#define AT91C_RTTC_RTTRST ((unsigned int) 0x1 << 18) // (RTTC) Real Time Timer Restart\r
-// -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- \r
-#define AT91C_RTTC_ALMV ((unsigned int) 0x0 << 0) // (RTTC) Alarm Value\r
-// -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- \r
-#define AT91C_RTTC_CRTV ((unsigned int) 0x0 << 0) // (RTTC) Current Real-time Value\r
-// -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- \r
-#define AT91C_RTTC_ALMS ((unsigned int) 0x1 << 0) // (RTTC) Real-time Alarm Status\r
-#define AT91C_RTTC_RTTINC ((unsigned int) 0x1 << 1) // (RTTC) Real-time Timer Increment\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Periodic Interval Timer Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_PITC {\r
- AT91_REG PITC_PIMR; // Period Interval Mode Register\r
- AT91_REG PITC_PISR; // Period Interval Status Register\r
- AT91_REG PITC_PIVR; // Period Interval Value Register\r
- AT91_REG PITC_PIIR; // Period Interval Image Register\r
-} AT91S_PITC, *AT91PS_PITC;\r
-\r
-// -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- \r
-#define AT91C_PITC_PIV ((unsigned int) 0xFFFFF << 0) // (PITC) Periodic Interval Value\r
-#define AT91C_PITC_PITEN ((unsigned int) 0x1 << 24) // (PITC) Periodic Interval Timer Enabled\r
-#define AT91C_PITC_PITIEN ((unsigned int) 0x1 << 25) // (PITC) Periodic Interval Timer Interrupt Enable\r
-// -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- \r
-#define AT91C_PITC_PITS ((unsigned int) 0x1 << 0) // (PITC) Periodic Interval Timer Status\r
-// -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- \r
-#define AT91C_PITC_CPIV ((unsigned int) 0xFFFFF << 0) // (PITC) Current Periodic Interval Value\r
-#define AT91C_PITC_PICNT ((unsigned int) 0xFFF << 20) // (PITC) Periodic Interval Counter\r
-// -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Watchdog Timer Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_WDTC {\r
- AT91_REG WDTC_WDCR; // Watchdog Control Register\r
- AT91_REG WDTC_WDMR; // Watchdog Mode Register\r
- AT91_REG WDTC_WDSR; // Watchdog Status Register\r
-} AT91S_WDTC, *AT91PS_WDTC;\r
-\r
-// -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- \r
-#define AT91C_WDTC_WDRSTT ((unsigned int) 0x1 << 0) // (WDTC) Watchdog Restart\r
-#define AT91C_WDTC_KEY ((unsigned int) 0xFF << 24) // (WDTC) Watchdog KEY Password\r
-// -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- \r
-#define AT91C_WDTC_WDV ((unsigned int) 0xFFF << 0) // (WDTC) Watchdog Timer Restart\r
-#define AT91C_WDTC_WDFIEN ((unsigned int) 0x1 << 12) // (WDTC) Watchdog Fault Interrupt Enable\r
-#define AT91C_WDTC_WDRSTEN ((unsigned int) 0x1 << 13) // (WDTC) Watchdog Reset Enable\r
-#define AT91C_WDTC_WDRPROC ((unsigned int) 0x1 << 14) // (WDTC) Watchdog Timer Restart\r
-#define AT91C_WDTC_WDDIS ((unsigned int) 0x1 << 15) // (WDTC) Watchdog Disable\r
-#define AT91C_WDTC_WDD ((unsigned int) 0xFFF << 16) // (WDTC) Watchdog Delta Value\r
-#define AT91C_WDTC_WDDBGHLT ((unsigned int) 0x1 << 28) // (WDTC) Watchdog Debug Halt\r
-#define AT91C_WDTC_WDIDLEHLT ((unsigned int) 0x1 << 29) // (WDTC) Watchdog Idle Halt\r
-// -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- \r
-#define AT91C_WDTC_WDUNF ((unsigned int) 0x1 << 0) // (WDTC) Watchdog Underflow\r
-#define AT91C_WDTC_WDERR ((unsigned int) 0x1 << 1) // (WDTC) Watchdog Error\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Voltage Regulator Mode Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_VREG {\r
- AT91_REG VREG_MR; // Voltage Regulator Mode Register\r
-} AT91S_VREG, *AT91PS_VREG;\r
-\r
-// -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- \r
-#define AT91C_VREG_PSTDBY ((unsigned int) 0x1 << 0) // (VREG) Voltage Regulator Power Standby Mode\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Memory Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_MC {\r
- AT91_REG MC_RCR; // MC Remap Control Register\r
- AT91_REG MC_ASR; // MC Abort Status Register\r
- AT91_REG MC_AASR; // MC Abort Address Status Register\r
- AT91_REG Reserved0[21]; // \r
- AT91_REG MC_FMR; // MC Flash Mode Register\r
- AT91_REG MC_FCR; // MC Flash Command Register\r
- AT91_REG MC_FSR; // MC Flash Status Register\r
-} AT91S_MC, *AT91PS_MC;\r
-\r
-// -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- \r
-#define AT91C_MC_RCB ((unsigned int) 0x1 << 0) // (MC) Remap Command Bit\r
-// -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- \r
-#define AT91C_MC_UNDADD ((unsigned int) 0x1 << 0) // (MC) Undefined Addess Abort Status\r
-#define AT91C_MC_MISADD ((unsigned int) 0x1 << 1) // (MC) Misaligned Addess Abort Status\r
-#define AT91C_MC_ABTSZ ((unsigned int) 0x3 << 8) // (MC) Abort Size Status\r
-#define AT91C_MC_ABTSZ_BYTE ((unsigned int) 0x0 << 8) // (MC) Byte\r
-#define AT91C_MC_ABTSZ_HWORD ((unsigned int) 0x1 << 8) // (MC) Half-word\r
-#define AT91C_MC_ABTSZ_WORD ((unsigned int) 0x2 << 8) // (MC) Word\r
-#define AT91C_MC_ABTTYP ((unsigned int) 0x3 << 10) // (MC) Abort Type Status\r
-#define AT91C_MC_ABTTYP_DATAR ((unsigned int) 0x0 << 10) // (MC) Data Read\r
-#define AT91C_MC_ABTTYP_DATAW ((unsigned int) 0x1 << 10) // (MC) Data Write\r
-#define AT91C_MC_ABTTYP_FETCH ((unsigned int) 0x2 << 10) // (MC) Code Fetch\r
-#define AT91C_MC_MST0 ((unsigned int) 0x1 << 16) // (MC) Master 0 Abort Source\r
-#define AT91C_MC_MST1 ((unsigned int) 0x1 << 17) // (MC) Master 1 Abort Source\r
-#define AT91C_MC_SVMST0 ((unsigned int) 0x1 << 24) // (MC) Saved Master 0 Abort Source\r
-#define AT91C_MC_SVMST1 ((unsigned int) 0x1 << 25) // (MC) Saved Master 1 Abort Source\r
-// -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- \r
-#define AT91C_MC_FRDY ((unsigned int) 0x1 << 0) // (MC) Flash Ready\r
-#define AT91C_MC_LOCKE ((unsigned int) 0x1 << 2) // (MC) Lock Error\r
-#define AT91C_MC_PROGE ((unsigned int) 0x1 << 3) // (MC) Programming Error\r
-#define AT91C_MC_NEBP ((unsigned int) 0x1 << 7) // (MC) No Erase Before Programming\r
-#define AT91C_MC_FWS ((unsigned int) 0x3 << 8) // (MC) Flash Wait State\r
-#define AT91C_MC_FWS_0FWS ((unsigned int) 0x0 << 8) // (MC) 1 cycle for Read, 2 for Write operations\r
-#define AT91C_MC_FWS_1FWS ((unsigned int) 0x1 << 8) // (MC) 2 cycles for Read, 3 for Write operations\r
-#define AT91C_MC_FWS_2FWS ((unsigned int) 0x2 << 8) // (MC) 3 cycles for Read, 4 for Write operations\r
-#define AT91C_MC_FWS_3FWS ((unsigned int) 0x3 << 8) // (MC) 4 cycles for Read, 4 for Write operations\r
-#define AT91C_MC_FMCN ((unsigned int) 0xFF << 16) // (MC) Flash Microsecond Cycle Number\r
-// -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- \r
-#define AT91C_MC_FCMD ((unsigned int) 0xF << 0) // (MC) Flash Command\r
-#define AT91C_MC_FCMD_START_PROG ((unsigned int) 0x1) // (MC) Starts the programming of th epage specified by PAGEN.\r
-#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.\r
-#define AT91C_MC_FCMD_PROG_AND_LOCK ((unsigned int) 0x3) // (MC) The lock sequence automatically happens after the programming sequence is completed.\r
-#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.\r
-#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.\r
-#define AT91C_MC_FCMD_SET_GP_NVM ((unsigned int) 0xB) // (MC) Set General Purpose NVM bits.\r
-#define AT91C_MC_FCMD_CLR_GP_NVM ((unsigned int) 0xD) // (MC) Clear General Purpose NVM bits.\r
-#define AT91C_MC_FCMD_SET_SECURITY ((unsigned int) 0xF) // (MC) Set Security Bit.\r
-#define AT91C_MC_PAGEN ((unsigned int) 0x3FF << 8) // (MC) Page Number\r
-#define AT91C_MC_KEY ((unsigned int) 0xFF << 24) // (MC) Writing Protect Key\r
-// -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- \r
-#define AT91C_MC_SECURITY ((unsigned int) 0x1 << 4) // (MC) Security Bit Status\r
-#define AT91C_MC_GPNVM0 ((unsigned int) 0x1 << 8) // (MC) Sector 0 Lock Status\r
-#define AT91C_MC_GPNVM1 ((unsigned int) 0x1 << 9) // (MC) Sector 1 Lock Status\r
-#define AT91C_MC_GPNVM2 ((unsigned int) 0x1 << 10) // (MC) Sector 2 Lock Status\r
-#define AT91C_MC_GPNVM3 ((unsigned int) 0x1 << 11) // (MC) Sector 3 Lock Status\r
-#define AT91C_MC_GPNVM4 ((unsigned int) 0x1 << 12) // (MC) Sector 4 Lock Status\r
-#define AT91C_MC_GPNVM5 ((unsigned int) 0x1 << 13) // (MC) Sector 5 Lock Status\r
-#define AT91C_MC_GPNVM6 ((unsigned int) 0x1 << 14) // (MC) Sector 6 Lock Status\r
-#define AT91C_MC_GPNVM7 ((unsigned int) 0x1 << 15) // (MC) Sector 7 Lock Status\r
-#define AT91C_MC_LOCKS0 ((unsigned int) 0x1 << 16) // (MC) Sector 0 Lock Status\r
-#define AT91C_MC_LOCKS1 ((unsigned int) 0x1 << 17) // (MC) Sector 1 Lock Status\r
-#define AT91C_MC_LOCKS2 ((unsigned int) 0x1 << 18) // (MC) Sector 2 Lock Status\r
-#define AT91C_MC_LOCKS3 ((unsigned int) 0x1 << 19) // (MC) Sector 3 Lock Status\r
-#define AT91C_MC_LOCKS4 ((unsigned int) 0x1 << 20) // (MC) Sector 4 Lock Status\r
-#define AT91C_MC_LOCKS5 ((unsigned int) 0x1 << 21) // (MC) Sector 5 Lock Status\r
-#define AT91C_MC_LOCKS6 ((unsigned int) 0x1 << 22) // (MC) Sector 6 Lock Status\r
-#define AT91C_MC_LOCKS7 ((unsigned int) 0x1 << 23) // (MC) Sector 7 Lock Status\r
-#define AT91C_MC_LOCKS8 ((unsigned int) 0x1 << 24) // (MC) Sector 8 Lock Status\r
-#define AT91C_MC_LOCKS9 ((unsigned int) 0x1 << 25) // (MC) Sector 9 Lock Status\r
-#define AT91C_MC_LOCKS10 ((unsigned int) 0x1 << 26) // (MC) Sector 10 Lock Status\r
-#define AT91C_MC_LOCKS11 ((unsigned int) 0x1 << 27) // (MC) Sector 11 Lock Status\r
-#define AT91C_MC_LOCKS12 ((unsigned int) 0x1 << 28) // (MC) Sector 12 Lock Status\r
-#define AT91C_MC_LOCKS13 ((unsigned int) 0x1 << 29) // (MC) Sector 13 Lock Status\r
-#define AT91C_MC_LOCKS14 ((unsigned int) 0x1 << 30) // (MC) Sector 14 Lock Status\r
-#define AT91C_MC_LOCKS15 ((unsigned int) 0x1 << 31) // (MC) Sector 15 Lock Status\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Serial Parallel Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_SPI {\r
- AT91_REG SPI_CR; // Control Register\r
- AT91_REG SPI_MR; // Mode Register\r
- AT91_REG SPI_RDR; // Receive Data Register\r
- AT91_REG SPI_TDR; // Transmit Data Register\r
- AT91_REG SPI_SR; // Status Register\r
- AT91_REG SPI_IER; // Interrupt Enable Register\r
- AT91_REG SPI_IDR; // Interrupt Disable Register\r
- AT91_REG SPI_IMR; // Interrupt Mask Register\r
- AT91_REG Reserved0[4]; // \r
- AT91_REG SPI_CSR[4]; // Chip Select Register\r
- AT91_REG Reserved1[48]; // \r
- AT91_REG SPI_RPR; // Receive Pointer Register\r
- AT91_REG SPI_RCR; // Receive Counter Register\r
- AT91_REG SPI_TPR; // Transmit Pointer Register\r
- AT91_REG SPI_TCR; // Transmit Counter Register\r
- AT91_REG SPI_RNPR; // Receive Next Pointer Register\r
- AT91_REG SPI_RNCR; // Receive Next Counter Register\r
- AT91_REG SPI_TNPR; // Transmit Next Pointer Register\r
- AT91_REG SPI_TNCR; // Transmit Next Counter Register\r
- AT91_REG SPI_PTCR; // PDC Transfer Control Register\r
- AT91_REG SPI_PTSR; // PDC Transfer Status Register\r
-} AT91S_SPI, *AT91PS_SPI;\r
-\r
-// -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- \r
-#define AT91C_SPI_SPIEN ((unsigned int) 0x1 << 0) // (SPI) SPI Enable\r
-#define AT91C_SPI_SPIDIS ((unsigned int) 0x1 << 1) // (SPI) SPI Disable\r
-#define AT91C_SPI_SWRST ((unsigned int) 0x1 << 7) // (SPI) SPI Software reset\r
-#define AT91C_SPI_LASTXFER ((unsigned int) 0x1 << 24) // (SPI) SPI Last Transfer\r
-// -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- \r
-#define AT91C_SPI_MSTR ((unsigned int) 0x1 << 0) // (SPI) Master/Slave Mode\r
-#define AT91C_SPI_PS ((unsigned int) 0x1 << 1) // (SPI) Peripheral Select\r
-#define AT91C_SPI_PS_FIXED ((unsigned int) 0x0 << 1) // (SPI) Fixed Peripheral Select\r
-#define AT91C_SPI_PS_VARIABLE ((unsigned int) 0x1 << 1) // (SPI) Variable Peripheral Select\r
-#define AT91C_SPI_PCSDEC ((unsigned int) 0x1 << 2) // (SPI) Chip Select Decode\r
-#define AT91C_SPI_FDIV ((unsigned int) 0x1 << 3) // (SPI) Clock Selection\r
-#define AT91C_SPI_MODFDIS ((unsigned int) 0x1 << 4) // (SPI) Mode Fault Detection\r
-#define AT91C_SPI_LLB ((unsigned int) 0x1 << 7) // (SPI) Clock Selection\r
-#define AT91C_SPI_PCS ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select\r
-#define AT91C_SPI_DLYBCS ((unsigned int) 0xFF << 24) // (SPI) Delay Between Chip Selects\r
-// -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- \r
-#define AT91C_SPI_RD ((unsigned int) 0xFFFF << 0) // (SPI) Receive Data\r
-#define AT91C_SPI_RPCS ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status\r
-// -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- \r
-#define AT91C_SPI_TD ((unsigned int) 0xFFFF << 0) // (SPI) Transmit Data\r
-#define AT91C_SPI_TPCS ((unsigned int) 0xF << 16) // (SPI) Peripheral Chip Select Status\r
-// -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- \r
-#define AT91C_SPI_RDRF ((unsigned int) 0x1 << 0) // (SPI) Receive Data Register Full\r
-#define AT91C_SPI_TDRE ((unsigned int) 0x1 << 1) // (SPI) Transmit Data Register Empty\r
-#define AT91C_SPI_MODF ((unsigned int) 0x1 << 2) // (SPI) Mode Fault Error\r
-#define AT91C_SPI_OVRES ((unsigned int) 0x1 << 3) // (SPI) Overrun Error Status\r
-#define AT91C_SPI_ENDRX ((unsigned int) 0x1 << 4) // (SPI) End of Receiver Transfer\r
-#define AT91C_SPI_ENDTX ((unsigned int) 0x1 << 5) // (SPI) End of Receiver Transfer\r
-#define AT91C_SPI_RXBUFF ((unsigned int) 0x1 << 6) // (SPI) RXBUFF Interrupt\r
-#define AT91C_SPI_TXBUFE ((unsigned int) 0x1 << 7) // (SPI) TXBUFE Interrupt\r
-#define AT91C_SPI_NSSR ((unsigned int) 0x1 << 8) // (SPI) NSSR Interrupt\r
-#define AT91C_SPI_TXEMPTY ((unsigned int) 0x1 << 9) // (SPI) TXEMPTY Interrupt\r
-#define AT91C_SPI_SPIENS ((unsigned int) 0x1 << 16) // (SPI) Enable Status\r
-// -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- \r
-// -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- \r
-// -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- \r
-// -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- \r
-#define AT91C_SPI_CPOL ((unsigned int) 0x1 << 0) // (SPI) Clock Polarity\r
-#define AT91C_SPI_NCPHA ((unsigned int) 0x1 << 1) // (SPI) Clock Phase\r
-#define AT91C_SPI_CSAAT ((unsigned int) 0x1 << 3) // (SPI) Chip Select Active After Transfer\r
-#define AT91C_SPI_BITS ((unsigned int) 0xF << 4) // (SPI) Bits Per Transfer\r
-#define AT91C_SPI_BITS_8 ((unsigned int) 0x0 << 4) // (SPI) 8 Bits Per transfer\r
-#define AT91C_SPI_BITS_9 ((unsigned int) 0x1 << 4) // (SPI) 9 Bits Per transfer\r
-#define AT91C_SPI_BITS_10 ((unsigned int) 0x2 << 4) // (SPI) 10 Bits Per transfer\r
-#define AT91C_SPI_BITS_11 ((unsigned int) 0x3 << 4) // (SPI) 11 Bits Per transfer\r
-#define AT91C_SPI_BITS_12 ((unsigned int) 0x4 << 4) // (SPI) 12 Bits Per transfer\r
-#define AT91C_SPI_BITS_13 ((unsigned int) 0x5 << 4) // (SPI) 13 Bits Per transfer\r
-#define AT91C_SPI_BITS_14 ((unsigned int) 0x6 << 4) // (SPI) 14 Bits Per transfer\r
-#define AT91C_SPI_BITS_15 ((unsigned int) 0x7 << 4) // (SPI) 15 Bits Per transfer\r
-#define AT91C_SPI_BITS_16 ((unsigned int) 0x8 << 4) // (SPI) 16 Bits Per transfer\r
-#define AT91C_SPI_SCBR ((unsigned int) 0xFF << 8) // (SPI) Serial Clock Baud Rate\r
-#define AT91C_SPI_DLYBS ((unsigned int) 0xFF << 16) // (SPI) Delay Before SPCK\r
-#define AT91C_SPI_DLYBCT ((unsigned int) 0xFF << 24) // (SPI) Delay Between Consecutive Transfers\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Usart\r
-// *****************************************************************************\r
-typedef struct _AT91S_USART {\r
- AT91_REG US_CR; // Control Register\r
- AT91_REG US_MR; // Mode Register\r
- AT91_REG US_IER; // Interrupt Enable Register\r
- AT91_REG US_IDR; // Interrupt Disable Register\r
- AT91_REG US_IMR; // Interrupt Mask Register\r
- AT91_REG US_CSR; // Channel Status Register\r
- AT91_REG US_RHR; // Receiver Holding Register\r
- AT91_REG US_THR; // Transmitter Holding Register\r
- AT91_REG US_BRGR; // Baud Rate Generator Register\r
- AT91_REG US_RTOR; // Receiver Time-out Register\r
- AT91_REG US_TTGR; // Transmitter Time-guard Register\r
- AT91_REG Reserved0[5]; // \r
- AT91_REG US_FIDI; // FI_DI_Ratio Register\r
- AT91_REG US_NER; // Nb Errors Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG US_IF; // IRDA_FILTER Register\r
- AT91_REG Reserved2[44]; // \r
- AT91_REG US_RPR; // Receive Pointer Register\r
- AT91_REG US_RCR; // Receive Counter Register\r
- AT91_REG US_TPR; // Transmit Pointer Register\r
- AT91_REG US_TCR; // Transmit Counter Register\r
- AT91_REG US_RNPR; // Receive Next Pointer Register\r
- AT91_REG US_RNCR; // Receive Next Counter Register\r
- AT91_REG US_TNPR; // Transmit Next Pointer Register\r
- AT91_REG US_TNCR; // Transmit Next Counter Register\r
- AT91_REG US_PTCR; // PDC Transfer Control Register\r
- AT91_REG US_PTSR; // PDC Transfer Status Register\r
-} AT91S_USART, *AT91PS_USART;\r
-\r
-// -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- \r
-#define AT91C_US_STTBRK ((unsigned int) 0x1 << 9) // (USART) Start Break\r
-#define AT91C_US_STPBRK ((unsigned int) 0x1 << 10) // (USART) Stop Break\r
-#define AT91C_US_STTTO ((unsigned int) 0x1 << 11) // (USART) Start Time-out\r
-#define AT91C_US_SENDA ((unsigned int) 0x1 << 12) // (USART) Send Address\r
-#define AT91C_US_RSTIT ((unsigned int) 0x1 << 13) // (USART) Reset Iterations\r
-#define AT91C_US_RSTNACK ((unsigned int) 0x1 << 14) // (USART) Reset Non Acknowledge\r
-#define AT91C_US_RETTO ((unsigned int) 0x1 << 15) // (USART) Rearm Time-out\r
-#define AT91C_US_DTREN ((unsigned int) 0x1 << 16) // (USART) Data Terminal ready Enable\r
-#define AT91C_US_DTRDIS ((unsigned int) 0x1 << 17) // (USART) Data Terminal ready Disable\r
-#define AT91C_US_RTSEN ((unsigned int) 0x1 << 18) // (USART) Request to Send enable\r
-#define AT91C_US_RTSDIS ((unsigned int) 0x1 << 19) // (USART) Request to Send Disable\r
-// -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- \r
-#define AT91C_US_USMODE ((unsigned int) 0xF << 0) // (USART) Usart mode\r
-#define AT91C_US_USMODE_NORMAL ((unsigned int) 0x0) // (USART) Normal\r
-#define AT91C_US_USMODE_RS485 ((unsigned int) 0x1) // (USART) RS485\r
-#define AT91C_US_USMODE_HWHSH ((unsigned int) 0x2) // (USART) Hardware Handshaking\r
-#define AT91C_US_USMODE_MODEM ((unsigned int) 0x3) // (USART) Modem\r
-#define AT91C_US_USMODE_ISO7816_0 ((unsigned int) 0x4) // (USART) ISO7816 protocol: T = 0\r
-#define AT91C_US_USMODE_ISO7816_1 ((unsigned int) 0x6) // (USART) ISO7816 protocol: T = 1\r
-#define AT91C_US_USMODE_IRDA ((unsigned int) 0x8) // (USART) IrDA\r
-#define AT91C_US_USMODE_SWHSH ((unsigned int) 0xC) // (USART) Software Handshaking\r
-#define AT91C_US_CLKS ((unsigned int) 0x3 << 4) // (USART) Clock Selection (Baud Rate generator Input Clock\r
-#define AT91C_US_CLKS_CLOCK ((unsigned int) 0x0 << 4) // (USART) Clock\r
-#define AT91C_US_CLKS_FDIV1 ((unsigned int) 0x1 << 4) // (USART) fdiv1\r
-#define AT91C_US_CLKS_SLOW ((unsigned int) 0x2 << 4) // (USART) slow_clock (ARM)\r
-#define AT91C_US_CLKS_EXT ((unsigned int) 0x3 << 4) // (USART) External (SCK)\r
-#define AT91C_US_CHRL ((unsigned int) 0x3 << 6) // (USART) Clock Selection (Baud Rate generator Input Clock\r
-#define AT91C_US_CHRL_5_BITS ((unsigned int) 0x0 << 6) // (USART) Character Length: 5 bits\r
-#define AT91C_US_CHRL_6_BITS ((unsigned int) 0x1 << 6) // (USART) Character Length: 6 bits\r
-#define AT91C_US_CHRL_7_BITS ((unsigned int) 0x2 << 6) // (USART) Character Length: 7 bits\r
-#define AT91C_US_CHRL_8_BITS ((unsigned int) 0x3 << 6) // (USART) Character Length: 8 bits\r
-#define AT91C_US_SYNC ((unsigned int) 0x1 << 8) // (USART) Synchronous Mode Select\r
-#define AT91C_US_NBSTOP ((unsigned int) 0x3 << 12) // (USART) Number of Stop bits\r
-#define AT91C_US_NBSTOP_1_BIT ((unsigned int) 0x0 << 12) // (USART) 1 stop bit\r
-#define AT91C_US_NBSTOP_15_BIT ((unsigned int) 0x1 << 12) // (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits\r
-#define AT91C_US_NBSTOP_2_BIT ((unsigned int) 0x2 << 12) // (USART) 2 stop bits\r
-#define AT91C_US_MSBF ((unsigned int) 0x1 << 16) // (USART) Bit Order\r
-#define AT91C_US_MODE9 ((unsigned int) 0x1 << 17) // (USART) 9-bit Character length\r
-#define AT91C_US_CKLO ((unsigned int) 0x1 << 18) // (USART) Clock Output Select\r
-#define AT91C_US_OVER ((unsigned int) 0x1 << 19) // (USART) Over Sampling Mode\r
-#define AT91C_US_INACK ((unsigned int) 0x1 << 20) // (USART) Inhibit Non Acknowledge\r
-#define AT91C_US_DSNACK ((unsigned int) 0x1 << 21) // (USART) Disable Successive NACK\r
-#define AT91C_US_MAX_ITER ((unsigned int) 0x1 << 24) // (USART) Number of Repetitions\r
-#define AT91C_US_FILTER ((unsigned int) 0x1 << 28) // (USART) Receive Line Filter\r
-// -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-#define AT91C_US_RXBRK ((unsigned int) 0x1 << 2) // (USART) Break Received/End of Break\r
-#define AT91C_US_TIMEOUT ((unsigned int) 0x1 << 8) // (USART) Receiver Time-out\r
-#define AT91C_US_ITERATION ((unsigned int) 0x1 << 10) // (USART) Max number of Repetitions Reached\r
-#define AT91C_US_NACK ((unsigned int) 0x1 << 13) // (USART) Non Acknowledge\r
-#define AT91C_US_RIIC ((unsigned int) 0x1 << 16) // (USART) Ring INdicator Input Change Flag\r
-#define AT91C_US_DSRIC ((unsigned int) 0x1 << 17) // (USART) Data Set Ready Input Change Flag\r
-#define AT91C_US_DCDIC ((unsigned int) 0x1 << 18) // (USART) Data Carrier Flag\r
-#define AT91C_US_CTSIC ((unsigned int) 0x1 << 19) // (USART) Clear To Send Input Change Flag\r
-// -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- \r
-#define AT91C_US_RI ((unsigned int) 0x1 << 20) // (USART) Image of RI Input\r
-#define AT91C_US_DSR ((unsigned int) 0x1 << 21) // (USART) Image of DSR Input\r
-#define AT91C_US_DCD ((unsigned int) 0x1 << 22) // (USART) Image of DCD Input\r
-#define AT91C_US_CTS ((unsigned int) 0x1 << 23) // (USART) Image of CTS Input\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Synchronous Serial Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_SSC {\r
- AT91_REG SSC_CR; // Control Register\r
- AT91_REG SSC_CMR; // Clock Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG SSC_RCMR; // Receive Clock ModeRegister\r
- AT91_REG SSC_RFMR; // Receive Frame Mode Register\r
- AT91_REG SSC_TCMR; // Transmit Clock Mode Register\r
- AT91_REG SSC_TFMR; // Transmit Frame Mode Register\r
- AT91_REG SSC_RHR; // Receive Holding Register\r
- AT91_REG SSC_THR; // Transmit Holding Register\r
- AT91_REG Reserved1[2]; // \r
- AT91_REG SSC_RSHR; // Receive Sync Holding Register\r
- AT91_REG SSC_TSHR; // Transmit Sync Holding Register\r
- AT91_REG Reserved2[2]; // \r
- AT91_REG SSC_SR; // Status Register\r
- AT91_REG SSC_IER; // Interrupt Enable Register\r
- AT91_REG SSC_IDR; // Interrupt Disable Register\r
- AT91_REG SSC_IMR; // Interrupt Mask Register\r
- AT91_REG Reserved3[44]; // \r
- AT91_REG SSC_RPR; // Receive Pointer Register\r
- AT91_REG SSC_RCR; // Receive Counter Register\r
- AT91_REG SSC_TPR; // Transmit Pointer Register\r
- AT91_REG SSC_TCR; // Transmit Counter Register\r
- AT91_REG SSC_RNPR; // Receive Next Pointer Register\r
- AT91_REG SSC_RNCR; // Receive Next Counter Register\r
- AT91_REG SSC_TNPR; // Transmit Next Pointer Register\r
- AT91_REG SSC_TNCR; // Transmit Next Counter Register\r
- AT91_REG SSC_PTCR; // PDC Transfer Control Register\r
- AT91_REG SSC_PTSR; // PDC Transfer Status Register\r
-} AT91S_SSC, *AT91PS_SSC;\r
-\r
-// -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- \r
-#define AT91C_SSC_RXEN ((unsigned int) 0x1 << 0) // (SSC) Receive Enable\r
-#define AT91C_SSC_RXDIS ((unsigned int) 0x1 << 1) // (SSC) Receive Disable\r
-#define AT91C_SSC_TXEN ((unsigned int) 0x1 << 8) // (SSC) Transmit Enable\r
-#define AT91C_SSC_TXDIS ((unsigned int) 0x1 << 9) // (SSC) Transmit Disable\r
-#define AT91C_SSC_SWRST ((unsigned int) 0x1 << 15) // (SSC) Software Reset\r
-// -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- \r
-#define AT91C_SSC_CKS ((unsigned int) 0x3 << 0) // (SSC) Receive/Transmit Clock Selection\r
-#define AT91C_SSC_CKS_DIV ((unsigned int) 0x0) // (SSC) Divided Clock\r
-#define AT91C_SSC_CKS_TK ((unsigned int) 0x1) // (SSC) TK Clock signal\r
-#define AT91C_SSC_CKS_RK ((unsigned int) 0x2) // (SSC) RK pin\r
-#define AT91C_SSC_CKO ((unsigned int) 0x7 << 2) // (SSC) Receive/Transmit Clock Output Mode Selection\r
-#define AT91C_SSC_CKO_NONE ((unsigned int) 0x0 << 2) // (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only\r
-#define AT91C_SSC_CKO_CONTINOUS ((unsigned int) 0x1 << 2) // (SSC) Continuous Receive/Transmit Clock RK pin: Output\r
-#define AT91C_SSC_CKO_DATA_TX ((unsigned int) 0x2 << 2) // (SSC) Receive/Transmit Clock only during data transfers RK pin: Output\r
-#define AT91C_SSC_CKI ((unsigned int) 0x1 << 5) // (SSC) Receive/Transmit Clock Inversion\r
-#define AT91C_SSC_START ((unsigned int) 0xF << 8) // (SSC) Receive/Transmit Start Selection\r
-#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.\r
-#define AT91C_SSC_START_TX ((unsigned int) 0x1 << 8) // (SSC) Transmit/Receive start\r
-#define AT91C_SSC_START_LOW_RF ((unsigned int) 0x2 << 8) // (SSC) Detection of a low level on RF input\r
-#define AT91C_SSC_START_HIGH_RF ((unsigned int) 0x3 << 8) // (SSC) Detection of a high level on RF input\r
-#define AT91C_SSC_START_FALL_RF ((unsigned int) 0x4 << 8) // (SSC) Detection of a falling edge on RF input\r
-#define AT91C_SSC_START_RISE_RF ((unsigned int) 0x5 << 8) // (SSC) Detection of a rising edge on RF input\r
-#define AT91C_SSC_START_LEVEL_RF ((unsigned int) 0x6 << 8) // (SSC) Detection of any level change on RF input\r
-#define AT91C_SSC_START_EDGE_RF ((unsigned int) 0x7 << 8) // (SSC) Detection of any edge on RF input\r
-#define AT91C_SSC_START_0 ((unsigned int) 0x8 << 8) // (SSC) Compare 0\r
-#define AT91C_SSC_STTDLY ((unsigned int) 0xFF << 16) // (SSC) Receive/Transmit Start Delay\r
-#define AT91C_SSC_PERIOD ((unsigned int) 0xFF << 24) // (SSC) Receive/Transmit Period Divider Selection\r
-// -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- \r
-#define AT91C_SSC_DATLEN ((unsigned int) 0x1F << 0) // (SSC) Data Length\r
-#define AT91C_SSC_LOOP ((unsigned int) 0x1 << 5) // (SSC) Loop Mode\r
-#define AT91C_SSC_MSBF ((unsigned int) 0x1 << 7) // (SSC) Most Significant Bit First\r
-#define AT91C_SSC_DATNB ((unsigned int) 0xF << 8) // (SSC) Data Number per Frame\r
-#define AT91C_SSC_FSLEN ((unsigned int) 0xF << 16) // (SSC) Receive/Transmit Frame Sync length\r
-#define AT91C_SSC_FSOS ((unsigned int) 0x7 << 20) // (SSC) Receive/Transmit Frame Sync Output Selection\r
-#define AT91C_SSC_FSOS_NONE ((unsigned int) 0x0 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only\r
-#define AT91C_SSC_FSOS_NEGATIVE ((unsigned int) 0x1 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse\r
-#define AT91C_SSC_FSOS_POSITIVE ((unsigned int) 0x2 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse\r
-#define AT91C_SSC_FSOS_LOW ((unsigned int) 0x3 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer\r
-#define AT91C_SSC_FSOS_HIGH ((unsigned int) 0x4 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer\r
-#define AT91C_SSC_FSOS_TOGGLE ((unsigned int) 0x5 << 20) // (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer\r
-#define AT91C_SSC_FSEDGE ((unsigned int) 0x1 << 24) // (SSC) Frame Sync Edge Detection\r
-// -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- \r
-// -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- \r
-#define AT91C_SSC_DATDEF ((unsigned int) 0x1 << 5) // (SSC) Data Default Value\r
-#define AT91C_SSC_FSDEN ((unsigned int) 0x1 << 23) // (SSC) Frame Sync Data Enable\r
-// -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- \r
-#define AT91C_SSC_TXRDY ((unsigned int) 0x1 << 0) // (SSC) Transmit Ready\r
-#define AT91C_SSC_TXEMPTY ((unsigned int) 0x1 << 1) // (SSC) Transmit Empty\r
-#define AT91C_SSC_ENDTX ((unsigned int) 0x1 << 2) // (SSC) End Of Transmission\r
-#define AT91C_SSC_TXBUFE ((unsigned int) 0x1 << 3) // (SSC) Transmit Buffer Empty\r
-#define AT91C_SSC_RXRDY ((unsigned int) 0x1 << 4) // (SSC) Receive Ready\r
-#define AT91C_SSC_OVRUN ((unsigned int) 0x1 << 5) // (SSC) Receive Overrun\r
-#define AT91C_SSC_ENDRX ((unsigned int) 0x1 << 6) // (SSC) End of Reception\r
-#define AT91C_SSC_RXBUFF ((unsigned int) 0x1 << 7) // (SSC) Receive Buffer Full\r
-#define AT91C_SSC_TXSYN ((unsigned int) 0x1 << 10) // (SSC) Transmit Sync\r
-#define AT91C_SSC_RXSYN ((unsigned int) 0x1 << 11) // (SSC) Receive Sync\r
-#define AT91C_SSC_TXENA ((unsigned int) 0x1 << 16) // (SSC) Transmit Enable\r
-#define AT91C_SSC_RXENA ((unsigned int) 0x1 << 17) // (SSC) Receive Enable\r
-// -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- \r
-// -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- \r
-// -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Two-wire Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_TWI {\r
- AT91_REG TWI_CR; // Control Register\r
- AT91_REG TWI_MMR; // Master Mode Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG TWI_IADR; // Internal Address Register\r
- AT91_REG TWI_CWGR; // Clock Waveform Generator Register\r
- AT91_REG Reserved1[3]; // \r
- AT91_REG TWI_SR; // Status Register\r
- AT91_REG TWI_IER; // Interrupt Enable Register\r
- AT91_REG TWI_IDR; // Interrupt Disable Register\r
- AT91_REG TWI_IMR; // Interrupt Mask Register\r
- AT91_REG TWI_RHR; // Receive Holding Register\r
- AT91_REG TWI_THR; // Transmit Holding Register\r
-} AT91S_TWI, *AT91PS_TWI;\r
-\r
-// -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- \r
-#define AT91C_TWI_START ((unsigned int) 0x1 << 0) // (TWI) Send a START Condition\r
-#define AT91C_TWI_STOP ((unsigned int) 0x1 << 1) // (TWI) Send a STOP Condition\r
-#define AT91C_TWI_MSEN ((unsigned int) 0x1 << 2) // (TWI) TWI Master Transfer Enabled\r
-#define AT91C_TWI_MSDIS ((unsigned int) 0x1 << 3) // (TWI) TWI Master Transfer Disabled\r
-#define AT91C_TWI_SWRST ((unsigned int) 0x1 << 7) // (TWI) Software Reset\r
-// -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- \r
-#define AT91C_TWI_IADRSZ ((unsigned int) 0x3 << 8) // (TWI) Internal Device Address Size\r
-#define AT91C_TWI_IADRSZ_NO ((unsigned int) 0x0 << 8) // (TWI) No internal device address\r
-#define AT91C_TWI_IADRSZ_1_BYTE ((unsigned int) 0x1 << 8) // (TWI) One-byte internal device address\r
-#define AT91C_TWI_IADRSZ_2_BYTE ((unsigned int) 0x2 << 8) // (TWI) Two-byte internal device address\r
-#define AT91C_TWI_IADRSZ_3_BYTE ((unsigned int) 0x3 << 8) // (TWI) Three-byte internal device address\r
-#define AT91C_TWI_MREAD ((unsigned int) 0x1 << 12) // (TWI) Master Read Direction\r
-#define AT91C_TWI_DADR ((unsigned int) 0x7F << 16) // (TWI) Device Address\r
-// -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- \r
-#define AT91C_TWI_CLDIV ((unsigned int) 0xFF << 0) // (TWI) Clock Low Divider\r
-#define AT91C_TWI_CHDIV ((unsigned int) 0xFF << 8) // (TWI) Clock High Divider\r
-#define AT91C_TWI_CKDIV ((unsigned int) 0x7 << 16) // (TWI) Clock Divider\r
-// -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- \r
-#define AT91C_TWI_TXCOMP ((unsigned int) 0x1 << 0) // (TWI) Transmission Completed\r
-#define AT91C_TWI_RXRDY ((unsigned int) 0x1 << 1) // (TWI) Receive holding register ReaDY\r
-#define AT91C_TWI_TXRDY ((unsigned int) 0x1 << 2) // (TWI) Transmit holding register ReaDY\r
-#define AT91C_TWI_OVRE ((unsigned int) 0x1 << 6) // (TWI) Overrun Error\r
-#define AT91C_TWI_UNRE ((unsigned int) 0x1 << 7) // (TWI) Underrun Error\r
-#define AT91C_TWI_NACK ((unsigned int) 0x1 << 8) // (TWI) Not Acknowledged\r
-// -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- \r
-// -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- \r
-// -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR PWMC Channel Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_PWMC_CH {\r
- AT91_REG PWMC_CMR; // Channel Mode Register\r
- AT91_REG PWMC_CDTYR; // Channel Duty Cycle Register\r
- AT91_REG PWMC_CPRDR; // Channel Period Register\r
- AT91_REG PWMC_CCNTR; // Channel Counter Register\r
- AT91_REG PWMC_CUPDR; // Channel Update Register\r
- AT91_REG PWMC_Reserved[3]; // Reserved\r
-} AT91S_PWMC_CH, *AT91PS_PWMC_CH;\r
-\r
-// -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- \r
-#define AT91C_PWMC_CPRE ((unsigned int) 0xF << 0) // (PWMC_CH) Channel Pre-scaler : PWMC_CLKx\r
-#define AT91C_PWMC_CPRE_MCK ((unsigned int) 0x0) // (PWMC_CH) \r
-#define AT91C_PWMC_CPRE_MCKA ((unsigned int) 0xB) // (PWMC_CH) \r
-#define AT91C_PWMC_CPRE_MCKB ((unsigned int) 0xC) // (PWMC_CH) \r
-#define AT91C_PWMC_CALG ((unsigned int) 0x1 << 8) // (PWMC_CH) Channel Alignment\r
-#define AT91C_PWMC_CPOL ((unsigned int) 0x1 << 9) // (PWMC_CH) Channel Polarity\r
-#define AT91C_PWMC_CPD ((unsigned int) 0x1 << 10) // (PWMC_CH) Channel Update Period\r
-// -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- \r
-#define AT91C_PWMC_CDTY ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Duty Cycle\r
-// -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- \r
-#define AT91C_PWMC_CPRD ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Period\r
-// -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- \r
-#define AT91C_PWMC_CCNT ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Counter\r
-// -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- \r
-#define AT91C_PWMC_CUPD ((unsigned int) 0x0 << 0) // (PWMC_CH) Channel Update\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Pulse Width Modulation Controller Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_PWMC {\r
- AT91_REG PWMC_MR; // PWMC Mode Register\r
- AT91_REG PWMC_ENA; // PWMC Enable Register\r
- AT91_REG PWMC_DIS; // PWMC Disable Register\r
- AT91_REG PWMC_SR; // PWMC Status Register\r
- AT91_REG PWMC_IER; // PWMC Interrupt Enable Register\r
- AT91_REG PWMC_IDR; // PWMC Interrupt Disable Register\r
- AT91_REG PWMC_IMR; // PWMC Interrupt Mask Register\r
- AT91_REG PWMC_ISR; // PWMC Interrupt Status Register\r
- AT91_REG Reserved0[55]; // \r
- AT91_REG PWMC_VR; // PWMC Version Register\r
- AT91_REG Reserved1[64]; // \r
- AT91S_PWMC_CH PWMC_CH[4]; // PWMC Channel\r
-} AT91S_PWMC, *AT91PS_PWMC;\r
-\r
-// -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- \r
-#define AT91C_PWMC_DIVA ((unsigned int) 0xFF << 0) // (PWMC) CLKA divide factor.\r
-#define AT91C_PWMC_PREA ((unsigned int) 0xF << 8) // (PWMC) Divider Input Clock Prescaler A\r
-#define AT91C_PWMC_PREA_MCK ((unsigned int) 0x0 << 8) // (PWMC) \r
-#define AT91C_PWMC_DIVB ((unsigned int) 0xFF << 16) // (PWMC) CLKB divide factor.\r
-#define AT91C_PWMC_PREB ((unsigned int) 0xF << 24) // (PWMC) Divider Input Clock Prescaler B\r
-#define AT91C_PWMC_PREB_MCK ((unsigned int) 0x0 << 24) // (PWMC) \r
-// -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- \r
-#define AT91C_PWMC_CHID0 ((unsigned int) 0x1 << 0) // (PWMC) Channel ID 0\r
-#define AT91C_PWMC_CHID1 ((unsigned int) 0x1 << 1) // (PWMC) Channel ID 1\r
-#define AT91C_PWMC_CHID2 ((unsigned int) 0x1 << 2) // (PWMC) Channel ID 2\r
-#define AT91C_PWMC_CHID3 ((unsigned int) 0x1 << 3) // (PWMC) Channel ID 3\r
-// -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- \r
-// -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- \r
-// -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- \r
-// -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- \r
-// -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- \r
-// -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR USB Device Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_UDP {\r
- AT91_REG UDP_NUM; // Frame Number Register\r
- AT91_REG UDP_GLBSTATE; // Global State Register\r
- AT91_REG UDP_FADDR; // Function Address Register\r
- AT91_REG Reserved0[1]; // \r
- AT91_REG UDP_IER; // Interrupt Enable Register\r
- AT91_REG UDP_IDR; // Interrupt Disable Register\r
- AT91_REG UDP_IMR; // Interrupt Mask Register\r
- AT91_REG UDP_ISR; // Interrupt Status Register\r
- AT91_REG UDP_ICR; // Interrupt Clear Register\r
- AT91_REG Reserved1[1]; // \r
- AT91_REG UDP_RSTEP; // Reset Endpoint Register\r
- AT91_REG Reserved2[1]; // \r
- AT91_REG UDP_CSR[6]; // Endpoint Control and Status Register\r
- AT91_REG Reserved3[2]; // \r
- AT91_REG UDP_FDR[6]; // Endpoint FIFO Data Register\r
- AT91_REG Reserved4[3]; // \r
- AT91_REG UDP_TXVC; // Transceiver Control Register\r
-} AT91S_UDP, *AT91PS_UDP;\r
-\r
-// -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- \r
-#define AT91C_UDP_FRM_NUM ((unsigned int) 0x7FF << 0) // (UDP) Frame Number as Defined in the Packet Field Formats\r
-#define AT91C_UDP_FRM_ERR ((unsigned int) 0x1 << 16) // (UDP) Frame Error\r
-#define AT91C_UDP_FRM_OK ((unsigned int) 0x1 << 17) // (UDP) Frame OK\r
-// -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- \r
-#define AT91C_UDP_FADDEN ((unsigned int) 0x1 << 0) // (UDP) Function Address Enable\r
-#define AT91C_UDP_CONFG ((unsigned int) 0x1 << 1) // (UDP) Configured\r
-#define AT91C_UDP_ESR ((unsigned int) 0x1 << 2) // (UDP) Enable Send Resume\r
-#define AT91C_UDP_RSMINPR ((unsigned int) 0x1 << 3) // (UDP) A Resume Has Been Sent to the Host\r
-#define AT91C_UDP_RMWUPE ((unsigned int) 0x1 << 4) // (UDP) Remote Wake Up Enable\r
-// -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- \r
-#define AT91C_UDP_FADD ((unsigned int) 0xFF << 0) // (UDP) Function Address Value\r
-#define AT91C_UDP_FEN ((unsigned int) 0x1 << 8) // (UDP) Function Enable\r
-// -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- \r
-#define AT91C_UDP_EPINT0 ((unsigned int) 0x1 << 0) // (UDP) Endpoint 0 Interrupt\r
-#define AT91C_UDP_EPINT1 ((unsigned int) 0x1 << 1) // (UDP) Endpoint 0 Interrupt\r
-#define AT91C_UDP_EPINT2 ((unsigned int) 0x1 << 2) // (UDP) Endpoint 2 Interrupt\r
-#define AT91C_UDP_EPINT3 ((unsigned int) 0x1 << 3) // (UDP) Endpoint 3 Interrupt\r
-#define AT91C_UDP_EPINT4 ((unsigned int) 0x1 << 4) // (UDP) Endpoint 4 Interrupt\r
-#define AT91C_UDP_EPINT5 ((unsigned int) 0x1 << 5) // (UDP) Endpoint 5 Interrupt\r
-#define AT91C_UDP_RXSUSP ((unsigned int) 0x1 << 8) // (UDP) USB Suspend Interrupt\r
-#define AT91C_UDP_RXRSM ((unsigned int) 0x1 << 9) // (UDP) USB Resume Interrupt\r
-#define AT91C_UDP_EXTRSM ((unsigned int) 0x1 << 10) // (UDP) USB External Resume Interrupt\r
-#define AT91C_UDP_SOFINT ((unsigned int) 0x1 << 11) // (UDP) USB Start Of frame Interrupt\r
-#define AT91C_UDP_WAKEUP ((unsigned int) 0x1 << 13) // (UDP) USB Resume Interrupt\r
-// -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- \r
-// -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- \r
-// -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- \r
-#define AT91C_UDP_ENDBUSRES ((unsigned int) 0x1 << 12) // (UDP) USB End Of Bus Reset Interrupt\r
-// -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- \r
-// -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- \r
-#define AT91C_UDP_EP0 ((unsigned int) 0x1 << 0) // (UDP) Reset Endpoint 0\r
-#define AT91C_UDP_EP1 ((unsigned int) 0x1 << 1) // (UDP) Reset Endpoint 1\r
-#define AT91C_UDP_EP2 ((unsigned int) 0x1 << 2) // (UDP) Reset Endpoint 2\r
-#define AT91C_UDP_EP3 ((unsigned int) 0x1 << 3) // (UDP) Reset Endpoint 3\r
-#define AT91C_UDP_EP4 ((unsigned int) 0x1 << 4) // (UDP) Reset Endpoint 4\r
-#define AT91C_UDP_EP5 ((unsigned int) 0x1 << 5) // (UDP) Reset Endpoint 5\r
-// -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- \r
-#define AT91C_UDP_TXCOMP ((unsigned int) 0x1 << 0) // (UDP) Generates an IN packet with data previously written in the DPR\r
-#define AT91C_UDP_RX_DATA_BK0 ((unsigned int) 0x1 << 1) // (UDP) Receive Data Bank 0\r
-#define AT91C_UDP_RXSETUP ((unsigned int) 0x1 << 2) // (UDP) Sends STALL to the Host (Control endpoints)\r
-#define AT91C_UDP_ISOERROR ((unsigned int) 0x1 << 3) // (UDP) Isochronous error (Isochronous endpoints)\r
-#define AT91C_UDP_TXPKTRDY ((unsigned int) 0x1 << 4) // (UDP) Transmit Packet Ready\r
-#define AT91C_UDP_FORCESTALL ((unsigned int) 0x1 << 5) // (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).\r
-#define AT91C_UDP_RX_DATA_BK1 ((unsigned int) 0x1 << 6) // (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).\r
-#define AT91C_UDP_DIR ((unsigned int) 0x1 << 7) // (UDP) Transfer Direction\r
-#define AT91C_UDP_EPTYPE ((unsigned int) 0x7 << 8) // (UDP) Endpoint type\r
-#define AT91C_UDP_EPTYPE_CTRL ((unsigned int) 0x0 << 8) // (UDP) Control\r
-#define AT91C_UDP_EPTYPE_ISO_OUT ((unsigned int) 0x1 << 8) // (UDP) Isochronous OUT\r
-#define AT91C_UDP_EPTYPE_BULK_OUT ((unsigned int) 0x2 << 8) // (UDP) Bulk OUT\r
-#define AT91C_UDP_EPTYPE_INT_OUT ((unsigned int) 0x3 << 8) // (UDP) Interrupt OUT\r
-#define AT91C_UDP_EPTYPE_ISO_IN ((unsigned int) 0x5 << 8) // (UDP) Isochronous IN\r
-#define AT91C_UDP_EPTYPE_BULK_IN ((unsigned int) 0x6 << 8) // (UDP) Bulk IN\r
-#define AT91C_UDP_EPTYPE_INT_IN ((unsigned int) 0x7 << 8) // (UDP) Interrupt IN\r
-#define AT91C_UDP_DTGLE ((unsigned int) 0x1 << 11) // (UDP) Data Toggle\r
-#define AT91C_UDP_EPEDS ((unsigned int) 0x1 << 15) // (UDP) Endpoint Enable Disable\r
-#define AT91C_UDP_RXBYTECNT ((unsigned int) 0x7FF << 16) // (UDP) Number Of Bytes Available in the FIFO\r
-// -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- \r
-#define AT91C_UDP_TXVDIS ((unsigned int) 0x1 << 8) // (UDP) \r
-#define AT91C_UDP_PUON ((unsigned int) 0x1 << 9) // (UDP) Pull-up ON\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Timer Counter Channel Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_TC {\r
- AT91_REG TC_CCR; // Channel Control Register\r
- AT91_REG TC_CMR; // Channel Mode Register (Capture Mode / Waveform Mode)\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG TC_CV; // Counter Value\r
- AT91_REG TC_RA; // Register A\r
- AT91_REG TC_RB; // Register B\r
- AT91_REG TC_RC; // Register C\r
- AT91_REG TC_SR; // Status Register\r
- AT91_REG TC_IER; // Interrupt Enable Register\r
- AT91_REG TC_IDR; // Interrupt Disable Register\r
- AT91_REG TC_IMR; // Interrupt Mask Register\r
-} AT91S_TC, *AT91PS_TC;\r
-\r
-// -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- \r
-#define AT91C_TC_CLKEN ((unsigned int) 0x1 << 0) // (TC) Counter Clock Enable Command\r
-#define AT91C_TC_CLKDIS ((unsigned int) 0x1 << 1) // (TC) Counter Clock Disable Command\r
-#define AT91C_TC_SWTRG ((unsigned int) 0x1 << 2) // (TC) Software Trigger Command\r
-// -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- \r
-#define AT91C_TC_CLKS ((unsigned int) 0x7 << 0) // (TC) Clock Selection\r
-#define AT91C_TC_CLKS_TIMER_DIV1_CLOCK ((unsigned int) 0x0) // (TC) Clock selected: TIMER_DIV1_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV2_CLOCK ((unsigned int) 0x1) // (TC) Clock selected: TIMER_DIV2_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV3_CLOCK ((unsigned int) 0x2) // (TC) Clock selected: TIMER_DIV3_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV4_CLOCK ((unsigned int) 0x3) // (TC) Clock selected: TIMER_DIV4_CLOCK\r
-#define AT91C_TC_CLKS_TIMER_DIV5_CLOCK ((unsigned int) 0x4) // (TC) Clock selected: TIMER_DIV5_CLOCK\r
-#define AT91C_TC_CLKS_XC0 ((unsigned int) 0x5) // (TC) Clock selected: XC0\r
-#define AT91C_TC_CLKS_XC1 ((unsigned int) 0x6) // (TC) Clock selected: XC1\r
-#define AT91C_TC_CLKS_XC2 ((unsigned int) 0x7) // (TC) Clock selected: XC2\r
-#define AT91C_TC_CLKI ((unsigned int) 0x1 << 3) // (TC) Clock Invert\r
-#define AT91C_TC_BURST ((unsigned int) 0x3 << 4) // (TC) Burst Signal Selection\r
-#define AT91C_TC_BURST_NONE ((unsigned int) 0x0 << 4) // (TC) The clock is not gated by an external signal\r
-#define AT91C_TC_BURST_XC0 ((unsigned int) 0x1 << 4) // (TC) XC0 is ANDed with the selected clock\r
-#define AT91C_TC_BURST_XC1 ((unsigned int) 0x2 << 4) // (TC) XC1 is ANDed with the selected clock\r
-#define AT91C_TC_BURST_XC2 ((unsigned int) 0x3 << 4) // (TC) XC2 is ANDed with the selected clock\r
-#define AT91C_TC_CPCSTOP ((unsigned int) 0x1 << 6) // (TC) Counter Clock Stopped with RC Compare\r
-#define AT91C_TC_LDBSTOP ((unsigned int) 0x1 << 6) // (TC) Counter Clock Stopped with RB Loading\r
-#define AT91C_TC_CPCDIS ((unsigned int) 0x1 << 7) // (TC) Counter Clock Disable with RC Compare\r
-#define AT91C_TC_LDBDIS ((unsigned int) 0x1 << 7) // (TC) Counter Clock Disabled with RB Loading\r
-#define AT91C_TC_ETRGEDG ((unsigned int) 0x3 << 8) // (TC) External Trigger Edge Selection\r
-#define AT91C_TC_ETRGEDG_NONE ((unsigned int) 0x0 << 8) // (TC) Edge: None\r
-#define AT91C_TC_ETRGEDG_RISING ((unsigned int) 0x1 << 8) // (TC) Edge: rising edge\r
-#define AT91C_TC_ETRGEDG_FALLING ((unsigned int) 0x2 << 8) // (TC) Edge: falling edge\r
-#define AT91C_TC_ETRGEDG_BOTH ((unsigned int) 0x3 << 8) // (TC) Edge: each edge\r
-#define AT91C_TC_EEVTEDG ((unsigned int) 0x3 << 8) // (TC) External Event Edge Selection\r
-#define AT91C_TC_EEVTEDG_NONE ((unsigned int) 0x0 << 8) // (TC) Edge: None\r
-#define AT91C_TC_EEVTEDG_RISING ((unsigned int) 0x1 << 8) // (TC) Edge: rising edge\r
-#define AT91C_TC_EEVTEDG_FALLING ((unsigned int) 0x2 << 8) // (TC) Edge: falling edge\r
-#define AT91C_TC_EEVTEDG_BOTH ((unsigned int) 0x3 << 8) // (TC) Edge: each edge\r
-#define AT91C_TC_EEVT ((unsigned int) 0x3 << 10) // (TC) External Event Selection\r
-#define AT91C_TC_EEVT_TIOB ((unsigned int) 0x0 << 10) // (TC) Signal selected as external event: TIOB TIOB direction: input\r
-#define AT91C_TC_EEVT_XC0 ((unsigned int) 0x1 << 10) // (TC) Signal selected as external event: XC0 TIOB direction: output\r
-#define AT91C_TC_EEVT_XC1 ((unsigned int) 0x2 << 10) // (TC) Signal selected as external event: XC1 TIOB direction: output\r
-#define AT91C_TC_EEVT_XC2 ((unsigned int) 0x3 << 10) // (TC) Signal selected as external event: XC2 TIOB direction: output\r
-#define AT91C_TC_ABETRG ((unsigned int) 0x1 << 10) // (TC) TIOA or TIOB External Trigger Selection\r
-#define AT91C_TC_ENETRG ((unsigned int) 0x1 << 12) // (TC) External Event Trigger enable\r
-#define AT91C_TC_WAVESEL ((unsigned int) 0x3 << 13) // (TC) Waveform Selection\r
-#define AT91C_TC_WAVESEL_UP ((unsigned int) 0x0 << 13) // (TC) UP mode without atomatic trigger on RC Compare\r
-#define AT91C_TC_WAVESEL_UPDOWN ((unsigned int) 0x1 << 13) // (TC) UPDOWN mode without automatic trigger on RC Compare\r
-#define AT91C_TC_WAVESEL_UP_AUTO ((unsigned int) 0x2 << 13) // (TC) UP mode with automatic trigger on RC Compare\r
-#define AT91C_TC_WAVESEL_UPDOWN_AUTO ((unsigned int) 0x3 << 13) // (TC) UPDOWN mode with automatic trigger on RC Compare\r
-#define AT91C_TC_CPCTRG ((unsigned int) 0x1 << 14) // (TC) RC Compare Trigger Enable\r
-#define AT91C_TC_WAVE ((unsigned int) 0x1 << 15) // (TC) \r
-#define AT91C_TC_ACPA ((unsigned int) 0x3 << 16) // (TC) RA Compare Effect on TIOA\r
-#define AT91C_TC_ACPA_NONE ((unsigned int) 0x0 << 16) // (TC) Effect: none\r
-#define AT91C_TC_ACPA_SET ((unsigned int) 0x1 << 16) // (TC) Effect: set\r
-#define AT91C_TC_ACPA_CLEAR ((unsigned int) 0x2 << 16) // (TC) Effect: clear\r
-#define AT91C_TC_ACPA_TOGGLE ((unsigned int) 0x3 << 16) // (TC) Effect: toggle\r
-#define AT91C_TC_LDRA ((unsigned int) 0x3 << 16) // (TC) RA Loading Selection\r
-#define AT91C_TC_LDRA_NONE ((unsigned int) 0x0 << 16) // (TC) Edge: None\r
-#define AT91C_TC_LDRA_RISING ((unsigned int) 0x1 << 16) // (TC) Edge: rising edge of TIOA\r
-#define AT91C_TC_LDRA_FALLING ((unsigned int) 0x2 << 16) // (TC) Edge: falling edge of TIOA\r
-#define AT91C_TC_LDRA_BOTH ((unsigned int) 0x3 << 16) // (TC) Edge: each edge of TIOA\r
-#define AT91C_TC_ACPC ((unsigned int) 0x3 << 18) // (TC) RC Compare Effect on TIOA\r
-#define AT91C_TC_ACPC_NONE ((unsigned int) 0x0 << 18) // (TC) Effect: none\r
-#define AT91C_TC_ACPC_SET ((unsigned int) 0x1 << 18) // (TC) Effect: set\r
-#define AT91C_TC_ACPC_CLEAR ((unsigned int) 0x2 << 18) // (TC) Effect: clear\r
-#define AT91C_TC_ACPC_TOGGLE ((unsigned int) 0x3 << 18) // (TC) Effect: toggle\r
-#define AT91C_TC_LDRB ((unsigned int) 0x3 << 18) // (TC) RB Loading Selection\r
-#define AT91C_TC_LDRB_NONE ((unsigned int) 0x0 << 18) // (TC) Edge: None\r
-#define AT91C_TC_LDRB_RISING ((unsigned int) 0x1 << 18) // (TC) Edge: rising edge of TIOA\r
-#define AT91C_TC_LDRB_FALLING ((unsigned int) 0x2 << 18) // (TC) Edge: falling edge of TIOA\r
-#define AT91C_TC_LDRB_BOTH ((unsigned int) 0x3 << 18) // (TC) Edge: each edge of TIOA\r
-#define AT91C_TC_AEEVT ((unsigned int) 0x3 << 20) // (TC) External Event Effect on TIOA\r
-#define AT91C_TC_AEEVT_NONE ((unsigned int) 0x0 << 20) // (TC) Effect: none\r
-#define AT91C_TC_AEEVT_SET ((unsigned int) 0x1 << 20) // (TC) Effect: set\r
-#define AT91C_TC_AEEVT_CLEAR ((unsigned int) 0x2 << 20) // (TC) Effect: clear\r
-#define AT91C_TC_AEEVT_TOGGLE ((unsigned int) 0x3 << 20) // (TC) Effect: toggle\r
-#define AT91C_TC_ASWTRG ((unsigned int) 0x3 << 22) // (TC) Software Trigger Effect on TIOA\r
-#define AT91C_TC_ASWTRG_NONE ((unsigned int) 0x0 << 22) // (TC) Effect: none\r
-#define AT91C_TC_ASWTRG_SET ((unsigned int) 0x1 << 22) // (TC) Effect: set\r
-#define AT91C_TC_ASWTRG_CLEAR ((unsigned int) 0x2 << 22) // (TC) Effect: clear\r
-#define AT91C_TC_ASWTRG_TOGGLE ((unsigned int) 0x3 << 22) // (TC) Effect: toggle\r
-#define AT91C_TC_BCPB ((unsigned int) 0x3 << 24) // (TC) RB Compare Effect on TIOB\r
-#define AT91C_TC_BCPB_NONE ((unsigned int) 0x0 << 24) // (TC) Effect: none\r
-#define AT91C_TC_BCPB_SET ((unsigned int) 0x1 << 24) // (TC) Effect: set\r
-#define AT91C_TC_BCPB_CLEAR ((unsigned int) 0x2 << 24) // (TC) Effect: clear\r
-#define AT91C_TC_BCPB_TOGGLE ((unsigned int) 0x3 << 24) // (TC) Effect: toggle\r
-#define AT91C_TC_BCPC ((unsigned int) 0x3 << 26) // (TC) RC Compare Effect on TIOB\r
-#define AT91C_TC_BCPC_NONE ((unsigned int) 0x0 << 26) // (TC) Effect: none\r
-#define AT91C_TC_BCPC_SET ((unsigned int) 0x1 << 26) // (TC) Effect: set\r
-#define AT91C_TC_BCPC_CLEAR ((unsigned int) 0x2 << 26) // (TC) Effect: clear\r
-#define AT91C_TC_BCPC_TOGGLE ((unsigned int) 0x3 << 26) // (TC) Effect: toggle\r
-#define AT91C_TC_BEEVT ((unsigned int) 0x3 << 28) // (TC) External Event Effect on TIOB\r
-#define AT91C_TC_BEEVT_NONE ((unsigned int) 0x0 << 28) // (TC) Effect: none\r
-#define AT91C_TC_BEEVT_SET ((unsigned int) 0x1 << 28) // (TC) Effect: set\r
-#define AT91C_TC_BEEVT_CLEAR ((unsigned int) 0x2 << 28) // (TC) Effect: clear\r
-#define AT91C_TC_BEEVT_TOGGLE ((unsigned int) 0x3 << 28) // (TC) Effect: toggle\r
-#define AT91C_TC_BSWTRG ((unsigned int) 0x3 << 30) // (TC) Software Trigger Effect on TIOB\r
-#define AT91C_TC_BSWTRG_NONE ((unsigned int) 0x0 << 30) // (TC) Effect: none\r
-#define AT91C_TC_BSWTRG_SET ((unsigned int) 0x1 << 30) // (TC) Effect: set\r
-#define AT91C_TC_BSWTRG_CLEAR ((unsigned int) 0x2 << 30) // (TC) Effect: clear\r
-#define AT91C_TC_BSWTRG_TOGGLE ((unsigned int) 0x3 << 30) // (TC) Effect: toggle\r
-// -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- \r
-#define AT91C_TC_COVFS ((unsigned int) 0x1 << 0) // (TC) Counter Overflow\r
-#define AT91C_TC_LOVRS ((unsigned int) 0x1 << 1) // (TC) Load Overrun\r
-#define AT91C_TC_CPAS ((unsigned int) 0x1 << 2) // (TC) RA Compare\r
-#define AT91C_TC_CPBS ((unsigned int) 0x1 << 3) // (TC) RB Compare\r
-#define AT91C_TC_CPCS ((unsigned int) 0x1 << 4) // (TC) RC Compare\r
-#define AT91C_TC_LDRAS ((unsigned int) 0x1 << 5) // (TC) RA Loading\r
-#define AT91C_TC_LDRBS ((unsigned int) 0x1 << 6) // (TC) RB Loading\r
-#define AT91C_TC_ETRGS ((unsigned int) 0x1 << 7) // (TC) External Trigger\r
-#define AT91C_TC_CLKSTA ((unsigned int) 0x1 << 16) // (TC) Clock Enabling\r
-#define AT91C_TC_MTIOA ((unsigned int) 0x1 << 17) // (TC) TIOA Mirror\r
-#define AT91C_TC_MTIOB ((unsigned int) 0x1 << 18) // (TC) TIOA Mirror\r
-// -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- \r
-// -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- \r
-// -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Timer Counter Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_TCB {\r
- AT91S_TC TCB_TC0; // TC Channel 0\r
- AT91_REG Reserved0[4]; // \r
- AT91S_TC TCB_TC1; // TC Channel 1\r
- AT91_REG Reserved1[4]; // \r
- AT91S_TC TCB_TC2; // TC Channel 2\r
- AT91_REG Reserved2[4]; // \r
- AT91_REG TCB_BCR; // TC Block Control Register\r
- AT91_REG TCB_BMR; // TC Block Mode Register\r
-} AT91S_TCB, *AT91PS_TCB;\r
-\r
-// -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- \r
-#define AT91C_TCB_SYNC ((unsigned int) 0x1 << 0) // (TCB) Synchro Command\r
-// -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- \r
-#define AT91C_TCB_TC0XC0S ((unsigned int) 0x3 << 0) // (TCB) External Clock Signal 0 Selection\r
-#define AT91C_TCB_TC0XC0S_TCLK0 ((unsigned int) 0x0) // (TCB) TCLK0 connected to XC0\r
-#define AT91C_TCB_TC0XC0S_NONE ((unsigned int) 0x1) // (TCB) None signal connected to XC0\r
-#define AT91C_TCB_TC0XC0S_TIOA1 ((unsigned int) 0x2) // (TCB) TIOA1 connected to XC0\r
-#define AT91C_TCB_TC0XC0S_TIOA2 ((unsigned int) 0x3) // (TCB) TIOA2 connected to XC0\r
-#define AT91C_TCB_TC1XC1S ((unsigned int) 0x3 << 2) // (TCB) External Clock Signal 1 Selection\r
-#define AT91C_TCB_TC1XC1S_TCLK1 ((unsigned int) 0x0 << 2) // (TCB) TCLK1 connected to XC1\r
-#define AT91C_TCB_TC1XC1S_NONE ((unsigned int) 0x1 << 2) // (TCB) None signal connected to XC1\r
-#define AT91C_TCB_TC1XC1S_TIOA0 ((unsigned int) 0x2 << 2) // (TCB) TIOA0 connected to XC1\r
-#define AT91C_TCB_TC1XC1S_TIOA2 ((unsigned int) 0x3 << 2) // (TCB) TIOA2 connected to XC1\r
-#define AT91C_TCB_TC2XC2S ((unsigned int) 0x3 << 4) // (TCB) External Clock Signal 2 Selection\r
-#define AT91C_TCB_TC2XC2S_TCLK2 ((unsigned int) 0x0 << 4) // (TCB) TCLK2 connected to XC2\r
-#define AT91C_TCB_TC2XC2S_NONE ((unsigned int) 0x1 << 4) // (TCB) None signal connected to XC2\r
-#define AT91C_TCB_TC2XC2S_TIOA0 ((unsigned int) 0x2 << 4) // (TCB) TIOA0 connected to XC2\r
-#define AT91C_TCB_TC2XC2S_TIOA1 ((unsigned int) 0x3 << 4) // (TCB) TIOA2 connected to XC2\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Control Area Network MailBox Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_CAN_MB {\r
- AT91_REG CAN_MB_MMR; // MailBox Mode Register\r
- AT91_REG CAN_MB_MAM; // MailBox Acceptance Mask Register\r
- AT91_REG CAN_MB_MID; // MailBox ID Register\r
- AT91_REG CAN_MB_MFID; // MailBox Family ID Register\r
- AT91_REG CAN_MB_MSR; // MailBox Status Register\r
- AT91_REG CAN_MB_MDL; // MailBox Data Low Register\r
- AT91_REG CAN_MB_MDH; // MailBox Data High Register\r
- AT91_REG CAN_MB_MCR; // MailBox Control Register\r
-} AT91S_CAN_MB, *AT91PS_CAN_MB;\r
-\r
-// -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- \r
-#define AT91C_CAN_MTIMEMARK ((unsigned int) 0xFFFF << 0) // (CAN_MB) Mailbox Timemark\r
-#define AT91C_CAN_PRIOR ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Priority\r
-#define AT91C_CAN_MOT ((unsigned int) 0x7 << 24) // (CAN_MB) Mailbox Object Type\r
-#define AT91C_CAN_MOT_DIS ((unsigned int) 0x0 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_RX ((unsigned int) 0x1 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_RXOVERWRITE ((unsigned int) 0x2 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_TX ((unsigned int) 0x3 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_CONSUMER ((unsigned int) 0x4 << 24) // (CAN_MB) \r
-#define AT91C_CAN_MOT_PRODUCER ((unsigned int) 0x5 << 24) // (CAN_MB) \r
-// -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- \r
-#define AT91C_CAN_MIDvB ((unsigned int) 0x3FFFF << 0) // (CAN_MB) Complementary bits for identifier in extended mode\r
-#define AT91C_CAN_MIDvA ((unsigned int) 0x7FF << 18) // (CAN_MB) Identifier for standard frame mode\r
-#define AT91C_CAN_MIDE ((unsigned int) 0x1 << 29) // (CAN_MB) Identifier Version\r
-// -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- \r
-// -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- \r
-// -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- \r
-#define AT91C_CAN_MTIMESTAMP ((unsigned int) 0xFFFF << 0) // (CAN_MB) Timer Value\r
-#define AT91C_CAN_MDLC ((unsigned int) 0xF << 16) // (CAN_MB) Mailbox Data Length Code\r
-#define AT91C_CAN_MRTR ((unsigned int) 0x1 << 20) // (CAN_MB) Mailbox Remote Transmission Request\r
-#define AT91C_CAN_MABT ((unsigned int) 0x1 << 22) // (CAN_MB) Mailbox Message Abort\r
-#define AT91C_CAN_MRDY ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Ready\r
-#define AT91C_CAN_MMI ((unsigned int) 0x1 << 24) // (CAN_MB) Mailbox Message Ignored\r
-// -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- \r
-// -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- \r
-// -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- \r
-#define AT91C_CAN_MACR ((unsigned int) 0x1 << 22) // (CAN_MB) Abort Request for Mailbox\r
-#define AT91C_CAN_MTCR ((unsigned int) 0x1 << 23) // (CAN_MB) Mailbox Transfer Command\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Control Area Network Interface\r
-// *****************************************************************************\r
-typedef struct _AT91S_CAN {\r
- AT91_REG CAN_MR; // Mode Register\r
- AT91_REG CAN_IER; // Interrupt Enable Register\r
- AT91_REG CAN_IDR; // Interrupt Disable Register\r
- AT91_REG CAN_IMR; // Interrupt Mask Register\r
- AT91_REG CAN_SR; // Status Register\r
- AT91_REG CAN_BR; // Baudrate Register\r
- AT91_REG CAN_TIM; // Timer Register\r
- AT91_REG CAN_TIMESTP; // Time Stamp Register\r
- AT91_REG CAN_ECR; // Error Counter Register\r
- AT91_REG CAN_TCR; // Transfer Command Register\r
- AT91_REG CAN_ACR; // Abort Command Register\r
- AT91_REG Reserved0[52]; // \r
- AT91_REG CAN_VR; // Version Register\r
- AT91_REG Reserved1[64]; // \r
- AT91S_CAN_MB CAN_MB0; // CAN Mailbox 0\r
- AT91S_CAN_MB CAN_MB1; // CAN Mailbox 1\r
- AT91S_CAN_MB CAN_MB2; // CAN Mailbox 2\r
- AT91S_CAN_MB CAN_MB3; // CAN Mailbox 3\r
- AT91S_CAN_MB CAN_MB4; // CAN Mailbox 4\r
- AT91S_CAN_MB CAN_MB5; // CAN Mailbox 5\r
- AT91S_CAN_MB CAN_MB6; // CAN Mailbox 6\r
- AT91S_CAN_MB CAN_MB7; // CAN Mailbox 7\r
- AT91S_CAN_MB CAN_MB8; // CAN Mailbox 8\r
- AT91S_CAN_MB CAN_MB9; // CAN Mailbox 9\r
- AT91S_CAN_MB CAN_MB10; // CAN Mailbox 10\r
- AT91S_CAN_MB CAN_MB11; // CAN Mailbox 11\r
- AT91S_CAN_MB CAN_MB12; // CAN Mailbox 12\r
- AT91S_CAN_MB CAN_MB13; // CAN Mailbox 13\r
- AT91S_CAN_MB CAN_MB14; // CAN Mailbox 14\r
- AT91S_CAN_MB CAN_MB15; // CAN Mailbox 15\r
-} AT91S_CAN, *AT91PS_CAN;\r
-\r
-// -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- \r
-#define AT91C_CAN_CANEN ((unsigned int) 0x1 << 0) // (CAN) CAN Controller Enable\r
-#define AT91C_CAN_LPM ((unsigned int) 0x1 << 1) // (CAN) Disable/Enable Low Power Mode\r
-#define AT91C_CAN_ABM ((unsigned int) 0x1 << 2) // (CAN) Disable/Enable Autobaud/Listen Mode\r
-#define AT91C_CAN_OVL ((unsigned int) 0x1 << 3) // (CAN) Disable/Enable Overload Frame\r
-#define AT91C_CAN_TEOF ((unsigned int) 0x1 << 4) // (CAN) Time Stamp messages at each end of Frame\r
-#define AT91C_CAN_TTM ((unsigned int) 0x1 << 5) // (CAN) Disable/Enable Time Trigger Mode\r
-#define AT91C_CAN_TIMFRZ ((unsigned int) 0x1 << 6) // (CAN) Enable Timer Freeze\r
-#define AT91C_CAN_DRPT ((unsigned int) 0x1 << 7) // (CAN) Disable Repeat\r
-// -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- \r
-#define AT91C_CAN_MB0 ((unsigned int) 0x1 << 0) // (CAN) Mailbox 0 Flag\r
-#define AT91C_CAN_MB1 ((unsigned int) 0x1 << 1) // (CAN) Mailbox 1 Flag\r
-#define AT91C_CAN_MB2 ((unsigned int) 0x1 << 2) // (CAN) Mailbox 2 Flag\r
-#define AT91C_CAN_MB3 ((unsigned int) 0x1 << 3) // (CAN) Mailbox 3 Flag\r
-#define AT91C_CAN_MB4 ((unsigned int) 0x1 << 4) // (CAN) Mailbox 4 Flag\r
-#define AT91C_CAN_MB5 ((unsigned int) 0x1 << 5) // (CAN) Mailbox 5 Flag\r
-#define AT91C_CAN_MB6 ((unsigned int) 0x1 << 6) // (CAN) Mailbox 6 Flag\r
-#define AT91C_CAN_MB7 ((unsigned int) 0x1 << 7) // (CAN) Mailbox 7 Flag\r
-#define AT91C_CAN_MB8 ((unsigned int) 0x1 << 8) // (CAN) Mailbox 8 Flag\r
-#define AT91C_CAN_MB9 ((unsigned int) 0x1 << 9) // (CAN) Mailbox 9 Flag\r
-#define AT91C_CAN_MB10 ((unsigned int) 0x1 << 10) // (CAN) Mailbox 10 Flag\r
-#define AT91C_CAN_MB11 ((unsigned int) 0x1 << 11) // (CAN) Mailbox 11 Flag\r
-#define AT91C_CAN_MB12 ((unsigned int) 0x1 << 12) // (CAN) Mailbox 12 Flag\r
-#define AT91C_CAN_MB13 ((unsigned int) 0x1 << 13) // (CAN) Mailbox 13 Flag\r
-#define AT91C_CAN_MB14 ((unsigned int) 0x1 << 14) // (CAN) Mailbox 14 Flag\r
-#define AT91C_CAN_MB15 ((unsigned int) 0x1 << 15) // (CAN) Mailbox 15 Flag\r
-#define AT91C_CAN_ERRA ((unsigned int) 0x1 << 16) // (CAN) Error Active Mode Flag\r
-#define AT91C_CAN_WARN ((unsigned int) 0x1 << 17) // (CAN) Warning Limit Flag\r
-#define AT91C_CAN_ERRP ((unsigned int) 0x1 << 18) // (CAN) Error Passive Mode Flag\r
-#define AT91C_CAN_BOFF ((unsigned int) 0x1 << 19) // (CAN) Bus Off Mode Flag\r
-#define AT91C_CAN_SLEEP ((unsigned int) 0x1 << 20) // (CAN) Sleep Flag\r
-#define AT91C_CAN_WAKEUP ((unsigned int) 0x1 << 21) // (CAN) Wakeup Flag\r
-#define AT91C_CAN_TOVF ((unsigned int) 0x1 << 22) // (CAN) Timer Overflow Flag\r
-#define AT91C_CAN_TSTP ((unsigned int) 0x1 << 23) // (CAN) Timestamp Flag\r
-#define AT91C_CAN_CERR ((unsigned int) 0x1 << 24) // (CAN) CRC Error\r
-#define AT91C_CAN_SERR ((unsigned int) 0x1 << 25) // (CAN) Stuffing Error\r
-#define AT91C_CAN_AERR ((unsigned int) 0x1 << 26) // (CAN) Acknowledgment Error\r
-#define AT91C_CAN_FERR ((unsigned int) 0x1 << 27) // (CAN) Form Error\r
-#define AT91C_CAN_BERR ((unsigned int) 0x1 << 28) // (CAN) Bit Error\r
-// -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- \r
-// -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- \r
-// -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- \r
-#define AT91C_CAN_RBSY ((unsigned int) 0x1 << 29) // (CAN) Receiver Busy\r
-#define AT91C_CAN_TBSY ((unsigned int) 0x1 << 30) // (CAN) Transmitter Busy\r
-#define AT91C_CAN_OVLY ((unsigned int) 0x1 << 31) // (CAN) Overload Busy\r
-// -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- \r
-#define AT91C_CAN_PHASE2 ((unsigned int) 0x7 << 0) // (CAN) Phase 2 segment\r
-#define AT91C_CAN_PHASE1 ((unsigned int) 0x7 << 4) // (CAN) Phase 1 segment\r
-#define AT91C_CAN_PROPAG ((unsigned int) 0x7 << 8) // (CAN) Programmation time segment\r
-#define AT91C_CAN_SYNC ((unsigned int) 0x3 << 12) // (CAN) Re-synchronization jump width segment\r
-#define AT91C_CAN_BRP ((unsigned int) 0x7F << 16) // (CAN) Baudrate Prescaler\r
-#define AT91C_CAN_SMP ((unsigned int) 0x1 << 24) // (CAN) Sampling mode\r
-// -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- \r
-#define AT91C_CAN_TIMER ((unsigned int) 0xFFFF << 0) // (CAN) Timer field\r
-// -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- \r
-// -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- \r
-#define AT91C_CAN_REC ((unsigned int) 0xFF << 0) // (CAN) Receive Error Counter\r
-#define AT91C_CAN_TEC ((unsigned int) 0xFF << 16) // (CAN) Transmit Error Counter\r
-// -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- \r
-#define AT91C_CAN_TIMRST ((unsigned int) 0x1 << 31) // (CAN) Timer Reset Field\r
-// -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Ethernet MAC 10/100\r
-// *****************************************************************************\r
-typedef struct _AT91S_EMAC {\r
- AT91_REG EMAC_NCR; // Network Control Register\r
- AT91_REG EMAC_NCFGR; // Network Configuration Register\r
- AT91_REG EMAC_NSR; // Network Status Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG EMAC_TSR; // Transmit Status Register\r
- AT91_REG EMAC_RBQP; // Receive Buffer Queue Pointer\r
- AT91_REG EMAC_TBQP; // Transmit Buffer Queue Pointer\r
- AT91_REG EMAC_RSR; // Receive Status Register\r
- AT91_REG EMAC_ISR; // Interrupt Status Register\r
- AT91_REG EMAC_IER; // Interrupt Enable Register\r
- AT91_REG EMAC_IDR; // Interrupt Disable Register\r
- AT91_REG EMAC_IMR; // Interrupt Mask Register\r
- AT91_REG EMAC_MAN; // PHY Maintenance Register\r
- AT91_REG EMAC_PTR; // Pause Time Register\r
- AT91_REG EMAC_PFR; // Pause Frames received Register\r
- AT91_REG EMAC_FTO; // Frames Transmitted OK Register\r
- AT91_REG EMAC_SCF; // Single Collision Frame Register\r
- AT91_REG EMAC_MCF; // Multiple Collision Frame Register\r
- AT91_REG EMAC_FRO; // Frames Received OK Register\r
- AT91_REG EMAC_FCSE; // Frame Check Sequence Error Register\r
- AT91_REG EMAC_ALE; // Alignment Error Register\r
- AT91_REG EMAC_DTF; // Deferred Transmission Frame Register\r
- AT91_REG EMAC_LCOL; // Late Collision Register\r
- AT91_REG EMAC_ECOL; // Excessive Collision Register\r
- AT91_REG EMAC_TUND; // Transmit Underrun Error Register\r
- AT91_REG EMAC_CSE; // Carrier Sense Error Register\r
- AT91_REG EMAC_RRE; // Receive Ressource Error Register\r
- AT91_REG EMAC_ROV; // Receive Overrun Errors Register\r
- AT91_REG EMAC_RSE; // Receive Symbol Errors Register\r
- AT91_REG EMAC_ELE; // Excessive Length Errors Register\r
- AT91_REG EMAC_RJA; // Receive Jabbers Register\r
- AT91_REG EMAC_USF; // Undersize Frames Register\r
- AT91_REG EMAC_STE; // SQE Test Error Register\r
- AT91_REG EMAC_RLE; // Receive Length Field Mismatch Register\r
- AT91_REG EMAC_TPF; // Transmitted Pause Frames Register\r
- AT91_REG EMAC_HRB; // Hash Address Bottom[31:0]\r
- AT91_REG EMAC_HRT; // Hash Address Top[63:32]\r
- AT91_REG EMAC_SA1L; // Specific Address 1 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA1H; // Specific Address 1 Top, Last 2 bytes\r
- AT91_REG EMAC_SA2L; // Specific Address 2 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA2H; // Specific Address 2 Top, Last 2 bytes\r
- AT91_REG EMAC_SA3L; // Specific Address 3 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA3H; // Specific Address 3 Top, Last 2 bytes\r
- AT91_REG EMAC_SA4L; // Specific Address 4 Bottom, First 4 bytes\r
- AT91_REG EMAC_SA4H; // Specific Address 4 Top, Last 2 bytes\r
- AT91_REG EMAC_TID; // Type ID Checking Register\r
- AT91_REG EMAC_TPQ; // Transmit Pause Quantum Register\r
- AT91_REG EMAC_USRIO; // USER Input/Output Register\r
- AT91_REG EMAC_WOL; // Wake On LAN Register\r
- AT91_REG Reserved1[13]; // \r
- AT91_REG EMAC_REV; // Revision Register\r
-} AT91S_EMAC, *AT91PS_EMAC;\r
-\r
-// -------- EMAC_NCR : (EMAC Offset: 0x0) -------- \r
-#define AT91C_EMAC_LB ((unsigned int) 0x1 << 0) // (EMAC) Loopback. Optional. When set, loopback signal is at high level.\r
-#define AT91C_EMAC_LLB ((unsigned int) 0x1 << 1) // (EMAC) Loopback local. \r
-#define AT91C_EMAC_RE ((unsigned int) 0x1 << 2) // (EMAC) Receive enable. \r
-#define AT91C_EMAC_TE ((unsigned int) 0x1 << 3) // (EMAC) Transmit enable. \r
-#define AT91C_EMAC_MPE ((unsigned int) 0x1 << 4) // (EMAC) Management port enable. \r
-#define AT91C_EMAC_CLRSTAT ((unsigned int) 0x1 << 5) // (EMAC) Clear statistics registers. \r
-#define AT91C_EMAC_INCSTAT ((unsigned int) 0x1 << 6) // (EMAC) Increment statistics registers. \r
-#define AT91C_EMAC_WESTAT ((unsigned int) 0x1 << 7) // (EMAC) Write enable for statistics registers. \r
-#define AT91C_EMAC_BP ((unsigned int) 0x1 << 8) // (EMAC) Back pressure. \r
-#define AT91C_EMAC_TSTART ((unsigned int) 0x1 << 9) // (EMAC) Start Transmission. \r
-#define AT91C_EMAC_THALT ((unsigned int) 0x1 << 10) // (EMAC) Transmission Halt. \r
-#define AT91C_EMAC_TPFR ((unsigned int) 0x1 << 11) // (EMAC) Transmit pause frame \r
-#define AT91C_EMAC_TZQ ((unsigned int) 0x1 << 12) // (EMAC) Transmit zero quantum pause frame\r
-// -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- \r
-#define AT91C_EMAC_SPD ((unsigned int) 0x1 << 0) // (EMAC) Speed. \r
-#define AT91C_EMAC_FD ((unsigned int) 0x1 << 1) // (EMAC) Full duplex. \r
-#define AT91C_EMAC_JFRAME ((unsigned int) 0x1 << 3) // (EMAC) Jumbo Frames. \r
-#define AT91C_EMAC_CAF ((unsigned int) 0x1 << 4) // (EMAC) Copy all frames. \r
-#define AT91C_EMAC_NBC ((unsigned int) 0x1 << 5) // (EMAC) No broadcast. \r
-#define AT91C_EMAC_MTI ((unsigned int) 0x1 << 6) // (EMAC) Multicast hash event enable\r
-#define AT91C_EMAC_UNI ((unsigned int) 0x1 << 7) // (EMAC) Unicast hash enable. \r
-#define AT91C_EMAC_BIG ((unsigned int) 0x1 << 8) // (EMAC) Receive 1522 bytes. \r
-#define AT91C_EMAC_EAE ((unsigned int) 0x1 << 9) // (EMAC) External address match enable. \r
-#define AT91C_EMAC_CLK ((unsigned int) 0x3 << 10) // (EMAC) \r
-#define AT91C_EMAC_CLK_HCLK_8 ((unsigned int) 0x0 << 10) // (EMAC) HCLK divided by 8\r
-#define AT91C_EMAC_CLK_HCLK_16 ((unsigned int) 0x1 << 10) // (EMAC) HCLK divided by 16\r
-#define AT91C_EMAC_CLK_HCLK_32 ((unsigned int) 0x2 << 10) // (EMAC) HCLK divided by 32\r
-#define AT91C_EMAC_CLK_HCLK_64 ((unsigned int) 0x3 << 10) // (EMAC) HCLK divided by 64\r
-#define AT91C_EMAC_RTY ((unsigned int) 0x1 << 12) // (EMAC) \r
-#define AT91C_EMAC_PAE ((unsigned int) 0x1 << 13) // (EMAC) \r
-#define AT91C_EMAC_RBOF ((unsigned int) 0x3 << 14) // (EMAC) \r
-#define AT91C_EMAC_RBOF_OFFSET_0 ((unsigned int) 0x0 << 14) // (EMAC) no offset from start of receive buffer\r
-#define AT91C_EMAC_RBOF_OFFSET_1 ((unsigned int) 0x1 << 14) // (EMAC) one byte offset from start of receive buffer\r
-#define AT91C_EMAC_RBOF_OFFSET_2 ((unsigned int) 0x2 << 14) // (EMAC) two bytes offset from start of receive buffer\r
-#define AT91C_EMAC_RBOF_OFFSET_3 ((unsigned int) 0x3 << 14) // (EMAC) three bytes offset from start of receive buffer\r
-#define AT91C_EMAC_RLCE ((unsigned int) 0x1 << 16) // (EMAC) Receive Length field Checking Enable\r
-#define AT91C_EMAC_DRFCS ((unsigned int) 0x1 << 17) // (EMAC) Discard Receive FCS\r
-#define AT91C_EMAC_EFRHD ((unsigned int) 0x1 << 18) // (EMAC) \r
-#define AT91C_EMAC_IRXFCS ((unsigned int) 0x1 << 19) // (EMAC) Ignore RX FCS\r
-// -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- \r
-#define AT91C_EMAC_LINKR ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_MDIO ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_IDLE ((unsigned int) 0x1 << 2) // (EMAC) \r
-// -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- \r
-#define AT91C_EMAC_UBR ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_COL ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_RLES ((unsigned int) 0x1 << 2) // (EMAC) \r
-#define AT91C_EMAC_TGO ((unsigned int) 0x1 << 3) // (EMAC) Transmit Go\r
-#define AT91C_EMAC_BEX ((unsigned int) 0x1 << 4) // (EMAC) Buffers exhausted mid frame\r
-#define AT91C_EMAC_COMP ((unsigned int) 0x1 << 5) // (EMAC) \r
-#define AT91C_EMAC_UND ((unsigned int) 0x1 << 6) // (EMAC) \r
-// -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- \r
-#define AT91C_EMAC_BNA ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_REC ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_OVR ((unsigned int) 0x1 << 2) // (EMAC) \r
-// -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- \r
-#define AT91C_EMAC_MFD ((unsigned int) 0x1 << 0) // (EMAC) \r
-#define AT91C_EMAC_RCOMP ((unsigned int) 0x1 << 1) // (EMAC) \r
-#define AT91C_EMAC_RXUBR ((unsigned int) 0x1 << 2) // (EMAC) \r
-#define AT91C_EMAC_TXUBR ((unsigned int) 0x1 << 3) // (EMAC) \r
-#define AT91C_EMAC_TUNDR ((unsigned int) 0x1 << 4) // (EMAC) \r
-#define AT91C_EMAC_RLEX ((unsigned int) 0x1 << 5) // (EMAC) \r
-#define AT91C_EMAC_TXERR ((unsigned int) 0x1 << 6) // (EMAC) \r
-#define AT91C_EMAC_TCOMP ((unsigned int) 0x1 << 7) // (EMAC) \r
-#define AT91C_EMAC_LINK ((unsigned int) 0x1 << 9) // (EMAC) \r
-#define AT91C_EMAC_ROVR ((unsigned int) 0x1 << 10) // (EMAC) \r
-#define AT91C_EMAC_HRESP ((unsigned int) 0x1 << 11) // (EMAC) \r
-#define AT91C_EMAC_PFRE ((unsigned int) 0x1 << 12) // (EMAC) \r
-#define AT91C_EMAC_PTZ ((unsigned int) 0x1 << 13) // (EMAC) \r
-// -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- \r
-// -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- \r
-// -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- \r
-// -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- \r
-#define AT91C_EMAC_DATA ((unsigned int) 0xFFFF << 0) // (EMAC) \r
-#define AT91C_EMAC_CODE ((unsigned int) 0x3 << 16) // (EMAC) \r
-#define AT91C_EMAC_REGA ((unsigned int) 0x1F << 18) // (EMAC) \r
-#define AT91C_EMAC_PHYA ((unsigned int) 0x1F << 23) // (EMAC) \r
-#define AT91C_EMAC_RW ((unsigned int) 0x3 << 28) // (EMAC) \r
-#define AT91C_EMAC_SOF ((unsigned int) 0x3 << 30) // (EMAC) \r
-// -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- \r
-#define AT91C_EMAC_RMII ((unsigned int) 0x1 << 0) // (EMAC) Reduce MII\r
-// -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- \r
-#define AT91C_EMAC_IP ((unsigned int) 0xFFFF << 0) // (EMAC) ARP request IP address\r
-#define AT91C_EMAC_MAG ((unsigned int) 0x1 << 16) // (EMAC) Magic packet event enable\r
-#define AT91C_EMAC_ARP ((unsigned int) 0x1 << 17) // (EMAC) ARP request event enable\r
-#define AT91C_EMAC_SA1 ((unsigned int) 0x1 << 18) // (EMAC) Specific address register 1 event enable\r
-// -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- \r
-#define AT91C_EMAC_REVREF ((unsigned int) 0xFFFF << 0) // (EMAC) \r
-#define AT91C_EMAC_PARTREF ((unsigned int) 0xFFFF << 16) // (EMAC) \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Analog to Digital Convertor\r
-// *****************************************************************************\r
-typedef struct _AT91S_ADC {\r
- AT91_REG ADC_CR; // ADC Control Register\r
- AT91_REG ADC_MR; // ADC Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG ADC_CHER; // ADC Channel Enable Register\r
- AT91_REG ADC_CHDR; // ADC Channel Disable Register\r
- AT91_REG ADC_CHSR; // ADC Channel Status Register\r
- AT91_REG ADC_SR; // ADC Status Register\r
- AT91_REG ADC_LCDR; // ADC Last Converted Data Register\r
- AT91_REG ADC_IER; // ADC Interrupt Enable Register\r
- AT91_REG ADC_IDR; // ADC Interrupt Disable Register\r
- AT91_REG ADC_IMR; // ADC Interrupt Mask Register\r
- AT91_REG ADC_CDR0; // ADC Channel Data Register 0\r
- AT91_REG ADC_CDR1; // ADC Channel Data Register 1\r
- AT91_REG ADC_CDR2; // ADC Channel Data Register 2\r
- AT91_REG ADC_CDR3; // ADC Channel Data Register 3\r
- AT91_REG ADC_CDR4; // ADC Channel Data Register 4\r
- AT91_REG ADC_CDR5; // ADC Channel Data Register 5\r
- AT91_REG ADC_CDR6; // ADC Channel Data Register 6\r
- AT91_REG ADC_CDR7; // ADC Channel Data Register 7\r
- AT91_REG Reserved1[44]; // \r
- AT91_REG ADC_RPR; // Receive Pointer Register\r
- AT91_REG ADC_RCR; // Receive Counter Register\r
- AT91_REG ADC_TPR; // Transmit Pointer Register\r
- AT91_REG ADC_TCR; // Transmit Counter Register\r
- AT91_REG ADC_RNPR; // Receive Next Pointer Register\r
- AT91_REG ADC_RNCR; // Receive Next Counter Register\r
- AT91_REG ADC_TNPR; // Transmit Next Pointer Register\r
- AT91_REG ADC_TNCR; // Transmit Next Counter Register\r
- AT91_REG ADC_PTCR; // PDC Transfer Control Register\r
- AT91_REG ADC_PTSR; // PDC Transfer Status Register\r
-} AT91S_ADC, *AT91PS_ADC;\r
-\r
-// -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- \r
-#define AT91C_ADC_SWRST ((unsigned int) 0x1 << 0) // (ADC) Software Reset\r
-#define AT91C_ADC_START ((unsigned int) 0x1 << 1) // (ADC) Start Conversion\r
-// -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- \r
-#define AT91C_ADC_TRGEN ((unsigned int) 0x1 << 0) // (ADC) Trigger Enable\r
-#define AT91C_ADC_TRGEN_DIS ((unsigned int) 0x0) // (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software\r
-#define AT91C_ADC_TRGEN_EN ((unsigned int) 0x1) // (ADC) Hardware trigger selected by TRGSEL field is enabled.\r
-#define AT91C_ADC_TRGSEL ((unsigned int) 0x7 << 1) // (ADC) Trigger Selection\r
-#define AT91C_ADC_TRGSEL_TIOA0 ((unsigned int) 0x0 << 1) // (ADC) Selected TRGSEL = TIAO0\r
-#define AT91C_ADC_TRGSEL_TIOA1 ((unsigned int) 0x1 << 1) // (ADC) Selected TRGSEL = TIAO1\r
-#define AT91C_ADC_TRGSEL_TIOA2 ((unsigned int) 0x2 << 1) // (ADC) Selected TRGSEL = TIAO2\r
-#define AT91C_ADC_TRGSEL_TIOA3 ((unsigned int) 0x3 << 1) // (ADC) Selected TRGSEL = TIAO3\r
-#define AT91C_ADC_TRGSEL_TIOA4 ((unsigned int) 0x4 << 1) // (ADC) Selected TRGSEL = TIAO4\r
-#define AT91C_ADC_TRGSEL_TIOA5 ((unsigned int) 0x5 << 1) // (ADC) Selected TRGSEL = TIAO5\r
-#define AT91C_ADC_TRGSEL_EXT ((unsigned int) 0x6 << 1) // (ADC) Selected TRGSEL = External Trigger\r
-#define AT91C_ADC_LOWRES ((unsigned int) 0x1 << 4) // (ADC) Resolution.\r
-#define AT91C_ADC_LOWRES_10_BIT ((unsigned int) 0x0 << 4) // (ADC) 10-bit resolution\r
-#define AT91C_ADC_LOWRES_8_BIT ((unsigned int) 0x1 << 4) // (ADC) 8-bit resolution\r
-#define AT91C_ADC_SLEEP ((unsigned int) 0x1 << 5) // (ADC) Sleep Mode\r
-#define AT91C_ADC_SLEEP_NORMAL_MODE ((unsigned int) 0x0 << 5) // (ADC) Normal Mode\r
-#define AT91C_ADC_SLEEP_MODE ((unsigned int) 0x1 << 5) // (ADC) Sleep Mode\r
-#define AT91C_ADC_PRESCAL ((unsigned int) 0x3F << 8) // (ADC) Prescaler rate selection\r
-#define AT91C_ADC_STARTUP ((unsigned int) 0x1F << 16) // (ADC) Startup Time\r
-#define AT91C_ADC_SHTIM ((unsigned int) 0xF << 24) // (ADC) Sample & Hold Time\r
-// -------- ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- \r
-#define AT91C_ADC_CH0 ((unsigned int) 0x1 << 0) // (ADC) Channel 0\r
-#define AT91C_ADC_CH1 ((unsigned int) 0x1 << 1) // (ADC) Channel 1\r
-#define AT91C_ADC_CH2 ((unsigned int) 0x1 << 2) // (ADC) Channel 2\r
-#define AT91C_ADC_CH3 ((unsigned int) 0x1 << 3) // (ADC) Channel 3\r
-#define AT91C_ADC_CH4 ((unsigned int) 0x1 << 4) // (ADC) Channel 4\r
-#define AT91C_ADC_CH5 ((unsigned int) 0x1 << 5) // (ADC) Channel 5\r
-#define AT91C_ADC_CH6 ((unsigned int) 0x1 << 6) // (ADC) Channel 6\r
-#define AT91C_ADC_CH7 ((unsigned int) 0x1 << 7) // (ADC) Channel 7\r
-// -------- ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- \r
-// -------- ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- \r
-// -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- \r
-#define AT91C_ADC_EOC0 ((unsigned int) 0x1 << 0) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC1 ((unsigned int) 0x1 << 1) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC2 ((unsigned int) 0x1 << 2) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC3 ((unsigned int) 0x1 << 3) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC4 ((unsigned int) 0x1 << 4) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC5 ((unsigned int) 0x1 << 5) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC6 ((unsigned int) 0x1 << 6) // (ADC) End of Conversion\r
-#define AT91C_ADC_EOC7 ((unsigned int) 0x1 << 7) // (ADC) End of Conversion\r
-#define AT91C_ADC_OVRE0 ((unsigned int) 0x1 << 8) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE1 ((unsigned int) 0x1 << 9) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE2 ((unsigned int) 0x1 << 10) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE3 ((unsigned int) 0x1 << 11) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE4 ((unsigned int) 0x1 << 12) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE5 ((unsigned int) 0x1 << 13) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE6 ((unsigned int) 0x1 << 14) // (ADC) Overrun Error\r
-#define AT91C_ADC_OVRE7 ((unsigned int) 0x1 << 15) // (ADC) Overrun Error\r
-#define AT91C_ADC_DRDY ((unsigned int) 0x1 << 16) // (ADC) Data Ready\r
-#define AT91C_ADC_GOVRE ((unsigned int) 0x1 << 17) // (ADC) General Overrun\r
-#define AT91C_ADC_ENDRX ((unsigned int) 0x1 << 18) // (ADC) End of Receiver Transfer\r
-#define AT91C_ADC_RXBUFF ((unsigned int) 0x1 << 19) // (ADC) RXBUFF Interrupt\r
-// -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- \r
-#define AT91C_ADC_LDATA ((unsigned int) 0x3FF << 0) // (ADC) Last Data Converted\r
-// -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- \r
-// -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- \r
-// -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- \r
-// -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- \r
-#define AT91C_ADC_DATA ((unsigned int) 0x3FF << 0) // (ADC) Converted Data\r
-// -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- \r
-// -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- \r
-// -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- \r
-// -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- \r
-// -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- \r
-// -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- \r
-// -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- \r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Advanced Encryption Standard\r
-// *****************************************************************************\r
-typedef struct _AT91S_AES {\r
- AT91_REG AES_CR; // Control Register\r
- AT91_REG AES_MR; // Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG AES_IER; // Interrupt Enable Register\r
- AT91_REG AES_IDR; // Interrupt Disable Register\r
- AT91_REG AES_IMR; // Interrupt Mask Register\r
- AT91_REG AES_ISR; // Interrupt Status Register\r
- AT91_REG AES_KEYWxR[4]; // Key Word x Register\r
- AT91_REG Reserved1[4]; // \r
- AT91_REG AES_IDATAxR[4]; // Input Data x Register\r
- AT91_REG AES_ODATAxR[4]; // Output Data x Register\r
- AT91_REG AES_IVxR[4]; // Initialization Vector x Register\r
- AT91_REG Reserved2[35]; // \r
- AT91_REG AES_VR; // AES Version Register\r
- AT91_REG AES_RPR; // Receive Pointer Register\r
- AT91_REG AES_RCR; // Receive Counter Register\r
- AT91_REG AES_TPR; // Transmit Pointer Register\r
- AT91_REG AES_TCR; // Transmit Counter Register\r
- AT91_REG AES_RNPR; // Receive Next Pointer Register\r
- AT91_REG AES_RNCR; // Receive Next Counter Register\r
- AT91_REG AES_TNPR; // Transmit Next Pointer Register\r
- AT91_REG AES_TNCR; // Transmit Next Counter Register\r
- AT91_REG AES_PTCR; // PDC Transfer Control Register\r
- AT91_REG AES_PTSR; // PDC Transfer Status Register\r
-} AT91S_AES, *AT91PS_AES;\r
-\r
-// -------- AES_CR : (AES Offset: 0x0) Control Register -------- \r
-#define AT91C_AES_START ((unsigned int) 0x1 << 0) // (AES) Starts Processing\r
-#define AT91C_AES_SWRST ((unsigned int) 0x1 << 8) // (AES) Software Reset\r
-#define AT91C_AES_LOADSEED ((unsigned int) 0x1 << 16) // (AES) Random Number Generator Seed Loading\r
-// -------- AES_MR : (AES Offset: 0x4) Mode Register -------- \r
-#define AT91C_AES_CIPHER ((unsigned int) 0x1 << 0) // (AES) Processing Mode\r
-#define AT91C_AES_PROCDLY ((unsigned int) 0xF << 4) // (AES) Processing Delay\r
-#define AT91C_AES_SMOD ((unsigned int) 0x3 << 8) // (AES) Start Mode\r
-#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.\r
-#define AT91C_AES_SMOD_AUTO ((unsigned int) 0x1 << 8) // (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).\r
-#define AT91C_AES_SMOD_PDC ((unsigned int) 0x2 << 8) // (AES) PDC Mode (cf datasheet).\r
-#define AT91C_AES_OPMOD ((unsigned int) 0x7 << 12) // (AES) Operation Mode\r
-#define AT91C_AES_OPMOD_ECB ((unsigned int) 0x0 << 12) // (AES) ECB Electronic CodeBook mode.\r
-#define AT91C_AES_OPMOD_CBC ((unsigned int) 0x1 << 12) // (AES) CBC Cipher Block Chaining mode.\r
-#define AT91C_AES_OPMOD_OFB ((unsigned int) 0x2 << 12) // (AES) OFB Output Feedback mode.\r
-#define AT91C_AES_OPMOD_CFB ((unsigned int) 0x3 << 12) // (AES) CFB Cipher Feedback mode.\r
-#define AT91C_AES_OPMOD_CTR ((unsigned int) 0x4 << 12) // (AES) CTR Counter mode.\r
-#define AT91C_AES_LOD ((unsigned int) 0x1 << 15) // (AES) Last Output Data Mode\r
-#define AT91C_AES_CFBS ((unsigned int) 0x7 << 16) // (AES) Cipher Feedback Data Size\r
-#define AT91C_AES_CFBS_128_BIT ((unsigned int) 0x0 << 16) // (AES) 128-bit.\r
-#define AT91C_AES_CFBS_64_BIT ((unsigned int) 0x1 << 16) // (AES) 64-bit.\r
-#define AT91C_AES_CFBS_32_BIT ((unsigned int) 0x2 << 16) // (AES) 32-bit.\r
-#define AT91C_AES_CFBS_16_BIT ((unsigned int) 0x3 << 16) // (AES) 16-bit.\r
-#define AT91C_AES_CFBS_8_BIT ((unsigned int) 0x4 << 16) // (AES) 8-bit.\r
-#define AT91C_AES_CKEY ((unsigned int) 0xF << 20) // (AES) Countermeasure Key\r
-#define AT91C_AES_CTYPE ((unsigned int) 0x1F << 24) // (AES) Countermeasure Type\r
-#define AT91C_AES_CTYPE_TYPE1_EN ((unsigned int) 0x1 << 24) // (AES) Countermeasure type 1 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE2_EN ((unsigned int) 0x2 << 24) // (AES) Countermeasure type 2 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE3_EN ((unsigned int) 0x4 << 24) // (AES) Countermeasure type 3 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE4_EN ((unsigned int) 0x8 << 24) // (AES) Countermeasure type 4 is enabled.\r
-#define AT91C_AES_CTYPE_TYPE5_EN ((unsigned int) 0x10 << 24) // (AES) Countermeasure type 5 is enabled.\r
-// -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- \r
-#define AT91C_AES_DATRDY ((unsigned int) 0x1 << 0) // (AES) DATRDY\r
-#define AT91C_AES_ENDRX ((unsigned int) 0x1 << 1) // (AES) PDC Read Buffer End\r
-#define AT91C_AES_ENDTX ((unsigned int) 0x1 << 2) // (AES) PDC Write Buffer End\r
-#define AT91C_AES_RXBUFF ((unsigned int) 0x1 << 3) // (AES) PDC Read Buffer Full\r
-#define AT91C_AES_TXBUFE ((unsigned int) 0x1 << 4) // (AES) PDC Write Buffer Empty\r
-#define AT91C_AES_URAD ((unsigned int) 0x1 << 8) // (AES) Unspecified Register Access Detection\r
-// -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- \r
-// -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- \r
-// -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- \r
-#define AT91C_AES_URAT ((unsigned int) 0x7 << 12) // (AES) Unspecified Register Access Type Status\r
-#define AT91C_AES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (AES) Input data register written during the data processing in PDC mode.\r
-#define AT91C_AES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (AES) Output data register read during the data processing.\r
-#define AT91C_AES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (AES) Mode register written during the data processing.\r
-#define AT91C_AES_URAT_OUT_DAT_READ_SUBKEY ((unsigned int) 0x3 << 12) // (AES) Output data register read during the sub-keys generation.\r
-#define AT91C_AES_URAT_MODEREG_WRITE_SUBKEY ((unsigned int) 0x4 << 12) // (AES) Mode register written during the sub-keys generation.\r
-#define AT91C_AES_URAT_WO_REG_READ ((unsigned int) 0x5 << 12) // (AES) Write-only register read access.\r
-\r
-// *****************************************************************************\r
-// SOFTWARE API DEFINITION FOR Triple Data Encryption Standard\r
-// *****************************************************************************\r
-typedef struct _AT91S_TDES {\r
- AT91_REG TDES_CR; // Control Register\r
- AT91_REG TDES_MR; // Mode Register\r
- AT91_REG Reserved0[2]; // \r
- AT91_REG TDES_IER; // Interrupt Enable Register\r
- AT91_REG TDES_IDR; // Interrupt Disable Register\r
- AT91_REG TDES_IMR; // Interrupt Mask Register\r
- AT91_REG TDES_ISR; // Interrupt Status Register\r
- AT91_REG TDES_KEY1WxR[2]; // Key 1 Word x Register\r
- AT91_REG TDES_KEY2WxR[2]; // Key 2 Word x Register\r
- AT91_REG TDES_KEY3WxR[2]; // Key 3 Word x Register\r
- AT91_REG Reserved1[2]; // \r
- AT91_REG TDES_IDATAxR[2]; // Input Data x Register\r
- AT91_REG Reserved2[2]; // \r
- AT91_REG TDES_ODATAxR[2]; // Output Data x Register\r
- AT91_REG Reserved3[2]; // \r
- AT91_REG TDES_IVxR[2]; // Initialization Vector x Register\r
- AT91_REG Reserved4[37]; // \r
- AT91_REG TDES_VR; // TDES Version Register\r
- AT91_REG TDES_RPR; // Receive Pointer Register\r
- AT91_REG TDES_RCR; // Receive Counter Register\r
- AT91_REG TDES_TPR; // Transmit Pointer Register\r
- AT91_REG TDES_TCR; // Transmit Counter Register\r
- AT91_REG TDES_RNPR; // Receive Next Pointer Register\r
- AT91_REG TDES_RNCR; // Receive Next Counter Register\r
- AT91_REG TDES_TNPR; // Transmit Next Pointer Register\r
- AT91_REG TDES_TNCR; // Transmit Next Counter Register\r
- AT91_REG TDES_PTCR; // PDC Transfer Control Register\r
- AT91_REG TDES_PTSR; // PDC Transfer Status Register\r
-} AT91S_TDES, *AT91PS_TDES;\r
-\r
-// -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- \r
-#define AT91C_TDES_START ((unsigned int) 0x1 << 0) // (TDES) Starts Processing\r
-#define AT91C_TDES_SWRST ((unsigned int) 0x1 << 8) // (TDES) Software Reset\r
-// -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- \r
-#define AT91C_TDES_CIPHER ((unsigned int) 0x1 << 0) // (TDES) Processing Mode\r
-#define AT91C_TDES_TDESMOD ((unsigned int) 0x1 << 1) // (TDES) Single or Triple DES Mode\r
-#define AT91C_TDES_KEYMOD ((unsigned int) 0x1 << 4) // (TDES) Key Mode\r
-#define AT91C_TDES_SMOD ((unsigned int) 0x3 << 8) // (TDES) Start Mode\r
-#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.\r
-#define AT91C_TDES_SMOD_AUTO ((unsigned int) 0x1 << 8) // (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).\r
-#define AT91C_TDES_SMOD_PDC ((unsigned int) 0x2 << 8) // (TDES) PDC Mode (cf datasheet).\r
-#define AT91C_TDES_OPMOD ((unsigned int) 0x3 << 12) // (TDES) Operation Mode\r
-#define AT91C_TDES_OPMOD_ECB ((unsigned int) 0x0 << 12) // (TDES) ECB Electronic CodeBook mode.\r
-#define AT91C_TDES_OPMOD_CBC ((unsigned int) 0x1 << 12) // (TDES) CBC Cipher Block Chaining mode.\r
-#define AT91C_TDES_OPMOD_OFB ((unsigned int) 0x2 << 12) // (TDES) OFB Output Feedback mode.\r
-#define AT91C_TDES_OPMOD_CFB ((unsigned int) 0x3 << 12) // (TDES) CFB Cipher Feedback mode.\r
-#define AT91C_TDES_LOD ((unsigned int) 0x1 << 15) // (TDES) Last Output Data Mode\r
-#define AT91C_TDES_CFBS ((unsigned int) 0x3 << 16) // (TDES) Cipher Feedback Data Size\r
-#define AT91C_TDES_CFBS_64_BIT ((unsigned int) 0x0 << 16) // (TDES) 64-bit.\r
-#define AT91C_TDES_CFBS_32_BIT ((unsigned int) 0x1 << 16) // (TDES) 32-bit.\r
-#define AT91C_TDES_CFBS_16_BIT ((unsigned int) 0x2 << 16) // (TDES) 16-bit.\r
-#define AT91C_TDES_CFBS_8_BIT ((unsigned int) 0x3 << 16) // (TDES) 8-bit.\r
-// -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- \r
-#define AT91C_TDES_DATRDY ((unsigned int) 0x1 << 0) // (TDES) DATRDY\r
-#define AT91C_TDES_ENDRX ((unsigned int) 0x1 << 1) // (TDES) PDC Read Buffer End\r
-#define AT91C_TDES_ENDTX ((unsigned int) 0x1 << 2) // (TDES) PDC Write Buffer End\r
-#define AT91C_TDES_RXBUFF ((unsigned int) 0x1 << 3) // (TDES) PDC Read Buffer Full\r
-#define AT91C_TDES_TXBUFE ((unsigned int) 0x1 << 4) // (TDES) PDC Write Buffer Empty\r
-#define AT91C_TDES_URAD ((unsigned int) 0x1 << 8) // (TDES) Unspecified Register Access Detection\r
-// -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- \r
-// -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- \r
-// -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- \r
-#define AT91C_TDES_URAT ((unsigned int) 0x3 << 12) // (TDES) Unspecified Register Access Type Status\r
-#define AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC ((unsigned int) 0x0 << 12) // (TDES) Input data register written during the data processing in PDC mode.\r
-#define AT91C_TDES_URAT_OUT_DAT_READ_DATPROC ((unsigned int) 0x1 << 12) // (TDES) Output data register read during the data processing.\r
-#define AT91C_TDES_URAT_MODEREG_WRITE_DATPROC ((unsigned int) 0x2 << 12) // (TDES) Mode register written during the data processing.\r
-#define AT91C_TDES_URAT_WO_REG_READ ((unsigned int) 0x3 << 12) // (TDES) Write-only register read access.\r
-\r
-// *****************************************************************************\r
-// REGISTER ADDRESS DEFINITION FOR AT91SAM7X256\r
-// *****************************************************************************\r
-// ========== Register definition for SYS peripheral ========== \r
-// ========== Register definition for AIC peripheral ========== \r
-#define AT91C_AIC_IVR ((AT91_REG *) 0xFFFFF100) // (AIC) IRQ Vector Register\r
-#define AT91C_AIC_SMR ((AT91_REG *) 0xFFFFF000) // (AIC) Source Mode Register\r
-#define AT91C_AIC_FVR ((AT91_REG *) 0xFFFFF104) // (AIC) FIQ Vector Register\r
-#define AT91C_AIC_DCR ((AT91_REG *) 0xFFFFF138) // (AIC) Debug Control Register (Protect)\r
-#define AT91C_AIC_EOICR ((AT91_REG *) 0xFFFFF130) // (AIC) End of Interrupt Command Register\r
-#define AT91C_AIC_SVR ((AT91_REG *) 0xFFFFF080) // (AIC) Source Vector Register\r
-#define AT91C_AIC_FFSR ((AT91_REG *) 0xFFFFF148) // (AIC) Fast Forcing Status Register\r
-#define AT91C_AIC_ICCR ((AT91_REG *) 0xFFFFF128) // (AIC) Interrupt Clear Command Register\r
-#define AT91C_AIC_ISR ((AT91_REG *) 0xFFFFF108) // (AIC) Interrupt Status Register\r
-#define AT91C_AIC_IMR ((AT91_REG *) 0xFFFFF110) // (AIC) Interrupt Mask Register\r
-#define AT91C_AIC_IPR ((AT91_REG *) 0xFFFFF10C) // (AIC) Interrupt Pending Register\r
-#define AT91C_AIC_FFER ((AT91_REG *) 0xFFFFF140) // (AIC) Fast Forcing Enable Register\r
-#define AT91C_AIC_IECR ((AT91_REG *) 0xFFFFF120) // (AIC) Interrupt Enable Command Register\r
-#define AT91C_AIC_ISCR ((AT91_REG *) 0xFFFFF12C) // (AIC) Interrupt Set Command Register\r
-#define AT91C_AIC_FFDR ((AT91_REG *) 0xFFFFF144) // (AIC) Fast Forcing Disable Register\r
-#define AT91C_AIC_CISR ((AT91_REG *) 0xFFFFF114) // (AIC) Core Interrupt Status Register\r
-#define AT91C_AIC_IDCR ((AT91_REG *) 0xFFFFF124) // (AIC) Interrupt Disable Command Register\r
-#define AT91C_AIC_SPU ((AT91_REG *) 0xFFFFF134) // (AIC) Spurious Vector Register\r
-// ========== Register definition for PDC_DBGU peripheral ========== \r
-#define AT91C_DBGU_TCR ((AT91_REG *) 0xFFFFF30C) // (PDC_DBGU) Transmit Counter Register\r
-#define AT91C_DBGU_RNPR ((AT91_REG *) 0xFFFFF310) // (PDC_DBGU) Receive Next Pointer Register\r
-#define AT91C_DBGU_TNPR ((AT91_REG *) 0xFFFFF318) // (PDC_DBGU) Transmit Next Pointer Register\r
-#define AT91C_DBGU_TPR ((AT91_REG *) 0xFFFFF308) // (PDC_DBGU) Transmit Pointer Register\r
-#define AT91C_DBGU_RPR ((AT91_REG *) 0xFFFFF300) // (PDC_DBGU) Receive Pointer Register\r
-#define AT91C_DBGU_RCR ((AT91_REG *) 0xFFFFF304) // (PDC_DBGU) Receive Counter Register\r
-#define AT91C_DBGU_RNCR ((AT91_REG *) 0xFFFFF314) // (PDC_DBGU) Receive Next Counter Register\r
-#define AT91C_DBGU_PTCR ((AT91_REG *) 0xFFFFF320) // (PDC_DBGU) PDC Transfer Control Register\r
-#define AT91C_DBGU_PTSR ((AT91_REG *) 0xFFFFF324) // (PDC_DBGU) PDC Transfer Status Register\r
-#define AT91C_DBGU_TNCR ((AT91_REG *) 0xFFFFF31C) // (PDC_DBGU) Transmit Next Counter Register\r
-// ========== Register definition for DBGU peripheral ========== \r
-#define AT91C_DBGU_EXID ((AT91_REG *) 0xFFFFF244) // (DBGU) Chip ID Extension Register\r
-#define AT91C_DBGU_BRGR ((AT91_REG *) 0xFFFFF220) // (DBGU) Baud Rate Generator Register\r
-#define AT91C_DBGU_IDR ((AT91_REG *) 0xFFFFF20C) // (DBGU) Interrupt Disable Register\r
-#define AT91C_DBGU_CSR ((AT91_REG *) 0xFFFFF214) // (DBGU) Channel Status Register\r
-#define AT91C_DBGU_CIDR ((AT91_REG *) 0xFFFFF240) // (DBGU) Chip ID Register\r
-#define AT91C_DBGU_MR ((AT91_REG *) 0xFFFFF204) // (DBGU) Mode Register\r
-#define AT91C_DBGU_IMR ((AT91_REG *) 0xFFFFF210) // (DBGU) Interrupt Mask Register\r
-#define AT91C_DBGU_CR ((AT91_REG *) 0xFFFFF200) // (DBGU) Control Register\r
-#define AT91C_DBGU_FNTR ((AT91_REG *) 0xFFFFF248) // (DBGU) Force NTRST Register\r
-#define AT91C_DBGU_THR ((AT91_REG *) 0xFFFFF21C) // (DBGU) Transmitter Holding Register\r
-#define AT91C_DBGU_RHR ((AT91_REG *) 0xFFFFF218) // (DBGU) Receiver Holding Register\r
-#define AT91C_DBGU_IER ((AT91_REG *) 0xFFFFF208) // (DBGU) Interrupt Enable Register\r
-// ========== Register definition for PIOA peripheral ========== \r
-#define AT91C_PIOA_ODR ((AT91_REG *) 0xFFFFF414) // (PIOA) Output Disable Registerr\r
-#define AT91C_PIOA_SODR ((AT91_REG *) 0xFFFFF430) // (PIOA) Set Output Data Register\r
-#define AT91C_PIOA_ISR ((AT91_REG *) 0xFFFFF44C) // (PIOA) Interrupt Status Register\r
-#define AT91C_PIOA_ABSR ((AT91_REG *) 0xFFFFF478) // (PIOA) AB Select Status Register\r
-#define AT91C_PIOA_IER ((AT91_REG *) 0xFFFFF440) // (PIOA) Interrupt Enable Register\r
-#define AT91C_PIOA_PPUDR ((AT91_REG *) 0xFFFFF460) // (PIOA) Pull-up Disable Register\r
-#define AT91C_PIOA_IMR ((AT91_REG *) 0xFFFFF448) // (PIOA) Interrupt Mask Register\r
-#define AT91C_PIOA_PER ((AT91_REG *) 0xFFFFF400) // (PIOA) PIO Enable Register\r
-#define AT91C_PIOA_IFDR ((AT91_REG *) 0xFFFFF424) // (PIOA) Input Filter Disable Register\r
-#define AT91C_PIOA_OWDR ((AT91_REG *) 0xFFFFF4A4) // (PIOA) Output Write Disable Register\r
-#define AT91C_PIOA_MDSR ((AT91_REG *) 0xFFFFF458) // (PIOA) Multi-driver Status Register\r
-#define AT91C_PIOA_IDR ((AT91_REG *) 0xFFFFF444) // (PIOA) Interrupt Disable Register\r
-#define AT91C_PIOA_ODSR ((AT91_REG *) 0xFFFFF438) // (PIOA) Output Data Status Register\r
-#define AT91C_PIOA_PPUSR ((AT91_REG *) 0xFFFFF468) // (PIOA) Pull-up Status Register\r
-#define AT91C_PIOA_OWSR ((AT91_REG *) 0xFFFFF4A8) // (PIOA) Output Write Status Register\r
-#define AT91C_PIOA_BSR ((AT91_REG *) 0xFFFFF474) // (PIOA) Select B Register\r
-#define AT91C_PIOA_OWER ((AT91_REG *) 0xFFFFF4A0) // (PIOA) Output Write Enable Register\r
-#define AT91C_PIOA_IFER ((AT91_REG *) 0xFFFFF420) // (PIOA) Input Filter Enable Register\r
-#define AT91C_PIOA_PDSR ((AT91_REG *) 0xFFFFF43C) // (PIOA) Pin Data Status Register\r
-#define AT91C_PIOA_PPUER ((AT91_REG *) 0xFFFFF464) // (PIOA) Pull-up Enable Register\r
-#define AT91C_PIOA_OSR ((AT91_REG *) 0xFFFFF418) // (PIOA) Output Status Register\r
-#define AT91C_PIOA_ASR ((AT91_REG *) 0xFFFFF470) // (PIOA) Select A Register\r
-#define AT91C_PIOA_MDDR ((AT91_REG *) 0xFFFFF454) // (PIOA) Multi-driver Disable Register\r
-#define AT91C_PIOA_CODR ((AT91_REG *) 0xFFFFF434) // (PIOA) Clear Output Data Register\r
-#define AT91C_PIOA_MDER ((AT91_REG *) 0xFFFFF450) // (PIOA) Multi-driver Enable Register\r
-#define AT91C_PIOA_PDR ((AT91_REG *) 0xFFFFF404) // (PIOA) PIO Disable Register\r
-#define AT91C_PIOA_IFSR ((AT91_REG *) 0xFFFFF428) // (PIOA) Input Filter Status Register\r
-#define AT91C_PIOA_OER ((AT91_REG *) 0xFFFFF410) // (PIOA) Output Enable Register\r
-#define AT91C_PIOA_PSR ((AT91_REG *) 0xFFFFF408) // (PIOA) PIO Status Register\r
-// ========== Register definition for PIOB peripheral ========== \r
-#define AT91C_PIOB_OWDR ((AT91_REG *) 0xFFFFF6A4) // (PIOB) Output Write Disable Register\r
-#define AT91C_PIOB_MDER ((AT91_REG *) 0xFFFFF650) // (PIOB) Multi-driver Enable Register\r
-#define AT91C_PIOB_PPUSR ((AT91_REG *) 0xFFFFF668) // (PIOB) Pull-up Status Register\r
-#define AT91C_PIOB_IMR ((AT91_REG *) 0xFFFFF648) // (PIOB) Interrupt Mask Register\r
-#define AT91C_PIOB_ASR ((AT91_REG *) 0xFFFFF670) // (PIOB) Select A Register\r
-#define AT91C_PIOB_PPUDR ((AT91_REG *) 0xFFFFF660) // (PIOB) Pull-up Disable Register\r
-#define AT91C_PIOB_PSR ((AT91_REG *) 0xFFFFF608) // (PIOB) PIO Status Register\r
-#define AT91C_PIOB_IER ((AT91_REG *) 0xFFFFF640) // (PIOB) Interrupt Enable Register\r
-#define AT91C_PIOB_CODR ((AT91_REG *) 0xFFFFF634) // (PIOB) Clear Output Data Register\r
-#define AT91C_PIOB_OWER ((AT91_REG *) 0xFFFFF6A0) // (PIOB) Output Write Enable Register\r
-#define AT91C_PIOB_ABSR ((AT91_REG *) 0xFFFFF678) // (PIOB) AB Select Status Register\r
-#define AT91C_PIOB_IFDR ((AT91_REG *) 0xFFFFF624) // (PIOB) Input Filter Disable Register\r
-#define AT91C_PIOB_PDSR ((AT91_REG *) 0xFFFFF63C) // (PIOB) Pin Data Status Register\r
-#define AT91C_PIOB_IDR ((AT91_REG *) 0xFFFFF644) // (PIOB) Interrupt Disable Register\r
-#define AT91C_PIOB_OWSR ((AT91_REG *) 0xFFFFF6A8) // (PIOB) Output Write Status Register\r
-#define AT91C_PIOB_PDR ((AT91_REG *) 0xFFFFF604) // (PIOB) PIO Disable Register\r
-#define AT91C_PIOB_ODR ((AT91_REG *) 0xFFFFF614) // (PIOB) Output Disable Registerr\r
-#define AT91C_PIOB_IFSR ((AT91_REG *) 0xFFFFF628) // (PIOB) Input Filter Status Register\r
-#define AT91C_PIOB_PPUER ((AT91_REG *) 0xFFFFF664) // (PIOB) Pull-up Enable Register\r
-#define AT91C_PIOB_SODR ((AT91_REG *) 0xFFFFF630) // (PIOB) Set Output Data Register\r
-#define AT91C_PIOB_ISR ((AT91_REG *) 0xFFFFF64C) // (PIOB) Interrupt Status Register\r
-#define AT91C_PIOB_ODSR ((AT91_REG *) 0xFFFFF638) // (PIOB) Output Data Status Register\r
-#define AT91C_PIOB_OSR ((AT91_REG *) 0xFFFFF618) // (PIOB) Output Status Register\r
-#define AT91C_PIOB_MDSR ((AT91_REG *) 0xFFFFF658) // (PIOB) Multi-driver Status Register\r
-#define AT91C_PIOB_IFER ((AT91_REG *) 0xFFFFF620) // (PIOB) Input Filter Enable Register\r
-#define AT91C_PIOB_BSR ((AT91_REG *) 0xFFFFF674) // (PIOB) Select B Register\r
-#define AT91C_PIOB_MDDR ((AT91_REG *) 0xFFFFF654) // (PIOB) Multi-driver Disable Register\r
-#define AT91C_PIOB_OER ((AT91_REG *) 0xFFFFF610) // (PIOB) Output Enable Register\r
-#define AT91C_PIOB_PER ((AT91_REG *) 0xFFFFF600) // (PIOB) PIO Enable Register\r
-// ========== Register definition for CKGR peripheral ========== \r
-#define AT91C_CKGR_MOR ((AT91_REG *) 0xFFFFFC20) // (CKGR) Main Oscillator Register\r
-#define AT91C_CKGR_PLLR ((AT91_REG *) 0xFFFFFC2C) // (CKGR) PLL Register\r
-#define AT91C_CKGR_MCFR ((AT91_REG *) 0xFFFFFC24) // (CKGR) Main Clock Frequency Register\r
-// ========== Register definition for PMC peripheral ========== \r
-#define AT91C_PMC_IDR ((AT91_REG *) 0xFFFFFC64) // (PMC) Interrupt Disable Register\r
-#define AT91C_PMC_MOR ((AT91_REG *) 0xFFFFFC20) // (PMC) Main Oscillator Register\r
-#define AT91C_PMC_PLLR ((AT91_REG *) 0xFFFFFC2C) // (PMC) PLL Register\r
-#define AT91C_PMC_PCER ((AT91_REG *) 0xFFFFFC10) // (PMC) Peripheral Clock Enable Register\r
-#define AT91C_PMC_PCKR ((AT91_REG *) 0xFFFFFC40) // (PMC) Programmable Clock Register\r
-#define AT91C_PMC_MCKR ((AT91_REG *) 0xFFFFFC30) // (PMC) Master Clock Register\r
-#define AT91C_PMC_SCDR ((AT91_REG *) 0xFFFFFC04) // (PMC) System Clock Disable Register\r
-#define AT91C_PMC_PCDR ((AT91_REG *) 0xFFFFFC14) // (PMC) Peripheral Clock Disable Register\r
-#define AT91C_PMC_SCSR ((AT91_REG *) 0xFFFFFC08) // (PMC) System Clock Status Register\r
-#define AT91C_PMC_PCSR ((AT91_REG *) 0xFFFFFC18) // (PMC) Peripheral Clock Status Register\r
-#define AT91C_PMC_MCFR ((AT91_REG *) 0xFFFFFC24) // (PMC) Main Clock Frequency Register\r
-#define AT91C_PMC_SCER ((AT91_REG *) 0xFFFFFC00) // (PMC) System Clock Enable Register\r
-#define AT91C_PMC_IMR ((AT91_REG *) 0xFFFFFC6C) // (PMC) Interrupt Mask Register\r
-#define AT91C_PMC_IER ((AT91_REG *) 0xFFFFFC60) // (PMC) Interrupt Enable Register\r
-#define AT91C_PMC_SR ((AT91_REG *) 0xFFFFFC68) // (PMC) Status Register\r
-// ========== Register definition for RSTC peripheral ========== \r
-#define AT91C_RSTC_RCR ((AT91_REG *) 0xFFFFFD00) // (RSTC) Reset Control Register\r
-#define AT91C_RSTC_RMR ((AT91_REG *) 0xFFFFFD08) // (RSTC) Reset Mode Register\r
-#define AT91C_RSTC_RSR ((AT91_REG *) 0xFFFFFD04) // (RSTC) Reset Status Register\r
-// ========== Register definition for RTTC peripheral ========== \r
-#define AT91C_RTTC_RTSR ((AT91_REG *) 0xFFFFFD2C) // (RTTC) Real-time Status Register\r
-#define AT91C_RTTC_RTMR ((AT91_REG *) 0xFFFFFD20) // (RTTC) Real-time Mode Register\r
-#define AT91C_RTTC_RTVR ((AT91_REG *) 0xFFFFFD28) // (RTTC) Real-time Value Register\r
-#define AT91C_RTTC_RTAR ((AT91_REG *) 0xFFFFFD24) // (RTTC) Real-time Alarm Register\r
-// ========== Register definition for PITC peripheral ========== \r
-#define AT91C_PITC_PIVR ((AT91_REG *) 0xFFFFFD38) // (PITC) Period Interval Value Register\r
-#define AT91C_PITC_PISR ((AT91_REG *) 0xFFFFFD34) // (PITC) Period Interval Status Register\r
-#define AT91C_PITC_PIIR ((AT91_REG *) 0xFFFFFD3C) // (PITC) Period Interval Image Register\r
-#define AT91C_PITC_PIMR ((AT91_REG *) 0xFFFFFD30) // (PITC) Period Interval Mode Register\r
-// ========== Register definition for WDTC peripheral ========== \r
-#define AT91C_WDTC_WDCR ((AT91_REG *) 0xFFFFFD40) // (WDTC) Watchdog Control Register\r
-#define AT91C_WDTC_WDSR ((AT91_REG *) 0xFFFFFD48) // (WDTC) Watchdog Status Register\r
-#define AT91C_WDTC_WDMR ((AT91_REG *) 0xFFFFFD44) // (WDTC) Watchdog Mode Register\r
-// ========== Register definition for VREG peripheral ========== \r
-#define AT91C_VREG_MR ((AT91_REG *) 0xFFFFFD60) // (VREG) Voltage Regulator Mode Register\r
-// ========== Register definition for MC peripheral ========== \r
-#define AT91C_MC_ASR ((AT91_REG *) 0xFFFFFF04) // (MC) MC Abort Status Register\r
-#define AT91C_MC_RCR ((AT91_REG *) 0xFFFFFF00) // (MC) MC Remap Control Register\r
-#define AT91C_MC_FCR ((AT91_REG *) 0xFFFFFF64) // (MC) MC Flash Command Register\r
-#define AT91C_MC_AASR ((AT91_REG *) 0xFFFFFF08) // (MC) MC Abort Address Status Register\r
-#define AT91C_MC_FSR ((AT91_REG *) 0xFFFFFF68) // (MC) MC Flash Status Register\r
-#define AT91C_MC_FMR ((AT91_REG *) 0xFFFFFF60) // (MC) MC Flash Mode Register\r
-// ========== Register definition for PDC_SPI1 peripheral ========== \r
-#define AT91C_SPI1_PTCR ((AT91_REG *) 0xFFFE4120) // (PDC_SPI1) PDC Transfer Control Register\r
-#define AT91C_SPI1_RPR ((AT91_REG *) 0xFFFE4100) // (PDC_SPI1) Receive Pointer Register\r
-#define AT91C_SPI1_TNCR ((AT91_REG *) 0xFFFE411C) // (PDC_SPI1) Transmit Next Counter Register\r
-#define AT91C_SPI1_TPR ((AT91_REG *) 0xFFFE4108) // (PDC_SPI1) Transmit Pointer Register\r
-#define AT91C_SPI1_TNPR ((AT91_REG *) 0xFFFE4118) // (PDC_SPI1) Transmit Next Pointer Register\r
-#define AT91C_SPI1_TCR ((AT91_REG *) 0xFFFE410C) // (PDC_SPI1) Transmit Counter Register\r
-#define AT91C_SPI1_RCR ((AT91_REG *) 0xFFFE4104) // (PDC_SPI1) Receive Counter Register\r
-#define AT91C_SPI1_RNPR ((AT91_REG *) 0xFFFE4110) // (PDC_SPI1) Receive Next Pointer Register\r
-#define AT91C_SPI1_RNCR ((AT91_REG *) 0xFFFE4114) // (PDC_SPI1) Receive Next Counter Register\r
-#define AT91C_SPI1_PTSR ((AT91_REG *) 0xFFFE4124) // (PDC_SPI1) PDC Transfer Status Register\r
-// ========== Register definition for SPI1 peripheral ========== \r
-#define AT91C_SPI1_IMR ((AT91_REG *) 0xFFFE401C) // (SPI1) Interrupt Mask Register\r
-#define AT91C_SPI1_IER ((AT91_REG *) 0xFFFE4014) // (SPI1) Interrupt Enable Register\r
-#define AT91C_SPI1_MR ((AT91_REG *) 0xFFFE4004) // (SPI1) Mode Register\r
-#define AT91C_SPI1_RDR ((AT91_REG *) 0xFFFE4008) // (SPI1) Receive Data Register\r
-#define AT91C_SPI1_IDR ((AT91_REG *) 0xFFFE4018) // (SPI1) Interrupt Disable Register\r
-#define AT91C_SPI1_SR ((AT91_REG *) 0xFFFE4010) // (SPI1) Status Register\r
-#define AT91C_SPI1_TDR ((AT91_REG *) 0xFFFE400C) // (SPI1) Transmit Data Register\r
-#define AT91C_SPI1_CR ((AT91_REG *) 0xFFFE4000) // (SPI1) Control Register\r
-#define AT91C_SPI1_CSR ((AT91_REG *) 0xFFFE4030) // (SPI1) Chip Select Register\r
-// ========== Register definition for PDC_SPI0 peripheral ========== \r
-#define AT91C_SPI0_PTCR ((AT91_REG *) 0xFFFE0120) // (PDC_SPI0) PDC Transfer Control Register\r
-#define AT91C_SPI0_TPR ((AT91_REG *) 0xFFFE0108) // (PDC_SPI0) Transmit Pointer Register\r
-#define AT91C_SPI0_TCR ((AT91_REG *) 0xFFFE010C) // (PDC_SPI0) Transmit Counter Register\r
-#define AT91C_SPI0_RCR ((AT91_REG *) 0xFFFE0104) // (PDC_SPI0) Receive Counter Register\r
-#define AT91C_SPI0_PTSR ((AT91_REG *) 0xFFFE0124) // (PDC_SPI0) PDC Transfer Status Register\r
-#define AT91C_SPI0_RNPR ((AT91_REG *) 0xFFFE0110) // (PDC_SPI0) Receive Next Pointer Register\r
-#define AT91C_SPI0_RPR ((AT91_REG *) 0xFFFE0100) // (PDC_SPI0) Receive Pointer Register\r
-#define AT91C_SPI0_TNCR ((AT91_REG *) 0xFFFE011C) // (PDC_SPI0) Transmit Next Counter Register\r
-#define AT91C_SPI0_RNCR ((AT91_REG *) 0xFFFE0114) // (PDC_SPI0) Receive Next Counter Register\r
-#define AT91C_SPI0_TNPR ((AT91_REG *) 0xFFFE0118) // (PDC_SPI0) Transmit Next Pointer Register\r
-// ========== Register definition for SPI0 peripheral ========== \r
-#define AT91C_SPI0_IER ((AT91_REG *) 0xFFFE0014) // (SPI0) Interrupt Enable Register\r
-#define AT91C_SPI0_SR ((AT91_REG *) 0xFFFE0010) // (SPI0) Status Register\r
-#define AT91C_SPI0_IDR ((AT91_REG *) 0xFFFE0018) // (SPI0) Interrupt Disable Register\r
-#define AT91C_SPI0_CR ((AT91_REG *) 0xFFFE0000) // (SPI0) Control Register\r
-#define AT91C_SPI0_MR ((AT91_REG *) 0xFFFE0004) // (SPI0) Mode Register\r
-#define AT91C_SPI0_IMR ((AT91_REG *) 0xFFFE001C) // (SPI0) Interrupt Mask Register\r
-#define AT91C_SPI0_TDR ((AT91_REG *) 0xFFFE000C) // (SPI0) Transmit Data Register\r
-#define AT91C_SPI0_RDR ((AT91_REG *) 0xFFFE0008) // (SPI0) Receive Data Register\r
-#define AT91C_SPI0_CSR ((AT91_REG *) 0xFFFE0030) // (SPI0) Chip Select Register\r
-// ========== Register definition for PDC_US1 peripheral ========== \r
-#define AT91C_US1_RNCR ((AT91_REG *) 0xFFFC4114) // (PDC_US1) Receive Next Counter Register\r
-#define AT91C_US1_PTCR ((AT91_REG *) 0xFFFC4120) // (PDC_US1) PDC Transfer Control Register\r
-#define AT91C_US1_TCR ((AT91_REG *) 0xFFFC410C) // (PDC_US1) Transmit Counter Register\r
-#define AT91C_US1_PTSR ((AT91_REG *) 0xFFFC4124) // (PDC_US1) PDC Transfer Status Register\r
-#define AT91C_US1_TNPR ((AT91_REG *) 0xFFFC4118) // (PDC_US1) Transmit Next Pointer Register\r
-#define AT91C_US1_RCR ((AT91_REG *) 0xFFFC4104) // (PDC_US1) Receive Counter Register\r
-#define AT91C_US1_RNPR ((AT91_REG *) 0xFFFC4110) // (PDC_US1) Receive Next Pointer Register\r
-#define AT91C_US1_RPR ((AT91_REG *) 0xFFFC4100) // (PDC_US1) Receive Pointer Register\r
-#define AT91C_US1_TNCR ((AT91_REG *) 0xFFFC411C) // (PDC_US1) Transmit Next Counter Register\r
-#define AT91C_US1_TPR ((AT91_REG *) 0xFFFC4108) // (PDC_US1) Transmit Pointer Register\r
-// ========== Register definition for US1 peripheral ========== \r
-#define AT91C_US1_IF ((AT91_REG *) 0xFFFC404C) // (US1) IRDA_FILTER Register\r
-#define AT91C_US1_NER ((AT91_REG *) 0xFFFC4044) // (US1) Nb Errors Register\r
-#define AT91C_US1_RTOR ((AT91_REG *) 0xFFFC4024) // (US1) Receiver Time-out Register\r
-#define AT91C_US1_CSR ((AT91_REG *) 0xFFFC4014) // (US1) Channel Status Register\r
-#define AT91C_US1_IDR ((AT91_REG *) 0xFFFC400C) // (US1) Interrupt Disable Register\r
-#define AT91C_US1_IER ((AT91_REG *) 0xFFFC4008) // (US1) Interrupt Enable Register\r
-#define AT91C_US1_THR ((AT91_REG *) 0xFFFC401C) // (US1) Transmitter Holding Register\r
-#define AT91C_US1_TTGR ((AT91_REG *) 0xFFFC4028) // (US1) Transmitter Time-guard Register\r
-#define AT91C_US1_RHR ((AT91_REG *) 0xFFFC4018) // (US1) Receiver Holding Register\r
-#define AT91C_US1_BRGR ((AT91_REG *) 0xFFFC4020) // (US1) Baud Rate Generator Register\r
-#define AT91C_US1_IMR ((AT91_REG *) 0xFFFC4010) // (US1) Interrupt Mask Register\r
-#define AT91C_US1_FIDI ((AT91_REG *) 0xFFFC4040) // (US1) FI_DI_Ratio Register\r
-#define AT91C_US1_CR ((AT91_REG *) 0xFFFC4000) // (US1) Control Register\r
-#define AT91C_US1_MR ((AT91_REG *) 0xFFFC4004) // (US1) Mode Register\r
-// ========== Register definition for PDC_US0 peripheral ========== \r
-#define AT91C_US0_TNPR ((AT91_REG *) 0xFFFC0118) // (PDC_US0) Transmit Next Pointer Register\r
-#define AT91C_US0_RNPR ((AT91_REG *) 0xFFFC0110) // (PDC_US0) Receive Next Pointer Register\r
-#define AT91C_US0_TCR ((AT91_REG *) 0xFFFC010C) // (PDC_US0) Transmit Counter Register\r
-#define AT91C_US0_PTCR ((AT91_REG *) 0xFFFC0120) // (PDC_US0) PDC Transfer Control Register\r
-#define AT91C_US0_PTSR ((AT91_REG *) 0xFFFC0124) // (PDC_US0) PDC Transfer Status Register\r
-#define AT91C_US0_TNCR ((AT91_REG *) 0xFFFC011C) // (PDC_US0) Transmit Next Counter Register\r
-#define AT91C_US0_TPR ((AT91_REG *) 0xFFFC0108) // (PDC_US0) Transmit Pointer Register\r
-#define AT91C_US0_RCR ((AT91_REG *) 0xFFFC0104) // (PDC_US0) Receive Counter Register\r
-#define AT91C_US0_RPR ((AT91_REG *) 0xFFFC0100) // (PDC_US0) Receive Pointer Register\r
-#define AT91C_US0_RNCR ((AT91_REG *) 0xFFFC0114) // (PDC_US0) Receive Next Counter Register\r
-// ========== Register definition for US0 peripheral ========== \r
-#define AT91C_US0_BRGR ((AT91_REG *) 0xFFFC0020) // (US0) Baud Rate Generator Register\r
-#define AT91C_US0_NER ((AT91_REG *) 0xFFFC0044) // (US0) Nb Errors Register\r
-#define AT91C_US0_CR ((AT91_REG *) 0xFFFC0000) // (US0) Control Register\r
-#define AT91C_US0_IMR ((AT91_REG *) 0xFFFC0010) // (US0) Interrupt Mask Register\r
-#define AT91C_US0_FIDI ((AT91_REG *) 0xFFFC0040) // (US0) FI_DI_Ratio Register\r
-#define AT91C_US0_TTGR ((AT91_REG *) 0xFFFC0028) // (US0) Transmitter Time-guard Register\r
-#define AT91C_US0_MR ((AT91_REG *) 0xFFFC0004) // (US0) Mode Register\r
-#define AT91C_US0_RTOR ((AT91_REG *) 0xFFFC0024) // (US0) Receiver Time-out Register\r
-#define AT91C_US0_CSR ((AT91_REG *) 0xFFFC0014) // (US0) Channel Status Register\r
-#define AT91C_US0_RHR ((AT91_REG *) 0xFFFC0018) // (US0) Receiver Holding Register\r
-#define AT91C_US0_IDR ((AT91_REG *) 0xFFFC000C) // (US0) Interrupt Disable Register\r
-#define AT91C_US0_THR ((AT91_REG *) 0xFFFC001C) // (US0) Transmitter Holding Register\r
-#define AT91C_US0_IF ((AT91_REG *) 0xFFFC004C) // (US0) IRDA_FILTER Register\r
-#define AT91C_US0_IER ((AT91_REG *) 0xFFFC0008) // (US0) Interrupt Enable Register\r
-// ========== Register definition for PDC_SSC peripheral ========== \r
-#define AT91C_SSC_TNCR ((AT91_REG *) 0xFFFD411C) // (PDC_SSC) Transmit Next Counter Register\r
-#define AT91C_SSC_RPR ((AT91_REG *) 0xFFFD4100) // (PDC_SSC) Receive Pointer Register\r
-#define AT91C_SSC_RNCR ((AT91_REG *) 0xFFFD4114) // (PDC_SSC) Receive Next Counter Register\r
-#define AT91C_SSC_TPR ((AT91_REG *) 0xFFFD4108) // (PDC_SSC) Transmit Pointer Register\r
-#define AT91C_SSC_PTCR ((AT91_REG *) 0xFFFD4120) // (PDC_SSC) PDC Transfer Control Register\r
-#define AT91C_SSC_TCR ((AT91_REG *) 0xFFFD410C) // (PDC_SSC) Transmit Counter Register\r
-#define AT91C_SSC_RCR ((AT91_REG *) 0xFFFD4104) // (PDC_SSC) Receive Counter Register\r
-#define AT91C_SSC_RNPR ((AT91_REG *) 0xFFFD4110) // (PDC_SSC) Receive Next Pointer Register\r
-#define AT91C_SSC_TNPR ((AT91_REG *) 0xFFFD4118) // (PDC_SSC) Transmit Next Pointer Register\r
-#define AT91C_SSC_PTSR ((AT91_REG *) 0xFFFD4124) // (PDC_SSC) PDC Transfer Status Register\r
-// ========== Register definition for SSC peripheral ========== \r
-#define AT91C_SSC_RHR ((AT91_REG *) 0xFFFD4020) // (SSC) Receive Holding Register\r
-#define AT91C_SSC_RSHR ((AT91_REG *) 0xFFFD4030) // (SSC) Receive Sync Holding Register\r
-#define AT91C_SSC_TFMR ((AT91_REG *) 0xFFFD401C) // (SSC) Transmit Frame Mode Register\r
-#define AT91C_SSC_IDR ((AT91_REG *) 0xFFFD4048) // (SSC) Interrupt Disable Register\r
-#define AT91C_SSC_THR ((AT91_REG *) 0xFFFD4024) // (SSC) Transmit Holding Register\r
-#define AT91C_SSC_RCMR ((AT91_REG *) 0xFFFD4010) // (SSC) Receive Clock ModeRegister\r
-#define AT91C_SSC_IER ((AT91_REG *) 0xFFFD4044) // (SSC) Interrupt Enable Register\r
-#define AT91C_SSC_TSHR ((AT91_REG *) 0xFFFD4034) // (SSC) Transmit Sync Holding Register\r
-#define AT91C_SSC_SR ((AT91_REG *) 0xFFFD4040) // (SSC) Status Register\r
-#define AT91C_SSC_CMR ((AT91_REG *) 0xFFFD4004) // (SSC) Clock Mode Register\r
-#define AT91C_SSC_TCMR ((AT91_REG *) 0xFFFD4018) // (SSC) Transmit Clock Mode Register\r
-#define AT91C_SSC_CR ((AT91_REG *) 0xFFFD4000) // (SSC) Control Register\r
-#define AT91C_SSC_IMR ((AT91_REG *) 0xFFFD404C) // (SSC) Interrupt Mask Register\r
-#define AT91C_SSC_RFMR ((AT91_REG *) 0xFFFD4014) // (SSC) Receive Frame Mode Register\r
-// ========== Register definition for TWI peripheral ========== \r
-#define AT91C_TWI_IER ((AT91_REG *) 0xFFFB8024) // (TWI) Interrupt Enable Register\r
-#define AT91C_TWI_CR ((AT91_REG *) 0xFFFB8000) // (TWI) Control Register\r
-#define AT91C_TWI_SR ((AT91_REG *) 0xFFFB8020) // (TWI) Status Register\r
-#define AT91C_TWI_IMR ((AT91_REG *) 0xFFFB802C) // (TWI) Interrupt Mask Register\r
-#define AT91C_TWI_THR ((AT91_REG *) 0xFFFB8034) // (TWI) Transmit Holding Register\r
-#define AT91C_TWI_IDR ((AT91_REG *) 0xFFFB8028) // (TWI) Interrupt Disable Register\r
-#define AT91C_TWI_IADR ((AT91_REG *) 0xFFFB800C) // (TWI) Internal Address Register\r
-#define AT91C_TWI_MMR ((AT91_REG *) 0xFFFB8004) // (TWI) Master Mode Register\r
-#define AT91C_TWI_CWGR ((AT91_REG *) 0xFFFB8010) // (TWI) Clock Waveform Generator Register\r
-#define AT91C_TWI_RHR ((AT91_REG *) 0xFFFB8030) // (TWI) Receive Holding Register\r
-// ========== Register definition for PWMC_CH3 peripheral ========== \r
-#define AT91C_PWMC_CH3_CUPDR ((AT91_REG *) 0xFFFCC270) // (PWMC_CH3) Channel Update Register\r
-#define AT91C_PWMC_CH3_Reserved ((AT91_REG *) 0xFFFCC274) // (PWMC_CH3) Reserved\r
-#define AT91C_PWMC_CH3_CPRDR ((AT91_REG *) 0xFFFCC268) // (PWMC_CH3) Channel Period Register\r
-#define AT91C_PWMC_CH3_CDTYR ((AT91_REG *) 0xFFFCC264) // (PWMC_CH3) Channel Duty Cycle Register\r
-#define AT91C_PWMC_CH3_CCNTR ((AT91_REG *) 0xFFFCC26C) // (PWMC_CH3) Channel Counter Register\r
-#define AT91C_PWMC_CH3_CMR ((AT91_REG *) 0xFFFCC260) // (PWMC_CH3) Channel Mode Register\r
-// ========== Register definition for PWMC_CH2 peripheral ========== \r
-#define AT91C_PWMC_CH2_Reserved ((AT91_REG *) 0xFFFCC254) // (PWMC_CH2) Reserved\r
-#define AT91C_PWMC_CH2_CMR ((AT91_REG *) 0xFFFCC240) // (PWMC_CH2) Channel Mode Register\r
-#define AT91C_PWMC_CH2_CCNTR ((AT91_REG *) 0xFFFCC24C) // (PWMC_CH2) Channel Counter Register\r
-#define AT91C_PWMC_CH2_CPRDR ((AT91_REG *) 0xFFFCC248) // (PWMC_CH2) Channel Period Register\r
-#define AT91C_PWMC_CH2_CUPDR ((AT91_REG *) 0xFFFCC250) // (PWMC_CH2) Channel Update Register\r
-#define AT91C_PWMC_CH2_CDTYR ((AT91_REG *) 0xFFFCC244) // (PWMC_CH2) Channel Duty Cycle Register\r
-// ========== Register definition for PWMC_CH1 peripheral ========== \r
-#define AT91C_PWMC_CH1_Reserved ((AT91_REG *) 0xFFFCC234) // (PWMC_CH1) Reserved\r
-#define AT91C_PWMC_CH1_CUPDR ((AT91_REG *) 0xFFFCC230) // (PWMC_CH1) Channel Update Register\r
-#define AT91C_PWMC_CH1_CPRDR ((AT91_REG *) 0xFFFCC228) // (PWMC_CH1) Channel Period Register\r
-#define AT91C_PWMC_CH1_CCNTR ((AT91_REG *) 0xFFFCC22C) // (PWMC_CH1) Channel Counter Register\r
-#define AT91C_PWMC_CH1_CDTYR ((AT91_REG *) 0xFFFCC224) // (PWMC_CH1) Channel Duty Cycle Register\r
-#define AT91C_PWMC_CH1_CMR ((AT91_REG *) 0xFFFCC220) // (PWMC_CH1) Channel Mode Register\r
-// ========== Register definition for PWMC_CH0 peripheral ========== \r
-#define AT91C_PWMC_CH0_Reserved ((AT91_REG *) 0xFFFCC214) // (PWMC_CH0) Reserved\r
-#define AT91C_PWMC_CH0_CPRDR ((AT91_REG *) 0xFFFCC208) // (PWMC_CH0) Channel Period Register\r
-#define AT91C_PWMC_CH0_CDTYR ((AT91_REG *) 0xFFFCC204) // (PWMC_CH0) Channel Duty Cycle Register\r
-#define AT91C_PWMC_CH0_CMR ((AT91_REG *) 0xFFFCC200) // (PWMC_CH0) Channel Mode Register\r
-#define AT91C_PWMC_CH0_CUPDR ((AT91_REG *) 0xFFFCC210) // (PWMC_CH0) Channel Update Register\r
-#define AT91C_PWMC_CH0_CCNTR ((AT91_REG *) 0xFFFCC20C) // (PWMC_CH0) Channel Counter Register\r
-// ========== Register definition for PWMC peripheral ========== \r
-#define AT91C_PWMC_IDR ((AT91_REG *) 0xFFFCC014) // (PWMC) PWMC Interrupt Disable Register\r
-#define AT91C_PWMC_DIS ((AT91_REG *) 0xFFFCC008) // (PWMC) PWMC Disable Register\r
-#define AT91C_PWMC_IER ((AT91_REG *) 0xFFFCC010) // (PWMC) PWMC Interrupt Enable Register\r
-#define AT91C_PWMC_VR ((AT91_REG *) 0xFFFCC0FC) // (PWMC) PWMC Version Register\r
-#define AT91C_PWMC_ISR ((AT91_REG *) 0xFFFCC01C) // (PWMC) PWMC Interrupt Status Register\r
-#define AT91C_PWMC_SR ((AT91_REG *) 0xFFFCC00C) // (PWMC) PWMC Status Register\r
-#define AT91C_PWMC_IMR ((AT91_REG *) 0xFFFCC018) // (PWMC) PWMC Interrupt Mask Register\r
-#define AT91C_PWMC_MR ((AT91_REG *) 0xFFFCC000) // (PWMC) PWMC Mode Register\r
-#define AT91C_PWMC_ENA ((AT91_REG *) 0xFFFCC004) // (PWMC) PWMC Enable Register\r
-// ========== Register definition for UDP peripheral ========== \r
-#define AT91C_UDP_IMR ((AT91_REG *) 0xFFFB0018) // (UDP) Interrupt Mask Register\r
-#define AT91C_UDP_FADDR ((AT91_REG *) 0xFFFB0008) // (UDP) Function Address Register\r
-#define AT91C_UDP_NUM ((AT91_REG *) 0xFFFB0000) // (UDP) Frame Number Register\r
-#define AT91C_UDP_FDR ((AT91_REG *) 0xFFFB0050) // (UDP) Endpoint FIFO Data Register\r
-#define AT91C_UDP_ISR ((AT91_REG *) 0xFFFB001C) // (UDP) Interrupt Status Register\r
-#define AT91C_UDP_CSR ((AT91_REG *) 0xFFFB0030) // (UDP) Endpoint Control and Status Register\r
-#define AT91C_UDP_IDR ((AT91_REG *) 0xFFFB0014) // (UDP) Interrupt Disable Register\r
-#define AT91C_UDP_ICR ((AT91_REG *) 0xFFFB0020) // (UDP) Interrupt Clear Register\r
-#define AT91C_UDP_RSTEP ((AT91_REG *) 0xFFFB0028) // (UDP) Reset Endpoint Register\r
-#define AT91C_UDP_TXVC ((AT91_REG *) 0xFFFB0074) // (UDP) Transceiver Control Register\r
-#define AT91C_UDP_GLBSTATE ((AT91_REG *) 0xFFFB0004) // (UDP) Global State Register\r
-#define AT91C_UDP_IER ((AT91_REG *) 0xFFFB0010) // (UDP) Interrupt Enable Register\r
-// ========== Register definition for TC0 peripheral ========== \r
-#define AT91C_TC0_SR ((AT91_REG *) 0xFFFA0020) // (TC0) Status Register\r
-#define AT91C_TC0_RC ((AT91_REG *) 0xFFFA001C) // (TC0) Register C\r
-#define AT91C_TC0_RB ((AT91_REG *) 0xFFFA0018) // (TC0) Register B\r
-#define AT91C_TC0_CCR ((AT91_REG *) 0xFFFA0000) // (TC0) Channel Control Register\r
-#define AT91C_TC0_CMR ((AT91_REG *) 0xFFFA0004) // (TC0) Channel Mode Register (Capture Mode / Waveform Mode)\r
-#define AT91C_TC0_IER ((AT91_REG *) 0xFFFA0024) // (TC0) Interrupt Enable Register\r
-#define AT91C_TC0_RA ((AT91_REG *) 0xFFFA0014) // (TC0) Register A\r
-#define AT91C_TC0_IDR ((AT91_REG *) 0xFFFA0028) // (TC0) Interrupt Disable Register\r
-#define AT91C_TC0_CV ((AT91_REG *) 0xFFFA0010) // (TC0) Counter Value\r
-#define AT91C_TC0_IMR ((AT91_REG *) 0xFFFA002C) // (TC0) Interrupt Mask Register\r
-// ========== Register definition for TC1 peripheral ========== \r
-#define AT91C_TC1_RB ((AT91_REG *) 0xFFFA0058) // (TC1) Register B\r
-#define AT91C_TC1_CCR ((AT91_REG *) 0xFFFA0040) // (TC1) Channel Control Register\r
-#define AT91C_TC1_IER ((AT91_REG *) 0xFFFA0064) // (TC1) Interrupt Enable Register\r
-#define AT91C_TC1_IDR ((AT91_REG *) 0xFFFA0068) // (TC1) Interrupt Disable Register\r
-#define AT91C_TC1_SR ((AT91_REG *) 0xFFFA0060) // (TC1) Status Register\r
-#define AT91C_TC1_CMR ((AT91_REG *) 0xFFFA0044) // (TC1) Channel Mode Register (Capture Mode / Waveform Mode)\r
-#define AT91C_TC1_RA ((AT91_REG *) 0xFFFA0054) // (TC1) Register A\r
-#define AT91C_TC1_RC ((AT91_REG *) 0xFFFA005C) // (TC1) Register C\r
-#define AT91C_TC1_IMR ((AT91_REG *) 0xFFFA006C) // (TC1) Interrupt Mask Register\r
-#define AT91C_TC1_CV ((AT91_REG *) 0xFFFA0050) // (TC1) Counter Value\r
-// ========== Register definition for TC2 peripheral ========== \r
-#define AT91C_TC2_CMR ((AT91_REG *) 0xFFFA0084) // (TC2) Channel Mode Register (Capture Mode / Waveform Mode)\r
-#define AT91C_TC2_CCR ((AT91_REG *) 0xFFFA0080) // (TC2) Channel Control Register\r
-#define AT91C_TC2_CV ((AT91_REG *) 0xFFFA0090) // (TC2) Counter Value\r
-#define AT91C_TC2_RA ((AT91_REG *) 0xFFFA0094) // (TC2) Register A\r
-#define AT91C_TC2_RB ((AT91_REG *) 0xFFFA0098) // (TC2) Register B\r
-#define AT91C_TC2_IDR ((AT91_REG *) 0xFFFA00A8) // (TC2) Interrupt Disable Register\r
-#define AT91C_TC2_IMR ((AT91_REG *) 0xFFFA00AC) // (TC2) Interrupt Mask Register\r
-#define AT91C_TC2_RC ((AT91_REG *) 0xFFFA009C) // (TC2) Register C\r
-#define AT91C_TC2_IER ((AT91_REG *) 0xFFFA00A4) // (TC2) Interrupt Enable Register\r
-#define AT91C_TC2_SR ((AT91_REG *) 0xFFFA00A0) // (TC2) Status Register\r
-// ========== Register definition for TCB peripheral ========== \r
-#define AT91C_TCB_BMR ((AT91_REG *) 0xFFFA00C4) // (TCB) TC Block Mode Register\r
-#define AT91C_TCB_BCR ((AT91_REG *) 0xFFFA00C0) // (TCB) TC Block Control Register\r
-// ========== Register definition for CAN_MB0 peripheral ========== \r
-#define AT91C_CAN_MB0_MDL ((AT91_REG *) 0xFFFD0214) // (CAN_MB0) MailBox Data Low Register\r
-#define AT91C_CAN_MB0_MAM ((AT91_REG *) 0xFFFD0204) // (CAN_MB0) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB0_MCR ((AT91_REG *) 0xFFFD021C) // (CAN_MB0) MailBox Control Register\r
-#define AT91C_CAN_MB0_MID ((AT91_REG *) 0xFFFD0208) // (CAN_MB0) MailBox ID Register\r
-#define AT91C_CAN_MB0_MSR ((AT91_REG *) 0xFFFD0210) // (CAN_MB0) MailBox Status Register\r
-#define AT91C_CAN_MB0_MFID ((AT91_REG *) 0xFFFD020C) // (CAN_MB0) MailBox Family ID Register\r
-#define AT91C_CAN_MB0_MDH ((AT91_REG *) 0xFFFD0218) // (CAN_MB0) MailBox Data High Register\r
-#define AT91C_CAN_MB0_MMR ((AT91_REG *) 0xFFFD0200) // (CAN_MB0) MailBox Mode Register\r
-// ========== Register definition for CAN_MB1 peripheral ========== \r
-#define AT91C_CAN_MB1_MDL ((AT91_REG *) 0xFFFD0234) // (CAN_MB1) MailBox Data Low Register\r
-#define AT91C_CAN_MB1_MID ((AT91_REG *) 0xFFFD0228) // (CAN_MB1) MailBox ID Register\r
-#define AT91C_CAN_MB1_MMR ((AT91_REG *) 0xFFFD0220) // (CAN_MB1) MailBox Mode Register\r
-#define AT91C_CAN_MB1_MSR ((AT91_REG *) 0xFFFD0230) // (CAN_MB1) MailBox Status Register\r
-#define AT91C_CAN_MB1_MAM ((AT91_REG *) 0xFFFD0224) // (CAN_MB1) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB1_MDH ((AT91_REG *) 0xFFFD0238) // (CAN_MB1) MailBox Data High Register\r
-#define AT91C_CAN_MB1_MCR ((AT91_REG *) 0xFFFD023C) // (CAN_MB1) MailBox Control Register\r
-#define AT91C_CAN_MB1_MFID ((AT91_REG *) 0xFFFD022C) // (CAN_MB1) MailBox Family ID Register\r
-// ========== Register definition for CAN_MB2 peripheral ========== \r
-#define AT91C_CAN_MB2_MCR ((AT91_REG *) 0xFFFD025C) // (CAN_MB2) MailBox Control Register\r
-#define AT91C_CAN_MB2_MDH ((AT91_REG *) 0xFFFD0258) // (CAN_MB2) MailBox Data High Register\r
-#define AT91C_CAN_MB2_MID ((AT91_REG *) 0xFFFD0248) // (CAN_MB2) MailBox ID Register\r
-#define AT91C_CAN_MB2_MDL ((AT91_REG *) 0xFFFD0254) // (CAN_MB2) MailBox Data Low Register\r
-#define AT91C_CAN_MB2_MMR ((AT91_REG *) 0xFFFD0240) // (CAN_MB2) MailBox Mode Register\r
-#define AT91C_CAN_MB2_MAM ((AT91_REG *) 0xFFFD0244) // (CAN_MB2) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB2_MFID ((AT91_REG *) 0xFFFD024C) // (CAN_MB2) MailBox Family ID Register\r
-#define AT91C_CAN_MB2_MSR ((AT91_REG *) 0xFFFD0250) // (CAN_MB2) MailBox Status Register\r
-// ========== Register definition for CAN_MB3 peripheral ========== \r
-#define AT91C_CAN_MB3_MFID ((AT91_REG *) 0xFFFD026C) // (CAN_MB3) MailBox Family ID Register\r
-#define AT91C_CAN_MB3_MAM ((AT91_REG *) 0xFFFD0264) // (CAN_MB3) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB3_MID ((AT91_REG *) 0xFFFD0268) // (CAN_MB3) MailBox ID Register\r
-#define AT91C_CAN_MB3_MCR ((AT91_REG *) 0xFFFD027C) // (CAN_MB3) MailBox Control Register\r
-#define AT91C_CAN_MB3_MMR ((AT91_REG *) 0xFFFD0260) // (CAN_MB3) MailBox Mode Register\r
-#define AT91C_CAN_MB3_MSR ((AT91_REG *) 0xFFFD0270) // (CAN_MB3) MailBox Status Register\r
-#define AT91C_CAN_MB3_MDL ((AT91_REG *) 0xFFFD0274) // (CAN_MB3) MailBox Data Low Register\r
-#define AT91C_CAN_MB3_MDH ((AT91_REG *) 0xFFFD0278) // (CAN_MB3) MailBox Data High Register\r
-// ========== Register definition for CAN_MB4 peripheral ========== \r
-#define AT91C_CAN_MB4_MID ((AT91_REG *) 0xFFFD0288) // (CAN_MB4) MailBox ID Register\r
-#define AT91C_CAN_MB4_MMR ((AT91_REG *) 0xFFFD0280) // (CAN_MB4) MailBox Mode Register\r
-#define AT91C_CAN_MB4_MDH ((AT91_REG *) 0xFFFD0298) // (CAN_MB4) MailBox Data High Register\r
-#define AT91C_CAN_MB4_MFID ((AT91_REG *) 0xFFFD028C) // (CAN_MB4) MailBox Family ID Register\r
-#define AT91C_CAN_MB4_MSR ((AT91_REG *) 0xFFFD0290) // (CAN_MB4) MailBox Status Register\r
-#define AT91C_CAN_MB4_MCR ((AT91_REG *) 0xFFFD029C) // (CAN_MB4) MailBox Control Register\r
-#define AT91C_CAN_MB4_MDL ((AT91_REG *) 0xFFFD0294) // (CAN_MB4) MailBox Data Low Register\r
-#define AT91C_CAN_MB4_MAM ((AT91_REG *) 0xFFFD0284) // (CAN_MB4) MailBox Acceptance Mask Register\r
-// ========== Register definition for CAN_MB5 peripheral ========== \r
-#define AT91C_CAN_MB5_MSR ((AT91_REG *) 0xFFFD02B0) // (CAN_MB5) MailBox Status Register\r
-#define AT91C_CAN_MB5_MCR ((AT91_REG *) 0xFFFD02BC) // (CAN_MB5) MailBox Control Register\r
-#define AT91C_CAN_MB5_MFID ((AT91_REG *) 0xFFFD02AC) // (CAN_MB5) MailBox Family ID Register\r
-#define AT91C_CAN_MB5_MDH ((AT91_REG *) 0xFFFD02B8) // (CAN_MB5) MailBox Data High Register\r
-#define AT91C_CAN_MB5_MID ((AT91_REG *) 0xFFFD02A8) // (CAN_MB5) MailBox ID Register\r
-#define AT91C_CAN_MB5_MMR ((AT91_REG *) 0xFFFD02A0) // (CAN_MB5) MailBox Mode Register\r
-#define AT91C_CAN_MB5_MDL ((AT91_REG *) 0xFFFD02B4) // (CAN_MB5) MailBox Data Low Register\r
-#define AT91C_CAN_MB5_MAM ((AT91_REG *) 0xFFFD02A4) // (CAN_MB5) MailBox Acceptance Mask Register\r
-// ========== Register definition for CAN_MB6 peripheral ========== \r
-#define AT91C_CAN_MB6_MFID ((AT91_REG *) 0xFFFD02CC) // (CAN_MB6) MailBox Family ID Register\r
-#define AT91C_CAN_MB6_MID ((AT91_REG *) 0xFFFD02C8) // (CAN_MB6) MailBox ID Register\r
-#define AT91C_CAN_MB6_MAM ((AT91_REG *) 0xFFFD02C4) // (CAN_MB6) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB6_MSR ((AT91_REG *) 0xFFFD02D0) // (CAN_MB6) MailBox Status Register\r
-#define AT91C_CAN_MB6_MDL ((AT91_REG *) 0xFFFD02D4) // (CAN_MB6) MailBox Data Low Register\r
-#define AT91C_CAN_MB6_MCR ((AT91_REG *) 0xFFFD02DC) // (CAN_MB6) MailBox Control Register\r
-#define AT91C_CAN_MB6_MDH ((AT91_REG *) 0xFFFD02D8) // (CAN_MB6) MailBox Data High Register\r
-#define AT91C_CAN_MB6_MMR ((AT91_REG *) 0xFFFD02C0) // (CAN_MB6) MailBox Mode Register\r
-// ========== Register definition for CAN_MB7 peripheral ========== \r
-#define AT91C_CAN_MB7_MCR ((AT91_REG *) 0xFFFD02FC) // (CAN_MB7) MailBox Control Register\r
-#define AT91C_CAN_MB7_MDH ((AT91_REG *) 0xFFFD02F8) // (CAN_MB7) MailBox Data High Register\r
-#define AT91C_CAN_MB7_MFID ((AT91_REG *) 0xFFFD02EC) // (CAN_MB7) MailBox Family ID Register\r
-#define AT91C_CAN_MB7_MDL ((AT91_REG *) 0xFFFD02F4) // (CAN_MB7) MailBox Data Low Register\r
-#define AT91C_CAN_MB7_MID ((AT91_REG *) 0xFFFD02E8) // (CAN_MB7) MailBox ID Register\r
-#define AT91C_CAN_MB7_MMR ((AT91_REG *) 0xFFFD02E0) // (CAN_MB7) MailBox Mode Register\r
-#define AT91C_CAN_MB7_MAM ((AT91_REG *) 0xFFFD02E4) // (CAN_MB7) MailBox Acceptance Mask Register\r
-#define AT91C_CAN_MB7_MSR ((AT91_REG *) 0xFFFD02F0) // (CAN_MB7) MailBox Status Register\r
-// ========== Register definition for CAN peripheral ========== \r
-#define AT91C_CAN_TCR ((AT91_REG *) 0xFFFD0024) // (CAN) Transfer Command Register\r
-#define AT91C_CAN_IMR ((AT91_REG *) 0xFFFD000C) // (CAN) Interrupt Mask Register\r
-#define AT91C_CAN_IER ((AT91_REG *) 0xFFFD0004) // (CAN) Interrupt Enable Register\r
-#define AT91C_CAN_ECR ((AT91_REG *) 0xFFFD0020) // (CAN) Error Counter Register\r
-#define AT91C_CAN_TIMESTP ((AT91_REG *) 0xFFFD001C) // (CAN) Time Stamp Register\r
-#define AT91C_CAN_MR ((AT91_REG *) 0xFFFD0000) // (CAN) Mode Register\r
-#define AT91C_CAN_IDR ((AT91_REG *) 0xFFFD0008) // (CAN) Interrupt Disable Register\r
-#define AT91C_CAN_ACR ((AT91_REG *) 0xFFFD0028) // (CAN) Abort Command Register\r
-#define AT91C_CAN_TIM ((AT91_REG *) 0xFFFD0018) // (CAN) Timer Register\r
-#define AT91C_CAN_SR ((AT91_REG *) 0xFFFD0010) // (CAN) Status Register\r
-#define AT91C_CAN_BR ((AT91_REG *) 0xFFFD0014) // (CAN) Baudrate Register\r
-#define AT91C_CAN_VR ((AT91_REG *) 0xFFFD00FC) // (CAN) Version Register\r
-// ========== Register definition for EMAC peripheral ========== \r
-#define AT91C_EMAC_ISR ((AT91_REG *) 0xFFFDC024) // (EMAC) Interrupt Status Register\r
-#define AT91C_EMAC_SA4H ((AT91_REG *) 0xFFFDC0B4) // (EMAC) Specific Address 4 Top, Last 2 bytes\r
-#define AT91C_EMAC_SA1L ((AT91_REG *) 0xFFFDC098) // (EMAC) Specific Address 1 Bottom, First 4 bytes\r
-#define AT91C_EMAC_ELE ((AT91_REG *) 0xFFFDC078) // (EMAC) Excessive Length Errors Register\r
-#define AT91C_EMAC_LCOL ((AT91_REG *) 0xFFFDC05C) // (EMAC) Late Collision Register\r
-#define AT91C_EMAC_RLE ((AT91_REG *) 0xFFFDC088) // (EMAC) Receive Length Field Mismatch Register\r
-#define AT91C_EMAC_WOL ((AT91_REG *) 0xFFFDC0C4) // (EMAC) Wake On LAN Register\r
-#define AT91C_EMAC_DTF ((AT91_REG *) 0xFFFDC058) // (EMAC) Deferred Transmission Frame Register\r
-#define AT91C_EMAC_TUND ((AT91_REG *) 0xFFFDC064) // (EMAC) Transmit Underrun Error Register\r
-#define AT91C_EMAC_NCR ((AT91_REG *) 0xFFFDC000) // (EMAC) Network Control Register\r
-#define AT91C_EMAC_SA4L ((AT91_REG *) 0xFFFDC0B0) // (EMAC) Specific Address 4 Bottom, First 4 bytes\r
-#define AT91C_EMAC_RSR ((AT91_REG *) 0xFFFDC020) // (EMAC) Receive Status Register\r
-#define AT91C_EMAC_SA3L ((AT91_REG *) 0xFFFDC0A8) // (EMAC) Specific Address 3 Bottom, First 4 bytes\r
-#define AT91C_EMAC_TSR ((AT91_REG *) 0xFFFDC014) // (EMAC) Transmit Status Register\r
-#define AT91C_EMAC_IDR ((AT91_REG *) 0xFFFDC02C) // (EMAC) Interrupt Disable Register\r
-#define AT91C_EMAC_RSE ((AT91_REG *) 0xFFFDC074) // (EMAC) Receive Symbol Errors Register\r
-#define AT91C_EMAC_ECOL ((AT91_REG *) 0xFFFDC060) // (EMAC) Excessive Collision Register\r
-#define AT91C_EMAC_TID ((AT91_REG *) 0xFFFDC0B8) // (EMAC) Type ID Checking Register\r
-#define AT91C_EMAC_HRB ((AT91_REG *) 0xFFFDC090) // (EMAC) Hash Address Bottom[31:0]\r
-#define AT91C_EMAC_TBQP ((AT91_REG *) 0xFFFDC01C) // (EMAC) Transmit Buffer Queue Pointer\r
-#define AT91C_EMAC_USRIO ((AT91_REG *) 0xFFFDC0C0) // (EMAC) USER Input/Output Register\r
-#define AT91C_EMAC_PTR ((AT91_REG *) 0xFFFDC038) // (EMAC) Pause Time Register\r
-#define AT91C_EMAC_SA2H ((AT91_REG *) 0xFFFDC0A4) // (EMAC) Specific Address 2 Top, Last 2 bytes\r
-#define AT91C_EMAC_ROV ((AT91_REG *) 0xFFFDC070) // (EMAC) Receive Overrun Errors Register\r
-#define AT91C_EMAC_ALE ((AT91_REG *) 0xFFFDC054) // (EMAC) Alignment Error Register\r
-#define AT91C_EMAC_RJA ((AT91_REG *) 0xFFFDC07C) // (EMAC) Receive Jabbers Register\r
-#define AT91C_EMAC_RBQP ((AT91_REG *) 0xFFFDC018) // (EMAC) Receive Buffer Queue Pointer\r
-#define AT91C_EMAC_TPF ((AT91_REG *) 0xFFFDC08C) // (EMAC) Transmitted Pause Frames Register\r
-#define AT91C_EMAC_NCFGR ((AT91_REG *) 0xFFFDC004) // (EMAC) Network Configuration Register\r
-#define AT91C_EMAC_HRT ((AT91_REG *) 0xFFFDC094) // (EMAC) Hash Address Top[63:32]\r
-#define AT91C_EMAC_USF ((AT91_REG *) 0xFFFDC080) // (EMAC) Undersize Frames Register\r
-#define AT91C_EMAC_FCSE ((AT91_REG *) 0xFFFDC050) // (EMAC) Frame Check Sequence Error Register\r
-#define AT91C_EMAC_TPQ ((AT91_REG *) 0xFFFDC0BC) // (EMAC) Transmit Pause Quantum Register\r
-#define AT91C_EMAC_MAN ((AT91_REG *) 0xFFFDC034) // (EMAC) PHY Maintenance Register\r
-#define AT91C_EMAC_FTO ((AT91_REG *) 0xFFFDC040) // (EMAC) Frames Transmitted OK Register\r
-#define AT91C_EMAC_REV ((AT91_REG *) 0xFFFDC0FC) // (EMAC) Revision Register\r
-#define AT91C_EMAC_IMR ((AT91_REG *) 0xFFFDC030) // (EMAC) Interrupt Mask Register\r
-#define AT91C_EMAC_SCF ((AT91_REG *) 0xFFFDC044) // (EMAC) Single Collision Frame Register\r
-#define AT91C_EMAC_PFR ((AT91_REG *) 0xFFFDC03C) // (EMAC) Pause Frames received Register\r
-#define AT91C_EMAC_MCF ((AT91_REG *) 0xFFFDC048) // (EMAC) Multiple Collision Frame Register\r
-#define AT91C_EMAC_NSR ((AT91_REG *) 0xFFFDC008) // (EMAC) Network Status Register\r
-#define AT91C_EMAC_SA2L ((AT91_REG *) 0xFFFDC0A0) // (EMAC) Specific Address 2 Bottom, First 4 bytes\r
-#define AT91C_EMAC_FRO ((AT91_REG *) 0xFFFDC04C) // (EMAC) Frames Received OK Register\r
-#define AT91C_EMAC_IER ((AT91_REG *) 0xFFFDC028) // (EMAC) Interrupt Enable Register\r
-#define AT91C_EMAC_SA1H ((AT91_REG *) 0xFFFDC09C) // (EMAC) Specific Address 1 Top, Last 2 bytes\r
-#define AT91C_EMAC_CSE ((AT91_REG *) 0xFFFDC068) // (EMAC) Carrier Sense Error Register\r
-#define AT91C_EMAC_SA3H ((AT91_REG *) 0xFFFDC0AC) // (EMAC) Specific Address 3 Top, Last 2 bytes\r
-#define AT91C_EMAC_RRE ((AT91_REG *) 0xFFFDC06C) // (EMAC) Receive Ressource Error Register\r
-#define AT91C_EMAC_STE ((AT91_REG *) 0xFFFDC084) // (EMAC) SQE Test Error Register\r
-// ========== Register definition for PDC_ADC peripheral ========== \r
-#define AT91C_ADC_PTSR ((AT91_REG *) 0xFFFD8124) // (PDC_ADC) PDC Transfer Status Register\r
-#define AT91C_ADC_PTCR ((AT91_REG *) 0xFFFD8120) // (PDC_ADC) PDC Transfer Control Register\r
-#define AT91C_ADC_TNPR ((AT91_REG *) 0xFFFD8118) // (PDC_ADC) Transmit Next Pointer Register\r
-#define AT91C_ADC_TNCR ((AT91_REG *) 0xFFFD811C) // (PDC_ADC) Transmit Next Counter Register\r
-#define AT91C_ADC_RNPR ((AT91_REG *) 0xFFFD8110) // (PDC_ADC) Receive Next Pointer Register\r
-#define AT91C_ADC_RNCR ((AT91_REG *) 0xFFFD8114) // (PDC_ADC) Receive Next Counter Register\r
-#define AT91C_ADC_RPR ((AT91_REG *) 0xFFFD8100) // (PDC_ADC) Receive Pointer Register\r
-#define AT91C_ADC_TCR ((AT91_REG *) 0xFFFD810C) // (PDC_ADC) Transmit Counter Register\r
-#define AT91C_ADC_TPR ((AT91_REG *) 0xFFFD8108) // (PDC_ADC) Transmit Pointer Register\r
-#define AT91C_ADC_RCR ((AT91_REG *) 0xFFFD8104) // (PDC_ADC) Receive Counter Register\r
-// ========== Register definition for ADC peripheral ========== \r
-#define AT91C_ADC_CDR2 ((AT91_REG *) 0xFFFD8038) // (ADC) ADC Channel Data Register 2\r
-#define AT91C_ADC_CDR3 ((AT91_REG *) 0xFFFD803C) // (ADC) ADC Channel Data Register 3\r
-#define AT91C_ADC_CDR0 ((AT91_REG *) 0xFFFD8030) // (ADC) ADC Channel Data Register 0\r
-#define AT91C_ADC_CDR5 ((AT91_REG *) 0xFFFD8044) // (ADC) ADC Channel Data Register 5\r
-#define AT91C_ADC_CHDR ((AT91_REG *) 0xFFFD8014) // (ADC) ADC Channel Disable Register\r
-#define AT91C_ADC_SR ((AT91_REG *) 0xFFFD801C) // (ADC) ADC Status Register\r
-#define AT91C_ADC_CDR4 ((AT91_REG *) 0xFFFD8040) // (ADC) ADC Channel Data Register 4\r
-#define AT91C_ADC_CDR1 ((AT91_REG *) 0xFFFD8034) // (ADC) ADC Channel Data Register 1\r
-#define AT91C_ADC_LCDR ((AT91_REG *) 0xFFFD8020) // (ADC) ADC Last Converted Data Register\r
-#define AT91C_ADC_IDR ((AT91_REG *) 0xFFFD8028) // (ADC) ADC Interrupt Disable Register\r
-#define AT91C_ADC_CR ((AT91_REG *) 0xFFFD8000) // (ADC) ADC Control Register\r
-#define AT91C_ADC_CDR7 ((AT91_REG *) 0xFFFD804C) // (ADC) ADC Channel Data Register 7\r
-#define AT91C_ADC_CDR6 ((AT91_REG *) 0xFFFD8048) // (ADC) ADC Channel Data Register 6\r
-#define AT91C_ADC_IER ((AT91_REG *) 0xFFFD8024) // (ADC) ADC Interrupt Enable Register\r
-#define AT91C_ADC_CHER ((AT91_REG *) 0xFFFD8010) // (ADC) ADC Channel Enable Register\r
-#define AT91C_ADC_CHSR ((AT91_REG *) 0xFFFD8018) // (ADC) ADC Channel Status Register\r
-#define AT91C_ADC_MR ((AT91_REG *) 0xFFFD8004) // (ADC) ADC Mode Register\r
-#define AT91C_ADC_IMR ((AT91_REG *) 0xFFFD802C) // (ADC) ADC Interrupt Mask Register\r
-// ========== Register definition for PDC_AES peripheral ========== \r
-#define AT91C_AES_TPR ((AT91_REG *) 0xFFFA4108) // (PDC_AES) Transmit Pointer Register\r
-#define AT91C_AES_PTCR ((AT91_REG *) 0xFFFA4120) // (PDC_AES) PDC Transfer Control Register\r
-#define AT91C_AES_RNPR ((AT91_REG *) 0xFFFA4110) // (PDC_AES) Receive Next Pointer Register\r
-#define AT91C_AES_TNCR ((AT91_REG *) 0xFFFA411C) // (PDC_AES) Transmit Next Counter Register\r
-#define AT91C_AES_TCR ((AT91_REG *) 0xFFFA410C) // (PDC_AES) Transmit Counter Register\r
-#define AT91C_AES_RCR ((AT91_REG *) 0xFFFA4104) // (PDC_AES) Receive Counter Register\r
-#define AT91C_AES_RNCR ((AT91_REG *) 0xFFFA4114) // (PDC_AES) Receive Next Counter Register\r
-#define AT91C_AES_TNPR ((AT91_REG *) 0xFFFA4118) // (PDC_AES) Transmit Next Pointer Register\r
-#define AT91C_AES_RPR ((AT91_REG *) 0xFFFA4100) // (PDC_AES) Receive Pointer Register\r
-#define AT91C_AES_PTSR ((AT91_REG *) 0xFFFA4124) // (PDC_AES) PDC Transfer Status Register\r
-// ========== Register definition for AES peripheral ========== \r
-#define AT91C_AES_IVxR ((AT91_REG *) 0xFFFA4060) // (AES) Initialization Vector x Register\r
-#define AT91C_AES_MR ((AT91_REG *) 0xFFFA4004) // (AES) Mode Register\r
-#define AT91C_AES_VR ((AT91_REG *) 0xFFFA40FC) // (AES) AES Version Register\r
-#define AT91C_AES_ODATAxR ((AT91_REG *) 0xFFFA4050) // (AES) Output Data x Register\r
-#define AT91C_AES_IDATAxR ((AT91_REG *) 0xFFFA4040) // (AES) Input Data x Register\r
-#define AT91C_AES_CR ((AT91_REG *) 0xFFFA4000) // (AES) Control Register\r
-#define AT91C_AES_IDR ((AT91_REG *) 0xFFFA4014) // (AES) Interrupt Disable Register\r
-#define AT91C_AES_IMR ((AT91_REG *) 0xFFFA4018) // (AES) Interrupt Mask Register\r
-#define AT91C_AES_IER ((AT91_REG *) 0xFFFA4010) // (AES) Interrupt Enable Register\r
-#define AT91C_AES_KEYWxR ((AT91_REG *) 0xFFFA4020) // (AES) Key Word x Register\r
-#define AT91C_AES_ISR ((AT91_REG *) 0xFFFA401C) // (AES) Interrupt Status Register\r
-// ========== Register definition for PDC_TDES peripheral ========== \r
-#define AT91C_TDES_RNCR ((AT91_REG *) 0xFFFA8114) // (PDC_TDES) Receive Next Counter Register\r
-#define AT91C_TDES_TCR ((AT91_REG *) 0xFFFA810C) // (PDC_TDES) Transmit Counter Register\r
-#define AT91C_TDES_RCR ((AT91_REG *) 0xFFFA8104) // (PDC_TDES) Receive Counter Register\r
-#define AT91C_TDES_TNPR ((AT91_REG *) 0xFFFA8118) // (PDC_TDES) Transmit Next Pointer Register\r
-#define AT91C_TDES_RNPR ((AT91_REG *) 0xFFFA8110) // (PDC_TDES) Receive Next Pointer Register\r
-#define AT91C_TDES_RPR ((AT91_REG *) 0xFFFA8100) // (PDC_TDES) Receive Pointer Register\r
-#define AT91C_TDES_TNCR ((AT91_REG *) 0xFFFA811C) // (PDC_TDES) Transmit Next Counter Register\r
-#define AT91C_TDES_TPR ((AT91_REG *) 0xFFFA8108) // (PDC_TDES) Transmit Pointer Register\r
-#define AT91C_TDES_PTSR ((AT91_REG *) 0xFFFA8124) // (PDC_TDES) PDC Transfer Status Register\r
-#define AT91C_TDES_PTCR ((AT91_REG *) 0xFFFA8120) // (PDC_TDES) PDC Transfer Control Register\r
-// ========== Register definition for TDES peripheral ========== \r
-#define AT91C_TDES_KEY2WxR ((AT91_REG *) 0xFFFA8028) // (TDES) Key 2 Word x Register\r
-#define AT91C_TDES_KEY3WxR ((AT91_REG *) 0xFFFA8030) // (TDES) Key 3 Word x Register\r
-#define AT91C_TDES_IDR ((AT91_REG *) 0xFFFA8014) // (TDES) Interrupt Disable Register\r
-#define AT91C_TDES_VR ((AT91_REG *) 0xFFFA80FC) // (TDES) TDES Version Register\r
-#define AT91C_TDES_IVxR ((AT91_REG *) 0xFFFA8060) // (TDES) Initialization Vector x Register\r
-#define AT91C_TDES_ODATAxR ((AT91_REG *) 0xFFFA8050) // (TDES) Output Data x Register\r
-#define AT91C_TDES_IMR ((AT91_REG *) 0xFFFA8018) // (TDES) Interrupt Mask Register\r
-#define AT91C_TDES_MR ((AT91_REG *) 0xFFFA8004) // (TDES) Mode Register\r
-#define AT91C_TDES_CR ((AT91_REG *) 0xFFFA8000) // (TDES) Control Register\r
-#define AT91C_TDES_IER ((AT91_REG *) 0xFFFA8010) // (TDES) Interrupt Enable Register\r
-#define AT91C_TDES_ISR ((AT91_REG *) 0xFFFA801C) // (TDES) Interrupt Status Register\r
-#define AT91C_TDES_IDATAxR ((AT91_REG *) 0xFFFA8040) // (TDES) Input Data x Register\r
-#define AT91C_TDES_KEY1WxR ((AT91_REG *) 0xFFFA8020) // (TDES) Key 1 Word x Register\r
-\r
-// *****************************************************************************\r
-// PIO DEFINITIONS FOR AT91SAM7X256\r
-// *****************************************************************************\r
-#define AT91C_PIO_PA0 ((unsigned int) 1 << 0) // Pin Controlled by PA0\r
-#define AT91C_PA0_RXD0 ((unsigned int) AT91C_PIO_PA0) // USART 0 Receive Data\r
-#define AT91C_PIO_PA1 ((unsigned int) 1 << 1) // Pin Controlled by PA1\r
-#define AT91C_PA1_TXD0 ((unsigned int) AT91C_PIO_PA1) // USART 0 Transmit Data\r
-#define AT91C_PIO_PA10 ((unsigned int) 1 << 10) // Pin Controlled by PA10\r
-#define AT91C_PA10_TWD ((unsigned int) AT91C_PIO_PA10) // TWI Two-wire Serial Data\r
-#define AT91C_PIO_PA11 ((unsigned int) 1 << 11) // Pin Controlled by PA11\r
-#define AT91C_PA11_TWCK ((unsigned int) AT91C_PIO_PA11) // TWI Two-wire Serial Clock\r
-#define AT91C_PIO_PA12 ((unsigned int) 1 << 12) // Pin Controlled by PA12\r
-#define AT91C_PA12_NPCS00 ((unsigned int) AT91C_PIO_PA12) // SPI 0 Peripheral Chip Select 0\r
-#define AT91C_PIO_PA13 ((unsigned int) 1 << 13) // Pin Controlled by PA13\r
-#define AT91C_PA13_NPCS01 ((unsigned int) AT91C_PIO_PA13) // SPI 0 Peripheral Chip Select 1\r
-#define AT91C_PA13_PCK1 ((unsigned int) AT91C_PIO_PA13) // PMC Programmable Clock Output 1\r
-#define AT91C_PIO_PA14 ((unsigned int) 1 << 14) // Pin Controlled by PA14\r
-#define AT91C_PA14_NPCS02 ((unsigned int) AT91C_PIO_PA14) // SPI 0 Peripheral Chip Select 2\r
-#define AT91C_PA14_IRQ1 ((unsigned int) AT91C_PIO_PA14) // External Interrupt 1\r
-#define AT91C_PIO_PA15 ((unsigned int) 1 << 15) // Pin Controlled by PA15\r
-#define AT91C_PA15_NPCS03 ((unsigned int) AT91C_PIO_PA15) // SPI 0 Peripheral Chip Select 3\r
-#define AT91C_PA15_TCLK2 ((unsigned int) AT91C_PIO_PA15) // Timer Counter 2 external clock input\r
-#define AT91C_PIO_PA16 ((unsigned int) 1 << 16) // Pin Controlled by PA16\r
-#define AT91C_PA16_MISO0 ((unsigned int) AT91C_PIO_PA16) // SPI 0 Master In Slave\r
-#define AT91C_PIO_PA17 ((unsigned int) 1 << 17) // Pin Controlled by PA17\r
-#define AT91C_PA17_MOSI0 ((unsigned int) AT91C_PIO_PA17) // SPI 0 Master Out Slave\r
-#define AT91C_PIO_PA18 ((unsigned int) 1 << 18) // Pin Controlled by PA18\r
-#define AT91C_PA18_SPCK0 ((unsigned int) AT91C_PIO_PA18) // SPI 0 Serial Clock\r
-#define AT91C_PIO_PA19 ((unsigned int) 1 << 19) // Pin Controlled by PA19\r
-#define AT91C_PA19_CANRX ((unsigned int) AT91C_PIO_PA19) // CAN Receive\r
-#define AT91C_PIO_PA2 ((unsigned int) 1 << 2) // Pin Controlled by PA2\r
-#define AT91C_PA2_SCK0 ((unsigned int) AT91C_PIO_PA2) // USART 0 Serial Clock\r
-#define AT91C_PA2_NPCS11 ((unsigned int) AT91C_PIO_PA2) // SPI 1 Peripheral Chip Select 1\r
-#define AT91C_PIO_PA20 ((unsigned int) 1 << 20) // Pin Controlled by PA20\r
-#define AT91C_PA20_CANTX ((unsigned int) AT91C_PIO_PA20) // CAN Transmit\r
-#define AT91C_PIO_PA21 ((unsigned int) 1 << 21) // Pin Controlled by PA21\r
-#define AT91C_PA21_TF ((unsigned int) AT91C_PIO_PA21) // SSC Transmit Frame Sync\r
-#define AT91C_PA21_NPCS10 ((unsigned int) AT91C_PIO_PA21) // SPI 1 Peripheral Chip Select 0\r
-#define AT91C_PIO_PA22 ((unsigned int) 1 << 22) // Pin Controlled by PA22\r
-#define AT91C_PA22_TK ((unsigned int) AT91C_PIO_PA22) // SSC Transmit Clock\r
-#define AT91C_PA22_SPCK1 ((unsigned int) AT91C_PIO_PA22) // SPI 1 Serial Clock\r
-#define AT91C_PIO_PA23 ((unsigned int) 1 << 23) // Pin Controlled by PA23\r
-#define AT91C_PA23_TD ((unsigned int) AT91C_PIO_PA23) // SSC Transmit data\r
-#define AT91C_PA23_MOSI1 ((unsigned int) AT91C_PIO_PA23) // SPI 1 Master Out Slave\r
-#define AT91C_PIO_PA24 ((unsigned int) 1 << 24) // Pin Controlled by PA24\r
-#define AT91C_PA24_RD ((unsigned int) AT91C_PIO_PA24) // SSC Receive Data\r
-#define AT91C_PA24_MISO1 ((unsigned int) AT91C_PIO_PA24) // SPI 1 Master In Slave\r
-#define AT91C_PIO_PA25 ((unsigned int) 1 << 25) // Pin Controlled by PA25\r
-#define AT91C_PA25_RK ((unsigned int) AT91C_PIO_PA25) // SSC Receive Clock\r
-#define AT91C_PA25_NPCS11 ((unsigned int) AT91C_PIO_PA25) // SPI 1 Peripheral Chip Select 1\r
-#define AT91C_PIO_PA26 ((unsigned int) 1 << 26) // Pin Controlled by PA26\r
-#define AT91C_PA26_RF ((unsigned int) AT91C_PIO_PA26) // SSC Receive Frame Sync\r
-#define AT91C_PA26_NPCS12 ((unsigned int) AT91C_PIO_PA26) // SPI 1 Peripheral Chip Select 2\r
-#define AT91C_PIO_PA27 ((unsigned int) 1 << 27) // Pin Controlled by PA27\r
-#define AT91C_PA27_DRXD ((unsigned int) AT91C_PIO_PA27) // DBGU Debug Receive Data\r
-#define AT91C_PA27_PCK3 ((unsigned int) AT91C_PIO_PA27) // PMC Programmable Clock Output 3\r
-#define AT91C_PIO_PA28 ((unsigned int) 1 << 28) // Pin Controlled by PA28\r
-#define AT91C_PA28_DTXD ((unsigned int) AT91C_PIO_PA28) // DBGU Debug Transmit Data\r
-#define AT91C_PIO_PA29 ((unsigned int) 1 << 29) // Pin Controlled by PA29\r
-#define AT91C_PA29_FIQ ((unsigned int) AT91C_PIO_PA29) // AIC Fast Interrupt Input\r
-#define AT91C_PA29_NPCS13 ((unsigned int) AT91C_PIO_PA29) // SPI 1 Peripheral Chip Select 3\r
-#define AT91C_PIO_PA3 ((unsigned int) 1 << 3) // Pin Controlled by PA3\r
-#define AT91C_PA3_RTS0 ((unsigned int) AT91C_PIO_PA3) // USART 0 Ready To Send\r
-#define AT91C_PA3_NPCS12 ((unsigned int) AT91C_PIO_PA3) // SPI 1 Peripheral Chip Select 2\r
-#define AT91C_PIO_PA30 ((unsigned int) 1 << 30) // Pin Controlled by PA30\r
-#define AT91C_PA30_IRQ0 ((unsigned int) AT91C_PIO_PA30) // External Interrupt 0\r
-#define AT91C_PA30_PCK2 ((unsigned int) AT91C_PIO_PA30) // PMC Programmable Clock Output 2\r
-#define AT91C_PIO_PA4 ((unsigned int) 1 << 4) // Pin Controlled by PA4\r
-#define AT91C_PA4_CTS0 ((unsigned int) AT91C_PIO_PA4) // USART 0 Clear To Send\r
-#define AT91C_PA4_NPCS13 ((unsigned int) AT91C_PIO_PA4) // SPI 1 Peripheral Chip Select 3\r
-#define AT91C_PIO_PA5 ((unsigned int) 1 << 5) // Pin Controlled by PA5\r
-#define AT91C_PA5_RXD1 ((unsigned int) AT91C_PIO_PA5) // USART 1 Receive Data\r
-#define AT91C_PIO_PA6 ((unsigned int) 1 << 6) // Pin Controlled by PA6\r
-#define AT91C_PA6_TXD1 ((unsigned int) AT91C_PIO_PA6) // USART 1 Transmit Data\r
-#define AT91C_PIO_PA7 ((unsigned int) 1 << 7) // Pin Controlled by PA7\r
-#define AT91C_PA7_SCK1 ((unsigned int) AT91C_PIO_PA7) // USART 1 Serial Clock\r
-#define AT91C_PA7_NPCS01 ((unsigned int) AT91C_PIO_PA7) // SPI 0 Peripheral Chip Select 1\r
-#define AT91C_PIO_PA8 ((unsigned int) 1 << 8) // Pin Controlled by PA8\r
-#define AT91C_PA8_RTS1 ((unsigned int) AT91C_PIO_PA8) // USART 1 Ready To Send\r
-#define AT91C_PA8_NPCS02 ((unsigned int) AT91C_PIO_PA8) // SPI 0 Peripheral Chip Select 2\r
-#define AT91C_PIO_PA9 ((unsigned int) 1 << 9) // Pin Controlled by PA9\r
-#define AT91C_PA9_CTS1 ((unsigned int) AT91C_PIO_PA9) // USART 1 Clear To Send\r
-#define AT91C_PA9_NPCS03 ((unsigned int) AT91C_PIO_PA9) // SPI 0 Peripheral Chip Select 3\r
-#define AT91C_PIO_PB0 ((unsigned int) 1 << 0) // Pin Controlled by PB0\r
-#define AT91C_PB0_ETXCK_EREFCK ((unsigned int) AT91C_PIO_PB0) // Ethernet MAC Transmit Clock/Reference Clock\r
-#define AT91C_PB0_PCK0 ((unsigned int) AT91C_PIO_PB0) // PMC Programmable Clock Output 0\r
-#define AT91C_PIO_PB1 ((unsigned int) 1 << 1) // Pin Controlled by PB1\r
-#define AT91C_PB1_ETXEN ((unsigned int) AT91C_PIO_PB1) // Ethernet MAC Transmit Enable\r
-#define AT91C_PIO_PB10 ((unsigned int) 1 << 10) // Pin Controlled by PB10\r
-#define AT91C_PB10_ETX2 ((unsigned int) AT91C_PIO_PB10) // Ethernet MAC Transmit Data 2\r
-#define AT91C_PB10_NPCS11 ((unsigned int) AT91C_PIO_PB10) // SPI 1 Peripheral Chip Select 1\r
-#define AT91C_PIO_PB11 ((unsigned int) 1 << 11) // Pin Controlled by PB11\r
-#define AT91C_PB11_ETX3 ((unsigned int) AT91C_PIO_PB11) // Ethernet MAC Transmit Data 3\r
-#define AT91C_PB11_NPCS12 ((unsigned int) AT91C_PIO_PB11) // SPI 1 Peripheral Chip Select 2\r
-#define AT91C_PIO_PB12 ((unsigned int) 1 << 12) // Pin Controlled by PB12\r
-#define AT91C_PB12_ETXER ((unsigned int) AT91C_PIO_PB12) // Ethernet MAC Transmikt Coding Error\r
-#define AT91C_PB12_TCLK0 ((unsigned int) AT91C_PIO_PB12) // Timer Counter 0 external clock input\r
-#define AT91C_PIO_PB13 ((unsigned int) 1 << 13) // Pin Controlled by PB13\r
-#define AT91C_PB13_ERX2 ((unsigned int) AT91C_PIO_PB13) // Ethernet MAC Receive Data 2\r
-#define AT91C_PB13_NPCS01 ((unsigned int) AT91C_PIO_PB13) // SPI 0 Peripheral Chip Select 1\r
-#define AT91C_PIO_PB14 ((unsigned int) 1 << 14) // Pin Controlled by PB14\r
-#define AT91C_PB14_ERX3 ((unsigned int) AT91C_PIO_PB14) // Ethernet MAC Receive Data 3\r
-#define AT91C_PB14_NPCS02 ((unsigned int) AT91C_PIO_PB14) // SPI 0 Peripheral Chip Select 2\r
-#define AT91C_PIO_PB15 ((unsigned int) 1 << 15) // Pin Controlled by PB15\r
-#define AT91C_PB15_ERXDV ((unsigned int) AT91C_PIO_PB15) // Ethernet MAC Receive Data Valid\r
-#define AT91C_PIO_PB16 ((unsigned int) 1 << 16) // Pin Controlled by PB16\r
-#define AT91C_PB16_ECOL ((unsigned int) AT91C_PIO_PB16) // Ethernet MAC Collision Detected\r
-#define AT91C_PB16_NPCS13 ((unsigned int) AT91C_PIO_PB16) // SPI 1 Peripheral Chip Select 3\r
-#define AT91C_PIO_PB17 ((unsigned int) 1 << 17) // Pin Controlled by PB17\r
-#define AT91C_PB17_ERXCK ((unsigned int) AT91C_PIO_PB17) // Ethernet MAC Receive Clock\r
-#define AT91C_PB17_NPCS03 ((unsigned int) AT91C_PIO_PB17) // SPI 0 Peripheral Chip Select 3\r
-#define AT91C_PIO_PB18 ((unsigned int) 1 << 18) // Pin Controlled by PB18\r
-#define AT91C_PB18_EF100 ((unsigned int) AT91C_PIO_PB18) // Ethernet MAC Force 100 Mbits/sec\r
-#define AT91C_PB18_ADTRG ((unsigned int) AT91C_PIO_PB18) // ADC External Trigger\r
-#define AT91C_PIO_PB19 ((unsigned int) 1 << 19) // Pin Controlled by PB19\r
-#define AT91C_PB19_PWM0 ((unsigned int) AT91C_PIO_PB19) // PWM Channel 0\r
-#define AT91C_PB19_TCLK1 ((unsigned int) AT91C_PIO_PB19) // Timer Counter 1 external clock input\r
-#define AT91C_PIO_PB2 ((unsigned int) 1 << 2) // Pin Controlled by PB2\r
-#define AT91C_PB2_ETX0 ((unsigned int) AT91C_PIO_PB2) // Ethernet MAC Transmit Data 0\r
-#define AT91C_PIO_PB20 ((unsigned int) 1 << 20) // Pin Controlled by PB20\r
-#define AT91C_PB20_PWM1 ((unsigned int) AT91C_PIO_PB20) // PWM Channel 1\r
-#define AT91C_PB20_PCK0 ((unsigned int) AT91C_PIO_PB20) // PMC Programmable Clock Output 0\r
-#define AT91C_PIO_PB21 ((unsigned int) 1 << 21) // Pin Controlled by PB21\r
-#define AT91C_PB21_PWM2 ((unsigned int) AT91C_PIO_PB21) // PWM Channel 2\r
-#define AT91C_PB21_PCK1 ((unsigned int) AT91C_PIO_PB21) // PMC Programmable Clock Output 1\r
-#define AT91C_PIO_PB22 ((unsigned int) 1 << 22) // Pin Controlled by PB22\r
-#define AT91C_PB22_PWM3 ((unsigned int) AT91C_PIO_PB22) // PWM Channel 3\r
-#define AT91C_PB22_PCK2 ((unsigned int) AT91C_PIO_PB22) // PMC Programmable Clock Output 2\r
-#define AT91C_PIO_PB23 ((unsigned int) 1 << 23) // Pin Controlled by PB23\r
-#define AT91C_PB23_TIOA0 ((unsigned int) AT91C_PIO_PB23) // Timer Counter 0 Multipurpose Timer I/O Pin A\r
-#define AT91C_PB23_DCD1 ((unsigned int) AT91C_PIO_PB23) // USART 1 Data Carrier Detect\r
-#define AT91C_PIO_PB24 ((unsigned int) 1 << 24) // Pin Controlled by PB24\r
-#define AT91C_PB24_TIOB0 ((unsigned int) AT91C_PIO_PB24) // Timer Counter 0 Multipurpose Timer I/O Pin B\r
-#define AT91C_PB24_DSR1 ((unsigned int) AT91C_PIO_PB24) // USART 1 Data Set ready\r
-#define AT91C_PIO_PB25 ((unsigned int) 1 << 25) // Pin Controlled by PB25\r
-#define AT91C_PB25_TIOA1 ((unsigned int) AT91C_PIO_PB25) // Timer Counter 1 Multipurpose Timer I/O Pin A\r
-#define AT91C_PB25_DTR1 ((unsigned int) AT91C_PIO_PB25) // USART 1 Data Terminal ready\r
-#define AT91C_PIO_PB26 ((unsigned int) 1 << 26) // Pin Controlled by PB26\r
-#define AT91C_PB26_TIOB1 ((unsigned int) AT91C_PIO_PB26) // Timer Counter 1 Multipurpose Timer I/O Pin B\r
-#define AT91C_PB26_RI1 ((unsigned int) AT91C_PIO_PB26) // USART 1 Ring Indicator\r
-#define AT91C_PIO_PB27 ((unsigned int) 1 << 27) // Pin Controlled by PB27\r
-#define AT91C_PB27_TIOA2 ((unsigned int) AT91C_PIO_PB27) // Timer Counter 2 Multipurpose Timer I/O Pin A\r
-#define AT91C_PB27_PWM0 ((unsigned int) AT91C_PIO_PB27) // PWM Channel 0\r
-#define AT91C_PIO_PB28 ((unsigned int) 1 << 28) // Pin Controlled by PB28\r
-#define AT91C_PB28_TIOB2 ((unsigned int) AT91C_PIO_PB28) // Timer Counter 2 Multipurpose Timer I/O Pin B\r
-#define AT91C_PB28_PWM1 ((unsigned int) AT91C_PIO_PB28) // PWM Channel 1\r
-#define AT91C_PIO_PB29 ((unsigned int) 1 << 29) // Pin Controlled by PB29\r
-#define AT91C_PB29_PCK1 ((unsigned int) AT91C_PIO_PB29) // PMC Programmable Clock Output 1\r
-#define AT91C_PB29_PWM2 ((unsigned int) AT91C_PIO_PB29) // PWM Channel 2\r
-#define AT91C_PIO_PB3 ((unsigned int) 1 << 3) // Pin Controlled by PB3\r
-#define AT91C_PB3_ETX1 ((unsigned int) AT91C_PIO_PB3) // Ethernet MAC Transmit Data 1\r
-#define AT91C_PIO_PB30 ((unsigned int) 1 << 30) // Pin Controlled by PB30\r
-#define AT91C_PB30_PCK2 ((unsigned int) AT91C_PIO_PB30) // PMC Programmable Clock Output 2\r
-#define AT91C_PB30_PWM3 ((unsigned int) AT91C_PIO_PB30) // PWM Channel 3\r
-#define AT91C_PIO_PB4 ((unsigned int) 1 << 4) // Pin Controlled by PB4\r
-#define AT91C_PB4_ECRS_ECRSDV ((unsigned int) AT91C_PIO_PB4) // Ethernet MAC Carrier Sense/Carrier Sense and Data Valid\r
-#define AT91C_PIO_PB5 ((unsigned int) 1 << 5) // Pin Controlled by PB5\r
-#define AT91C_PB5_ERX0 ((unsigned int) AT91C_PIO_PB5) // Ethernet MAC Receive Data 0\r
-#define AT91C_PIO_PB6 ((unsigned int) 1 << 6) // Pin Controlled by PB6\r
-#define AT91C_PB6_ERX1 ((unsigned int) AT91C_PIO_PB6) // Ethernet MAC Receive Data 1\r
-#define AT91C_PIO_PB7 ((unsigned int) 1 << 7) // Pin Controlled by PB7\r
-#define AT91C_PB7_ERXER ((unsigned int) AT91C_PIO_PB7) // Ethernet MAC Receive Error\r
-#define AT91C_PIO_PB8 ((unsigned int) 1 << 8) // Pin Controlled by PB8\r
-#define AT91C_PB8_EMDC ((unsigned int) AT91C_PIO_PB8) // Ethernet MAC Management Data Clock\r
-#define AT91C_PIO_PB9 ((unsigned int) 1 << 9) // Pin Controlled by PB9\r
-#define AT91C_PB9_EMDIO ((unsigned int) AT91C_PIO_PB9) // Ethernet MAC Management Data Input/Output\r
-\r
-// *****************************************************************************\r
-// PERIPHERAL ID DEFINITIONS FOR AT91SAM7X256\r
-// *****************************************************************************\r
-#define AT91C_ID_FIQ ((unsigned int) 0) // Advanced Interrupt Controller (FIQ)\r
-#define AT91C_ID_SYS ((unsigned int) 1) // System Peripheral\r
-#define AT91C_ID_PIOA ((unsigned int) 2) // Parallel IO Controller A\r
-#define AT91C_ID_PIOB ((unsigned int) 3) // Parallel IO Controller B\r
-#define AT91C_ID_SPI0 ((unsigned int) 4) // Serial Peripheral Interface 0\r
-#define AT91C_ID_SPI1 ((unsigned int) 5) // Serial Peripheral Interface 1\r
-#define AT91C_ID_US0 ((unsigned int) 6) // USART 0\r
-#define AT91C_ID_US1 ((unsigned int) 7) // USART 1\r
-#define AT91C_ID_SSC ((unsigned int) 8) // Serial Synchronous Controller\r
-#define AT91C_ID_TWI ((unsigned int) 9) // Two-Wire Interface\r
-#define AT91C_ID_PWMC ((unsigned int) 10) // PWM Controller\r
-#define AT91C_ID_UDP ((unsigned int) 11) // USB Device Port\r
-#define AT91C_ID_TC0 ((unsigned int) 12) // Timer Counter 0\r
-#define AT91C_ID_TC1 ((unsigned int) 13) // Timer Counter 1\r
-#define AT91C_ID_TC2 ((unsigned int) 14) // Timer Counter 2\r
-#define AT91C_ID_CAN ((unsigned int) 15) // Control Area Network Controller\r
-#define AT91C_ID_EMAC ((unsigned int) 16) // Ethernet MAC\r
-#define AT91C_ID_ADC ((unsigned int) 17) // Analog-to-Digital Converter\r
-#define AT91C_ID_AES ((unsigned int) 18) // Advanced Encryption Standard 128-bit\r
-#define AT91C_ID_TDES ((unsigned int) 19) // Triple Data Encryption Standard\r
-#define AT91C_ID_20_Reserved ((unsigned int) 20) // Reserved\r
-#define AT91C_ID_21_Reserved ((unsigned int) 21) // Reserved\r
-#define AT91C_ID_22_Reserved ((unsigned int) 22) // Reserved\r
-#define AT91C_ID_23_Reserved ((unsigned int) 23) // Reserved\r
-#define AT91C_ID_24_Reserved ((unsigned int) 24) // Reserved\r
-#define AT91C_ID_25_Reserved ((unsigned int) 25) // Reserved\r
-#define AT91C_ID_26_Reserved ((unsigned int) 26) // Reserved\r
-#define AT91C_ID_27_Reserved ((unsigned int) 27) // Reserved\r
-#define AT91C_ID_28_Reserved ((unsigned int) 28) // Reserved\r
-#define AT91C_ID_29_Reserved ((unsigned int) 29) // Reserved\r
-#define AT91C_ID_IRQ0 ((unsigned int) 30) // Advanced Interrupt Controller (IRQ0)\r
-#define AT91C_ID_IRQ1 ((unsigned int) 31) // Advanced Interrupt Controller (IRQ1)\r
-\r
-// *****************************************************************************\r
-// BASE ADDRESS DEFINITIONS FOR AT91SAM7X256\r
-// *****************************************************************************\r
-#define AT91C_BASE_SYS ((AT91PS_SYS) 0xFFFFF000) // (SYS) Base Address\r
-#define AT91C_BASE_AIC ((AT91PS_AIC) 0xFFFFF000) // (AIC) Base Address\r
-#define AT91C_BASE_PDC_DBGU ((AT91PS_PDC) 0xFFFFF300) // (PDC_DBGU) Base Address\r
-#define AT91C_BASE_DBGU ((AT91PS_DBGU) 0xFFFFF200) // (DBGU) Base Address\r
-#define AT91C_BASE_PIOA ((AT91PS_PIO) 0xFFFFF400) // (PIOA) Base Address\r
-#define AT91C_BASE_PIOB ((AT91PS_PIO) 0xFFFFF600) // (PIOB) Base Address\r
-#define AT91C_BASE_CKGR ((AT91PS_CKGR) 0xFFFFFC20) // (CKGR) Base Address\r
-#define AT91C_BASE_PMC ((AT91PS_PMC) 0xFFFFFC00) // (PMC) Base Address\r
-#define AT91C_BASE_RSTC ((AT91PS_RSTC) 0xFFFFFD00) // (RSTC) Base Address\r
-#define AT91C_BASE_RTTC ((AT91PS_RTTC) 0xFFFFFD20) // (RTTC) Base Address\r
-#define AT91C_BASE_PITC ((AT91PS_PITC) 0xFFFFFD30) // (PITC) Base Address\r
-#define AT91C_BASE_WDTC ((AT91PS_WDTC) 0xFFFFFD40) // (WDTC) Base Address\r
-#define AT91C_BASE_VREG ((AT91PS_VREG) 0xFFFFFD60) // (VREG) Base Address\r
-#define AT91C_BASE_MC ((AT91PS_MC) 0xFFFFFF00) // (MC) Base Address\r
-#define AT91C_BASE_PDC_SPI1 ((AT91PS_PDC) 0xFFFE4100) // (PDC_SPI1) Base Address\r
-#define AT91C_BASE_SPI1 ((AT91PS_SPI) 0xFFFE4000) // (SPI1) Base Address\r
-#define AT91C_BASE_PDC_SPI0 ((AT91PS_PDC) 0xFFFE0100) // (PDC_SPI0) Base Address\r
-#define AT91C_BASE_SPI0 ((AT91PS_SPI) 0xFFFE0000) // (SPI0) Base Address\r
-#define AT91C_BASE_PDC_US1 ((AT91PS_PDC) 0xFFFC4100) // (PDC_US1) Base Address\r
-#define AT91C_BASE_US1 ((AT91PS_USART) 0xFFFC4000) // (US1) Base Address\r
-#define AT91C_BASE_PDC_US0 ((AT91PS_PDC) 0xFFFC0100) // (PDC_US0) Base Address\r
-#define AT91C_BASE_US0 ((AT91PS_USART) 0xFFFC0000) // (US0) Base Address\r
-#define AT91C_BASE_PDC_SSC ((AT91PS_PDC) 0xFFFD4100) // (PDC_SSC) Base Address\r
-#define AT91C_BASE_SSC ((AT91PS_SSC) 0xFFFD4000) // (SSC) Base Address\r
-#define AT91C_BASE_TWI ((AT91PS_TWI) 0xFFFB8000) // (TWI) Base Address\r
-#define AT91C_BASE_PWMC_CH3 ((AT91PS_PWMC_CH) 0xFFFCC260) // (PWMC_CH3) Base Address\r
-#define AT91C_BASE_PWMC_CH2 ((AT91PS_PWMC_CH) 0xFFFCC240) // (PWMC_CH2) Base Address\r
-#define AT91C_BASE_PWMC_CH1 ((AT91PS_PWMC_CH) 0xFFFCC220) // (PWMC_CH1) Base Address\r
-#define AT91C_BASE_PWMC_CH0 ((AT91PS_PWMC_CH) 0xFFFCC200) // (PWMC_CH0) Base Address\r
-#define AT91C_BASE_PWMC ((AT91PS_PWMC) 0xFFFCC000) // (PWMC) Base Address\r
-#define AT91C_BASE_UDP ((AT91PS_UDP) 0xFFFB0000) // (UDP) Base Address\r
-#define AT91C_BASE_TC0 ((AT91PS_TC) 0xFFFA0000) // (TC0) Base Address\r
-#define AT91C_BASE_TC1 ((AT91PS_TC) 0xFFFA0040) // (TC1) Base Address\r
-#define AT91C_BASE_TC2 ((AT91PS_TC) 0xFFFA0080) // (TC2) Base Address\r
-#define AT91C_BASE_TCB ((AT91PS_TCB) 0xFFFA0000) // (TCB) Base Address\r
-#define AT91C_BASE_CAN_MB0 ((AT91PS_CAN_MB) 0xFFFD0200) // (CAN_MB0) Base Address\r
-#define AT91C_BASE_CAN_MB1 ((AT91PS_CAN_MB) 0xFFFD0220) // (CAN_MB1) Base Address\r
-#define AT91C_BASE_CAN_MB2 ((AT91PS_CAN_MB) 0xFFFD0240) // (CAN_MB2) Base Address\r
-#define AT91C_BASE_CAN_MB3 ((AT91PS_CAN_MB) 0xFFFD0260) // (CAN_MB3) Base Address\r
-#define AT91C_BASE_CAN_MB4 ((AT91PS_CAN_MB) 0xFFFD0280) // (CAN_MB4) Base Address\r
-#define AT91C_BASE_CAN_MB5 ((AT91PS_CAN_MB) 0xFFFD02A0) // (CAN_MB5) Base Address\r
-#define AT91C_BASE_CAN_MB6 ((AT91PS_CAN_MB) 0xFFFD02C0) // (CAN_MB6) Base Address\r
-#define AT91C_BASE_CAN_MB7 ((AT91PS_CAN_MB) 0xFFFD02E0) // (CAN_MB7) Base Address\r
-#define AT91C_BASE_CAN ((AT91PS_CAN) 0xFFFD0000) // (CAN) Base Address\r
-#define AT91C_BASE_EMAC ((AT91PS_EMAC) 0xFFFDC000) // (EMAC) Base Address\r
-#define AT91C_BASE_PDC_ADC ((AT91PS_PDC) 0xFFFD8100) // (PDC_ADC) Base Address\r
-#define AT91C_BASE_ADC ((AT91PS_ADC) 0xFFFD8000) // (ADC) Base Address\r
-#define AT91C_BASE_PDC_AES ((AT91PS_PDC) 0xFFFA4100) // (PDC_AES) Base Address\r
-#define AT91C_BASE_AES ((AT91PS_AES) 0xFFFA4000) // (AES) Base Address\r
-#define AT91C_BASE_PDC_TDES ((AT91PS_PDC) 0xFFFA8100) // (PDC_TDES) Base Address\r
-#define AT91C_BASE_TDES ((AT91PS_TDES) 0xFFFA8000) // (TDES) Base Address\r
-\r
-// *****************************************************************************\r
-// MEMORY MAPPING DEFINITIONS FOR AT91SAM7X256\r
-// *****************************************************************************\r
-#define AT91C_ISRAM ((char *) 0x00200000) // Internal SRAM base address\r
-#define AT91C_ISRAM_SIZE ((unsigned int) 0x00010000) // Internal SRAM size in byte (64 Kbyte)\r
-#define AT91C_IFLASH ((char *) 0x00100000) // Internal ROM base address\r
-#define AT91C_IFLASH_SIZE ((unsigned int) 0x00040000) // Internal ROM size in byte (256 Kbyte)\r
-#endif /* __IAR_SYSTEMS_ICC__ */\r
-\r
-#ifdef __IAR_SYSTEMS_ASM__\r
-\r
-// - Hardware register definition\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR System Peripherals\r
-// - *****************************************************************************\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Advanced Interrupt Controller\r
-// - *****************************************************************************\r
-// - -------- AIC_SMR : (AIC Offset: 0x0) Control Register -------- \r
-AT91C_AIC_PRIOR EQU (0x7 << 0) ;- (AIC) Priority Level\r
-AT91C_AIC_PRIOR_LOWEST EQU (0x0) ;- (AIC) Lowest priority level\r
-AT91C_AIC_PRIOR_HIGHEST EQU (0x7) ;- (AIC) Highest priority level\r
-AT91C_AIC_SRCTYPE EQU (0x3 << 5) ;- (AIC) Interrupt Source Type\r
-AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL EQU (0x0 << 5) ;- (AIC) Internal Sources Code Label High-level Sensitive\r
-AT91C_AIC_SRCTYPE_EXT_LOW_LEVEL EQU (0x0 << 5) ;- (AIC) External Sources Code Label Low-level Sensitive\r
-AT91C_AIC_SRCTYPE_INT_POSITIVE_EDGE EQU (0x1 << 5) ;- (AIC) Internal Sources Code Label Positive Edge triggered\r
-AT91C_AIC_SRCTYPE_EXT_NEGATIVE_EDGE EQU (0x1 << 5) ;- (AIC) External Sources Code Label Negative Edge triggered\r
-AT91C_AIC_SRCTYPE_HIGH_LEVEL EQU (0x2 << 5) ;- (AIC) Internal Or External Sources Code Label High-level Sensitive\r
-AT91C_AIC_SRCTYPE_POSITIVE_EDGE EQU (0x3 << 5) ;- (AIC) Internal Or External Sources Code Label Positive Edge triggered\r
-// - -------- AIC_CISR : (AIC Offset: 0x114) AIC Core Interrupt Status Register -------- \r
-AT91C_AIC_NFIQ EQU (0x1 << 0) ;- (AIC) NFIQ Status\r
-AT91C_AIC_NIRQ EQU (0x1 << 1) ;- (AIC) NIRQ Status\r
-// - -------- AIC_DCR : (AIC Offset: 0x138) AIC Debug Control Register (Protect) -------- \r
-AT91C_AIC_DCR_PROT EQU (0x1 << 0) ;- (AIC) Protection Mode\r
-AT91C_AIC_DCR_GMSK EQU (0x1 << 1) ;- (AIC) General Mask\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Peripheral DMA Controller\r
-// - *****************************************************************************\r
-// - -------- PDC_PTCR : (PDC Offset: 0x20) PDC Transfer Control Register -------- \r
-AT91C_PDC_RXTEN EQU (0x1 << 0) ;- (PDC) Receiver Transfer Enable\r
-AT91C_PDC_RXTDIS EQU (0x1 << 1) ;- (PDC) Receiver Transfer Disable\r
-AT91C_PDC_TXTEN EQU (0x1 << 8) ;- (PDC) Transmitter Transfer Enable\r
-AT91C_PDC_TXTDIS EQU (0x1 << 9) ;- (PDC) Transmitter Transfer Disable\r
-// - -------- PDC_PTSR : (PDC Offset: 0x24) PDC Transfer Status Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Debug Unit\r
-// - *****************************************************************************\r
-// - -------- DBGU_CR : (DBGU Offset: 0x0) Debug Unit Control Register -------- \r
-AT91C_US_RSTRX EQU (0x1 << 2) ;- (DBGU) Reset Receiver\r
-AT91C_US_RSTTX EQU (0x1 << 3) ;- (DBGU) Reset Transmitter\r
-AT91C_US_RXEN EQU (0x1 << 4) ;- (DBGU) Receiver Enable\r
-AT91C_US_RXDIS EQU (0x1 << 5) ;- (DBGU) Receiver Disable\r
-AT91C_US_TXEN EQU (0x1 << 6) ;- (DBGU) Transmitter Enable\r
-AT91C_US_TXDIS EQU (0x1 << 7) ;- (DBGU) Transmitter Disable\r
-AT91C_US_RSTSTA EQU (0x1 << 8) ;- (DBGU) Reset Status Bits\r
-// - -------- DBGU_MR : (DBGU Offset: 0x4) Debug Unit Mode Register -------- \r
-AT91C_US_PAR EQU (0x7 << 9) ;- (DBGU) Parity type\r
-AT91C_US_PAR_EVEN EQU (0x0 << 9) ;- (DBGU) Even Parity\r
-AT91C_US_PAR_ODD EQU (0x1 << 9) ;- (DBGU) Odd Parity\r
-AT91C_US_PAR_SPACE EQU (0x2 << 9) ;- (DBGU) Parity forced to 0 (Space)\r
-AT91C_US_PAR_MARK EQU (0x3 << 9) ;- (DBGU) Parity forced to 1 (Mark)\r
-AT91C_US_PAR_NONE EQU (0x4 << 9) ;- (DBGU) No Parity\r
-AT91C_US_PAR_MULTI_DROP EQU (0x6 << 9) ;- (DBGU) Multi-drop mode\r
-AT91C_US_CHMODE EQU (0x3 << 14) ;- (DBGU) Channel Mode\r
-AT91C_US_CHMODE_NORMAL EQU (0x0 << 14) ;- (DBGU) Normal Mode: The USART channel operates as an RX/TX USART.\r
-AT91C_US_CHMODE_AUTO EQU (0x1 << 14) ;- (DBGU) Automatic Echo: Receiver Data Input is connected to the TXD pin.\r
-AT91C_US_CHMODE_LOCAL EQU (0x2 << 14) ;- (DBGU) Local Loopback: Transmitter Output Signal is connected to Receiver Input Signal.\r
-AT91C_US_CHMODE_REMOTE EQU (0x3 << 14) ;- (DBGU) Remote Loopback: RXD pin is internally connected to TXD pin.\r
-// - -------- DBGU_IER : (DBGU Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-AT91C_US_RXRDY EQU (0x1 << 0) ;- (DBGU) RXRDY Interrupt\r
-AT91C_US_TXRDY EQU (0x1 << 1) ;- (DBGU) TXRDY Interrupt\r
-AT91C_US_ENDRX EQU (0x1 << 3) ;- (DBGU) End of Receive Transfer Interrupt\r
-AT91C_US_ENDTX EQU (0x1 << 4) ;- (DBGU) End of Transmit Interrupt\r
-AT91C_US_OVRE EQU (0x1 << 5) ;- (DBGU) Overrun Interrupt\r
-AT91C_US_FRAME EQU (0x1 << 6) ;- (DBGU) Framing Error Interrupt\r
-AT91C_US_PARE EQU (0x1 << 7) ;- (DBGU) Parity Error Interrupt\r
-AT91C_US_TXEMPTY EQU (0x1 << 9) ;- (DBGU) TXEMPTY Interrupt\r
-AT91C_US_TXBUFE EQU (0x1 << 11) ;- (DBGU) TXBUFE Interrupt\r
-AT91C_US_RXBUFF EQU (0x1 << 12) ;- (DBGU) RXBUFF Interrupt\r
-AT91C_US_COMM_TX EQU (0x1 << 30) ;- (DBGU) COMM_TX Interrupt\r
-AT91C_US_COMM_RX EQU (0x1 << 31) ;- (DBGU) COMM_RX Interrupt\r
-// - -------- DBGU_IDR : (DBGU Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// - -------- DBGU_IMR : (DBGU Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// - -------- DBGU_CSR : (DBGU Offset: 0x14) Debug Unit Channel Status Register -------- \r
-// - -------- DBGU_FNTR : (DBGU Offset: 0x48) Debug Unit FORCE_NTRST Register -------- \r
-AT91C_US_FORCE_NTRST EQU (0x1 << 0) ;- (DBGU) Force NTRST in JTAG\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Parallel Input Output Controler\r
-// - *****************************************************************************\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Clock Generator Controler\r
-// - *****************************************************************************\r
-// - -------- CKGR_MOR : (CKGR Offset: 0x0) Main Oscillator Register -------- \r
-AT91C_CKGR_MOSCEN EQU (0x1 << 0) ;- (CKGR) Main Oscillator Enable\r
-AT91C_CKGR_OSCBYPASS EQU (0x1 << 1) ;- (CKGR) Main Oscillator Bypass\r
-AT91C_CKGR_OSCOUNT EQU (0xFF << 8) ;- (CKGR) Main Oscillator Start-up Time\r
-// - -------- CKGR_MCFR : (CKGR Offset: 0x4) Main Clock Frequency Register -------- \r
-AT91C_CKGR_MAINF EQU (0xFFFF << 0) ;- (CKGR) Main Clock Frequency\r
-AT91C_CKGR_MAINRDY EQU (0x1 << 16) ;- (CKGR) Main Clock Ready\r
-// - -------- CKGR_PLLR : (CKGR Offset: 0xc) PLL B Register -------- \r
-AT91C_CKGR_DIV EQU (0xFF << 0) ;- (CKGR) Divider Selected\r
-AT91C_CKGR_DIV_0 EQU (0x0) ;- (CKGR) Divider output is 0\r
-AT91C_CKGR_DIV_BYPASS EQU (0x1) ;- (CKGR) Divider is bypassed\r
-AT91C_CKGR_PLLCOUNT EQU (0x3F << 8) ;- (CKGR) PLL Counter\r
-AT91C_CKGR_OUT EQU (0x3 << 14) ;- (CKGR) PLL Output Frequency Range\r
-AT91C_CKGR_OUT_0 EQU (0x0 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_OUT_1 EQU (0x1 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_OUT_2 EQU (0x2 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_OUT_3 EQU (0x3 << 14) ;- (CKGR) Please refer to the PLL datasheet\r
-AT91C_CKGR_MUL EQU (0x7FF << 16) ;- (CKGR) PLL Multiplier\r
-AT91C_CKGR_USBDIV EQU (0x3 << 28) ;- (CKGR) Divider for USB Clocks\r
-AT91C_CKGR_USBDIV_0 EQU (0x0 << 28) ;- (CKGR) Divider output is PLL clock output\r
-AT91C_CKGR_USBDIV_1 EQU (0x1 << 28) ;- (CKGR) Divider output is PLL clock output divided by 2\r
-AT91C_CKGR_USBDIV_2 EQU (0x2 << 28) ;- (CKGR) Divider output is PLL clock output divided by 4\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Power Management Controler\r
-// - *****************************************************************************\r
-// - -------- PMC_SCER : (PMC Offset: 0x0) System Clock Enable Register -------- \r
-AT91C_PMC_PCK EQU (0x1 << 0) ;- (PMC) Processor Clock\r
-AT91C_PMC_UDP EQU (0x1 << 7) ;- (PMC) USB Device Port Clock\r
-AT91C_PMC_PCK0 EQU (0x1 << 8) ;- (PMC) Programmable Clock Output\r
-AT91C_PMC_PCK1 EQU (0x1 << 9) ;- (PMC) Programmable Clock Output\r
-AT91C_PMC_PCK2 EQU (0x1 << 10) ;- (PMC) Programmable Clock Output\r
-AT91C_PMC_PCK3 EQU (0x1 << 11) ;- (PMC) Programmable Clock Output\r
-// - -------- PMC_SCDR : (PMC Offset: 0x4) System Clock Disable Register -------- \r
-// - -------- PMC_SCSR : (PMC Offset: 0x8) System Clock Status Register -------- \r
-// - -------- CKGR_MOR : (PMC Offset: 0x20) Main Oscillator Register -------- \r
-// - -------- CKGR_MCFR : (PMC Offset: 0x24) Main Clock Frequency Register -------- \r
-// - -------- CKGR_PLLR : (PMC Offset: 0x2c) PLL B Register -------- \r
-// - -------- PMC_MCKR : (PMC Offset: 0x30) Master Clock Register -------- \r
-AT91C_PMC_CSS EQU (0x3 << 0) ;- (PMC) Programmable Clock Selection\r
-AT91C_PMC_CSS_SLOW_CLK EQU (0x0) ;- (PMC) Slow Clock is selected\r
-AT91C_PMC_CSS_MAIN_CLK EQU (0x1) ;- (PMC) Main Clock is selected\r
-AT91C_PMC_CSS_PLL_CLK EQU (0x3) ;- (PMC) Clock from PLL is selected\r
-AT91C_PMC_PRES EQU (0x7 << 2) ;- (PMC) Programmable Clock Prescaler\r
-AT91C_PMC_PRES_CLK EQU (0x0 << 2) ;- (PMC) Selected clock\r
-AT91C_PMC_PRES_CLK_2 EQU (0x1 << 2) ;- (PMC) Selected clock divided by 2\r
-AT91C_PMC_PRES_CLK_4 EQU (0x2 << 2) ;- (PMC) Selected clock divided by 4\r
-AT91C_PMC_PRES_CLK_8 EQU (0x3 << 2) ;- (PMC) Selected clock divided by 8\r
-AT91C_PMC_PRES_CLK_16 EQU (0x4 << 2) ;- (PMC) Selected clock divided by 16\r
-AT91C_PMC_PRES_CLK_32 EQU (0x5 << 2) ;- (PMC) Selected clock divided by 32\r
-AT91C_PMC_PRES_CLK_64 EQU (0x6 << 2) ;- (PMC) Selected clock divided by 64\r
-// - -------- PMC_PCKR : (PMC Offset: 0x40) Programmable Clock Register -------- \r
-// - -------- PMC_IER : (PMC Offset: 0x60) PMC Interrupt Enable Register -------- \r
-AT91C_PMC_MOSCS EQU (0x1 << 0) ;- (PMC) MOSC Status/Enable/Disable/Mask\r
-AT91C_PMC_LOCK EQU (0x1 << 2) ;- (PMC) PLL Status/Enable/Disable/Mask\r
-AT91C_PMC_MCKRDY EQU (0x1 << 3) ;- (PMC) MCK_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK0RDY EQU (0x1 << 8) ;- (PMC) PCK0_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK1RDY EQU (0x1 << 9) ;- (PMC) PCK1_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK2RDY EQU (0x1 << 10) ;- (PMC) PCK2_RDY Status/Enable/Disable/Mask\r
-AT91C_PMC_PCK3RDY EQU (0x1 << 11) ;- (PMC) PCK3_RDY Status/Enable/Disable/Mask\r
-// - -------- PMC_IDR : (PMC Offset: 0x64) PMC Interrupt Disable Register -------- \r
-// - -------- PMC_SR : (PMC Offset: 0x68) PMC Status Register -------- \r
-// - -------- PMC_IMR : (PMC Offset: 0x6c) PMC Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Reset Controller Interface\r
-// - *****************************************************************************\r
-// - -------- RSTC_RCR : (RSTC Offset: 0x0) Reset Control Register -------- \r
-AT91C_RSTC_PROCRST EQU (0x1 << 0) ;- (RSTC) Processor Reset\r
-AT91C_RSTC_PERRST EQU (0x1 << 2) ;- (RSTC) Peripheral Reset\r
-AT91C_RSTC_EXTRST EQU (0x1 << 3) ;- (RSTC) External Reset\r
-AT91C_RSTC_KEY EQU (0xFF << 24) ;- (RSTC) Password\r
-// - -------- RSTC_RSR : (RSTC Offset: 0x4) Reset Status Register -------- \r
-AT91C_RSTC_URSTS EQU (0x1 << 0) ;- (RSTC) User Reset Status\r
-AT91C_RSTC_BODSTS EQU (0x1 << 1) ;- (RSTC) Brownout Detection Status\r
-AT91C_RSTC_RSTTYP EQU (0x7 << 8) ;- (RSTC) Reset Type\r
-AT91C_RSTC_RSTTYP_POWERUP EQU (0x0 << 8) ;- (RSTC) Power-up Reset. VDDCORE rising.\r
-AT91C_RSTC_RSTTYP_WAKEUP EQU (0x1 << 8) ;- (RSTC) WakeUp Reset. VDDCORE rising.\r
-AT91C_RSTC_RSTTYP_WATCHDOG EQU (0x2 << 8) ;- (RSTC) Watchdog Reset. Watchdog overflow occured.\r
-AT91C_RSTC_RSTTYP_SOFTWARE EQU (0x3 << 8) ;- (RSTC) Software Reset. Processor reset required by the software.\r
-AT91C_RSTC_RSTTYP_USER EQU (0x4 << 8) ;- (RSTC) User Reset. NRST pin detected low.\r
-AT91C_RSTC_RSTTYP_BROWNOUT EQU (0x5 << 8) ;- (RSTC) Brownout Reset occured.\r
-AT91C_RSTC_NRSTL EQU (0x1 << 16) ;- (RSTC) NRST pin level\r
-AT91C_RSTC_SRCMP EQU (0x1 << 17) ;- (RSTC) Software Reset Command in Progress.\r
-// - -------- RSTC_RMR : (RSTC Offset: 0x8) Reset Mode Register -------- \r
-AT91C_RSTC_URSTEN EQU (0x1 << 0) ;- (RSTC) User Reset Enable\r
-AT91C_RSTC_URSTIEN EQU (0x1 << 4) ;- (RSTC) User Reset Interrupt Enable\r
-AT91C_RSTC_ERSTL EQU (0xF << 8) ;- (RSTC) User Reset Enable\r
-AT91C_RSTC_BODIEN EQU (0x1 << 16) ;- (RSTC) Brownout Detection Interrupt Enable\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Real Time Timer Controller Interface\r
-// - *****************************************************************************\r
-// - -------- RTTC_RTMR : (RTTC Offset: 0x0) Real-time Mode Register -------- \r
-AT91C_RTTC_RTPRES EQU (0xFFFF << 0) ;- (RTTC) Real-time Timer Prescaler Value\r
-AT91C_RTTC_ALMIEN EQU (0x1 << 16) ;- (RTTC) Alarm Interrupt Enable\r
-AT91C_RTTC_RTTINCIEN EQU (0x1 << 17) ;- (RTTC) Real Time Timer Increment Interrupt Enable\r
-AT91C_RTTC_RTTRST EQU (0x1 << 18) ;- (RTTC) Real Time Timer Restart\r
-// - -------- RTTC_RTAR : (RTTC Offset: 0x4) Real-time Alarm Register -------- \r
-AT91C_RTTC_ALMV EQU (0x0 << 0) ;- (RTTC) Alarm Value\r
-// - -------- RTTC_RTVR : (RTTC Offset: 0x8) Current Real-time Value Register -------- \r
-AT91C_RTTC_CRTV EQU (0x0 << 0) ;- (RTTC) Current Real-time Value\r
-// - -------- RTTC_RTSR : (RTTC Offset: 0xc) Real-time Status Register -------- \r
-AT91C_RTTC_ALMS EQU (0x1 << 0) ;- (RTTC) Real-time Alarm Status\r
-AT91C_RTTC_RTTINC EQU (0x1 << 1) ;- (RTTC) Real-time Timer Increment\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Periodic Interval Timer Controller Interface\r
-// - *****************************************************************************\r
-// - -------- PITC_PIMR : (PITC Offset: 0x0) Periodic Interval Mode Register -------- \r
-AT91C_PITC_PIV EQU (0xFFFFF << 0) ;- (PITC) Periodic Interval Value\r
-AT91C_PITC_PITEN EQU (0x1 << 24) ;- (PITC) Periodic Interval Timer Enabled\r
-AT91C_PITC_PITIEN EQU (0x1 << 25) ;- (PITC) Periodic Interval Timer Interrupt Enable\r
-// - -------- PITC_PISR : (PITC Offset: 0x4) Periodic Interval Status Register -------- \r
-AT91C_PITC_PITS EQU (0x1 << 0) ;- (PITC) Periodic Interval Timer Status\r
-// - -------- PITC_PIVR : (PITC Offset: 0x8) Periodic Interval Value Register -------- \r
-AT91C_PITC_CPIV EQU (0xFFFFF << 0) ;- (PITC) Current Periodic Interval Value\r
-AT91C_PITC_PICNT EQU (0xFFF << 20) ;- (PITC) Periodic Interval Counter\r
-// - -------- PITC_PIIR : (PITC Offset: 0xc) Periodic Interval Image Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Watchdog Timer Controller Interface\r
-// - *****************************************************************************\r
-// - -------- WDTC_WDCR : (WDTC Offset: 0x0) Periodic Interval Image Register -------- \r
-AT91C_WDTC_WDRSTT EQU (0x1 << 0) ;- (WDTC) Watchdog Restart\r
-AT91C_WDTC_KEY EQU (0xFF << 24) ;- (WDTC) Watchdog KEY Password\r
-// - -------- WDTC_WDMR : (WDTC Offset: 0x4) Watchdog Mode Register -------- \r
-AT91C_WDTC_WDV EQU (0xFFF << 0) ;- (WDTC) Watchdog Timer Restart\r
-AT91C_WDTC_WDFIEN EQU (0x1 << 12) ;- (WDTC) Watchdog Fault Interrupt Enable\r
-AT91C_WDTC_WDRSTEN EQU (0x1 << 13) ;- (WDTC) Watchdog Reset Enable\r
-AT91C_WDTC_WDRPROC EQU (0x1 << 14) ;- (WDTC) Watchdog Timer Restart\r
-AT91C_WDTC_WDDIS EQU (0x1 << 15) ;- (WDTC) Watchdog Disable\r
-AT91C_WDTC_WDD EQU (0xFFF << 16) ;- (WDTC) Watchdog Delta Value\r
-AT91C_WDTC_WDDBGHLT EQU (0x1 << 28) ;- (WDTC) Watchdog Debug Halt\r
-AT91C_WDTC_WDIDLEHLT EQU (0x1 << 29) ;- (WDTC) Watchdog Idle Halt\r
-// - -------- WDTC_WDSR : (WDTC Offset: 0x8) Watchdog Status Register -------- \r
-AT91C_WDTC_WDUNF EQU (0x1 << 0) ;- (WDTC) Watchdog Underflow\r
-AT91C_WDTC_WDERR EQU (0x1 << 1) ;- (WDTC) Watchdog Error\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Voltage Regulator Mode Controller Interface\r
-// - *****************************************************************************\r
-// - -------- VREG_MR : (VREG Offset: 0x0) Voltage Regulator Mode Register -------- \r
-AT91C_VREG_PSTDBY EQU (0x1 << 0) ;- (VREG) Voltage Regulator Power Standby Mode\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Memory Controller Interface\r
-// - *****************************************************************************\r
-// - -------- MC_RCR : (MC Offset: 0x0) MC Remap Control Register -------- \r
-AT91C_MC_RCB EQU (0x1 << 0) ;- (MC) Remap Command Bit\r
-// - -------- MC_ASR : (MC Offset: 0x4) MC Abort Status Register -------- \r
-AT91C_MC_UNDADD EQU (0x1 << 0) ;- (MC) Undefined Addess Abort Status\r
-AT91C_MC_MISADD EQU (0x1 << 1) ;- (MC) Misaligned Addess Abort Status\r
-AT91C_MC_ABTSZ EQU (0x3 << 8) ;- (MC) Abort Size Status\r
-AT91C_MC_ABTSZ_BYTE EQU (0x0 << 8) ;- (MC) Byte\r
-AT91C_MC_ABTSZ_HWORD EQU (0x1 << 8) ;- (MC) Half-word\r
-AT91C_MC_ABTSZ_WORD EQU (0x2 << 8) ;- (MC) Word\r
-AT91C_MC_ABTTYP EQU (0x3 << 10) ;- (MC) Abort Type Status\r
-AT91C_MC_ABTTYP_DATAR EQU (0x0 << 10) ;- (MC) Data Read\r
-AT91C_MC_ABTTYP_DATAW EQU (0x1 << 10) ;- (MC) Data Write\r
-AT91C_MC_ABTTYP_FETCH EQU (0x2 << 10) ;- (MC) Code Fetch\r
-AT91C_MC_MST0 EQU (0x1 << 16) ;- (MC) Master 0 Abort Source\r
-AT91C_MC_MST1 EQU (0x1 << 17) ;- (MC) Master 1 Abort Source\r
-AT91C_MC_SVMST0 EQU (0x1 << 24) ;- (MC) Saved Master 0 Abort Source\r
-AT91C_MC_SVMST1 EQU (0x1 << 25) ;- (MC) Saved Master 1 Abort Source\r
-// - -------- MC_FMR : (MC Offset: 0x60) MC Flash Mode Register -------- \r
-AT91C_MC_FRDY EQU (0x1 << 0) ;- (MC) Flash Ready\r
-AT91C_MC_LOCKE EQU (0x1 << 2) ;- (MC) Lock Error\r
-AT91C_MC_PROGE EQU (0x1 << 3) ;- (MC) Programming Error\r
-AT91C_MC_NEBP EQU (0x1 << 7) ;- (MC) No Erase Before Programming\r
-AT91C_MC_FWS EQU (0x3 << 8) ;- (MC) Flash Wait State\r
-AT91C_MC_FWS_0FWS EQU (0x0 << 8) ;- (MC) 1 cycle for Read, 2 for Write operations\r
-AT91C_MC_FWS_1FWS EQU (0x1 << 8) ;- (MC) 2 cycles for Read, 3 for Write operations\r
-AT91C_MC_FWS_2FWS EQU (0x2 << 8) ;- (MC) 3 cycles for Read, 4 for Write operations\r
-AT91C_MC_FWS_3FWS EQU (0x3 << 8) ;- (MC) 4 cycles for Read, 4 for Write operations\r
-AT91C_MC_FMCN EQU (0xFF << 16) ;- (MC) Flash Microsecond Cycle Number\r
-// - -------- MC_FCR : (MC Offset: 0x64) MC Flash Command Register -------- \r
-AT91C_MC_FCMD EQU (0xF << 0) ;- (MC) Flash Command\r
-AT91C_MC_FCMD_START_PROG EQU (0x1) ;- (MC) Starts the programming of th epage specified by PAGEN.\r
-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.\r
-AT91C_MC_FCMD_PROG_AND_LOCK EQU (0x3) ;- (MC) The lock sequence automatically happens after the programming sequence is completed.\r
-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.\r
-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.\r
-AT91C_MC_FCMD_SET_GP_NVM EQU (0xB) ;- (MC) Set General Purpose NVM bits.\r
-AT91C_MC_FCMD_CLR_GP_NVM EQU (0xD) ;- (MC) Clear General Purpose NVM bits.\r
-AT91C_MC_FCMD_SET_SECURITY EQU (0xF) ;- (MC) Set Security Bit.\r
-AT91C_MC_PAGEN EQU (0x3FF << 8) ;- (MC) Page Number\r
-AT91C_MC_KEY EQU (0xFF << 24) ;- (MC) Writing Protect Key\r
-// - -------- MC_FSR : (MC Offset: 0x68) MC Flash Command Register -------- \r
-AT91C_MC_SECURITY EQU (0x1 << 4) ;- (MC) Security Bit Status\r
-AT91C_MC_GPNVM0 EQU (0x1 << 8) ;- (MC) Sector 0 Lock Status\r
-AT91C_MC_GPNVM1 EQU (0x1 << 9) ;- (MC) Sector 1 Lock Status\r
-AT91C_MC_GPNVM2 EQU (0x1 << 10) ;- (MC) Sector 2 Lock Status\r
-AT91C_MC_GPNVM3 EQU (0x1 << 11) ;- (MC) Sector 3 Lock Status\r
-AT91C_MC_GPNVM4 EQU (0x1 << 12) ;- (MC) Sector 4 Lock Status\r
-AT91C_MC_GPNVM5 EQU (0x1 << 13) ;- (MC) Sector 5 Lock Status\r
-AT91C_MC_GPNVM6 EQU (0x1 << 14) ;- (MC) Sector 6 Lock Status\r
-AT91C_MC_GPNVM7 EQU (0x1 << 15) ;- (MC) Sector 7 Lock Status\r
-AT91C_MC_LOCKS0 EQU (0x1 << 16) ;- (MC) Sector 0 Lock Status\r
-AT91C_MC_LOCKS1 EQU (0x1 << 17) ;- (MC) Sector 1 Lock Status\r
-AT91C_MC_LOCKS2 EQU (0x1 << 18) ;- (MC) Sector 2 Lock Status\r
-AT91C_MC_LOCKS3 EQU (0x1 << 19) ;- (MC) Sector 3 Lock Status\r
-AT91C_MC_LOCKS4 EQU (0x1 << 20) ;- (MC) Sector 4 Lock Status\r
-AT91C_MC_LOCKS5 EQU (0x1 << 21) ;- (MC) Sector 5 Lock Status\r
-AT91C_MC_LOCKS6 EQU (0x1 << 22) ;- (MC) Sector 6 Lock Status\r
-AT91C_MC_LOCKS7 EQU (0x1 << 23) ;- (MC) Sector 7 Lock Status\r
-AT91C_MC_LOCKS8 EQU (0x1 << 24) ;- (MC) Sector 8 Lock Status\r
-AT91C_MC_LOCKS9 EQU (0x1 << 25) ;- (MC) Sector 9 Lock Status\r
-AT91C_MC_LOCKS10 EQU (0x1 << 26) ;- (MC) Sector 10 Lock Status\r
-AT91C_MC_LOCKS11 EQU (0x1 << 27) ;- (MC) Sector 11 Lock Status\r
-AT91C_MC_LOCKS12 EQU (0x1 << 28) ;- (MC) Sector 12 Lock Status\r
-AT91C_MC_LOCKS13 EQU (0x1 << 29) ;- (MC) Sector 13 Lock Status\r
-AT91C_MC_LOCKS14 EQU (0x1 << 30) ;- (MC) Sector 14 Lock Status\r
-AT91C_MC_LOCKS15 EQU (0x1 << 31) ;- (MC) Sector 15 Lock Status\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Serial Parallel Interface\r
-// - *****************************************************************************\r
-// - -------- SPI_CR : (SPI Offset: 0x0) SPI Control Register -------- \r
-AT91C_SPI_SPIEN EQU (0x1 << 0) ;- (SPI) SPI Enable\r
-AT91C_SPI_SPIDIS EQU (0x1 << 1) ;- (SPI) SPI Disable\r
-AT91C_SPI_SWRST EQU (0x1 << 7) ;- (SPI) SPI Software reset\r
-AT91C_SPI_LASTXFER EQU (0x1 << 24) ;- (SPI) SPI Last Transfer\r
-// - -------- SPI_MR : (SPI Offset: 0x4) SPI Mode Register -------- \r
-AT91C_SPI_MSTR EQU (0x1 << 0) ;- (SPI) Master/Slave Mode\r
-AT91C_SPI_PS EQU (0x1 << 1) ;- (SPI) Peripheral Select\r
-AT91C_SPI_PS_FIXED EQU (0x0 << 1) ;- (SPI) Fixed Peripheral Select\r
-AT91C_SPI_PS_VARIABLE EQU (0x1 << 1) ;- (SPI) Variable Peripheral Select\r
-AT91C_SPI_PCSDEC EQU (0x1 << 2) ;- (SPI) Chip Select Decode\r
-AT91C_SPI_FDIV EQU (0x1 << 3) ;- (SPI) Clock Selection\r
-AT91C_SPI_MODFDIS EQU (0x1 << 4) ;- (SPI) Mode Fault Detection\r
-AT91C_SPI_LLB EQU (0x1 << 7) ;- (SPI) Clock Selection\r
-AT91C_SPI_PCS EQU (0xF << 16) ;- (SPI) Peripheral Chip Select\r
-AT91C_SPI_DLYBCS EQU (0xFF << 24) ;- (SPI) Delay Between Chip Selects\r
-// - -------- SPI_RDR : (SPI Offset: 0x8) Receive Data Register -------- \r
-AT91C_SPI_RD EQU (0xFFFF << 0) ;- (SPI) Receive Data\r
-AT91C_SPI_RPCS EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status\r
-// - -------- SPI_TDR : (SPI Offset: 0xc) Transmit Data Register -------- \r
-AT91C_SPI_TD EQU (0xFFFF << 0) ;- (SPI) Transmit Data\r
-AT91C_SPI_TPCS EQU (0xF << 16) ;- (SPI) Peripheral Chip Select Status\r
-// - -------- SPI_SR : (SPI Offset: 0x10) Status Register -------- \r
-AT91C_SPI_RDRF EQU (0x1 << 0) ;- (SPI) Receive Data Register Full\r
-AT91C_SPI_TDRE EQU (0x1 << 1) ;- (SPI) Transmit Data Register Empty\r
-AT91C_SPI_MODF EQU (0x1 << 2) ;- (SPI) Mode Fault Error\r
-AT91C_SPI_OVRES EQU (0x1 << 3) ;- (SPI) Overrun Error Status\r
-AT91C_SPI_ENDRX EQU (0x1 << 4) ;- (SPI) End of Receiver Transfer\r
-AT91C_SPI_ENDTX EQU (0x1 << 5) ;- (SPI) End of Receiver Transfer\r
-AT91C_SPI_RXBUFF EQU (0x1 << 6) ;- (SPI) RXBUFF Interrupt\r
-AT91C_SPI_TXBUFE EQU (0x1 << 7) ;- (SPI) TXBUFE Interrupt\r
-AT91C_SPI_NSSR EQU (0x1 << 8) ;- (SPI) NSSR Interrupt\r
-AT91C_SPI_TXEMPTY EQU (0x1 << 9) ;- (SPI) TXEMPTY Interrupt\r
-AT91C_SPI_SPIENS EQU (0x1 << 16) ;- (SPI) Enable Status\r
-// - -------- SPI_IER : (SPI Offset: 0x14) Interrupt Enable Register -------- \r
-// - -------- SPI_IDR : (SPI Offset: 0x18) Interrupt Disable Register -------- \r
-// - -------- SPI_IMR : (SPI Offset: 0x1c) Interrupt Mask Register -------- \r
-// - -------- SPI_CSR : (SPI Offset: 0x30) Chip Select Register -------- \r
-AT91C_SPI_CPOL EQU (0x1 << 0) ;- (SPI) Clock Polarity\r
-AT91C_SPI_NCPHA EQU (0x1 << 1) ;- (SPI) Clock Phase\r
-AT91C_SPI_CSAAT EQU (0x1 << 3) ;- (SPI) Chip Select Active After Transfer\r
-AT91C_SPI_BITS EQU (0xF << 4) ;- (SPI) Bits Per Transfer\r
-AT91C_SPI_BITS_8 EQU (0x0 << 4) ;- (SPI) 8 Bits Per transfer\r
-AT91C_SPI_BITS_9 EQU (0x1 << 4) ;- (SPI) 9 Bits Per transfer\r
-AT91C_SPI_BITS_10 EQU (0x2 << 4) ;- (SPI) 10 Bits Per transfer\r
-AT91C_SPI_BITS_11 EQU (0x3 << 4) ;- (SPI) 11 Bits Per transfer\r
-AT91C_SPI_BITS_12 EQU (0x4 << 4) ;- (SPI) 12 Bits Per transfer\r
-AT91C_SPI_BITS_13 EQU (0x5 << 4) ;- (SPI) 13 Bits Per transfer\r
-AT91C_SPI_BITS_14 EQU (0x6 << 4) ;- (SPI) 14 Bits Per transfer\r
-AT91C_SPI_BITS_15 EQU (0x7 << 4) ;- (SPI) 15 Bits Per transfer\r
-AT91C_SPI_BITS_16 EQU (0x8 << 4) ;- (SPI) 16 Bits Per transfer\r
-AT91C_SPI_SCBR EQU (0xFF << 8) ;- (SPI) Serial Clock Baud Rate\r
-AT91C_SPI_DLYBS EQU (0xFF << 16) ;- (SPI) Delay Before SPCK\r
-AT91C_SPI_DLYBCT EQU (0xFF << 24) ;- (SPI) Delay Between Consecutive Transfers\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Usart\r
-// - *****************************************************************************\r
-// - -------- US_CR : (USART Offset: 0x0) Debug Unit Control Register -------- \r
-AT91C_US_STTBRK EQU (0x1 << 9) ;- (USART) Start Break\r
-AT91C_US_STPBRK EQU (0x1 << 10) ;- (USART) Stop Break\r
-AT91C_US_STTTO EQU (0x1 << 11) ;- (USART) Start Time-out\r
-AT91C_US_SENDA EQU (0x1 << 12) ;- (USART) Send Address\r
-AT91C_US_RSTIT EQU (0x1 << 13) ;- (USART) Reset Iterations\r
-AT91C_US_RSTNACK EQU (0x1 << 14) ;- (USART) Reset Non Acknowledge\r
-AT91C_US_RETTO EQU (0x1 << 15) ;- (USART) Rearm Time-out\r
-AT91C_US_DTREN EQU (0x1 << 16) ;- (USART) Data Terminal ready Enable\r
-AT91C_US_DTRDIS EQU (0x1 << 17) ;- (USART) Data Terminal ready Disable\r
-AT91C_US_RTSEN EQU (0x1 << 18) ;- (USART) Request to Send enable\r
-AT91C_US_RTSDIS EQU (0x1 << 19) ;- (USART) Request to Send Disable\r
-// - -------- US_MR : (USART Offset: 0x4) Debug Unit Mode Register -------- \r
-AT91C_US_USMODE EQU (0xF << 0) ;- (USART) Usart mode\r
-AT91C_US_USMODE_NORMAL EQU (0x0) ;- (USART) Normal\r
-AT91C_US_USMODE_RS485 EQU (0x1) ;- (USART) RS485\r
-AT91C_US_USMODE_HWHSH EQU (0x2) ;- (USART) Hardware Handshaking\r
-AT91C_US_USMODE_MODEM EQU (0x3) ;- (USART) Modem\r
-AT91C_US_USMODE_ISO7816_0 EQU (0x4) ;- (USART) ISO7816 protocol: T = 0\r
-AT91C_US_USMODE_ISO7816_1 EQU (0x6) ;- (USART) ISO7816 protocol: T = 1\r
-AT91C_US_USMODE_IRDA EQU (0x8) ;- (USART) IrDA\r
-AT91C_US_USMODE_SWHSH EQU (0xC) ;- (USART) Software Handshaking\r
-AT91C_US_CLKS EQU (0x3 << 4) ;- (USART) Clock Selection (Baud Rate generator Input Clock\r
-AT91C_US_CLKS_CLOCK EQU (0x0 << 4) ;- (USART) Clock\r
-AT91C_US_CLKS_FDIV1 EQU (0x1 << 4) ;- (USART) fdiv1\r
-AT91C_US_CLKS_SLOW EQU (0x2 << 4) ;- (USART) slow_clock (ARM)\r
-AT91C_US_CLKS_EXT EQU (0x3 << 4) ;- (USART) External (SCK)\r
-AT91C_US_CHRL EQU (0x3 << 6) ;- (USART) Clock Selection (Baud Rate generator Input Clock\r
-AT91C_US_CHRL_5_BITS EQU (0x0 << 6) ;- (USART) Character Length: 5 bits\r
-AT91C_US_CHRL_6_BITS EQU (0x1 << 6) ;- (USART) Character Length: 6 bits\r
-AT91C_US_CHRL_7_BITS EQU (0x2 << 6) ;- (USART) Character Length: 7 bits\r
-AT91C_US_CHRL_8_BITS EQU (0x3 << 6) ;- (USART) Character Length: 8 bits\r
-AT91C_US_SYNC EQU (0x1 << 8) ;- (USART) Synchronous Mode Select\r
-AT91C_US_NBSTOP EQU (0x3 << 12) ;- (USART) Number of Stop bits\r
-AT91C_US_NBSTOP_1_BIT EQU (0x0 << 12) ;- (USART) 1 stop bit\r
-AT91C_US_NBSTOP_15_BIT EQU (0x1 << 12) ;- (USART) Asynchronous (SYNC=0) 2 stop bits Synchronous (SYNC=1) 2 stop bits\r
-AT91C_US_NBSTOP_2_BIT EQU (0x2 << 12) ;- (USART) 2 stop bits\r
-AT91C_US_MSBF EQU (0x1 << 16) ;- (USART) Bit Order\r
-AT91C_US_MODE9 EQU (0x1 << 17) ;- (USART) 9-bit Character length\r
-AT91C_US_CKLO EQU (0x1 << 18) ;- (USART) Clock Output Select\r
-AT91C_US_OVER EQU (0x1 << 19) ;- (USART) Over Sampling Mode\r
-AT91C_US_INACK EQU (0x1 << 20) ;- (USART) Inhibit Non Acknowledge\r
-AT91C_US_DSNACK EQU (0x1 << 21) ;- (USART) Disable Successive NACK\r
-AT91C_US_MAX_ITER EQU (0x1 << 24) ;- (USART) Number of Repetitions\r
-AT91C_US_FILTER EQU (0x1 << 28) ;- (USART) Receive Line Filter\r
-// - -------- US_IER : (USART Offset: 0x8) Debug Unit Interrupt Enable Register -------- \r
-AT91C_US_RXBRK EQU (0x1 << 2) ;- (USART) Break Received/End of Break\r
-AT91C_US_TIMEOUT EQU (0x1 << 8) ;- (USART) Receiver Time-out\r
-AT91C_US_ITERATION EQU (0x1 << 10) ;- (USART) Max number of Repetitions Reached\r
-AT91C_US_NACK EQU (0x1 << 13) ;- (USART) Non Acknowledge\r
-AT91C_US_RIIC EQU (0x1 << 16) ;- (USART) Ring INdicator Input Change Flag\r
-AT91C_US_DSRIC EQU (0x1 << 17) ;- (USART) Data Set Ready Input Change Flag\r
-AT91C_US_DCDIC EQU (0x1 << 18) ;- (USART) Data Carrier Flag\r
-AT91C_US_CTSIC EQU (0x1 << 19) ;- (USART) Clear To Send Input Change Flag\r
-// - -------- US_IDR : (USART Offset: 0xc) Debug Unit Interrupt Disable Register -------- \r
-// - -------- US_IMR : (USART Offset: 0x10) Debug Unit Interrupt Mask Register -------- \r
-// - -------- US_CSR : (USART Offset: 0x14) Debug Unit Channel Status Register -------- \r
-AT91C_US_RI EQU (0x1 << 20) ;- (USART) Image of RI Input\r
-AT91C_US_DSR EQU (0x1 << 21) ;- (USART) Image of DSR Input\r
-AT91C_US_DCD EQU (0x1 << 22) ;- (USART) Image of DCD Input\r
-AT91C_US_CTS EQU (0x1 << 23) ;- (USART) Image of CTS Input\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Synchronous Serial Controller Interface\r
-// - *****************************************************************************\r
-// - -------- SSC_CR : (SSC Offset: 0x0) SSC Control Register -------- \r
-AT91C_SSC_RXEN EQU (0x1 << 0) ;- (SSC) Receive Enable\r
-AT91C_SSC_RXDIS EQU (0x1 << 1) ;- (SSC) Receive Disable\r
-AT91C_SSC_TXEN EQU (0x1 << 8) ;- (SSC) Transmit Enable\r
-AT91C_SSC_TXDIS EQU (0x1 << 9) ;- (SSC) Transmit Disable\r
-AT91C_SSC_SWRST EQU (0x1 << 15) ;- (SSC) Software Reset\r
-// - -------- SSC_RCMR : (SSC Offset: 0x10) SSC Receive Clock Mode Register -------- \r
-AT91C_SSC_CKS EQU (0x3 << 0) ;- (SSC) Receive/Transmit Clock Selection\r
-AT91C_SSC_CKS_DIV EQU (0x0) ;- (SSC) Divided Clock\r
-AT91C_SSC_CKS_TK EQU (0x1) ;- (SSC) TK Clock signal\r
-AT91C_SSC_CKS_RK EQU (0x2) ;- (SSC) RK pin\r
-AT91C_SSC_CKO EQU (0x7 << 2) ;- (SSC) Receive/Transmit Clock Output Mode Selection\r
-AT91C_SSC_CKO_NONE EQU (0x0 << 2) ;- (SSC) Receive/Transmit Clock Output Mode: None RK pin: Input-only\r
-AT91C_SSC_CKO_CONTINOUS EQU (0x1 << 2) ;- (SSC) Continuous Receive/Transmit Clock RK pin: Output\r
-AT91C_SSC_CKO_DATA_TX EQU (0x2 << 2) ;- (SSC) Receive/Transmit Clock only during data transfers RK pin: Output\r
-AT91C_SSC_CKI EQU (0x1 << 5) ;- (SSC) Receive/Transmit Clock Inversion\r
-AT91C_SSC_START EQU (0xF << 8) ;- (SSC) Receive/Transmit Start Selection\r
-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.\r
-AT91C_SSC_START_TX EQU (0x1 << 8) ;- (SSC) Transmit/Receive start\r
-AT91C_SSC_START_LOW_RF EQU (0x2 << 8) ;- (SSC) Detection of a low level on RF input\r
-AT91C_SSC_START_HIGH_RF EQU (0x3 << 8) ;- (SSC) Detection of a high level on RF input\r
-AT91C_SSC_START_FALL_RF EQU (0x4 << 8) ;- (SSC) Detection of a falling edge on RF input\r
-AT91C_SSC_START_RISE_RF EQU (0x5 << 8) ;- (SSC) Detection of a rising edge on RF input\r
-AT91C_SSC_START_LEVEL_RF EQU (0x6 << 8) ;- (SSC) Detection of any level change on RF input\r
-AT91C_SSC_START_EDGE_RF EQU (0x7 << 8) ;- (SSC) Detection of any edge on RF input\r
-AT91C_SSC_START_0 EQU (0x8 << 8) ;- (SSC) Compare 0\r
-AT91C_SSC_STTDLY EQU (0xFF << 16) ;- (SSC) Receive/Transmit Start Delay\r
-AT91C_SSC_PERIOD EQU (0xFF << 24) ;- (SSC) Receive/Transmit Period Divider Selection\r
-// - -------- SSC_RFMR : (SSC Offset: 0x14) SSC Receive Frame Mode Register -------- \r
-AT91C_SSC_DATLEN EQU (0x1F << 0) ;- (SSC) Data Length\r
-AT91C_SSC_LOOP EQU (0x1 << 5) ;- (SSC) Loop Mode\r
-AT91C_SSC_MSBF EQU (0x1 << 7) ;- (SSC) Most Significant Bit First\r
-AT91C_SSC_DATNB EQU (0xF << 8) ;- (SSC) Data Number per Frame\r
-AT91C_SSC_FSLEN EQU (0xF << 16) ;- (SSC) Receive/Transmit Frame Sync length\r
-AT91C_SSC_FSOS EQU (0x7 << 20) ;- (SSC) Receive/Transmit Frame Sync Output Selection\r
-AT91C_SSC_FSOS_NONE EQU (0x0 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: None RK pin Input-only\r
-AT91C_SSC_FSOS_NEGATIVE EQU (0x1 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Negative Pulse\r
-AT91C_SSC_FSOS_POSITIVE EQU (0x2 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Positive Pulse\r
-AT91C_SSC_FSOS_LOW EQU (0x3 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver Low during data transfer\r
-AT91C_SSC_FSOS_HIGH EQU (0x4 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Driver High during data transfer\r
-AT91C_SSC_FSOS_TOGGLE EQU (0x5 << 20) ;- (SSC) Selected Receive/Transmit Frame Sync Signal: Toggling at each start of data transfer\r
-AT91C_SSC_FSEDGE EQU (0x1 << 24) ;- (SSC) Frame Sync Edge Detection\r
-// - -------- SSC_TCMR : (SSC Offset: 0x18) SSC Transmit Clock Mode Register -------- \r
-// - -------- SSC_TFMR : (SSC Offset: 0x1c) SSC Transmit Frame Mode Register -------- \r
-AT91C_SSC_DATDEF EQU (0x1 << 5) ;- (SSC) Data Default Value\r
-AT91C_SSC_FSDEN EQU (0x1 << 23) ;- (SSC) Frame Sync Data Enable\r
-// - -------- SSC_SR : (SSC Offset: 0x40) SSC Status Register -------- \r
-AT91C_SSC_TXRDY EQU (0x1 << 0) ;- (SSC) Transmit Ready\r
-AT91C_SSC_TXEMPTY EQU (0x1 << 1) ;- (SSC) Transmit Empty\r
-AT91C_SSC_ENDTX EQU (0x1 << 2) ;- (SSC) End Of Transmission\r
-AT91C_SSC_TXBUFE EQU (0x1 << 3) ;- (SSC) Transmit Buffer Empty\r
-AT91C_SSC_RXRDY EQU (0x1 << 4) ;- (SSC) Receive Ready\r
-AT91C_SSC_OVRUN EQU (0x1 << 5) ;- (SSC) Receive Overrun\r
-AT91C_SSC_ENDRX EQU (0x1 << 6) ;- (SSC) End of Reception\r
-AT91C_SSC_RXBUFF EQU (0x1 << 7) ;- (SSC) Receive Buffer Full\r
-AT91C_SSC_TXSYN EQU (0x1 << 10) ;- (SSC) Transmit Sync\r
-AT91C_SSC_RXSYN EQU (0x1 << 11) ;- (SSC) Receive Sync\r
-AT91C_SSC_TXENA EQU (0x1 << 16) ;- (SSC) Transmit Enable\r
-AT91C_SSC_RXENA EQU (0x1 << 17) ;- (SSC) Receive Enable\r
-// - -------- SSC_IER : (SSC Offset: 0x44) SSC Interrupt Enable Register -------- \r
-// - -------- SSC_IDR : (SSC Offset: 0x48) SSC Interrupt Disable Register -------- \r
-// - -------- SSC_IMR : (SSC Offset: 0x4c) SSC Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Two-wire Interface\r
-// - *****************************************************************************\r
-// - -------- TWI_CR : (TWI Offset: 0x0) TWI Control Register -------- \r
-AT91C_TWI_START EQU (0x1 << 0) ;- (TWI) Send a START Condition\r
-AT91C_TWI_STOP EQU (0x1 << 1) ;- (TWI) Send a STOP Condition\r
-AT91C_TWI_MSEN EQU (0x1 << 2) ;- (TWI) TWI Master Transfer Enabled\r
-AT91C_TWI_MSDIS EQU (0x1 << 3) ;- (TWI) TWI Master Transfer Disabled\r
-AT91C_TWI_SWRST EQU (0x1 << 7) ;- (TWI) Software Reset\r
-// - -------- TWI_MMR : (TWI Offset: 0x4) TWI Master Mode Register -------- \r
-AT91C_TWI_IADRSZ EQU (0x3 << 8) ;- (TWI) Internal Device Address Size\r
-AT91C_TWI_IADRSZ_NO EQU (0x0 << 8) ;- (TWI) No internal device address\r
-AT91C_TWI_IADRSZ_1_BYTE EQU (0x1 << 8) ;- (TWI) One-byte internal device address\r
-AT91C_TWI_IADRSZ_2_BYTE EQU (0x2 << 8) ;- (TWI) Two-byte internal device address\r
-AT91C_TWI_IADRSZ_3_BYTE EQU (0x3 << 8) ;- (TWI) Three-byte internal device address\r
-AT91C_TWI_MREAD EQU (0x1 << 12) ;- (TWI) Master Read Direction\r
-AT91C_TWI_DADR EQU (0x7F << 16) ;- (TWI) Device Address\r
-// - -------- TWI_CWGR : (TWI Offset: 0x10) TWI Clock Waveform Generator Register -------- \r
-AT91C_TWI_CLDIV EQU (0xFF << 0) ;- (TWI) Clock Low Divider\r
-AT91C_TWI_CHDIV EQU (0xFF << 8) ;- (TWI) Clock High Divider\r
-AT91C_TWI_CKDIV EQU (0x7 << 16) ;- (TWI) Clock Divider\r
-// - -------- TWI_SR : (TWI Offset: 0x20) TWI Status Register -------- \r
-AT91C_TWI_TXCOMP EQU (0x1 << 0) ;- (TWI) Transmission Completed\r
-AT91C_TWI_RXRDY EQU (0x1 << 1) ;- (TWI) Receive holding register ReaDY\r
-AT91C_TWI_TXRDY EQU (0x1 << 2) ;- (TWI) Transmit holding register ReaDY\r
-AT91C_TWI_OVRE EQU (0x1 << 6) ;- (TWI) Overrun Error\r
-AT91C_TWI_UNRE EQU (0x1 << 7) ;- (TWI) Underrun Error\r
-AT91C_TWI_NACK EQU (0x1 << 8) ;- (TWI) Not Acknowledged\r
-// - -------- TWI_IER : (TWI Offset: 0x24) TWI Interrupt Enable Register -------- \r
-// - -------- TWI_IDR : (TWI Offset: 0x28) TWI Interrupt Disable Register -------- \r
-// - -------- TWI_IMR : (TWI Offset: 0x2c) TWI Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR PWMC Channel Interface\r
-// - *****************************************************************************\r
-// - -------- PWMC_CMR : (PWMC_CH Offset: 0x0) PWMC Channel Mode Register -------- \r
-AT91C_PWMC_CPRE EQU (0xF << 0) ;- (PWMC_CH) Channel Pre-scaler : PWMC_CLKx\r
-AT91C_PWMC_CPRE_MCK EQU (0x0) ;- (PWMC_CH) \r
-AT91C_PWMC_CPRE_MCKA EQU (0xB) ;- (PWMC_CH) \r
-AT91C_PWMC_CPRE_MCKB EQU (0xC) ;- (PWMC_CH) \r
-AT91C_PWMC_CALG EQU (0x1 << 8) ;- (PWMC_CH) Channel Alignment\r
-AT91C_PWMC_CPOL EQU (0x1 << 9) ;- (PWMC_CH) Channel Polarity\r
-AT91C_PWMC_CPD EQU (0x1 << 10) ;- (PWMC_CH) Channel Update Period\r
-// - -------- PWMC_CDTYR : (PWMC_CH Offset: 0x4) PWMC Channel Duty Cycle Register -------- \r
-AT91C_PWMC_CDTY EQU (0x0 << 0) ;- (PWMC_CH) Channel Duty Cycle\r
-// - -------- PWMC_CPRDR : (PWMC_CH Offset: 0x8) PWMC Channel Period Register -------- \r
-AT91C_PWMC_CPRD EQU (0x0 << 0) ;- (PWMC_CH) Channel Period\r
-// - -------- PWMC_CCNTR : (PWMC_CH Offset: 0xc) PWMC Channel Counter Register -------- \r
-AT91C_PWMC_CCNT EQU (0x0 << 0) ;- (PWMC_CH) Channel Counter\r
-// - -------- PWMC_CUPDR : (PWMC_CH Offset: 0x10) PWMC Channel Update Register -------- \r
-AT91C_PWMC_CUPD EQU (0x0 << 0) ;- (PWMC_CH) Channel Update\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Pulse Width Modulation Controller Interface\r
-// - *****************************************************************************\r
-// - -------- PWMC_MR : (PWMC Offset: 0x0) PWMC Mode Register -------- \r
-AT91C_PWMC_DIVA EQU (0xFF << 0) ;- (PWMC) CLKA divide factor.\r
-AT91C_PWMC_PREA EQU (0xF << 8) ;- (PWMC) Divider Input Clock Prescaler A\r
-AT91C_PWMC_PREA_MCK EQU (0x0 << 8) ;- (PWMC) \r
-AT91C_PWMC_DIVB EQU (0xFF << 16) ;- (PWMC) CLKB divide factor.\r
-AT91C_PWMC_PREB EQU (0xF << 24) ;- (PWMC) Divider Input Clock Prescaler B\r
-AT91C_PWMC_PREB_MCK EQU (0x0 << 24) ;- (PWMC) \r
-// - -------- PWMC_ENA : (PWMC Offset: 0x4) PWMC Enable Register -------- \r
-AT91C_PWMC_CHID0 EQU (0x1 << 0) ;- (PWMC) Channel ID 0\r
-AT91C_PWMC_CHID1 EQU (0x1 << 1) ;- (PWMC) Channel ID 1\r
-AT91C_PWMC_CHID2 EQU (0x1 << 2) ;- (PWMC) Channel ID 2\r
-AT91C_PWMC_CHID3 EQU (0x1 << 3) ;- (PWMC) Channel ID 3\r
-// - -------- PWMC_DIS : (PWMC Offset: 0x8) PWMC Disable Register -------- \r
-// - -------- PWMC_SR : (PWMC Offset: 0xc) PWMC Status Register -------- \r
-// - -------- PWMC_IER : (PWMC Offset: 0x10) PWMC Interrupt Enable Register -------- \r
-// - -------- PWMC_IDR : (PWMC Offset: 0x14) PWMC Interrupt Disable Register -------- \r
-// - -------- PWMC_IMR : (PWMC Offset: 0x18) PWMC Interrupt Mask Register -------- \r
-// - -------- PWMC_ISR : (PWMC Offset: 0x1c) PWMC Interrupt Status Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR USB Device Interface\r
-// - *****************************************************************************\r
-// - -------- UDP_FRM_NUM : (UDP Offset: 0x0) USB Frame Number Register -------- \r
-AT91C_UDP_FRM_NUM EQU (0x7FF << 0) ;- (UDP) Frame Number as Defined in the Packet Field Formats\r
-AT91C_UDP_FRM_ERR EQU (0x1 << 16) ;- (UDP) Frame Error\r
-AT91C_UDP_FRM_OK EQU (0x1 << 17) ;- (UDP) Frame OK\r
-// - -------- UDP_GLB_STATE : (UDP Offset: 0x4) USB Global State Register -------- \r
-AT91C_UDP_FADDEN EQU (0x1 << 0) ;- (UDP) Function Address Enable\r
-AT91C_UDP_CONFG EQU (0x1 << 1) ;- (UDP) Configured\r
-AT91C_UDP_ESR EQU (0x1 << 2) ;- (UDP) Enable Send Resume\r
-AT91C_UDP_RSMINPR EQU (0x1 << 3) ;- (UDP) A Resume Has Been Sent to the Host\r
-AT91C_UDP_RMWUPE EQU (0x1 << 4) ;- (UDP) Remote Wake Up Enable\r
-// - -------- UDP_FADDR : (UDP Offset: 0x8) USB Function Address Register -------- \r
-AT91C_UDP_FADD EQU (0xFF << 0) ;- (UDP) Function Address Value\r
-AT91C_UDP_FEN EQU (0x1 << 8) ;- (UDP) Function Enable\r
-// - -------- UDP_IER : (UDP Offset: 0x10) USB Interrupt Enable Register -------- \r
-AT91C_UDP_EPINT0 EQU (0x1 << 0) ;- (UDP) Endpoint 0 Interrupt\r
-AT91C_UDP_EPINT1 EQU (0x1 << 1) ;- (UDP) Endpoint 0 Interrupt\r
-AT91C_UDP_EPINT2 EQU (0x1 << 2) ;- (UDP) Endpoint 2 Interrupt\r
-AT91C_UDP_EPINT3 EQU (0x1 << 3) ;- (UDP) Endpoint 3 Interrupt\r
-AT91C_UDP_EPINT4 EQU (0x1 << 4) ;- (UDP) Endpoint 4 Interrupt\r
-AT91C_UDP_EPINT5 EQU (0x1 << 5) ;- (UDP) Endpoint 5 Interrupt\r
-AT91C_UDP_RXSUSP EQU (0x1 << 8) ;- (UDP) USB Suspend Interrupt\r
-AT91C_UDP_RXRSM EQU (0x1 << 9) ;- (UDP) USB Resume Interrupt\r
-AT91C_UDP_EXTRSM EQU (0x1 << 10) ;- (UDP) USB External Resume Interrupt\r
-AT91C_UDP_SOFINT EQU (0x1 << 11) ;- (UDP) USB Start Of frame Interrupt\r
-AT91C_UDP_WAKEUP EQU (0x1 << 13) ;- (UDP) USB Resume Interrupt\r
-// - -------- UDP_IDR : (UDP Offset: 0x14) USB Interrupt Disable Register -------- \r
-// - -------- UDP_IMR : (UDP Offset: 0x18) USB Interrupt Mask Register -------- \r
-// - -------- UDP_ISR : (UDP Offset: 0x1c) USB Interrupt Status Register -------- \r
-AT91C_UDP_ENDBUSRES EQU (0x1 << 12) ;- (UDP) USB End Of Bus Reset Interrupt\r
-// - -------- UDP_ICR : (UDP Offset: 0x20) USB Interrupt Clear Register -------- \r
-// - -------- UDP_RST_EP : (UDP Offset: 0x28) USB Reset Endpoint Register -------- \r
-AT91C_UDP_EP0 EQU (0x1 << 0) ;- (UDP) Reset Endpoint 0\r
-AT91C_UDP_EP1 EQU (0x1 << 1) ;- (UDP) Reset Endpoint 1\r
-AT91C_UDP_EP2 EQU (0x1 << 2) ;- (UDP) Reset Endpoint 2\r
-AT91C_UDP_EP3 EQU (0x1 << 3) ;- (UDP) Reset Endpoint 3\r
-AT91C_UDP_EP4 EQU (0x1 << 4) ;- (UDP) Reset Endpoint 4\r
-AT91C_UDP_EP5 EQU (0x1 << 5) ;- (UDP) Reset Endpoint 5\r
-// - -------- UDP_CSR : (UDP Offset: 0x30) USB Endpoint Control and Status Register -------- \r
-AT91C_UDP_TXCOMP EQU (0x1 << 0) ;- (UDP) Generates an IN packet with data previously written in the DPR\r
-AT91C_UDP_RX_DATA_BK0 EQU (0x1 << 1) ;- (UDP) Receive Data Bank 0\r
-AT91C_UDP_RXSETUP EQU (0x1 << 2) ;- (UDP) Sends STALL to the Host (Control endpoints)\r
-AT91C_UDP_ISOERROR EQU (0x1 << 3) ;- (UDP) Isochronous error (Isochronous endpoints)\r
-AT91C_UDP_TXPKTRDY EQU (0x1 << 4) ;- (UDP) Transmit Packet Ready\r
-AT91C_UDP_FORCESTALL EQU (0x1 << 5) ;- (UDP) Force Stall (used by Control, Bulk and Isochronous endpoints).\r
-AT91C_UDP_RX_DATA_BK1 EQU (0x1 << 6) ;- (UDP) Receive Data Bank 1 (only used by endpoints with ping-pong attributes).\r
-AT91C_UDP_DIR EQU (0x1 << 7) ;- (UDP) Transfer Direction\r
-AT91C_UDP_EPTYPE EQU (0x7 << 8) ;- (UDP) Endpoint type\r
-AT91C_UDP_EPTYPE_CTRL EQU (0x0 << 8) ;- (UDP) Control\r
-AT91C_UDP_EPTYPE_ISO_OUT EQU (0x1 << 8) ;- (UDP) Isochronous OUT\r
-AT91C_UDP_EPTYPE_BULK_OUT EQU (0x2 << 8) ;- (UDP) Bulk OUT\r
-AT91C_UDP_EPTYPE_INT_OUT EQU (0x3 << 8) ;- (UDP) Interrupt OUT\r
-AT91C_UDP_EPTYPE_ISO_IN EQU (0x5 << 8) ;- (UDP) Isochronous IN\r
-AT91C_UDP_EPTYPE_BULK_IN EQU (0x6 << 8) ;- (UDP) Bulk IN\r
-AT91C_UDP_EPTYPE_INT_IN EQU (0x7 << 8) ;- (UDP) Interrupt IN\r
-AT91C_UDP_DTGLE EQU (0x1 << 11) ;- (UDP) Data Toggle\r
-AT91C_UDP_EPEDS EQU (0x1 << 15) ;- (UDP) Endpoint Enable Disable\r
-AT91C_UDP_RXBYTECNT EQU (0x7FF << 16) ;- (UDP) Number Of Bytes Available in the FIFO\r
-// - -------- UDP_TXVC : (UDP Offset: 0x74) Transceiver Control Register -------- \r
-AT91C_UDP_TXVDIS EQU (0x1 << 8) ;- (UDP) \r
-AT91C_UDP_PUON EQU (0x1 << 9) ;- (UDP) Pull-up ON\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Timer Counter Channel Interface\r
-// - *****************************************************************************\r
-// - -------- TC_CCR : (TC Offset: 0x0) TC Channel Control Register -------- \r
-AT91C_TC_CLKEN EQU (0x1 << 0) ;- (TC) Counter Clock Enable Command\r
-AT91C_TC_CLKDIS EQU (0x1 << 1) ;- (TC) Counter Clock Disable Command\r
-AT91C_TC_SWTRG EQU (0x1 << 2) ;- (TC) Software Trigger Command\r
-// - -------- TC_CMR : (TC Offset: 0x4) TC Channel Mode Register: Capture Mode / Waveform Mode -------- \r
-AT91C_TC_CLKS EQU (0x7 << 0) ;- (TC) Clock Selection\r
-AT91C_TC_CLKS_TIMER_DIV1_CLOCK EQU (0x0) ;- (TC) Clock selected: TIMER_DIV1_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV2_CLOCK EQU (0x1) ;- (TC) Clock selected: TIMER_DIV2_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV3_CLOCK EQU (0x2) ;- (TC) Clock selected: TIMER_DIV3_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV4_CLOCK EQU (0x3) ;- (TC) Clock selected: TIMER_DIV4_CLOCK\r
-AT91C_TC_CLKS_TIMER_DIV5_CLOCK EQU (0x4) ;- (TC) Clock selected: TIMER_DIV5_CLOCK\r
-AT91C_TC_CLKS_XC0 EQU (0x5) ;- (TC) Clock selected: XC0\r
-AT91C_TC_CLKS_XC1 EQU (0x6) ;- (TC) Clock selected: XC1\r
-AT91C_TC_CLKS_XC2 EQU (0x7) ;- (TC) Clock selected: XC2\r
-AT91C_TC_CLKI EQU (0x1 << 3) ;- (TC) Clock Invert\r
-AT91C_TC_BURST EQU (0x3 << 4) ;- (TC) Burst Signal Selection\r
-AT91C_TC_BURST_NONE EQU (0x0 << 4) ;- (TC) The clock is not gated by an external signal\r
-AT91C_TC_BURST_XC0 EQU (0x1 << 4) ;- (TC) XC0 is ANDed with the selected clock\r
-AT91C_TC_BURST_XC1 EQU (0x2 << 4) ;- (TC) XC1 is ANDed with the selected clock\r
-AT91C_TC_BURST_XC2 EQU (0x3 << 4) ;- (TC) XC2 is ANDed with the selected clock\r
-AT91C_TC_CPCSTOP EQU (0x1 << 6) ;- (TC) Counter Clock Stopped with RC Compare\r
-AT91C_TC_LDBSTOP EQU (0x1 << 6) ;- (TC) Counter Clock Stopped with RB Loading\r
-AT91C_TC_CPCDIS EQU (0x1 << 7) ;- (TC) Counter Clock Disable with RC Compare\r
-AT91C_TC_LDBDIS EQU (0x1 << 7) ;- (TC) Counter Clock Disabled with RB Loading\r
-AT91C_TC_ETRGEDG EQU (0x3 << 8) ;- (TC) External Trigger Edge Selection\r
-AT91C_TC_ETRGEDG_NONE EQU (0x0 << 8) ;- (TC) Edge: None\r
-AT91C_TC_ETRGEDG_RISING EQU (0x1 << 8) ;- (TC) Edge: rising edge\r
-AT91C_TC_ETRGEDG_FALLING EQU (0x2 << 8) ;- (TC) Edge: falling edge\r
-AT91C_TC_ETRGEDG_BOTH EQU (0x3 << 8) ;- (TC) Edge: each edge\r
-AT91C_TC_EEVTEDG EQU (0x3 << 8) ;- (TC) External Event Edge Selection\r
-AT91C_TC_EEVTEDG_NONE EQU (0x0 << 8) ;- (TC) Edge: None\r
-AT91C_TC_EEVTEDG_RISING EQU (0x1 << 8) ;- (TC) Edge: rising edge\r
-AT91C_TC_EEVTEDG_FALLING EQU (0x2 << 8) ;- (TC) Edge: falling edge\r
-AT91C_TC_EEVTEDG_BOTH EQU (0x3 << 8) ;- (TC) Edge: each edge\r
-AT91C_TC_EEVT EQU (0x3 << 10) ;- (TC) External Event Selection\r
-AT91C_TC_EEVT_TIOB EQU (0x0 << 10) ;- (TC) Signal selected as external event: TIOB TIOB direction: input\r
-AT91C_TC_EEVT_XC0 EQU (0x1 << 10) ;- (TC) Signal selected as external event: XC0 TIOB direction: output\r
-AT91C_TC_EEVT_XC1 EQU (0x2 << 10) ;- (TC) Signal selected as external event: XC1 TIOB direction: output\r
-AT91C_TC_EEVT_XC2 EQU (0x3 << 10) ;- (TC) Signal selected as external event: XC2 TIOB direction: output\r
-AT91C_TC_ABETRG EQU (0x1 << 10) ;- (TC) TIOA or TIOB External Trigger Selection\r
-AT91C_TC_ENETRG EQU (0x1 << 12) ;- (TC) External Event Trigger enable\r
-AT91C_TC_WAVESEL EQU (0x3 << 13) ;- (TC) Waveform Selection\r
-AT91C_TC_WAVESEL_UP EQU (0x0 << 13) ;- (TC) UP mode without atomatic trigger on RC Compare\r
-AT91C_TC_WAVESEL_UPDOWN EQU (0x1 << 13) ;- (TC) UPDOWN mode without automatic trigger on RC Compare\r
-AT91C_TC_WAVESEL_UP_AUTO EQU (0x2 << 13) ;- (TC) UP mode with automatic trigger on RC Compare\r
-AT91C_TC_WAVESEL_UPDOWN_AUTO EQU (0x3 << 13) ;- (TC) UPDOWN mode with automatic trigger on RC Compare\r
-AT91C_TC_CPCTRG EQU (0x1 << 14) ;- (TC) RC Compare Trigger Enable\r
-AT91C_TC_WAVE EQU (0x1 << 15) ;- (TC) \r
-AT91C_TC_ACPA EQU (0x3 << 16) ;- (TC) RA Compare Effect on TIOA\r
-AT91C_TC_ACPA_NONE EQU (0x0 << 16) ;- (TC) Effect: none\r
-AT91C_TC_ACPA_SET EQU (0x1 << 16) ;- (TC) Effect: set\r
-AT91C_TC_ACPA_CLEAR EQU (0x2 << 16) ;- (TC) Effect: clear\r
-AT91C_TC_ACPA_TOGGLE EQU (0x3 << 16) ;- (TC) Effect: toggle\r
-AT91C_TC_LDRA EQU (0x3 << 16) ;- (TC) RA Loading Selection\r
-AT91C_TC_LDRA_NONE EQU (0x0 << 16) ;- (TC) Edge: None\r
-AT91C_TC_LDRA_RISING EQU (0x1 << 16) ;- (TC) Edge: rising edge of TIOA\r
-AT91C_TC_LDRA_FALLING EQU (0x2 << 16) ;- (TC) Edge: falling edge of TIOA\r
-AT91C_TC_LDRA_BOTH EQU (0x3 << 16) ;- (TC) Edge: each edge of TIOA\r
-AT91C_TC_ACPC EQU (0x3 << 18) ;- (TC) RC Compare Effect on TIOA\r
-AT91C_TC_ACPC_NONE EQU (0x0 << 18) ;- (TC) Effect: none\r
-AT91C_TC_ACPC_SET EQU (0x1 << 18) ;- (TC) Effect: set\r
-AT91C_TC_ACPC_CLEAR EQU (0x2 << 18) ;- (TC) Effect: clear\r
-AT91C_TC_ACPC_TOGGLE EQU (0x3 << 18) ;- (TC) Effect: toggle\r
-AT91C_TC_LDRB EQU (0x3 << 18) ;- (TC) RB Loading Selection\r
-AT91C_TC_LDRB_NONE EQU (0x0 << 18) ;- (TC) Edge: None\r
-AT91C_TC_LDRB_RISING EQU (0x1 << 18) ;- (TC) Edge: rising edge of TIOA\r
-AT91C_TC_LDRB_FALLING EQU (0x2 << 18) ;- (TC) Edge: falling edge of TIOA\r
-AT91C_TC_LDRB_BOTH EQU (0x3 << 18) ;- (TC) Edge: each edge of TIOA\r
-AT91C_TC_AEEVT EQU (0x3 << 20) ;- (TC) External Event Effect on TIOA\r
-AT91C_TC_AEEVT_NONE EQU (0x0 << 20) ;- (TC) Effect: none\r
-AT91C_TC_AEEVT_SET EQU (0x1 << 20) ;- (TC) Effect: set\r
-AT91C_TC_AEEVT_CLEAR EQU (0x2 << 20) ;- (TC) Effect: clear\r
-AT91C_TC_AEEVT_TOGGLE EQU (0x3 << 20) ;- (TC) Effect: toggle\r
-AT91C_TC_ASWTRG EQU (0x3 << 22) ;- (TC) Software Trigger Effect on TIOA\r
-AT91C_TC_ASWTRG_NONE EQU (0x0 << 22) ;- (TC) Effect: none\r
-AT91C_TC_ASWTRG_SET EQU (0x1 << 22) ;- (TC) Effect: set\r
-AT91C_TC_ASWTRG_CLEAR EQU (0x2 << 22) ;- (TC) Effect: clear\r
-AT91C_TC_ASWTRG_TOGGLE EQU (0x3 << 22) ;- (TC) Effect: toggle\r
-AT91C_TC_BCPB EQU (0x3 << 24) ;- (TC) RB Compare Effect on TIOB\r
-AT91C_TC_BCPB_NONE EQU (0x0 << 24) ;- (TC) Effect: none\r
-AT91C_TC_BCPB_SET EQU (0x1 << 24) ;- (TC) Effect: set\r
-AT91C_TC_BCPB_CLEAR EQU (0x2 << 24) ;- (TC) Effect: clear\r
-AT91C_TC_BCPB_TOGGLE EQU (0x3 << 24) ;- (TC) Effect: toggle\r
-AT91C_TC_BCPC EQU (0x3 << 26) ;- (TC) RC Compare Effect on TIOB\r
-AT91C_TC_BCPC_NONE EQU (0x0 << 26) ;- (TC) Effect: none\r
-AT91C_TC_BCPC_SET EQU (0x1 << 26) ;- (TC) Effect: set\r
-AT91C_TC_BCPC_CLEAR EQU (0x2 << 26) ;- (TC) Effect: clear\r
-AT91C_TC_BCPC_TOGGLE EQU (0x3 << 26) ;- (TC) Effect: toggle\r
-AT91C_TC_BEEVT EQU (0x3 << 28) ;- (TC) External Event Effect on TIOB\r
-AT91C_TC_BEEVT_NONE EQU (0x0 << 28) ;- (TC) Effect: none\r
-AT91C_TC_BEEVT_SET EQU (0x1 << 28) ;- (TC) Effect: set\r
-AT91C_TC_BEEVT_CLEAR EQU (0x2 << 28) ;- (TC) Effect: clear\r
-AT91C_TC_BEEVT_TOGGLE EQU (0x3 << 28) ;- (TC) Effect: toggle\r
-AT91C_TC_BSWTRG EQU (0x3 << 30) ;- (TC) Software Trigger Effect on TIOB\r
-AT91C_TC_BSWTRG_NONE EQU (0x0 << 30) ;- (TC) Effect: none\r
-AT91C_TC_BSWTRG_SET EQU (0x1 << 30) ;- (TC) Effect: set\r
-AT91C_TC_BSWTRG_CLEAR EQU (0x2 << 30) ;- (TC) Effect: clear\r
-AT91C_TC_BSWTRG_TOGGLE EQU (0x3 << 30) ;- (TC) Effect: toggle\r
-// - -------- TC_SR : (TC Offset: 0x20) TC Channel Status Register -------- \r
-AT91C_TC_COVFS EQU (0x1 << 0) ;- (TC) Counter Overflow\r
-AT91C_TC_LOVRS EQU (0x1 << 1) ;- (TC) Load Overrun\r
-AT91C_TC_CPAS EQU (0x1 << 2) ;- (TC) RA Compare\r
-AT91C_TC_CPBS EQU (0x1 << 3) ;- (TC) RB Compare\r
-AT91C_TC_CPCS EQU (0x1 << 4) ;- (TC) RC Compare\r
-AT91C_TC_LDRAS EQU (0x1 << 5) ;- (TC) RA Loading\r
-AT91C_TC_LDRBS EQU (0x1 << 6) ;- (TC) RB Loading\r
-AT91C_TC_ETRGS EQU (0x1 << 7) ;- (TC) External Trigger\r
-AT91C_TC_CLKSTA EQU (0x1 << 16) ;- (TC) Clock Enabling\r
-AT91C_TC_MTIOA EQU (0x1 << 17) ;- (TC) TIOA Mirror\r
-AT91C_TC_MTIOB EQU (0x1 << 18) ;- (TC) TIOA Mirror\r
-// - -------- TC_IER : (TC Offset: 0x24) TC Channel Interrupt Enable Register -------- \r
-// - -------- TC_IDR : (TC Offset: 0x28) TC Channel Interrupt Disable Register -------- \r
-// - -------- TC_IMR : (TC Offset: 0x2c) TC Channel Interrupt Mask Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Timer Counter Interface\r
-// - *****************************************************************************\r
-// - -------- TCB_BCR : (TCB Offset: 0xc0) TC Block Control Register -------- \r
-AT91C_TCB_SYNC EQU (0x1 << 0) ;- (TCB) Synchro Command\r
-// - -------- TCB_BMR : (TCB Offset: 0xc4) TC Block Mode Register -------- \r
-AT91C_TCB_TC0XC0S EQU (0x3 << 0) ;- (TCB) External Clock Signal 0 Selection\r
-AT91C_TCB_TC0XC0S_TCLK0 EQU (0x0) ;- (TCB) TCLK0 connected to XC0\r
-AT91C_TCB_TC0XC0S_NONE EQU (0x1) ;- (TCB) None signal connected to XC0\r
-AT91C_TCB_TC0XC0S_TIOA1 EQU (0x2) ;- (TCB) TIOA1 connected to XC0\r
-AT91C_TCB_TC0XC0S_TIOA2 EQU (0x3) ;- (TCB) TIOA2 connected to XC0\r
-AT91C_TCB_TC1XC1S EQU (0x3 << 2) ;- (TCB) External Clock Signal 1 Selection\r
-AT91C_TCB_TC1XC1S_TCLK1 EQU (0x0 << 2) ;- (TCB) TCLK1 connected to XC1\r
-AT91C_TCB_TC1XC1S_NONE EQU (0x1 << 2) ;- (TCB) None signal connected to XC1\r
-AT91C_TCB_TC1XC1S_TIOA0 EQU (0x2 << 2) ;- (TCB) TIOA0 connected to XC1\r
-AT91C_TCB_TC1XC1S_TIOA2 EQU (0x3 << 2) ;- (TCB) TIOA2 connected to XC1\r
-AT91C_TCB_TC2XC2S EQU (0x3 << 4) ;- (TCB) External Clock Signal 2 Selection\r
-AT91C_TCB_TC2XC2S_TCLK2 EQU (0x0 << 4) ;- (TCB) TCLK2 connected to XC2\r
-AT91C_TCB_TC2XC2S_NONE EQU (0x1 << 4) ;- (TCB) None signal connected to XC2\r
-AT91C_TCB_TC2XC2S_TIOA0 EQU (0x2 << 4) ;- (TCB) TIOA0 connected to XC2\r
-AT91C_TCB_TC2XC2S_TIOA1 EQU (0x3 << 4) ;- (TCB) TIOA2 connected to XC2\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Control Area Network MailBox Interface\r
-// - *****************************************************************************\r
-// - -------- CAN_MMR : (CAN_MB Offset: 0x0) CAN Message Mode Register -------- \r
-AT91C_CAN_MTIMEMARK EQU (0xFFFF << 0) ;- (CAN_MB) Mailbox Timemark\r
-AT91C_CAN_PRIOR EQU (0xF << 16) ;- (CAN_MB) Mailbox Priority\r
-AT91C_CAN_MOT EQU (0x7 << 24) ;- (CAN_MB) Mailbox Object Type\r
-AT91C_CAN_MOT_DIS EQU (0x0 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_RX EQU (0x1 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_RXOVERWRITE EQU (0x2 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_TX EQU (0x3 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_CONSUMER EQU (0x4 << 24) ;- (CAN_MB) \r
-AT91C_CAN_MOT_PRODUCER EQU (0x5 << 24) ;- (CAN_MB) \r
-// - -------- CAN_MAM : (CAN_MB Offset: 0x4) CAN Message Acceptance Mask Register -------- \r
-AT91C_CAN_MIDvB EQU (0x3FFFF << 0) ;- (CAN_MB) Complementary bits for identifier in extended mode\r
-AT91C_CAN_MIDvA EQU (0x7FF << 18) ;- (CAN_MB) Identifier for standard frame mode\r
-AT91C_CAN_MIDE EQU (0x1 << 29) ;- (CAN_MB) Identifier Version\r
-// - -------- CAN_MID : (CAN_MB Offset: 0x8) CAN Message ID Register -------- \r
-// - -------- CAN_MFID : (CAN_MB Offset: 0xc) CAN Message Family ID Register -------- \r
-// - -------- CAN_MSR : (CAN_MB Offset: 0x10) CAN Message Status Register -------- \r
-AT91C_CAN_MTIMESTAMP EQU (0xFFFF << 0) ;- (CAN_MB) Timer Value\r
-AT91C_CAN_MDLC EQU (0xF << 16) ;- (CAN_MB) Mailbox Data Length Code\r
-AT91C_CAN_MRTR EQU (0x1 << 20) ;- (CAN_MB) Mailbox Remote Transmission Request\r
-AT91C_CAN_MABT EQU (0x1 << 22) ;- (CAN_MB) Mailbox Message Abort\r
-AT91C_CAN_MRDY EQU (0x1 << 23) ;- (CAN_MB) Mailbox Ready\r
-AT91C_CAN_MMI EQU (0x1 << 24) ;- (CAN_MB) Mailbox Message Ignored\r
-// - -------- CAN_MDL : (CAN_MB Offset: 0x14) CAN Message Data Low Register -------- \r
-// - -------- CAN_MDH : (CAN_MB Offset: 0x18) CAN Message Data High Register -------- \r
-// - -------- CAN_MCR : (CAN_MB Offset: 0x1c) CAN Message Control Register -------- \r
-AT91C_CAN_MACR EQU (0x1 << 22) ;- (CAN_MB) Abort Request for Mailbox\r
-AT91C_CAN_MTCR EQU (0x1 << 23) ;- (CAN_MB) Mailbox Transfer Command\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Control Area Network Interface\r
-// - *****************************************************************************\r
-// - -------- CAN_MR : (CAN Offset: 0x0) CAN Mode Register -------- \r
-AT91C_CAN_CANEN EQU (0x1 << 0) ;- (CAN) CAN Controller Enable\r
-AT91C_CAN_LPM EQU (0x1 << 1) ;- (CAN) Disable/Enable Low Power Mode\r
-AT91C_CAN_ABM EQU (0x1 << 2) ;- (CAN) Disable/Enable Autobaud/Listen Mode\r
-AT91C_CAN_OVL EQU (0x1 << 3) ;- (CAN) Disable/Enable Overload Frame\r
-AT91C_CAN_TEOF EQU (0x1 << 4) ;- (CAN) Time Stamp messages at each end of Frame\r
-AT91C_CAN_TTM EQU (0x1 << 5) ;- (CAN) Disable/Enable Time Trigger Mode\r
-AT91C_CAN_TIMFRZ EQU (0x1 << 6) ;- (CAN) Enable Timer Freeze\r
-AT91C_CAN_DRPT EQU (0x1 << 7) ;- (CAN) Disable Repeat\r
-// - -------- CAN_IER : (CAN Offset: 0x4) CAN Interrupt Enable Register -------- \r
-AT91C_CAN_MB0 EQU (0x1 << 0) ;- (CAN) Mailbox 0 Flag\r
-AT91C_CAN_MB1 EQU (0x1 << 1) ;- (CAN) Mailbox 1 Flag\r
-AT91C_CAN_MB2 EQU (0x1 << 2) ;- (CAN) Mailbox 2 Flag\r
-AT91C_CAN_MB3 EQU (0x1 << 3) ;- (CAN) Mailbox 3 Flag\r
-AT91C_CAN_MB4 EQU (0x1 << 4) ;- (CAN) Mailbox 4 Flag\r
-AT91C_CAN_MB5 EQU (0x1 << 5) ;- (CAN) Mailbox 5 Flag\r
-AT91C_CAN_MB6 EQU (0x1 << 6) ;- (CAN) Mailbox 6 Flag\r
-AT91C_CAN_MB7 EQU (0x1 << 7) ;- (CAN) Mailbox 7 Flag\r
-AT91C_CAN_MB8 EQU (0x1 << 8) ;- (CAN) Mailbox 8 Flag\r
-AT91C_CAN_MB9 EQU (0x1 << 9) ;- (CAN) Mailbox 9 Flag\r
-AT91C_CAN_MB10 EQU (0x1 << 10) ;- (CAN) Mailbox 10 Flag\r
-AT91C_CAN_MB11 EQU (0x1 << 11) ;- (CAN) Mailbox 11 Flag\r
-AT91C_CAN_MB12 EQU (0x1 << 12) ;- (CAN) Mailbox 12 Flag\r
-AT91C_CAN_MB13 EQU (0x1 << 13) ;- (CAN) Mailbox 13 Flag\r
-AT91C_CAN_MB14 EQU (0x1 << 14) ;- (CAN) Mailbox 14 Flag\r
-AT91C_CAN_MB15 EQU (0x1 << 15) ;- (CAN) Mailbox 15 Flag\r
-AT91C_CAN_ERRA EQU (0x1 << 16) ;- (CAN) Error Active Mode Flag\r
-AT91C_CAN_WARN EQU (0x1 << 17) ;- (CAN) Warning Limit Flag\r
-AT91C_CAN_ERRP EQU (0x1 << 18) ;- (CAN) Error Passive Mode Flag\r
-AT91C_CAN_BOFF EQU (0x1 << 19) ;- (CAN) Bus Off Mode Flag\r
-AT91C_CAN_SLEEP EQU (0x1 << 20) ;- (CAN) Sleep Flag\r
-AT91C_CAN_WAKEUP EQU (0x1 << 21) ;- (CAN) Wakeup Flag\r
-AT91C_CAN_TOVF EQU (0x1 << 22) ;- (CAN) Timer Overflow Flag\r
-AT91C_CAN_TSTP EQU (0x1 << 23) ;- (CAN) Timestamp Flag\r
-AT91C_CAN_CERR EQU (0x1 << 24) ;- (CAN) CRC Error\r
-AT91C_CAN_SERR EQU (0x1 << 25) ;- (CAN) Stuffing Error\r
-AT91C_CAN_AERR EQU (0x1 << 26) ;- (CAN) Acknowledgment Error\r
-AT91C_CAN_FERR EQU (0x1 << 27) ;- (CAN) Form Error\r
-AT91C_CAN_BERR EQU (0x1 << 28) ;- (CAN) Bit Error\r
-// - -------- CAN_IDR : (CAN Offset: 0x8) CAN Interrupt Disable Register -------- \r
-// - -------- CAN_IMR : (CAN Offset: 0xc) CAN Interrupt Mask Register -------- \r
-// - -------- CAN_SR : (CAN Offset: 0x10) CAN Status Register -------- \r
-AT91C_CAN_RBSY EQU (0x1 << 29) ;- (CAN) Receiver Busy\r
-AT91C_CAN_TBSY EQU (0x1 << 30) ;- (CAN) Transmitter Busy\r
-AT91C_CAN_OVLY EQU (0x1 << 31) ;- (CAN) Overload Busy\r
-// - -------- CAN_BR : (CAN Offset: 0x14) CAN Baudrate Register -------- \r
-AT91C_CAN_PHASE2 EQU (0x7 << 0) ;- (CAN) Phase 2 segment\r
-AT91C_CAN_PHASE1 EQU (0x7 << 4) ;- (CAN) Phase 1 segment\r
-AT91C_CAN_PROPAG EQU (0x7 << 8) ;- (CAN) Programmation time segment\r
-AT91C_CAN_SYNC EQU (0x3 << 12) ;- (CAN) Re-synchronization jump width segment\r
-AT91C_CAN_BRP EQU (0x7F << 16) ;- (CAN) Baudrate Prescaler\r
-AT91C_CAN_SMP EQU (0x1 << 24) ;- (CAN) Sampling mode\r
-// - -------- CAN_TIM : (CAN Offset: 0x18) CAN Timer Register -------- \r
-AT91C_CAN_TIMER EQU (0xFFFF << 0) ;- (CAN) Timer field\r
-// - -------- CAN_TIMESTP : (CAN Offset: 0x1c) CAN Timestamp Register -------- \r
-// - -------- CAN_ECR : (CAN Offset: 0x20) CAN Error Counter Register -------- \r
-AT91C_CAN_REC EQU (0xFF << 0) ;- (CAN) Receive Error Counter\r
-AT91C_CAN_TEC EQU (0xFF << 16) ;- (CAN) Transmit Error Counter\r
-// - -------- CAN_TCR : (CAN Offset: 0x24) CAN Transfer Command Register -------- \r
-AT91C_CAN_TIMRST EQU (0x1 << 31) ;- (CAN) Timer Reset Field\r
-// - -------- CAN_ACR : (CAN Offset: 0x28) CAN Abort Command Register -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Ethernet MAC 10/100\r
-// - *****************************************************************************\r
-// - -------- EMAC_NCR : (EMAC Offset: 0x0) -------- \r
-AT91C_EMAC_LB EQU (0x1 << 0) ;- (EMAC) Loopback. Optional. When set, loopback signal is at high level.\r
-AT91C_EMAC_LLB EQU (0x1 << 1) ;- (EMAC) Loopback local. \r
-AT91C_EMAC_RE EQU (0x1 << 2) ;- (EMAC) Receive enable. \r
-AT91C_EMAC_TE EQU (0x1 << 3) ;- (EMAC) Transmit enable. \r
-AT91C_EMAC_MPE EQU (0x1 << 4) ;- (EMAC) Management port enable. \r
-AT91C_EMAC_CLRSTAT EQU (0x1 << 5) ;- (EMAC) Clear statistics registers. \r
-AT91C_EMAC_INCSTAT EQU (0x1 << 6) ;- (EMAC) Increment statistics registers. \r
-AT91C_EMAC_WESTAT EQU (0x1 << 7) ;- (EMAC) Write enable for statistics registers. \r
-AT91C_EMAC_BP EQU (0x1 << 8) ;- (EMAC) Back pressure. \r
-AT91C_EMAC_TSTART EQU (0x1 << 9) ;- (EMAC) Start Transmission. \r
-AT91C_EMAC_THALT EQU (0x1 << 10) ;- (EMAC) Transmission Halt. \r
-AT91C_EMAC_TPFR EQU (0x1 << 11) ;- (EMAC) Transmit pause frame \r
-AT91C_EMAC_TZQ EQU (0x1 << 12) ;- (EMAC) Transmit zero quantum pause frame\r
-// - -------- EMAC_NCFGR : (EMAC Offset: 0x4) Network Configuration Register -------- \r
-AT91C_EMAC_SPD EQU (0x1 << 0) ;- (EMAC) Speed. \r
-AT91C_EMAC_FD EQU (0x1 << 1) ;- (EMAC) Full duplex. \r
-AT91C_EMAC_JFRAME EQU (0x1 << 3) ;- (EMAC) Jumbo Frames. \r
-AT91C_EMAC_CAF EQU (0x1 << 4) ;- (EMAC) Copy all frames. \r
-AT91C_EMAC_NBC EQU (0x1 << 5) ;- (EMAC) No broadcast. \r
-AT91C_EMAC_MTI EQU (0x1 << 6) ;- (EMAC) Multicast hash event enable\r
-AT91C_EMAC_UNI EQU (0x1 << 7) ;- (EMAC) Unicast hash enable. \r
-AT91C_EMAC_BIG EQU (0x1 << 8) ;- (EMAC) Receive 1522 bytes. \r
-AT91C_EMAC_EAE EQU (0x1 << 9) ;- (EMAC) External address match enable. \r
-AT91C_EMAC_CLK EQU (0x3 << 10) ;- (EMAC) \r
-AT91C_EMAC_CLK_HCLK_8 EQU (0x0 << 10) ;- (EMAC) HCLK divided by 8\r
-AT91C_EMAC_CLK_HCLK_16 EQU (0x1 << 10) ;- (EMAC) HCLK divided by 16\r
-AT91C_EMAC_CLK_HCLK_32 EQU (0x2 << 10) ;- (EMAC) HCLK divided by 32\r
-AT91C_EMAC_CLK_HCLK_64 EQU (0x3 << 10) ;- (EMAC) HCLK divided by 64\r
-AT91C_EMAC_RTY EQU (0x1 << 12) ;- (EMAC) \r
-AT91C_EMAC_PAE EQU (0x1 << 13) ;- (EMAC) \r
-AT91C_EMAC_RBOF EQU (0x3 << 14) ;- (EMAC) \r
-AT91C_EMAC_RBOF_OFFSET_0 EQU (0x0 << 14) ;- (EMAC) no offset from start of receive buffer\r
-AT91C_EMAC_RBOF_OFFSET_1 EQU (0x1 << 14) ;- (EMAC) one byte offset from start of receive buffer\r
-AT91C_EMAC_RBOF_OFFSET_2 EQU (0x2 << 14) ;- (EMAC) two bytes offset from start of receive buffer\r
-AT91C_EMAC_RBOF_OFFSET_3 EQU (0x3 << 14) ;- (EMAC) three bytes offset from start of receive buffer\r
-AT91C_EMAC_RLCE EQU (0x1 << 16) ;- (EMAC) Receive Length field Checking Enable\r
-AT91C_EMAC_DRFCS EQU (0x1 << 17) ;- (EMAC) Discard Receive FCS\r
-AT91C_EMAC_EFRHD EQU (0x1 << 18) ;- (EMAC) \r
-AT91C_EMAC_IRXFCS EQU (0x1 << 19) ;- (EMAC) Ignore RX FCS\r
-// - -------- EMAC_NSR : (EMAC Offset: 0x8) Network Status Register -------- \r
-AT91C_EMAC_LINKR EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_MDIO EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_IDLE EQU (0x1 << 2) ;- (EMAC) \r
-// - -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Status Register -------- \r
-AT91C_EMAC_UBR EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_COL EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_RLES EQU (0x1 << 2) ;- (EMAC) \r
-AT91C_EMAC_TGO EQU (0x1 << 3) ;- (EMAC) Transmit Go\r
-AT91C_EMAC_BEX EQU (0x1 << 4) ;- (EMAC) Buffers exhausted mid frame\r
-AT91C_EMAC_COMP EQU (0x1 << 5) ;- (EMAC) \r
-AT91C_EMAC_UND EQU (0x1 << 6) ;- (EMAC) \r
-// - -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register -------- \r
-AT91C_EMAC_BNA EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_REC EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_OVR EQU (0x1 << 2) ;- (EMAC) \r
-// - -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register -------- \r
-AT91C_EMAC_MFD EQU (0x1 << 0) ;- (EMAC) \r
-AT91C_EMAC_RCOMP EQU (0x1 << 1) ;- (EMAC) \r
-AT91C_EMAC_RXUBR EQU (0x1 << 2) ;- (EMAC) \r
-AT91C_EMAC_TXUBR EQU (0x1 << 3) ;- (EMAC) \r
-AT91C_EMAC_TUNDR EQU (0x1 << 4) ;- (EMAC) \r
-AT91C_EMAC_RLEX EQU (0x1 << 5) ;- (EMAC) \r
-AT91C_EMAC_TXERR EQU (0x1 << 6) ;- (EMAC) \r
-AT91C_EMAC_TCOMP EQU (0x1 << 7) ;- (EMAC) \r
-AT91C_EMAC_LINK EQU (0x1 << 9) ;- (EMAC) \r
-AT91C_EMAC_ROVR EQU (0x1 << 10) ;- (EMAC) \r
-AT91C_EMAC_HRESP EQU (0x1 << 11) ;- (EMAC) \r
-AT91C_EMAC_PFRE EQU (0x1 << 12) ;- (EMAC) \r
-AT91C_EMAC_PTZ EQU (0x1 << 13) ;- (EMAC) \r
-// - -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register -------- \r
-// - -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register -------- \r
-// - -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register -------- \r
-// - -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register -------- \r
-AT91C_EMAC_DATA EQU (0xFFFF << 0) ;- (EMAC) \r
-AT91C_EMAC_CODE EQU (0x3 << 16) ;- (EMAC) \r
-AT91C_EMAC_REGA EQU (0x1F << 18) ;- (EMAC) \r
-AT91C_EMAC_PHYA EQU (0x1F << 23) ;- (EMAC) \r
-AT91C_EMAC_RW EQU (0x3 << 28) ;- (EMAC) \r
-AT91C_EMAC_SOF EQU (0x3 << 30) ;- (EMAC) \r
-// - -------- EMAC_USRIO : (EMAC Offset: 0xc0) USER Input Output Register -------- \r
-AT91C_EMAC_RMII EQU (0x1 << 0) ;- (EMAC) Reduce MII\r
-// - -------- EMAC_WOL : (EMAC Offset: 0xc4) Wake On LAN Register -------- \r
-AT91C_EMAC_IP EQU (0xFFFF << 0) ;- (EMAC) ARP request IP address\r
-AT91C_EMAC_MAG EQU (0x1 << 16) ;- (EMAC) Magic packet event enable\r
-AT91C_EMAC_ARP EQU (0x1 << 17) ;- (EMAC) ARP request event enable\r
-AT91C_EMAC_SA1 EQU (0x1 << 18) ;- (EMAC) Specific address register 1 event enable\r
-// - -------- EMAC_REV : (EMAC Offset: 0xfc) Revision Register -------- \r
-AT91C_EMAC_REVREF EQU (0xFFFF << 0) ;- (EMAC) \r
-AT91C_EMAC_PARTREF EQU (0xFFFF << 16) ;- (EMAC) \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Analog to Digital Convertor\r
-// - *****************************************************************************\r
-// - -------- ADC_CR : (ADC Offset: 0x0) ADC Control Register -------- \r
-AT91C_ADC_SWRST EQU (0x1 << 0) ;- (ADC) Software Reset\r
-AT91C_ADC_START EQU (0x1 << 1) ;- (ADC) Start Conversion\r
-// - -------- ADC_MR : (ADC Offset: 0x4) ADC Mode Register -------- \r
-AT91C_ADC_TRGEN EQU (0x1 << 0) ;- (ADC) Trigger Enable\r
-AT91C_ADC_TRGEN_DIS EQU (0x0) ;- (ADC) Hradware triggers are disabled. Starting a conversion is only possible by software\r
-AT91C_ADC_TRGEN_EN EQU (0x1) ;- (ADC) Hardware trigger selected by TRGSEL field is enabled.\r
-AT91C_ADC_TRGSEL EQU (0x7 << 1) ;- (ADC) Trigger Selection\r
-AT91C_ADC_TRGSEL_TIOA0 EQU (0x0 << 1) ;- (ADC) Selected TRGSEL = TIAO0\r
-AT91C_ADC_TRGSEL_TIOA1 EQU (0x1 << 1) ;- (ADC) Selected TRGSEL = TIAO1\r
-AT91C_ADC_TRGSEL_TIOA2 EQU (0x2 << 1) ;- (ADC) Selected TRGSEL = TIAO2\r
-AT91C_ADC_TRGSEL_TIOA3 EQU (0x3 << 1) ;- (ADC) Selected TRGSEL = TIAO3\r
-AT91C_ADC_TRGSEL_TIOA4 EQU (0x4 << 1) ;- (ADC) Selected TRGSEL = TIAO4\r
-AT91C_ADC_TRGSEL_TIOA5 EQU (0x5 << 1) ;- (ADC) Selected TRGSEL = TIAO5\r
-AT91C_ADC_TRGSEL_EXT EQU (0x6 << 1) ;- (ADC) Selected TRGSEL = External Trigger\r
-AT91C_ADC_LOWRES EQU (0x1 << 4) ;- (ADC) Resolution.\r
-AT91C_ADC_LOWRES_10_BIT EQU (0x0 << 4) ;- (ADC) 10-bit resolution\r
-AT91C_ADC_LOWRES_8_BIT EQU (0x1 << 4) ;- (ADC) 8-bit resolution\r
-AT91C_ADC_SLEEP EQU (0x1 << 5) ;- (ADC) Sleep Mode\r
-AT91C_ADC_SLEEP_NORMAL_MODE EQU (0x0 << 5) ;- (ADC) Normal Mode\r
-AT91C_ADC_SLEEP_MODE EQU (0x1 << 5) ;- (ADC) Sleep Mode\r
-AT91C_ADC_PRESCAL EQU (0x3F << 8) ;- (ADC) Prescaler rate selection\r
-AT91C_ADC_STARTUP EQU (0x1F << 16) ;- (ADC) Startup Time\r
-AT91C_ADC_SHTIM EQU (0xF << 24) ;- (ADC) Sample & Hold Time\r
-// - -------- ADC_CHER : (ADC Offset: 0x10) ADC Channel Enable Register -------- \r
-AT91C_ADC_CH0 EQU (0x1 << 0) ;- (ADC) Channel 0\r
-AT91C_ADC_CH1 EQU (0x1 << 1) ;- (ADC) Channel 1\r
-AT91C_ADC_CH2 EQU (0x1 << 2) ;- (ADC) Channel 2\r
-AT91C_ADC_CH3 EQU (0x1 << 3) ;- (ADC) Channel 3\r
-AT91C_ADC_CH4 EQU (0x1 << 4) ;- (ADC) Channel 4\r
-AT91C_ADC_CH5 EQU (0x1 << 5) ;- (ADC) Channel 5\r
-AT91C_ADC_CH6 EQU (0x1 << 6) ;- (ADC) Channel 6\r
-AT91C_ADC_CH7 EQU (0x1 << 7) ;- (ADC) Channel 7\r
-// - -------- ADC_CHDR : (ADC Offset: 0x14) ADC Channel Disable Register -------- \r
-// - -------- ADC_CHSR : (ADC Offset: 0x18) ADC Channel Status Register -------- \r
-// - -------- ADC_SR : (ADC Offset: 0x1c) ADC Status Register -------- \r
-AT91C_ADC_EOC0 EQU (0x1 << 0) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC1 EQU (0x1 << 1) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC2 EQU (0x1 << 2) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC3 EQU (0x1 << 3) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC4 EQU (0x1 << 4) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC5 EQU (0x1 << 5) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC6 EQU (0x1 << 6) ;- (ADC) End of Conversion\r
-AT91C_ADC_EOC7 EQU (0x1 << 7) ;- (ADC) End of Conversion\r
-AT91C_ADC_OVRE0 EQU (0x1 << 8) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE1 EQU (0x1 << 9) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE2 EQU (0x1 << 10) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE3 EQU (0x1 << 11) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE4 EQU (0x1 << 12) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE5 EQU (0x1 << 13) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE6 EQU (0x1 << 14) ;- (ADC) Overrun Error\r
-AT91C_ADC_OVRE7 EQU (0x1 << 15) ;- (ADC) Overrun Error\r
-AT91C_ADC_DRDY EQU (0x1 << 16) ;- (ADC) Data Ready\r
-AT91C_ADC_GOVRE EQU (0x1 << 17) ;- (ADC) General Overrun\r
-AT91C_ADC_ENDRX EQU (0x1 << 18) ;- (ADC) End of Receiver Transfer\r
-AT91C_ADC_RXBUFF EQU (0x1 << 19) ;- (ADC) RXBUFF Interrupt\r
-// - -------- ADC_LCDR : (ADC Offset: 0x20) ADC Last Converted Data Register -------- \r
-AT91C_ADC_LDATA EQU (0x3FF << 0) ;- (ADC) Last Data Converted\r
-// - -------- ADC_IER : (ADC Offset: 0x24) ADC Interrupt Enable Register -------- \r
-// - -------- ADC_IDR : (ADC Offset: 0x28) ADC Interrupt Disable Register -------- \r
-// - -------- ADC_IMR : (ADC Offset: 0x2c) ADC Interrupt Mask Register -------- \r
-// - -------- ADC_CDR0 : (ADC Offset: 0x30) ADC Channel Data Register 0 -------- \r
-AT91C_ADC_DATA EQU (0x3FF << 0) ;- (ADC) Converted Data\r
-// - -------- ADC_CDR1 : (ADC Offset: 0x34) ADC Channel Data Register 1 -------- \r
-// - -------- ADC_CDR2 : (ADC Offset: 0x38) ADC Channel Data Register 2 -------- \r
-// - -------- ADC_CDR3 : (ADC Offset: 0x3c) ADC Channel Data Register 3 -------- \r
-// - -------- ADC_CDR4 : (ADC Offset: 0x40) ADC Channel Data Register 4 -------- \r
-// - -------- ADC_CDR5 : (ADC Offset: 0x44) ADC Channel Data Register 5 -------- \r
-// - -------- ADC_CDR6 : (ADC Offset: 0x48) ADC Channel Data Register 6 -------- \r
-// - -------- ADC_CDR7 : (ADC Offset: 0x4c) ADC Channel Data Register 7 -------- \r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Advanced Encryption Standard\r
-// - *****************************************************************************\r
-// - -------- AES_CR : (AES Offset: 0x0) Control Register -------- \r
-AT91C_AES_START EQU (0x1 << 0) ;- (AES) Starts Processing\r
-AT91C_AES_SWRST EQU (0x1 << 8) ;- (AES) Software Reset\r
-AT91C_AES_LOADSEED EQU (0x1 << 16) ;- (AES) Random Number Generator Seed Loading\r
-// - -------- AES_MR : (AES Offset: 0x4) Mode Register -------- \r
-AT91C_AES_CIPHER EQU (0x1 << 0) ;- (AES) Processing Mode\r
-AT91C_AES_PROCDLY EQU (0xF << 4) ;- (AES) Processing Delay\r
-AT91C_AES_SMOD EQU (0x3 << 8) ;- (AES) Start Mode\r
-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.\r
-AT91C_AES_SMOD_AUTO EQU (0x1 << 8) ;- (AES) Auto Mode: no action in AES_CR is necessary (cf datasheet).\r
-AT91C_AES_SMOD_PDC EQU (0x2 << 8) ;- (AES) PDC Mode (cf datasheet).\r
-AT91C_AES_OPMOD EQU (0x7 << 12) ;- (AES) Operation Mode\r
-AT91C_AES_OPMOD_ECB EQU (0x0 << 12) ;- (AES) ECB Electronic CodeBook mode.\r
-AT91C_AES_OPMOD_CBC EQU (0x1 << 12) ;- (AES) CBC Cipher Block Chaining mode.\r
-AT91C_AES_OPMOD_OFB EQU (0x2 << 12) ;- (AES) OFB Output Feedback mode.\r
-AT91C_AES_OPMOD_CFB EQU (0x3 << 12) ;- (AES) CFB Cipher Feedback mode.\r
-AT91C_AES_OPMOD_CTR EQU (0x4 << 12) ;- (AES) CTR Counter mode.\r
-AT91C_AES_LOD EQU (0x1 << 15) ;- (AES) Last Output Data Mode\r
-AT91C_AES_CFBS EQU (0x7 << 16) ;- (AES) Cipher Feedback Data Size\r
-AT91C_AES_CFBS_128_BIT EQU (0x0 << 16) ;- (AES) 128-bit.\r
-AT91C_AES_CFBS_64_BIT EQU (0x1 << 16) ;- (AES) 64-bit.\r
-AT91C_AES_CFBS_32_BIT EQU (0x2 << 16) ;- (AES) 32-bit.\r
-AT91C_AES_CFBS_16_BIT EQU (0x3 << 16) ;- (AES) 16-bit.\r
-AT91C_AES_CFBS_8_BIT EQU (0x4 << 16) ;- (AES) 8-bit.\r
-AT91C_AES_CKEY EQU (0xF << 20) ;- (AES) Countermeasure Key\r
-AT91C_AES_CTYPE EQU (0x1F << 24) ;- (AES) Countermeasure Type\r
-AT91C_AES_CTYPE_TYPE1_EN EQU (0x1 << 24) ;- (AES) Countermeasure type 1 is enabled.\r
-AT91C_AES_CTYPE_TYPE2_EN EQU (0x2 << 24) ;- (AES) Countermeasure type 2 is enabled.\r
-AT91C_AES_CTYPE_TYPE3_EN EQU (0x4 << 24) ;- (AES) Countermeasure type 3 is enabled.\r
-AT91C_AES_CTYPE_TYPE4_EN EQU (0x8 << 24) ;- (AES) Countermeasure type 4 is enabled.\r
-AT91C_AES_CTYPE_TYPE5_EN EQU (0x10 << 24) ;- (AES) Countermeasure type 5 is enabled.\r
-// - -------- AES_IER : (AES Offset: 0x10) Interrupt Enable Register -------- \r
-AT91C_AES_DATRDY EQU (0x1 << 0) ;- (AES) DATRDY\r
-AT91C_AES_ENDRX EQU (0x1 << 1) ;- (AES) PDC Read Buffer End\r
-AT91C_AES_ENDTX EQU (0x1 << 2) ;- (AES) PDC Write Buffer End\r
-AT91C_AES_RXBUFF EQU (0x1 << 3) ;- (AES) PDC Read Buffer Full\r
-AT91C_AES_TXBUFE EQU (0x1 << 4) ;- (AES) PDC Write Buffer Empty\r
-AT91C_AES_URAD EQU (0x1 << 8) ;- (AES) Unspecified Register Access Detection\r
-// - -------- AES_IDR : (AES Offset: 0x14) Interrupt Disable Register -------- \r
-// - -------- AES_IMR : (AES Offset: 0x18) Interrupt Mask Register -------- \r
-// - -------- AES_ISR : (AES Offset: 0x1c) Interrupt Status Register -------- \r
-AT91C_AES_URAT EQU (0x7 << 12) ;- (AES) Unspecified Register Access Type Status\r
-AT91C_AES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (AES) Input data register written during the data processing in PDC mode.\r
-AT91C_AES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (AES) Output data register read during the data processing.\r
-AT91C_AES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (AES) Mode register written during the data processing.\r
-AT91C_AES_URAT_OUT_DAT_READ_SUBKEY EQU (0x3 << 12) ;- (AES) Output data register read during the sub-keys generation.\r
-AT91C_AES_URAT_MODEREG_WRITE_SUBKEY EQU (0x4 << 12) ;- (AES) Mode register written during the sub-keys generation.\r
-AT91C_AES_URAT_WO_REG_READ EQU (0x5 << 12) ;- (AES) Write-only register read access.\r
-\r
-// - *****************************************************************************\r
-// - SOFTWARE API DEFINITION FOR Triple Data Encryption Standard\r
-// - *****************************************************************************\r
-// - -------- TDES_CR : (TDES Offset: 0x0) Control Register -------- \r
-AT91C_TDES_START EQU (0x1 << 0) ;- (TDES) Starts Processing\r
-AT91C_TDES_SWRST EQU (0x1 << 8) ;- (TDES) Software Reset\r
-// - -------- TDES_MR : (TDES Offset: 0x4) Mode Register -------- \r
-AT91C_TDES_CIPHER EQU (0x1 << 0) ;- (TDES) Processing Mode\r
-AT91C_TDES_TDESMOD EQU (0x1 << 1) ;- (TDES) Single or Triple DES Mode\r
-AT91C_TDES_KEYMOD EQU (0x1 << 4) ;- (TDES) Key Mode\r
-AT91C_TDES_SMOD EQU (0x3 << 8) ;- (TDES) Start Mode\r
-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.\r
-AT91C_TDES_SMOD_AUTO EQU (0x1 << 8) ;- (TDES) Auto Mode: no action in TDES_CR is necessary (cf datasheet).\r
-AT91C_TDES_SMOD_PDC EQU (0x2 << 8) ;- (TDES) PDC Mode (cf datasheet).\r
-AT91C_TDES_OPMOD EQU (0x3 << 12) ;- (TDES) Operation Mode\r
-AT91C_TDES_OPMOD_ECB EQU (0x0 << 12) ;- (TDES) ECB Electronic CodeBook mode.\r
-AT91C_TDES_OPMOD_CBC EQU (0x1 << 12) ;- (TDES) CBC Cipher Block Chaining mode.\r
-AT91C_TDES_OPMOD_OFB EQU (0x2 << 12) ;- (TDES) OFB Output Feedback mode.\r
-AT91C_TDES_OPMOD_CFB EQU (0x3 << 12) ;- (TDES) CFB Cipher Feedback mode.\r
-AT91C_TDES_LOD EQU (0x1 << 15) ;- (TDES) Last Output Data Mode\r
-AT91C_TDES_CFBS EQU (0x3 << 16) ;- (TDES) Cipher Feedback Data Size\r
-AT91C_TDES_CFBS_64_BIT EQU (0x0 << 16) ;- (TDES) 64-bit.\r
-AT91C_TDES_CFBS_32_BIT EQU (0x1 << 16) ;- (TDES) 32-bit.\r
-AT91C_TDES_CFBS_16_BIT EQU (0x2 << 16) ;- (TDES) 16-bit.\r
-AT91C_TDES_CFBS_8_BIT EQU (0x3 << 16) ;- (TDES) 8-bit.\r
-// - -------- TDES_IER : (TDES Offset: 0x10) Interrupt Enable Register -------- \r
-AT91C_TDES_DATRDY EQU (0x1 << 0) ;- (TDES) DATRDY\r
-AT91C_TDES_ENDRX EQU (0x1 << 1) ;- (TDES) PDC Read Buffer End\r
-AT91C_TDES_ENDTX EQU (0x1 << 2) ;- (TDES) PDC Write Buffer End\r
-AT91C_TDES_RXBUFF EQU (0x1 << 3) ;- (TDES) PDC Read Buffer Full\r
-AT91C_TDES_TXBUFE EQU (0x1 << 4) ;- (TDES) PDC Write Buffer Empty\r
-AT91C_TDES_URAD EQU (0x1 << 8) ;- (TDES) Unspecified Register Access Detection\r
-// - -------- TDES_IDR : (TDES Offset: 0x14) Interrupt Disable Register -------- \r
-// - -------- TDES_IMR : (TDES Offset: 0x18) Interrupt Mask Register -------- \r
-// - -------- TDES_ISR : (TDES Offset: 0x1c) Interrupt Status Register -------- \r
-AT91C_TDES_URAT EQU (0x3 << 12) ;- (TDES) Unspecified Register Access Type Status\r
-AT91C_TDES_URAT_IN_DAT_WRITE_DATPROC EQU (0x0 << 12) ;- (TDES) Input data register written during the data processing in PDC mode.\r
-AT91C_TDES_URAT_OUT_DAT_READ_DATPROC EQU (0x1 << 12) ;- (TDES) Output data register read during the data processing.\r
-AT91C_TDES_URAT_MODEREG_WRITE_DATPROC EQU (0x2 << 12) ;- (TDES) Mode register written during the data processing.\r
-AT91C_TDES_URAT_WO_REG_READ EQU (0x3 << 12) ;- (TDES) Write-only register read access.\r
-\r
-// - *****************************************************************************\r
-// - REGISTER ADDRESS DEFINITION FOR AT91SAM7X256\r
-// - *****************************************************************************\r
-// - ========== Register definition for SYS peripheral ========== \r
-// - ========== Register definition for AIC peripheral ========== \r
-AT91C_AIC_IVR EQU (0xFFFFF100) ;- (AIC) IRQ Vector Register\r
-AT91C_AIC_SMR EQU (0xFFFFF000) ;- (AIC) Source Mode Register\r
-AT91C_AIC_FVR EQU (0xFFFFF104) ;- (AIC) FIQ Vector Register\r
-AT91C_AIC_DCR EQU (0xFFFFF138) ;- (AIC) Debug Control Register (Protect)\r
-AT91C_AIC_EOICR EQU (0xFFFFF130) ;- (AIC) End of Interrupt Command Register\r
-AT91C_AIC_SVR EQU (0xFFFFF080) ;- (AIC) Source Vector Register\r
-AT91C_AIC_FFSR EQU (0xFFFFF148) ;- (AIC) Fast Forcing Status Register\r
-AT91C_AIC_ICCR EQU (0xFFFFF128) ;- (AIC) Interrupt Clear Command Register\r
-AT91C_AIC_ISR EQU (0xFFFFF108) ;- (AIC) Interrupt Status Register\r
-AT91C_AIC_IMR EQU (0xFFFFF110) ;- (AIC) Interrupt Mask Register\r
-AT91C_AIC_IPR EQU (0xFFFFF10C) ;- (AIC) Interrupt Pending Register\r
-AT91C_AIC_FFER EQU (0xFFFFF140) ;- (AIC) Fast Forcing Enable Register\r
-AT91C_AIC_IECR EQU (0xFFFFF120) ;- (AIC) Interrupt Enable Command Register\r
-AT91C_AIC_ISCR EQU (0xFFFFF12C) ;- (AIC) Interrupt Set Command Register\r
-AT91C_AIC_FFDR EQU (0xFFFFF144) ;- (AIC) Fast Forcing Disable Register\r
-AT91C_AIC_CISR EQU (0xFFFFF114) ;- (AIC) Core Interrupt Status Register\r
-AT91C_AIC_IDCR EQU (0xFFFFF124) ;- (AIC) Interrupt Disable Command Register\r
-AT91C_AIC_SPU EQU (0xFFFFF134) ;- (AIC) Spurious Vector Register\r
-// - ========== Register definition for PDC_DBGU peripheral ========== \r
-AT91C_DBGU_TCR EQU (0xFFFFF30C) ;- (PDC_DBGU) Transmit Counter Register\r
-AT91C_DBGU_RNPR EQU (0xFFFFF310) ;- (PDC_DBGU) Receive Next Pointer Register\r
-AT91C_DBGU_TNPR EQU (0xFFFFF318) ;- (PDC_DBGU) Transmit Next Pointer Register\r
-AT91C_DBGU_TPR EQU (0xFFFFF308) ;- (PDC_DBGU) Transmit Pointer Register\r
-AT91C_DBGU_RPR EQU (0xFFFFF300) ;- (PDC_DBGU) Receive Pointer Register\r
-AT91C_DBGU_RCR EQU (0xFFFFF304) ;- (PDC_DBGU) Receive Counter Register\r
-AT91C_DBGU_RNCR EQU (0xFFFFF314) ;- (PDC_DBGU) Receive Next Counter Register\r
-AT91C_DBGU_PTCR EQU (0xFFFFF320) ;- (PDC_DBGU) PDC Transfer Control Register\r
-AT91C_DBGU_PTSR EQU (0xFFFFF324) ;- (PDC_DBGU) PDC Transfer Status Register\r
-AT91C_DBGU_TNCR EQU (0xFFFFF31C) ;- (PDC_DBGU) Transmit Next Counter Register\r
-// - ========== Register definition for DBGU peripheral ========== \r
-AT91C_DBGU_EXID EQU (0xFFFFF244) ;- (DBGU) Chip ID Extension Register\r
-AT91C_DBGU_BRGR EQU (0xFFFFF220) ;- (DBGU) Baud Rate Generator Register\r
-AT91C_DBGU_IDR EQU (0xFFFFF20C) ;- (DBGU) Interrupt Disable Register\r
-AT91C_DBGU_CSR EQU (0xFFFFF214) ;- (DBGU) Channel Status Register\r
-AT91C_DBGU_CIDR EQU (0xFFFFF240) ;- (DBGU) Chip ID Register\r
-AT91C_DBGU_MR EQU (0xFFFFF204) ;- (DBGU) Mode Register\r
-AT91C_DBGU_IMR EQU (0xFFFFF210) ;- (DBGU) Interrupt Mask Register\r
-AT91C_DBGU_CR EQU (0xFFFFF200) ;- (DBGU) Control Register\r
-AT91C_DBGU_FNTR EQU (0xFFFFF248) ;- (DBGU) Force NTRST Register\r
-AT91C_DBGU_THR EQU (0xFFFFF21C) ;- (DBGU) Transmitter Holding Register\r
-AT91C_DBGU_RHR EQU (0xFFFFF218) ;- (DBGU) Receiver Holding Register\r
-AT91C_DBGU_IER EQU (0xFFFFF208) ;- (DBGU) Interrupt Enable Register\r
-// - ========== Register definition for PIOA peripheral ========== \r
-AT91C_PIOA_ODR EQU (0xFFFFF414) ;- (PIOA) Output Disable Registerr\r
-AT91C_PIOA_SODR EQU (0xFFFFF430) ;- (PIOA) Set Output Data Register\r
-AT91C_PIOA_ISR EQU (0xFFFFF44C) ;- (PIOA) Interrupt Status Register\r
-AT91C_PIOA_ABSR EQU (0xFFFFF478) ;- (PIOA) AB Select Status Register\r
-AT91C_PIOA_IER EQU (0xFFFFF440) ;- (PIOA) Interrupt Enable Register\r
-AT91C_PIOA_PPUDR EQU (0xFFFFF460) ;- (PIOA) Pull-up Disable Register\r
-AT91C_PIOA_IMR EQU (0xFFFFF448) ;- (PIOA) Interrupt Mask Register\r
-AT91C_PIOA_PER EQU (0xFFFFF400) ;- (PIOA) PIO Enable Register\r
-AT91C_PIOA_IFDR EQU (0xFFFFF424) ;- (PIOA) Input Filter Disable Register\r
-AT91C_PIOA_OWDR EQU (0xFFFFF4A4) ;- (PIOA) Output Write Disable Register\r
-AT91C_PIOA_MDSR EQU (0xFFFFF458) ;- (PIOA) Multi-driver Status Register\r
-AT91C_PIOA_IDR EQU (0xFFFFF444) ;- (PIOA) Interrupt Disable Register\r
-AT91C_PIOA_ODSR EQU (0xFFFFF438) ;- (PIOA) Output Data Status Register\r
-AT91C_PIOA_PPUSR EQU (0xFFFFF468) ;- (PIOA) Pull-up Status Register\r
-AT91C_PIOA_OWSR EQU (0xFFFFF4A8) ;- (PIOA) Output Write Status Register\r
-AT91C_PIOA_BSR EQU (0xFFFFF474) ;- (PIOA) Select B Register\r
-AT91C_PIOA_OWER EQU (0xFFFFF4A0) ;- (PIOA) Output Write Enable Register\r
-AT91C_PIOA_IFER EQU (0xFFFFF420) ;- (PIOA) Input Filter Enable Register\r
-AT91C_PIOA_PDSR EQU (0xFFFFF43C) ;- (PIOA) Pin Data Status Register\r
-AT91C_PIOA_PPUER EQU (0xFFFFF464) ;- (PIOA) Pull-up Enable Register\r
-AT91C_PIOA_OSR EQU (0xFFFFF418) ;- (PIOA) Output Status Register\r
-AT91C_PIOA_ASR EQU (0xFFFFF470) ;- (PIOA) Select A Register\r
-AT91C_PIOA_MDDR EQU (0xFFFFF454) ;- (PIOA) Multi-driver Disable Register\r
-AT91C_PIOA_CODR EQU (0xFFFFF434) ;- (PIOA) Clear Output Data Register\r
-AT91C_PIOA_MDER EQU (0xFFFFF450) ;- (PIOA) Multi-driver Enable Register\r
-AT91C_PIOA_PDR EQU (0xFFFFF404) ;- (PIOA) PIO Disable Register\r
-AT91C_PIOA_IFSR EQU (0xFFFFF428) ;- (PIOA) Input Filter Status Register\r
-AT91C_PIOA_OER EQU (0xFFFFF410) ;- (PIOA) Output Enable Register\r
-AT91C_PIOA_PSR EQU (0xFFFFF408) ;- (PIOA) PIO Status Register\r
-// - ========== Register definition for PIOB peripheral ========== \r
-AT91C_PIOB_OWDR EQU (0xFFFFF6A4) ;- (PIOB) Output Write Disable Register\r
-AT91C_PIOB_MDER EQU (0xFFFFF650) ;- (PIOB) Multi-driver Enable Register\r
-AT91C_PIOB_PPUSR EQU (0xFFFFF668) ;- (PIOB) Pull-up Status Register\r
-AT91C_PIOB_IMR EQU (0xFFFFF648) ;- (PIOB) Interrupt Mask Register\r
-AT91C_PIOB_ASR EQU (0xFFFFF670) ;- (PIOB) Select A Register\r
-AT91C_PIOB_PPUDR EQU (0xFFFFF660) ;- (PIOB) Pull-up Disable Register\r
-AT91C_PIOB_PSR EQU (0xFFFFF608) ;- (PIOB) PIO Status Register\r
-AT91C_PIOB_IER EQU (0xFFFFF640) ;- (PIOB) Interrupt Enable Register\r
-AT91C_PIOB_CODR EQU (0xFFFFF634) ;- (PIOB) Clear Output Data Register\r
-AT91C_PIOB_OWER EQU (0xFFFFF6A0) ;- (PIOB) Output Write Enable Register\r
-AT91C_PIOB_ABSR EQU (0xFFFFF678) ;- (PIOB) AB Select Status Register\r
-AT91C_PIOB_IFDR EQU (0xFFFFF624) ;- (PIOB) Input Filter Disable Register\r
-AT91C_PIOB_PDSR EQU (0xFFFFF63C) ;- (PIOB) Pin Data Status Register\r
-AT91C_PIOB_IDR EQU (0xFFFFF644) ;- (PIOB) Interrupt Disable Register\r
-AT91C_PIOB_OWSR EQU (0xFFFFF6A8) ;- (PIOB) Output Write Status Register\r
-AT91C_PIOB_PDR EQU (0xFFFFF604) ;- (PIOB) PIO Disable Register\r
-AT91C_PIOB_ODR EQU (0xFFFFF614) ;- (PIOB) Output Disable Registerr\r
-AT91C_PIOB_IFSR EQU (0xFFFFF628) ;- (PIOB) Input Filter Status Register\r
-AT91C_PIOB_PPUER EQU (0xFFFFF664) ;- (PIOB) Pull-up Enable Register\r
-AT91C_PIOB_SODR EQU (0xFFFFF630) ;- (PIOB) Set Output Data Register\r
-AT91C_PIOB_ISR EQU (0xFFFFF64C) ;- (PIOB) Interrupt Status Register\r
-AT91C_PIOB_ODSR EQU (0xFFFFF638) ;- (PIOB) Output Data Status Register\r
-AT91C_PIOB_OSR EQU (0xFFFFF618) ;- (PIOB) Output Status Register\r
-AT91C_PIOB_MDSR EQU (0xFFFFF658) ;- (PIOB) Multi-driver Status Register\r
-AT91C_PIOB_IFER EQU (0xFFFFF620) ;- (PIOB) Input Filter Enable Register\r
-AT91C_PIOB_BSR EQU (0xFFFFF674) ;- (PIOB) Select B Register\r
-AT91C_PIOB_MDDR EQU (0xFFFFF654) ;- (PIOB) Multi-driver Disable Register\r
-AT91C_PIOB_OER EQU (0xFFFFF610) ;- (PIOB) Output Enable Register\r
-AT91C_PIOB_PER EQU (0xFFFFF600) ;- (PIOB) PIO Enable Register\r
-// - ========== Register definition for CKGR peripheral ========== \r
-AT91C_CKGR_MOR EQU (0xFFFFFC20) ;- (CKGR) Main Oscillator Register\r
-AT91C_CKGR_PLLR EQU (0xFFFFFC2C) ;- (CKGR) PLL Register\r
-AT91C_CKGR_MCFR EQU (0xFFFFFC24) ;- (CKGR) Main Clock Frequency Register\r
-// - ========== Register definition for PMC peripheral ========== \r
-AT91C_PMC_IDR EQU (0xFFFFFC64) ;- (PMC) Interrupt Disable Register\r
-AT91C_PMC_MOR EQU (0xFFFFFC20) ;- (PMC) Main Oscillator Register\r
-AT91C_PMC_PLLR EQU (0xFFFFFC2C) ;- (PMC) PLL Register\r
-AT91C_PMC_PCER EQU (0xFFFFFC10) ;- (PMC) Peripheral Clock Enable Register\r
-AT91C_PMC_PCKR EQU (0xFFFFFC40) ;- (PMC) Programmable Clock Register\r
-AT91C_PMC_MCKR EQU (0xFFFFFC30) ;- (PMC) Master Clock Register\r
-AT91C_PMC_SCDR EQU (0xFFFFFC04) ;- (PMC) System Clock Disable Register\r
-AT91C_PMC_PCDR EQU (0xFFFFFC14) ;- (PMC) Peripheral Clock Disable Register\r
-AT91C_PMC_SCSR EQU (0xFFFFFC08) ;- (PMC) System Clock Status Register\r
-AT91C_PMC_PCSR EQU (0xFFFFFC18) ;- (PMC) Peripheral Clock Status Register\r
-AT91C_PMC_MCFR EQU (0xFFFFFC24) ;- (PMC) Main Clock Frequency Register\r
-AT91C_PMC_SCER EQU (0xFFFFFC00) ;- (PMC) System Clock Enable Register\r
-AT91C_PMC_IMR EQU (0xFFFFFC6C) ;- (PMC) Interrupt Mask Register\r
-AT91C_PMC_IER EQU (0xFFFFFC60) ;- (PMC) Interrupt Enable Register\r
-AT91C_PMC_SR EQU (0xFFFFFC68) ;- (PMC) Status Register\r
-// - ========== Register definition for RSTC peripheral ========== \r
-AT91C_RSTC_RCR EQU (0xFFFFFD00) ;- (RSTC) Reset Control Register\r
-AT91C_RSTC_RMR EQU (0xFFFFFD08) ;- (RSTC) Reset Mode Register\r
-AT91C_RSTC_RSR EQU (0xFFFFFD04) ;- (RSTC) Reset Status Register\r
-// - ========== Register definition for RTTC peripheral ========== \r
-AT91C_RTTC_RTSR EQU (0xFFFFFD2C) ;- (RTTC) Real-time Status Register\r
-AT91C_RTTC_RTMR EQU (0xFFFFFD20) ;- (RTTC) Real-time Mode Register\r
-AT91C_RTTC_RTVR EQU (0xFFFFFD28) ;- (RTTC) Real-time Value Register\r
-AT91C_RTTC_RTAR EQU (0xFFFFFD24) ;- (RTTC) Real-time Alarm Register\r
-// - ========== Register definition for PITC peripheral ========== \r
-AT91C_PITC_PIVR EQU (0xFFFFFD38) ;- (PITC) Period Interval Value Register\r
-AT91C_PITC_PISR EQU (0xFFFFFD34) ;- (PITC) Period Interval Status Register\r
-AT91C_PITC_PIIR EQU (0xFFFFFD3C) ;- (PITC) Period Interval Image Register\r
-AT91C_PITC_PIMR EQU (0xFFFFFD30) ;- (PITC) Period Interval Mode Register\r
-// - ========== Register definition for WDTC peripheral ========== \r
-AT91C_WDTC_WDCR EQU (0xFFFFFD40) ;- (WDTC) Watchdog Control Register\r
-AT91C_WDTC_WDSR EQU (0xFFFFFD48) ;- (WDTC) Watchdog Status Register\r
-AT91C_WDTC_WDMR EQU (0xFFFFFD44) ;- (WDTC) Watchdog Mode Register\r
-// - ========== Register definition for VREG peripheral ========== \r
-AT91C_VREG_MR EQU (0xFFFFFD60) ;- (VREG) Voltage Regulator Mode Register\r
-// - ========== Register definition for MC peripheral ========== \r
-AT91C_MC_ASR EQU (0xFFFFFF04) ;- (MC) MC Abort Status Register\r
-AT91C_MC_RCR EQU (0xFFFFFF00) ;- (MC) MC Remap Control Register\r
-AT91C_MC_FCR EQU (0xFFFFFF64) ;- (MC) MC Flash Command Register\r
-AT91C_MC_AASR EQU (0xFFFFFF08) ;- (MC) MC Abort Address Status Register\r
-AT91C_MC_FSR EQU (0xFFFFFF68) ;- (MC) MC Flash Status Register\r
-AT91C_MC_FMR EQU (0xFFFFFF60) ;- (MC) MC Flash Mode Register\r
-// - ========== Register definition for PDC_SPI1 peripheral ========== \r
-AT91C_SPI1_PTCR EQU (0xFFFE4120) ;- (PDC_SPI1) PDC Transfer Control Register\r
-AT91C_SPI1_RPR EQU (0xFFFE4100) ;- (PDC_SPI1) Receive Pointer Register\r
-AT91C_SPI1_TNCR EQU (0xFFFE411C) ;- (PDC_SPI1) Transmit Next Counter Register\r
-AT91C_SPI1_TPR EQU (0xFFFE4108) ;- (PDC_SPI1) Transmit Pointer Register\r
-AT91C_SPI1_TNPR EQU (0xFFFE4118) ;- (PDC_SPI1) Transmit Next Pointer Register\r
-AT91C_SPI1_TCR EQU (0xFFFE410C) ;- (PDC_SPI1) Transmit Counter Register\r
-AT91C_SPI1_RCR EQU (0xFFFE4104) ;- (PDC_SPI1) Receive Counter Register\r
-AT91C_SPI1_RNPR EQU (0xFFFE4110) ;- (PDC_SPI1) Receive Next Pointer Register\r
-AT91C_SPI1_RNCR EQU (0xFFFE4114) ;- (PDC_SPI1) Receive Next Counter Register\r
-AT91C_SPI1_PTSR EQU (0xFFFE4124) ;- (PDC_SPI1) PDC Transfer Status Register\r
-// - ========== Register definition for SPI1 peripheral ========== \r
-AT91C_SPI1_IMR EQU (0xFFFE401C) ;- (SPI1) Interrupt Mask Register\r
-AT91C_SPI1_IER EQU (0xFFFE4014) ;- (SPI1) Interrupt Enable Register\r
-AT91C_SPI1_MR EQU (0xFFFE4004) ;- (SPI1) Mode Register\r
-AT91C_SPI1_RDR EQU (0xFFFE4008) ;- (SPI1) Receive Data Register\r
-AT91C_SPI1_IDR EQU (0xFFFE4018) ;- (SPI1) Interrupt Disable Register\r
-AT91C_SPI1_SR EQU (0xFFFE4010) ;- (SPI1) Status Register\r
-AT91C_SPI1_TDR EQU (0xFFFE400C) ;- (SPI1) Transmit Data Register\r
-AT91C_SPI1_CR EQU (0xFFFE4000) ;- (SPI1) Control Register\r
-AT91C_SPI1_CSR EQU (0xFFFE4030) ;- (SPI1) Chip Select Register\r
-// - ========== Register definition for PDC_SPI0 peripheral ========== \r
-AT91C_SPI0_PTCR EQU (0xFFFE0120) ;- (PDC_SPI0) PDC Transfer Control Register\r
-AT91C_SPI0_TPR EQU (0xFFFE0108) ;- (PDC_SPI0) Transmit Pointer Register\r
-AT91C_SPI0_TCR EQU (0xFFFE010C) ;- (PDC_SPI0) Transmit Counter Register\r
-AT91C_SPI0_RCR EQU (0xFFFE0104) ;- (PDC_SPI0) Receive Counter Register\r
-AT91C_SPI0_PTSR EQU (0xFFFE0124) ;- (PDC_SPI0) PDC Transfer Status Register\r
-AT91C_SPI0_RNPR EQU (0xFFFE0110) ;- (PDC_SPI0) Receive Next Pointer Register\r
-AT91C_SPI0_RPR EQU (0xFFFE0100) ;- (PDC_SPI0) Receive Pointer Register\r
-AT91C_SPI0_TNCR EQU (0xFFFE011C) ;- (PDC_SPI0) Transmit Next Counter Register\r
-AT91C_SPI0_RNCR EQU (0xFFFE0114) ;- (PDC_SPI0) Receive Next Counter Register\r
-AT91C_SPI0_TNPR EQU (0xFFFE0118) ;- (PDC_SPI0) Transmit Next Pointer Register\r
-// - ========== Register definition for SPI0 peripheral ========== \r
-AT91C_SPI0_IER EQU (0xFFFE0014) ;- (SPI0) Interrupt Enable Register\r
-AT91C_SPI0_SR EQU (0xFFFE0010) ;- (SPI0) Status Register\r
-AT91C_SPI0_IDR EQU (0xFFFE0018) ;- (SPI0) Interrupt Disable Register\r
-AT91C_SPI0_CR EQU (0xFFFE0000) ;- (SPI0) Control Register\r
-AT91C_SPI0_MR EQU (0xFFFE0004) ;- (SPI0) Mode Register\r
-AT91C_SPI0_IMR EQU (0xFFFE001C) ;- (SPI0) Interrupt Mask Register\r
-AT91C_SPI0_TDR EQU (0xFFFE000C) ;- (SPI0) Transmit Data Register\r
-AT91C_SPI0_RDR EQU (0xFFFE0008) ;- (SPI0) Receive Data Register\r
-AT91C_SPI0_CSR EQU (0xFFFE0030) ;- (SPI0) Chip Select Register\r
-// - ========== Register definition for PDC_US1 peripheral ========== \r
-AT91C_US1_RNCR EQU (0xFFFC4114) ;- (PDC_US1) Receive Next Counter Register\r
-AT91C_US1_PTCR EQU (0xFFFC4120) ;- (PDC_US1) PDC Transfer Control Register\r
-AT91C_US1_TCR EQU (0xFFFC410C) ;- (PDC_US1) Transmit Counter Register\r
-AT91C_US1_PTSR EQU (0xFFFC4124) ;- (PDC_US1) PDC Transfer Status Register\r
-AT91C_US1_TNPR EQU (0xFFFC4118) ;- (PDC_US1) Transmit Next Pointer Register\r
-AT91C_US1_RCR EQU (0xFFFC4104) ;- (PDC_US1) Receive Counter Register\r
-AT91C_US1_RNPR EQU (0xFFFC4110) ;- (PDC_US1) Receive Next Pointer Register\r
-AT91C_US1_RPR EQU (0xFFFC4100) ;- (PDC_US1) Receive Pointer Register\r
-AT91C_US1_TNCR EQU (0xFFFC411C) ;- (PDC_US1) Transmit Next Counter Register\r
-AT91C_US1_TPR EQU (0xFFFC4108) ;- (PDC_US1) Transmit Pointer Register\r
-// - ========== Register definition for US1 peripheral ========== \r
-AT91C_US1_IF EQU (0xFFFC404C) ;- (US1) IRDA_FILTER Register\r
-AT91C_US1_NER EQU (0xFFFC4044) ;- (US1) Nb Errors Register\r
-AT91C_US1_RTOR EQU (0xFFFC4024) ;- (US1) Receiver Time-out Register\r
-AT91C_US1_CSR EQU (0xFFFC4014) ;- (US1) Channel Status Register\r
-AT91C_US1_IDR EQU (0xFFFC400C) ;- (US1) Interrupt Disable Register\r
-AT91C_US1_IER EQU (0xFFFC4008) ;- (US1) Interrupt Enable Register\r
-AT91C_US1_THR EQU (0xFFFC401C) ;- (US1) Transmitter Holding Register\r
-AT91C_US1_TTGR EQU (0xFFFC4028) ;- (US1) Transmitter Time-guard Register\r
-AT91C_US1_RHR EQU (0xFFFC4018) ;- (US1) Receiver Holding Register\r
-AT91C_US1_BRGR EQU (0xFFFC4020) ;- (US1) Baud Rate Generator Register\r
-AT91C_US1_IMR EQU (0xFFFC4010) ;- (US1) Interrupt Mask Register\r
-AT91C_US1_FIDI EQU (0xFFFC4040) ;- (US1) FI_DI_Ratio Register\r
-AT91C_US1_CR EQU (0xFFFC4000) ;- (US1) Control Register\r
-AT91C_US1_MR EQU (0xFFFC4004) ;- (US1) Mode Register\r
-// - ========== Register definition for PDC_US0 peripheral ========== \r
-AT91C_US0_TNPR EQU (0xFFFC0118) ;- (PDC_US0) Transmit Next Pointer Register\r
-AT91C_US0_RNPR EQU (0xFFFC0110) ;- (PDC_US0) Receive Next Pointer Register\r
-AT91C_US0_TCR EQU (0xFFFC010C) ;- (PDC_US0) Transmit Counter Register\r
-AT91C_US0_PTCR EQU (0xFFFC0120) ;- (PDC_US0) PDC Transfer Control Register\r
-AT91C_US0_PTSR EQU (0xFFFC0124) ;- (PDC_US0) PDC Transfer Status Register\r
-AT91C_US0_TNCR EQU (0xFFFC011C) ;- (PDC_US0) Transmit Next Counter Register\r
-AT91C_US0_TPR EQU (0xFFFC0108) ;- (PDC_US0) Transmit Pointer Register\r
-AT91C_US0_RCR EQU (0xFFFC0104) ;- (PDC_US0) Receive Counter Register\r
-AT91C_US0_RPR EQU (0xFFFC0100) ;- (PDC_US0) Receive Pointer Register\r
-AT91C_US0_RNCR EQU (0xFFFC0114) ;- (PDC_US0) Receive Next Counter Register\r
-// - ========== Register definition for US0 peripheral ========== \r
-AT91C_US0_BRGR EQU (0xFFFC0020) ;- (US0) Baud Rate Generator Register\r
-AT91C_US0_NER EQU (0xFFFC0044) ;- (US0) Nb Errors Register\r
-AT91C_US0_CR EQU (0xFFFC0000) ;- (US0) Control Register\r
-AT91C_US0_IMR EQU (0xFFFC0010) ;- (US0) Interrupt Mask Register\r
-AT91C_US0_FIDI EQU (0xFFFC0040) ;- (US0) FI_DI_Ratio Register\r
-AT91C_US0_TTGR EQU (0xFFFC0028) ;- (US0) Transmitter Time-guard Register\r
-AT91C_US0_MR EQU (0xFFFC0004) ;- (US0) Mode Register\r
-AT91C_US0_RTOR EQU (0xFFFC0024) ;- (US0) Receiver Time-out Register\r
-AT91C_US0_CSR EQU (0xFFFC0014) ;- (US0) Channel Status Register\r
-AT91C_US0_RHR EQU (0xFFFC0018) ;- (US0) Receiver Holding Register\r
-AT91C_US0_IDR EQU (0xFFFC000C) ;- (US0) Interrupt Disable Register\r
-AT91C_US0_THR EQU (0xFFFC001C) ;- (US0) Transmitter Holding Register\r
-AT91C_US0_IF EQU (0xFFFC004C) ;- (US0) IRDA_FILTER Register\r
-AT91C_US0_IER EQU (0xFFFC0008) ;- (US0) Interrupt Enable Register\r
-// - ========== Register definition for PDC_SSC peripheral ========== \r
-AT91C_SSC_TNCR EQU (0xFFFD411C) ;- (PDC_SSC) Transmit Next Counter Register\r
-AT91C_SSC_RPR EQU (0xFFFD4100) ;- (PDC_SSC) Receive Pointer Register\r
-AT91C_SSC_RNCR EQU (0xFFFD4114) ;- (PDC_SSC) Receive Next Counter Register\r
-AT91C_SSC_TPR EQU (0xFFFD4108) ;- (PDC_SSC) Transmit Pointer Register\r
-AT91C_SSC_PTCR EQU (0xFFFD4120) ;- (PDC_SSC) PDC Transfer Control Register\r
-AT91C_SSC_TCR EQU (0xFFFD410C) ;- (PDC_SSC) Transmit Counter Register\r
-AT91C_SSC_RCR EQU (0xFFFD4104) ;- (PDC_SSC) Receive Counter Register\r
-AT91C_SSC_RNPR EQU (0xFFFD4110) ;- (PDC_SSC) Receive Next Pointer Register\r
-AT91C_SSC_TNPR EQU (0xFFFD4118) ;- (PDC_SSC) Transmit Next Pointer Register\r
-AT91C_SSC_PTSR EQU (0xFFFD4124) ;- (PDC_SSC) PDC Transfer Status Register\r
-// - ========== Register definition for SSC peripheral ========== \r
-AT91C_SSC_RHR EQU (0xFFFD4020) ;- (SSC) Receive Holding Register\r
-AT91C_SSC_RSHR EQU (0xFFFD4030) ;- (SSC) Receive Sync Holding Register\r
-AT91C_SSC_TFMR EQU (0xFFFD401C) ;- (SSC) Transmit Frame Mode Register\r
-AT91C_SSC_IDR EQU (0xFFFD4048) ;- (SSC) Interrupt Disable Register\r
-AT91C_SSC_THR EQU (0xFFFD4024) ;- (SSC) Transmit Holding Register\r
-AT91C_SSC_RCMR EQU (0xFFFD4010) ;- (SSC) Receive Clock ModeRegister\r
-AT91C_SSC_IER EQU (0xFFFD4044) ;- (SSC) Interrupt Enable Register\r
-AT91C_SSC_TSHR EQU (0xFFFD4034) ;- (SSC) Transmit Sync Holding Register\r
-AT91C_SSC_SR EQU (0xFFFD4040) ;- (SSC) Status Register\r
-AT91C_SSC_CMR EQU (0xFFFD4004) ;- (SSC) Clock Mode Register\r
-AT91C_SSC_TCMR EQU (0xFFFD4018) ;- (SSC) Transmit Clock Mode Register\r
-AT91C_SSC_CR EQU (0xFFFD4000) ;- (SSC) Control Register\r
-AT91C_SSC_IMR EQU (0xFFFD404C) ;- (SSC) Interrupt Mask Register\r
-AT91C_SSC_RFMR EQU (0xFFFD4014) ;- (SSC) Receive Frame Mode Register\r
-// - ========== Register definition for TWI peripheral ========== \r
-AT91C_TWI_IER EQU (0xFFFB8024) ;- (TWI) Interrupt Enable Register\r
-AT91C_TWI_CR EQU (0xFFFB8000) ;- (TWI) Control Register\r
-AT91C_TWI_SR EQU (0xFFFB8020) ;- (TWI) Status Register\r
-AT91C_TWI_IMR EQU (0xFFFB802C) ;- (TWI) Interrupt Mask Register\r
-AT91C_TWI_THR EQU (0xFFFB8034) ;- (TWI) Transmit Holding Register\r
-AT91C_TWI_IDR EQU (0xFFFB8028) ;- (TWI) Interrupt Disable Register\r
-AT91C_TWI_IADR EQU (0xFFFB800C) ;- (TWI) Internal Address Register\r
-AT91C_TWI_MMR EQU (0xFFFB8004) ;- (TWI) Master Mode Register\r
-AT91C_TWI_CWGR EQU (0xFFFB8010) ;- (TWI) Clock Waveform Generator Register\r
-AT91C_TWI_RHR EQU (0xFFFB8030) ;- (TWI) Receive Holding Register\r
-// - ========== Register definition for PWMC_CH3 peripheral ========== \r
-AT91C_PWMC_CH3_CUPDR EQU (0xFFFCC270) ;- (PWMC_CH3) Channel Update Register\r
-AT91C_PWMC_CH3_Reserved EQU (0xFFFCC274) ;- (PWMC_CH3) Reserved\r
-AT91C_PWMC_CH3_CPRDR EQU (0xFFFCC268) ;- (PWMC_CH3) Channel Period Register\r
-AT91C_PWMC_CH3_CDTYR EQU (0xFFFCC264) ;- (PWMC_CH3) Channel Duty Cycle Register\r
-AT91C_PWMC_CH3_CCNTR EQU (0xFFFCC26C) ;- (PWMC_CH3) Channel Counter Register\r
-AT91C_PWMC_CH3_CMR EQU (0xFFFCC260) ;- (PWMC_CH3) Channel Mode Register\r
-// - ========== Register definition for PWMC_CH2 peripheral ========== \r
-AT91C_PWMC_CH2_Reserved EQU (0xFFFCC254) ;- (PWMC_CH2) Reserved\r
-AT91C_PWMC_CH2_CMR EQU (0xFFFCC240) ;- (PWMC_CH2) Channel Mode Register\r
-AT91C_PWMC_CH2_CCNTR EQU (0xFFFCC24C) ;- (PWMC_CH2) Channel Counter Register\r
-AT91C_PWMC_CH2_CPRDR EQU (0xFFFCC248) ;- (PWMC_CH2) Channel Period Register\r
-AT91C_PWMC_CH2_CUPDR EQU (0xFFFCC250) ;- (PWMC_CH2) Channel Update Register\r
-AT91C_PWMC_CH2_CDTYR EQU (0xFFFCC244) ;- (PWMC_CH2) Channel Duty Cycle Register\r
-// - ========== Register definition for PWMC_CH1 peripheral ========== \r
-AT91C_PWMC_CH1_Reserved EQU (0xFFFCC234) ;- (PWMC_CH1) Reserved\r
-AT91C_PWMC_CH1_CUPDR EQU (0xFFFCC230) ;- (PWMC_CH1) Channel Update Register\r
-AT91C_PWMC_CH1_CPRDR EQU (0xFFFCC228) ;- (PWMC_CH1) Channel Period Register\r
-AT91C_PWMC_CH1_CCNTR EQU (0xFFFCC22C) ;- (PWMC_CH1) Channel Counter Register\r
-AT91C_PWMC_CH1_CDTYR EQU (0xFFFCC224) ;- (PWMC_CH1) Channel Duty Cycle Register\r
-AT91C_PWMC_CH1_CMR EQU (0xFFFCC220) ;- (PWMC_CH1) Channel Mode Register\r
-// - ========== Register definition for PWMC_CH0 peripheral ========== \r
-AT91C_PWMC_CH0_Reserved EQU (0xFFFCC214) ;- (PWMC_CH0) Reserved\r
-AT91C_PWMC_CH0_CPRDR EQU (0xFFFCC208) ;- (PWMC_CH0) Channel Period Register\r
-AT91C_PWMC_CH0_CDTYR EQU (0xFFFCC204) ;- (PWMC_CH0) Channel Duty Cycle Register\r
-AT91C_PWMC_CH0_CMR EQU (0xFFFCC200) ;- (PWMC_CH0) Channel Mode Register\r
-AT91C_PWMC_CH0_CUPDR EQU (0xFFFCC210) ;- (PWMC_CH0) Channel Update Register\r
-AT91C_PWMC_CH0_CCNTR EQU (0xFFFCC20C) ;- (PWMC_CH0) Channel Counter Register\r
-// - ========== Register definition for PWMC peripheral ========== \r
-AT91C_PWMC_IDR EQU (0xFFFCC014) ;- (PWMC) PWMC Interrupt Disable Register\r
-AT91C_PWMC_DIS EQU (0xFFFCC008) ;- (PWMC) PWMC Disable Register\r
-AT91C_PWMC_IER EQU (0xFFFCC010) ;- (PWMC) PWMC Interrupt Enable Register\r
-AT91C_PWMC_VR EQU (0xFFFCC0FC) ;- (PWMC) PWMC Version Register\r
-AT91C_PWMC_ISR EQU (0xFFFCC01C) ;- (PWMC) PWMC Interrupt Status Register\r
-AT91C_PWMC_SR EQU (0xFFFCC00C) ;- (PWMC) PWMC Status Register\r
-AT91C_PWMC_IMR EQU (0xFFFCC018) ;- (PWMC) PWMC Interrupt Mask Register\r
-AT91C_PWMC_MR EQU (0xFFFCC000) ;- (PWMC) PWMC Mode Register\r
-AT91C_PWMC_ENA EQU (0xFFFCC004) ;- (PWMC) PWMC Enable Register\r
-// - ========== Register definition for UDP peripheral ========== \r
-AT91C_UDP_IMR EQU (0xFFFB0018) ;- (UDP) Interrupt Mask Register\r
-AT91C_UDP_FADDR EQU (0xFFFB0008) ;- (UDP) Function Address Register\r
-AT91C_UDP_NUM EQU (0xFFFB0000) ;- (UDP) Frame Number Register\r
-AT91C_UDP_FDR EQU (0xFFFB0050) ;- (UDP) Endpoint FIFO Data Register\r
-AT91C_UDP_ISR EQU (0xFFFB001C) ;- (UDP) Interrupt Status Register\r
-AT91C_UDP_CSR EQU (0xFFFB0030) ;- (UDP) Endpoint Control and Status Register\r
-AT91C_UDP_IDR EQU (0xFFFB0014) ;- (UDP) Interrupt Disable Register\r
-AT91C_UDP_ICR EQU (0xFFFB0020) ;- (UDP) Interrupt Clear Register\r
-AT91C_UDP_RSTEP EQU (0xFFFB0028) ;- (UDP) Reset Endpoint Register\r
-AT91C_UDP_TXVC EQU (0xFFFB0074) ;- (UDP) Transceiver Control Register\r
-AT91C_UDP_GLBSTATE EQU (0xFFFB0004) ;- (UDP) Global State Register\r
-AT91C_UDP_IER EQU (0xFFFB0010) ;- (UDP) Interrupt Enable Register\r
-// - ========== Register definition for TC0 peripheral ========== \r
-AT91C_TC0_SR EQU (0xFFFA0020) ;- (TC0) Status Register\r
-AT91C_TC0_RC EQU (0xFFFA001C) ;- (TC0) Register C\r
-AT91C_TC0_RB EQU (0xFFFA0018) ;- (TC0) Register B\r
-AT91C_TC0_CCR EQU (0xFFFA0000) ;- (TC0) Channel Control Register\r
-AT91C_TC0_CMR EQU (0xFFFA0004) ;- (TC0) Channel Mode Register (Capture Mode / Waveform Mode)\r
-AT91C_TC0_IER EQU (0xFFFA0024) ;- (TC0) Interrupt Enable Register\r
-AT91C_TC0_RA EQU (0xFFFA0014) ;- (TC0) Register A\r
-AT91C_TC0_IDR EQU (0xFFFA0028) ;- (TC0) Interrupt Disable Register\r
-AT91C_TC0_CV EQU (0xFFFA0010) ;- (TC0) Counter Value\r
-AT91C_TC0_IMR EQU (0xFFFA002C) ;- (TC0) Interrupt Mask Register\r
-// - ========== Register definition for TC1 peripheral ========== \r
-AT91C_TC1_RB EQU (0xFFFA0058) ;- (TC1) Register B\r
-AT91C_TC1_CCR EQU (0xFFFA0040) ;- (TC1) Channel Control Register\r
-AT91C_TC1_IER EQU (0xFFFA0064) ;- (TC1) Interrupt Enable Register\r
-AT91C_TC1_IDR EQU (0xFFFA0068) ;- (TC1) Interrupt Disable Register\r
-AT91C_TC1_SR EQU (0xFFFA0060) ;- (TC1) Status Register\r
-AT91C_TC1_CMR EQU (0xFFFA0044) ;- (TC1) Channel Mode Register (Capture Mode / Waveform Mode)\r
-AT91C_TC1_RA EQU (0xFFFA0054) ;- (TC1) Register A\r
-AT91C_TC1_RC EQU (0xFFFA005C) ;- (TC1) Register C\r
-AT91C_TC1_IMR EQU (0xFFFA006C) ;- (TC1) Interrupt Mask Register\r
-AT91C_TC1_CV EQU (0xFFFA0050) ;- (TC1) Counter Value\r
-// - ========== Register definition for TC2 peripheral ========== \r
-AT91C_TC2_CMR EQU (0xFFFA0084) ;- (TC2) Channel Mode Register (Capture Mode / Waveform Mode)\r
-AT91C_TC2_CCR EQU (0xFFFA0080) ;- (TC2) Channel Control Register\r
-AT91C_TC2_CV EQU (0xFFFA0090) ;- (TC2) Counter Value\r
-AT91C_TC2_RA EQU (0xFFFA0094) ;- (TC2) Register A\r
-AT91C_TC2_RB EQU (0xFFFA0098) ;- (TC2) Register B\r
-AT91C_TC2_IDR EQU (0xFFFA00A8) ;- (TC2) Interrupt Disable Register\r
-AT91C_TC2_IMR EQU (0xFFFA00AC) ;- (TC2) Interrupt Mask Register\r
-AT91C_TC2_RC EQU (0xFFFA009C) ;- (TC2) Register C\r
-AT91C_TC2_IER EQU (0xFFFA00A4) ;- (TC2) Interrupt Enable Register\r
-AT91C_TC2_SR EQU (0xFFFA00A0) ;- (TC2) Status Register\r
-// - ========== Register definition for TCB peripheral ========== \r
-AT91C_TCB_BMR EQU (0xFFFA00C4) ;- (TCB) TC Block Mode Register\r
-AT91C_TCB_BCR EQU (0xFFFA00C0) ;- (TCB) TC Block Control Register\r
-// - ========== Register definition for CAN_MB0 peripheral ========== \r
-AT91C_CAN_MB0_MDL EQU (0xFFFD0214) ;- (CAN_MB0) MailBox Data Low Register\r
-AT91C_CAN_MB0_MAM EQU (0xFFFD0204) ;- (CAN_MB0) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB0_MCR EQU (0xFFFD021C) ;- (CAN_MB0) MailBox Control Register\r
-AT91C_CAN_MB0_MID EQU (0xFFFD0208) ;- (CAN_MB0) MailBox ID Register\r
-AT91C_CAN_MB0_MSR EQU (0xFFFD0210) ;- (CAN_MB0) MailBox Status Register\r
-AT91C_CAN_MB0_MFID EQU (0xFFFD020C) ;- (CAN_MB0) MailBox Family ID Register\r
-AT91C_CAN_MB0_MDH EQU (0xFFFD0218) ;- (CAN_MB0) MailBox Data High Register\r
-AT91C_CAN_MB0_MMR EQU (0xFFFD0200) ;- (CAN_MB0) MailBox Mode Register\r
-// - ========== Register definition for CAN_MB1 peripheral ========== \r
-AT91C_CAN_MB1_MDL EQU (0xFFFD0234) ;- (CAN_MB1) MailBox Data Low Register\r
-AT91C_CAN_MB1_MID EQU (0xFFFD0228) ;- (CAN_MB1) MailBox ID Register\r
-AT91C_CAN_MB1_MMR EQU (0xFFFD0220) ;- (CAN_MB1) MailBox Mode Register\r
-AT91C_CAN_MB1_MSR EQU (0xFFFD0230) ;- (CAN_MB1) MailBox Status Register\r
-AT91C_CAN_MB1_MAM EQU (0xFFFD0224) ;- (CAN_MB1) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB1_MDH EQU (0xFFFD0238) ;- (CAN_MB1) MailBox Data High Register\r
-AT91C_CAN_MB1_MCR EQU (0xFFFD023C) ;- (CAN_MB1) MailBox Control Register\r
-AT91C_CAN_MB1_MFID EQU (0xFFFD022C) ;- (CAN_MB1) MailBox Family ID Register\r
-// - ========== Register definition for CAN_MB2 peripheral ========== \r
-AT91C_CAN_MB2_MCR EQU (0xFFFD025C) ;- (CAN_MB2) MailBox Control Register\r
-AT91C_CAN_MB2_MDH EQU (0xFFFD0258) ;- (CAN_MB2) MailBox Data High Register\r
-AT91C_CAN_MB2_MID EQU (0xFFFD0248) ;- (CAN_MB2) MailBox ID Register\r
-AT91C_CAN_MB2_MDL EQU (0xFFFD0254) ;- (CAN_MB2) MailBox Data Low Register\r
-AT91C_CAN_MB2_MMR EQU (0xFFFD0240) ;- (CAN_MB2) MailBox Mode Register\r
-AT91C_CAN_MB2_MAM EQU (0xFFFD0244) ;- (CAN_MB2) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB2_MFID EQU (0xFFFD024C) ;- (CAN_MB2) MailBox Family ID Register\r
-AT91C_CAN_MB2_MSR EQU (0xFFFD0250) ;- (CAN_MB2) MailBox Status Register\r
-// - ========== Register definition for CAN_MB3 peripheral ========== \r
-AT91C_CAN_MB3_MFID EQU (0xFFFD026C) ;- (CAN_MB3) MailBox Family ID Register\r
-AT91C_CAN_MB3_MAM EQU (0xFFFD0264) ;- (CAN_MB3) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB3_MID EQU (0xFFFD0268) ;- (CAN_MB3) MailBox ID Register\r
-AT91C_CAN_MB3_MCR EQU (0xFFFD027C) ;- (CAN_MB3) MailBox Control Register\r
-AT91C_CAN_MB3_MMR EQU (0xFFFD0260) ;- (CAN_MB3) MailBox Mode Register\r
-AT91C_CAN_MB3_MSR EQU (0xFFFD0270) ;- (CAN_MB3) MailBox Status Register\r
-AT91C_CAN_MB3_MDL EQU (0xFFFD0274) ;- (CAN_MB3) MailBox Data Low Register\r
-AT91C_CAN_MB3_MDH EQU (0xFFFD0278) ;- (CAN_MB3) MailBox Data High Register\r
-// - ========== Register definition for CAN_MB4 peripheral ========== \r
-AT91C_CAN_MB4_MID EQU (0xFFFD0288) ;- (CAN_MB4) MailBox ID Register\r
-AT91C_CAN_MB4_MMR EQU (0xFFFD0280) ;- (CAN_MB4) MailBox Mode Register\r
-AT91C_CAN_MB4_MDH EQU (0xFFFD0298) ;- (CAN_MB4) MailBox Data High Register\r
-AT91C_CAN_MB4_MFID EQU (0xFFFD028C) ;- (CAN_MB4) MailBox Family ID Register\r
-AT91C_CAN_MB4_MSR EQU (0xFFFD0290) ;- (CAN_MB4) MailBox Status Register\r
-AT91C_CAN_MB4_MCR EQU (0xFFFD029C) ;- (CAN_MB4) MailBox Control Register\r
-AT91C_CAN_MB4_MDL EQU (0xFFFD0294) ;- (CAN_MB4) MailBox Data Low Register\r
-AT91C_CAN_MB4_MAM EQU (0xFFFD0284) ;- (CAN_MB4) MailBox Acceptance Mask Register\r
-// - ========== Register definition for CAN_MB5 peripheral ========== \r
-AT91C_CAN_MB5_MSR EQU (0xFFFD02B0) ;- (CAN_MB5) MailBox Status Register\r
-AT91C_CAN_MB5_MCR EQU (0xFFFD02BC) ;- (CAN_MB5) MailBox Control Register\r
-AT91C_CAN_MB5_MFID EQU (0xFFFD02AC) ;- (CAN_MB5) MailBox Family ID Register\r
-AT91C_CAN_MB5_MDH EQU (0xFFFD02B8) ;- (CAN_MB5) MailBox Data High Register\r
-AT91C_CAN_MB5_MID EQU (0xFFFD02A8) ;- (CAN_MB5) MailBox ID Register\r
-AT91C_CAN_MB5_MMR EQU (0xFFFD02A0) ;- (CAN_MB5) MailBox Mode Register\r
-AT91C_CAN_MB5_MDL EQU (0xFFFD02B4) ;- (CAN_MB5) MailBox Data Low Register\r
-AT91C_CAN_MB5_MAM EQU (0xFFFD02A4) ;- (CAN_MB5) MailBox Acceptance Mask Register\r
-// - ========== Register definition for CAN_MB6 peripheral ========== \r
-AT91C_CAN_MB6_MFID EQU (0xFFFD02CC) ;- (CAN_MB6) MailBox Family ID Register\r
-AT91C_CAN_MB6_MID EQU (0xFFFD02C8) ;- (CAN_MB6) MailBox ID Register\r
-AT91C_CAN_MB6_MAM EQU (0xFFFD02C4) ;- (CAN_MB6) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB6_MSR EQU (0xFFFD02D0) ;- (CAN_MB6) MailBox Status Register\r
-AT91C_CAN_MB6_MDL EQU (0xFFFD02D4) ;- (CAN_MB6) MailBox Data Low Register\r
-AT91C_CAN_MB6_MCR EQU (0xFFFD02DC) ;- (CAN_MB6) MailBox Control Register\r
-AT91C_CAN_MB6_MDH EQU (0xFFFD02D8) ;- (CAN_MB6) MailBox Data High Register\r
-AT91C_CAN_MB6_MMR EQU (0xFFFD02C0) ;- (CAN_MB6) MailBox Mode Register\r
-// - ========== Register definition for CAN_MB7 peripheral ========== \r
-AT91C_CAN_MB7_MCR EQU (0xFFFD02FC) ;- (CAN_MB7) MailBox Control Register\r
-AT91C_CAN_MB7_MDH EQU (0xFFFD02F8) ;- (CAN_MB7) MailBox Data High Register\r
-AT91C_CAN_MB7_MFID EQU (0xFFFD02EC) ;- (CAN_MB7) MailBox Family ID Register\r
-AT91C_CAN_MB7_MDL EQU (0xFFFD02F4) ;- (CAN_MB7) MailBox Data Low Register\r
-AT91C_CAN_MB7_MID EQU (0xFFFD02E8) ;- (CAN_MB7) MailBox ID Register\r
-AT91C_CAN_MB7_MMR EQU (0xFFFD02E0) ;- (CAN_MB7) MailBox Mode Register\r
-AT91C_CAN_MB7_MAM EQU (0xFFFD02E4) ;- (CAN_MB7) MailBox Acceptance Mask Register\r
-AT91C_CAN_MB7_MSR EQU (0xFFFD02F0) ;- (CAN_MB7) MailBox Status Register\r
-// - ========== Register definition for CAN peripheral ========== \r
-AT91C_CAN_TCR EQU (0xFFFD0024) ;- (CAN) Transfer Command Register\r
-AT91C_CAN_IMR EQU (0xFFFD000C) ;- (CAN) Interrupt Mask Register\r
-AT91C_CAN_IER EQU (0xFFFD0004) ;- (CAN) Interrupt Enable Register\r
-AT91C_CAN_ECR EQU (0xFFFD0020) ;- (CAN) Error Counter Register\r
-AT91C_CAN_TIMESTP EQU (0xFFFD001C) ;- (CAN) Time Stamp Register\r
-AT91C_CAN_MR EQU (0xFFFD0000) ;- (CAN) Mode Register\r
-AT91C_CAN_IDR EQU (0xFFFD0008) ;- (CAN) Interrupt Disable Register\r
-AT91C_CAN_ACR EQU (0xFFFD0028) ;- (CAN) Abort Command Register\r
-AT91C_CAN_TIM EQU (0xFFFD0018) ;- (CAN) Timer Register\r
-AT91C_CAN_SR EQU (0xFFFD0010) ;- (CAN) Status Register\r
-AT91C_CAN_BR EQU (0xFFFD0014) ;- (CAN) Baudrate Register\r
-AT91C_CAN_VR EQU (0xFFFD00FC) ;- (CAN) Version Register\r
-// - ========== Register definition for EMAC peripheral ========== \r
-AT91C_EMAC_ISR EQU (0xFFFDC024) ;- (EMAC) Interrupt Status Register\r
-AT91C_EMAC_SA4H EQU (0xFFFDC0B4) ;- (EMAC) Specific Address 4 Top, Last 2 bytes\r
-AT91C_EMAC_SA1L EQU (0xFFFDC098) ;- (EMAC) Specific Address 1 Bottom, First 4 bytes\r
-AT91C_EMAC_ELE EQU (0xFFFDC078) ;- (EMAC) Excessive Length Errors Register\r
-AT91C_EMAC_LCOL EQU (0xFFFDC05C) ;- (EMAC) Late Collision Register\r
-AT91C_EMAC_RLE EQU (0xFFFDC088) ;- (EMAC) Receive Length Field Mismatch Register\r
-AT91C_EMAC_WOL EQU (0xFFFDC0C4) ;- (EMAC) Wake On LAN Register\r
-AT91C_EMAC_DTF EQU (0xFFFDC058) ;- (EMAC) Deferred Transmission Frame Register\r
-AT91C_EMAC_TUND EQU (0xFFFDC064) ;- (EMAC) Transmit Underrun Error Register\r
-AT91C_EMAC_NCR EQU (0xFFFDC000) ;- (EMAC) Network Control Register\r
-AT91C_EMAC_SA4L EQU (0xFFFDC0B0) ;- (EMAC) Specific Address 4 Bottom, First 4 bytes\r
-AT91C_EMAC_RSR EQU (0xFFFDC020) ;- (EMAC) Receive Status Register\r
-AT91C_EMAC_SA3L EQU (0xFFFDC0A8) ;- (EMAC) Specific Address 3 Bottom, First 4 bytes\r
-AT91C_EMAC_TSR EQU (0xFFFDC014) ;- (EMAC) Transmit Status Register\r
-AT91C_EMAC_IDR EQU (0xFFFDC02C) ;- (EMAC) Interrupt Disable Register\r
-AT91C_EMAC_RSE EQU (0xFFFDC074) ;- (EMAC) Receive Symbol Errors Register\r
-AT91C_EMAC_ECOL EQU (0xFFFDC060) ;- (EMAC) Excessive Collision Register\r
-AT91C_EMAC_TID EQU (0xFFFDC0B8) ;- (EMAC) Type ID Checking Register\r
-AT91C_EMAC_HRB EQU (0xFFFDC090) ;- (EMAC) Hash Address Bottom[31:0]\r
-AT91C_EMAC_TBQP EQU (0xFFFDC01C) ;- (EMAC) Transmit Buffer Queue Pointer\r
-AT91C_EMAC_USRIO EQU (0xFFFDC0C0) ;- (EMAC) USER Input/Output Register\r
-AT91C_EMAC_PTR EQU (0xFFFDC038) ;- (EMAC) Pause Time Register\r
-AT91C_EMAC_SA2H EQU (0xFFFDC0A4) ;- (EMAC) Specific Address 2 Top, Last 2 bytes\r
-AT91C_EMAC_ROV EQU (0xFFFDC070) ;- (EMAC) Receive Overrun Errors Register\r
-AT91C_EMAC_ALE EQU (0xFFFDC054) ;- (EMAC) Alignment Error Register\r
-AT91C_EMAC_RJA EQU (0xFFFDC07C) ;- (EMAC) Receive Jabbers Register\r
-AT91C_EMAC_RBQP EQU (0xFFFDC018) ;- (EMAC) Receive Buffer Queue Pointer\r
-AT91C_EMAC_TPF EQU (0xFFFDC08C) ;- (EMAC) Transmitted Pause Frames Register\r
-AT91C_EMAC_NCFGR EQU (0xFFFDC004) ;- (EMAC) Network Configuration Register\r
-AT91C_EMAC_HRT EQU (0xFFFDC094) ;- (EMAC) Hash Address Top[63:32]\r
-AT91C_EMAC_USF EQU (0xFFFDC080) ;- (EMAC) Undersize Frames Register\r
-AT91C_EMAC_FCSE EQU (0xFFFDC050) ;- (EMAC) Frame Check Sequence Error Register\r
-AT91C_EMAC_TPQ EQU (0xFFFDC0BC) ;- (EMAC) Transmit Pause Quantum Register\r
-AT91C_EMAC_MAN EQU (0xFFFDC034) ;- (EMAC) PHY Maintenance Register\r
-AT91C_EMAC_FTO EQU (0xFFFDC040) ;- (EMAC) Frames Transmitted OK Register\r
-AT91C_EMAC_REV EQU (0xFFFDC0FC) ;- (EMAC) Revision Register\r
-AT91C_EMAC_IMR EQU (0xFFFDC030) ;- (EMAC) Interrupt Mask Register\r
-AT91C_EMAC_SCF EQU (0xFFFDC044) ;- (EMAC) Single Collision Frame Register\r
-AT91C_EMAC_PFR EQU (0xFFFDC03C) ;- (EMAC) Pause Frames received Register\r
-AT91C_EMAC_MCF EQU (0xFFFDC048) ;- (EMAC) Multiple Collision Frame Register\r
-AT91C_EMAC_NSR EQU (0xFFFDC008) ;- (EMAC) Network Status Register\r
-AT91C_EMAC_SA2L EQU (0xFFFDC0A0) ;- (EMAC) Specific Address 2 Bottom, First 4 bytes\r
-AT91C_EMAC_FRO EQU (0xFFFDC04C) ;- (EMAC) Frames Received OK Register\r
-AT91C_EMAC_IER EQU (0xFFFDC028) ;- (EMAC) Interrupt Enable Register\r
-AT91C_EMAC_SA1H EQU (0xFFFDC09C) ;- (EMAC) Specific Address 1 Top, Last 2 bytes\r
-AT91C_EMAC_CSE EQU (0xFFFDC068) ;- (EMAC) Carrier Sense Error Register\r
-AT91C_EMAC_SA3H EQU (0xFFFDC0AC) ;- (EMAC) Specific Address 3 Top, Last 2 bytes\r
-AT91C_EMAC_RRE EQU (0xFFFDC06C) ;- (EMAC) Receive Ressource Error Register\r
-AT91C_EMAC_STE EQU (0xFFFDC084) ;- (EMAC) SQE Test Error Register\r
-// - ========== Register definition for PDC_ADC peripheral ========== \r
-AT91C_ADC_PTSR EQU (0xFFFD8124) ;- (PDC_ADC) PDC Transfer Status Register\r
-AT91C_ADC_PTCR EQU (0xFFFD8120) ;- (PDC_ADC) PDC Transfer Control Register\r
-AT91C_ADC_TNPR EQU (0xFFFD8118) ;- (PDC_ADC) Transmit Next Pointer Register\r
-AT91C_ADC_TNCR EQU (0xFFFD811C) ;- (PDC_ADC) Transmit Next Counter Register\r
-AT91C_ADC_RNPR EQU (0xFFFD8110) ;- (PDC_ADC) Receive Next Pointer Register\r
-AT91C_ADC_RNCR EQU (0xFFFD8114) ;- (PDC_ADC) Receive Next Counter Register\r
-AT91C_ADC_RPR EQU (0xFFFD8100) ;- (PDC_ADC) Receive Pointer Register\r
-AT91C_ADC_TCR EQU (0xFFFD810C) ;- (PDC_ADC) Transmit Counter Register\r
-AT91C_ADC_TPR EQU (0xFFFD8108) ;- (PDC_ADC) Transmit Pointer Register\r
-AT91C_ADC_RCR EQU (0xFFFD8104) ;- (PDC_ADC) Receive Counter Register\r
-// - ========== Register definition for ADC peripheral ========== \r
-AT91C_ADC_CDR2 EQU (0xFFFD8038) ;- (ADC) ADC Channel Data Register 2\r
-AT91C_ADC_CDR3 EQU (0xFFFD803C) ;- (ADC) ADC Channel Data Register 3\r
-AT91C_ADC_CDR0 EQU (0xFFFD8030) ;- (ADC) ADC Channel Data Register 0\r
-AT91C_ADC_CDR5 EQU (0xFFFD8044) ;- (ADC) ADC Channel Data Register 5\r
-AT91C_ADC_CHDR EQU (0xFFFD8014) ;- (ADC) ADC Channel Disable Register\r
-AT91C_ADC_SR EQU (0xFFFD801C) ;- (ADC) ADC Status Register\r
-AT91C_ADC_CDR4 EQU (0xFFFD8040) ;- (ADC) ADC Channel Data Register 4\r
-AT91C_ADC_CDR1 EQU (0xFFFD8034) ;- (ADC) ADC Channel Data Register 1\r
-AT91C_ADC_LCDR EQU (0xFFFD8020) ;- (ADC) ADC Last Converted Data Register\r
-AT91C_ADC_IDR EQU (0xFFFD8028) ;- (ADC) ADC Interrupt Disable Register\r
-AT91C_ADC_CR EQU (0xFFFD8000) ;- (ADC) ADC Control Register\r
-AT91C_ADC_CDR7 EQU (0xFFFD804C) ;- (ADC) ADC Channel Data Register 7\r
-AT91C_ADC_CDR6 EQU (0xFFFD8048) ;- (ADC) ADC Channel Data Register 6\r
-AT91C_ADC_IER EQU (0xFFFD8024) ;- (ADC) ADC Interrupt Enable Register\r
-AT91C_ADC_CHER EQU (0xFFFD8010) ;- (ADC) ADC Channel Enable Register\r
-AT91C_ADC_CHSR EQU (0xFFFD8018) ;- (ADC) ADC Channel Status Register\r
-AT91C_ADC_MR EQU (0xFFFD8004) ;- (ADC) ADC Mode Register\r
-AT91C_ADC_IMR EQU (0xFFFD802C) ;- (ADC) ADC Interrupt Mask Register\r
-// - ========== Register definition for PDC_AES peripheral ========== \r
-AT91C_AES_TPR EQU (0xFFFA4108) ;- (PDC_AES) Transmit Pointer Register\r
-AT91C_AES_PTCR EQU (0xFFFA4120) ;- (PDC_AES) PDC Transfer Control Register\r
-AT91C_AES_RNPR EQU (0xFFFA4110) ;- (PDC_AES) Receive Next Pointer Register\r
-AT91C_AES_TNCR EQU (0xFFFA411C) ;- (PDC_AES) Transmit Next Counter Register\r
-AT91C_AES_TCR EQU (0xFFFA410C) ;- (PDC_AES) Transmit Counter Register\r
-AT91C_AES_RCR EQU (0xFFFA4104) ;- (PDC_AES) Receive Counter Register\r
-AT91C_AES_RNCR EQU (0xFFFA4114) ;- (PDC_AES) Receive Next Counter Register\r
-AT91C_AES_TNPR EQU (0xFFFA4118) ;- (PDC_AES) Transmit Next Pointer Register\r
-AT91C_AES_RPR EQU (0xFFFA4100) ;- (PDC_AES) Receive Pointer Register\r
-AT91C_AES_PTSR EQU (0xFFFA4124) ;- (PDC_AES) PDC Transfer Status Register\r
-// - ========== Register definition for AES peripheral ========== \r
-AT91C_AES_IVxR EQU (0xFFFA4060) ;- (AES) Initialization Vector x Register\r
-AT91C_AES_MR EQU (0xFFFA4004) ;- (AES) Mode Register\r
-AT91C_AES_VR EQU (0xFFFA40FC) ;- (AES) AES Version Register\r
-AT91C_AES_ODATAxR EQU (0xFFFA4050) ;- (AES) Output Data x Register\r
-AT91C_AES_IDATAxR EQU (0xFFFA4040) ;- (AES) Input Data x Register\r
-AT91C_AES_CR EQU (0xFFFA4000) ;- (AES) Control Register\r
-AT91C_AES_IDR EQU (0xFFFA4014) ;- (AES) Interrupt Disable Register\r
-AT91C_AES_IMR EQU (0xFFFA4018) ;- (AES) Interrupt Mask Register\r
-AT91C_AES_IER EQU (0xFFFA4010) ;- (AES) Interrupt Enable Register\r
-AT91C_AES_KEYWxR EQU (0xFFFA4020) ;- (AES) Key Word x Register\r
-AT91C_AES_ISR EQU (0xFFFA401C) ;- (AES) Interrupt Status Register\r
-// - ========== Register definition for PDC_TDES peripheral ========== \r
-AT91C_TDES_RNCR EQU (0xFFFA8114) ;- (PDC_TDES) Receive Next Counter Register\r
-AT91C_TDES_TCR EQU (0xFFFA810C) ;- (PDC_TDES) Transmit Counter Register\r
-AT91C_TDES_RCR EQU (0xFFFA8104) ;- (PDC_TDES) Receive Counter Register\r
-AT91C_TDES_TNPR EQU (0xFFFA8118) ;- (PDC_TDES) Transmit Next Pointer Register\r
-AT91C_TDES_RNPR EQU (0xFFFA8110) ;- (PDC_TDES) Receive Next Pointer Register\r
-AT91C_TDES_RPR EQU (0xFFFA8100) ;- (PDC_TDES) Receive Pointer Register\r
-AT91C_TDES_TNCR EQU (0xFFFA811C) ;- (PDC_TDES) Transmit Next Counter Register\r
-AT91C_TDES_TPR EQU (0xFFFA8108) ;- (PDC_TDES) Transmit Pointer Register\r
-AT91C_TDES_PTSR EQU (0xFFFA8124) ;- (PDC_TDES) PDC Transfer Status Register\r
-AT91C_TDES_PTCR EQU (0xFFFA8120) ;- (PDC_TDES) PDC Transfer Control Register\r
-// - ========== Register definition for TDES peripheral ========== \r
-AT91C_TDES_KEY2WxR EQU (0xFFFA8028) ;- (TDES) Key 2 Word x Register\r
-AT91C_TDES_KEY3WxR EQU (0xFFFA8030) ;- (TDES) Key 3 Word x Register\r
-AT91C_TDES_IDR EQU (0xFFFA8014) ;- (TDES) Interrupt Disable Register\r
-AT91C_TDES_VR EQU (0xFFFA80FC) ;- (TDES) TDES Version Register\r
-AT91C_TDES_IVxR EQU (0xFFFA8060) ;- (TDES) Initialization Vector x Register\r
-AT91C_TDES_ODATAxR EQU (0xFFFA8050) ;- (TDES) Output Data x Register\r
-AT91C_TDES_IMR EQU (0xFFFA8018) ;- (TDES) Interrupt Mask Register\r
-AT91C_TDES_MR EQU (0xFFFA8004) ;- (TDES) Mode Register\r
-AT91C_TDES_CR EQU (0xFFFA8000) ;- (TDES) Control Register\r
-AT91C_TDES_IER EQU (0xFFFA8010) ;- (TDES) Interrupt Enable Register\r
-AT91C_TDES_ISR EQU (0xFFFA801C) ;- (TDES) Interrupt Status Register\r
-AT91C_TDES_IDATAxR EQU (0xFFFA8040) ;- (TDES) Input Data x Register\r
-AT91C_TDES_KEY1WxR EQU (0xFFFA8020) ;- (TDES) Key 1 Word x Register\r
-\r
-// - *****************************************************************************\r
-// - PIO DEFINITIONS FOR AT91SAM7X256\r
-// - *****************************************************************************\r
-AT91C_PIO_PA0 EQU (1 << 0) ;- Pin Controlled by PA0\r
-AT91C_PA0_RXD0 EQU (AT91C_PIO_PA0) ;- USART 0 Receive Data\r
-AT91C_PIO_PA1 EQU (1 << 1) ;- Pin Controlled by PA1\r
-AT91C_PA1_TXD0 EQU (AT91C_PIO_PA1) ;- USART 0 Transmit Data\r
-AT91C_PIO_PA10 EQU (1 << 10) ;- Pin Controlled by PA10\r
-AT91C_PA10_TWD EQU (AT91C_PIO_PA10) ;- TWI Two-wire Serial Data\r
-AT91C_PIO_PA11 EQU (1 << 11) ;- Pin Controlled by PA11\r
-AT91C_PA11_TWCK EQU (AT91C_PIO_PA11) ;- TWI Two-wire Serial Clock\r
-AT91C_PIO_PA12 EQU (1 << 12) ;- Pin Controlled by PA12\r
-AT91C_PA12_NPCS00 EQU (AT91C_PIO_PA12) ;- SPI 0 Peripheral Chip Select 0\r
-AT91C_PIO_PA13 EQU (1 << 13) ;- Pin Controlled by PA13\r
-AT91C_PA13_NPCS01 EQU (AT91C_PIO_PA13) ;- SPI 0 Peripheral Chip Select 1\r
-AT91C_PA13_PCK1 EQU (AT91C_PIO_PA13) ;- PMC Programmable Clock Output 1\r
-AT91C_PIO_PA14 EQU (1 << 14) ;- Pin Controlled by PA14\r
-AT91C_PA14_NPCS02 EQU (AT91C_PIO_PA14) ;- SPI 0 Peripheral Chip Select 2\r
-AT91C_PA14_IRQ1 EQU (AT91C_PIO_PA14) ;- External Interrupt 1\r
-AT91C_PIO_PA15 EQU (1 << 15) ;- Pin Controlled by PA15\r
-AT91C_PA15_NPCS03 EQU (AT91C_PIO_PA15) ;- SPI 0 Peripheral Chip Select 3\r
-AT91C_PA15_TCLK2 EQU (AT91C_PIO_PA15) ;- Timer Counter 2 external clock input\r
-AT91C_PIO_PA16 EQU (1 << 16) ;- Pin Controlled by PA16\r
-AT91C_PA16_MISO0 EQU (AT91C_PIO_PA16) ;- SPI 0 Master In Slave\r
-AT91C_PIO_PA17 EQU (1 << 17) ;- Pin Controlled by PA17\r
-AT91C_PA17_MOSI0 EQU (AT91C_PIO_PA17) ;- SPI 0 Master Out Slave\r
-AT91C_PIO_PA18 EQU (1 << 18) ;- Pin Controlled by PA18\r
-AT91C_PA18_SPCK0 EQU (AT91C_PIO_PA18) ;- SPI 0 Serial Clock\r
-AT91C_PIO_PA19 EQU (1 << 19) ;- Pin Controlled by PA19\r
-AT91C_PA19_CANRX EQU (AT91C_PIO_PA19) ;- CAN Receive\r
-AT91C_PIO_PA2 EQU (1 << 2) ;- Pin Controlled by PA2\r
-AT91C_PA2_SCK0 EQU (AT91C_PIO_PA2) ;- USART 0 Serial Clock\r
-AT91C_PA2_NPCS11 EQU (AT91C_PIO_PA2) ;- SPI 1 Peripheral Chip Select 1\r
-AT91C_PIO_PA20 EQU (1 << 20) ;- Pin Controlled by PA20\r
-AT91C_PA20_CANTX EQU (AT91C_PIO_PA20) ;- CAN Transmit\r
-AT91C_PIO_PA21 EQU (1 << 21) ;- Pin Controlled by PA21\r
-AT91C_PA21_TF EQU (AT91C_PIO_PA21) ;- SSC Transmit Frame Sync\r
-AT91C_PA21_NPCS10 EQU (AT91C_PIO_PA21) ;- SPI 1 Peripheral Chip Select 0\r
-AT91C_PIO_PA22 EQU (1 << 22) ;- Pin Controlled by PA22\r
-AT91C_PA22_TK EQU (AT91C_PIO_PA22) ;- SSC Transmit Clock\r
-AT91C_PA22_SPCK1 EQU (AT91C_PIO_PA22) ;- SPI 1 Serial Clock\r
-AT91C_PIO_PA23 EQU (1 << 23) ;- Pin Controlled by PA23\r
-AT91C_PA23_TD EQU (AT91C_PIO_PA23) ;- SSC Transmit data\r
-AT91C_PA23_MOSI1 EQU (AT91C_PIO_PA23) ;- SPI 1 Master Out Slave\r
-AT91C_PIO_PA24 EQU (1 << 24) ;- Pin Controlled by PA24\r
-AT91C_PA24_RD EQU (AT91C_PIO_PA24) ;- SSC Receive Data\r
-AT91C_PA24_MISO1 EQU (AT91C_PIO_PA24) ;- SPI 1 Master In Slave\r
-AT91C_PIO_PA25 EQU (1 << 25) ;- Pin Controlled by PA25\r
-AT91C_PA25_RK EQU (AT91C_PIO_PA25) ;- SSC Receive Clock\r
-AT91C_PA25_NPCS11 EQU (AT91C_PIO_PA25) ;- SPI 1 Peripheral Chip Select 1\r
-AT91C_PIO_PA26 EQU (1 << 26) ;- Pin Controlled by PA26\r
-AT91C_PA26_RF EQU (AT91C_PIO_PA26) ;- SSC Receive Frame Sync\r
-AT91C_PA26_NPCS12 EQU (AT91C_PIO_PA26) ;- SPI 1 Peripheral Chip Select 2\r
-AT91C_PIO_PA27 EQU (1 << 27) ;- Pin Controlled by PA27\r
-AT91C_PA27_DRXD EQU (AT91C_PIO_PA27) ;- DBGU Debug Receive Data\r
-AT91C_PA27_PCK3 EQU (AT91C_PIO_PA27) ;- PMC Programmable Clock Output 3\r
-AT91C_PIO_PA28 EQU (1 << 28) ;- Pin Controlled by PA28\r
-AT91C_PA28_DTXD EQU (AT91C_PIO_PA28) ;- DBGU Debug Transmit Data\r
-AT91C_PIO_PA29 EQU (1 << 29) ;- Pin Controlled by PA29\r
-AT91C_PA29_FIQ EQU (AT91C_PIO_PA29) ;- AIC Fast Interrupt Input\r
-AT91C_PA29_NPCS13 EQU (AT91C_PIO_PA29) ;- SPI 1 Peripheral Chip Select 3\r
-AT91C_PIO_PA3 EQU (1 << 3) ;- Pin Controlled by PA3\r
-AT91C_PA3_RTS0 EQU (AT91C_PIO_PA3) ;- USART 0 Ready To Send\r
-AT91C_PA3_NPCS12 EQU (AT91C_PIO_PA3) ;- SPI 1 Peripheral Chip Select 2\r
-AT91C_PIO_PA30 EQU (1 << 30) ;- Pin Controlled by PA30\r
-AT91C_PA30_IRQ0 EQU (AT91C_PIO_PA30) ;- External Interrupt 0\r
-AT91C_PA30_PCK2 EQU (AT91C_PIO_PA30) ;- PMC Programmable Clock Output 2\r
-AT91C_PIO_PA4 EQU (1 << 4) ;- Pin Controlled by PA4\r
-AT91C_PA4_CTS0 EQU (AT91C_PIO_PA4) ;- USART 0 Clear To Send\r
-AT91C_PA4_NPCS13 EQU (AT91C_PIO_PA4) ;- SPI 1 Peripheral Chip Select 3\r
-AT91C_PIO_PA5 EQU (1 << 5) ;- Pin Controlled by PA5\r
-AT91C_PA5_RXD1 EQU (AT91C_PIO_PA5) ;- USART 1 Receive Data\r
-AT91C_PIO_PA6 EQU (1 << 6) ;- Pin Controlled by PA6\r
-AT91C_PA6_TXD1 EQU (AT91C_PIO_PA6) ;- USART 1 Transmit Data\r
-AT91C_PIO_PA7 EQU (1 << 7) ;- Pin Controlled by PA7\r
-AT91C_PA7_SCK1 EQU (AT91C_PIO_PA7) ;- USART 1 Serial Clock\r
-AT91C_PA7_NPCS01 EQU (AT91C_PIO_PA7) ;- SPI 0 Peripheral Chip Select 1\r
-AT91C_PIO_PA8 EQU (1 << 8) ;- Pin Controlled by PA8\r
-AT91C_PA8_RTS1 EQU (AT91C_PIO_PA8) ;- USART 1 Ready To Send\r
-AT91C_PA8_NPCS02 EQU (AT91C_PIO_PA8) ;- SPI 0 Peripheral Chip Select 2\r
-AT91C_PIO_PA9 EQU (1 << 9) ;- Pin Controlled by PA9\r
-AT91C_PA9_CTS1 EQU (AT91C_PIO_PA9) ;- USART 1 Clear To Send\r
-AT91C_PA9_NPCS03 EQU (AT91C_PIO_PA9) ;- SPI 0 Peripheral Chip Select 3\r
-AT91C_PIO_PB0 EQU (1 << 0) ;- Pin Controlled by PB0\r
-AT91C_PB0_ETXCK_EREFCK EQU (AT91C_PIO_PB0) ;- Ethernet MAC Transmit Clock/Reference Clock\r
-AT91C_PB0_PCK0 EQU (AT91C_PIO_PB0) ;- PMC Programmable Clock Output 0\r
-AT91C_PIO_PB1 EQU (1 << 1) ;- Pin Controlled by PB1\r
-AT91C_PB1_ETXEN EQU (AT91C_PIO_PB1) ;- Ethernet MAC Transmit Enable\r
-AT91C_PIO_PB10 EQU (1 << 10) ;- Pin Controlled by PB10\r
-AT91C_PB10_ETX2 EQU (AT91C_PIO_PB10) ;- Ethernet MAC Transmit Data 2\r
-AT91C_PB10_NPCS11 EQU (AT91C_PIO_PB10) ;- SPI 1 Peripheral Chip Select 1\r
-AT91C_PIO_PB11 EQU (1 << 11) ;- Pin Controlled by PB11\r
-AT91C_PB11_ETX3 EQU (AT91C_PIO_PB11) ;- Ethernet MAC Transmit Data 3\r
-AT91C_PB11_NPCS12 EQU (AT91C_PIO_PB11) ;- SPI 1 Peripheral Chip Select 2\r
-AT91C_PIO_PB12 EQU (1 << 12) ;- Pin Controlled by PB12\r
-AT91C_PB12_ETXER EQU (AT91C_PIO_PB12) ;- Ethernet MAC Transmikt Coding Error\r
-AT91C_PB12_TCLK0 EQU (AT91C_PIO_PB12) ;- Timer Counter 0 external clock input\r
-AT91C_PIO_PB13 EQU (1 << 13) ;- Pin Controlled by PB13\r
-AT91C_PB13_ERX2 EQU (AT91C_PIO_PB13) ;- Ethernet MAC Receive Data 2\r
-AT91C_PB13_NPCS01 EQU (AT91C_PIO_PB13) ;- SPI 0 Peripheral Chip Select 1\r
-AT91C_PIO_PB14 EQU (1 << 14) ;- Pin Controlled by PB14\r
-AT91C_PB14_ERX3 EQU (AT91C_PIO_PB14) ;- Ethernet MAC Receive Data 3\r
-AT91C_PB14_NPCS02 EQU (AT91C_PIO_PB14) ;- SPI 0 Peripheral Chip Select 2\r
-AT91C_PIO_PB15 EQU (1 << 15) ;- Pin Controlled by PB15\r
-AT91C_PB15_ERXDV EQU (AT91C_PIO_PB15) ;- Ethernet MAC Receive Data Valid\r
-AT91C_PIO_PB16 EQU (1 << 16) ;- Pin Controlled by PB16\r
-AT91C_PB16_ECOL EQU (AT91C_PIO_PB16) ;- Ethernet MAC Collision Detected\r
-AT91C_PB16_NPCS13 EQU (AT91C_PIO_PB16) ;- SPI 1 Peripheral Chip Select 3\r
-AT91C_PIO_PB17 EQU (1 << 17) ;- Pin Controlled by PB17\r
-AT91C_PB17_ERXCK EQU (AT91C_PIO_PB17) ;- Ethernet MAC Receive Clock\r
-AT91C_PB17_NPCS03 EQU (AT91C_PIO_PB17) ;- SPI 0 Peripheral Chip Select 3\r
-AT91C_PIO_PB18 EQU (1 << 18) ;- Pin Controlled by PB18\r
-AT91C_PB18_EF100 EQU (AT91C_PIO_PB18) ;- Ethernet MAC Force 100 Mbits/sec\r
-AT91C_PB18_ADTRG EQU (AT91C_PIO_PB18) ;- ADC External Trigger\r
-AT91C_PIO_PB19 EQU (1 << 19) ;- Pin Controlled by PB19\r
-AT91C_PB19_PWM0 EQU (AT91C_PIO_PB19) ;- PWM Channel 0\r
-AT91C_PB19_TCLK1 EQU (AT91C_PIO_PB19) ;- Timer Counter 1 external clock input\r
-AT91C_PIO_PB2 EQU (1 << 2) ;- Pin Controlled by PB2\r
-AT91C_PB2_ETX0 EQU (AT91C_PIO_PB2) ;- Ethernet MAC Transmit Data 0\r
-AT91C_PIO_PB20 EQU (1 << 20) ;- Pin Controlled by PB20\r
-AT91C_PB20_PWM1 EQU (AT91C_PIO_PB20) ;- PWM Channel 1\r
-AT91C_PB20_PCK0 EQU (AT91C_PIO_PB20) ;- PMC Programmable Clock Output 0\r
-AT91C_PIO_PB21 EQU (1 << 21) ;- Pin Controlled by PB21\r
-AT91C_PB21_PWM2 EQU (AT91C_PIO_PB21) ;- PWM Channel 2\r
-AT91C_PB21_PCK1 EQU (AT91C_PIO_PB21) ;- PMC Programmable Clock Output 1\r
-AT91C_PIO_PB22 EQU (1 << 22) ;- Pin Controlled by PB22\r
-AT91C_PB22_PWM3 EQU (AT91C_PIO_PB22) ;- PWM Channel 3\r
-AT91C_PB22_PCK2 EQU (AT91C_PIO_PB22) ;- PMC Programmable Clock Output 2\r
-AT91C_PIO_PB23 EQU (1 << 23) ;- Pin Controlled by PB23\r
-AT91C_PB23_TIOA0 EQU (AT91C_PIO_PB23) ;- Timer Counter 0 Multipurpose Timer I/O Pin A\r
-AT91C_PB23_DCD1 EQU (AT91C_PIO_PB23) ;- USART 1 Data Carrier Detect\r
-AT91C_PIO_PB24 EQU (1 << 24) ;- Pin Controlled by PB24\r
-AT91C_PB24_TIOB0 EQU (AT91C_PIO_PB24) ;- Timer Counter 0 Multipurpose Timer I/O Pin B\r
-AT91C_PB24_DSR1 EQU (AT91C_PIO_PB24) ;- USART 1 Data Set ready\r
-AT91C_PIO_PB25 EQU (1 << 25) ;- Pin Controlled by PB25\r
-AT91C_PB25_TIOA1 EQU (AT91C_PIO_PB25) ;- Timer Counter 1 Multipurpose Timer I/O Pin A\r
-AT91C_PB25_DTR1 EQU (AT91C_PIO_PB25) ;- USART 1 Data Terminal ready\r
-AT91C_PIO_PB26 EQU (1 << 26) ;- Pin Controlled by PB26\r
-AT91C_PB26_TIOB1 EQU (AT91C_PIO_PB26) ;- Timer Counter 1 Multipurpose Timer I/O Pin B\r
-AT91C_PB26_RI1 EQU (AT91C_PIO_PB26) ;- USART 1 Ring Indicator\r
-AT91C_PIO_PB27 EQU (1 << 27) ;- Pin Controlled by PB27\r
-AT91C_PB27_TIOA2 EQU (AT91C_PIO_PB27) ;- Timer Counter 2 Multipurpose Timer I/O Pin A\r
-AT91C_PB27_PWM0 EQU (AT91C_PIO_PB27) ;- PWM Channel 0\r
-AT91C_PIO_PB28 EQU (1 << 28) ;- Pin Controlled by PB28\r
-AT91C_PB28_TIOB2 EQU (AT91C_PIO_PB28) ;- Timer Counter 2 Multipurpose Timer I/O Pin B\r
-AT91C_PB28_PWM1 EQU (AT91C_PIO_PB28) ;- PWM Channel 1\r
-AT91C_PIO_PB29 EQU (1 << 29) ;- Pin Controlled by PB29\r
-AT91C_PB29_PCK1 EQU (AT91C_PIO_PB29) ;- PMC Programmable Clock Output 1\r
-AT91C_PB29_PWM2 EQU (AT91C_PIO_PB29) ;- PWM Channel 2\r
-AT91C_PIO_PB3 EQU (1 << 3) ;- Pin Controlled by PB3\r
-AT91C_PB3_ETX1 EQU (AT91C_PIO_PB3) ;- Ethernet MAC Transmit Data 1\r
-AT91C_PIO_PB30 EQU (1 << 30) ;- Pin Controlled by PB30\r
-AT91C_PB30_PCK2 EQU (AT91C_PIO_PB30) ;- PMC Programmable Clock Output 2\r
-AT91C_PB30_PWM3 EQU (AT91C_PIO_PB30) ;- PWM Channel 3\r
-AT91C_PIO_PB4 EQU (1 << 4) ;- Pin Controlled by PB4\r
-AT91C_PB4_ECRS_ECRSDV EQU (AT91C_PIO_PB4) ;- Ethernet MAC Carrier Sense/Carrier Sense and Data Valid\r
-AT91C_PIO_PB5 EQU (1 << 5) ;- Pin Controlled by PB5\r
-AT91C_PB5_ERX0 EQU (AT91C_PIO_PB5) ;- Ethernet MAC Receive Data 0\r
-AT91C_PIO_PB6 EQU (1 << 6) ;- Pin Controlled by PB6\r
-AT91C_PB6_ERX1 EQU (AT91C_PIO_PB6) ;- Ethernet MAC Receive Data 1\r
-AT91C_PIO_PB7 EQU (1 << 7) ;- Pin Controlled by PB7\r
-AT91C_PB7_ERXER EQU (AT91C_PIO_PB7) ;- Ethernet MAC Receive Error\r
-AT91C_PIO_PB8 EQU (1 << 8) ;- Pin Controlled by PB8\r
-AT91C_PB8_EMDC EQU (AT91C_PIO_PB8) ;- Ethernet MAC Management Data Clock\r
-AT91C_PIO_PB9 EQU (1 << 9) ;- Pin Controlled by PB9\r
-AT91C_PB9_EMDIO EQU (AT91C_PIO_PB9) ;- Ethernet MAC Management Data Input/Output\r
-\r
-// - *****************************************************************************\r
-// - PERIPHERAL ID DEFINITIONS FOR AT91SAM7X256\r
-// - *****************************************************************************\r
-AT91C_ID_FIQ EQU ( 0) ;- Advanced Interrupt Controller (FIQ)\r
-AT91C_ID_SYS EQU ( 1) ;- System Peripheral\r
-AT91C_ID_PIOA EQU ( 2) ;- Parallel IO Controller A\r
-AT91C_ID_PIOB EQU ( 3) ;- Parallel IO Controller B\r
-AT91C_ID_SPI0 EQU ( 4) ;- Serial Peripheral Interface 0\r
-AT91C_ID_SPI1 EQU ( 5) ;- Serial Peripheral Interface 1\r
-AT91C_ID_US0 EQU ( 6) ;- USART 0\r
-AT91C_ID_US1 EQU ( 7) ;- USART 1\r
-AT91C_ID_SSC EQU ( 8) ;- Serial Synchronous Controller\r
-AT91C_ID_TWI EQU ( 9) ;- Two-Wire Interface\r
-AT91C_ID_PWMC EQU (10) ;- PWM Controller\r
-AT91C_ID_UDP EQU (11) ;- USB Device Port\r
-AT91C_ID_TC0 EQU (12) ;- Timer Counter 0\r
-AT91C_ID_TC1 EQU (13) ;- Timer Counter 1\r
-AT91C_ID_TC2 EQU (14) ;- Timer Counter 2\r
-AT91C_ID_CAN EQU (15) ;- Control Area Network Controller\r
-AT91C_ID_EMAC EQU (16) ;- Ethernet MAC\r
-AT91C_ID_ADC EQU (17) ;- Analog-to-Digital Converter\r
-AT91C_ID_AES EQU (18) ;- Advanced Encryption Standard 128-bit\r
-AT91C_ID_TDES EQU (19) ;- Triple Data Encryption Standard\r
-AT91C_ID_20_Reserved EQU (20) ;- Reserved\r
-AT91C_ID_21_Reserved EQU (21) ;- Reserved\r
-AT91C_ID_22_Reserved EQU (22) ;- Reserved\r
-AT91C_ID_23_Reserved EQU (23) ;- Reserved\r
-AT91C_ID_24_Reserved EQU (24) ;- Reserved\r
-AT91C_ID_25_Reserved EQU (25) ;- Reserved\r
-AT91C_ID_26_Reserved EQU (26) ;- Reserved\r
-AT91C_ID_27_Reserved EQU (27) ;- Reserved\r
-AT91C_ID_28_Reserved EQU (28) ;- Reserved\r
-AT91C_ID_29_Reserved EQU (29) ;- Reserved\r
-AT91C_ID_IRQ0 EQU (30) ;- Advanced Interrupt Controller (IRQ0)\r
-AT91C_ID_IRQ1 EQU (31) ;- Advanced Interrupt Controller (IRQ1)\r
-\r
-// - *****************************************************************************\r
-// - BASE ADDRESS DEFINITIONS FOR AT91SAM7X256\r
-// - *****************************************************************************\r
-AT91C_BASE_SYS EQU (0xFFFFF000) ;- (SYS) Base Address\r
-AT91C_BASE_AIC EQU (0xFFFFF000) ;- (AIC) Base Address\r
-AT91C_BASE_PDC_DBGU EQU (0xFFFFF300) ;- (PDC_DBGU) Base Address\r
-AT91C_BASE_DBGU EQU (0xFFFFF200) ;- (DBGU) Base Address\r
-AT91C_BASE_PIOA EQU (0xFFFFF400) ;- (PIOA) Base Address\r
-AT91C_BASE_PIOB EQU (0xFFFFF600) ;- (PIOB) Base Address\r
-AT91C_BASE_CKGR EQU (0xFFFFFC20) ;- (CKGR) Base Address\r
-AT91C_BASE_PMC EQU (0xFFFFFC00) ;- (PMC) Base Address\r
-AT91C_BASE_RSTC EQU (0xFFFFFD00) ;- (RSTC) Base Address\r
-AT91C_BASE_RTTC EQU (0xFFFFFD20) ;- (RTTC) Base Address\r
-AT91C_BASE_PITC EQU (0xFFFFFD30) ;- (PITC) Base Address\r
-AT91C_BASE_WDTC EQU (0xFFFFFD40) ;- (WDTC) Base Address\r
-AT91C_BASE_VREG EQU (0xFFFFFD60) ;- (VREG) Base Address\r
-AT91C_BASE_MC EQU (0xFFFFFF00) ;- (MC) Base Address\r
-AT91C_BASE_PDC_SPI1 EQU (0xFFFE4100) ;- (PDC_SPI1) Base Address\r
-AT91C_BASE_SPI1 EQU (0xFFFE4000) ;- (SPI1) Base Address\r
-AT91C_BASE_PDC_SPI0 EQU (0xFFFE0100) ;- (PDC_SPI0) Base Address\r
-AT91C_BASE_SPI0 EQU (0xFFFE0000) ;- (SPI0) Base Address\r
-AT91C_BASE_PDC_US1 EQU (0xFFFC4100) ;- (PDC_US1) Base Address\r
-AT91C_BASE_US1 EQU (0xFFFC4000) ;- (US1) Base Address\r
-AT91C_BASE_PDC_US0 EQU (0xFFFC0100) ;- (PDC_US0) Base Address\r
-AT91C_BASE_US0 EQU (0xFFFC0000) ;- (US0) Base Address\r
-AT91C_BASE_PDC_SSC EQU (0xFFFD4100) ;- (PDC_SSC) Base Address\r
-AT91C_BASE_SSC EQU (0xFFFD4000) ;- (SSC) Base Address\r
-AT91C_BASE_TWI EQU (0xFFFB8000) ;- (TWI) Base Address\r
-AT91C_BASE_PWMC_CH3 EQU (0xFFFCC260) ;- (PWMC_CH3) Base Address\r
-AT91C_BASE_PWMC_CH2 EQU (0xFFFCC240) ;- (PWMC_CH2) Base Address\r
-AT91C_BASE_PWMC_CH1 EQU (0xFFFCC220) ;- (PWMC_CH1) Base Address\r
-AT91C_BASE_PWMC_CH0 EQU (0xFFFCC200) ;- (PWMC_CH0) Base Address\r
-AT91C_BASE_PWMC EQU (0xFFFCC000) ;- (PWMC) Base Address\r
-AT91C_BASE_UDP EQU (0xFFFB0000) ;- (UDP) Base Address\r
-AT91C_BASE_TC0 EQU (0xFFFA0000) ;- (TC0) Base Address\r
-AT91C_BASE_TC1 EQU (0xFFFA0040) ;- (TC1) Base Address\r
-AT91C_BASE_TC2 EQU (0xFFFA0080) ;- (TC2) Base Address\r
-AT91C_BASE_TCB EQU (0xFFFA0000) ;- (TCB) Base Address\r
-AT91C_BASE_CAN_MB0 EQU (0xFFFD0200) ;- (CAN_MB0) Base Address\r
-AT91C_BASE_CAN_MB1 EQU (0xFFFD0220) ;- (CAN_MB1) Base Address\r
-AT91C_BASE_CAN_MB2 EQU (0xFFFD0240) ;- (CAN_MB2) Base Address\r
-AT91C_BASE_CAN_MB3 EQU (0xFFFD0260) ;- (CAN_MB3) Base Address\r
-AT91C_BASE_CAN_MB4 EQU (0xFFFD0280) ;- (CAN_MB4) Base Address\r
-AT91C_BASE_CAN_MB5 EQU (0xFFFD02A0) ;- (CAN_MB5) Base Address\r
-AT91C_BASE_CAN_MB6 EQU (0xFFFD02C0) ;- (CAN_MB6) Base Address\r
-AT91C_BASE_CAN_MB7 EQU (0xFFFD02E0) ;- (CAN_MB7) Base Address\r
-AT91C_BASE_CAN EQU (0xFFFD0000) ;- (CAN) Base Address\r
-AT91C_BASE_EMAC EQU (0xFFFDC000) ;- (EMAC) Base Address\r
-AT91C_BASE_PDC_ADC EQU (0xFFFD8100) ;- (PDC_ADC) Base Address\r
-AT91C_BASE_ADC EQU (0xFFFD8000) ;- (ADC) Base Address\r
-AT91C_BASE_PDC_AES EQU (0xFFFA4100) ;- (PDC_AES) Base Address\r
-AT91C_BASE_AES EQU (0xFFFA4000) ;- (AES) Base Address\r
-AT91C_BASE_PDC_TDES EQU (0xFFFA8100) ;- (PDC_TDES) Base Address\r
-AT91C_BASE_TDES EQU (0xFFFA8000) ;- (TDES) Base Address\r
-\r
-// - *****************************************************************************\r
-// - MEMORY MAPPING DEFINITIONS FOR AT91SAM7X256\r
-// - *****************************************************************************\r
-AT91C_ISRAM EQU (0x00200000) ;- Internal SRAM base address\r
-AT91C_ISRAM_SIZE EQU (0x00010000) ;- Internal SRAM size in byte (64 Kbyte)\r
-AT91C_IFLASH EQU (0x00100000) ;- Internal ROM base address\r
-AT91C_IFLASH_SIZE EQU (0x00040000) ;- Internal ROM size in byte (256 Kbyte)\r
-#endif /* __IAR_SYSTEMS_ASM__ */\r
-\r
-\r
-#endif /* AT91SAM7X256_H */\r
+++ /dev/null
-/* Generic MII registers. */\r
-\r
-#define MII_BMCR 0x00 /* Basic mode control register */\r
-#define MII_BMSR 0x01 /* Basic mode status register */\r
-#define MII_PHYSID1 0x02 /* PHYS ID 1 */\r
-#define MII_PHYSID2 0x03 /* PHYS ID 2 */\r
-#define MII_ADVERTISE 0x04 /* Advertisement control reg */\r
-#define MII_LPA 0x05 /* Link partner ability reg */\r
-#define MII_EXPANSION 0x06 /* Expansion register */\r
-#define MII_DCOUNTER 0x12 /* Disconnect counter */\r
-#define MII_FCSCOUNTER 0x13 /* False carrier counter */\r
-#define MII_NWAYTEST 0x14 /* N-way auto-neg test reg */\r
-#define MII_RERRCOUNTER 0x15 /* Receive error counter */\r
-#define MII_SREVISION 0x16 /* Silicon revision */\r
-#define MII_RESV1 0x17 /* Reserved... */\r
-#define MII_LBRERROR 0x18 /* Lpback, rx, bypass error */\r
-#define MII_PHYADDR 0x19 /* PHY address */\r
-#define MII_RESV2 0x1a /* Reserved... */\r
-#define MII_TPISTATUS 0x1b /* TPI status for 10mbps */\r
-#define MII_NCONFIG 0x1c /* Network interface config */\r
-\r
-/* Basic mode control register. */\r
-#define BMCR_RESV 0x007f /* Unused... */\r
-#define BMCR_CTST 0x0080 /* Collision test */\r
-#define BMCR_FULLDPLX 0x0100 /* Full duplex */\r
-#define BMCR_ANRESTART 0x0200 /* Auto negotiation restart */\r
-#define BMCR_ISOLATE 0x0400 /* Disconnect DP83840 from MII */\r
-#define BMCR_PDOWN 0x0800 /* Powerdown the DP83840 */\r
-#define BMCR_ANENABLE 0x1000 /* Enable auto negotiation */\r
-#define BMCR_SPEED100 0x2000 /* Select 100Mbps */\r
-#define BMCR_LOOPBACK 0x4000 /* TXD loopback bits */\r
-#define BMCR_RESET 0x8000 /* Reset the DP83840 */\r
-\r
-/* Basic mode status register. */\r
-#define BMSR_ERCAP 0x0001 /* Ext-reg capability */\r
-#define BMSR_JCD 0x0002 /* Jabber detected */\r
-#define BMSR_LSTATUS 0x0004 /* Link status */\r
-#define BMSR_ANEGCAPABLE 0x0008 /* Able to do auto-negotiation */\r
-#define BMSR_RFAULT 0x0010 /* Remote fault detected */\r
-#define BMSR_ANEGCOMPLETE 0x0020 /* Auto-negotiation complete */\r
-#define BMSR_RESV 0x07c0 /* Unused... */\r
-#define BMSR_10HALF 0x0800 /* Can do 10mbps, half-duplex */\r
-#define BMSR_10FULL 0x1000 /* Can do 10mbps, full-duplex */\r
-#define BMSR_100HALF 0x2000 /* Can do 100mbps, half-duplex */\r
-#define BMSR_100FULL 0x4000 /* Can do 100mbps, full-duplex */\r
-#define BMSR_100BASE4 0x8000 /* Can do 100mbps, 4k packets */\r
-\r
-/* Advertisement control register. */\r
-#define ADVERTISE_SLCT 0x001f /* Selector bits */\r
-#define ADVERTISE_CSMA 0x0001 /* Only selector supported */\r
-#define ADVERTISE_10HALF 0x0020 /* Try for 10mbps half-duplex */\r
-#define ADVERTISE_10FULL 0x0040 /* Try for 10mbps full-duplex */\r
-#define ADVERTISE_100HALF 0x0080 /* Try for 100mbps half-duplex */\r
-#define ADVERTISE_100FULL 0x0100 /* Try for 100mbps full-duplex */\r
-#define ADVERTISE_100BASE4 0x0200 /* Try for 100mbps 4k packets */\r
-#define ADVERTISE_RESV 0x1c00 /* Unused... */\r
-#define ADVERTISE_RFAULT 0x2000 /* Say we can detect faults */\r
-#define ADVERTISE_LPACK 0x4000 /* Ack link partners response */\r
-#define ADVERTISE_NPAGE 0x8000 /* Next page bit */\r
-\r
-#define ADVERTISE_FULL (ADVERTISE_100FULL | ADVERTISE_10FULL | \\r
- ADVERTISE_CSMA)\r
-#define ADVERTISE_ALL (ADVERTISE_10HALF | ADVERTISE_10FULL | \\r
- ADVERTISE_100HALF | ADVERTISE_100FULL)\r
-\r
-/* Link partner ability register. */\r
-#define LPA_SLCT 0x001f /* Same as advertise selector */\r
-#define LPA_10HALF 0x0020 /* Can do 10mbps half-duplex */\r
-#define LPA_10FULL 0x0040 /* Can do 10mbps full-duplex */\r
-#define LPA_100HALF 0x0080 /* Can do 100mbps half-duplex */\r
-#define LPA_100FULL 0x0100 /* Can do 100mbps full-duplex */\r
-#define LPA_100BASE4 0x0200 /* Can do 100mbps 4k packets */\r
-#define LPA_RESV 0x1c00 /* Unused... */\r
-#define LPA_RFAULT 0x2000 /* Link partner faulted */\r
-#define LPA_LPACK 0x4000 /* Link partner acked us */\r
-#define LPA_NPAGE 0x8000 /* Next page bit */\r
-\r
-#define LPA_DUPLEX (LPA_10FULL | LPA_100FULL)\r
-#define LPA_100 (LPA_100FULL | LPA_100HALF | LPA_100BASE4)\r
-\r
-/* Expansion register for auto-negotiation. */\r
-#define EXPANSION_NWAY 0x0001 /* Can do N-way auto-nego */\r
-#define EXPANSION_LCWP 0x0002 /* Got new RX page code word */\r
-#define EXPANSION_ENABLENPAGE 0x0004 /* This enables npage words */\r
-#define EXPANSION_NPCAPABLE 0x0008 /* Link partner supports npage */\r
-#define EXPANSION_MFAULTS 0x0010 /* Multiple faults detected */\r
-#define EXPANSION_RESV 0xffe0 /* Unused... */\r
-\r
-/* N-way test register. */\r
-#define NWAYTEST_RESV1 0x00ff /* Unused... */\r
-#define NWAYTEST_LOOPBACK 0x0100 /* Enable loopback for N-way */\r
-#define NWAYTEST_RESV2 0xfe00 /* Unused... */\r
-\r
-#define SPEED_10 10\r
-#define SPEED_100 100\r
-\r
-/* Duplex, half or full. */\r
-#define DUPLEX_HALF 0x00\r
-#define DUPLEX_FULL 0x01\r
-\r
-/* PHY ID */\r
-#define MII_DM9161_ID 0x0181b8a0\r
-#define MII_AM79C875_ID 0x00225540 /* 0x00225541 */\r
-\r
-#define AT91C_PHY_ADDR 31\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/*\r
- * Creates all the application tasks, then starts the scheduler.\r
- *\r
- * A task is also created called "uIP". This executes the uIP stack and small\r
- * WEB server sample. All the other tasks are from the set of standard\r
- * demo tasks. The WEB documentation provides more details of the standard\r
- * demo application tasks.\r
- *\r
- * Main.c also creates a task called "Check". This only executes every three\r
- * seconds but has the highest priority so is guaranteed to get processor time.\r
- * Its main function is to check the status of all the other demo application\r
- * tasks. LED mainCHECK_LED is toggled every three seconds by the check task\r
- * should no error conditions be detected in any of the standard demo tasks.\r
- * The toggle rate increasing to 500ms indicates that at least one error has\r
- * been detected.\r
- */\r
-\r
-\r
-/* Standard includes. */\r
-#include <stdlib.h>\r
-#include <string.h>\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/* Demo application includes. */\r
-#include "partest.h"\r
-#include "PollQ.h"\r
-#include "dynamic.h"\r
-#include "semtest.h"\r
-#include "flash.h"\r
-#include "integer.h"\r
-#include "flop.h"\r
-#include "BlockQ.h"\r
-#include "death.h"\r
-#include "uip_task.h"\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Priorities/stacks for the demo application tasks. */\r
-#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 )\r
-#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainUIP_PRIORITY ( tskIDLE_PRIORITY + 3 )\r
-#define mainFLASH_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
-#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainDEATH_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
-#define mainUIP_TASK_STACK_SIZE ( 250 )\r
-\r
-/* The rate at which the on board LED will toggle when there is/is not an\r
-error. */\r
-#define mainNO_ERROR_FLASH_PERIOD ( ( TickType_t ) 3000 / portTICK_PERIOD_MS )\r
-#define mainERROR_FLASH_PERIOD ( ( TickType_t ) 500 / portTICK_PERIOD_MS )\r
-\r
-/* The LED used by the check task to indicate the system status. */\r
-#define mainCHECK_LED ( 3 )\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * Checks that all the demo application tasks are still executing without error\r
- * - as described at the top of the file.\r
- */\r
-static long prvCheckOtherTasksAreStillRunning( void );\r
-\r
-/*\r
- * The task that executes at the highest priority and calls\r
- * prvCheckOtherTasksAreStillRunning(). See the description at the top\r
- * of the file.\r
- */\r
-static void vErrorChecks( void *pvParameters );\r
-\r
-/*\r
- * Configure the processor for use with the Atmel demo board. This is very\r
- * minimal as most of the setup is performed in the startup code.\r
- */\r
-static void prvSetupHardware( void );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * Starts all the other tasks, then starts the scheduler.\r
- */\r
-int main( void )\r
-{\r
- /* Configure the processor. */\r
- prvSetupHardware();\r
-\r
- /* Setup the port used to flash the LED's. */\r
- vParTestInitialise();\r
-\r
- /* Start the task that handles the TCP/IP and WEB server functionality. */\r
- xTaskCreate( vuIP_TASK, "uIP", mainUIP_TASK_STACK_SIZE, NULL, mainUIP_PRIORITY, NULL );\r
- \r
- /* Start the demo/test application tasks. These are created in addition\r
- to the TCP/IP task for demonstration and test purposes. */\r
- vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );\r
- vStartDynamicPriorityTasks();\r
- vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
- vStartLEDFlashTasks( mainFLASH_PRIORITY );\r
- vStartIntegerMathTasks( tskIDLE_PRIORITY );\r
- vStartMathTasks( tskIDLE_PRIORITY );\r
- vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY );\r
-\r
- /* Start the check task - which is defined in this file. */ \r
- xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
-\r
- /* Must be last to get created. */\r
- vCreateSuicidalTasks( mainDEATH_PRIORITY );\r
-\r
- /* Now all the tasks have been started - start the scheduler. */\r
- vTaskStartScheduler();\r
-\r
- /* Should never reach here because the tasks should now be executing! */\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupHardware( void )\r
-{\r
- /* When using the JTAG debugger the hardware is not always initialised to\r
- the correct default state. This line just ensures that this does not\r
- cause all interrupts to be masked at the start. */\r
- AT91C_BASE_AIC->AIC_EOICR = 0;\r
- \r
- /* Most setup is performed by the low level init function called from the\r
- startup asm file.\r
-\r
- Configure the PIO Lines corresponding to LED1 to LED4 to be outputs as\r
- well as the UART Tx line. */\r
- AT91F_PIO_CfgOutput( AT91C_BASE_PIOB, LED_MASK );\r
-\r
- /* Enable the peripheral clock. */\r
- AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA );\r
- AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_PIOB ) ;\r
- AT91F_PMC_EnablePeriphClock( AT91C_BASE_PMC, 1 << AT91C_ID_EMAC ) ;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vErrorChecks( void *pvParameters )\r
-{\r
-TickType_t xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;\r
-TickType_t xLastWakeTime;\r
-\r
- /* Initialise xLastWakeTime to ensure the first call to vTaskDelayUntil()\r
- functions correctly. */\r
- xLastWakeTime = xTaskGetTickCount();\r
-\r
- /* Cycle for ever, delaying then checking all the other tasks are still\r
- operating without error. If an error is detected then the delay period\r
- is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so\r
- the Check LED flash rate will increase. */\r
- for( ;; )\r
- {\r
- /* Delay until it is time to execute again. The delay period is\r
- shorter following an error. */\r
- vTaskDelayUntil( &xLastWakeTime, xDelayPeriod );\r
- \r
- /* Check all the standard demo application tasks are executing without\r
- error. */\r
- if( prvCheckOtherTasksAreStillRunning() != pdPASS )\r
- {\r
- /* An error has been detected in one of the tasks - flash faster. */\r
- xDelayPeriod = mainERROR_FLASH_PERIOD;\r
- }\r
-\r
- vParTestToggleLED( mainCHECK_LED );\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static long prvCheckOtherTasksAreStillRunning( void )\r
-{\r
-long lReturn = ( long ) pdPASS;\r
-\r
-\r
- /* Check all the demo tasks (other than the flash tasks) to ensure\r
- that they are all still running, and that none of them have detected\r
- an error. */\r
-\r
- if( xArePollingQueuesStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xAreIntegerMathsTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xAreMathsTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xAreBlockingQueuesStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xIsCreateTaskStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- return lReturn;\r
-}\r
-\r
-\r
-\r
+++ /dev/null
-// ---------------------------------------------------------\r
-// Microcontroller Software Support - ROUSSET -\r
-// ---------------------------------------------------------\r
-// The software is delivered "AS IS" without warranty or \r
-// condition of any kind, either express, implied or \r
-// statutory. This includes without limitation any warranty \r
-// or condition with respect to merchantability or fitness \r
-// for any particular purpose, or against the infringements of\r
-// intellectual property rights of others.\r
-// ---------------------------------------------------------\r
-// File: SAM7.mac\r
-//\r
-// 1.0 08/Mar/04 JPP : Creation\r
-// 1.1 23/Mar/05 JPP : Change Variable name\r
-//\r
-// $Revision: 1.5 $\r
-//\r
-// ---------------------------------------------------------\r
-\r
-__var __mac_i;\r
-__var __mac_pt;\r
-\r
-execUserReset()\r
-{\r
- AIC();\r
-//* Watchdog Disable\r
- Watchdog();\r
-}\r
-\r
-execUserPreload()\r
-{\r
-//* Set the RAM memory at 0x0020 0000 for code AT 0 flash area \r
- CheckRemap();\r
-//* Get the Chip ID (AT91C_DBGU_C1R & AT91C_DBGU_C2R\r
- __mac_i =__readMemory32(0xFFFFF240,"Memory");\r
- __message " ---------------------------------------- Chip ID 0x",__mac_i:%X; \r
- __mac_i =__readMemory32(0xFFFFF244,"Memory");\r
- __message " ---------------------------------------- Extention 0x",__mac_i:%X; \r
-//* Get the chip status\r
-\r
-//* Init AIC\r
- AIC();\r
-//* Watchdog Disable\r
- Watchdog();\r
-\r
-}\r
-\r
-\r
-//-----------------------------------------------------------------------------\r
-// Watchdog\r
-//-------------------------------\r
-// Normally, the Watchdog is enable at the reset for load it's preferable to\r
-// Disable.\r
-//-----------------------------------------------------------------------------\r
-Watchdog()\r
-{\r
-//* Watchdog Disable\r
-// AT91C_BASE_WDTC->WDTC_WDMR= AT91C_WDTC_WDDIS;\r
- __writeMemory32(0x00008000,0xFFFFFD44,"Memory");\r
- __message "------------------------------- Watchdog Disable ----------------------------------------"; \r
-}\r
-\r
-\r
-//-----------------------------------------------------------------------------\r
-// Check Remap\r
-//-------------\r
-//-----------------------------------------------------------------------------\r
-CheckRemap()\r
-{\r
-//* Read the value at 0x0\r
- __mac_i =__readMemory32(0x00000000,"Memory");\r
- __mac_i =__mac_i+1;\r
- __writeMemory32(__mac_i,0x00,"Memory");\r
- __mac_pt =__readMemory32(0x00000000,"Memory");\r
- \r
- if (__mac_i == __mac_pt) \r
- {\r
- __message "------------------------------- The Remap is done ----------------------------------------"; \r
-//* Toggel RESET The remap\r
- __writeMemory32(0x00000001,0xFFFFFF00,"Memory");\r
- \r
- } else { \r
- __message "------------------------------- The Remap is NOT -----------------------------------------"; \r
- }\r
-\r
-}\r
-\r
-\r
-execUserSetup()\r
-{\r
- ini();\r
- __message "-------------------------------Set PC ----------------------------------------"; \r
- __writeMemory32(0x00000000,0xB4,"Register");\r
-}\r
-\r
-//-----------------------------------------------------------------------------\r
-// Reset the Interrupt Controller\r
-//-------------------------------\r
-// Normally, the code is executed only if a reset has been actually performed.\r
-// So, the AIC initialization resumes at setting up the default vectors.\r
-//-----------------------------------------------------------------------------\r
-AIC()\r
-{\r
-// Mask All interrupt pAic->AIC_IDCR = 0xFFFFFFFF;\r
- __writeMemory32(0xffffffff,0xFFFFF124,"Memory");\r
- __writeMemory32(0xffffffff,0xFFFFF128,"Memory");\r
-// disable peripheral clock Peripheral Clock Disable Register\r
- __writeMemory32(0xffffffff,0xFFFFFC14,"Memory");\r
-\r
-// #define AT91C_TC0_SR ((AT91_REG *) 0xFFFA0020) // (TC0) Status Register\r
-// #define AT91C_TC1_SR ((AT91_REG *) 0xFFFA0060) // (TC1) Status Register\r
-// #define AT91C_TC2_SR ((AT91_REG *) 0xFFFA00A0) // (TC2) Status Register\r
- __readMemory32(0xFFFA0020,"Memory");\r
- __readMemory32(0xFFFA0060,"Memory");\r
- __readMemory32(0xFFFA00A0,"Memory");\r
-\r
- for (__mac_i=0;__mac_i < 8; __mac_i++)\r
- {\r
- // AT91C_BASE_AIC->AIC_EOICR\r
- __mac_pt = __readMemory32(0xFFFFF130,"Memory");\r
- \r
- }\r
- __message "------------------------------- AIC 2 INIT ---------------------------------------------"; \r
-}\r
-\r
-ini()\r
-{\r
-__writeMemory32(0x0,0x00,"Register");\r
-__writeMemory32(0x0,0x04,"Register");\r
-__writeMemory32(0x0,0x08,"Register");\r
-__writeMemory32(0x0,0x0C,"Register");\r
-__writeMemory32(0x0,0x10,"Register");\r
-__writeMemory32(0x0,0x14,"Register");\r
-__writeMemory32(0x0,0x18,"Register");\r
-__writeMemory32(0x0,0x1C,"Register");\r
-__writeMemory32(0x0,0x20,"Register");\r
-__writeMemory32(0x0,0x24,"Register");\r
-__writeMemory32(0x0,0x28,"Register");\r
-__writeMemory32(0x0,0x2C,"Register");\r
-__writeMemory32(0x0,0x30,"Register");\r
-__writeMemory32(0x0,0x34,"Register");\r
-__writeMemory32(0x0,0x38,"Register");\r
-\r
-// Set CPSR\r
-__writeMemory32(0x0D3,0x98,"Register");\r
-\r
-\r
-}\r
-\r
-RG()\r
-{\r
-\r
-__mac_i =__readMemory32(0x00,"Register"); __message "R00 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x04,"Register"); __message "R01 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x08,"Register"); __message "R02 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x0C,"Register"); __message "R03 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x10,"Register"); __message "R04 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x14,"Register"); __message "R05 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x18,"Register"); __message "R06 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x1C,"Register"); __message "R07 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x20,"Register"); __message "R08 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x24,"Register"); __message "R09 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x28,"Register"); __message "R10 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x2C,"Register"); __message "R11 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x30,"Register"); __message "R12 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x34,"Register"); __message "R13 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x38,"Register"); __message "R14 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x3C,"Register"); __message "R13 SVC 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x40,"Register"); __message "R14 SVC 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x44,"Register"); __message "R13 ABT 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x48,"Register"); __message "R14 ABT 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x4C,"Register"); __message "R13 UND 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x50,"Register"); __message "R14 UND 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x54,"Register"); __message "R13 IRQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x58,"Register"); __message "R14 IRQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x5C,"Register"); __message "R08 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x60,"Register"); __message "R09 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x64,"Register"); __message "R10 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x68,"Register"); __message "R11 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x6C,"Register"); __message "R12 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x70,"Register"); __message "R13 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x74,"Register"); __message "R14 FIQ0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x98,"Register"); __message "CPSR ",__mac_i:%X; \r
-__mac_i =__readMemory32(0x94,"Register"); __message "SPSR ",__mac_i:%X; \r
-__mac_i =__readMemory32(0x9C,"Register"); __message "SPSR ABT ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xA0,"Register"); __message "SPSR ABT ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xA4,"Register"); __message "SPSR UND ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xA8,"Register"); __message "SPSR IRQ ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xAC,"Register"); __message "SPSR FIQ ",__mac_i:%X; \r
-\r
-__mac_i =__readMemory32(0xB4,"Register"); __message "PC 0x",__mac_i:%X; \r
-\r
-}\r
-\r
+++ /dev/null
-// ---------------------------------------------------------\r
-// ATMEL Microcontroller Software Support - ROUSSET -\r
-// ---------------------------------------------------------\r
-// The software is delivered "AS IS" without warranty or \r
-// condition of any kind, either express, implied or \r
-// statutory. This includes without limitation any warranty \r
-// or condition with respect to merchantability or fitness \r
-// for any particular purpose, or against the infringements of\r
-// intellectual property rights of others.\r
-// ---------------------------------------------------------\r
-// File: SAM7_RAM.mac\r
-//\r
-// 1.0 08/Mar/05 JPP : Creation\r
-// 1.1 23/Mar/05 JPP : Change Variable name\r
-//\r
-// $Revision: 1.6 $\r
-//\r
-// ---------------------------------------------------------\r
-\r
-__var __mac_i;\r
-__var __mac_pt;\r
-__var __mac_mem;\r
-execUserReset()\r
-{\r
- CheckNoRemap();\r
- ini();\r
- AIC();\r
- __message "-------------------------------Set PC Reset ----------------------------------"; \r
- __writeMemory32(0x00000000,0xB4,"Register");\r
-}\r
-\r
-execUserPreload()\r
-{\r
-//* __message "-------------------------------Set CPSR ----------------------------------"; \r
- __writeMemory32(0xD3,0x98,"Register"); \r
- __writeMemory32(0xffffffff,0xFFFFFC14,"Memory");\r
- PllSetting();\r
- //* Init AIC\r
- AIC();\r
-\r
-//* Set the RAM memory at 0x0020 0000 for code AT 0 flash area \r
- CheckNoRemap();\r
-//* Get the Chip ID (AT91C_DBGU_C1R & AT91C_DBGU_C2R\r
- __mac_i=__readMemory32(0xFFFFF240,"Memory");\r
- __message " ---------------------------------------- Chip ID 0x",__mac_i:%X; \r
- __mac_i=__readMemory32(0xFFFFF244,"Memory");\r
- __message " ---------------------------------------- Extention 0x",__mac_i:%X; \r
- __mac_i=__readMemory32(0xFFFFFF6C,"Memory");\r
- __message " ---------------------------------------- Flash Version 0x",__mac_i:%X; \r
-\r
-//* Watchdog Disable\r
- Watchdog();\r
-//* RG();\r
-}\r
-//-----------------------------------------------------------------------------\r
-// PllSetting\r
-//-------------------------------\r
-// Set PLL\r
-//-----------------------------------------------------------------------------\r
-PllSetting()\r
-{\r
-// -1- Enabling the Main Oscillator:\r
-//*#define AT91C_PMC_MOR ((AT91_REG *) 0xFFFFFC20) // (PMC) Main Oscillator Register\r
-//*#define AT91C_PMC_PLLR ((AT91_REG *) 0xFFFFFC2C) // (PMC) PLL Register\r
-//*#define AT91C_PMC_MCKR ((AT91_REG *) 0xFFFFFC30) // (PMC) Master Clock Register\r
-\r
-//*pPMC->PMC_MOR = (( AT91C_CKGR_OSCOUNT & (0x06 <<8) | //0x0000 0600\r
-// AT91C_CKGR_MOSCEN )); //0x0000 0001 \r
-__writeMemory32(0x00000601,0xFFFFFC20,"Memory");\r
-\r
-// -2- Wait\r
-// -3- Setting PLL and divider:\r
-// - div by 5 Fin = 3,6864 =(18,432 / 5)\r
-// - Mul 25+1: Fout = 95,8464 =(3,6864 *26)\r
-// for 96 MHz the erroe is 0.16%\r
-// Field out NOT USED = 0\r
-// PLLCOUNT pll startup time esrtimate at : 0.844 ms\r
-// PLLCOUNT 28 = 0.000844 /(1/32768)\r
-// pPMC->PMC_PLLR = ((AT91C_CKGR_DIV & 0x05) | //0x0000 0005\r
-// (AT91C_CKGR_PLLCOUNT & (28<<8)) //0x0000 1C00\r
-// (AT91C_CKGR_MUL & (25<<16))); //0x0019 0000 \r
-__writeMemory32(0x00191C05,0xFFFFFC2C,"Memory");\r
-// -2- Wait\r
-// -5- Selection of Master Clock and Processor Clock\r
-// select the PLL clock divided by 2\r
-// pPMC->PMC_MCKR = AT91C_PMC_CSS_PLL_CLK | //0x0000 0003\r
-// AT91C_PMC_PRES_CLK_2 ; //0x0000 0004\r
-__writeMemory32(0x00000007,0xFFFFFC30,"Memory"); \r
- \r
-\r
- __message "------------------------------- PLL Enable ----------------------------------------"; \r
-}\r
-\r
-//-----------------------------------------------------------------------------\r
-// Watchdog\r
-//-------------------------------\r
-// Normally, the Watchdog is enable at the reset for load it's preferable to\r
-// Disable.\r
-//-----------------------------------------------------------------------------\r
-Watchdog()\r
-{\r
-//* Watchdog Disable\r
-// AT91C_BASE_WDTC->WDTC_WDMR= AT91C_WDTC_WDDIS;\r
- __writeMemory32(0x00008000,0xFFFFFD44,"Memory");\r
- __message "------------------------------- Watchdog Disable ----------------------------------------"; \r
-}\r
-\r
-CheckNoRemap()\r
-{\r
-//* Read the value at 0x0\r
- __mac_i =__readMemory32(0x00000000,"Memory");\r
- __mac_mem = __mac_i;\r
- __mac_i=__mac_i+1;\r
- __writeMemory32(__mac_i,0x00,"Memory");\r
- __mac_pt=__readMemory32(0x00000000,"Memory");\r
- \r
- if (__mac_i == __mac_pt) \r
- {\r
- __message "------------------------------- The Remap is done ----------------------------------------"; \r
- __writeMemory32( __mac_mem,0x00000000,"Memory");\r
- \r
- } else { \r
- __message "------------------------------- The Remap is NOT -----------------------------------------"; \r
-//* Toggel RESET The remap\r
- __writeMemory32(0x00000001,0xFFFFFF00,"Memory");\r
- }\r
-\r
-}\r
-\r
-//-----------------------------------------------------------------------------\r
-// Reset the Interrupt Controller\r
-//-------------------------------\r
-// Normally, the code is executed only if a reset has been actually performed.\r
-// So, the AIC initialization resumes at setting up the default vectors.\r
-//-----------------------------------------------------------------------------\r
-AIC()\r
-{\r
-// Mask All interrupt pAic->AIC_IDCR = 0xFFFFFFFF;\r
- __writeMemory32(0xffffffff,0xFFFFF124,"Memory");\r
- __writeMemory32(0xffffffff,0xFFFFF128,"Memory");\r
-// disable peripheral clock Peripheral Clock Disable Register\r
- __writeMemory32(0xffffffff,0xFFFFFC14,"Memory");\r
-\r
-// #define AT91C_TC0_SR ((AT91_REG *) 0xFFFA0020) // (TC0) Status Register\r
-// #define AT91C_TC1_SR ((AT91_REG *) 0xFFFA0060) // (TC1) Status Register\r
-// #define AT91C_TC2_SR ((AT91_REG *) 0xFFFA00A0) // (TC2) Status Register\r
- __readMemory32(0xFFFA0020,"Memory");\r
- __readMemory32(0xFFFA0060,"Memory");\r
- __readMemory32(0xFFFA00A0,"Memory");\r
- for (__mac_i=0;__mac_i < 8; __mac_i++)\r
- {\r
- // AT91C_BASE_AIC->AIC_EOICR\r
- __mac_pt = __readMemory32(0xFFFFF130,"Memory");\r
- \r
- }\r
- __message "------------------------------- AIC 2 INIT ---------------------------------------------"; \r
-}\r
-\r
-ini()\r
-{\r
-__writeMemory32(0x0,0x00,"Register");\r
-__writeMemory32(0x0,0x04,"Register");\r
-__writeMemory32(0x0,0x08,"Register");\r
-__writeMemory32(0x0,0x0C,"Register");\r
-__writeMemory32(0x0,0x10,"Register");\r
-__writeMemory32(0x0,0x14,"Register");\r
-__writeMemory32(0x0,0x18,"Register");\r
-__writeMemory32(0x0,0x1C,"Register");\r
-__writeMemory32(0x0,0x20,"Register");\r
-__writeMemory32(0x0,0x24,"Register");\r
-__writeMemory32(0x0,0x28,"Register");\r
-__writeMemory32(0x0,0x2C,"Register");\r
-__writeMemory32(0x0,0x30,"Register");\r
-__writeMemory32(0x0,0x34,"Register");\r
-__writeMemory32(0x0,0x38,"Register");\r
-\r
-// Set CPSR\r
-__writeMemory32(0x0D3,0x98,"Register");\r
-\r
-\r
-}\r
-\r
-RG()\r
-{\r
-\r
-__mac_i =__readMemory32(0x00,"Register"); __message "R00 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x04,"Register"); __message "R01 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x08,"Register"); __message "R02 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x0C,"Register"); __message "R03 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x10,"Register"); __message "R04 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x14,"Register"); __message "R05 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x18,"Register"); __message "R06 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x1C,"Register"); __message "R07 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x20,"Register"); __message "R08 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x24,"Register"); __message "R09 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x28,"Register"); __message "R10 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x2C,"Register"); __message "R11 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x30,"Register"); __message "R12 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x34,"Register"); __message "R13 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x38,"Register"); __message "R14 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x3C,"Register"); __message "R13 SVC 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x40,"Register"); __message "R14 SVC 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x44,"Register"); __message "R13 ABT 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x48,"Register"); __message "R14 ABT 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x4C,"Register"); __message "R13 UND 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x50,"Register"); __message "R14 UND 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x54,"Register"); __message "R13 IRQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x58,"Register"); __message "R14 IRQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x5C,"Register"); __message "R08 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x60,"Register"); __message "R09 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x64,"Register"); __message "R10 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x68,"Register"); __message "R11 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x6C,"Register"); __message "R12 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x70,"Register"); __message "R13 FIQ 0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x74,"Register"); __message "R14 FIQ0x",__mac_i:%X; \r
-__mac_i =__readMemory32(0x98,"Register"); __message "CPSR ",__mac_i:%X; \r
-__mac_i =__readMemory32(0x94,"Register"); __message "SPSR ",__mac_i:%X; \r
-__mac_i =__readMemory32(0x9C,"Register"); __message "SPSR ABT ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xA0,"Register"); __message "SPSR ABT ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xA4,"Register"); __message "SPSR UND ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xA8,"Register"); __message "SPSR IRQ ",__mac_i:%X; \r
-__mac_i =__readMemory32(0xAC,"Register"); __message "SPSR FIQ ",__mac_i:%X; \r
-\r
-__mac_i =__readMemory32(0xB4,"Register"); __message "PC 0x",__mac_i:%X; \r
-\r
-}\r
-\r
+++ /dev/null
-/*###ICF### Section handled by ICF editor, don't touch! ****/\r
-/*-Editor annotation file-*/\r
-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\a_v1_0.xml" */\r
-/*-Specials-*/\r
-define symbol __ICFEDIT_intvec_start__ = 0x00100000;\r
-/*-Memory Regions-*/\r
-define symbol __ICFEDIT_region_ROM_start__ = 0x00100040;\r
-define symbol __ICFEDIT_region_ROM_end__ = 0x0013FFFF;\r
-define symbol __ICFEDIT_region_RAM_start__ = 0x00200000;\r
-define symbol __ICFEDIT_region_RAM_end__ = 0x0020FFFF;\r
-/*-Sizes-*/\r
-define symbol __ICFEDIT_size_cstack__ = 0x400;\r
-define symbol __ICFEDIT_size_svcstack__ = 0x100;\r
-define symbol __ICFEDIT_size_irqstack__ = 0x100;\r
-define symbol __ICFEDIT_size_fiqstack__ = 0x0;\r
-define symbol __ICFEDIT_size_undstack__ = 0x0;\r
-define symbol __ICFEDIT_size_abtstack__ = 0x0;\r
-define symbol __ICFEDIT_size_heap__ = 0x0;\r
-/**** End of ICF editor section. ###ICF###*/\r
-\r
-\r
-define memory mem with size = 4G;\r
-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];\r
-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];\r
-\r
-define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };\r
-define block SVC_STACK with alignment = 8, size = __ICFEDIT_size_svcstack__ { };\r
-define block IRQ_STACK with alignment = 8, size = __ICFEDIT_size_irqstack__ { };\r
-define block FIQ_STACK with alignment = 8, size = __ICFEDIT_size_fiqstack__ { };\r
-define block UND_STACK with alignment = 8, size = __ICFEDIT_size_undstack__ { };\r
-define block ABT_STACK with alignment = 8, size = __ICFEDIT_size_abtstack__ { };\r
-define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };\r
-\r
-initialize by copy { readwrite };\r
-do not initialize { section .noinit };\r
-\r
-place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };\r
-\r
-place in ROM_region { readonly };\r
-place in RAM_region { readwrite,\r
- block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK,\r
- block UND_STACK, block ABT_STACK, block HEAP };\r
-\r
+++ /dev/null
-// ----------------------------------------------------------------------------\r
-// ATMEL Microcontroller Software Support - ROUSSET -\r
-// ----------------------------------------------------------------------------\r
-// DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR\r
-// IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\r
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE\r
-// DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT,\r
-// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,\r
-// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\r
-// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,\r
-// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
-// ----------------------------------------------------------------------------\r
-// File Name : SAM7_FLASH.mac\r
-// Object : Generic Macro File for IAR\r
-// 1.0 17/Aug/05 FBr : Creation\r
-// ----------------------------------------------------------------------------\r
-\r
-/*********************************************************************\r
-*\r
-* _InitRSTC()\r
-*\r
-* Function description\r
-* Initializes the RSTC (Reset controller).\r
-* This makes sense since the default is to not allow user resets, which makes it impossible to\r
-* apply a second RESET via J-Link\r
-*/\r
-_InitRSTC() {\r
- __writeMemory32(0xA5000001, 0xFFFFFD08,"Memory"); // Allow user reset\r
-}\r
-\r
-/*********************************************************************\r
-*\r
-* _InitPLL()\r
-* Function description\r
-* Initializes the PMC.\r
-* 1. Enable the Main Oscillator\r
-* 2. Configure PLL to 96MHz\r
-* 3. Switch Master Clock (MCK) on PLL/2 = 48MHz\r
-*/\r
-_InitPLL() {\r
-\r
- __message "Enable Main Oscillator";\r
- __writeMemory32(0x00000601,0xFFFFFc20,"Memory"); // MOSC\r
- while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x1) );\r
-\r
- __message "Set PLL to 96MHz";\r
- __writeMemory32(0x10191c05,0xFFFFFc2c,"Memory"); // LOCK\r
- while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x4) );\r
-\r
- __message "Set Master Clock to 48MHz";\r
- __writeMemory32(0x00000004,0xFFFFFc30,"Memory"); // MCKRDY\r
- while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x8) );\r
- __writeMemory32(0x00000007,0xFFFFFc30,"Memory"); // MCKRDY\r
- while( !(__readMemory32(0xFFFFFc68,"Memory") & 0x8) );\r
-\r
- // Set 1 WS for Flash accesses on each EFC \r
- __writeMemory32(0x00480100,0xFFFFFF60,"Memory");\r
- __writeMemory32(0x00480100,0xFFFFFF70,"Memory");\r
-}\r
-\r
-/*********************************************************************\r
-*\r
-* execUserReset() : JTAG set initially to Full Speed\r
-*/\r
-execUserReset() {\r
- __message "execUserReset()";\r
- __hwReset(0); // Hardware Reset: CPU is automatically halted after the reset (JTAG is already configured to 32kHz)\r
- _InitPLL(); // Allow to debug at JTAG Full Speed\r
- _InitRSTC(); // Enable User Reset to allow execUserReset() execution\r
-}\r
-\r
+++ /dev/null
-<?xml version="1.0" encoding="iso-8859-1"?>\r
-\r
-<project>\r
- <fileVersion>2</fileVersion>\r
- <configuration>\r
- <name>Flash Debug</name>\r
- <toolchain>\r
- <name>ARM</name>\r
- </toolchain>\r
- <debug>1</debug>\r
- <settings>\r
- <name>C-SPY</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>21</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>CInput</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CEndian</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCVariant</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MacOverride</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacFile</name>\r
- <state>$PROJ_DIR$\resource\at91sam7x-ek-flash.mac</state>\r
- </option>\r
- <option>\r
- <name>MemOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MemFile</name>\r
- <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ioAT91SAM7X256.ddf</state>\r
- </option>\r
- <option>\r
- <name>RunToEnable</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>RunToName</name>\r
- <state>main</state>\r
- </option>\r
- <option>\r
- <name>CExtraOptionsCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CExtraOptions</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CFpuProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCDDFArgumentProducer</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCDownloadSuppressDownload</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCDownloadVerifyAll</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCProductVersion</name>\r
- <state>4.10B</state>\r
- </option>\r
- <option>\r
- <name>OCDynDriverList</name>\r
- <state>JLINK_ID</state>\r
- </option>\r
- <option>\r
- <name>OCLastSavedByProductVersion</name>\r
- <state>5.40.2.51615</state>\r
- </option>\r
- <option>\r
- <name>OCDownloadAttachToProgram</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>UseFlashLoader</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CLowLevel</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCBE8Slave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacFile2</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CDevice</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>FlashLoadersV3</name>\r
- <state>$TOOLKIT_DIR$\config\flashloader\Atmel\AT91SAM7X256-EK\at91sam7x256-flash.board</state>\r
- </option>\r
- <option>\r
- <name>OCImagesSuppressCheck1</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCImagesPath1</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCImagesSuppressCheck2</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCImagesPath2</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCImagesSuppressCheck3</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCImagesPath3</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OverrideDefFlashBoard</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ARMSIM_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>1</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>OCSimDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCSimEnablePSP</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCSimPspOverrideConfig</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCSimPspConfigFile</name>\r
- <state></state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ANGEL_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>CCAngelHeartbeat</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CAngelCommunication</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CAngelCommBaud</name>\r
- <version>0</version>\r
- <state>3</state>\r
- </option>\r
- <option>\r
- <name>CAngelCommPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ANGELTCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>DoAngelLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AngelLogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>GDBSERVER_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>TCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>DoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>LogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCJTagBreakpointRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagDoUpdateBreakpoints</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagUpdateBreakpoints</name>\r
- <state>main</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>IARROM_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>CRomLogFileCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRomLogFileEditB</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CRomCommunication</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRomCommPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRomCommBaud</name>\r
- <version>0</version>\r
- <state>7</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>JLINK_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>10</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>JLinkSpeed</name>\r
- <state>30</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkDoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkLogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkHWResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>JLinkInitialSpeed</name>\r
- <state>32</state>\r
- </option>\r
- <option>\r
- <name>CCDoJlinkMultiTarget</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCScanChainNonARMDevices</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkMultiTarget</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkIRLength</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkCommRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkTCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkSpeedRadioV2</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCUSBDevice</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchUndef</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchSWI</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchData</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchPrefetch</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchIRQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchFIQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkBreakpointRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkDoUpdateBreakpoints</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkUpdateBreakpoints</name>\r
- <state>main</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCJLinkAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkResetList</name>\r
- <version>0</version>\r
- <state>5</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>LMIFTDI_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>2</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>LmiftdiSpeed</name>\r
- <state>500</state>\r
- </option>\r
- <option>\r
- <name>CCLmiftdiDoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCLmiftdiLogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCLmiFtdiInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCLmiFtdiInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>MACRAIGOR_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>3</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>jtag</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>EmuSpeed</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>TCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>DoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>LogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>DoEmuMultiTarget</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>EmuMultiTarget</name>\r
- <state>0@ARM7TDMI</state>\r
- </option>\r
- <option>\r
- <name>EmuHWReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CEmuCommBaud</name>\r
- <version>0</version>\r
- <state>4</state>\r
- </option>\r
- <option>\r
- <name>CEmuCommPort</name>\r
- <version>0</version>\r
- <state>4</state>\r
- </option>\r
- <option>\r
- <name>jtago</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>UnusedAddr</name>\r
- <state>0x00800000</state>\r
- </option>\r
- <option>\r
- <name>CCMacraigorHWResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCJTagBreakpointRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagDoUpdateBreakpoints</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagUpdateBreakpoints</name>\r
- <state>main</state>\r
- </option>\r
- <option>\r
- <name>CCMacraigorInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCMacraigorInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>RDI_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>1</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>CRDIDriverDll</name>\r
- <state>Browse to your RDI driver</state>\r
- </option>\r
- <option>\r
- <name>CRDILogFileCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRDILogFileEdit</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCRDIHWReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchUndef</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchSWI</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchData</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchPrefetch</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchIRQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchFIQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDIUseETM</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>STLINK_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>THIRDPARTY_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>CThirdPartyDriverDll</name>\r
- <state>Browse to your third-party driver</state>\r
- </option>\r
- <option>\r
- <name>CThirdPartyLogFileCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CThirdPartyLogFileEditB</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <debuggerPlugins>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- </debuggerPlugins>\r
- </configuration>\r
- <configuration>\r
- <name>Flash Release</name>\r
- <toolchain>\r
- <name>ARM</name>\r
- </toolchain>\r
- <debug>0</debug>\r
- <settings>\r
- <name>C-SPY</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>21</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>CInput</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CEndian</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCVariant</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MacOverride</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacFile</name>\r
- <state>$PROJ_DIR$\resource\at91sam7x-ek-flash.mac</state>\r
- </option>\r
- <option>\r
- <name>MemOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MemFile</name>\r
- <state>$TOOLKIT_DIR$\CONFIG\debugger\Atmel\ioAT91SAM7X256.ddf</state>\r
- </option>\r
- <option>\r
- <name>RunToEnable</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>RunToName</name>\r
- <state>main</state>\r
- </option>\r
- <option>\r
- <name>CExtraOptionsCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CExtraOptions</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CFpuProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCDDFArgumentProducer</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCDownloadSuppressDownload</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCDownloadVerifyAll</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCProductVersion</name>\r
- <state>4.10B</state>\r
- </option>\r
- <option>\r
- <name>OCDynDriverList</name>\r
- <state>JLINK_ID</state>\r
- </option>\r
- <option>\r
- <name>OCLastSavedByProductVersion</name>\r
- <state>5.40.2.51615</state>\r
- </option>\r
- <option>\r
- <name>OCDownloadAttachToProgram</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>UseFlashLoader</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CLowLevel</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCBE8Slave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacFile2</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CDevice</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>FlashLoadersV3</name>\r
- <state>$TOOLKIT_DIR$\config\flashloader\Atmel\AT91SAM7X256-EK\at91sam7x256-flash.board</state>\r
- </option>\r
- <option>\r
- <name>OCImagesSuppressCheck1</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCImagesPath1</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCImagesSuppressCheck2</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCImagesPath2</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCImagesSuppressCheck3</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCImagesPath3</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OverrideDefFlashBoard</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ARMSIM_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>1</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>OCSimDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OCSimEnablePSP</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCSimPspOverrideConfig</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCSimPspConfigFile</name>\r
- <state></state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ANGEL_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>CCAngelHeartbeat</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CAngelCommunication</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CAngelCommBaud</name>\r
- <version>0</version>\r
- <state>3</state>\r
- </option>\r
- <option>\r
- <name>CAngelCommPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ANGELTCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>DoAngelLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AngelLogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>GDBSERVER_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>TCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>DoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>LogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCJTagBreakpointRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagDoUpdateBreakpoints</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagUpdateBreakpoints</name>\r
- <state>main</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>IARROM_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>CRomLogFileCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRomLogFileEditB</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CRomCommunication</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRomCommPort</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRomCommBaud</name>\r
- <version>0</version>\r
- <state>7</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>JLINK_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>10</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>JLinkSpeed</name>\r
- <state>30</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkDoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkLogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkHWResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>JLinkInitialSpeed</name>\r
- <state>32</state>\r
- </option>\r
- <option>\r
- <name>CCDoJlinkMultiTarget</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCScanChainNonARMDevices</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkMultiTarget</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkIRLength</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkCommRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkTCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkSpeedRadioV2</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCUSBDevice</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchUndef</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchSWI</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchData</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchPrefetch</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchIRQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchFIQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkBreakpointRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkDoUpdateBreakpoints</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkUpdateBreakpoints</name>\r
- <state>main</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCJLinkAttachSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkResetList</name>\r
- <version>0</version>\r
- <state>5</state>\r
- </option>\r
- <option>\r
- <name>CCJLinkInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>LMIFTDI_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>2</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>LmiftdiSpeed</name>\r
- <state>500</state>\r
- </option>\r
- <option>\r
- <name>CCLmiftdiDoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCLmiftdiLogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCLmiFtdiInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCLmiFtdiInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>MACRAIGOR_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>3</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>jtag</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>EmuSpeed</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>TCPIP</name>\r
- <state>aaa.bbb.ccc.ddd</state>\r
- </option>\r
- <option>\r
- <name>DoLogfile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>LogFile</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>DoEmuMultiTarget</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>EmuMultiTarget</name>\r
- <state>0@ARM7TDMI</state>\r
- </option>\r
- <option>\r
- <name>EmuHWReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CEmuCommBaud</name>\r
- <version>0</version>\r
- <state>4</state>\r
- </option>\r
- <option>\r
- <name>CEmuCommPort</name>\r
- <version>0</version>\r
- <state>4</state>\r
- </option>\r
- <option>\r
- <name>jtago</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>UnusedAddr</name>\r
- <state>0x00800000</state>\r
- </option>\r
- <option>\r
- <name>CCMacraigorHWResetDelay</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCJTagBreakpointRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagDoUpdateBreakpoints</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCJTagUpdateBreakpoints</name>\r
- <state>main</state>\r
- </option>\r
- <option>\r
- <name>CCMacraigorInterfaceRadio</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCMacraigorInterfaceCmdLine</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>RDI_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>1</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>CRDIDriverDll</name>\r
- <state>Browse to your RDI driver</state>\r
- </option>\r
- <option>\r
- <name>CRDILogFileCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CRDILogFileEdit</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>CCRDIHWReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchReset</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchUndef</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchSWI</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchData</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchPrefetch</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchIRQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDICatchFIQ</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCRDIUseETM</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>STLINK_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>THIRDPARTY_ID</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>CThirdPartyDriverDll</name>\r
- <state>Browse to your third-party driver</state>\r
- </option>\r
- <option>\r
- <name>CThirdPartyLogFileCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CThirdPartyLogFileEditB</name>\r
- <state>$TOOLKIT_DIR$\cspycomm.log</state>\r
- </option>\r
- <option>\r
- <name>OCDriverInfo</name>\r
- <state>1</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <debuggerPlugins>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\OSE\OseEpsilonPlugin.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\PowerPac\PowerPacRTOS.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>\r
- <loadFlag>0</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Profiling\Profiling.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\Stack\Stack.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- <plugin>\r
- <file>$EW_DIR$\common\plugins\SymList\SymList.ENU.ewplugin</file>\r
- <loadFlag>1</loadFlag>\r
- </plugin>\r
- </debuggerPlugins>\r
- </configuration>\r
-</project>\r
-\r
-\r
+++ /dev/null
-<?xml version="1.0" encoding="iso-8859-1"?>\r
-\r
-<project>\r
- <fileVersion>2</fileVersion>\r
- <configuration>\r
- <name>Flash Debug</name>\r
- <toolchain>\r
- <name>ARM</name>\r
- </toolchain>\r
- <debug>1</debug>\r
- <settings>\r
- <name>General</name>\r
- <archiveVersion>3</archiveVersion>\r
- <data>\r
- <version>17</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>ExePath</name>\r
- <state>Flash_Debug\Exe</state>\r
- </option>\r
- <option>\r
- <name>ObjPath</name>\r
- <state>Flash_Debug\Obj</state>\r
- </option>\r
- <option>\r
- <name>ListPath</name>\r
- <state>Flash_Debug\List</state>\r
- </option>\r
- <option>\r
- <name>Variant</name>\r
- <version>11</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GEndianMode</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>Input variant</name>\r
- <version>1</version>\r
- <state>3</state>\r
- </option>\r
- <option>\r
- <name>Input description</name>\r
- <state>No specifier n, no float nor long long, no scan set, no assignment suppressing.</state>\r
- </option>\r
- <option>\r
- <name>Output variant</name>\r
- <version>0</version>\r
- <state>2</state>\r
- </option>\r
- <option>\r
- <name>Output description</name>\r
- <state>No specifier a, A, no specifier n, no float nor long long.</state>\r
- </option>\r
- <option>\r
- <name>GOutputBinary</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>FPU</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OGCoreOrChip</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>GRuntimeLibSelect</name>\r
- <version>0</version>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>GRuntimeLibSelectSlave</name>\r
- <version>0</version>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>RTDescription</name>\r
- <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>\r
- </option>\r
- <option>\r
- <name>RTConfigPath</name>\r
- <state>$TOOLKIT_DIR$\INC\DLib_Config_Normal.h</state>\r
- </option>\r
- <option>\r
- <name>OGProductVersion</name>\r
- <state>4.11A</state>\r
- </option>\r
- <option>\r
- <name>OGLastSavedByProductVersion</name>\r
- <state>5.11.0.50615</state>\r
- </option>\r
- <option>\r
- <name>GeneralEnableMisra</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraVerbose</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OGChipSelectEditMenu</name>\r
- <state>AT91SAM7X256 Atmel AT91SAM7X256</state>\r
- </option>\r
- <option>\r
- <name>GenLowLevelInterface</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GEndianModeBE</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OGBufferedTerminalOutput</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GenStdoutInterface</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraRules98</name>\r
- <version>0</version>\r
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraVer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraRules04</name>\r
- <version>0</version>\r
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ICCARM</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>21</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>CCDefines</name>\r
- <state>SAM7_IAR</state>\r
- </option>\r
- <option>\r
- <name>CCPreprocFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPreprocComments</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPreprocLine</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListCFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListCMnemonics</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListCMessages</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListAssFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListAssSource</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCEnableRemarks</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCDiagSuppress</name>\r
- <state>pe815, pe191, pa082, pe167, pa050</state>\r
- </option>\r
- <option>\r
- <name>CCDiagRemark</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCDiagWarning</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCDiagError</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCObjPrefix</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCAllowList</name>\r
- <version>1</version>\r
- <state>0000000</state>\r
- </option>\r
- <option>\r
- <name>CCDebugInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IEndianMode</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IExtraOptionsCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IExtraOptions</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCLangConformance</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSignedPlainChar</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCRequirePrototypes</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCMultibyteSupport</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCDiagWarnAreErr</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCCompilerRuntimeInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IFpuProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OutputFile</name>\r
- <state>$FILE_BNAME$.o</state>\r
- </option>\r
- <option>\r
- <name>CCLangSelect</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCLibConfigHeader</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>PreInclude</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CompilerMisraOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCIncludePath2</name>\r
- <state>$PROJ_DIR$\..\..\source\portable\iar\AtmelSAM7S64</state>\r
- <state>$PROJ_DIR$\..\common\include</state>\r
- <state>$PROJ_DIR$\..\..\source\include</state>\r
- <state>$PROJ_DIR$\SrcIAR</state>\r
- <state>$PROJ_DIR$</state>\r
- <state>$PROJ_DIR$\uip</state>\r
- <state>$PROJ_DIR$\emac</state>\r
- </option>\r
- <option>\r
- <name>CCStdIncCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCStdIncludePath</name>\r
- <state>$TOOLKIT_DIR$\INC\</state>\r
- </option>\r
- <option>\r
- <name>CCCodeSection</name>\r
- <state>.text</state>\r
- </option>\r
- <option>\r
- <name>IInterwork2</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IProcessorMode2</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCOptLevel</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCOptStrategy</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCOptLevelSlave</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CompilerMisraRules98</name>\r
- <version>0</version>\r
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
- </option>\r
- <option>\r
- <name>CompilerMisraRules04</name>\r
- <version>0</version>\r
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>AARM</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>7</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>AObjPrefix</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AEndian</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>ACaseSensitivity</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacroChars</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AWarnEnable</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AWarnWhat</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AWarnOne</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>AWarnRange1</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>AWarnRange2</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>ADebug</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AltRegisterNames</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ADefines</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>AList</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AListHeader</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AListing</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>Includes</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MacDefs</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MacExps</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacExec</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OnlyAssed</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MultiLine</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>PageLengthCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>PageLength</name>\r
- <state>80</state>\r
- </option>\r
- <option>\r
- <name>TabSpacing</name>\r
- <state>8</state>\r
- </option>\r
- <option>\r
- <name>AXRef</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AXRefDefines</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AXRefInternal</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AXRefDual</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AFpuProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AOutputFile</name>\r
- <state>$FILE_BNAME$.o</state>\r
- </option>\r
- <option>\r
- <name>AMultibyteSupport</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ALimitErrorsCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ALimitErrorsEdit</name>\r
- <state>100</state>\r
- </option>\r
- <option>\r
- <name>AIgnoreStdInclude</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AStdIncludes</name>\r
- <state>$TOOLKIT_DIR$\INC\</state>\r
- </option>\r
- <option>\r
- <name>AUserIncludes</name>\r
- <state>$PROJ_DIR$\srciar\</state>\r
- <state>$PROJ_DIR$\..\..\include\</state>\r
- <state>$PROJ_DIR$\..\common\include</state>\r
- <state>$PROJ_DIR$\..\..\Source\include</state>\r
- <state>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64</state>\r
- </option>\r
- <option>\r
- <name>AExtraOptionsCheckV2</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AExtraOptionsV2</name>\r
- <state></state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>OBJCOPY</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data>\r
- <version>1</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>OOCOutputFormat</name>\r
- <version>2</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCOutputOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OOCOutputFile</name>\r
- <state>rtosdemo.srec</state>\r
- </option>\r
- <option>\r
- <name>OOCCommandLineProducer</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OOCObjCopyEnable</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>CUSTOM</name>\r
- <archiveVersion>3</archiveVersion>\r
- <data>\r
- <extensions></extensions>\r
- <cmdline></cmdline>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>BICOMP</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data/>\r
- </settings>\r
- <settings>\r
- <name>BUILDACTION</name>\r
- <archiveVersion>1</archiveVersion>\r
- <data>\r
- <prebuild></prebuild>\r
- <postbuild></postbuild>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ILINK</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data>\r
- <version>8</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>IlinkLibIOConfig</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>XLinkMisraHandler</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkInputFileSlave</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkOutputFile</name>\r
- <state>rtosdemo.out</state>\r
- </option>\r
- <option>\r
- <name>IlinkDebugInfoEnable</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkKeepSymbols</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinaryFile</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinarySymbol</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinarySegment</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinaryAlign</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkDefines</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkConfigDefines</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkMapFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogInitialization</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogModule</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogSection</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogVeneer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkIcfOverride</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkIcfFile</name>\r
- <state>$PROJ_DIR$\resource\at91SAM7X256_FLASH.icf</state>\r
- </option>\r
- <option>\r
- <name>IlinkIcfFileSlave</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkEnableRemarks</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkSuppressDiags</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkTreatAsRem</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkTreatAsWarn</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkTreatAsErr</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkWarningsAreErrors</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkUseExtraOptions</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkExtraOptions</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkLowLevelInterfaceSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkAutoLibEnable</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkAdditionalLibs</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkOverrideProgramEntryLabel</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkProgramEntryLabelSelect</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkProgramEntryLabel</name>\r
- <state>__iar_program_start</state>\r
- </option>\r
- <option>\r
- <name>DoFill</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>FillerByte</name>\r
- <state>0xFF</state>\r
- </option>\r
- <option>\r
- <name>FillerStart</name>\r
- <state>0x0</state>\r
- </option>\r
- <option>\r
- <name>FillerEnd</name>\r
- <state>0x0</state>\r
- </option>\r
- <option>\r
- <name>CrcSize</name>\r
- <version>0</version>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcAlign</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcAlgo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcPoly</name>\r
- <state>0x11021</state>\r
- </option>\r
- <option>\r
- <name>CrcCompl</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CrcBitOrder</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CrcInitialValue</name>\r
- <state>0x0</state>\r
- </option>\r
- <option>\r
- <name>DoCrc</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkBE8Slave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkBufferedTerminalOutput</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkStdoutInterfaceSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcFullSize</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkIElfToolPostProcess</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>IARCHIVE</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>1</debug>\r
- <option>\r
- <name>IarchiveInputs</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IarchiveOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IarchiveOutput</name>\r
- <state>###Unitialized###</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>BILINK</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data/>\r
- </settings>\r
- </configuration>\r
- <configuration>\r
- <name>Flash Release</name>\r
- <toolchain>\r
- <name>ARM</name>\r
- </toolchain>\r
- <debug>0</debug>\r
- <settings>\r
- <name>General</name>\r
- <archiveVersion>3</archiveVersion>\r
- <data>\r
- <version>17</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>ExePath</name>\r
- <state>Flash Release\Exe</state>\r
- </option>\r
- <option>\r
- <name>ObjPath</name>\r
- <state>Flash Release\Obj</state>\r
- </option>\r
- <option>\r
- <name>ListPath</name>\r
- <state>Flash Release\List</state>\r
- </option>\r
- <option>\r
- <name>Variant</name>\r
- <version>11</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GEndianMode</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>Input variant</name>\r
- <version>1</version>\r
- <state>3</state>\r
- </option>\r
- <option>\r
- <name>Input description</name>\r
- <state>No specifier n, no float nor long long, no scan set, no assignment suppressing.</state>\r
- </option>\r
- <option>\r
- <name>Output variant</name>\r
- <version>0</version>\r
- <state>2</state>\r
- </option>\r
- <option>\r
- <name>Output description</name>\r
- <state>No specifier a, A, no specifier n, no float nor long long.</state>\r
- </option>\r
- <option>\r
- <name>GOutputBinary</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>FPU</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OGCoreOrChip</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>GRuntimeLibSelect</name>\r
- <version>0</version>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>GRuntimeLibSelectSlave</name>\r
- <version>0</version>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>RTDescription</name>\r
- <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>\r
- </option>\r
- <option>\r
- <name>RTConfigPath</name>\r
- <state>$TOOLKIT_DIR$\INC\DLib_Config_Normal.h</state>\r
- </option>\r
- <option>\r
- <name>OGProductVersion</name>\r
- <state>4.11A</state>\r
- </option>\r
- <option>\r
- <name>OGLastSavedByProductVersion</name>\r
- <state>5.11.0.50615</state>\r
- </option>\r
- <option>\r
- <name>GeneralEnableMisra</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraVerbose</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OGChipSelectEditMenu</name>\r
- <state>AT91SAM7X256 Atmel AT91SAM7X256</state>\r
- </option>\r
- <option>\r
- <name>GenLowLevelInterface</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GEndianModeBE</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OGBufferedTerminalOutput</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GenStdoutInterface</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraRules98</name>\r
- <version>0</version>\r
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraVer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>GeneralMisraRules04</name>\r
- <version>0</version>\r
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ICCARM</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>21</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>CCDefines</name>\r
- <state>SAM7_IAR</state>\r
- </option>\r
- <option>\r
- <name>CCPreprocFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPreprocComments</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCPreprocLine</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListCFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListCMnemonics</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListCMessages</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListAssFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCListAssSource</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCEnableRemarks</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCDiagSuppress</name>\r
- <state>pe815, pe191, pa082, pe167, pa050</state>\r
- </option>\r
- <option>\r
- <name>CCDiagRemark</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCDiagWarning</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCDiagError</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCObjPrefix</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCAllowList</name>\r
- <version>1</version>\r
- <state>0111101</state>\r
- </option>\r
- <option>\r
- <name>CCDebugInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IEndianMode</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IExtraOptionsCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IExtraOptions</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CCLangConformance</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCSignedPlainChar</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCRequirePrototypes</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCMultibyteSupport</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCDiagWarnAreErr</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCCompilerRuntimeInfo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IFpuProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OutputFile</name>\r
- <state>$FILE_BNAME$.o</state>\r
- </option>\r
- <option>\r
- <name>CCLangSelect</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCLibConfigHeader</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>PreInclude</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>CompilerMisraOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCIncludePath2</name>\r
- <state>$PROJ_DIR$\..\..\source\portable\iar\AtmelSAM7S64</state>\r
- <state>$PROJ_DIR$\..\common\include</state>\r
- <state>$PROJ_DIR$\..\..\source\include</state>\r
- <state>$PROJ_DIR$\SrcIAR</state>\r
- <state>$PROJ_DIR$</state>\r
- <state>$PROJ_DIR$\uip</state>\r
- <state>$PROJ_DIR$\emac</state>\r
- </option>\r
- <option>\r
- <name>CCStdIncCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CCStdIncludePath</name>\r
- <state>$TOOLKIT_DIR$\INC\</state>\r
- </option>\r
- <option>\r
- <name>CCCodeSection</name>\r
- <state>.text</state>\r
- </option>\r
- <option>\r
- <name>IInterwork2</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IProcessorMode2</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CCOptLevel</name>\r
- <state>3</state>\r
- </option>\r
- <option>\r
- <name>CCOptStrategy</name>\r
- <version>0</version>\r
- <state>2</state>\r
- </option>\r
- <option>\r
- <name>CCOptLevelSlave</name>\r
- <state>3</state>\r
- </option>\r
- <option>\r
- <name>CompilerMisraRules98</name>\r
- <version>0</version>\r
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>\r
- </option>\r
- <option>\r
- <name>CompilerMisraRules04</name>\r
- <version>0</version>\r
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>AARM</name>\r
- <archiveVersion>2</archiveVersion>\r
- <data>\r
- <version>7</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>AObjPrefix</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AEndian</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>ACaseSensitivity</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacroChars</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AWarnEnable</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AWarnWhat</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AWarnOne</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>AWarnRange1</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>AWarnRange2</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>ADebug</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AltRegisterNames</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ADefines</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>AList</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AListHeader</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AListing</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>Includes</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MacDefs</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MacExps</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>MacExec</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OnlyAssed</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>MultiLine</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>PageLengthCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>PageLength</name>\r
- <state>80</state>\r
- </option>\r
- <option>\r
- <name>TabSpacing</name>\r
- <state>8</state>\r
- </option>\r
- <option>\r
- <name>AXRef</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AXRefDefines</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AXRefInternal</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AXRefDual</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AFpuProcessor</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>AOutputFile</name>\r
- <state>$FILE_BNAME$.o</state>\r
- </option>\r
- <option>\r
- <name>AMultibyteSupport</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ALimitErrorsCheck</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>ALimitErrorsEdit</name>\r
- <state>100</state>\r
- </option>\r
- <option>\r
- <name>AIgnoreStdInclude</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AStdIncludes</name>\r
- <state>$TOOLKIT_DIR$\INC\</state>\r
- </option>\r
- <option>\r
- <name>AUserIncludes</name>\r
- <state>$PROJ_DIR$\srciar\</state>\r
- <state>$PROJ_DIR$\..\..\include\</state>\r
- <state>$PROJ_DIR$\..\common\include</state>\r
- <state>$PROJ_DIR$\..\..\Source\include</state>\r
- <state>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64</state>\r
- </option>\r
- <option>\r
- <name>AExtraOptionsCheckV2</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>AExtraOptionsV2</name>\r
- <state></state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>OBJCOPY</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data>\r
- <version>1</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>OOCOutputFormat</name>\r
- <version>2</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OCOutputOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>OOCOutputFile</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>OOCCommandLineProducer</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>OOCObjCopyEnable</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>CUSTOM</name>\r
- <archiveVersion>3</archiveVersion>\r
- <data>\r
- <extensions></extensions>\r
- <cmdline></cmdline>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>BICOMP</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data/>\r
- </settings>\r
- <settings>\r
- <name>BUILDACTION</name>\r
- <archiveVersion>1</archiveVersion>\r
- <data>\r
- <prebuild></prebuild>\r
- <postbuild></postbuild>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>ILINK</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data>\r
- <version>8</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>IlinkLibIOConfig</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>XLinkMisraHandler</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkInputFileSlave</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkOutputFile</name>\r
- <state>rtosdemo.out</state>\r
- </option>\r
- <option>\r
- <name>IlinkDebugInfoEnable</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkKeepSymbols</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinaryFile</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinarySymbol</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinarySegment</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkRawBinaryAlign</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkDefines</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkConfigDefines</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkMapFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogFile</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogInitialization</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogModule</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogSection</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkLogVeneer</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkIcfOverride</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkIcfFile</name>\r
- <state>$PROJ_DIR$\resource\at91SAM7X256_FLASH.icf</state>\r
- </option>\r
- <option>\r
- <name>IlinkIcfFileSlave</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkEnableRemarks</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkSuppressDiags</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkTreatAsRem</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkTreatAsWarn</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkTreatAsErr</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkWarningsAreErrors</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkUseExtraOptions</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkExtraOptions</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkLowLevelInterfaceSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkAutoLibEnable</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkAdditionalLibs</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IlinkOverrideProgramEntryLabel</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkProgramEntryLabelSelect</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkProgramEntryLabel</name>\r
- <state>__iar_program_start</state>\r
- </option>\r
- <option>\r
- <name>DoFill</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>FillerByte</name>\r
- <state>0xFF</state>\r
- </option>\r
- <option>\r
- <name>FillerStart</name>\r
- <state>0x0</state>\r
- </option>\r
- <option>\r
- <name>FillerEnd</name>\r
- <state>0x0</state>\r
- </option>\r
- <option>\r
- <name>CrcSize</name>\r
- <version>0</version>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcAlign</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcAlgo</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcPoly</name>\r
- <state>0x11021</state>\r
- </option>\r
- <option>\r
- <name>CrcCompl</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CrcBitOrder</name>\r
- <version>0</version>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>CrcInitialValue</name>\r
- <state>0x0</state>\r
- </option>\r
- <option>\r
- <name>DoCrc</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkBE8Slave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkBufferedTerminalOutput</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>IlinkStdoutInterfaceSlave</name>\r
- <state>1</state>\r
- </option>\r
- <option>\r
- <name>CrcFullSize</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IlinkIElfToolPostProcess</name>\r
- <state>0</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>IARCHIVE</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data>\r
- <version>0</version>\r
- <wantNonLocal>1</wantNonLocal>\r
- <debug>0</debug>\r
- <option>\r
- <name>IarchiveInputs</name>\r
- <state></state>\r
- </option>\r
- <option>\r
- <name>IarchiveOverride</name>\r
- <state>0</state>\r
- </option>\r
- <option>\r
- <name>IarchiveOutput</name>\r
- <state>###Unitialized###</state>\r
- </option>\r
- </data>\r
- </settings>\r
- <settings>\r
- <name>BILINK</name>\r
- <archiveVersion>0</archiveVersion>\r
- <data/>\r
- </settings>\r
- </configuration>\r
- <group>\r
- <name>Demo Source</name>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\BlockQ.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\death.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\dynamic.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\EMAC\EMAClISR.s79</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\flash.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\flop.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\..\Source\portable\MemMang\heap_2.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\integer.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\main.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\ParTest\ParTest.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\PollQ.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\EMAC\SAM7_EMAC.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\Common\Minimal\semtest.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\uIP_Task.c</name>\r
- </file>\r
- </group>\r
- <group>\r
- <name>FreeRTOS Source</name>\r
- <file>\r
- <name>$PROJ_DIR$\..\..\Source\list.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64\port.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\..\Source\portable\IAR\AtmelSAM7S64\portasm.s79</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\..\Source\queue.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\..\..\Source\tasks.c</name>\r
- </file>\r
- </group>\r
- <group>\r
- <name>uIP Source</name>\r
- <group>\r
- <name>http</name>\r
- <file>\r
- <name>$PROJ_DIR$\uip\cgi.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\uip\fs.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\uip\httpd.c</name>\r
- </file>\r
- </group>\r
- <file>\r
- <name>$PROJ_DIR$\uip\uip.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\uip\uip_arch.c</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\uip\uip_arp.c</name>\r
- </file>\r
- </group>\r
- <file>\r
- <name>$PROJ_DIR$\SrcIAR\Cstartup.s</name>\r
- </file>\r
- <file>\r
- <name>$PROJ_DIR$\SrcIAR\Cstartup_SAM7.c</name>\r
- </file>\r
-</project>\r
-\r
-\r
+++ /dev/null
-<?xml version="1.0" encoding="iso-8859-1"?>\r
-\r
-<workspace>\r
- <project>\r
- <path>$WS_DIR$\rtosdemo.ewp</path>\r
- </project>\r
- <batchBuild/>\r
-</workspace>\r
-\r
-\r
+++ /dev/null
-<?xml version="1.0" encoding="iso-8859-1"?>\r
-\r
-<Project>\r
- <Desktop>\r
- <Static>\r
- <Workspace>\r
- <ColumnWidths>\r
- \r
- \r
- \r
- <Column0>189</Column0><Column1>27</Column1><Column2>27</Column2></ColumnWidths>\r
- </Workspace>\r
- <Disassembly>\r
- \r
- \r
- \r
- <PreferedWindows><Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows><MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>\r
- <Debug-Log/>\r
- <Build/>\r
- <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>\r
- <Windows>\r
- <Wnd0>\r
- <Tabs>\r
- <Tab>\r
- <Identity>TabID-23416-30482</Identity>\r
- <TabName>Workspace</TabName>\r
- <Factory>Workspace</Factory>\r
- <Session>\r
- \r
- <NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>\r
- </Tab>\r
- </Tabs>\r
- \r
- <SelectedTab>0</SelectedTab></Wnd0>\r
- \r
- <Wnd2>\r
- <Tabs>\r
- <Tab>\r
- <Identity>TabID-12145-30489</Identity>\r
- <TabName>Debug Log</TabName>\r
- <Factory>Debug-Log</Factory>\r
- <Session/>\r
- </Tab>\r
- <Tab>\r
- <Identity>TabID-22894-30492</Identity>\r
- <TabName>Build</TabName>\r
- <Factory>Build</Factory>\r
- <Session/>\r
- </Tab>\r
- </Tabs>\r
- \r
- <SelectedTab>1</SelectedTab></Wnd2>\r
- <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>\r
- <Editor>\r
- \r
- \r
- \r
- \r
- <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>\r
- <Positions>\r
- \r
- \r
- \r
- \r
- \r
- <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\r
-tom><Float><Sizes/></Float></Positions>\r
- </Desktop>\r
-</Project>\r
-\r
-\r
+++ /dev/null
-[DisAssemblyWindow]\r
-NumStates=_ 1\r
-State 1=_ 1\r
-[JLinkDriver]\r
-WatchVectorCatch=_ 0\r
-WatchCond=_ 0\r
-Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
-Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
-[Log file]\r
-LoggingEnabled=_ 0\r
-LogFile=_ ""\r
-Category=_ 0\r
-[TermIOLog]\r
-LoggingEnabled=_ 0\r
-LogFile=_ ""\r
-[Disassemble mode]\r
-mode=0\r
-[Breakpoints]\r
-Bp0=_ "Code" "{E:\Dev\FreeRTOS\Source\portable\IAR\AtmelSAM7\port.c}.141.1@1" 1 0 0 0 "" 0 ""\r
-Count=1\r
-[Low Level]\r
-Pipeline mode=0\r
-Initialized=0\r
+++ /dev/null
-<?xml version="1.0" encoding="iso-8859-1"?>\r
-\r
-<Workspace>\r
- <ConfigDictionary>\r
- \r
- <CurrentConfigs><Project>rtosdemo/Flash Debug</Project></CurrentConfigs></ConfigDictionary>\r
- <Desktop>\r
- <Static>\r
- <Workspace>\r
- <ColumnWidths>\r
- \r
- \r
- \r
- <Column0>232</Column0><Column1>27</Column1><Column2>27</Column2></ColumnWidths>\r
- </Workspace>\r
- <Build/>\r
- <TerminalIO/>\r
- <Profiling/>\r
- <Watch>\r
- <Format>\r
- <struct_types/>\r
- <watch_formats/>\r
- </Format>\r
- </Watch>\r
- <Debug-Log/>\r
- <Disassembly>\r
- \r
- \r
- \r
- <MixedMode>1</MixedMode><CodeCovEnabled>0</CodeCovEnabled><CodeCovShow>0</CodeCovShow></Disassembly>\r
- <CodeCoveragePlugin/><Memory><ZoneNumber>0</ZoneNumber><FindDirection>1</FindDirection><FindAsHex>0</FindAsHex></Memory></Static>\r
- <Windows>\r
- \r
- \r
- <Wnd6>\r
- <Tabs>\r
- <Tab>\r
- <Identity>TabID-29690-30365</Identity>\r
- <TabName>Workspace</TabName>\r
- <Factory>Workspace</Factory>\r
- <Session>\r
- \r
- <NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>\r
- </Tab>\r
- </Tabs>\r
- \r
- <SelectedTab>0</SelectedTab></Wnd6><Wnd7>\r
- <Tabs>\r
- <Tab>\r
- <Identity>TabID-27076-30414</Identity>\r
- <TabName>Build</TabName>\r
- <Factory>Build</Factory>\r
- <Session/>\r
- </Tab>\r
- <Tab>\r
- <Identity>TabID-12668-30479</Identity>\r
- <TabName>Debug Log</TabName>\r
- <Factory>Debug-Log</Factory>\r
- <Session/>\r
- </Tab>\r
- </Tabs>\r
- \r
- <SelectedTab>1</SelectedTab></Wnd7></Windows>\r
- <Editor>\r
- \r
- \r
- \r
- \r
- <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>\r
- <Positions>\r
- \r
- \r
- \r
- \r
- \r
- <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>\r
- </Desktop>\r
-</Workspace>\r
-\r
-\r
+++ /dev/null
-<?xml version="1.0" encoding="iso-8859-1"?>\r
-\r
-<Project>\r
- <Desktop>\r
- <Static>\r
- <Workspace>\r
- <ColumnWidths>\r
- \r
- \r
- \r
- <Column0>240</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
- </Workspace>\r
- <Disassembly>\r
- \r
- \r
- \r
- <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>\r
- <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>\r
- <Build><PreferedWindows><Position>3</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows><Window><Factory>Debug-Log</Factory></Window></Windows></PreferedWindows></Build>\r
- <Register>\r
- <PreferedWindows>\r
- \r
- \r
- \r
- \r
- <Position>2</Position><ScreenPosX>0</ScreenPosX><ScreenPosY>0</ScreenPosY><Windows/></PreferedWindows>\r
- </Register>\r
- <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>\r
- <Windows>\r
- \r
- \r
- \r
- <Wnd0>\r
- <Tabs>\r
- <Tab>\r
- <Identity>TabID-22256-14845</Identity>\r
- <TabName>Workspace</TabName>\r
- <Factory>Workspace</Factory>\r
- <Session>\r
- \r
- <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>\r
- </Tab>\r
- </Tabs>\r
- \r
- <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>\r
- <Editor>\r
- \r
- \r
- \r
- \r
- <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>\r
- <Positions>\r
- \r
- \r
- \r
- \r
- \r
- <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>\r
- </Desktop>\r
-</Project>\r
-\r
-\r
+++ /dev/null
-[DisAssemblyWindow]\r
-NumStates=_ 1\r
-State 1=_ 1\r
-[JLinkDriver]\r
-WatchVectorCatch=_ 0\r
-WatchCond=_ 0\r
-Watch0=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
-Watch1=_ 0 "" 0 "" 0 "" 0 "" 0 0 0 0\r
-[Low Level]\r
-Pipeline mode=1\r
-Initialized=0\r
-[CodeCoverage]\r
-Enabled=_ 0\r
-[Profiling]\r
-Enabled=0\r
-[StackPlugin]\r
-Enabled=1\r
-OverflowWarningsEnabled=1\r
-WarningThreshold=90\r
-SpWarningsEnabled=1\r
-WarnHow=0\r
-UseTrigger=1\r
-TriggerName=main\r
-LimitSize=0\r
-ByteLimit=50\r
-[TraceHelper]\r
-Enabled=0\r
-ShowSource=1\r
-[DebugChecksum]\r
-Checksum=447895738\r
-[InstructionProfiling]\r
-Enabled=_ 0\r
-[Log file]\r
-LoggingEnabled=_ 0\r
-LogFile=_ ""\r
-Category=_ 0\r
-[TermIOLog]\r
-LoggingEnabled=_ 0\r
-LogFile=_ ""\r
-[DriverProfiling]\r
-Enabled=0\r
-Source=2\r
-Graph=0\r
-[Disassemble mode]\r
-mode=0\r
-[Breakpoints]\r
-Count=0\r
+++ /dev/null
-<?xml version="1.0" encoding="iso-8859-1"?>\r
-\r
-<Workspace>\r
- <ConfigDictionary>\r
- \r
- <CurrentConfigs><Project>rtosdemo/Flash Debug</Project></CurrentConfigs></ConfigDictionary>\r
- <Desktop>\r
- <Static>\r
- <Workspace>\r
- <ColumnWidths>\r
- \r
- \r
- \r
- <Column0>288</Column0><Column1>27</Column1><Column2>27</Column2><Column3>27</Column3></ColumnWidths>\r
- </Workspace>\r
- <Build><ColumnWidth0>18</ColumnWidth0><ColumnWidth1>1155</ColumnWidth1><ColumnWidth2>308</ColumnWidth2><ColumnWidth3>77</ColumnWidth3></Build>\r
- <Debug-Log><ColumnWidth0>22</ColumnWidth0><ColumnWidth1>1620</ColumnWidth1></Debug-Log>\r
- <TerminalIO/>\r
- <CodeCoveragePlugin/>\r
- <Profiling/>\r
- <Watch>\r
- <Format>\r
- <struct_types/>\r
- <watch_formats/>\r
- </Format>\r
- </Watch>\r
- <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>\r
- <Windows>\r
- \r
- \r
- <Wnd1>\r
- <Tabs>\r
- <Tab>\r
- <Identity>TabID-17425-14382</Identity>\r
- <TabName>Workspace</TabName>\r
- <Factory>Workspace</Factory>\r
- <Session>\r
- \r
- <NodeDict><ExpandedNode>rtosdemo</ExpandedNode></NodeDict></Session>\r
- </Tab>\r
- </Tabs>\r
- \r
- <SelectedTab>0</SelectedTab></Wnd1><Wnd3>\r
- <Tabs>\r
- <Tab>\r
- <Identity>TabID-4084-16269</Identity>\r
- <TabName>Build</TabName>\r
- <Factory>Build</Factory>\r
- <Session/>\r
- </Tab>\r
- \r
- <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>\r
- \r
- <SelectedTab>0</SelectedTab></Wnd3></Windows>\r
- <Editor>\r
- \r
- \r
- \r
- \r
- <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>\r
- <Positions>\r
- \r
- \r
- \r
- \r
- \r
- <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>\r
- </Desktop>\r
-</Workspace>\r
-\r
-\r
+++ /dev/null
-/*\r
- * Modified from an original work that is Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: main.c,v 1.10.2.4 2003/10/21 21:27:51 adam Exp $\r
- *\r
- */\r
-\r
-/* Standard includes. */\r
-#include <stdlib.h>\r
-#include <stdio.h>\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "semphr.h"\r
-#include "task.h"\r
-\r
-/* Demo app includes. */\r
-#include "SAM7_EMAC.h"\r
-\r
-/* uIP includes. */\r
-#undef HTONS\r
-#include "uip.h"\r
-#include "uip_arp.h"\r
-#include "tapdev.h"\r
-#include "httpd.h"\r
-\r
-/* The start of the uIP buffer, which will contain the frame headers. */\r
-#define pucUIP_Buffer ( ( struct uip_eth_hdr * ) &uip_buf[ 0 ] )\r
-\r
-/* uIP update frequencies. */\r
-#define RT_CLOCK_SECOND ( configTICK_RATE_HZ )\r
-#define uipARP_FREQUENCY ( 20 )\r
-#define uipMAX_BLOCK_TIME ( RT_CLOCK_SECOND / 4 )\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-void vuIP_TASK( void *pvParameters )\r
-{\r
-/* The semaphore used by the EMAC ISR to indicate that an Rx frame is ready\r
-for processing. */\r
-SemaphoreHandle_t xSemaphore = NULL;\r
-portBASE_TYPE xARPTimer;\r
-unsigned portBASE_TYPE uxPriority;\r
-static volatile TickType_t xStartTime, xCurrentTime;\r
-\r
- /* Initialize the uIP TCP/IP stack. */\r
- uip_init();\r
- uip_arp_init();\r
- \r
- /* Initialize the HTTP server. */\r
- httpd_init();\r
-\r
- /* Initialise the local timers. */\r
- xStartTime = xTaskGetTickCount();\r
- xARPTimer = 0;\r
-\r
- /* Initialise the EMAC. A semaphore will be returned when this is\r
- successful. This routine contains code that polls status bits. If the\r
- Ethernet cable is not plugged in then this can take a considerable time.\r
- To prevent this starving lower priority tasks of processing time we\r
- lower our priority prior to the call, then raise it back again once the\r
- initialisation is complete. */\r
- uxPriority = uxTaskPriorityGet( NULL );\r
- vTaskPrioritySet( NULL, tskIDLE_PRIORITY );\r
- while( xSemaphore == NULL )\r
- {\r
- xSemaphore = xEMACInit();\r
- }\r
- vTaskPrioritySet( NULL, uxPriority );\r
-\r
- for( ;; )\r
- {\r
- /* Let the network device driver read an entire IP packet\r
- into the uip_buf. If it returns > 0, there is a packet in the\r
- uip_buf buffer. */\r
- uip_len = ulEMACPoll();\r
-\r
- /* Was a packet placed in the uIP buffer? */\r
- if( uip_len > 0 )\r
- {\r
- /* A packet is present in the uIP buffer. We call the\r
- appropriate ARP functions depending on what kind of packet we\r
- have received. If the packet is an IP packet, we should call\r
- uip_input() as well. */\r
- if( pucUIP_Buffer->type == htons( UIP_ETHTYPE_IP ) )\r
- {\r
- uip_arp_ipin();\r
- uip_input();\r
-\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */\r
- if( uip_len > 0 )\r
- {\r
- uip_arp_out();\r
- lEMACSend();\r
- }\r
- }\r
- else if( pucUIP_Buffer->type == htons( UIP_ETHTYPE_ARP ) )\r
- {\r
- uip_arp_arpin();\r
-\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */ \r
- if( uip_len > 0 )\r
- { \r
- lEMACSend();\r
- }\r
- }\r
- }\r
- else\r
- {\r
- /* The poll function returned 0, so no packet was\r
- received. Instead we check if it is time that we do the\r
- periodic processing. */\r
- xCurrentTime = xTaskGetTickCount();\r
-\r
- if( ( xCurrentTime - xStartTime ) >= RT_CLOCK_SECOND )\r
- {\r
- portBASE_TYPE i;\r
-\r
- /* Reset the timer. */\r
- xStartTime = xCurrentTime;\r
-\r
- /* Periodic check of all connections. */\r
- for( i = 0; i < UIP_CONNS; i++ )\r
- {\r
- uip_periodic( i );\r
-\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */ \r
- if( uip_len > 0 )\r
- {\r
- uip_arp_out();\r
- lEMACSend();\r
- }\r
- }\r
-\r
- #if UIP_UDP\r
- for( i = 0; i < UIP_UDP_CONNS; i++ )\r
- {\r
- uip_udp_periodic( i );\r
-\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */\r
- if( uip_len > 0 )\r
- {\r
- uip_arp_out();\r
- tapdev_send();\r
- }\r
- }\r
- #endif /* UIP_UDP */\r
-\r
- /* Periodically call the ARP timer function. */\r
- if( ++xARPTimer == uipARP_FREQUENCY )\r
- { \r
- uip_arp_timer();\r
- xARPTimer = 0;\r
- }\r
- }\r
- else\r
- { \r
- /* We did not receive a packet, and there was no periodic\r
- processing to perform. Block for a fixed period. If a packet\r
- is received during this period we will be woken by the ISR\r
- giving us the Semaphore. */\r
- xSemaphoreTake( xSemaphore, uipMAX_BLOCK_TIME );\r
- }\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
-\r
-\r
-\r
-\r
+++ /dev/null
-#ifndef UIP_TASK_H\r
-#define UIP_TASK_H\r
-\r
-/* The task that handles all uIP data. */\r
-void vuIP_TASK( void *pvParameters );\r
-\r
-#endif\r
-\r
+++ /dev/null
-# Copyright (c) 2001, Adam Dunkels.\r
-# All rights reserved. \r
-#\r
-# Redistribution and use in source and binary forms, with or without \r
-# modification, are permitted provided that the following conditions \r
-# are met: \r
-# 1. Redistributions of source code must retain the above copyright \r
-# notice, this list of conditions and the following disclaimer. \r
-# 2. Redistributions in binary form must reproduce the above copyright \r
-# notice, this list of conditions and the following disclaimer in the \r
-# documentation and/or other materials provided with the distribution. \r
-# 3. All advertising materials mentioning features or use of this software\r
-# must display the following acknowledgement:\r
-# This product includes software developed by Adam Dunkels.\r
-# 4. The name of the author may not be used to endorse or promote\r
-# products derived from this software without specific prior\r
-# written permission. \r
-#\r
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
-#\r
-# This file is part of the uIP TCP/IP stack.\r
-#\r
-# $Id: Makefile,v 1.8.2.2 2003/10/04 22:54:17 adam Exp $\r
-#\r
-\r
-CC=gcc\r
-CFLAGS=-Wall -g -I../uip -I. -I../apps/httpd -I../apps/resolv -I../apps/webclient -I../apps/smtp -I../apps/telnet -fpack-struct\r
-\r
-%.o:\r
- $(CC) $(CFLAGS) -c $(<:.o=.c)\r
-\r
-\r
-uip: uip.o uip_arch.o tapdev.o httpd.o main.o fs.o uip_arp.o cgi.o \r
-\r
-tapdev.o: tapdev.c uipopt.h\r
-main.o: main.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h \\r
- tapdev.h\r
-uip_arch.o: uip_arch.c ../uip/uip_arch.h ../uip/uip.h uipopt.h \\r
- ../apps/httpd/httpd.h \r
-uip.o: ../uip/uip.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h \r
-\r
-uip_arp.o: ../uip/uip_arp.c ../uip/uip_arp.h ../uip/uip.h uipopt.h \\r
- ../apps/httpd/httpd.h\r
- $(CC) -o uip_arp.o $(CFLAGS) -fpack-struct -c ../uip/uip_arp.c\r
-\r
-\r
-cgi.o: ../apps/httpd/cgi.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \\r
- ../apps/httpd/cgi.h ../apps/httpd/httpd.h ../apps/httpd/fs.h\r
-fs.o: ../apps/httpd/fs.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \\r
- ../apps/httpd/httpd.h ../apps/httpd/fs.h ../apps/httpd/fsdata.h \\r
- ../apps/httpd/fsdata.c\r
-fsdata.o: ../apps/httpd/fsdata.c\r
-httpd.o: ../apps/httpd/httpd.c ../uip/uip.h uipopt.h \\r
- ../apps/smtp/smtp.h ../apps/httpd/httpd.h ../apps/httpd/fs.h \\r
- ../apps/httpd/fsdata.h ../apps/httpd/cgi.h\r
-\r
-clean:\r
- rm -f *.o *~ *core uip\r
-\r
-\r
-\r
-\r
-\r
-\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server script language C functions file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * This file contains functions that are called by the web server\r
- * scripts. The functions takes one argument, and the return value is\r
- * interpreted as follows. A zero means that the function did not\r
- * complete and should be invoked for the next packet as well. A\r
- * non-zero value indicates that the function has completed and that\r
- * the web server should move along to the next script line.\r
- *\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: cgi.c,v 1.23.2.4 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-\r
-#include "uip.h"\r
-#include "cgi.h"\r
-#include "httpd.h"\r
-#include "fs.h"\r
-\r
-#include <stdio.h>\r
-#include <string.h>\r
-\r
-static u8_t print_stats(u8_t next);\r
-static u8_t file_stats(u8_t next);\r
-static u8_t tcp_stats(u8_t next);\r
-static u8_t rtos_stats(u8_t next);\r
-\r
-cgifunction cgitab[] = {\r
- print_stats, /* CGI function "a" */\r
- file_stats, /* CGI function "b" */\r
- tcp_stats, /* CGI function "c" */\r
- rtos_stats /* CGI function "d" */\r
-};\r
-\r
-static const char closed[] = /* "CLOSED",*/\r
-{0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0};\r
-static const char syn_rcvd[] = /* "SYN-RCVD",*/\r
-{0x53, 0x59, 0x4e, 0x2d, 0x52, 0x43, 0x56,\r
- 0x44, 0};\r
-static const char syn_sent[] = /* "SYN-SENT",*/\r
-{0x53, 0x59, 0x4e, 0x2d, 0x53, 0x45, 0x4e,\r
- 0x54, 0};\r
-static const char established[] = /* "ESTABLISHED",*/\r
-{0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48,\r
- 0x45, 0x44, 0};\r
-static const char fin_wait_1[] = /* "FIN-WAIT-1",*/\r
-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49,\r
- 0x54, 0x2d, 0x31, 0};\r
-static const char fin_wait_2[] = /* "FIN-WAIT-2",*/\r
-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49,\r
- 0x54, 0x2d, 0x32, 0};\r
-static const char closing[] = /* "CLOSING",*/\r
-{0x43, 0x4c, 0x4f, 0x53, 0x49,\r
- 0x4e, 0x47, 0};\r
-static const char time_wait[] = /* "TIME-WAIT,"*/\r
-{0x54, 0x49, 0x4d, 0x45, 0x2d, 0x57, 0x41,\r
- 0x49, 0x54, 0};\r
-static const char last_ack[] = /* "LAST-ACK"*/\r
-{0x4c, 0x41, 0x53, 0x54, 0x2d, 0x41, 0x43,\r
- 0x4b, 0};\r
-\r
-static const char *states[] = {\r
- closed,\r
- syn_rcvd,\r
- syn_sent,\r
- established,\r
- fin_wait_1,\r
- fin_wait_2,\r
- closing,\r
- time_wait,\r
- last_ack};\r
-\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* print_stats:\r
- *\r
- * Prints out a part of the uIP statistics. The statistics data is\r
- * written into the uip_appdata buffer. It overwrites any incoming\r
- * packet.\r
- */\r
-static u8_t\r
-print_stats(u8_t next)\r
-{\r
-#if UIP_STATISTICS\r
- u16_t i, j;\r
- u8_t *buf;\r
- u16_t *databytes;\r
-\r
- if(next) {\r
- /* If our last data has been acknowledged, we move on the next\r
- chunk of statistics. */\r
- hs->count = hs->count + 4;\r
- if(hs->count >= sizeof(struct uip_stats)/sizeof(u16_t)) {\r
- /* We have printed out all statistics, so we return 1 to\r
- indicate that we are done. */\r
- return 1;\r
- }\r
- }\r
-\r
- /* Write part of the statistics into the uip_appdata buffer. */\r
- databytes = (u16_t *)&uip_stat + hs->count;\r
- buf = (u8_t *)uip_appdata;\r
-\r
- j = 4 + 1;\r
- i = hs->count;\r
- while (i < sizeof(struct uip_stats)/sizeof(u16_t) && --j > 0) {\r
- sprintf((char *)buf, "%5u\r\n", *databytes);\r
- ++databytes;\r
- buf += 6;\r
- ++i;\r
- }\r
-\r
- /* Send the data. */\r
- uip_send(uip_appdata, buf - uip_appdata);\r
-\r
- return 0;\r
-#else\r
- return 1;\r
-#endif /* UIP_STATISTICS */\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static u8_t\r
-file_stats(u8_t next)\r
-{\r
- /* We use sprintf() to print the number of file accesses to a\r
- particular file (given as an argument to the function in the\r
- script). We then use uip_send() to actually send the data. */\r
- if(next) {\r
- return 1;\r
- }\r
- uip_send(uip_appdata, sprintf((char *)uip_appdata, "%5u", fs_count(&hs->script[4])));\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static u8_t\r
-tcp_stats(u8_t next)\r
-{\r
- struct uip_conn *conn;\r
-\r
- if(next) {\r
- /* If the previously sent data has been acknowledged, we move\r
- forward one connection. */\r
- if(++hs->count == UIP_CONNS) {\r
- /* If all connections has been printed out, we are done and\r
- return 1. */\r
- return 1;\r
- }\r
- }\r
-\r
- conn = &uip_conns[hs->count];\r
- if((conn->tcpstateflags & TS_MASK) == CLOSED) {\r
- uip_send(uip_appdata, sprintf((char *)uip_appdata,\r
- "<tr align=\"center\"><td>-</td><td>-</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",\r
- conn->nrtx,\r
- conn->timer,\r
- (uip_outstanding(conn))? '*':' ',\r
- (uip_stopped(conn))? '!':' '));\r
- } else {\r
- uip_send(uip_appdata, sprintf((char *)uip_appdata,\r
- "<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",\r
- htons(conn->ripaddr[0]) >> 8,\r
- htons(conn->ripaddr[0]) & 0xff,\r
- htons(conn->ripaddr[1]) >> 8,\r
- htons(conn->ripaddr[1]) & 0xff,\r
- htons(conn->rport),\r
- states[conn->tcpstateflags & TS_MASK],\r
- conn->nrtx,\r
- conn->timer,\r
- (uip_outstanding(conn))? '*':' ',\r
- (uip_stopped(conn))? '!':' '));\r
- }\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
-static u8_t\r
-rtos_stats(u8_t next)\r
-{\r
-static char cTraceBuffer[ 1024 ];\r
-extern void ( vTaskList )( char * );\r
-\r
- vTaskList( cTraceBuffer );\r
- uip_send( ( void * ) cTraceBuffer, strlen( cTraceBuffer ) );\r
-\r
- return 1;\r
-}\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP script language header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: cgi.h,v 1.3.2.4 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __CGI_H__\r
-#define __CGI_H__\r
-\r
-typedef u8_t (* cgifunction)(u8_t next);\r
-\r
-/**\r
- * A table containing pointers to C functions that can be called from\r
- * a web server script.\r
- */\r
-extern cgifunction cgitab[];\r
-\r
-#endif /* __CGI_H__ */\r
+++ /dev/null
-// Rowley C Compiler, runtime support.\r
-//\r
-// Copyright (c) 2001, 2002, 2003 Rowley Associates Limited.\r
-//\r
-// This file may be distributed under the terms of the License Agreement\r
-// provided with this software.\r
-//\r
-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE\r
-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-\r
-; Create sections\r
- .data\r
- .bss\r
-\r
-; Go to code section.\r
- .code\r
-\r
-; Executed upon reset\r
-__reset proc\r
-\r
-; Turn off watchdog. You can enable it in main() if required.\r
- mov.w #0x5a80, &0x120\r
-\r
-; Set up stack.\r
- mov.w #RAM_Start_Address+RAM_Size, sp\r
-\r
-; Copy from initialised data section to data section.\r
- mov.w #SFB(IDATA0), r15\r
- mov.w #data_init_begin, r14\r
- mov.w #data_init_end-data_init_begin, r13\r
- call #_memcpy\r
-\r
-; Zero the bss. Ensure the stack is not allocated in the bss!\r
- mov.w #SFB(UDATA0), r15\r
- mov.w #0, r14\r
- mov.w #SFE(UDATA0)-SFB(UDATA0), r13\r
- call #_memset\r
-\r
-; Call user entry point void main(void).\r
- call #_main\r
-\r
-; If main() returns, kick off again.\r
- jmp __reset\r
- endproc\r
-\r
-; Heap data structures; removed by the linker if the heap isn't used.\r
- .break \r
- .data\r
- align WORD\r
-___heap_start__::\r
- DW 0\r
- DW heap_size\r
- DS heap_size-4 \r
-\r
-; Reset vector\r
- .vectors\r
- .keep\r
- org 0x1e\r
- dw __reset\r
-\r
-; Initialise the IDATA0 section by duplicating the contents into the\r
-; CONST section and copying them on startup.\r
- .const\r
-data_init_begin:\r
- .init "IDATA0"\r
-data_init_end:\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server read-only file system code.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * A simple read-only filesystem.\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. Neither the name of the Institute nor the names of its contributors\r
- * may be used to endorse or promote products derived from this software\r
- * without specific prior written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND\r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE\r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\r
- * SUCH DAMAGE.\r
- *\r
- * This file is part of the lwIP TCP/IP stack.\r
- *\r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: fs.c,v 1.7.2.3 2003/10/07 13:22:27 adam Exp $\r
- */\r
-\r
-#include "uip.h"\r
-#include "httpd.h"\r
-#include "fs.h"\r
-#include "fsdata.h"\r
-\r
-#define NULL (void *)0\r
-#include "fsdata.c"\r
-\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
-static u16_t count[FS_NUMFILES];\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-static u8_t\r
-fs_strcmp(const char *str1, const char *str2)\r
-{\r
- u8_t i;\r
- i = 0;\r
- loop:\r
-\r
- if(str2[i] == 0 ||\r
- str1[i] == '\r' ||\r
- str1[i] == '\n') {\r
- return 0;\r
- }\r
-\r
- if(str1[i] != str2[i]) {\r
- return 1;\r
- }\r
-\r
-\r
- ++i;\r
- goto loop;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-int\r
-fs_open(const char *name, struct fs_file *file)\r
-{\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t i = 0;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
- struct fsdata_file_noconst *f;\r
-\r
- for(f = (struct fsdata_file_noconst *)FS_ROOT;\r
- f != NULL;\r
- f = (struct fsdata_file_noconst *)f->next) {\r
-\r
- if(fs_strcmp(name, f->name) == 0) {\r
- file->data = f->data;\r
- file->len = f->len;\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- ++count[i];\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-\r
- return 1;\r
- }\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- ++i;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-\r
- }\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-fs_init(void)\r
-{\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t i;\r
- for(i = 0; i < FS_NUMFILES; i++) {\r
- count[i] = 0;\r
- }\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
-u16_t fs_count\r
-(char *name)\r
-{\r
- struct fsdata_file_noconst *f;\r
- u16_t i;\r
-\r
- i = 0;\r
- for(f = (struct fsdata_file_noconst *)FS_ROOT;\r
- f != NULL;\r
- f = (struct fsdata_file_noconst *)f->next) {\r
-\r
- if(fs_strcmp(name, f->name) == 0) {\r
- return count[i];\r
- }\r
- ++i;\r
- }\r
- return 0;\r
-}\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server read-only file system header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
- \r
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. Neither the name of the Institute nor the names of its contributors \r
- * may be used to endorse or promote products derived from this software \r
- * without specific prior written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND \r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE \r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
- * SUCH DAMAGE. \r
- *\r
- * This file is part of the lwIP TCP/IP stack.\r
- * \r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: fs.h,v 1.6.2.3 2003/10/07 13:22:27 adam Exp $\r
- */\r
-#ifndef __FS_H__\r
-#define __FS_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * An open file in the read-only file system.\r
- */\r
-struct fs_file {\r
- char *data; /**< The actual file data. */\r
- int len; /**< The length of the file data. */\r
-};\r
-\r
-/**\r
- * Open a file in the read-only file system.\r
- *\r
- * \param name The name of the file.\r
- *\r
- * \param file The file pointer, which must be allocated by caller and\r
- * will be filled in by the function.\r
- */\r
-int fs_open(const char *name, struct fs_file *file);\r
-\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1 \r
-u16_t fs_count(char *name);\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-\r
-/**\r
- * Initialize the read-only file system.\r
- */\r
-void fs_init(void);\r
-\r
-#endif /* __FS_H__ */\r
+++ /dev/null
-<html><body bgcolor="white"><center><h1>404 - file not found</h1></center></body></html>
\ No newline at end of file
+++ /dev/null
-# This script shows the access statistics for different files on the\r
-# web server.\r
-#\r
-# First, we include the HTML header.\r
-i /files_header.html\r
-# Print out the name of the file, and call the function that prints\r
-# the access statistics of that file.\r
-t <tr><td><a href="/index.html">/index.html</a></td><td>\r
-c b /index.html\r
-t </td></tr> <tr><td><a href="/control.html">/control.html</a></td><td>\r
-c b /control.html\r
-t </td></tr> <tr><td><a href="/img/logo.png">/img/logo.png</a></td><td>\r
-c b /img/logo.png\r
-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>\r
-c b /404.html\r
-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>\r
-c b /cgi/files\r
-t </td></tr> <tr><td><a href="/cgi/stats">/cgi/stats</a></td><td>\r
-c b /cgi/stats\r
-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>\r
-c b /cgi/tcp\r
-t </td></tr>\r
-# Include the HTML footer.\r
-i /files_footer.plain\r
-# End of script.\r
-.
\ No newline at end of file
+++ /dev/null
-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>
-.
-
-
+++ /dev/null
-i /stats_header.html\r
-c a\r
-i /stats_footer.plain\r
-.\r
+++ /dev/null
-i /tcp_header.html\r
-c c\r
-i /tcp_footer.plain\r
-.
\ No newline at end of file
+++ /dev/null
-<html>\r
-<head>\r
-<title>AT91SAM7X Embedded WEB Server using uIP and FreeRTOS</title>\r
-</head>\r
-<body bgcolor="#ccccff">\r
-<font face="arial">\r
-<img src="/img/logo.png" align="right">\r
-<a href="/cgi/rtos" target="main">Tasks</a> |\r
-<a href="/cgi/tcp" target="main">Connections</a> |\r
-<a href="/cgi/files" target="main">Files</a> |\r
-<a href="/cgi/stats" target="main">Statistics</a><br>\r
-<br>\r
-</font>\r
-</body>\r
-</html>\r
-\r
-\r
-\r
-\r
-\r
+++ /dev/null
-</td></tr></table>\r
-</body>\r
-</html>\r
+++ /dev/null
-<html>\r
-<body bgcolor="#CCCCFF">\r
-<center>\r
-<table width="600" border="0">\r
+++ /dev/null
-<html>\r
-<head>\r
-</head>\r
-\r
-<frameset cols="*" rows="120,*" frameborder="no"> \r
- <frame src="control.html">\r
- <frame src="/cgi/rtos" name="main">\r
-</frameset>\r
-\r
-<noframes>\r
-<body>\r
-Your browser must support frames\r
-</body>\r
-</noframes>\r
-</html>
\ No newline at end of file
+++ /dev/null
-</td></tr></table>\r
-</body>\r
-</html>\r
+++ /dev/null
-<html>\r
-<body bgcolor="#ccccff">\r
-<center>\r
-<table width="600" border="0">\r
-<tr><td>\r
-<pre>\r
-IP Packets dropped\r
- Packets received\r
- Packets sent\r
-IP errors IP version/header length\r
- IP length, high byte\r
- IP length, low byte\r
- IP fragments\r
- Header checksum\r
- Wrong protocol\r
-ICMP Packets dropped\r
- Packets received\r
- Packets sent\r
- Type errors\r
-TCP Packets dropped\r
- Packets received\r
- Packets sent\r
- Checksum errors\r
- Data packets without ACKs\r
- Resets\r
- Retransmissions\r
- No connection avaliable\r
- Connection attempts to closed ports\r
-</pre> \r
-</td><td><pre>
\ No newline at end of file
+++ /dev/null
-\r
-</td></tr></table>\r
-</center>\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-<html>\r
-<body bgcolor="#ccccff">\r
-<center>\r
-<table width="600" border="0">\r
-<tr><th>Remote</th><th>State</th><th>Retransmissions</th><th>Timer</th><th>Flags</th></tr>\r
-\r
+++ /dev/null
-static const char data_404_html[] = {\r
- /* /404.html */\r
- 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x34, \r
- 0x30, 0x34, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, \r
- 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0xd, 0xa, 0x53, \r
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, \r
- 0x2f, 0x30, 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, \r
- 0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, \r
- 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, \r
- 0x75, 0x69, 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, \r
- 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, \r
- 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, \r
- 0xd, 0xa, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, \r
- 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, \r
- 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, \r
- 0x22, 0x3e, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, \r
- 0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d, 0x20, \r
- 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, \r
- 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, \r
- 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x3c, 0x2f, \r
- 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, \r
- 0x6c, 0x3e, };\r
-\r
-static const char data_control_html[] = {\r
- /* /control.html */\r
- 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x74, \r
- 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x41, 0x54, 0x39, 0x31, 0x53, \r
- 0x41, 0x4d, 0x37, 0x58, 0x20, 0x45, 0x6d, 0x62, 0x65, 0x64, \r
- 0x64, 0x65, 0x64, 0x20, 0x57, 0x45, 0x42, 0x20, 0x53, 0x65, \r
- 0x72, 0x76, 0x65, 0x72, 0x20, 0x75, 0x73, 0x69, 0x6e, 0x67, \r
- 0x20, 0x75, 0x49, 0x50, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x46, \r
- 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 0x53, 0x3c, 0x2f, 0x74, \r
- 0x69, 0x74, 0x6c, 0x65, 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x68, \r
- 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x6f, 0x64, \r
- 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, 0x6f, 0x72, 0x3d, \r
- 0x22, 0x23, 0x63, 0x63, 0x63, 0x63, 0x66, 0x66, 0x22, 0x3e, \r
- 0xd, 0xa, 0x3c, 0x66, 0x6f, 0x6e, 0x74, 0x20, 0x66, 0x61, \r
- 0x63, 0x65, 0x3d, 0x22, 0x61, 0x72, 0x69, 0x61, 0x6c, 0x22, \r
- 0x3e, 0xd, 0xa, 0x3c, 0x69, 0x6d, 0x67, 0x20, 0x73, 0x72, \r
- 0x63, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, \r
- 0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x20, 0x61, 0x6c, \r
- 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x72, 0x69, 0x67, 0x68, 0x74, \r
- 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, \r
- 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x72, 0x74, \r
- 0x6f, 0x73, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, \r
- 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x54, 0x61, \r
- 0x73, 0x6b, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xd, \r
- 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, \r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 0x20, \r
- 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, 0x61, \r
- 0x69, 0x6e, 0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, \r
- 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, \r
- 0x7c, 0xd, 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, \r
- 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, \r
- 0x65, 0x73, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, \r
- 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x46, 0x69, \r
- 0x6c, 0x65, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xd, \r
- 0xa, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, \r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, \r
- 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, \r
- 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x53, 0x74, 0x61, 0x74, \r
- 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x3c, 0x2f, 0x61, 0x3e, \r
- 0x3c, 0x62, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x72, 0x3e, \r
- 0xd, 0xa, 0x3c, 0x2f, 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0xd, \r
- 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, 0xd, \r
- 0xa, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, 0xd, 0xa, };\r
-\r
-static const char data_files_footer_plain[] = {\r
- /* /files_footer.plain */\r
- 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,\r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, \r
- 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, \r
- 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, };\r
-\r
-static const char data_files_header_html[] = {\r
- /* /files_header.html */\r
- 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, \r
- 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 0x43, 0x43, 0x43, 0x43, \r
- 0x46, 0x46, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x63, 0x65, 0x6e, \r
- 0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x61, 0x62, \r
- 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, \r
- 0x36, 0x30, 0x30, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, \r
- 0x72, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0xd, 0xa, };\r
-\r
-static const char data_stats_footer_plain[] = {\r
- /* /stats_footer.plain */\r
- 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,\r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, \r
- 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, \r
- 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, };\r
-\r
-static const char data_stats_header_html[] = {\r
- /* /stats_header.html */\r
- 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, \r
- 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 0x63, 0x63, 0x63, 0x63, \r
- 0x66, 0x66, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x63, 0x65, 0x6e, \r
- 0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x61, 0x62, \r
- 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, \r
- 0x36, 0x30, 0x30, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, \r
- 0x72, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x74, \r
- 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x70, \r
- 0x72, 0x65, 0x3e, 0xd, 0xa, 0x49, 0x50, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, \r
- 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 0x6f, 0x70, \r
- 0x70, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, \r
- 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 0x65, \r
- 0x69, 0x76, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, \r
- 0x74, 0xd, 0xa, 0x49, 0x50, 0x20, 0x65, 0x72, 0x72, 0x6f, \r
- 0x72, 0x73, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x76, \r
- 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x65, 0x61, \r
- 0x64, 0x65, 0x72, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, \r
- 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x6c, 0x65, \r
- 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x68, 0x69, 0x67, 0x68, \r
- 0x20, 0x62, 0x79, 0x74, 0x65, 0xd, 0xa, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x49, 0x50, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, \r
- 0x20, 0x6c, 0x6f, 0x77, 0x20, 0x62, 0x79, 0x74, 0x65, 0xd, \r
- 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x66, 0x72, 0x61, \r
- 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0xd, 0xa, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x20, 0x63, 0x68, \r
- 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0xd, 0xa, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x57, 0x72, 0x6f, 0x6e, 0x67, 0x20, 0x70, 0x72, 0x6f, \r
- 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0xd, 0xa, 0x49, 0x43, 0x4d, \r
- 0x50, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, \r
- 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, 0x6f, 0x70, 0x70, \r
- 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, 0x63, \r
- 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, 0x65, 0x69, \r
- 0x76, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, 0x61, \r
- 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, 0x74, \r
- 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, \r
- 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0xd, 0xa, 0x54, 0x43, \r
- 0x50, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, \r
- 0x72, 0x6f, 0x70, 0x70, 0x65, 0x64, 0xd, 0xa, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, \r
- 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0xd, 0xa, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, \r
- 0x73, 0x65, 0x6e, 0x74, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, \r
- 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, \r
- 0x72, 0x6f, 0x72, 0x73, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x44, \r
- 0x61, 0x74, 0x61, 0x20, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, \r
- 0x73, 0x20, 0x77, 0x69, 0x74, 0x68, 0x6f, 0x75, 0x74, 0x20, \r
- 0x41, 0x43, 0x4b, 0x73, 0xd, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x52, \r
- 0x65, 0x73, 0x65, 0x74, 0x73, 0xd, 0xa, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x52, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, \r
- 0x73, 0x69, 0x6f, 0x6e, 0x73, 0xd, 0xa, 0x9, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x63, 0x6f, 0x6e, 0x6e, \r
- 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x76, 0x61, \r
- 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0xd, 0xa, 0x9, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, \r
- 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x74, 0x74, 0x65, 0x6d, \r
- 0x70, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, 0x6f, \r
- 0x73, 0x65, 0x64, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x73, 0xd, \r
- 0xa, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x9, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0xd, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, \r
- 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x70, 0x72, 0x65, 0x3e, };\r
-\r
-static const char data_tcp_footer_plain[] = {\r
- /* /tcp_footer.plain */\r
- 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,\r
- 0xd, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, \r
- 0x72, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, \r
- 0xd, 0xa, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, \r
- 0x3e, 0xd, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, \r
- 0xd, 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };\r
-\r
-static const char data_tcp_header_html[] = {\r
- /* /tcp_header.html */\r
- 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, \r
- 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x23, 0x63, 0x63, 0x63, 0x63, \r
- 0x66, 0x66, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x63, 0x65, 0x6e, \r
- 0x74, 0x65, 0x72, 0x3e, 0xd, 0xa, 0x3c, 0x74, 0x61, 0x62, \r
- 0x6c, 0x65, 0x20, 0x77, 0x69, 0x64, 0x74, 0x68, 0x3d, 0x22, \r
- 0x36, 0x30, 0x30, 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, \r
- 0x72, 0x3d, 0x22, 0x30, 0x22, 0x3e, 0xd, 0xa, 0x3c, 0x74, \r
- 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x52, 0x65, 0x6d, 0x6f, \r
- 0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, \r
- 0x3e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, \r
- 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x52, 0x65, 0x74, 0x72, 0x61, \r
- 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, \r
- 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x54, \r
- 0x69, 0x6d, 0x65, 0x72, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, \r
- 0x74, 0x68, 0x3e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x3c, 0x2f, \r
- 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0xd, 0xa, \r
- 0xd, 0xa, };\r
-\r
-static const char data_img_logo_png[] = {\r
- /* /img/logo.png */\r
- 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, \r
- 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0xd, 0xa, \r
- 0xd, 0xa, 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, \r
- 00, 00, 00, 0xd, 0x49, 0x48, 0x44, 0x52, 00, 00, \r
- 00, 0xec, 00, 00, 00, 0x5c, 0x8, 0x3, 00, 00, \r
- 00, 0x5a, 0xc7, 0xa9, 0x53, 00, 00, 0x3, 00, 0x50, \r
- 0x4c, 0x54, 0x45, 00, 00, 00, 0x3, 0x3, 0x3, 0x4, \r
- 0x4, 0x4, 0x6, 0x6, 0x6, 0x8, 0x8, 0x8, 0xa, 0xa, \r
- 0xa, 0xc, 0xc, 0xc, 0xe, 0xe, 0xe, 0x10, 0x10, 0x10, \r
- 0x12, 0x12, 0x12, 0x14, 0x14, 0x14, 0x16, 0x16, 0x16, 0x18, \r
- 0x18, 0x18, 0x1a, 0x1a, 0x1a, 0x1c, 0x1c, 0x1c, 0x21, 0x21, \r
- 0x21, 0x25, 0x25, 0x25, 0x28, 0x28, 0x28, 0x2c, 0x2c, 0x2c, \r
- 0x2e, 0x2e, 0x2e, 0x30, 0x30, 0x30, 0x32, 0x32, 0x32, 0x34, \r
- 0x34, 0x34, 0x36, 0x36, 0x36, 0x38, 0x38, 0x38, 0x3a, 0x3a, \r
- 0x3a, 0x3e, 0x3e, 0x3e, 0x40, 0x40, 0x40, 0x43, 0x43, 0x43, \r
- 0x45, 0x45, 0x45, 0x46, 0x46, 0x46, 0x4a, 0x4a, 0x4a, 0x4d, \r
- 0x4d, 0x4d, 0x50, 0x50, 0x50, 0x52, 0x52, 0x52, 0x55, 0x55, \r
- 0x55, 0x58, 0x58, 0x58, 0x5c, 0x5c, 0x5c, 0x60, 0x60, 0x60, \r
- 0x62, 0x62, 0x62, 0x66, 0x66, 0x66, 0x69, 0x69, 0x69, 0x6b, \r
- 0x6b, 0x6b, 0x6e, 0x6e, 0x6e, 0x71, 0x71, 0x71, 0x73, 0x73, \r
- 0x73, 0x74, 0x74, 0x74, 0x77, 0x77, 0x77, 0x78, 0x78, 0x78, \r
- 0x7a, 0x7a, 0x7a, 0x7c, 0x7c, 0x7c, 0x7e, 0x7e, 0x7e, 00, \r
- 0xd9, 00, 0x4, 0xd8, 0x4, 0x6, 0xda, 0x6, 0x8, 0xda, \r
- 0x8, 0xc, 0xda, 0xc, 0x15, 0xdc, 0x15, 0x18, 0xdc, 0x18, \r
- 0x1a, 0xdc, 0x1a, 0x1d, 0xdd, 0x1d, 0x20, 0xde, 0x20, 0x22, \r
- 0xde, 0x22, 0x24, 0xde, 0x24, 0x28, 0xde, 0x28, 0x2d, 0xe0, \r
- 0x2d, 0x2f, 0xe0, 0x2f, 0x3b, 0xe2, 0x3b, 0x3d, 0xe2, 0x3d, \r
- 0x41, 0xe2, 0x41, 0x45, 0xe2, 0x45, 0x49, 0xe3, 0x49, 0x49, \r
- 0xe4, 0x49, 0x4b, 0xe4, 0x4b, 0x4d, 0xe5, 0x4d, 0x51, 0xe5, \r
- 0x51, 0x56, 0xe6, 0x56, 0x58, 0xe6, 0x58, 0x60, 0xe6, 0x60, \r
- 0x64, 0xe8, 0x64, 0x69, 0xe9, 0x69, 0x6a, 0xe9, 0x6a, 0x6c, \r
- 0xe9, 0x6c, 0x6e, 0xe9, 0x6e, 0x6f, 0xea, 0x6f, 0x66, 0xff, \r
- 0x66, 0x68, 0xff, 0x68, 0x6a, 0xff, 0x6a, 0x6c, 0xff, 0x6c, \r
- 0x6e, 0xff, 0x6e, 0x73, 0xea, 0x73, 0x78, 0xeb, 0x78, 0x7a, \r
- 0xea, 0x7a, 0x70, 0xff, 0x70, 0x72, 0xff, 0x72, 0x74, 0xff, \r
- 0x74, 0x76, 0xff, 0x76, 0x78, 0xff, 0x78, 0x7a, 0xff, 0x7a, \r
- 0x7c, 0xff, 0x7c, 0x7e, 0xff, 0x7e, 0x80, 0x80, 0x80, 0x83, \r
- 0x83, 0x83, 0x86, 0x86, 0x86, 0x89, 0x89, 0x89, 0x8b, 0x8b, \r
- 0x8b, 0x8e, 0x8e, 0x8e, 0x90, 0x90, 0x90, 0x93, 0x93, 0x93, \r
- 0x96, 0x96, 0x96, 0x99, 0x99, 0x99, 0x9a, 0x9a, 0x9a, 0x9e, \r
- 0x9e, 0x9e, 0xa0, 0xa0, 0xa0, 0xa5, 0xa5, 0xa5, 0xa6, 0xa6, \r
- 0xa6, 0xa9, 0xa9, 0xa9, 0xab, 0xab, 0xab, 0xac, 0xac, 0xac, \r
- 0xae, 0xae, 0xae, 0xb1, 0xb1, 0xb1, 0xb5, 0xb5, 0xb5, 0xb8, \r
- 0xb8, 0xb8, 0xba, 0xba, 0xba, 0xbc, 0xbc, 0xbc, 0xbe, 0xbe, \r
- 0xbe, 0x81, 0xeb, 0x81, 0x80, 0xec, 0x80, 0x85, 0xec, 0x85, \r
- 0x88, 0xed, 0x88, 0x88, 0xee, 0x88, 0x8d, 0xee, 0x8d, 0x80, \r
- 0xff, 0x80, 0x82, 0xff, 0x82, 0x84, 0xff, 0x84, 0x86, 0xff, \r
- 0x86, 0x88, 0xff, 0x88, 0x8a, 0xff, 0x8a, 0x8c, 0xff, 0x8c, \r
- 0x8e, 0xff, 0x8e, 0x97, 0xf0, 0x97, 0x90, 0xff, 0x90, 0x92, \r
- 0xff, 0x92, 0x94, 0xff, 0x94, 0x96, 0xff, 0x96, 0x9c, 0xf0, \r
- 0x9c, 0x98, 0xff, 0x98, 0x9a, 0xff, 0x9a, 0x9c, 0xff, 0x9c, \r
- 0x9e, 0xff, 0x9e, 0xa2, 0xf1, 0xa2, 0xa2, 0xf2, 0xa2, 0xa4, \r
- 0xf1, 0xa4, 0xa6, 0xf1, 0xa6, 0xa6, 0xf2, 0xa6, 0xa0, 0xff, \r
- 0xa0, 0xa2, 0xff, 0xa2, 0xa4, 0xff, 0xa4, 0xa6, 0xff, 0xa6, \r
- 0xa8, 0xf2, 0xa8, 0xac, 0xf3, 0xac, 0xae, 0xf3, 0xae, 0xa8, \r
- 0xff, 0xa8, 0xaa, 0xff, 0xaa, 0xac, 0xff, 0xac, 0xae, 0xff, \r
- 0xae, 0xb3, 0xf4, 0xb3, 0xb4, 0xf4, 0xb4, 0xb6, 0xf4, 0xb6, \r
- 0xb0, 0xff, 0xb0, 0xb2, 0xff, 0xb2, 0xb4, 0xff, 0xb4, 0xb6, \r
- 0xff, 0xb6, 0xbb, 0xf5, 0xbb, 0xb8, 0xff, 0xb8, 0xba, 0xff, \r
- 0xba, 0xbc, 0xff, 0xbc, 0xbe, 0xff, 0xbe, 0xc0, 0xc0, 0xc0, \r
- 0xc3, 0xc3, 0xc3, 0xc4, 0xc4, 0xc4, 0xc6, 0xc6, 0xc6, 0xc8, \r
- 0xc8, 0xc8, 0xca, 0xca, 0xca, 0xcc, 0xcc, 0xcc, 0xcf, 0xcf, \r
- 0xcf, 0xd0, 0xd0, 0xd0, 0xd2, 0xd2, 0xd2, 0xd4, 0xd4, 0xd4, \r
- 0xd6, 0xd6, 0xd6, 0xd8, 0xd8, 0xd8, 0xda, 0xda, 0xda, 0xdc, \r
- 0xdc, 0xdc, 0xdf, 0xdf, 0xdf, 0xc0, 0xff, 0xc0, 0xc2, 0xff, \r
- 0xc2, 0xc4, 0xff, 0xc4, 0xc6, 0xff, 0xc6, 0xc8, 0xff, 0xc8, \r
- 0xca, 0xff, 0xca, 0xcc, 0xf8, 0xcc, 0xce, 0xf8, 0xce, 0xcc, \r
- 0xff, 0xcc, 0xce, 0xff, 0xce, 0xd0, 0xf8, 0xd0, 0xd0, 0xff, \r
- 0xd0, 0xd2, 0xff, 0xd2, 0xd6, 0xf9, 0xd6, 0xd4, 0xff, 0xd4, \r
- 0xd6, 0xff, 0xd6, 0xd9, 0xf9, 0xd9, 0xd8, 0xff, 0xd8, 0xda, \r
- 0xff, 0xda, 0xdc, 0xfa, 0xdc, 0xdc, 0xff, 0xdc, 0xde, 0xff, \r
- 0xde, 0xe0, 0xe0, 0xe0, 0xe2, 0xe2, 0xe2, 0xe4, 0xe4, 0xe4, \r
- 0xe6, 0xe6, 0xe6, 0xe8, 0xe8, 0xe8, 0xea, 0xea, 0xea, 0xec, \r
- 0xec, 0xec, 0xee, 0xee, 0xee, 0xe1, 0xfa, 0xe1, 0xe3, 0xfb, \r
- 0xe3, 0xe0, 0xff, 0xe0, 0xe2, 0xff, 0xe2, 0xe5, 0xfb, 0xe5, \r
- 0xe4, 0xff, 0xe4, 0xe6, 0xff, 0xe6, 0xe8, 0xfc, 0xe8, 0xe8, \r
- 0xff, 0xe8, 0xea, 0xfc, 0xea, 0xea, 0xff, 0xea, 0xec, 0xff, \r
- 0xec, 0xee, 0xfd, 0xee, 0xee, 0xff, 0xee, 0xf0, 0xf0, 0xf0, \r
- 0xf2, 0xf2, 0xf2, 0xf4, 0xf4, 0xf4, 0xf6, 0xf6, 0xf6, 0xf1, \r
- 0xfd, 0xf1, 0xf0, 0xff, 0xf0, 0xf3, 0xfd, 0xf3, 0xf2, 0xff, \r
- 0xf2, 0xf5, 0xfd, 0xf5, 0xf4, 0xfe, 0xf4, 0xf6, 0xfe, 0xf6, \r
- 0xf8, 0xf8, 0xf8, 0xfa, 0xfa, 0xfa, 0xf8, 0xfe, 0xf8, 0xfa, \r
- 0xfe, 0xfa, 0xff, 00, 00, 0xfc, 0xfe, 0xfc, 0xfe, 0xfe, \r
- 0xfe, 0xd7, 0xd6, 0xbe, 0x1c, 00, 00, 00, 0xfe, 0x74, \r
- 0x52, 0x4e, 0x53, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, \r
- 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 00, 0xd8, 0xd9, 0xc, \r
- 0x71, 00, 00, 0xc, 0xc6, 0x49, 0x44, 0x41, 0x54, 0x78, \r
- 0xda, 0xed, 0x9c, 0xf, 0x50, 0x14, 0xd7, 0x19, 0xc0, 0xdf, \r
- 0xc2, 0x21, 0x2c, 0x77, 0x27, 0xa0, 0x1, 0x3d, 0x15, 0x10, \r
- 0x4, 0x39, 0x23, 0xe3, 0x14, 0x1, 0xeb, 0x1f, 0xc0, 0x51, \r
- 0x87, 0x88, 0x81, 0x91, 0x92, 0xa8, 0x41, 0x32, 0x49, 0xac, \r
- 0xb6, 0x8e, 0xa5, 0xa6, 0x8e, 0x1d, 0x3b, 0x6d, 0x9c, 0xce, \r
- 0x64, 0x3a, 0xda, 0xd8, 0x4e, 0xda, 0x4e, 0x67, 0x9c, 0x74, \r
- 0x92, 0x36, 0xa, 0xb6, 0x62, 0xac, 0xa6, 0x15, 0xdb, 0x10, \r
- 0xe8, 0x58, 0xb4, 0xa, 0x6, 0x14, 0x73, 0x54, 0x73, 0x53, \r
- 0x8e, 0x62, 0x4c, 0xf8, 0x93, 0x9c, 0x60, 0x10, 0xc9, 0x82, \r
- 0x87, 0x1c, 0xb0, 0x7d, 0xbb, 0xcb, 0xdd, 0xbd, 0xb7, 0xfb, \r
- 0xde, 0xde, 0xae, 0x98, 0x94, 0x23, 0x99, 0xdf, 0xcc, 0xed, \r
- 0xbd, 0xdd, 0xf7, 0xde, 0xed, 0xb7, 0xef, 0xbd, 0xef, 0x7d, \r
- 0xdf, 0xf7, 0xde, 0x1e, 0x33, 0xa, 00, 0xb8, 0x76, 0xf0, \r
- 0x36, 0xfc, 0x9c, 0xd2, 0xa4, 0x1c, 0x83, 0x1f, 0x50, 0xd8, \r
- 0x53, 0x7f, 0xfc, 0x6c, 0x82, 0x35, 0x5, 0x2, 0xec, 0xd6, \r
- 0x9d, 0x50, 0xd8, 0x3f, 0xbd, 0x36, 0xe1, 0x8a, 0x2, 0x83, \r
- 0xef, 0x3f, 0xc7, 0x8c, 0xe6, 0x72, 0x13, 0xae, 0x26, 0x30, \r
- 0x30, 0x9f, 0x33, 0xbc, 0x20, 0xc9, 0x6a, 0x88, 0xc, 0x9e, \r
- 0x50, 0x4d, 0x93, 0x92, 0xa0, 0x69, 0xd2, 0x71, 0xb0, 0x4f, \r
- 0xd0, 0x4c, 0xdc, 0x29, 0x26, 0x53, 0x48, 0xb1, 0x31, 0xd9, \r
- 0x39, 0x33, 0x1e, 0xb2, 0xc6, 0x49, 0x4c, 0x58, 0x8c, 0x74, \r
- 0xfc, 0xe0, 0x17, 0x1f, 0xbb, 0xe1, 0x61, 0xba, 0x24, 0x6c, \r
- 0xfc, 0x6b, 0xe3, 0xa7, 0xa7, 0x28, 0x1d, 0x3f, 0xf8, 0x54, \r
- 0x38, 0x4, 0x9, 0x1f, 0x21, 0xeb, 0xa6, 0xb6, 0xac, 0x20, \r
- 0x6e, 0xad, 0x41, 0x38, 0x88, 0xc2, 0x1a, 0xd8, 0x9, 0x54, \r
- 0x14, 0x10, 0x44, 0x84, 0x8, 0x9f, 0xa2, 0xb0, 0x5f, 0x15, \r
- 0xbe, 0x16, 0x76, 0xaa, 0x22, 0xe, 0x5c, 0x1a, 0xfd, 0x63, \r
- 0x7d, 0x1f, 0xa7, 0x47, 0x68, 0xab, 0xe8, 0x91, 0xe2, 0xe2, \r
- 0x84, 0x89, 0x11, 0x12, 0x6c, 0xd6, 0xaa, 0x4e, 0xc4, 0x22, \r
- 0xfd, 0xc2, 0xcd, 0xd2, 0xcb, 0xd0, 0x85, 0xed, 0x7b, 0xef, \r
- 0x82, 0xcb, 0xdd, 0x78, 0xaf, 0x7c, 0xad, 0xef, 0x94, 0xb3, \r
- 0x8b, 0x92, 0xd7, 0xc, 0x40, 0xbc, 0xfc, 0x17, 0xa8, 0x99, \r
- 0x51, 0x82, 0xe7, 0x29, 0xe6, 0x81, 0x9e, 0xae, 0xd1, 0xa1, \r
- 0xee, 0xdb, 0x3, 00, 0xb4, 0xa6, 00, 0x60, 0x9a, 0x61, \r
- 0xb2, 0x4, 0x5b, 0x2c, 0xea, 0x95, 0xb8, 0xda, 0xb9, 0xa1, \r
- 0xbe, 0xde, 0xde, 0x11, 0xa9, 0x88, 0x61, 0xa6, 0x79, 0x56, \r
- 0x18, 0x30, 0x2b, 0xee, 0x7, 0x42, 0x13, 0xd6, 0xfd, 0xaf, \r
- 0xd3, 0x67, 0x7a, 0xe1, 0x91, 0x75, 0xf7, 0xd7, 0xd7, 00, \r
- 0xb0, 0x1b, 0xd6, 0x2, 0x5c, 0x17, 0x2a, 0x29, 0xb9, 0xcd, \r
- 0xc9, 0x20, 0xce, 0x14, 0x15, 0x6d, 0x45, 0xcf, 0x5d, 0xae, \r
- 0x1a, 0xa4, 0xe4, 0x46, 0x30, 0x6e, 0xc7, 0x85, 0x75, 0xd9, \r
- 0x9d, 0x1d, 0xef, 0x7b, 0xca, 0xd9, 0xc6, 0xf3, 0x2c, 0x89, \r
- 0x9d, 0x95, 0x42, 0x9f, 0x1b, 0x6d, 0x5d, 0x3, 0xb5, 0x5e, \r
- 0x8b, 0x77, 0xbc, 0x8, 0x60, 0xd2, 0xe2, 0x62, 0x93, 0x14, \r
- 0xcf, 0x88, 0x26, 0x6c, 0xed, 0x4e, 0x6f, 0xc3, 0x54, 0xbd, \r
- 0xe, 0x40, 0xe8, 0x21, 0x51, 0x77, 0xd3, 0xe0, 0x6c, 0xf0, \r
- 0x67, 0xe0, 0xf, 0x58, 0x97, 0xaa, 0xe5, 0xf2, 0x8b, 0xeb, \r
- 0xda, 0xcd, 0x4b, 0xca, 0x27, 0x34, 0xd8, 0xd0, 0x60, 0x5c, \r
- 0xb2, 0x60, 0x39, 0x51, 0x5c, 0x97, 0xbd, 0xad, 0xc3, 0x23, \r
- 0x20, 0xa, 0x6f, 0xb3, 0x19, 0x4b, 0xb5, 0xa, 0x7b, 0xd1, \r
- 0x27, 0x6b, 0xc4, 0x74, 0xd6, 0x5, 0xde, 0x2d, 0x4d, 0x24, \r
- 0x67, 0x44, 0x80, 0x3f, 0xb0, 0xf4, 0x7a, 0xfe, 0x4, 0xcc, \r
- 0x13, 0xdb, 0x75, 0x82, 0xa8, 0x22, 0x83, 0xd, 0x37, 0x3e, \r
- 0xcc, 0xc8, 0x50, 0x76, 0x4c, 0x47, 0x43, 0x3d, 0xd5, 0x8d, \r
- 0x9, 0x9a, 0xa7, 0x38, 0x45, 0x16, 0xd6, 0xfd, 0x77, 0x64, \r
- 0xc0, 0xad, 0x3f, 0xfd, 0x11, 0xe8, 0x6e, 0xf7, 0x2f, 0x2c, \r
- 0xc4, 0xc6, 0xf4, 0x3e, 0xeb, 0x67, 0x80, 0xd1, 0xa9, 0x2b, \r
- 0x1f, 0xe0, 0xa9, 0x17, 0xa1, 0xb8, 0x37, 0x15, 0xf, 0xb2, \r
- 0xa9, 0xb6, 0x99, 0x5e, 0x82, 00, 0x59, 0xd8, 0xf6, 0xa, \r
- 0xf8, 0x31, 0xa7, 0x78, 0xec, 0xd, 0x17, 0x3c, 0xc6, 0x42, \r
- 0xdf, 0xa1, 0x1f, 0x8e, 0x7e, 0x2d, 0xf0, 0x57, 0x5b, 0xe, \r
- 0x3e, 0x9c, 0xb4, 0xae, 0x2a, 0x3f, 0x63, 0x7c, 0xb0, 0xa6, \r
- 0xf7, 0x79, 0x5c, 0x5a, 0xdb, 0xef, 0xd4, 0x4a, 0x24, 0x47, \r
- 0x2a, 0x4e, 0x91, 0xe7, 0xd9, 0x4f, 0xee, 00, 0x90, 0x50, \r
- 0x76, 0x68, 0xbd, 0xf8, 0x28, 0xe2, 0xb3, 0x1, 0x18, 0xa3, \r
- 0x55, 0xa9, 0x80, 0xfb, 0xa9, 0xe6, 0xac, 0x28, 0xae, 0x33, \r
- 0xa7, 0xfd, 0xe9, 0x33, 0xfe, 0xea, 0x4b, 0x3d, 0x68, 0xda, \r
- 0x79, 0x58, 0xbd, 0x84, 0xb2, 0xd7, 0x93, 0x85, 0x1d, 0x83, \r
- 0xc2, 0x45, 0xe4, 0x8e, 0xeb, 0xa4, 0xae, 0xf7, 0x28, 0xb5, \r
- 0x91, 0xe1, 0xca, 0x74, 0x65, 0x97, 0x70, 0x9d, 0x39, 0xab, \r
- 0xa1, 0x43, 0x72, 0x2f, 0x9, 0x3d, 0x6d, 0x9c, 0x9e, 0xfd, \r
- 0x1a, 0xb4, 0x3d, 0xe, 0x59, 0x58, 0xe1, 0x87, 0x19, 0x4f, \r
- 0x62, 0x78, 0x58, 0x4b, 0x45, 0x3e, 0x2e, 0xe9, 0xcb, 0x2e, \r
- 0x62, 0xaf, 0x54, 0xca, 0xea, 0xbd, 0x1, 0x1f, 0x1c, 0x9c, \r
- 0x18, 0x3c, 0x10, 0x95, 0x19, 0x52, 0x86, 0x30, 0x40, 0xc9, \r
- 0x63, 0x56, 0x28, 0xe3, 0x16, 0xcd, 0x11, 0x48, 0x19, 0xc, \r
- 0x3d, 0x1a, 0x94, 0x71, 0xc, 0x63, 0x50, 0x32, 0x30, 0x8c, \r
- 0x80, 0xb6, 0xb1, 0xfb, 0xb2, 0xfb, 0xbc, 0xdf, 0x24, 0xfa, \r
- 0xc8, 0x7a, 0x70, 0xfe, 0x4a, 0x76, 0xc2, 0x98, 0x62, 00, \r
- 0x33, 0x7b, 0xc1, 0x48, 0xab, 0xac, 0xf2, 0xc6, 0x3a, 0x38, \r
- 0xa6, 0x44, 0x5c, 0xa7, 0x95, 0x25, 0x80, 0x50, 0x6, 0xc0, \r
- 0x7b, 0xa2, 0x68, 0x3a, 0xb2, 0xb0, 0x42, 0x7b, 0x3b, 0xf, \r
- 0xee, 0x17, 0xbe, 0xba, 0xcf, 0x9f, 0x85, 0xd6, 0xcc, 0x9c, \r
- 0xb9, 0x8a, 0x3c, 0xb9, 0x6b, 00, 0xb0, 0x38, 0x41, 0xbf, \r
- 0xfd, 0xf6, 0x50, 0x13, 0x56, 0x37, 0x5f, 0x2f, 0x5, 0x4, \r
- 0xd2, 0x85, 0xe8, 0x80, 0xc4, 0x28, 0x9a, 0x83, 0x59, 0xee, \r
- 0xfb, 0x1e, 0x69, 0x14, 0xf, 0x7f, 0xc1, 0x6f, 0xce, 0xb8, \r
- 0x78, 0x61, 0xae, 0x38, 0xe2, 0x5c, 0xf6, 0x2b, 0x5e, 0x13, \r
- 0x43, 0xaa, 0xbb, 0xdc, 0x63, 0x5e, 0xd8, 0xb1, 0x22, 0x4c, \r
- 0xe6, 0x42, 0xdf, 0x44, 0xec, 0x6a, 0xb7, 0x77, 0x3e, 0x68, \r
- 0x26, 0x84, 0x99, 0xc8, 0xc2, 0xce, 0x85, 0x4f, 0xa8, 0xf7, \r
- 0xe8, 0x79, 0xde, 0xd, 0xdc, 0x3f, 0x1a, 0x6e, 0x87, 0x27, \r
- 0x36, 0xce, 0x56, 0xe4, 0x31, 0x9, 0x5a, 0xd7, 0x2, 0x2c, \r
- 0x56, 0xe0, 0x9c, 0x8f, 0x2b, 0xd2, 0x7, 0xe2, 0x67, 0x26, \r
- 0xd2, 0xbe, 0x8e, 0x26, 0xe4, 0x72, 0xda, 0x5e, 0x79, 0x55, \r
- 0x8e, 0x3a, 0x2c, 0x69, 0xde, 0x90, 0x33, 0x7e, 0xe3, 0x6c, \r
- 0x66, 0x66, 0x5d, 0x39, 0x36, 0x93, 0xe, 0xfc, 0xb3, 0x44, \r
- 0xfa, 0x52, 0x8f, 0x9e, 0x65, 0xf2, 0xd0, 0x69, 0x89, 0xb5, \r
- 0xc2, 0x7b, 0x4a, 0x8a, 0xc7, 0xea, 0x14, 0x21, 0xb, 0x1b, \r
- 0x5d, 0x72, 0x18, 0x80, 0xbe, 0x3e, 0xf8, 0x6d, 0xa4, 0x55, \r
- 0x48, 0x9b, 0x9e, 0x50, 0x73, 0x7, 0x2c, 0x9b, 0x66, 0x1d, \r
- 0xd5, 0xad, 0x2c, 0x50, 0xaa, 0xb1, 0x56, 0x32, 0x6f, 0xf3, \r
- 0x74, 0x55, 0x81, 0xec, 0xb0, 0xd7, 0x51, 0x69, 0xf9, 0x8e, \r
- 0x1e, 0x49, 0xac, 0x1b, 0x68, 0x91, 0xb4, 0x3c, 0xf9, 0x14, \r
- 0x6c, 0xd9, 0x24, 0x3b, 0x21, 0x40, 0x56, 0x50, 0x11, 0xdf, \r
- 0x9a, 0x83, 0xa5, 0x13, 0x1e, 0x27, 0x66, 0xf3, 0x92, 0xbd, \r
- 0x18, 0x4d, 0xb5, 0xa9, 0x67, 0x56, 0xe0, 0xc0, 0x6e, 0xdc, \r
- 0xb8, 0x1, 0x95, 0x15, 0x80, 0xcc, 0x5d, 0x98, 0xa6, 0x6a, \r
- 0x25, 0xe9, 0x3f, 0x83, 0xb6, 0xb9, 0x9d, 0xe2, 0xcf, 0x66, \r
- 0x6d, 0x35, 0x21, 0xa9, 0x84, 0xdf, 0xfa, 0xb3, 0x9f, 0xe6, \r
- 0x13, 0x54, 0xa7, 0x66, 0x1a, 0xee, 0xa3, 0xa9, 0x94, 0x1c, \r
- 0xd9, 0xe5, 0xcc, 0x3c, 0x34, 0x35, 0xd8, 0x29, 0x1d, 0xb1, \r
- 0x32, 0x1a, 0xa1, 0x8, 0x1b, 0xb2, 0x7f, 0x67, 0xb4, 0x37, \r
- 0xcb, 0x82, 0x3f, 0x40, 0x5d, 0xa4, 0x4e, 0x2a, 0x9a, 0x48, \r
- 0xf6, 0x97, 0x5b, 0x46, 0x37, 0xda, 0x8b, 0x99, 0x55, 0xa, \r
- 0xeb, 0x3a, 0x1f, 0x7b, 0x92, 0x76, 0x92, 0xe1, 0xaf, 0xd, \r
- 0x5a, 0xa4, 0x22, 0xea, 0xd0, 0xa9, 0x5d, 0xd0, 0x4b, 0x85, \r
- 0xcc, 0xdc, 0xf7, 0xf, 0xc4, 0xa5, 0xa5, 0x60, 0x47, 0xbe, \r
- 0x33, 0x68, 0xa7, 0xd0, 0x80, 0x13, 0xeb, 0xf6, 0x26, 0xbc, \r
- 0x13, 0xb, 0xc4, 0x20, 0xea, 0x1b, 0x80, 0x1, 0x87, 0xb2, \r
- 0x8a, 0xa6, 0xb7, 0x95, 0xe7, 0x8, 0x50, 0x9d, 0xf7, 0x90, \r
- 0xd5, 0x2b, 0x7f, 0x2e, 0x68, 0x28, 0x66, 0x86, 0x96, 0x50, \r
- 0x45, 0x27, 0xda, 0x38, 0x2b, 0x35, 0x14, 0x40, 0xb8, 0x8c, \r
- 0xd9, 0xa2, 0x69, 0x84, 0x1c, 0xc5, 0xd, 0x48, 0x82, 0x97, \r
- 0x94, 0x3d, 0x6, 0x7f, 0x7a, 0xb8, 0x48, 0x43, 0x48, 0x43, \r
- 0x25, 0x2c, 0x13, 0x12, 0x15, 0xe5, 0xbf, 0xbc, 0x84, 0x13, \r
- 0x6d, 0xd9, 0x70, 0x9d, 0x4e, 0x6d, 0x27, 0xaa, 0xc9, 0x99, \r
- 0x2d, 0x84, 0x1c, 0x91, 0xc, 0xfa, 0x2c, 0xef, 0xb9, 0x4, \r
- 0xb9, 0x32, 0xaf, 0xa2, 0x39, 0xf8, 0xca, 0x73, 0xf9, 0xab, \r
- 0x22, 0xfd, 0xc9, 0x2b, 0x76, 0xe3, 0x11, 0xc4, 0xe4, 0xc4, \r
- 0xe9, 0x17, 0x1a, 0xd7, 0x2f, 0xce, 0xa, 0x74, 0x76, 0x48, \r
- 0xd7, 0x52, 0x84, 0xa, 0xc9, 0x1f, 0x66, 0xb1, 0x7e, 0x3c, \r
- 0x7a, 0x4f, 0xf8, 0x5c, 0x2d, 0xcb, 0x33, 0x78, 0x6a, 0xcf, \r
- 0xee, 0x3a, 0x87, 0x93, 0x2a, 0x89, 0x80, 0xd8, 0xb2, 0x6e, \r
- 0xd2, 0x2, 0xad, 0xfb, 0xd6, 0x71, 0x37, 0x18, 0x4, 0x7b, \r
- 0x92, 0x28, 0x25, 0x87, 0xa5, 0x7a, 0xb9, 0xd1, 0xfe, 0x3b, \r
- 0x97, 0x51, 0x9d, 0x61, 0xde, 0x41, 0x29, 0x40, 0x1, 0xbf, \r
- 0xbd, 0x70, 0x62, 0x9e, 0xc, 0xb4, 0x1f, 0xb7, 0x74, 0x9, \r
- 0x13, 0x4d, 0x2a, 0xd6, 0xda, 0x22, 0xdc, 0x61, 0x60, 0x5e, \r
- 0x97, 0x6c, 0x9e, 0x41, 0x8d, 0x1f, 0x50, 0xbb, 0x71, 0xeb, \r
- 0x1b, 0x55, 0x5d, 0xf0, 0x3e, 0xd8, 0x82, 0xe8, 0xf7, 0xcf, \r
- 0x3, 0xb0, 0x23, 0x41, 0x91, 0xe1, 0xe3, 0x33, 0xe2, 0xe1, \r
- 0x41, 0x77, 0x2b, 0x66, 0x50, 0x18, 0x77, 0xe9, 0x5c, 0x5e, \r
- 0xf0, 0x4, 0x12, 0x25, 0x96, 0x10, 0xf3, 0x48, 0x46, 0xe5, \r
- 0x38, 0x3, 0x4e, 0xe1, 0x93, 0xcd, 0xab, 0x26, 0x55, 0x56, \r
- 0x9, 0x8c, 0x39, 0x49, 0xca, 0xe8, 0x93, 0x4, 0x4d, 0xd8, \r
- 0xb, 0xbb, 0x3a, 0x87, 0xc6, 0xbf, 0x56, 0x1e, 0x7, 0x80, \r
- 0x39, 0xa0, 0xc8, 0x81, 0x8d, 0x19, 0x2f, 0xc6, 0x7c, 0xbd, \r
- 0x5e, 0xc0, 0x28, 0x16, 0x17, 0x50, 0x7a, 0xdc, 0x2, 0xd8, \r
- 0xcd, 0xf3, 0x92, 0x17, 0x96, 0x4f, 0x89, 0xc8, 0xc, 0x56, \r
- 0x33, 0xcb, 0x63, 0x57, 0x11, 0xc5, 0xa5, 0x8, 0x7b, 0xb3, \r
- 0xf4, 0x43, 0x8f, 0x8e, 0x8c, 0x98, 0x36, 0xe8, 0x6, 0xdd, \r
- 0x7d, 0x9a, 0x94, 0x15, 0xb3, 0x3c, 0x23, 0x43, 0x4b, 0x3e, \r
- 0x94, 0x2e, 0x6c, 0xe6, 0xa1, 0xd, 0x1a, 0x25, 0x31, 0x85, \r
- 0x15, 0x14, 0x17, 0x98, 0x6f, 0x68, 0xec, 0x5c, 0xb0, 0x91, \r
- 0x70, 0x81, 0x32, 0xcf, 0x1e, 0x6b, 0xf7, 0xcd, 0x7, 0xeb, \r
- 0x67, 0x1, 0xf0, 0x2e, 0x16, 0x23, 0xa0, 0xc0, 0xac, 0xd8, \r
- 0x5d, 0x9c, 0xad, 0x7b, 0x8d, 0xcc, 0x89, 0xcd, 0x3c, 0x58, \r
- 0x87, 0x55, 0x27, 0xb7, 0x90, 0x6a, 0xb6, 0xf1, 0xd, 0x15, \r
- 0x65, 0x4, 0x55, 0x45, 0x6e, 0xd9, 0x5b, 0x27, 0x60, 0x1f, \r
- 0x36, 0x25, 0x7c, 0xb3, 0x42, 0x28, 0x91, 00, 0xef, 0xff, \r
- 0xce, 0x27, 0x42, 0xe0, 0x58, 0x9d, 0xa5, 0x4f, 0x28, 0x23, \r
- 0xde, 0x5f, 0x24, 0x6c, 0x91, 0xe9, 0x2c, 0x35, 0xb6, 0xc8, \r
- 0xd7, 0xc, 0xee, 0x50, 0x3c, 0x77, 0x72, 0xcb, 0x76, 0x42, \r
- 0x3, 0x34, 0xba, 0xb4, 0xf2, 0x29, 0xf1, 0x51, 0x44, 0x43, \r
- 0x8b, 0xc8, 0x8d, 0x69, 0x11, 0x32, 0xcd, 0x17, 0xef, 0xfa, \r
- 0xcf, 0xf4, 0x28, 0x61, 0x37, 0x1e, 0xcc, 0xa1, 0x37, 0x6e, \r
- 0x9d, 0xa4, 0x40, 0x51, 0x28, 0x31, 0x28, 0xa8, 0x34, 0x66, \r
- 0x1f, 0x48, 0x18, 0xaf, 0x49, 0x63, 0xb8, 0x92, 0x6f, 0xac, \r
- 0x44, 0xdd, 0x56, 0xad, 0xcc, 0xc3, 0x6e, 0x41, 0xc3, 0x43, \r
- 0x45, 0xb0, 0xec, 0xfe, 0xd9, 0x32, 0x9a, 0xb8, 0x7c, 0x2d, \r
- 0xee, 0x25, 0x43, 0xe8, 0x31, 0x28, 0x83, 0x67, 0xd, 0xe0, \r
- 0xb6, 0x56, 0x5f, 0x95, 0xb7, 0xd5, 0x12, 0xec, 0x56, 0x7f, \r
- 0xcc, 0x5b, 0x84, 0xa6, 0x30, 0x9f, 0x5c, 0x3, 0xd6, 0x7d, \r
- 0xe5, 0x5b, 0x8c, 0x46, 0xa2, 0xc0, 0xdc, 0x75, 0xf9, 0x19, \r
- 0x7a, 0xc, 0xca, 0xdb, 0x9e, 0xc7, 0xa1, 0xc9, 0xa1, 0x71, \r
- 0x65, 0xd3, 0xf6, 0x38, 0xb6, 0xdc, 0xf3, 0x10, 0x90, 0x5b, \r
- 0x16, 0x5b, 0x23, 0x33, 0x42, 0x85, 0x89, 0xc0, 0x6e, 0xda, \r
- 0xe4, 0xac, 0xe9, 0x26, 0x85, 0x9d, 0x9a, 0xe5, 0xc1, 0x30, \r
- 0x95, 0x55, 0x3c, 0xc9, 0xd9, 0xe1, 0x6f, 0xfd, 0xd, 0x9a, \r
- 0x8c, 0x51, 0xe3, 0x9b, 0x6c, 0x10, 0xcc, 0x82, 0x5b, 0x37, \r
- 0x3a, 0x82, 0xc7, 0xe4, 0xcf, 0x66, 0xea, 0xe, 0x91, 0x4b, \r
- 0xbe, 0x95, 0x7, 0xf2, 0x40, 0x10, 0x22, 0x43, 0x5e, 0x82, \r
- 0xc2, 0xe4, 0x97, 0x2d, 0xdf, 0x6, 0xce, 0xcb, 0x30, 0xec, \r
- 0x24, 0x93, 0x97, 0x6b, 0xd3, 0x24, 0xec, 0x1c, 0x33, 0x7, \r
- 0xda, 0x4b, 0xb, 0xdc, 0x23, 0x60, 0xe4, 0xaf, 0x8d, 0xff, \r
- 0x81, 0x27, 0x8a, 0x94, 0x96, 0x4d, 0xa1, 0x38, 0x93, 0x39, \r
- 0x67, 0x61, 0x73, 0x3b, 0x27, 0x9a, 0x72, 0xba, 0x60, 0xf1, \r
- 0xc8, 0x98, 0x68, 0xe5, 0xcb, 0x70, 0x61, 0xc6, 0xd2, 0x22, \r
- 0xe5, 0x22, 0xe, 0x10, 0xc2, 0x30, 0x8e, 0xb8, 0x4f, 0xc9, \r
- 0x86, 0x8e, 0x17, 0x72, 0xff, 0x9c, 0xfd, 0xc, 0xfc, 0xf8, \r
- 0xe8, 0xf0, 0x11, 0x17, 0x70, 0xbf, 0x69, 0x87, 0xf3, 0x60, \r
- 0x48, 0xc, 0xcd, 0xa6, 0xb0, 0x14, 0x17, 0x62, 0x4d, 0x53, \r
- 0xaf, 0x6a, 0x89, 0x13, 0x89, 0xc4, 0x7d, 0x73, 0x52, 0x16, \r
- 0x6c, 0x86, 0x9, 0x23, 0x5b, 0x59, 0xc0, 0x5a, 0x52, 0xb0, \r
- 0x1, 0x1f, 0xbc, 0x77, 0x65, 0xd6, 0x1, 0x25, 0x6, 0xf5, \r
- 0xf4, 0x74, 0xe1, 0xe0, 0x8d, 0x85, 0xc6, 0x3f, 0x47, 0xcc, \r
- 0x26, 0xc0, 0xe6, 0x66, 0xa1, 0xc9, 0x46, 0xd1, 0x25, 0xd1, \r
- 0x45, 0x12, 0x6a, 0xfc, 0xf3, 0x24, 0xd, 0x85, 0x3f, 00, \r
- 0x23, 0xd5, 0x6e, 0xb1, 0x16, 0x63, 0x11, 0x1c, 0x30, 0x24, \r
- 0xd3, 00, 0x14, 0xcd, 0xb3, 0xac, 0x4, 0xbd, 0x10, 0xfd, \r
- 0x1b, 0x15, 0x93, 0x82, 0x5d, 0xb1, 0xc, 0x49, 0xf1, 0xfa, \r
- 0x67, 0x9f, 0x24, 0xec, 0x1e, 0x6e, 0x10, 0x6c, 0xb5, 0x5a, \r
- 0x34, 0xc1, 0xe0, 0x83, 0x1c, 0x83, 0xcd, 0xc3, 0x2c, 0xb0, \r
- 0x16, 0xd1, 0x65, 0xf0, 0x41, 0x11, 0x36, 0x6a, 0xdf, 0x76, \r
- 0x5f, 0x70, 0x25, 0x7a, 0xbb, 0x32, 0x54, 0x82, 0x60, 0xc5, \r
- 0x22, 0x91, 0x67, 0x75, 0xf7, 0x63, 0xb, 0x16, 0xb3, 0xba, \r
- 0x5f, 0xa5, 0xc8, 0xe0, 0x68, 0x46, 0x53, 0x69, 0xab, 0x54, \r
- 0xea, 0x8a, 0x94, 0x47, 0xeb, 0x30, 0x68, 0x73, 0x4a, 0xe2, \r
- 0x2f, 0xf7, 0x24, 0x4a, 0xca, 0x8b, 0xfd, 0xc6, 0xc9, 0x9f, \r
- 0xa8, 0x47, 0x66, 0x96, 0xa2, 0xa1, 0x9, 0x4e, 0x7f, 0x3f, \r
- 0x8e, 0x43, 0x47, 0x1a, 0x5f, 0xaf, 0x98, 0xab, 0xf1, 0x75, \r
- 0xa0, 0x50, 0x35, 0x15, 0xc8, 0xce, 0x44, 0x53, 0x69, 0x32, \r
- 0x55, 0x46, 0x9d, 0x7a, 0xa2, 0xe, 0xfc, 0xb0, 0xa7, 0xad, \r
- 0x1e, 0xc6, 0xda, 0x63, 0x67, 0xfa, 0xb, 0x42, 0x59, 0xb1, \r
- 0x8, 0xdb, 0x49, 0x45, 0xc0, 0xdf, 0x1f, 0x45, 0xe7, 0x50, \r
- 0xb3, 0x65, 0xa0, 0x5a, 0xb6, 0xf7, 0xe3, 0x4, 0xd6, 0xb0, \r
- 0xc6, 0x5, 0x6a, 0x55, 0xb9, 0x3a, 0xd4, 0xae, 0x92, 0x85, \r
- 0xbd, 0xb8, 0x26, 0x24, 0x92, 0x7d, 0xea, 0xe5, 0x94, 0x2, \r
- 0xb5, 0xa2, 0x3e, 0xe2, 0x8c, 0xc8, 0xdd, 0x36, 0xe8, 0x16, \r
- 0x96, 0x5d, 0x82, 0x5, 0xd4, 0x1a, 0x23, 0x8b, 0x51, 0x69, \r
- 0x4f, 0xe0, 0x8b, 0x99, 0x8b, 0x3d, 0xbe, 0x9b, 0xcd, 0x41, \r
- 0x88, 0xb1, 0xdd, 0xc3, 0x4c, 0x44, 0x79, 0xcc, 0x82, 0xdc, \r
- 0x8d, 0x47, 0x81, 0xfb, 0x4e, 0xc7, 0x3, 0xcd, 0x3b, 0xa0, \r
- 0x72, 0xb1, 0x5, 0x1, 0xfd, 0x2a, 0xa, 0x8f, 0xf9, 0xf3, \r
- 0x35, 0x47, 0x7c, 0x8a, 0xa5, 0x47, 0x26, 0x2b, 0xb3, 0xd0, \r
- 0xf3, 0xad, 0xab, 0x72, 0x5b, 0x99, 0xa3, 0x7, 0xd7, 0x10, \r
- 0xce, 0x63, 0x58, 0x8, 0x5a, 0x6e, 0x9, 0xd1, 0xcd, 0x45, \r
- 0xc0, 0xbb, 0x55, 0x77, 0xc8, 0x20, 0xe0, 0x76, 0x41, 0xad, \r
- 0xee, 0x15, 0x4b, 0xb6, 0x10, 0xdb, 0x73, 0xc4, 0x5f, 0x6a, \r
- 0x2e, 0x5c, 0x18, 0x11, 0x6c, 0x6, 0xf7, 0xfa, 0xb9, 0x8b, \r
- 0x32, 0x3b, 0x21, 0xd3, 0xeb, 0x94, 0xff, 0x17, 0xf0, 0xd5, \r
- 0xd5, 0xc6, 0x9c, 0xd4, 0xe0, 0xf0, 0x8, 0x31, 0xbe, 0x1, \r
- 0x83, 0x61, 0x1c, 0xb6, 0x2c, 0x4, 0x4c, 0xf2, 0x75, 0xc, \r
- 0x8a, 0x5, 0x5, 0x37, 0xc8, 0x80, 0xb, 0xed, 0x9a, 0xc3, \r
- 0x6, 0x19, 0x37, 0x90, 0x7e, 0xdc, 0x4a, 0x32, 0x82, 0xd4, \r
- 0x29, 0x92, 0xd9, 0x3e, 0xdc, 0x71, 0x26, 0xcd, 0x30, 0x47, \r
- 0x1e, 0xde, 0x82, 0x18, 0x7d, 0x3, 0x4b, 0x8c, 0xe6, 0xc, \r
- 0x56, 0x57, 0xc3, 0x2d, 0x49, 0x70, 0x9f, 0x17, 0x18, 0xee, \r
- 0x56, 0x98, 0x8b, 0x59, 0xf2, 0x98, 0x2e, 0x59, 0xd8, 0x18, \r
- 0xeb, 0xf5, 0x31, 0xf0, 0xe9, 0x91, 0x43, 0xc4, 0x8b, 0x4, \r
- 0x32, 0xca, 0x91, 0xc4, 0xfd, 0x2a, 0xd2, 0xa, 0x9a, 0x2a, \r
- 0x6c, 0x41, 0x8b, 0xcc, 0xd, 0xe7, 0x89, 0x8b, 0x1c, 0x4c, \r
- 0xbe, 0xcf, 0xd1, 0xf0, 0x66, 0x20, 0x67, 0x5, 0x92, 0xf1, \r
- 0x8e, 0x41, 0x1e, 0xb3, 0x51, 0x7f, 0x5e, 0x10, 0x4, 0xb8, \r
- 0x8a, 0x3d, 0x1f, 0x91, 0xab, 0x51, 0xc0, 0xa2, 0x6e, 0x1a, \r
- 0x7f, 0x53, 0x63, 0x29, 0x4, 0x6b, 0xa1, 0xa6, 0x78, 0x4c, \r
- 0x9e, 0x8e, 0xc7, 0xc8, 0x64, 0x29, 0x86, 0x13, 0x65, 0x1f, \r
- 0xd4, 0xe8, 0xe6, 0xb7, 0x3a, 0x47, 0xba, 0xca, 0xde, 0xf1, \r
- 0x5c, 0x5e, 0xf3, 0x63, 0x65, 0x2c, 0x15, 0x65, 0x35, 0xba, \r
- 0xb4, 0xde, 0xe6, 0xd0, 0xef, 0xe8, 0xe5, 0x82, 0x33, 0xfe, \r
- 0xdd, 0xe6, 0xd, 0xf9, 0x7e, 0xb3, 0x78, 0x61, 0x96, 0xe3, \r
- 0xa6, 0xa3, 00, 0x59, 0xd8, 0xae, 0xa2, 0xbe, 0x21, 0x68, \r
- 0xff, 0xf, 0xc0, 0xd, 0x6, 0x12, 0x9f, 0x6f, 0x55, 0x17, \r
- 0x36, 0x35, 0x1c, 0xb9, 0xd5, 0x81, 0x6, 0xfd, 0xc2, 0xb2, \r
- 0xb9, 0x51, 0x58, 0xa8, 0x9d, 00, 0xb3, 0x39, 0x1f, 0x51, \r
- 0x6, 0xfe, 0xc, 0xb5, 0xcc, 0x62, 0xa5, 0xf1, 0x21, 0x9, \r
- 0x2b, 0x77, 0x99, 0xf9, 0xfe, 0x6e, 0x3f, 0x75, 0xc9, 0x60, \r
- 0x53, 0x90, 0x3b, 0xe5, 0x7b, 0xf5, 0xab, 0x28, 0xc0, 0x66, \r
- 0x47, 0x1b, 0x54, 0x3d, 0x34, 0xf3, 0x36, 0x6c, 0x3f, 0x1f, \r
- 0xe6, 0xe2, 0x2a, 0x59, 0xf1, 0x2c, 0x21, 0xf8, 0xa7, 0xba, \r
- 0xdf, 0x58, 0x7, 0xeb, 0xd0, 0x66, 0x69, 0xb1, 0xeb, 0x9e, \r
- 0x7d, 0x20, 0xd6, 0x78, 0xd9, 0xde, 0xc, 0x14, 0x26, 0x7b, \r
- 0x8b, 0x8e, 0xd0, 0x25, 0xb3, 0x2f, 0x95, 0xf4, 0xb8, 0x1f, \r
- 0x95, 0xb0, 0x98, 0x74, 0xdc, 0x95, 0x87, 0x11, 0x56, 0x8, \r
- 0xb0, 0x9c, 0x38, 0x27, 0xdf, 0x68, 0x24, 0xc0, 0x84, 0xa7, \r
- 0x3f, 0x2d, 0xef, 0x94, 0x36, 0x86, 0x16, 0x8, 0x64, 0xc2, \r
- 0x8b, 0xa4, 0xbd, 0x36, 0xa, 0x28, 0xc2, 0xb2, 0x26, 0xdc, \r
- 0xd, 0xe, 0x17, 0x77, 0xcb, 0x98, 0x50, 0xef, 0x4a, 0xe6, \r
- 0xce, 0x2f, 0x6b, 0x41, 0x53, 0xe3, 0xbb, 0x3c, 0x3c, 0x44, \r
- 0xa0, 0xd6, 0x73, 0x28, 0x5e, 0x10, 0xa3, 0xa4, 0xa4, 0xe9, \r
- 0x62, 0xb, 0x40, 0xb6, 0x56, 0x31, 0x20, 0x3c, 0x28, 0x39, \r
- 0x89, 0xa0, 0x84, 0x4b, 0x8a, 0xec, 0x57, 0xa0, 0xd1, 0xc, \r
- 0xb5, 0xa, 0xba, 0xeb, 0x28, 0x3c, 0x8, 0xa4, 0xae, 0xa6, \r
- 0x2e, 0x99, 0x4a, 0x2f, 0x31, 0xe5, 0xbf, 0x2c, 0xa5, 0xfa, \r
- 0xff, 0xd, 0x47, 0x6f, 0x42, 0x2, 0x70, 0xd7, 0xcb, 0x76, \r
- 0xb5, 0x4d, 0xcb, 0x12, 0xac, 0x29, 0x17, 0xea, 0xd1, 0xc8, \r
- 0x56, 0x43, 0x7b, 0xb0, 0x71, 0x2f, 0x5f, 0x2a, 0xc5, 0x1c, \r
- 0x4b, 0x7f, 0x91, 0x9b, 0x9e, 0xd6, 0xeb, 0x9e, 0x75, 0x26, \r
- 0x10, 0x36, 0x3b, 0x71, 0x11, 0x5d, 0x1, 0xb8, 0xb8, 0xd6, \r
- 0xce, 0x6e, 0xdf, 0xf, 0x7, 0xc7, 0x26, 0x52, 0xe2, 0xf4, \r
- 0xc7, 0x8e, 0xa, 0xa, 0xd, 0x6f, 0xd9, 0xab, 0xa5, 0x9f, \r
- 0x3, 0xf0, 0xfc, 0x2b, 0x21, 0x21, 0xe4, 0x4d, 0x14, 0xac, \r
- 0x8a, 0xde, 0x51, 0x1f, 0x51, 0xba, 0x22, 0x53, 0x31, 0x31, \r
- 0xaa, 0xfe, 0x33, 0x2, 0xcb, 0xea, 0x5a, 0x83, 0xc0, 0x85, \r
- 0x1d, 0xbe, 0xb, 0x23, 0x89, 0x43, 0xf7, 0xff, 0x1f, 0xef, \r
- 0x40, 0x7c, 0x19, 0x90, 0x2d, 0xa8, 0xbe, 0xbd, 0xe9, 0xe9, \r
- 0x2f, 0x5e, 0xd0, 0x55, 0x51, 0x20, 0x40, 0x56, 0x50, 0x7d, \r
- 0xa7, 0x9c, 0xe0, 0x96, 0xd9, 0xef, 0x86, 0xa0, 0x40, 0xe3, \r
- 0xab, 0xfe, 0xc6, 0x56, 0xf5, 0x97, 0xbc, 0x18, 0xf7, 0xe5, \r
- 0x81, 0x77, 0x63, 0x76, 0x3a, 0x54, 0x50, 0x1d, 0x59, 0x2f, \r
- 0xf0, 0x70, 0xb3, 0xdc, 0xf0, 0x5d, 0xf8, 0x3e, 0x8f, 0x87, \r
- 0x69, 0xd9, 0x70, 0xea, 0x71, 0xdf, 0xd2, 0xea, 0x5, 0x4d, \r
- 0x12, 0x82, 0x93, 0x70, 0x8b, 0x1e, 0x17, 0x76, 0xbe, 0xe0, \r
- 0x68, 0x8d, 0xc0, 0xad, 0xce, 0xd0, 0x33, 0x76, 0xbd, 0x79, \r
- 0xd4, 0x77, 0x21, 0xa6, 0x16, 0x46, 0x8e, 0xbb, 0x7e, 0x8d, \r
- 0xba, 0xad, 0x1, 0x80, 0xf9, 0x7b, 0x7, 0xb1, 0x34, 0x2e, \r
- 0x6c, 0xe2, 0x5a, 0x87, 0xb0, 0xe8, 0x2f, 0x6d, 0xe9, 0x10, \r
- 0x5e, 0x14, 0xf0, 0x30, 0x7a, 0x5b, 0x8, 0x93, 0x5f, 0xd3, \r
- 0xf8, 0xe, 0xc8, 0x64, 0x1, 0x95, 0x40, 0x40, 0x36, 0x66, \r
- 0x9f, 0xc4, 0x97, 0x3, 0xa7, 0x18, 0x32, 0x61, 0xf3, 0x4a, \r
- 0xa2, 0x1f, 0x95, 0x6b, 0x30, 0x9, 0x91, 0x6b, 0xe3, 0x57, \r
- 0x8f, 0x2c, 0x4a, 0x8c, 0xa7, 0x2c, 0x93, 0x5, 0x3c, 0x8a, \r
- 0x76, 0x2c, 0x28, 0xb8, 0xd5, 0x59, 0x53, 0xd5, 0xce, 0x81, \r
- 0xb0, 0xb9, 0xe2, 0x4a, 0x9e, 0x44, 0x56, 0x1c, 0xfc, 0x98, \r
- 0x81, 0x6f, 0xfc, 0x9d, 0xfc, 0xac, 0xcc, 0xc5, 0xd3, 0x84, \r
- 0x4e, 0x9b, 0x98, 0xb8, 0xfa, 0xbb, 0xd9, 0x1c, 0x8, 0xdd, \r
- 0xfc, 0x8a, 0xec, 0x42, 0xc4, 0x1, 0xe5, 0x3e, 0xb7, 0x80, \r
- 0xe2, 0xeb, 0xd7, 0xc0, 0x1, 0x13, 0x1, 0xc6, 0x4c, 0x6a, \r
- 0x4b, 0x83, 0x81, 0x9, 0x59, 0xd8, 0x84, 0x77, 0xdc, 0x20, \r
- 0x4, 0x5b, 0xfd, 0x9b, 0x12, 0x50, 0x26, 0x1a, 0x4d, 0x6f, \r
- 0xcb, 0x6, 0x1c, 0x5f, 0x2d, 0xaf, 0x67, 0xa, 0xfe, 0x33, \r
- 0x12, 0x81, 0x50, 0xb1, 0x51, 0x83, 0xc4, 0xc9, 0xf4, 0xfd, \r
- 0xf, 0x26, 0x50, 0x51, 0x40, 0x20, 0x9, 0x2b, 0xbe, 0x6b, \r
- 0xf0, 0xd9, 0xc3, 0xbf, 0x18, 0x14, 0x8, 0xf4, 0x9c, 0x94, \r
- 0xde, 0xd8, 0x30, 0x14, 0x9, 0xbb, 0xc7, 0x46, 0xde, 0xe, \r
- 0x5d, 0xec, 0xc2, 0x2, 0xbf, 0x13, 0xc1, 0xf5, 0xe8, 0xfe, \r
- 00, 0x4f, 0xdf, 0x26, 0x55, 0x1a, 0x76, 0x69, 0x81, 0x3e, \r
- 0x84, 0x19, 0xcd, 0x16, 0xb7, 0x76, 0x99, 0xc3, 0x87, 0xbd, \r
- 0xb1, 0xda, 0x89, 0x32, 0xe2, 0x7b, 0x71, 0x76, 0x52, 0xf1, \r
- 0x8c, 0x1, 0x24, 0x8a, 0x2f, 0x8d, 0x72, 0x53, 0xff, 0x6f, \r
- 0xeb, 0x1e, 0xdb, 0x1b, 0x4, 0x5e, 0x9c, 0xf2, 0xff, 0x7c, \r
- 0x25, 0x11, 0xfc, 0x1d, 0xe1, 0x4f, 0x26, 0xaf, 0xbd, 0xea, \r
- 0x67, 0xf9, 0x6f, 0x2a, 0x60, 0x7e, 0x32, 0x3b, 0x43, 0x10, \r
- 0x16, 0x80, 0xdf, 0xbf, 0xa5, 0x7f, 0x2f, 0xe9, 0x17, 0xcd, \r
- 0xf4, 0x47, 0x15, 0x44, 0x8, 0xda, 0xc8, 0x7e, 0x36, 0x50, \r
- 0x28, 0x6e, 0x21, 0xfe, 0x1f, 0xd2, 0xa8, 0xa2, 0x91, 0xdc, \r
- 0x83, 0x90, 0x3, 00, 00, 00, 00, 0x49, 0x45, 0x4e, \r
- 0x44, 0xae, 0x42, 0x60, 0x82, };\r
-\r
-static const char data_cgi_files[] = {\r
- /* /cgi/files */\r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0,\r
- 0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x63, 0x72, \r
- 0x69, 0x70, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, \r
- 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, \r
- 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, \r
- 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x66, 0x66, \r
- 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, \r
- 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0xd, 0xa, \r
- 0x23, 0x20, 0x77, 0x65, 0x62, 0x20, 0x73, 0x65, 0x72, 0x76, \r
- 0x65, 0x72, 0x2e, 0xd, 0xa, 0x23, 0xd, 0xa, 0x23, 0x20, \r
- 0x46, 0x69, 0x72, 0x73, 0x74, 0x2c, 0x20, 0x77, 0x65, 0x20, \r
- 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, \r
- 0x65, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x68, 0x65, 0x61, \r
- 0x64, 0x65, 0x72, 0x2e, 0xd, 0xa, 0x69, 0x20, 0x2f, 0x66, \r
- 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, \r
- 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, 0x23, 0x20, \r
- 0x50, 0x72, 0x69, 0x6e, 0x74, 0x20, 0x6f, 0x75, 0x74, 0x20, \r
- 0x74, 0x68, 0x65, 0x20, 0x6e, 0x61, 0x6d, 0x65, 0x20, 0x6f, \r
- 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x69, 0x6c, 0x65, \r
- 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, 0x63, 0x61, 0x6c, 0x6c, \r
- 0x20, 0x74, 0x68, 0x65, 0x20, 0x66, 0x75, 0x6e, 0x63, 0x74, \r
- 0x69, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x70, \r
- 0x72, 0x69, 0x6e, 0x74, 0x73, 0xd, 0xa, 0x23, 0x20, 0x74, \r
- 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x20, \r
- 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, \r
- 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x61, 0x74, 0x20, 0x66, \r
- 0x69, 0x6c, 0x65, 0x2e, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x74, \r
- 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, \r
- 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6e, 0x64, 0x65, \r
- 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x69, \r
- 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, \r
- 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, \r
- 0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x69, \r
- 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xd, \r
- 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, \r
- 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, \r
- 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, \r
- 0x22, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, \r
- 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x63, 0x6f, 0x6e, \r
- 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, \r
- 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, \r
- 0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, \r
- 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, \r
- 0x6c, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, \r
- 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, \r
- 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, \r
- 0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, \r
- 0x67, 0x6f, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x3e, 0x2f, 0x69, \r
- 0x6d, 0x67, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, 0x70, 0x6e, \r
- 0x67, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, \r
- 0x3c, 0x74, 0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, \r
- 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x6c, 0x6f, 0x67, 0x6f, 0x2e, \r
- 0x70, 0x6e, 0x67, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, \r
- 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, \r
- 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, \r
- 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x34, 0x30, 0x34, 0x2e, \r
- 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x34, 0x30, 0x34, \r
- 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, \r
- 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xd, 0xa, \r
- 0x63, 0x20, 0x62, 0x20, 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, \r
- 0x74, 0x6d, 0x6c, 0xd, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, \r
- 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, \r
- 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, \r
- 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, \r
- 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, 0x2f, 0x63, 0x67, \r
- 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x3c, 0x2f, 0x61, \r
- 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, \r
- 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, 0x67, 0x69, \r
- 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0xd, 0xa, 0x74, 0x20, \r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, \r
- 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, \r
- 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x3e, \r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, \r
- 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x74, 0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, \r
- 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0xd, \r
- 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, \r
- 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, \r
- 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, \r
- 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, \r
- 0x3e, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x3c, \r
- 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, \r
- 0x64, 0x3e, 0xd, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, \r
- 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0xd, 0xa, 0x74, 0x20, \r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, \r
- 0xd, 0xa, 0x23, 0x20, 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, \r
- 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, 0x54, 0x4d, 0x4c, \r
- 0x20, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0xd, 0xa, \r
- 0x69, 0x20, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x66, \r
- 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, \r
- 0x6e, 0xd, 0xa, 0x23, 0x20, 0x45, 0x6e, 0x64, 0x20, 0x6f, \r
- 0x66, 0x20, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x2e, 0xd, \r
- 0xa, 0x2e, };\r
-\r
-static const char data_cgi_stats[] = {\r
- /* /cgi/stats */\r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0,\r
- 0x69, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, \r
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, \r
- 0xd, 0xa, 0x63, 0x20, 0x61, 0xd, 0xa, 0x69, 0x20, 0x2f, \r
- 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, \r
- 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xd, 0xa, \r
- 0x2e, 0xd, 0xa, };\r
-\r
-static const char data_cgi_tcp[] = {\r
- /* /cgi/tcp */\r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0,\r
- 0x69, 0x20, 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, \r
- 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0x63, 0x20, 0x63, 0xd, 0xa, 0x69, 0x20, 0x2f, 0x74, 0x63, \r
- 0x70, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, \r
- 0x6c, 0x61, 0x69, 0x6e, 0xd, 0xa, 0x2e, };\r
-\r
-static const char data_cgi_rtos[] = {\r
- /* /cgi/rtos */\r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x72, 0x74, 0x6f, 0x73, 0,\r
- 0x74, 0x20, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0x3c, 0x68, \r
- 0x65, 0x61, 0x64, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, 0x65, \r
- 0x3e, 0x75, 0x49, 0x50, 0x20, 0x4f, 0x70, 0x65, 0x6e, 0x20, \r
- 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x45, 0x6d, 0x62, \r
- 0x65, 0x64, 0x64, 0x65, 0x64, 0x20, 0x54, 0x43, 0x50, 0x2f, \r
- 0x49, 0x50, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x20, 0x4f, \r
- 0x6e, 0x20, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, 0x53, \r
- 0x20, 0x4b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x3c, 0x2f, 0x74, \r
- 0x69, 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x68, 0x65, 0x61, \r
- 0x64, 0x3e, 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x42, 0x47, \r
- 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x3d, 0x22, 0x23, 0x43, 0x43, \r
- 0x43, 0x43, 0x46, 0x46, 0x22, 0x3e, 0x3c, 0x66, 0x6f, 0x6e, \r
- 0x74, 0x20, 0x66, 0x61, 0x63, 0x65, 0x3d, 0x22, 0x61, 0x72, \r
- 0x69, 0x61, 0x6c, 0x22, 0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, \r
- 0x6c, 0x3e, 0x3c, 0x62, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, \r
- 0x65, 0x66, 0x3d, 0x22, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x77, 0x77, 0x77, 0x2e, 0x66, 0x72, 0x65, 0x65, 0x72, \r
- 0x74, 0x6f, 0x73, 0x2e, 0x6f, 0x72, 0x67, 0x22, 0x20, 0x74, \r
- 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x74, 0x6f, \r
- 0x70, 0x22, 0x3e, 0x46, 0x72, 0x65, 0x65, 0x52, 0x54, 0x4f, \r
- 0x53, 0x20, 0x48, 0x6f, 0x6d, 0x65, 0x70, 0x61, 0x67, 0x65, \r
- 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x62, 0x3e, 0x3c, 0x2f, \r
- 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x3c, 0x70, 0x3e, 0x3c, \r
- 0x48, 0x31, 0x3e, 0x41, 0x54, 0x39, 0x31, 0x53, 0x41, 0x4d, \r
- 0x37, 0x58, 0x20, 0x45, 0x6d, 0x62, 0x65, 0x64, 0x64, 0x65, \r
- 0x64, 0x20, 0x57, 0x45, 0x42, 0x20, 0x53, 0x65, 0x72, 0x76, \r
- 0x65, 0x72, 0x20, 0x44, 0x65, 0x6d, 0x6f, 0x3c, 0x62, 0x72, \r
- 0x3e, 0x3c, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x55, 0x73, \r
- 0x69, 0x6e, 0x67, 0x20, 0x75, 0x49, 0x50, 0x20, 0x61, 0x6e, \r
- 0x64, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, \r
- 0x52, 0x54, 0x4f, 0x53, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, \r
- 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, \r
- 0x6c, 0x3c, 0x2f, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x3e, 0x3c, \r
- 0x2f, 0x68, 0x31, 0x3e, 0x3c, 0x70, 0x3e, 0x54, 0x68, 0x65, \r
- 0x73, 0x65, 0x20, 0x70, 0x61, 0x67, 0x65, 0x73, 0x20, 0x61, \r
- 0x72, 0x65, 0x20, 0x62, 0x65, 0x69, 0x6e, 0x67, 0x20, 0x73, \r
- 0x65, 0x72, 0x76, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x61, \r
- 0x6e, 0x20, 0x41, 0x74, 0x6d, 0x65, 0x6c, 0x20, 0x41, 0x54, \r
- 0x39, 0x31, 0x53, 0x41, 0x4d, 0x37, 0x58, 0x32, 0x35, 0x36, \r
- 0x20, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x63, 0x6f, 0x6e, 0x74, \r
- 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2c, 0x20, 0x75, 0x73, \r
- 0x69, 0x6e, 0x67, 0x20, 0x41, 0x64, 0x61, 0x6d, 0x20, 0x44, \r
- 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x20, 0x6f, 0x70, 0x65, \r
- 0x6e, 0x20, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x20, 0x75, \r
- 0x49, 0x50, 0x20, 0x54, 0x43, 0x50, 0x2f, 0x49, 0x50, 0x20, \r
- 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x3c, 0x70, 0x3e, 0x54, \r
- 0x68, 0x65, 0x20, 0x75, 0x49, 0x50, 0x20, 0x73, 0x74, 0x61, \r
- 0x63, 0x6b, 0x20, 0x69, 0x73, 0x20, 0x65, 0x78, 0x65, 0x63, \r
- 0x75, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x66, 0x72, 0x6f, 0x6d, \r
- 0x20, 0x61, 0x20, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x20, \r
- 0x74, 0x61, 0x73, 0x6b, 0x20, 0x75, 0x6e, 0x64, 0x65, 0x72, \r
- 0x20, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x20, 0x6f, \r
- 0x66, 0x20, 0x74, 0x68, 0x65, 0x20, 0x46, 0x72, 0x65, 0x65, \r
- 0x52, 0x54, 0x4f, 0x53, 0x20, 0x72, 0x65, 0x61, 0x6c, 0x20, \r
- 0x74, 0x69, 0x6d, 0x65, 0x20, 0x6b, 0x65, 0x72, 0x6e, 0x65, \r
- 0x6c, 0x2e, 0x20, 0x20, 0x54, 0x68, 0x65, 0x20, 0x74, 0x61, \r
- 0x62, 0x6c, 0x65, 0x20, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x20, \r
- 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, 0x74, 0x68, 0x65, 0x20, \r
- 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, \r
- 0x20, 0x66, 0x6f, 0x72, 0x20, 0x61, 0x6c, 0x6c, 0x20, 0x74, \r
- 0x68, 0x65, 0x20, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x20, 0x69, \r
- 0x6e, 0x20, 0x74, 0x68, 0x65, 0x20, 0x64, 0x65, 0x6d, 0x6f, \r
- 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x69, 0x74, \r
- 0x6f, 0x6e, 0x2e, 0x3c, 0x70, 0x3e, 0x3c, 0x70, 0x72, 0x65, \r
- 0x3e, 0x54, 0x61, 0x73, 0x6b, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x53, 0x74, 0x61, 0x74, 0x65, \r
- 0x20, 0x20, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, \r
- 0x20, 0x20, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x9, 0x23, 0x3c, \r
- 0x62, 0x72, 0x3e, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, \r
- 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, \r
- 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, \r
- 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, \r
- 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, 0x2a, \r
- 0x2a, 0x3c, 0x62, 0x72, 0x3e, 0xa, 0x63, 0x20, 0x64, 0xa, \r
- 0x74, 0x20, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x3c, 0x2f, \r
- 0x66, 0x6f, 0x6e, 0x74, 0x3e, 0x3c, 0x2f, 0x62, 0x6f, 0x64, \r
- 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, \r
- 0x2e, 0xa, 0xa, 0xa, };\r
-\r
-static const char data_index_html[] = {\r
- /* /index.html */\r
- 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x68, 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0x3c, 0x2f, \r
- 0x68, 0x65, 0x61, 0x64, 0x3e, 0xd, 0xa, 0xd, 0xa, 0x3c, \r
- 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x74, 0x20, 0x63, \r
- 0x6f, 0x6c, 0x73, 0x3d, 0x22, 0x2a, 0x22, 0x20, 0x72, 0x6f, \r
- 0x77, 0x73, 0x3d, 0x22, 0x31, 0x32, 0x30, 0x2c, 0x2a, 0x22, \r
- 0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x62, 0x6f, 0x72, 0x64, \r
- 0x65, 0x72, 0x3d, 0x22, 0x6e, 0x6f, 0x22, 0x3e, 0x20, 0xd, \r
- 0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x20, \r
- 0x73, 0x72, 0x63, 0x3d, 0x22, 0x63, 0x6f, 0x6e, 0x74, 0x72, \r
- 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0xd, \r
- 0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x20, \r
- 0x73, 0x72, 0x63, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, 0x2f, \r
- 0x72, 0x74, 0x6f, 0x73, 0x22, 0x20, 0x6e, 0x61, 0x6d, 0x65, \r
- 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0xd, 0xa, \r
- 0x3c, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x65, 0x74, \r
- 0x3e, 0xd, 0xa, 0xd, 0xa, 0x3c, 0x6e, 0x6f, 0x66, 0x72, \r
- 0x61, 0x6d, 0x65, 0x73, 0x3e, 0xd, 0xa, 0x3c, 0x62, 0x6f, \r
- 0x64, 0x79, 0x3e, 0xd, 0xa, 0x59, 0x6f, 0x75, 0x72, 0x20, \r
- 0x62, 0x72, 0x6f, 0x77, 0x73, 0x65, 0x72, 0x20, 0x6d, 0x75, \r
- 0x73, 0x74, 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, \r
- 0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0xd, 0xa, 0x3c, \r
- 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xd, 0xa, 0x3c, 0x2f, \r
- 0x6e, 0x6f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x3e, 0xd, \r
- 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };\r
-\r
-const struct fsdata_file file_404_html[] = {{NULL, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};\r
-\r
-const struct fsdata_file file_control_html[] = {{file_404_html, data_control_html, data_control_html + 14, sizeof(data_control_html) - 14}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-const struct fsdata_file file_cgi_files[] = {{file_img_logo_png, data_cgi_files, data_cgi_files + 11, sizeof(data_cgi_files) - 11}};\r
-\r
-const struct fsdata_file file_cgi_stats[] = {{file_cgi_files, data_cgi_stats, data_cgi_stats + 11, sizeof(data_cgi_stats) - 11}};\r
-\r
-const struct fsdata_file file_cgi_tcp[] = {{file_cgi_stats, data_cgi_tcp, data_cgi_tcp + 9, sizeof(data_cgi_tcp) - 9}};\r
-\r
-const struct fsdata_file file_cgi_rtos[] = {{file_cgi_tcp, data_cgi_rtos, data_cgi_rtos + 10, sizeof(data_cgi_rtos) - 10}};\r
-\r
-const struct fsdata_file file_index_html[] = {{file_cgi_rtos, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};\r
-\r
-#define FS_ROOT file_index_html\r
-\r
-#define FS_NUMFILES 14\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. Neither the name of the Institute nor the names of its contributors \r
- * may be used to endorse or promote products derived from this software \r
- * without specific prior written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND \r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE \r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
- * SUCH DAMAGE. \r
- *\r
- * This file is part of the lwIP TCP/IP stack.\r
- * \r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: fsdata.h,v 1.4.2.1 2003/10/04 22:54:06 adam Exp $\r
- */\r
-#ifndef __FSDATA_H__\r
-#define __FSDATA_H__\r
-\r
-#include "uipopt.h"\r
-\r
-struct fsdata_file {\r
- const struct fsdata_file *next;\r
- const char *name;\r
- const char *data;\r
- const int len;\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t count;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-};\r
-\r
-struct fsdata_file_noconst {\r
- struct fsdata_file *next;\r
- char *name;\r
- char *data;\r
- int len;\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t count;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-};\r
-\r
-#endif /* __FSDATA_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup httpd Web server\r
- * @{\r
- *\r
- * The uIP web server is a very simplistic implementation of an HTTP\r
- * server. It can serve web pages and files from a read-only ROM\r
- * filesystem, and provides a very small scripting language.\r
- *\r
- * The script language is very simple and works as follows. Each\r
- * script line starts with a command character, either "i", "t", "c",\r
- * "#" or ".". The "i" command tells the script interpreter to\r
- * "include" a file from the virtual file system and output it to the\r
- * web browser. The "t" command should be followed by a line of text\r
- * that is to be output to the browser. The "c" command is used to\r
- * call one of the C functions from the httpd-cgi.c file. A line that\r
- * starts with a "#" is ignored (i.e., the "#" denotes a comment), and\r
- * the "." denotes the last script line.\r
- *\r
- * The script that produces the file statistics page looks somewhat\r
- * like this:\r
- *\r
- \code\r
-i /header.html\r
-t <h1>File statistics</h1><br><table width="100%">\r
-t <tr><td><a href="/index.html">/index.html</a></td><td>\r
-c a /index.html\r
-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>\r
-c a /cgi/files\r
-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>\r
-c a /cgi/tcp\r
-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>\r
-c a /404.html\r
-t </td></tr></table>\r
-i /footer.plain\r
-.\r
- \endcode\r
- *\r
- */\r
-\r
-\r
-/**\r
- * \file\r
- * HTTP server.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: httpd.c,v 1.28.2.6 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-\r
-\r
-#include "uip.h"\r
-#include "httpd.h"\r
-#include "fs.h"\r
-#include "fsdata.h"\r
-#include "cgi.h"\r
-\r
-#define NULL (void *)0\r
-\r
-/* The HTTP server states: */\r
-#define HTTP_NOGET 0\r
-#define HTTP_FILE 1\r
-#define HTTP_TEXT 2\r
-#define HTTP_FUNC 3\r
-#define HTTP_END 4\r
-\r
-#ifdef DEBUG\r
-#include <stdio.h>\r
-#define PRINT(x)\r
-#define PRINTLN(x)\r
-#else /* DEBUG */\r
-#define PRINT(x)\r
-#define PRINTLN(x)\r
-#endif /* DEBUG */\r
-\r
-struct httpd_state *hs;\r
-\r
-extern const struct fsdata_file file_index_html;\r
-extern const struct fsdata_file file_404_html;\r
-\r
-static void next_scriptline(void);\r
-static void next_scriptstate(void);\r
-\r
-#define ISO_G 0x47\r
-#define ISO_E 0x45\r
-#define ISO_T 0x54\r
-#define ISO_slash 0x2f\r
-#define ISO_c 0x63\r
-#define ISO_g 0x67\r
-#define ISO_i 0x69\r
-#define ISO_space 0x20\r
-#define ISO_nl 0x0a\r
-#define ISO_cr 0x0d\r
-#define ISO_a 0x61\r
-#define ISO_t 0x74\r
-#define ISO_hash 0x23\r
-#define ISO_period 0x2e\r
-\r
-#define httpPORT 80\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the web server.\r
- *\r
- * Starts to listen for incoming connection requests on TCP port 80.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-httpd_init(void)\r
-{\r
- fs_init();\r
-\r
- /* Listen to port 80. */\r
- uip_listen(HTONS(httpPORT));\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-httpd_appcall(void)\r
-{\r
- struct fs_file fsfile;\r
-\r
- u8_t i;\r
-\r
- switch(uip_conn->lport) {\r
- /* This is the web server: */\r
- case HTONS(httpPORT):\r
- /* Pick out the application state from the uip_conn structure. */\r
- hs = (struct httpd_state *)(uip_conn->appstate);\r
-\r
- /* We use the uip_ test functions to deduce why we were\r
- called. If uip_connected() is non-zero, we were called\r
- because a remote host has connected to us. If\r
- uip_newdata() is non-zero, we were called because the\r
- remote host has sent us new data, and if uip_acked() is\r
- non-zero, the remote host has acknowledged the data we\r
- previously sent to it. */\r
- if(uip_connected()) {\r
- /* Since we have just been connected with the remote host, we\r
- reset the state for this connection. The ->count variable\r
- contains the amount of data that is yet to be sent to the\r
- remote host, and the ->state is set to HTTP_NOGET to signal\r
- that we haven't received any HTTP GET request for this\r
- connection yet. */\r
-\r
- hs->state = HTTP_NOGET;\r
- hs->count = 0;\r
- return;\r
-\r
- } else if(uip_poll()) {\r
- /* If we are polled ten times, we abort the connection. This is\r
- because we don't want connections lingering indefinately in\r
- the system. */\r
- if(hs->count++ >= 10) {\r
- uip_abort();\r
- }\r
- return;\r
- } else if(uip_newdata() && hs->state == HTTP_NOGET) {\r
- /* This is the first data we receive, and it should contain a\r
- GET. */\r
-\r
- /* Check for GET. */\r
- if(uip_appdata[0] != ISO_G ||\r
- uip_appdata[1] != ISO_E ||\r
- uip_appdata[2] != ISO_T ||\r
- uip_appdata[3] != ISO_space) {\r
- /* If it isn't a GET, we abort the connection. */\r
- uip_abort();\r
- return;\r
- }\r
- \r
- /* Find the file we are looking for. */\r
- for(i = 4; i < 40; ++i) {\r
- if(uip_appdata[i] == ISO_space ||\r
- uip_appdata[i] == ISO_cr ||\r
- uip_appdata[i] == ISO_nl) {\r
- uip_appdata[i] = 0;\r
- break;\r
- }\r
- }\r
-\r
- PRINT("request for file ");\r
- PRINTLN(&uip_appdata[4]);\r
-\r
- /* Check for a request for "/". */\r
- if(uip_appdata[4] == ISO_slash &&\r
- uip_appdata[5] == 0) {\r
- fs_open(file_index_html.name, &fsfile);\r
- } else {\r
- if(!fs_open((const char *)&uip_appdata[4], &fsfile)) {\r
- PRINTLN("couldn't open file");\r
- fs_open(file_404_html.name, &fsfile);\r
- }\r
- }\r
-\r
-\r
- if(uip_appdata[4] == ISO_slash &&\r
- uip_appdata[5] == ISO_c &&\r
- uip_appdata[6] == ISO_g &&\r
- uip_appdata[7] == ISO_i &&\r
- uip_appdata[8] == ISO_slash) {\r
- /* If the request is for a file that starts with "/cgi/", we\r
- prepare for invoking a script. */ \r
- hs->script = fsfile.data;\r
- next_scriptstate();\r
- } else {\r
- hs->script = NULL;\r
- /* The web server is now no longer in the HTTP_NOGET state, but\r
- in the HTTP_FILE state since is has now got the GET from\r
- the client and will start transmitting the file. */\r
- hs->state = HTTP_FILE;\r
-\r
- /* Point the file pointers in the connection state to point to\r
- the first byte of the file. */\r
- hs->dataptr = fsfile.data;\r
- hs->count = fsfile.len; \r
- }\r
- }\r
-\r
-\r
- if(hs->state != HTTP_FUNC) {\r
- /* Check if the client (remote end) has acknowledged any data that\r
- we've previously sent. If so, we move the file pointer further\r
- into the file and send back more data. If we are out of data to\r
- send, we close the connection. */\r
- if(uip_acked()) {\r
- if(hs->count >= uip_conn->len) {\r
- hs->count -= uip_conn->len;\r
- hs->dataptr += uip_conn->len;\r
- } else {\r
- hs->count = 0;\r
- }\r
- \r
- if(hs->count == 0) {\r
- if(hs->script != NULL) {\r
- next_scriptline();\r
- next_scriptstate();\r
- } else {\r
- uip_close();\r
- }\r
- }\r
- }\r
- } else {\r
- /* Call the CGI function. */\r
- if(cgitab[hs->script[2] - ISO_a](uip_acked())) {\r
- /* If the function returns non-zero, we jump to the next line\r
- in the script. */\r
- next_scriptline();\r
- next_scriptstate();\r
- }\r
- }\r
-\r
- if(hs->state != HTTP_FUNC && !uip_poll()) {\r
- /* Send a piece of data, but not more than the MSS of the\r
- connection. */\r
- uip_send(( void * ) hs->dataptr, hs->count);\r
- }\r
-\r
- /* Finally, return to uIP. Our outgoing packet will soon be on its\r
- way... */\r
- return;\r
-\r
- default:\r
- /* Should never happen. */\r
- uip_abort();\r
- break;\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/* next_scriptline():\r
- *\r
- * Reads the script until it finds a newline. */\r
-static void\r
-next_scriptline(void)\r
-{\r
- /* Loop until we find a newline character. */\r
- do {\r
- ++(hs->script);\r
- } while(hs->script[0] != ISO_nl);\r
-\r
- /* Eat up the newline as well. */\r
- ++(hs->script);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/* next_sciptstate:\r
- *\r
- * Reads one line of script and decides what to do next.\r
- */\r
-static void\r
-next_scriptstate(void)\r
-{\r
- struct fs_file fsfile;\r
- long i;\r
-\r
- again:\r
- switch(hs->script[0]) {\r
- case ISO_t:\r
- /* Send a text string. */\r
- hs->state = HTTP_TEXT;\r
- hs->dataptr = &hs->script[2];\r
-\r
- /* Calculate length of string. */\r
- for(i = 0; hs->dataptr[i] != ISO_nl; ++i);\r
- hs->count = i;\r
- break;\r
- case ISO_c:\r
- /* Call a function. */\r
- hs->state = HTTP_FUNC;\r
- hs->dataptr = NULL;\r
- hs->count = 0;\r
- cgitab[hs->script[2] - ISO_a](0);\r
- break;\r
- case ISO_i:\r
- /* Include a file. */\r
- hs->state = HTTP_FILE;\r
- if(!fs_open(&hs->script[2], &fsfile)) {\r
- uip_abort();\r
- }\r
- hs->dataptr = fsfile.data;\r
- hs->count = fsfile.len;\r
- break;\r
- case ISO_hash:\r
- /* Comment line. */\r
- next_scriptline();\r
- goto again;\r
- case ISO_period:\r
- /* End of script. */\r
- hs->state = HTTP_END;\r
- uip_close();\r
- break;\r
- default:\r
- uip_abort();\r
- break;\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/** @} */\r
-/** @} */\r
+++ /dev/null
-/*$T httpd.c GC 1.138 07/23/05 13:10:49 */\r
-\r
-/*\r
- * \addtogroup exampleapps @{ £\r
- * \defgroup httpd Web server @{ The uIP web server is a very simplistic\r
- * implementation of an HTTP server. It can serve web pages and files from a\r
- * read-only ROM filesystem, and provides a very small scripting language. The\r
- * script language is very simple and works as follows. Each script line starts\r
- * with a command character, either "i", "t", "c", "#" or ".". The "i" command\r
- * tells the script interpreter to "include" a file from the virtual file system\r
- * and output it to the web browser. The "t" command should be followed by a line\r
- * of text that is to be output to the browser. The "c" command is used to call\r
- * one of the C functions from the httpd-cgi.c file. A line that starts with a "#"\r
- * is ignored (i.e., the "#" denotes a comment), and the "." denotes the last\r
- * script line. The script that produces the file statistics page looks somewhat\r
- * like this: \code i /header.html t <h1>File statistics</h1><br><table\r
- * width="100%"> t <tr><td><a href="/index.html">/index.html</a></td><td> c a\r
- * /index.html t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td> c\r
- * a /cgi/files t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td> c a\r
- * /cgi/tcp t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td> c a\r
- * /404.html t </td></tr></table> i /footer.plain . \endcode £\r
- * \file HTTP server. \author Adam Dunkels <adam@dunkels.com> £\r
- * Copyright (c) 2001, Adam Dunkels. All rights reserved. Redistribution and use\r
- * in source and binary forms, with or without modification, are permitted\r
- * provided that the following conditions are met: 1. Redistributions of source\r
- * code must retain the above copyright notice, this list of conditions and the\r
- * following disclaimer. 2. Redistributions in binary form must reproduce the\r
- * above copyright notice, this list of conditions and the following disclaimer in\r
- * the documentation and/or other materials provided with the distribution. 3. The\r
- * name of the author may not be used to endorse or promote products derived from\r
- * this software without specific prior written permission. THIS SOFTWARE IS\r
- * PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,\r
- * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\r
- * FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR\r
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR\r
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT\r
- * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- * This file is part of the uIP TCP/IP stack. $Id: httpd.c,v 1.28.2.6 2003/10/07\r
- * 13:22:27 adam Exp $\r
- */\r
-#include "uip.h"\r
-#include "httpd.h"\r
-#include "fs.h"\r
-#include "fsdata.h"\r
-#include "cgi.h"\r
-\r
-#define NULL ( void * ) 0\r
-\r
-/* The HTTP server states: */\r
-#define HTTP_NOGET 0\r
-#define HTTP_FILE 1\r
-#define HTTP_TEXT 2\r
-#define HTTP_FUNC 3\r
-#define HTTP_END 4\r
-\r
-#ifdef DEBUG\r
-#include <stdio.h>\r
-#define PRINT( x )\r
-#define PRINTLN( x )\r
-#else /* DEBUG */\r
-#define PRINT( x )\r
-#define PRINTLN( x )\r
-#endif /* DEBUG */\r
-\r
-struct httpd_state *hs;\r
-\r
-extern const struct fsdata_file file_index_html;\r
-extern const struct fsdata_file file_404_html;\r
-\r
-static void next_scriptline( void );\r
-static void next_scriptstate( void );\r
-\r
-#define ISO_G 0x47\r
-#define ISO_E 0x45\r
-#define ISO_T 0x54\r
-#define ISO_slash 0x2f\r
-#define ISO_c 0x63\r
-#define ISO_g 0x67\r
-#define ISO_i 0x69\r
-#define ISO_space 0x20\r
-#define ISO_nl 0x0a\r
-#define ISO_cr 0x0d\r
-#define ISO_a 0x61\r
-#define ISO_t 0x74\r
-#define ISO_hash 0x23\r
-#define ISO_period 0x2e\r
-\r
-#define httpPORT 80\r
-\r
-/*\r
- =======================================================================================================================\r
- Initialize the web server. Starts to listen for incoming connection requests on TCP port 80.\r
- =======================================================================================================================\r
- */\r
-void httpd_init( void )\r
-{\r
- fs_init();\r
-\r
- /* Listen to port 80. */\r
- uip_listen( HTONS( httpPORT ) );\r
-}\r
-\r
-/*\r
- =======================================================================================================================\r
- =======================================================================================================================\r
- */\r
-void httpd_appcall( void )\r
-{\r
- /*~~~~~~~~~~~~~~~~~~~*/\r
- struct fs_file fsfile;\r
- u8_t i;\r
- /*~~~~~~~~~~~~~~~~~~~*/\r
-\r
- switch( uip_conn->lport )\r
- {\r
- /* This is the web server: */\r
- case HTONS( httpPORT ):\r
- /* Pick out the application state from the uip_conn structure. */\r
- hs = ( struct httpd_state * ) ( uip_conn->appstate );\r
-\r
- /*\r
- * We use the uip_ test functions to deduce why we were called. If uip_connected()\r
- * is non-zero, we were called because a remote host has connected to us. If\r
- * uip_newdata() is non-zero, we were called because the remote host has sent us\r
- * new data, and if uip_acked() is non-zero, the remote host has acknowledged the\r
- * data we previously sent to it.\r
- */\r
- if( uip_connected() )\r
- {\r
- /*\r
- * Since we have just been connected with the remote host, we reset the state for\r
- * this connection. The ->count variable contains the amount of data that is yet\r
- * to be sent to the remote host, and the ->state is set to HTTP_NOGET to signal\r
- * that we haven't received any HTTP GET request for this connection yet.\r
- */\r
- hs->state = HTTP_NOGET;\r
- hs->count = 0;\r
- return;\r
- }\r
- else if( uip_poll() )\r
- {\r
- /*\r
- * If we are polled ten times, we abort the connection. This is because we don't\r
- * want connections lingering indefinately in the system.\r
- */\r
- if( hs->count++ >= 10 )\r
- {\r
- uip_abort();\r
- }\r
-\r
- return;\r
- }\r
- else if( uip_newdata() && hs->state == HTTP_NOGET )\r
- {\r
- /*\r
- * This is the first data we receive, and it should contain a GET. £\r
- * Check for GET.\r
- */\r
- if\r
- (\r
- uip_appdata[0] != ISO_G\r
- || uip_appdata[1] != ISO_E\r
- || uip_appdata[2] != ISO_T\r
- || uip_appdata[3] != ISO_space\r
- )\r
- {\r
- /* If it isn't a GET, we abort the connection. */\r
- uip_abort();\r
- return;\r
- }\r
-\r
- /* Find the file we are looking for. */\r
- for( i = 4; i < 40; ++i )\r
- {\r
- if( uip_appdata[i] == ISO_space || uip_appdata[i] == ISO_cr || uip_appdata[i] == ISO_nl )\r
- {\r
- uip_appdata[i] = 0;\r
- break;\r
- }\r
- }\r
-\r
- PRINT( "request for file " );\r
- PRINTLN( &uip_appdata[4] );\r
-\r
- /* Check for a request for "/". */\r
- if( uip_appdata[4] == ISO_slash && uip_appdata[5] == 0 )\r
- {\r
- fs_open( file_index_html.name, &fsfile );\r
- }\r
- else\r
- {\r
- if( !fs_open( ( const char * ) &uip_appdata[4], &fsfile ) )\r
- {\r
- PRINTLN( "couldn't open file" );\r
- fs_open( file_404_html.name, &fsfile );\r
- }\r
- }\r
-\r
- if\r
- (\r
- uip_appdata[4] == ISO_slash\r
- && uip_appdata[5] == ISO_c\r
- && uip_appdata[6] == ISO_g\r
- && uip_appdata[7] == ISO_i\r
- && uip_appdata[8] == ISO_slash\r
- )\r
- {\r
- /*\r
- * If the request is for a file that starts with "/cgi/", we prepare for invoking\r
- * a script.\r
- */\r
- hs->script = fsfile.data;\r
- next_scriptstate();\r
- }\r
- else\r
- {\r
- hs->script = NULL;\r
-\r
- /*\r
- * The web server is now no longer in the HTTP_NOGET state, but in the HTTP_FILE\r
- * state since is has now got the GET from the client and will start transmitting\r
- * the file.\r
- */\r
- hs->state = HTTP_FILE;\r
-\r
- /*\r
- * Point the file pointers in the connection state to point to the first byte of\r
- * the file.\r
- */\r
- hs->dataptr = fsfile.data;\r
- hs->count = fsfile.len;\r
- }\r
- }\r
-\r
- if( hs->state != HTTP_FUNC )\r
- {\r
- /*\r
- * Check if the client (remote end) has acknowledged any data that we've\r
- * previously sent. If so, we move the file pointer further into the file and send\r
- * back more data. If we are out of data to send, we close the connection.\r
- */\r
- if( uip_acked() )\r
- {\r
- if( hs->count >= uip_conn->len )\r
- {\r
- hs->count -= uip_conn->len;\r
- hs->dataptr += uip_conn->len;\r
- }\r
- else\r
- {\r
- hs->count = 0;\r
- }\r
-\r
- if( hs->count == 0 )\r
- {\r
- if( hs->script != NULL )\r
- {\r
- next_scriptline();\r
- next_scriptstate();\r
- }\r
- else\r
- {\r
- uip_close();\r
- }\r
- }\r
- }\r
- }\r
- else\r
- {\r
- /* Call the CGI function. */\r
- if( cgitab[hs->script[2] - ISO_a](uip_acked()) )\r
- {\r
- /* If the function returns non-zero, we jump to the next line in the script. */\r
- next_scriptline();\r
- next_scriptstate();\r
- }\r
- }\r
-\r
- if( hs->state != HTTP_FUNC && !uip_poll() )\r
- {\r
- /* Send a piece of data, but not more than the MSS of the connection. */\r
- uip_send( ( void * ) hs->dataptr, hs->count );\r
- }\r
-\r
- /* Finally, return to uIP. Our outgoing packet will soon be on its way... */\r
- return;\r
-\r
- default:\r
- /* Should never happen. */\r
- uip_abort();\r
- break;\r
- }\r
-}\r
-\r
-/*\r
- =======================================================================================================================\r
- next_scriptline(): Reads the script until it finds a newline.\r
- =======================================================================================================================\r
- */\r
-static void next_scriptline( void )\r
-{\r
- /* Loop until we find a newline character. */\r
- do\r
- {\r
- ++( hs->script );\r
- } while( hs->script[0] != ISO_nl );\r
-\r
- /* Eat up the newline as well. */\r
- ++( hs->script );\r
-}\r
-\r
-/*\r
- =======================================================================================================================\r
- next_sciptstate: Reads one line of script and decides what to do next.\r
- =======================================================================================================================\r
- */\r
-static void next_scriptstate( void )\r
-{\r
- /*~~~~~~~~~~~~~~~~~~~*/\r
- struct fs_file fsfile;\r
- u8_t i;\r
- /*~~~~~~~~~~~~~~~~~~~*/\r
-\r
-again:\r
- switch( hs->script[0] )\r
- {\r
- case ISO_t:\r
- /* Send a text string. */\r
- hs->state = HTTP_TEXT;\r
- hs->dataptr = &hs->script[2];\r
-\r
- /* Calculate length of string. */\r
- for( i = 0; hs->dataptr[i] != ISO_nl; ++i );\r
- hs->count = i;\r
- break;\r
-\r
- case ISO_c:\r
- /* Call a function. */\r
- hs->state = HTTP_FUNC;\r
- hs->dataptr = NULL;\r
- hs->count = 0;\r
- cgitab[hs->script[2] - ISO_a]( 0 );\r
- break;\r
-\r
- case ISO_i:\r
- /* Include a file. */\r
- hs->state = HTTP_FILE;\r
- if( !fs_open( &hs->script[2], &fsfile ) )\r
- {\r
- uip_abort();\r
- }\r
-\r
- hs->dataptr = fsfile.data;\r
- hs->count = fsfile.len;\r
- break;\r
-\r
- case ISO_hash:\r
- /* Comment line. */\r
- next_scriptline();\r
- goto again;\r
-\r
- case ISO_period:\r
- /* End of script. */\r
- hs->state = HTTP_END;\r
- uip_close();\r
- break;\r
-\r
- default:\r
- uip_abort();\r
- break;\r
- }\r
-}\r
-\r
-/*\r
- * @} £\r
- * @}\r
- */\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: httpd.h,v 1.4.2.3 2003/10/06 22:56:44 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __HTTPD_H__\r
-#define __HTTPD_H__\r
-\r
-void httpd_init(void);\r
-void httpd_appcall(void);\r
-\r
-/* UIP_APPCALL: the name of the application function. This function\r
- must return void and take no arguments (i.e., C type "void\r
- appfunc(void)"). */\r
-#ifndef UIP_APPCALL\r
-#define UIP_APPCALL httpd_appcall\r
-#endif\r
-\r
-struct httpd_state {\r
- u8_t state; \r
- u16_t count;\r
- char *dataptr;\r
- char *script;\r
-};\r
-\r
-\r
-/* UIP_APPSTATE_SIZE: The size of the application-specific state\r
- stored in the uip_conn structure. */\r
-#ifndef UIP_APPSTATE_SIZE\r
-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))\r
-#endif\r
-\r
-#define FS_STATISTICS 1\r
-\r
-extern struct httpd_state *hs;\r
-\r
-#endif /* __HTTPD_H__ */\r
+++ /dev/null
-// Copyright (c) 2001-2004 Rowley Associates Limited.\r
-//\r
-// This file may be distributed under the terms of the License Agreement\r
-// provided with this software.\r
-//\r
-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE\r
-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-//\r
-////////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Olimex LPC-P1 LED Example\r
-//\r
-// Description\r
-// -----------\r
-// This example demonstrates writing to the programmable peripheral interface.\r
-//\r
-////////////////////////////////////////////////////////////////////////////////\r
-\r
-#include <targets/LPC210x.h>\r
-\r
-#define LED_RED (1<<8)\r
-#define LED_GREEN (1<<10)\r
-#define LED_YELLOW (1<<11)\r
-\r
-#define LED1 LED_YELLOW\r
-\r
-static void\r
-ledInit()\r
-{\r
- IODIR |= LED1;\r
- IOSET = LED1;\r
-}\r
-\r
-static void\r
-ledOn(void)\r
-{\r
- IOCLR = LED1;\r
-}\r
-\r
-static void\r
-ledOff(void)\r
-{\r
- IOSET = LED1;\r
-}\r
-\r
-void\r
-delay(int d)\r
-{ \r
- for(; d; --d);\r
-}\r
- \r
-int\r
-main(void)\r
-{\r
- MAMCR = 2;\r
- ledInit();\r
- while (1)\r
- {\r
- ledOn();\r
- delay(100000);\r
- ledOff();\r
- delay(100000);\r
- }\r
- return 0;\r
-}\r
-\r
-\r
+++ /dev/null
-#!/usr/bin/perl\r
-\r
-open(OUTPUT, "> fsdata.c");\r
-\r
-chdir("fs");\r
-open(FILES, "find . -type f |");\r
-\r
-while($file = <FILES>) {\r
-\r
- # Do not include files in CVS directories nor backup files.\r
- if($file =~ /(CVS|~)/) {\r
- next;\r
- }\r
- \r
- chop($file);\r
- \r
- open(HEADER, "> /tmp/header") || die $!;\r
- if($file =~ /404.html/) {\r
- print(HEADER "HTTP/1.0 404 File not found\r\n");\r
- } else {\r
- print(HEADER "HTTP/1.0 200 OK\r\n");\r
- }\r
- print(HEADER "Server: uIP/0.9 (http://dunkels.com/adam/uip/)\r\n");\r
- if($file =~ /\.html$/) {\r
- print(HEADER "Content-type: text/html\r\n");\r
- } elsif($file =~ /\.gif$/) {\r
- print(HEADER "Content-type: image/gif\r\n");\r
- } elsif($file =~ /\.png$/) {\r
- print(HEADER "Content-type: image/png\r\n");\r
- } elsif($file =~ /\.jpg$/) {\r
- print(HEADER "Content-type: image/jpeg\r\n");\r
- } else {\r
- print(HEADER "Content-type: text/plain\r\n");\r
- }\r
- print(HEADER "\r\n");\r
- close(HEADER);\r
-\r
- unless($file =~ /\.plain$/ || $file =~ /cgi/) {\r
- system("cat /tmp/header $file > /tmp/file");\r
- } else {\r
- system("cp $file /tmp/file");\r
- }\r
- \r
- open(FILE, "/tmp/file");\r
- unlink("/tmp/file");\r
- unlink("/tmp/header");\r
-\r
- $file =~ s/\.//;\r
- $fvar = $file;\r
- $fvar =~ s-/-_-g;\r
- $fvar =~ s-\.-_-g;\r
- print(OUTPUT "static const char data".$fvar."[] = {\n");\r
- print(OUTPUT "\t/* $file */\n\t");\r
- for($j = 0; $j < length($file); $j++) {\r
- printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));\r
- }\r
- printf(OUTPUT "0,\n");\r
- \r
- \r
- $i = 0; \r
- while(read(FILE, $data, 1)) {\r
- if($i == 0) {\r
- print(OUTPUT "\t");\r
- }\r
- printf(OUTPUT "%#02x, ", unpack("C", $data));\r
- $i++;\r
- if($i == 10) {\r
- print(OUTPUT "\n");\r
- $i = 0;\r
- }\r
- }\r
- print(OUTPUT "};\n\n");\r
- close(FILE);\r
- push(@fvars, $fvar);\r
- push(@files, $file);\r
-}\r
-\r
-for($i = 0; $i < @fvars; $i++) {\r
- $file = $files[$i];\r
- $fvar = $fvars[$i];\r
-\r
- if($i == 0) {\r
- $prevfile = "NULL";\r
- } else {\r
- $prevfile = "file" . $fvars[$i - 1];\r
- }\r
- print(OUTPUT "const struct fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");\r
- print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");\r
- print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");\r
-}\r
-\r
-print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n");\r
-print(OUTPUT "#define FS_NUMFILES $i");\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Memory block allocation routines.\r
- * \author Adam Dunkels <adam@sics.se>\r
- *\r
- * The memory block allocation routines provide a simple yet powerful\r
- * set of functions for managing a set of memory blocks of fixed\r
- * size. A set of memory blocks is statically declared with the\r
- * MEMB() macro. Memory blocks are allocated from the declared\r
- * memory by the memb_alloc() function, and are deallocated with the\r
- * memb_free() function.\r
- *\r
- * \note Because of namespace clashes only one MEMB() can be\r
- * declared per C module, and the name scope of a MEMB() memory\r
- * block is local to each C module.\r
- *\r
- * The following example shows how to declare and use a memory block\r
- * called "cmem" which has 8 chunks of memory with each memory chunk\r
- * being 20 bytes large.\r
- *\r
- \code\r
- MEMB(cmem, 20, 8);\r
-\r
- int main(int argc, char *argv[]) {\r
- char *ptr;\r
- \r
- memb_init(&cmem);\r
-\r
- ptr = memb_alloc(&cmem);\r
-\r
- if(ptr != NULL) {\r
- do_something(ptr);\r
- } else {\r
- printf("Could not allocate memory.\n");\r
- }\r
-\r
- if(memb_free(ptr) == 0) {\r
- printf("Deallocation succeeded.\n");\r
- }\r
- }\r
- \endcode\r
- * \r
- */\r
-\r
-#include <string.h>\r
-\r
-#include "memb.h"\r
-\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize a memory block that was declared with MEMB().\r
- *\r
- * \param m A memory block previosly declared with MEMB().\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-void\r
-memb_init(struct memb_blocks *m)\r
-{\r
- memset(m->mem, (m->size + 1) * m->num, 0);\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Allocate a memory block from a block of memory declared with MEMB().\r
- *\r
- * \param m A memory block previosly declared with MEMB().\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-char *\r
-memb_alloc(struct memb_blocks *m)\r
-{\r
- int i;\r
- char *ptr;\r
-\r
- ptr = m->mem;\r
- for(i = 0; i < m->num; ++i) {\r
- if(*ptr == 0) {\r
- /* If this block was unused, we increase the reference count to\r
- indicate that it now is used and return a pointer to the\r
- first byte following the reference counter. */\r
- ++*ptr;\r
- return ptr + 1;\r
- }\r
- ptr += m->size + 1;\r
- }\r
-\r
- /* No free block was found, so we return NULL to indicate failure to\r
- allocate block. */\r
- return NULL;\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Deallocate a memory block from a memory block previously declared\r
- * with MEMB().\r
- *\r
- * \param m m A memory block previosly declared with MEMB().\r
- *\r
- * \param ptr A pointer to the memory block that is to be deallocated.\r
- *\r
- * \return The new reference count for the memory block (should be 0\r
- * if successfully deallocated) or -1 if the pointer "ptr" did not\r
- * point to a legal memory block.\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-char\r
-memb_free(struct memb_blocks *m, char *ptr)\r
-{\r
- int i;\r
- char *ptr2;\r
-\r
- /* Walk through the list of blocks and try to find the block to\r
- which the pointer "ptr" points to. */\r
- ptr2 = m->mem;\r
- for(i = 0; i < m->num; ++i) {\r
- \r
- if(ptr2 == ptr - 1) {\r
- /* We've found to block to which "ptr" points so we decrease the\r
- reference count and return the new value of it. */ \r
- return --*ptr2;\r
- }\r
- ptr2 += m->size + 1;\r
- }\r
- return -1;\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Increase the reference count for a memory chunk.\r
- *\r
- * \note No sanity checks are currently made.\r
- *\r
- * \param m m A memory block previosly declared with MEMB().\r
- *\r
- * \param ptr A pointer to the memory chunk for which the reference\r
- * count should be increased.\r
- *\r
- * \return The new reference count.\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-char\r
-memb_ref(struct memb_blocks *m, char *ptr)\r
-{\r
- return ++*(ptr - 1);\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-\r
-\r
-\r
-\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Memory block allocation routines.\r
- * \author Adam Dunkels <adam@sics.se>\r
- *\r
- */\r
-\r
-#ifndef __MEMB_H__\r
-#define __MEMB_H__\r
-\r
-/**\r
- * Declare a memory block.\r
- *\r
- * \param name The name of the memory block (later used with\r
- * memb_init(), memb_alloc() and memb_free()).\r
- *\r
- * \param size The size of each memory chunk, in bytes.\r
- *\r
- * \param num The total number of memory chunks in the block.\r
- *\r
- */\r
-#define MEMB(name, size, num) \\r
- static char memb_mem[(size + 1) * num]; \\r
- static struct memb_blocks name = {size, num, memb_mem}\r
-\r
-struct memb_blocks {\r
- unsigned short size;\r
- unsigned short num;\r
- char *mem;\r
-};\r
-\r
-void memb_init(struct memb_blocks *m);\r
-char *memb_alloc(struct memb_blocks *m);\r
-char memb_ref(struct memb_blocks *m, char *ptr);\r
-char memb_free(struct memb_blocks *m, char *ptr);\r
-\r
-\r
-#endif /* __MEMB_H__ */\r
+++ /dev/null
-arp -s 172.25.218.210 00-bd-3b-33-05-72\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup slip Serial Line IP (SLIP) protocol\r
- * @{\r
- *\r
- * The SLIP protocol is a very simple way to transmit IP packets over\r
- * a serial line. It does not provide any framing or error control,\r
- * and is therefore not very widely used today.\r
- *\r
- * This SLIP implementation requires two functions for accessing the\r
- * serial device: slipdev_char_poll() and slipdev_char_put(). These\r
- * must be implemented specifically for the system on which the SLIP\r
- * protocol is to be run.\r
- */\r
-\r
-/**\r
- * \file\r
- * SLIP protocol implementation\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: slipdev.c,v 1.1.2.3 2003/10/07 13:23:01 adam Exp $\r
- *\r
- */\r
-\r
-/*\r
- * This is a generic implementation of the SLIP protocol over an RS232\r
- * (serial) device. \r
- *\r
- * Huge thanks to Ullrich von Bassewitz <uz@cc65.org> of cc65 fame for\r
- * and endless supply of bugfixes, insightsful comments and\r
- * suggestions, and improvements to this code!\r
- */\r
-\r
-#include "uip.h"\r
-\r
-#define SLIP_END 0300\r
-#define SLIP_ESC 0333\r
-#define SLIP_ESC_END 0334\r
-#define SLIP_ESC_ESC 0335\r
-\r
-static u8_t slip_buf[UIP_BUFSIZE];\r
-\r
-static u16_t len, tmplen;\r
-static u8_t lastc;\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Send the packet in the uip_buf and uip_appdata buffers using the\r
- * SLIP protocol.\r
- *\r
- * The first 40 bytes of the packet (the IP and TCP headers) are read\r
- * from the uip_buf buffer, and the following bytes (the application\r
- * data) are read from the uip_appdata buffer.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-slipdev_send(void)\r
-{\r
- u16_t i;\r
- u8_t *ptr;\r
- u8_t c;\r
-\r
- slipdev_char_put(SLIP_END);\r
-\r
- ptr = uip_buf;\r
- for(i = 0; i < uip_len; ++i) {\r
- if(i == 40) {\r
- ptr = (u8_t *)uip_appdata;\r
- }\r
- c = *ptr++;\r
- switch(c) {\r
- case SLIP_END:\r
- slipdev_char_put(SLIP_ESC);\r
- slipdev_char_put(SLIP_ESC_END);\r
- break;\r
- case SLIP_ESC:\r
- slipdev_char_put(SLIP_ESC);\r
- slipdev_char_put(SLIP_ESC_ESC);\r
- break;\r
- default:\r
- slipdev_char_put(c);\r
- break;\r
- }\r
- }\r
- slipdev_char_put(SLIP_END);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/** \r
- * Poll the SLIP device for an available packet.\r
- *\r
- * This function will poll the SLIP device to see if a packet is\r
- * available. It uses a buffer in which all avaliable bytes from the\r
- * RS232 interface are read into. When a full packet has been read\r
- * into the buffer, the packet is copied into the uip_buf buffer and\r
- * the length of the packet is returned.\r
- *\r
- * \return The length of the packet placed in the uip_buf buffer, or\r
- * zero if no packet is available.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-slipdev_poll(void)\r
-{\r
- u8_t c;\r
- \r
- while(slipdev_char_poll(c)) {\r
- switch(c) {\r
- case SLIP_ESC:\r
- lastc = c;\r
- break;\r
- \r
- case SLIP_END:\r
- lastc = c;\r
- /* End marker found, we copy our input buffer to the uip_buf\r
- buffer and return the size of the packet we copied. */\r
- memcpy(uip_buf, slip_buf, len);\r
- tmplen = len;\r
- len = 0;\r
- return tmplen;\r
- \r
- default: \r
- if(lastc == SLIP_ESC) {\r
- lastc = c;\r
- /* Previous read byte was an escape byte, so this byte will be\r
- interpreted differently from others. */\r
- switch(c) {\r
- case SLIP_ESC_END:\r
- c = SLIP_END;\r
- break;\r
- case SLIP_ESC_ESC:\r
- c = SLIP_ESC;\r
- break;\r
- }\r
- } else {\r
- lastc = c;\r
- }\r
- \r
- slip_buf[len] = c;\r
- ++len;\r
- \r
- if(len > UIP_BUFSIZE) {\r
- len = 0;\r
- }\r
- \r
- break;\r
- }\r
- }\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the SLIP module.\r
- *\r
- * This function does not initialize the underlying RS232 device, but\r
- * only the SLIP part.\r
- */ \r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-slipdev_init(void)\r
-{\r
- lastc = len = 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
-/** @} */\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup slip\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * SLIP header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: slipdev.h,v 1.1.2.3 2003/10/06 22:42:51 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __SLIPDEV_H__\r
-#define __SLIPDEV_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * Put a character on the serial device.\r
- *\r
- * This function is used by the SLIP implementation to put a character\r
- * on the serial device. It must be implemented specifically for the\r
- * system on which the SLIP implementation is to be run.\r
- *\r
- * \param c The character to be put on the serial device.\r
- */\r
-void slipdev_char_put(u8_t c);\r
-\r
-/**\r
- * Poll the serial device for a character.\r
- *\r
- * This function is used by the SLIP implementation to poll the serial\r
- * device for a character. It must be implemented specifically for the\r
- * system on which the SLIP implementation is to be run.\r
- *\r
- * The function should return immediately regardless if a character is\r
- * available or not. If a character is available it should be placed\r
- * at the memory location pointed to by the pointer supplied by the\r
- * arguement c.\r
- *\r
- * \param c A pointer to a byte that is filled in by the function with\r
- * the received character, if available.\r
- *\r
- * \retval 0 If no character is available.\r
- * \retval Non-zero If a character is available.\r
- */\r
-u8_t slipdev_char_poll(u8_t *c);\r
-\r
-void slipdev_init(void);\r
-void slipdev_send(void);\r
-u16_t slipdev_poll(void);\r
-\r
-#endif /* __SLIPDEV_H__ */\r
-\r
-/** @} */\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- *\r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- *\r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- *\r
- * 3. Neither the name of the Institute nor the names of its contributors \r
- * may be used to endorse or promote products derived from this software \r
- * without specific prior written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND \r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE \r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
- * SUCH DAMAGE. \r
- *\r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: tapdev.c,v 1.7.2.1 2003/10/07 13:23:19 adam Exp $\r
- */\r
-\r
-\r
-#include <fcntl.h>\r
-#include <stdlib.h>\r
-#include <stdio.h>\r
-#include <unistd.h>\r
-#include <string.h>\r
-#include <sys/ioctl.h>\r
-#include <sys/socket.h>\r
-#include <sys/types.h>\r
-#include <sys/time.h>\r
-#include <sys/uio.h>\r
-#include <sys/socket.h>\r
-\r
-#ifdef linux\r
-#include <sys/ioctl.h>\r
-#include <linux/if.h>\r
-#include <linux/if_tun.h>\r
-#define DEVTAP "/dev/net/tun"\r
-#else /* linux */\r
-#define DEVTAP "/dev/tap0"\r
-#endif /* linux */\r
-\r
-#include "uip.h"\r
-\r
-static int fd;\r
-\r
-static unsigned long lasttime;\r
-static struct timezone tz;\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-tapdev_init(void)\r
-{\r
- char buf[1024];\r
- \r
- fd = open(DEVTAP, O_RDWR);\r
- if(fd == -1) {\r
- perror("tapdev: tapdev_init: open");\r
- exit(1);\r
- }\r
-\r
-#ifdef linux\r
- {\r
- struct ifreq ifr;\r
- memset(&ifr, 0, sizeof(ifr));\r
- ifr.ifr_flags = IFF_TAP|IFF_NO_PI;\r
- if (ioctl(fd, TUNSETIFF, (void *) &ifr) < 0) {\r
- perror(buf);\r
- exit(1);\r
- }\r
- }\r
-#endif /* Linux */\r
-\r
- snprintf(buf, sizeof(buf), "ifconfig tap0 inet %d.%d.%d.%d",\r
- UIP_DRIPADDR0, UIP_DRIPADDR1, UIP_DRIPADDR2, UIP_DRIPADDR3);\r
- system(buf);\r
-\r
- lasttime = 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-unsigned int\r
-tapdev_read(void)\r
-{\r
- fd_set fdset;\r
- struct timeval tv, now;\r
- int ret;\r
- \r
- if(lasttime >= 500000) {\r
- lasttime = 0;\r
- return 0;\r
- }\r
- \r
- tv.tv_sec = 0;\r
- tv.tv_usec = 500000 - lasttime;\r
-\r
-\r
- FD_ZERO(&fdset);\r
- FD_SET(fd, &fdset);\r
-\r
- gettimeofday(&now, &tz); \r
- ret = select(fd + 1, &fdset, NULL, NULL, &tv);\r
- if(ret == 0) {\r
- lasttime = 0; \r
- return 0;\r
- } \r
- ret = read(fd, uip_buf, UIP_BUFSIZE); \r
- if(ret == -1) {\r
- perror("tap_dev: tapdev_read: read");\r
- }\r
- gettimeofday(&tv, &tz);\r
- lasttime += (tv.tv_sec - now.tv_sec) * 1000000 + (tv.tv_usec - now.tv_usec);\r
-\r
- return ret;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-tapdev_send(void)\r
-{\r
- int ret;\r
- struct iovec iov[2];\r
- \r
-#ifdef linux\r
- {\r
- char tmpbuf[UIP_BUFSIZE];\r
- int i;\r
-\r
- for(i = 0; i < 40 + UIP_LLH_LEN; i++) {\r
- tmpbuf[i] = uip_buf[i];\r
- }\r
- \r
- for(; i < uip_len; i++) {\r
- tmpbuf[i] = uip_appdata[i - 40 - UIP_LLH_LEN];\r
- }\r
- \r
- ret = write(fd, tmpbuf, uip_len);\r
- } \r
-#else \r
-\r
- if(uip_len < 40 + UIP_LLH_LEN) {\r
- ret = write(fd, uip_buf, uip_len + UIP_LLH_LEN);\r
- } else {\r
- iov[0].iov_base = uip_buf;\r
- iov[0].iov_len = 40 + UIP_LLH_LEN;\r
- iov[1].iov_base = (char *)uip_appdata;\r
- iov[1].iov_len = uip_len - (40 + UIP_LLH_LEN); \r
- \r
- ret = writev(fd, iov, 2);\r
- }\r
-#endif\r
- if(ret == -1) {\r
- perror("tap_dev: tapdev_send: writev");\r
- exit(1);\r
- }\r
-} \r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: tapdev.h,v 1.1.2.1 2003/10/04 22:54:17 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __TAPDEV_H__\r
-#define __TAPDEV_H__\r
-\r
-void tapdev_init(void);\r
-unsigned int tapdev_read(void);\r
-void tapdev_send(void);\r
-\r
-#endif /* __TAPDEV_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup telnetd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * An example telnet server shell\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the Contiki desktop OS.\r
- *\r
- * $Id: telnetd-shell.c,v 1.1.2.1 2003/10/06 22:56:22 adam Exp $\r
- *\r
- */\r
-\r
-#include "uip.h"\r
-#include "telnetd.h"\r
-#include <string.h>\r
-\r
-struct ptentry {\r
- char c;\r
- void (* pfunc)(struct telnetd_state *s, char *str);\r
-};\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-parse(struct telnetd_state *s, register char *str, struct ptentry *t)\r
-{\r
- register struct ptentry *p;\r
- char *sstr;\r
-\r
- sstr = str;\r
- \r
- /* Loop over the parse table entries in t in order to find one that\r
- matches the first character in str. */\r
- for(p = t; p->c != 0; ++p) {\r
- if(*str == p->c) {\r
- /* Skip rest of the characters up to the first space. */\r
- while(*str != ' ') {\r
- ++str;\r
- }\r
-\r
- /* Skip all spaces.*/\r
- while(*str == ' ') {\r
- ++str;\r
- }\r
-\r
- /* Call parse table entry function and return. */\r
- p->pfunc(s, str);\r
- return;\r
- }\r
- }\r
-\r
- /* Did not find matching entry in parse table. We just call the\r
- default handler supplied by the caller and return. */\r
- p->pfunc(s, str);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-exitt(struct telnetd_state *s, char *str)\r
-{\r
- telnetd_close(s);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-inttostr(register char *str, unsigned int i)\r
-{\r
- str[0] = '0' + i / 100;\r
- if(str[0] == '0') {\r
- str[0] = ' ';\r
- }\r
- str[1] = '0' + (i / 10) % 10;\r
- if(str[1] == '0') {\r
- str[1] = ' ';\r
- }\r
- str[2] = '0' + i % 10;\r
- str[3] = ' ';\r
- str[4] = 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-stats(struct telnetd_state *s, char *strr)\r
-{\r
- char str[10];\r
-\r
- inttostr(str, uip_stat.ip.recv);\r
- telnetd_output(s, "IP packets received ", str);\r
- inttostr(str, uip_stat.ip.sent);\r
- telnetd_output(s, "IP packets sent ", str);\r
- inttostr(str, uip_stat.ip.drop);\r
- telnetd_output(s, "IP packets dropped ", str);\r
-\r
- inttostr(str, uip_stat.icmp.recv);\r
- telnetd_output(s, "ICMP packets received ", str);\r
- inttostr(str, uip_stat.icmp.sent);\r
- telnetd_output(s, "ICMP packets sent ", str);\r
- inttostr(str, uip_stat.icmp.drop);\r
- telnetd_output(s, "ICMP packets dropped ", str);\r
-\r
- inttostr(str, uip_stat.tcp.recv);\r
- telnetd_output(s, "TCP packets received ", str);\r
- inttostr(str, uip_stat.tcp.sent);\r
- telnetd_output(s, "TCP packets sent ", str);\r
- inttostr(str, uip_stat.tcp.drop);\r
- telnetd_output(s, "TCP packets dropped ", str);\r
- inttostr(str, uip_stat.tcp.rexmit);\r
- telnetd_output(s, "TCP packets retransmitted ", str);\r
- inttostr(str, uip_stat.tcp.synrst);\r
- telnetd_output(s, "TCP connection attempts ", str);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-help(struct telnetd_state *s, char *str)\r
-{\r
- telnetd_output(s, "Available commands:", "");\r
- telnetd_output(s, "stats - show uIP statistics", "");\r
- telnetd_output(s, "exit - exit shell", ""); \r
- telnetd_output(s, "? - show this help", ""); \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-none(struct telnetd_state *s, char *str)\r
-{\r
- if(strlen(str) > 0) {\r
- telnetd_output(s, "Unknown command", "");\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static struct ptentry configparsetab[] =\r
- {{'s', stats},\r
- {'e', exitt},\r
- {'?', help},\r
-\r
- /* Default action */\r
- {0, none}};\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_connected(struct telnetd_state *s)\r
-{\r
- telnetd_output(s, "uIP command shell", "");\r
- telnetd_output(s, "Type '?' for help", ""); \r
- telnetd_prompt(s, "uIP-0.9> "); \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_input(struct telnetd_state *s, char *cmd)\r
-{\r
- parse(s, cmd, configparsetab);\r
- telnetd_prompt(s, "uIP-0.9> "); \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup telnetd Telnet server\r
- * @{\r
- *\r
- * The uIP telnet server provides a command based interface to uIP. It\r
- * allows using the "telnet" application to access uIP, and implements\r
- * the required telnet option negotiation.\r
- *\r
- * The code is structured in a way which makes it possible to add\r
- * commands without having to rewrite the main telnet code. The main\r
- * telnet code calls two callback functions, telnetd_connected() and\r
- * telnetd_input(), when a telnet connection has been established and\r
- * when a line of text arrives on a telnet connection. These two\r
- * functions can be implemented in a way which suits the particular\r
- * application or environment in which the uIP system is intended to\r
- * be run.\r
- *\r
- * The uIP distribution contains an example telnet shell\r
- * implementation that provides a basic set of commands.\r
- */\r
-\r
-/**\r
- * \file\r
- * Implementation of the Telnet server.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: telnetd.c,v 1.1.2.2 2003/10/07 13:47:50 adam Exp $\r
- *\r
- */\r
-\r
-#include "uip.h"\r
-#include "memb.h"\r
-#include "telnetd.h"\r
-#include <string.h>\r
-\r
-#define ISO_nl 0x0a\r
-#define ISO_cr 0x0d\r
-\r
-MEMB(linemem, TELNETD_LINELEN, TELNETD_NUMLINES);\r
-\r
-static u8_t i;\r
-\r
-#define STATE_NORMAL 0\r
-#define STATE_IAC 1\r
-#define STATE_WILL 2\r
-#define STATE_WONT 3\r
-#define STATE_DO 4 \r
-#define STATE_DONT 5\r
-#define STATE_CLOSE 6\r
-\r
-#define TELNET_IAC 255\r
-#define TELNET_WILL 251\r
-#define TELNET_WONT 252\r
-#define TELNET_DO 253\r
-#define TELNET_DONT 254\r
-/*-----------------------------------------------------------------------------------*/\r
-static char *\r
-alloc_line(void)\r
-{ \r
- return memb_alloc(&linemem);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-dealloc_line(char *line)\r
-{\r
- memb_free(&linemem, line);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-sendline(struct telnetd_state *s, char *line)\r
-{\r
- static unsigned int i;\r
- for(i = 0; i < TELNETD_NUMLINES; ++i) {\r
- if(s->lines[i] == NULL) {\r
- s->lines[i] = line;\r
- break;\r
- }\r
- }\r
- if(i == TELNETD_NUMLINES) {\r
- dealloc_line(line);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Close a telnet session.\r
- *\r
- * This function can be called from a telnet command in order to close\r
- * the connection.\r
- *\r
- * \param s The connection which is to be closed.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_close(struct telnetd_state *s)\r
-{\r
- s->state = STATE_CLOSE;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Print a prompt on a telnet connection.\r
- *\r
- * This function can be called by the telnet command shell in order to\r
- * print out a command prompt.\r
- *\r
- * \param s A telnet connection.\r
- *\r
- * \param str The command prompt.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_prompt(struct telnetd_state *s, char *str)\r
-{\r
- char *line;\r
- line = alloc_line();\r
- if(line != NULL) {\r
- strncpy(line, str, TELNETD_LINELEN);\r
- sendline(s, line);\r
- } \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Print out a string on a telnet connection.\r
- *\r
- * This function can be called from a telnet command parser in order\r
- * to print out a string of text on the connection. The two strings\r
- * given as arguments to the function will be concatenated, a carrige\r
- * return and a new line character will be added, and the line is\r
- * sent.\r
- *\r
- * \param s The telnet connection.\r
- *\r
- * \param str1 The first string.\r
- *\r
- * \param str2 The second string.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_output(struct telnetd_state *s, char *str1, char *str2)\r
-{\r
- static unsigned len;\r
- char *line;\r
- \r
- line = alloc_line();\r
- if(line != NULL) {\r
- len = strlen(str1);\r
- strncpy(line, str1, TELNETD_LINELEN);\r
- if(len < TELNETD_LINELEN) {\r
- strncpy(line + len, str2, TELNETD_LINELEN - len);\r
- }\r
- len = strlen(line);\r
- if(len < TELNETD_LINELEN - 2) {\r
- line[len] = ISO_cr;\r
- line[len+1] = ISO_nl;\r
- line[len+2] = 0;\r
- }\r
- sendline(s, line);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the telnet server.\r
- *\r
- * This function will perform the necessary initializations and start\r
- * listening on TCP port 23.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_init(void)\r
-{\r
- memb_init(&linemem);\r
- uip_listen(HTONS(23));\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-acked(struct telnetd_state *s) \r
-{\r
- dealloc_line(s->lines[0]);\r
- for(i = 1; i < TELNETD_NUMLINES; ++i) {\r
- s->lines[i - 1] = s->lines[i];\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-senddata(struct telnetd_state *s) \r
-{\r
- if(s->lines[0] != NULL) {\r
- uip_send(s->lines[0], strlen(s->lines[0]));\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-getchar(struct telnetd_state *s, u8_t c)\r
-{\r
- if(c == ISO_cr) {\r
- return;\r
- }\r
- \r
- s->buf[(int)s->bufptr] = c; \r
- if(s->buf[(int)s->bufptr] == ISO_nl ||\r
- s->bufptr == sizeof(s->buf) - 1) { \r
- if(s->bufptr > 0) {\r
- s->buf[(int)s->bufptr] = 0;\r
- }\r
- telnetd_input(s, s->buf);\r
- s->bufptr = 0;\r
- } else {\r
- ++s->bufptr;\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-sendopt(struct telnetd_state *s, u8_t option, u8_t value)\r
-{\r
- char *line;\r
- line = alloc_line();\r
- if(line != NULL) {\r
- line[0] = TELNET_IAC;\r
- line[1] = option;\r
- line[2] = value;\r
- line[3] = 0;\r
- sendline(s, line);\r
- } \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-newdata(struct telnetd_state *s)\r
-{\r
- u16_t len;\r
- u8_t c;\r
- \r
- \r
- len = uip_datalen();\r
- \r
- while(len > 0 && s->bufptr < sizeof(s->buf)) {\r
- c = *uip_appdata;\r
- ++uip_appdata;\r
- --len;\r
- switch(s->state) {\r
- case STATE_IAC:\r
- if(c == TELNET_IAC) {\r
- getchar(s, c);\r
- s->state = STATE_NORMAL;\r
- } else {\r
- switch(c) {\r
- case TELNET_WILL:\r
- s->state = STATE_WILL;\r
- break;\r
- case TELNET_WONT:\r
- s->state = STATE_WONT;\r
- break;\r
- case TELNET_DO:\r
- s->state = STATE_DO;\r
- break;\r
- case TELNET_DONT:\r
- s->state = STATE_DONT;\r
- break;\r
- default:\r
- s->state = STATE_NORMAL;\r
- break;\r
- }\r
- }\r
- break;\r
- case STATE_WILL:\r
- /* Reply with a DONT */\r
- sendopt(s, TELNET_DONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- \r
- case STATE_WONT:\r
- /* Reply with a DONT */\r
- sendopt(s, TELNET_DONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- case STATE_DO:\r
- /* Reply with a WONT */\r
- sendopt(s, TELNET_WONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- case STATE_DONT:\r
- /* Reply with a WONT */\r
- sendopt(s, TELNET_WONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- case STATE_NORMAL:\r
- if(c == TELNET_IAC) {\r
- s->state = STATE_IAC;\r
- } else {\r
- getchar(s, c);\r
- } \r
- break;\r
- } \r
-\r
- \r
- } \r
- \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_app(void)\r
-{\r
- struct telnetd_state *s;\r
-\r
- s = (struct telnetd_state *)uip_conn->appstate;\r
- \r
- if(uip_connected()) {\r
-\r
- for(i = 0; i < TELNETD_NUMLINES; ++i) {\r
- s->lines[i] = NULL;\r
- }\r
- s->bufptr = 0;\r
- s->state = STATE_NORMAL;\r
-\r
- telnetd_connected(s);\r
- senddata(s);\r
- return;\r
- }\r
-\r
- if(s->state == STATE_CLOSE) {\r
- s->state = STATE_NORMAL;\r
- uip_close();\r
- return;\r
- }\r
- \r
- if(uip_closed()) {\r
- telnetd_output(s, "Connection closed", "");\r
- }\r
-\r
- \r
- if(uip_aborted()) {\r
- telnetd_output(s, "Connection reset", "");\r
- }\r
- \r
- if(uip_timedout()) {\r
- telnetd_output(s, "Connection timed out", "");\r
- }\r
- \r
- if(uip_acked()) {\r
- acked(s);\r
- }\r
- \r
- if(uip_newdata()) {\r
- newdata(s);\r
- }\r
- \r
- if(uip_rexmit() ||\r
- uip_newdata() ||\r
- uip_acked()) {\r
- senddata(s);\r
- } else if(uip_poll()) { \r
- senddata(s);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \addtogroup telnetd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Header file for the telnet server.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2002, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: telnetd.h,v 1.1.2.2 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-#ifndef __TELNETD_H__\r
-#define __TELNETD_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * The maximum length of a telnet line.\r
- *\r
- * \hideinitializer\r
- */\r
-#define TELNETD_LINELEN 36\r
-\r
-/**\r
- * The number of output lines being buffered for all telnet\r
- * connections.\r
- *\r
- * \hideinitializer\r
- */\r
-#define TELNETD_NUMLINES 2\r
-\r
-/**\r
- * A telnet connection structure.\r
- */\r
-struct telnetd_state {\r
- char *lines[TELNETD_NUMLINES];\r
- char buf[TELNETD_LINELEN];\r
- char bufptr;\r
- u8_t state;\r
-};\r
-\r
-\r
-/**\r
- * Callback function that is called when a telnet connection has been\r
- * established.\r
- *\r
- * \param s The telnet connection. \r
- */\r
-void telnetd_connected(struct telnetd_state *s);\r
-\r
-/**\r
- * Callback function that is called when a line of text has arrived on\r
- * a telnet connection.\r
- *\r
- * \param s The telnet connection.\r
- *\r
- * \param cmd The line of text.\r
- */\r
-void telnetd_input(struct telnetd_state *s, char *cmd);\r
-\r
-\r
-void telnetd_close(struct telnetd_state *s);\r
-void telnetd_output(struct telnetd_state *s, char *s1, char *s2);\r
-void telnetd_prompt(struct telnetd_state *s, char *str);\r
-\r
-void telnetd_app(void);\r
-\r
-#ifndef UIP_APPCALL\r
-#define UIP_APPCALL telnetd_app\r
-#endif\r
-\r
-#ifndef UIP_APPSTATE_SIZE\r
-#define UIP_APPSTATE_SIZE (sizeof(struct telnetd_state))\r
-#endif\r
-\r
-void telnetd_init(void);\r
-\r
-\r
-#endif /* __TELNET_H__ */\r
-\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * The uIP TCP/IP stack code.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip.c,v 1.62.2.10 2003/10/07 13:23:01 adam Exp $\r
- *\r
- */\r
-\r
-/*\r
-This is a small implementation of the IP and TCP protocols (as well as\r
-some basic ICMP stuff). The implementation couples the IP, TCP and the\r
-application layers very tightly. To keep the size of the compiled code\r
-down, this code also features heavy usage of the goto statement.\r
-\r
-The principle is that we have a small buffer, called the uip_buf, in\r
-which the device driver puts an incoming packet. The TCP/IP stack\r
-parses the headers in the packet, and calls upon the application. If\r
-the remote host has sent data to the application, this data is present\r
-in the uip_buf and the application read the data from there. It is up\r
-to the application to put this data into a byte stream if needed. The\r
-application will not be fed with data that is out of sequence.\r
-\r
-If the application whishes to send data to the peer, it should put its\r
-data into the uip_buf, 40 bytes from the start of the buffer. The\r
-TCP/IP stack will calculate the checksums, and fill in the necessary\r
-header fields and finally send the packet back to the peer.\r
-*/\r
-\r
-#include "uip.h"\r
-#include "uipopt.h"\r
-#include "uip_arch.h"\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* Variable definitions. */\r
-\r
-\r
-/* 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 */\r
-#if UIP_FIXEDADDR > 0\r
-const u16_t uip_hostaddr[2] =\r
- {HTONS((UIP_IPADDR0 << 8) | UIP_IPADDR1),\r
- HTONS((UIP_IPADDR2 << 8) | UIP_IPADDR3)};\r
-const u16_t uip_arp_draddr[2] =\r
- {HTONS((UIP_DRIPADDR0 << 8) | UIP_DRIPADDR1),\r
- HTONS((UIP_DRIPADDR2 << 8) | UIP_DRIPADDR3)};\r
-const u16_t uip_arp_netmask[2] =\r
- {HTONS((UIP_NETMASK0 << 8) | UIP_NETMASK1),\r
- HTONS((UIP_NETMASK2 << 8) | UIP_NETMASK3)};\r
-#else\r
-u16_t uip_hostaddr[2];\r
-u16_t uip_arp_draddr[2], uip_arp_netmask[2];\r
-#endif /* UIP_FIXEDADDR */\r
-\r
-u8_t uip_buf[UIP_BUFSIZE+2]; /* The packet buffer that contains\r
- incoming packets. */\r
-volatile u8_t *uip_appdata; /* The uip_appdata pointer points to\r
- application data. */\r
-volatile u8_t *uip_sappdata; /* The uip_appdata pointer points to the\r
- application data which is to be sent. */\r
-#if UIP_URGDATA > 0\r
-volatile u8_t *uip_urgdata; /* The uip_urgdata pointer points to\r
- urgent data (out-of-band data), if\r
- present. */\r
-volatile u8_t uip_urglen, uip_surglen;\r
-#endif /* UIP_URGDATA > 0 */\r
-\r
-volatile u16_t uip_len, uip_slen;\r
- /* The uip_len is either 8 or 16 bits,\r
- depending on the maximum packet\r
- size. */\r
-\r
-volatile u8_t uip_flags; /* The uip_flags variable is used for\r
- communication between the TCP/IP stack\r
- and the application program. */\r
-struct uip_conn *uip_conn; /* uip_conn always points to the current\r
- connection. */\r
-\r
-struct uip_conn uip_conns[UIP_CONNS];\r
- /* The uip_conns array holds all TCP\r
- connections. */\r
-u16_t uip_listenports[UIP_LISTENPORTS];\r
- /* The uip_listenports list all currently\r
- listning ports. */\r
-#if UIP_UDP\r
-struct uip_udp_conn *uip_udp_conn;\r
-struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];\r
-#endif /* UIP_UDP */\r
-\r
-\r
-static u16_t ipid; /* Ths ipid variable is an increasing\r
- number that is used for the IP ID\r
- field. */\r
-\r
-static u8_t iss[4]; /* The iss variable is used for the TCP\r
- initial sequence number. */\r
-\r
-#if UIP_ACTIVE_OPEN\r
-static u16_t lastport; /* Keeps track of the last port used for\r
- a new connection. */\r
-#endif /* UIP_ACTIVE_OPEN */\r
-\r
-/* Temporary variables. */\r
-volatile u8_t uip_acc32[4];\r
-static u8_t c, opt;\r
-static u16_t tmp16;\r
-\r
-/* Structures and definitions. */\r
-#define TCP_FIN 0x01\r
-#define TCP_SYN 0x02\r
-#define TCP_RST 0x04\r
-#define TCP_PSH 0x08\r
-#define TCP_ACK 0x10\r
-#define TCP_URG 0x20\r
-#define TCP_CTL 0x3f\r
-\r
-#define ICMP_ECHO_REPLY 0\r
-#define ICMP_ECHO 8\r
-\r
-/* Macros. */\r
-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-#define FBUF ((uip_tcpip_hdr *)&uip_reassbuf[0])\r
-#define ICMPBUF ((uip_icmpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-#define UDPBUF ((uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-\r
-#if UIP_STATISTICS == 1\r
-struct uip_stats uip_stat;\r
-#define UIP_STAT(s) s\r
-#else\r
-#define UIP_STAT(s)\r
-#endif /* UIP_STATISTICS == 1 */\r
-\r
-#if UIP_LOGGING == 1\r
-#include <stdio.h>\r
-void uip_log(char *msg);\r
-#define UIP_LOG(m) uip_log(m)\r
-#else\r
-#define UIP_LOG(m)\r
-#endif /* UIP_LOGGING == 1 */\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_init(void)\r
-{\r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- uip_listenports[c] = 0;\r
- }\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- uip_conns[c].tcpstateflags = CLOSED;\r
- }\r
-#if UIP_ACTIVE_OPEN\r
- lastport = 1024;\r
-#endif /* UIP_ACTIVE_OPEN */\r
-\r
-#if UIP_UDP\r
- for(c = 0; c < UIP_UDP_CONNS; ++c) {\r
- uip_udp_conns[c].lport = 0;\r
- }\r
-#endif /* UIP_UDP */\r
-\r
-\r
- /* IPv4 initialization. */\r
-#if UIP_FIXEDADDR == 0\r
- uip_hostaddr[0] = uip_hostaddr[1] = 0;\r
-#endif /* UIP_FIXEDADDR */\r
-\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-#if UIP_ACTIVE_OPEN\r
-struct uip_conn *\r
-uip_connect(u16_t *ripaddr, u16_t rport)\r
-{\r
- register struct uip_conn *conn, *cconn;\r
-\r
- /* Find an unused local port. */\r
- again:\r
- ++lastport;\r
-\r
- if(lastport >= 32000) {\r
- lastport = 4096;\r
- }\r
-\r
- /* Check if this port is already in use, and if so try to find\r
- another one. */\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- conn = &uip_conns[c];\r
- if(conn->tcpstateflags != CLOSED &&\r
- conn->lport == htons(lastport)) {\r
- goto again;\r
- }\r
- }\r
-\r
-\r
- conn = 0;\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- cconn = &uip_conns[c];\r
- if(cconn->tcpstateflags == CLOSED) {\r
- conn = cconn;\r
- break;\r
- }\r
- if(cconn->tcpstateflags == TIME_WAIT) {\r
- if(conn == 0 ||\r
- cconn->timer > uip_conn->timer) {\r
- conn = cconn;\r
- }\r
- }\r
- }\r
-\r
- if(conn == 0) {\r
- return 0;\r
- }\r
-\r
- conn->tcpstateflags = SYN_SENT;\r
-\r
- conn->snd_nxt[0] = iss[0];\r
- conn->snd_nxt[1] = iss[1];\r
- conn->snd_nxt[2] = iss[2];\r
- conn->snd_nxt[3] = iss[3];\r
-\r
- conn->initialmss = conn->mss = UIP_TCP_MSS;\r
-\r
- conn->len = 1; /* TCP length of the SYN is one. */\r
- conn->nrtx = 0;\r
- conn->timer = 1; /* Send the SYN next time around. */\r
- conn->rto = UIP_RTO;\r
- conn->sa = 0;\r
- conn->sv = 16;\r
- conn->lport = htons(lastport);\r
- conn->rport = rport;\r
- conn->ripaddr[0] = ripaddr[0];\r
- conn->ripaddr[1] = ripaddr[1];\r
-\r
- return conn;\r
-}\r
-#endif /* UIP_ACTIVE_OPEN */\r
-/*-----------------------------------------------------------------------------------*/\r
-#if UIP_UDP\r
-struct uip_udp_conn *\r
-uip_udp_new(u16_t *ripaddr, u16_t rport)\r
-{\r
- register struct uip_udp_conn *conn;\r
-\r
- /* Find an unused local port. */\r
- again:\r
- ++lastport;\r
-\r
- if(lastport >= 32000) {\r
- lastport = 4096;\r
- }\r
-\r
- for(c = 0; c < UIP_UDP_CONNS; ++c) {\r
- if(uip_udp_conns[c].lport == lastport) {\r
- goto again;\r
- }\r
- }\r
-\r
-\r
- conn = 0;\r
- for(c = 0; c < UIP_UDP_CONNS; ++c) {\r
- if(uip_udp_conns[c].lport == 0) {\r
- conn = &uip_udp_conns[c];\r
- break;\r
- }\r
- }\r
-\r
- if(conn == 0) {\r
- return 0;\r
- }\r
-\r
- conn->lport = HTONS(lastport);\r
- conn->rport = HTONS(rport);\r
- conn->ripaddr[0] = ripaddr[0];\r
- conn->ripaddr[1] = ripaddr[1];\r
-\r
- return conn;\r
-}\r
-#endif /* UIP_UDP */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_unlisten(u16_t port)\r
-{\r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- if(uip_listenports[c] == port) {\r
- uip_listenports[c] = 0;\r
- return;\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_listen(u16_t port)\r
-{\r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- if(uip_listenports[c] == 0) {\r
- uip_listenports[c] = port;\r
- return;\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/* XXX: IP fragment reassembly: not well-tested. */\r
-\r
-#if UIP_REASSEMBLY\r
-#define UIP_REASS_BUFSIZE (UIP_BUFSIZE - UIP_LLH_LEN)\r
-static u8_t uip_reassbuf[UIP_REASS_BUFSIZE];\r
-static u8_t uip_reassbitmap[UIP_REASS_BUFSIZE / (8 * 8)];\r
-static const u8_t bitmap_bits[8] = {0xff, 0x7f, 0x3f, 0x1f,\r
- 0x0f, 0x07, 0x03, 0x01};\r
-static u16_t uip_reasslen;\r
-static u8_t uip_reassflags;\r
-#define UIP_REASS_FLAG_LASTFRAG 0x01\r
-static u8_t uip_reasstmr;\r
-\r
-#define IP_HLEN 20\r
-#define IP_MF 0x20\r
-\r
-static u8_t\r
-uip_reass(void)\r
-{\r
- u16_t offset, len;\r
- u16_t i;\r
-\r
- /* If ip_reasstmr is zero, no packet is present in the buffer, so we\r
- write the IP header of the fragment into the reassembly\r
- buffer. The timer is updated with the maximum age. */\r
- if(uip_reasstmr == 0) {\r
- memcpy(uip_reassbuf, &BUF->vhl, IP_HLEN);\r
- uip_reasstmr = UIP_REASS_MAXAGE;\r
- uip_reassflags = 0;\r
- /* Clear the bitmap. */\r
- memset(uip_reassbitmap, sizeof(uip_reassbitmap), 0);\r
- }\r
-\r
- /* Check if the incoming fragment matches the one currently present\r
- in the reasembly buffer. If so, we proceed with copying the\r
- fragment into the buffer. */\r
- if(BUF->srcipaddr[0] == FBUF->srcipaddr[0] &&\r
- BUF->srcipaddr[1] == FBUF->srcipaddr[1] &&\r
- BUF->destipaddr[0] == FBUF->destipaddr[0] &&\r
- BUF->destipaddr[1] == FBUF->destipaddr[1] &&\r
- BUF->ipid[0] == FBUF->ipid[0] &&\r
- BUF->ipid[1] == FBUF->ipid[1]) {\r
-\r
- len = (BUF->len[0] << 8) + BUF->len[1] - (BUF->vhl & 0x0f) * 4;\r
- offset = (((BUF->ipoffset[0] & 0x3f) << 8) + BUF->ipoffset[1]) * 8;\r
-\r
- /* If the offset or the offset + fragment length overflows the\r
- reassembly buffer, we discard the entire packet. */\r
- if(offset > UIP_REASS_BUFSIZE ||\r
- offset + len > UIP_REASS_BUFSIZE) {\r
- uip_reasstmr = 0;\r
- goto nullreturn;\r
- }\r
-\r
- /* Copy the fragment into the reassembly buffer, at the right\r
- offset. */\r
- memcpy(&uip_reassbuf[IP_HLEN + offset],\r
- (char *)BUF + (int)((BUF->vhl & 0x0f) * 4),\r
- len);\r
-\r
- /* Update the bitmap. */\r
- if(offset / (8 * 8) == (offset + len) / (8 * 8)) {\r
- /* If the two endpoints are in the same byte, we only update\r
- that byte. */\r
- \r
- uip_reassbitmap[offset / (8 * 8)] |=\r
- bitmap_bits[(offset / 8 ) & 7] &\r
- ~bitmap_bits[((offset + len) / 8 ) & 7];\r
- } else {\r
- /* If the two endpoints are in different bytes, we update the\r
- bytes in the endpoints and fill the stuff inbetween with\r
- 0xff. */\r
- uip_reassbitmap[offset / (8 * 8)] |=\r
- bitmap_bits[(offset / 8 ) & 7];\r
- for(i = 1 + offset / (8 * 8); i < (offset + len) / (8 * 8); ++i) {\r
- uip_reassbitmap[i] = 0xff;\r
- }\r
- uip_reassbitmap[(offset + len) / (8 * 8)] |=\r
- ~bitmap_bits[((offset + len) / 8 ) & 7];\r
- }\r
-\r
- /* If this fragment has the More Fragments flag set to zero, we\r
- know that this is the last fragment, so we can calculate the\r
- size of the entire packet. We also set the\r
- IP_REASS_FLAG_LASTFRAG flag to indicate that we have received\r
- the final fragment. */\r
-\r
- if((BUF->ipoffset[0] & IP_MF) == 0) {\r
- uip_reassflags |= UIP_REASS_FLAG_LASTFRAG;\r
- uip_reasslen = offset + len;\r
- }\r
-\r
- /* Finally, we check if we have a full packet in the buffer. We do\r
- this by checking if we have the last fragment and if all bits\r
- in the bitmap are set. */\r
- if(uip_reassflags & UIP_REASS_FLAG_LASTFRAG) {\r
- /* Check all bytes up to and including all but the last byte in\r
- the bitmap. */\r
- for(i = 0; i < uip_reasslen / (8 * 8) - 1; ++i) {\r
- if(uip_reassbitmap[i] != 0xff) {\r
- goto nullreturn;\r
- }\r
- }\r
- /* Check the last byte in the bitmap. It should contain just the\r
- right amount of bits. */\r
- if(uip_reassbitmap[uip_reasslen / (8 * 8)] !=\r
- (u8_t)~bitmap_bits[uip_reasslen / 8 & 7]) {\r
- goto nullreturn;\r
- }\r
-\r
- /* If we have come this far, we have a full packet in the\r
- buffer, so we allocate a pbuf and copy the packet into it. We\r
- also reset the timer. */\r
- uip_reasstmr = 0;\r
- memcpy(BUF, FBUF, uip_reasslen);\r
-\r
- /* Pretend to be a "normal" (i.e., not fragmented) IP packet\r
- from now on. */\r
- BUF->ipoffset[0] = BUF->ipoffset[1] = 0;\r
- BUF->len[0] = uip_reasslen >> 8;\r
- BUF->len[1] = uip_reasslen & 0xff;\r
- BUF->ipchksum = 0;\r
- BUF->ipchksum = ~(uip_ipchksum());\r
-\r
- return uip_reasslen;\r
- }\r
- }\r
-\r
- nullreturn:\r
- return 0;\r
-}\r
-#endif /* UIP_REASSEMBL */\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-uip_add_rcv_nxt(u16_t n)\r
-{\r
- uip_add32(uip_conn->rcv_nxt, n);\r
- uip_conn->rcv_nxt[0] = uip_acc32[0];\r
- uip_conn->rcv_nxt[1] = uip_acc32[1];\r
- uip_conn->rcv_nxt[2] = uip_acc32[2];\r
- uip_conn->rcv_nxt[3] = uip_acc32[3];\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_process(u8_t flag)\r
-{\r
- register struct uip_conn *uip_connr = uip_conn;\r
-\r
- uip_appdata = &uip_buf[40 + UIP_LLH_LEN];\r
-\r
-\r
- /* Check if we were invoked because of the perodic timer fireing. */\r
- if(flag == UIP_TIMER) {\r
-#if UIP_REASSEMBLY\r
- if(uip_reasstmr != 0) {\r
- --uip_reasstmr;\r
- }\r
-#endif /* UIP_REASSEMBLY */\r
- /* Increase the initial sequence number. */\r
- if(++iss[3] == 0) {\r
- if(++iss[2] == 0) {\r
- if(++iss[1] == 0) {\r
- ++iss[0];\r
- }\r
- }\r
- }\r
- uip_len = 0;\r
- if(uip_connr->tcpstateflags == TIME_WAIT ||\r
- uip_connr->tcpstateflags == FIN_WAIT_2) {\r
- ++(uip_connr->timer);\r
- if(uip_connr->timer == UIP_TIME_WAIT_TIMEOUT) {\r
- uip_connr->tcpstateflags = CLOSED;\r
- }\r
- } else if(uip_connr->tcpstateflags != CLOSED) {\r
- /* If the connection has outstanding data, we increase the\r
- connection's timer and see if it has reached the RTO value\r
- in which case we retransmit. */\r
- if(uip_outstanding(uip_connr)) {\r
- if(uip_connr->timer-- == 0) {\r
- if(uip_connr->nrtx == UIP_MAXRTX ||\r
- ((uip_connr->tcpstateflags == SYN_SENT ||\r
- uip_connr->tcpstateflags == SYN_RCVD) &&\r
- uip_connr->nrtx == UIP_MAXSYNRTX)) {\r
- uip_connr->tcpstateflags = CLOSED;\r
-\r
- /* We call UIP_APPCALL() with uip_flags set to\r
- UIP_TIMEDOUT to inform the application that the\r
- connection has timed out. */\r
- uip_flags = UIP_TIMEDOUT;\r
- UIP_APPCALL();\r
-\r
- /* We also send a reset packet to the remote host. */\r
- BUF->flags = TCP_RST | TCP_ACK;\r
- goto tcp_send_nodata;\r
- }\r
-\r
- /* Exponential backoff. */\r
- uip_connr->timer = UIP_RTO << (uip_connr->nrtx > 4?\r
- 4:\r
- uip_connr->nrtx);\r
- ++(uip_connr->nrtx);\r
- \r
- /* Ok, so we need to retransmit. We do this differently\r
- depending on which state we are in. In ESTABLISHED, we\r
- call upon the application so that it may prepare the\r
- data for the retransmit. In SYN_RCVD, we resend the\r
- SYNACK that we sent earlier and in LAST_ACK we have to\r
- retransmit our FINACK. */\r
- UIP_STAT(++uip_stat.tcp.rexmit);\r
- switch(uip_connr->tcpstateflags & TS_MASK) {\r
- case SYN_RCVD:\r
- /* In the SYN_RCVD state, we should retransmit our\r
- SYNACK. */\r
- goto tcp_send_synack;\r
- \r
-#if UIP_ACTIVE_OPEN\r
- case SYN_SENT:\r
- /* In the SYN_SENT state, we retransmit out SYN. */\r
- BUF->flags = 0;\r
- goto tcp_send_syn;\r
-#endif /* UIP_ACTIVE_OPEN */\r
- \r
- case ESTABLISHED:\r
- /* In the ESTABLISHED state, we call upon the application\r
- to do the actual retransmit after which we jump into\r
- the code for sending out the packet (the apprexmit\r
- label). */\r
- uip_len = 0;\r
- uip_slen = 0;\r
- uip_flags = UIP_REXMIT;\r
- UIP_APPCALL();\r
- goto apprexmit;\r
- \r
- case FIN_WAIT_1:\r
- case CLOSING:\r
- case LAST_ACK:\r
- /* In all these states we should retransmit a FINACK. */\r
- goto tcp_send_finack;\r
- \r
- }\r
- }\r
- } else if((uip_connr->tcpstateflags & TS_MASK) == ESTABLISHED) {\r
- /* If there was no need for a retransmission, we poll the\r
- application for new data. */\r
- uip_len = 0;\r
- uip_slen = 0;\r
- uip_flags = UIP_POLL;\r
- UIP_APPCALL();\r
- goto appsend;\r
- }\r
- }\r
- goto drop;\r
- }\r
-#if UIP_UDP\r
- if(flag == UIP_UDP_TIMER) {\r
- if(uip_udp_conn->lport != 0) {\r
- uip_appdata = &uip_buf[UIP_LLH_LEN + 28];\r
- uip_len = uip_slen = 0;\r
- uip_flags = UIP_POLL;\r
- UIP_UDP_APPCALL();\r
- goto udp_send;\r
- } else {\r
- goto drop;\r
- }\r
- }\r
-#endif\r
-\r
- /* This is where the input processing starts. */\r
- UIP_STAT(++uip_stat.ip.recv);\r
-\r
-\r
- /* Start of IPv4 input header processing code. */\r
-\r
- /* Check validity of the IP header. */\r
- if(BUF->vhl != 0x45) { /* IP version and header length. */\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.vhlerr);\r
- UIP_LOG("ip: invalid version or header length.");\r
- goto drop;\r
- }\r
-\r
- /* Check the size of the packet. If the size reported to us in\r
- uip_len doesn't match the size reported in the IP header, there\r
- has been a transmission error and we drop the packet. */\r
-\r
- if(BUF->len[0] != (uip_len >> 8)) { /* IP length, high byte. */\r
- uip_len = (uip_len & 0xff) | (BUF->len[0] << 8);\r
- }\r
- if(BUF->len[1] != (uip_len & 0xff)) { /* IP length, low byte. */\r
- uip_len = (uip_len & 0xff00) | BUF->len[1];\r
- }\r
-\r
- /* Check the fragment flag. */\r
- if((BUF->ipoffset[0] & 0x3f) != 0 ||\r
- BUF->ipoffset[1] != 0) {\r
-#if UIP_REASSEMBLY\r
- uip_len = uip_reass();\r
- if(uip_len == 0) {\r
- goto drop;\r
- }\r
-#else\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.fragerr);\r
- UIP_LOG("ip: fragment dropped.");\r
- goto drop;\r
-#endif /* UIP_REASSEMBLY */\r
- }\r
-\r
- /* If we are configured to use ping IP address configuration and\r
- hasn't been assigned an IP address yet, we accept all ICMP\r
- packets. */\r
-#if UIP_PINGADDRCONF\r
- if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {\r
- if(BUF->proto == UIP_PROTO_ICMP) {\r
- UIP_LOG("ip: possible ping config packet received.");\r
- goto icmp_input;\r
- } else {\r
- UIP_LOG("ip: packet dropped since no address assigned.");\r
- goto drop;\r
- }\r
- }\r
-#endif /* UIP_PINGADDRCONF */\r
-\r
- /* Check if the packet is destined for our IP address. */\r
- if(BUF->destipaddr[0] != uip_hostaddr[0]) {\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_LOG("ip: packet not for us.");\r
- goto drop;\r
- }\r
- if(BUF->destipaddr[1] != uip_hostaddr[1]) {\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_LOG("ip: packet not for us.");\r
- goto drop;\r
- }\r
-\r
-#if 0\r
- // IP checksum is wrong through Netgear DSL router\r
- if (uip_ipchksum() != 0xffff) { /* Compute and check the IP header\r
- checksum. */\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.chkerr);\r
- UIP_LOG("ip: bad checksum.");\r
- goto drop;\r
- }\r
-#endif\r
-\r
- if(BUF->proto == UIP_PROTO_TCP) /* Check for TCP packet. If so, jump\r
- to the tcp_input label. */\r
- goto tcp_input;\r
-\r
-#if UIP_UDP\r
- if(BUF->proto == UIP_PROTO_UDP)\r
- goto udp_input;\r
-#endif /* UIP_UDP */\r
-\r
- if(BUF->proto != UIP_PROTO_ICMP) { /* We only allow ICMP packets from\r
- here. */\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.protoerr);\r
- UIP_LOG("ip: neither tcp nor icmp.");\r
- goto drop;\r
- }\r
-\r
-#if UIP_PINGADDRCONF\r
- icmp_input:\r
-#endif\r
- UIP_STAT(++uip_stat.icmp.recv);\r
-\r
- /* ICMP echo (i.e., ping) processing. This is simple, we only change\r
- the ICMP type from ECHO to ECHO_REPLY and adjust the ICMP\r
- checksum before we return the packet. */\r
- if(ICMPBUF->type != ICMP_ECHO) {\r
- UIP_STAT(++uip_stat.icmp.drop);\r
- UIP_STAT(++uip_stat.icmp.typeerr);\r
- UIP_LOG("icmp: not icmp echo.");\r
- goto drop;\r
- }\r
-\r
- /* If we are configured to use ping IP address assignment, we use\r
- the destination IP address of this ping packet and assign it to\r
- ourself. */\r
-#if UIP_PINGADDRCONF\r
- if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {\r
- uip_hostaddr[0] = BUF->destipaddr[0];\r
- uip_hostaddr[1] = BUF->destipaddr[1];\r
- }\r
-#endif /* UIP_PINGADDRCONF */\r
-\r
- ICMPBUF->type = ICMP_ECHO_REPLY;\r
-\r
- if(ICMPBUF->icmpchksum >= HTONS(0xffff - (ICMP_ECHO << 8))) {\r
- ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8) + 1;\r
- } else {\r
- ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8);\r
- }\r
-\r
- /* Swap IP addresses. */\r
- tmp16 = BUF->destipaddr[0];\r
- BUF->destipaddr[0] = BUF->srcipaddr[0];\r
- BUF->srcipaddr[0] = tmp16;\r
- tmp16 = BUF->destipaddr[1];\r
- BUF->destipaddr[1] = BUF->srcipaddr[1];\r
- BUF->srcipaddr[1] = tmp16;\r
-\r
- UIP_STAT(++uip_stat.icmp.sent);\r
- goto send;\r
-\r
- /* End of IPv4 input header processing code. */\r
-\r
-\r
-#if UIP_UDP\r
- /* UDP input processing. */\r
- udp_input:\r
- /* UDP processing is really just a hack. We don't do anything to the\r
- UDP/IP headers, but let the UDP application do all the hard\r
- work. If the application sets uip_slen, it has a packet to\r
- send. */\r
-#if UIP_UDP_CHECKSUMS\r
- if(uip_udpchksum() != 0xffff) {\r
- UIP_STAT(++uip_stat.udp.drop);\r
- UIP_STAT(++uip_stat.udp.chkerr);\r
- UIP_LOG("udp: bad checksum.");\r
- goto drop;\r
- }\r
-#endif /* UIP_UDP_CHECKSUMS */\r
-\r
- /* Demultiplex this UDP packet between the UDP "connections". */\r
- for(uip_udp_conn = &uip_udp_conns[0];\r
- uip_udp_conn < &uip_udp_conns[UIP_UDP_CONNS];\r
- ++uip_udp_conn) {\r
- if(uip_udp_conn->lport != 0 &&\r
- UDPBUF->destport == uip_udp_conn->lport &&\r
- (uip_udp_conn->rport == 0 ||\r
- UDPBUF->srcport == uip_udp_conn->rport) &&\r
- BUF->srcipaddr[0] == uip_udp_conn->ripaddr[0] &&\r
- BUF->srcipaddr[1] == uip_udp_conn->ripaddr[1]) {\r
- goto udp_found;\r
- }\r
- }\r
- goto drop;\r
-\r
- udp_found:\r
- uip_len = uip_len - 28;\r
- uip_appdata = &uip_buf[UIP_LLH_LEN + 28];\r
- uip_flags = UIP_NEWDATA;\r
- uip_slen = 0;\r
- UIP_UDP_APPCALL();\r
- udp_send:\r
- if(uip_slen == 0) {\r
- goto drop;\r
- }\r
- uip_len = uip_slen + 28;\r
-\r
- BUF->len[0] = (uip_len >> 8);\r
- BUF->len[1] = (uip_len & 0xff);\r
-\r
- BUF->proto = UIP_PROTO_UDP;\r
-\r
- UDPBUF->udplen = HTONS(uip_slen + 8);\r
- UDPBUF->udpchksum = 0;\r
-#if UIP_UDP_CHECKSUMS\r
- /* Calculate UDP checksum. */\r
- UDPBUF->udpchksum = ~(uip_udpchksum());\r
- if(UDPBUF->udpchksum == 0) {\r
- UDPBUF->udpchksum = 0xffff;\r
- }\r
-#endif /* UIP_UDP_CHECKSUMS */\r
-\r
- BUF->srcport = uip_udp_conn->lport;\r
- BUF->destport = uip_udp_conn->rport;\r
-\r
- BUF->srcipaddr[0] = uip_hostaddr[0];\r
- BUF->srcipaddr[1] = uip_hostaddr[1];\r
- BUF->destipaddr[0] = uip_udp_conn->ripaddr[0];\r
- BUF->destipaddr[1] = uip_udp_conn->ripaddr[1];\r
-\r
- uip_appdata = &uip_buf[UIP_LLH_LEN + 40];\r
- goto ip_send_nolen;\r
-#endif /* UIP_UDP */\r
-\r
- /* TCP input processing. */\r
- tcp_input:\r
- UIP_STAT(++uip_stat.tcp.recv);\r
-\r
- /* Start of TCP input header processing code. */\r
-\r
-#if 1 // FIXME\r
- if(uip_tcpchksum() != 0xffff) { /* Compute and check the TCP\r
- checksum. */\r
- UIP_STAT(++uip_stat.tcp.drop);\r
- UIP_STAT(++uip_stat.tcp.chkerr);\r
- UIP_LOG("tcp: bad checksum.");\r
- goto drop;\r
- }\r
-#endif\r
-\r
- /* Demultiplex this segment. */\r
- /* First check any active connections. */\r
- for(uip_connr = &uip_conns[0]; uip_connr < &uip_conns[UIP_CONNS]; ++uip_connr) {\r
- if(uip_connr->tcpstateflags != CLOSED &&\r
- BUF->destport == uip_connr->lport &&\r
- BUF->srcport == uip_connr->rport &&\r
- BUF->srcipaddr[0] == uip_connr->ripaddr[0] &&\r
- BUF->srcipaddr[1] == uip_connr->ripaddr[1]) {\r
- goto found;\r
- }\r
- }\r
-\r
- /* If we didn't find and active connection that expected the packet,\r
- either this packet is an old duplicate, or this is a SYN packet\r
- destined for a connection in LISTEN. If the SYN flag isn't set,\r
- it is an old packet and we send a RST. */\r
- if((BUF->flags & TCP_CTL) != TCP_SYN)\r
- goto reset;\r
-\r
- tmp16 = BUF->destport;\r
- /* Next, check listening connections. */\r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- if(tmp16 == uip_listenports[c])\r
- goto found_listen;\r
- }\r
-\r
- /* No matching connection found, so we send a RST packet. */\r
- UIP_STAT(++uip_stat.tcp.synrst);\r
- reset:\r
-\r
- /* We do not send resets in response to resets. */\r
- if(BUF->flags & TCP_RST)\r
- goto drop;\r
-\r
- UIP_STAT(++uip_stat.tcp.rst);\r
-\r
- BUF->flags = TCP_RST | TCP_ACK;\r
- uip_len = 40;\r
- BUF->tcpoffset = 5 << 4;\r
-\r
- /* Flip the seqno and ackno fields in the TCP header. */\r
- c = BUF->seqno[3];\r
- BUF->seqno[3] = BUF->ackno[3];\r
- BUF->ackno[3] = c;\r
-\r
- c = BUF->seqno[2];\r
- BUF->seqno[2] = BUF->ackno[2];\r
- BUF->ackno[2] = c;\r
-\r
- c = BUF->seqno[1];\r
- BUF->seqno[1] = BUF->ackno[1];\r
- BUF->ackno[1] = c;\r
-\r
- c = BUF->seqno[0];\r
- BUF->seqno[0] = BUF->ackno[0];\r
- BUF->ackno[0] = c;\r
-\r
- /* We also have to increase the sequence number we are\r
- acknowledging. If the least significant byte overflowed, we need\r
- to propagate the carry to the other bytes as well. */\r
- if(++BUF->ackno[3] == 0) {\r
- if(++BUF->ackno[2] == 0) {\r
- if(++BUF->ackno[1] == 0) {\r
- ++BUF->ackno[0];\r
- }\r
- }\r
- }\r
-\r
- /* Swap port numbers. */\r
- tmp16 = BUF->srcport;\r
- BUF->srcport = BUF->destport;\r
- BUF->destport = tmp16;\r
-\r
- /* Swap IP addresses. */\r
- tmp16 = BUF->destipaddr[0];\r
- BUF->destipaddr[0] = BUF->srcipaddr[0];\r
- BUF->srcipaddr[0] = tmp16;\r
- tmp16 = BUF->destipaddr[1];\r
- BUF->destipaddr[1] = BUF->srcipaddr[1];\r
- BUF->srcipaddr[1] = tmp16;\r
-\r
-\r
- /* And send out the RST packet! */\r
- goto tcp_send_noconn;\r
-\r
- /* This label will be jumped to if we matched the incoming packet\r
- with a connection in LISTEN. In that case, we should create a new\r
- connection and send a SYNACK in return. */\r
- found_listen:\r
- /* First we check if there are any connections avaliable. Unused\r
- connections are kept in the same table as used connections, but\r
- unused ones have the tcpstate set to CLOSED. Also, connections in\r
- TIME_WAIT are kept track of and we'll use the oldest one if no\r
- CLOSED connections are found. Thanks to Eddie C. Dost for a very\r
- nice algorithm for the TIME_WAIT search. */\r
- uip_connr = 0;\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- if(uip_conns[c].tcpstateflags == CLOSED) {\r
- uip_connr = &uip_conns[c];\r
- break;\r
- }\r
- if(uip_conns[c].tcpstateflags == TIME_WAIT) {\r
- if(uip_connr == 0 ||\r
- uip_conns[c].timer > uip_connr->timer) {\r
- uip_connr = &uip_conns[c];\r
- }\r
- }\r
- }\r
-\r
- if(uip_connr == 0) {\r
- /* All connections are used already, we drop packet and hope that\r
- the remote end will retransmit the packet at a time when we\r
- have more spare connections. */\r
- UIP_STAT(++uip_stat.tcp.syndrop);\r
- UIP_LOG("tcp: found no unused connections.");\r
- goto drop;\r
- }\r
- uip_conn = uip_connr;\r
-\r
- /* Fill in the necessary fields for the new connection. */\r
- uip_connr->rto = uip_connr->timer = UIP_RTO;\r
- uip_connr->sa = 0;\r
- uip_connr->sv = 4;\r
- uip_connr->nrtx = 0;\r
- uip_connr->lport = BUF->destport;\r
- uip_connr->rport = BUF->srcport;\r
- uip_connr->ripaddr[0] = BUF->srcipaddr[0];\r
- uip_connr->ripaddr[1] = BUF->srcipaddr[1];\r
- uip_connr->tcpstateflags = SYN_RCVD;\r
-\r
- uip_connr->snd_nxt[0] = iss[0];\r
- uip_connr->snd_nxt[1] = iss[1];\r
- uip_connr->snd_nxt[2] = iss[2];\r
- uip_connr->snd_nxt[3] = iss[3];\r
- uip_connr->len = 1;\r
-\r
- /* rcv_nxt should be the seqno from the incoming packet + 1. */\r
- uip_connr->rcv_nxt[3] = BUF->seqno[3];\r
- uip_connr->rcv_nxt[2] = BUF->seqno[2];\r
- uip_connr->rcv_nxt[1] = BUF->seqno[1];\r
- uip_connr->rcv_nxt[0] = BUF->seqno[0];\r
- uip_add_rcv_nxt(1);\r
-\r
- /* Parse the TCP MSS option, if present. */\r
- if((BUF->tcpoffset & 0xf0) > 0x50) {\r
- for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {\r
- opt = uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + c];\r
- if(opt == 0x00) {\r
- /* End of options. */ \r
- break;\r
- } else if(opt == 0x01) {\r
- ++c;\r
- /* NOP option. */\r
- } else if(opt == 0x02 &&\r
- uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {\r
- /* An MSS option with the right option length. */ \r
- tmp16 = ((u16_t)uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |\r
- (u16_t)uip_buf[40 + UIP_LLH_LEN + 3 + c];\r
- uip_connr->initialmss = uip_connr->mss =\r
- tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;\r
- \r
- /* And we are done processing options. */\r
- break;\r
- } else {\r
- /* All other options have a length field, so that we easily\r
- can skip past them. */\r
- if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {\r
- /* If the length field is zero, the options are malformed\r
- and we don't process them further. */\r
- break;\r
- }\r
- c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];\r
- }\r
- }\r
- }\r
-\r
- /* Our response will be a SYNACK. */\r
-#if UIP_ACTIVE_OPEN\r
- tcp_send_synack:\r
- BUF->flags = TCP_ACK;\r
-\r
- tcp_send_syn:\r
- BUF->flags |= TCP_SYN;\r
-#else /* UIP_ACTIVE_OPEN */\r
- tcp_send_synack:\r
- BUF->flags = TCP_SYN | TCP_ACK;\r
-#endif /* UIP_ACTIVE_OPEN */\r
-\r
- /* We send out the TCP Maximum Segment Size option with our\r
- SYNACK. */\r
- BUF->optdata[0] = 2;\r
- BUF->optdata[1] = 4;\r
- BUF->optdata[2] = (UIP_TCP_MSS) / 256;\r
- BUF->optdata[3] = (UIP_TCP_MSS) & 255;\r
- uip_len = 44;\r
- BUF->tcpoffset = 6 << 4;\r
- goto tcp_send;\r
-\r
- /* This label will be jumped to if we found an active connection. */\r
- found:\r
- uip_conn = uip_connr;\r
- uip_flags = 0;\r
-\r
- /* We do a very naive form of TCP reset processing; we just accept\r
- any RST and kill our connection. We should in fact check if the\r
- sequence number of this reset is wihtin our advertised window\r
- before we accept the reset. */\r
- if(BUF->flags & TCP_RST) {\r
- uip_connr->tcpstateflags = CLOSED;\r
- UIP_LOG("tcp: got reset, aborting connection.");\r
- uip_flags = UIP_ABORT;\r
- UIP_APPCALL();\r
- goto drop;\r
- }\r
- /* Calculated the length of the data, if the application has sent\r
- any data to us. */\r
- c = (BUF->tcpoffset >> 4) << 2;\r
- /* uip_len will contain the length of the actual TCP data. This is\r
- calculated by subtracing the length of the TCP header (in\r
- c) and the length of the IP header (20 bytes). */\r
- uip_len = uip_len - c - 20;\r
-\r
- /* First, check if the sequence number of the incoming packet is\r
- what we're expecting next. If not, we send out an ACK with the\r
- correct numbers in. */\r
- if(uip_len > 0 &&\r
- (BUF->seqno[0] != uip_connr->rcv_nxt[0] ||\r
- BUF->seqno[1] != uip_connr->rcv_nxt[1] ||\r
- BUF->seqno[2] != uip_connr->rcv_nxt[2] ||\r
- BUF->seqno[3] != uip_connr->rcv_nxt[3])) {\r
- goto tcp_send_ack;\r
- }\r
-\r
- /* Next, check if the incoming segment acknowledges any outstanding\r
- data. If so, we update the sequence number, reset the length of\r
- the outstanding data, calculate RTT estimations, and reset the\r
- retransmission timer. */\r
- if((BUF->flags & TCP_ACK) && uip_outstanding(uip_connr)) {\r
- uip_add32(uip_connr->snd_nxt, uip_connr->len);\r
- if(BUF->ackno[0] == uip_acc32[0] &&\r
- BUF->ackno[1] == uip_acc32[1] &&\r
- BUF->ackno[2] == uip_acc32[2] &&\r
- BUF->ackno[3] == uip_acc32[3]) {\r
- /* Update sequence number. */\r
- uip_connr->snd_nxt[0] = uip_acc32[0];\r
- uip_connr->snd_nxt[1] = uip_acc32[1];\r
- uip_connr->snd_nxt[2] = uip_acc32[2];\r
- uip_connr->snd_nxt[3] = uip_acc32[3];\r
- \r
-\r
- /* Do RTT estimation, unless we have done retransmissions. */\r
- if(uip_connr->nrtx == 0) {\r
- signed char m;\r
- m = uip_connr->rto - uip_connr->timer;\r
- /* This is taken directly from VJs original code in his paper */\r
- m = m - (uip_connr->sa >> 3);\r
- uip_connr->sa += m;\r
- if(m < 0) {\r
- m = -m;\r
- }\r
- m = m - (uip_connr->sv >> 2);\r
- uip_connr->sv += m;\r
- uip_connr->rto = (uip_connr->sa >> 3) + uip_connr->sv;\r
-\r
- }\r
- /* Set the acknowledged flag. */\r
- uip_flags = UIP_ACKDATA;\r
- /* Reset the retransmission timer. */\r
- uip_connr->timer = uip_connr->rto;\r
- }\r
-\r
- }\r
-\r
- /* Do different things depending on in what state the connection is. */\r
- switch(uip_connr->tcpstateflags & TS_MASK) {\r
- /* CLOSED and LISTEN are not handled here. CLOSE_WAIT is not\r
- implemented, since we force the application to close when the\r
- peer sends a FIN (hence the application goes directly from\r
- ESTABLISHED to LAST_ACK). */\r
- case SYN_RCVD:\r
- /* In SYN_RCVD we have sent out a SYNACK in response to a SYN, and\r
- we are waiting for an ACK that acknowledges the data we sent\r
- out the last time. Therefore, we want to have the UIP_ACKDATA\r
- flag set. If so, we enter the ESTABLISHED state. */\r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = ESTABLISHED;\r
- uip_flags = UIP_CONNECTED;\r
- uip_connr->len = 0;\r
- if(uip_len > 0) {\r
- uip_flags |= UIP_NEWDATA;\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
- uip_slen = 0;\r
- UIP_APPCALL();\r
- goto appsend;\r
- }\r
- goto drop;\r
-#if UIP_ACTIVE_OPEN\r
- case SYN_SENT:\r
- /* In SYN_SENT, we wait for a SYNACK that is sent in response to\r
- our SYN. The rcv_nxt is set to sequence number in the SYNACK\r
- plus one, and we send an ACK. We move into the ESTABLISHED\r
- state. */\r
- if((uip_flags & UIP_ACKDATA) &&\r
- BUF->flags == (TCP_SYN | TCP_ACK)) {\r
-\r
- /* Parse the TCP MSS option, if present. */\r
- if((BUF->tcpoffset & 0xf0) > 0x50) {\r
- for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {\r
- opt = uip_buf[40 + UIP_LLH_LEN + c];\r
- if(opt == 0x00) {\r
- /* End of options. */ \r
- break;\r
- } else if(opt == 0x01) {\r
- ++c;\r
- /* NOP option. */\r
- } else if(opt == 0x02 &&\r
- uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {\r
- /* An MSS option with the right option length. */\r
- tmp16 = (uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |\r
- uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 3 + c];\r
- uip_connr->initialmss =\r
- uip_connr->mss = tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;\r
-\r
- /* And we are done processing options. */\r
- break;\r
- } else {\r
- /* All other options have a length field, so that we easily\r
- can skip past them. */\r
- if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {\r
- /* If the length field is zero, the options are malformed\r
- and we don't process them further. */\r
- break;\r
- }\r
- c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];\r
- }\r
- }\r
- }\r
- uip_connr->tcpstateflags = ESTABLISHED;\r
- uip_connr->rcv_nxt[0] = BUF->seqno[0];\r
- uip_connr->rcv_nxt[1] = BUF->seqno[1];\r
- uip_connr->rcv_nxt[2] = BUF->seqno[2];\r
- uip_connr->rcv_nxt[3] = BUF->seqno[3];\r
- uip_add_rcv_nxt(1);\r
- uip_flags = UIP_CONNECTED | UIP_NEWDATA;\r
- uip_connr->len = 0;\r
- uip_len = 0;\r
- uip_slen = 0;\r
- UIP_APPCALL();\r
- goto appsend;\r
- }\r
- goto reset;\r
-#endif /* UIP_ACTIVE_OPEN */\r
-\r
- case ESTABLISHED:\r
- /* In the ESTABLISHED state, we call upon the application to feed\r
- data into the uip_buf. If the UIP_ACKDATA flag is set, the\r
- application should put new data into the buffer, otherwise we are\r
- retransmitting an old segment, and the application should put that\r
- data into the buffer.\r
-\r
- If the incoming packet is a FIN, we should close the connection on\r
- this side as well, and we send out a FIN and enter the LAST_ACK\r
- state. We require that there is no outstanding data; otherwise the\r
- sequence numbers will be screwed up. */\r
-\r
- if(BUF->flags & TCP_FIN) {\r
- if(uip_outstanding(uip_connr)) {\r
- goto drop;\r
- }\r
- uip_add_rcv_nxt(1 + uip_len);\r
- uip_flags = UIP_CLOSE;\r
- if(uip_len > 0) {\r
- uip_flags |= UIP_NEWDATA;\r
- }\r
- UIP_APPCALL();\r
- uip_connr->len = 1;\r
- uip_connr->tcpstateflags = LAST_ACK;\r
- uip_connr->nrtx = 0;\r
- tcp_send_finack:\r
- BUF->flags = TCP_FIN | TCP_ACK;\r
- goto tcp_send_nodata;\r
- }\r
-\r
- /* Check the URG flag. If this is set, the segment carries urgent\r
- data that we must pass to the application. */\r
- if(BUF->flags & TCP_URG) {\r
-#if UIP_URGDATA > 0\r
- uip_urglen = (BUF->urgp[0] << 8) | BUF->urgp[1];\r
- if(uip_urglen > uip_len) {\r
- /* There is more urgent data in the next segment to come. */\r
- uip_urglen = uip_len;\r
- }\r
- uip_add_rcv_nxt(uip_urglen);\r
- uip_len -= uip_urglen;\r
- uip_urgdata = uip_appdata;\r
- uip_appdata += uip_urglen;\r
- } else {\r
- uip_urglen = 0;\r
-#endif /* UIP_URGDATA > 0 */\r
- uip_appdata += (BUF->urgp[0] << 8) | BUF->urgp[1];\r
- uip_len -= (BUF->urgp[0] << 8) | BUF->urgp[1];\r
- }\r
-\r
-\r
- /* If uip_len > 0 we have TCP data in the packet, and we flag this\r
- by setting the UIP_NEWDATA flag and update the sequence number\r
- we acknowledge. If the application has stopped the dataflow\r
- using uip_stop(), we must not accept any data packets from the\r
- remote host. */\r
- if(uip_len > 0 && !(uip_connr->tcpstateflags & UIP_STOPPED)) {\r
- uip_flags |= UIP_NEWDATA;\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
-\r
- /* Check if the available buffer space advertised by the other end\r
- is smaller than the initial MSS for this connection. If so, we\r
- set the current MSS to the window size to ensure that the\r
- application does not send more data than the other end can\r
- handle.\r
-\r
- If the remote host advertises a zero window, we set the MSS to\r
- the initial MSS so that the application will send an entire MSS\r
- of data. This data will not be acknowledged by the receiver,\r
- and the application will retransmit it. This is called the\r
- "persistent timer" and uses the retransmission mechanim.\r
- */\r
- tmp16 = ((u16_t)BUF->wnd[0] << 8) + (u16_t)BUF->wnd[1];\r
- if(tmp16 > uip_connr->initialmss ||\r
- tmp16 == 0) {\r
- tmp16 = uip_connr->initialmss;\r
- }\r
- uip_connr->mss = tmp16;\r
-\r
- /* If this packet constitutes an ACK for outstanding data (flagged\r
- by the UIP_ACKDATA flag, we should call the application since it\r
- might want to send more data. If the incoming packet had data\r
- from the peer (as flagged by the UIP_NEWDATA flag), the\r
- application must also be notified.\r
-\r
- When the application is called, the global variable uip_len\r
- contains the length of the incoming data. The application can\r
- access the incoming data through the global pointer\r
- uip_appdata, which usually points 40 bytes into the uip_buf\r
- array.\r
-\r
- If the application wishes to send any data, this data should be\r
- put into the uip_appdata and the length of the data should be\r
- put into uip_len. If the application don't have any data to\r
- send, uip_len must be set to 0. */\r
- if(uip_flags & (UIP_NEWDATA | UIP_ACKDATA)) {\r
- uip_slen = 0;\r
- UIP_APPCALL();\r
-\r
- appsend:\r
-\r
- if(uip_flags & UIP_ABORT) {\r
- uip_slen = 0;\r
- uip_connr->tcpstateflags = CLOSED;\r
- BUF->flags = TCP_RST | TCP_ACK;\r
- goto tcp_send_nodata;\r
- }\r
-\r
- if(uip_flags & UIP_CLOSE) {\r
- uip_slen = 0;\r
- uip_connr->len = 1;\r
- uip_connr->tcpstateflags = FIN_WAIT_1;\r
- uip_connr->nrtx = 0;\r
- BUF->flags = TCP_FIN | TCP_ACK;\r
- goto tcp_send_nodata; \r
- }\r
-\r
- /* If uip_slen > 0, the application has data to be sent. */\r
- if(uip_slen > 0) {\r
-\r
- /* If the connection has acknowledged data, the contents of\r
- the ->len variable should be discarded. */\r
- if((uip_flags & UIP_ACKDATA) != 0) {\r
- uip_connr->len = 0;\r
- }\r
-\r
- /* If the ->len variable is non-zero the connection has\r
- already data in transit and cannot send anymore right\r
- now. */\r
- if(uip_connr->len == 0) {\r
-\r
- /* The application cannot send more than what is allowed by\r
- the mss (the minumum of the MSS and the available\r
- window). */\r
- if(uip_slen > uip_connr->mss) {\r
- uip_slen = uip_connr->mss;\r
- }\r
-\r
- /* Remember how much data we send out now so that we know\r
- when everything has been acknowledged. */\r
- uip_connr->len = uip_slen;\r
- } else {\r
-\r
- /* If the application already had unacknowledged data, we\r
- make sure that the application does not send (i.e.,\r
- retransmit) out more than it previously sent out. */\r
- uip_slen = uip_connr->len;\r
- }\r
- } else {\r
- uip_connr->len = 0;\r
- }\r
- uip_connr->nrtx = 0;\r
- apprexmit:\r
- uip_appdata = uip_sappdata;\r
-\r
- /* If the application has data to be sent, or if the incoming\r
- packet had new data in it, we must send out a packet. */\r
- if(uip_slen > 0 && uip_connr->len > 0) {\r
- /* Add the length of the IP and TCP headers. */\r
- uip_len = uip_connr->len + UIP_TCPIP_HLEN;\r
- /* We always set the ACK flag in response packets. */\r
- BUF->flags = TCP_ACK | TCP_PSH;\r
- /* Send the packet. */\r
- goto tcp_send_noopts;\r
- }\r
- /* If there is no data to send, just send out a pure ACK if\r
- there is newdata. */\r
- if(uip_flags & UIP_NEWDATA) {\r
- uip_len = UIP_TCPIP_HLEN;\r
- BUF->flags = TCP_ACK;\r
- goto tcp_send_noopts;\r
- }\r
- }\r
- goto drop;\r
- case LAST_ACK:\r
- /* We can close this connection if the peer has acknowledged our\r
- FIN. This is indicated by the UIP_ACKDATA flag. */\r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = CLOSED;\r
- uip_flags = UIP_CLOSE;\r
- UIP_APPCALL();\r
- }\r
- break;\r
-\r
- case FIN_WAIT_1:\r
- /* The application has closed the connection, but the remote host\r
- hasn't closed its end yet. Thus we do nothing but wait for a\r
- FIN from the other side. */\r
- if(uip_len > 0) {\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
- if(BUF->flags & TCP_FIN) {\r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = TIME_WAIT;\r
- uip_connr->timer = 0;\r
- uip_connr->len = 0;\r
- } else {\r
- uip_connr->tcpstateflags = CLOSING;\r
- }\r
- uip_add_rcv_nxt(1);\r
- uip_flags = UIP_CLOSE;\r
- UIP_APPCALL();\r
- goto tcp_send_ack;\r
- } else if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = FIN_WAIT_2;\r
- uip_connr->len = 0;\r
- goto drop;\r
- }\r
- if(uip_len > 0) {\r
- goto tcp_send_ack;\r
- }\r
- goto drop;\r
-\r
- case FIN_WAIT_2:\r
- if(uip_len > 0) {\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
- if(BUF->flags & TCP_FIN) {\r
- uip_connr->tcpstateflags = TIME_WAIT;\r
- uip_connr->timer = 0;\r
- uip_add_rcv_nxt(1);\r
- uip_flags = UIP_CLOSE;\r
- UIP_APPCALL();\r
- goto tcp_send_ack;\r
- }\r
- if(uip_len > 0) {\r
- goto tcp_send_ack;\r
- }\r
- goto drop;\r
-\r
- case TIME_WAIT:\r
- goto tcp_send_ack;\r
-\r
- case CLOSING:\r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = TIME_WAIT;\r
- uip_connr->timer = 0;\r
- }\r
- }\r
- goto drop;\r
-\r
-\r
- /* We jump here when we are ready to send the packet, and just want\r
- to set the appropriate TCP sequence numbers in the TCP header. */\r
- tcp_send_ack:\r
- BUF->flags = TCP_ACK;\r
- tcp_send_nodata:\r
- uip_len = 40;\r
- tcp_send_noopts:\r
- BUF->tcpoffset = 5 << 4;\r
- tcp_send:\r
- /* We're done with the input processing. We are now ready to send a\r
- reply. Our job is to fill in all the fields of the TCP and IP\r
- headers before calculating the checksum and finally send the\r
- packet. */\r
- BUF->ackno[0] = uip_connr->rcv_nxt[0];\r
- BUF->ackno[1] = uip_connr->rcv_nxt[1];\r
- BUF->ackno[2] = uip_connr->rcv_nxt[2];\r
- BUF->ackno[3] = uip_connr->rcv_nxt[3];\r
-\r
- BUF->seqno[0] = uip_connr->snd_nxt[0];\r
- BUF->seqno[1] = uip_connr->snd_nxt[1];\r
- BUF->seqno[2] = uip_connr->snd_nxt[2];\r
- BUF->seqno[3] = uip_connr->snd_nxt[3];\r
-\r
- BUF->proto = UIP_PROTO_TCP;\r
-\r
- BUF->srcport = uip_connr->lport;\r
- BUF->destport = uip_connr->rport;\r
-\r
- BUF->srcipaddr[0] = uip_hostaddr[0];\r
- BUF->srcipaddr[1] = uip_hostaddr[1];\r
- BUF->destipaddr[0] = uip_connr->ripaddr[0];\r
- BUF->destipaddr[1] = uip_connr->ripaddr[1];\r
-\r
-\r
- if(uip_connr->tcpstateflags & UIP_STOPPED) {\r
- /* If the connection has issued uip_stop(), we advertise a zero\r
- window so that the remote host will stop sending data. */\r
- BUF->wnd[0] = BUF->wnd[1] = 0;\r
- } else {\r
- BUF->wnd[0] = ((UIP_RECEIVE_WINDOW) >> 8);\r
- BUF->wnd[1] = ((UIP_RECEIVE_WINDOW) & 0xff);\r
- }\r
-\r
- tcp_send_noconn:\r
-\r
- BUF->len[0] = (uip_len >> 8);\r
- BUF->len[1] = (uip_len & 0xff);\r
-\r
- /* Calculate TCP checksum. */\r
- BUF->tcpchksum = 0;\r
- BUF->tcpchksum = ~(uip_tcpchksum());\r
-\r
-\r
-#if UIP_UDP\r
- ip_send_nolen:\r
-#endif\r
-\r
- BUF->vhl = 0x45;\r
- BUF->tos = 0;\r
- BUF->ipoffset[0] = BUF->ipoffset[1] = 0;\r
- BUF->ttl = UIP_TTL;\r
- ++ipid;\r
- BUF->ipid[0] = ipid >> 8;\r
- BUF->ipid[1] = ipid & 0xff;\r
-\r
- /* Calculate IP checksum. */\r
- BUF->ipchksum = 0;\r
- BUF->ipchksum = ~(uip_ipchksum());\r
-\r
- UIP_STAT(++uip_stat.tcp.sent);\r
- send:\r
- UIP_STAT(++uip_stat.ip.sent);\r
- /* Return and let the caller do the actual transmission. */\r
- return;\r
- drop:\r
- uip_len = 0;\r
- return;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-htons(u16_t val)\r
-{\r
- return HTONS(val);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Header file for the uIP TCP/IP stack.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * The uIP TCP/IP stack header file contains definitions for a number\r
- * of C macros that are used by uIP programs as well as internal uIP\r
- * structures, TCP/IP header structures and function declarations.\r
- *\r
- */\r
-\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip.h,v 1.36.2.7 2003/10/07 13:47:51 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIP_H__\r
-#define __UIP_H__\r
-\r
-#include "uipopt.h"\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* First, the functions that should be called from the\r
- * system. Initialization, the periodic timer and incoming packets are\r
- * handled by the following three functions.\r
- */\r
-\r
-/**\r
- * \defgroup uipconffunc uIP configuration functions\r
- * @{\r
- *\r
- * The uIP configuration functions are used for setting run-time\r
- * parameters in uIP such as IP addresses.\r
- */\r
-\r
-/**\r
- * Set the IP address of this host.\r
- *\r
- * The IP address is represented as a 4-byte array where the first\r
- * octet of the IP address is put in the first member of the 4-byte\r
- * array.\r
- *\r
- * \param addr A pointer to a 4-byte representation of the IP address.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_sethostaddr(addr) do { uip_hostaddr[0] = addr[0]; \\r
- uip_hostaddr[1] = addr[1]; } while(0)\r
-\r
-/**\r
- * Get the IP address of this host.\r
- *\r
- * The IP address is represented as a 4-byte array where the first\r
- * octet of the IP address is put in the first member of the 4-byte\r
- * array.\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the currently configured IP address.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_gethostaddr(addr) do { addr[0] = uip_hostaddr[0]; \\r
- addr[1] = uip_hostaddr[1]; } while(0)\r
-\r
-/** @} */\r
-\r
-/**\r
- * \defgroup uipinit uIP initialization functions\r
- * @{\r
- *\r
- * The uIP initialization functions are used for booting uIP.\r
- */\r
-\r
-/**\r
- * uIP initialization function.\r
- *\r
- * This function should be called at boot up to initilize the uIP\r
- * TCP/IP stack.\r
- */\r
-void uip_init(void);\r
-\r
-/** @} */\r
-\r
-/**\r
- * \defgroup uipdevfunc uIP device driver functions\r
- * @{\r
- *\r
- * These functions are used by a network device driver for interacting\r
- * with uIP.\r
- */\r
-\r
-/**\r
- * Process an incoming packet.\r
- *\r
- * This function should be called when the device driver has received\r
- * a packet from the network. The packet from the device driver must\r
- * be present in the uip_buf buffer, and the length of the packet\r
- * should be placed in the uip_len variable.\r
- *\r
- * When the function returns, there may be an outbound packet placed\r
- * in the uip_buf packet buffer. If so, the uip_len variable is set to\r
- * the length of the packet. If no packet is to be sent out, the\r
- * uip_len variable is set to 0.\r
- *\r
- * The usual way of calling the function is presented by the source\r
- * code below.\r
- \code\r
- uip_len = devicedriver_poll();\r
- if(uip_len > 0) {\r
- uip_input();\r
- if(uip_len > 0) {\r
- devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \note If you are writing a uIP device driver that needs ARP\r
- * (Address Resolution Protocol), e.g., when running uIP over\r
- * Ethernet, you will need to call the uIP ARP code before calling\r
- * this function:\r
- \code\r
- #define BUF ((struct uip_eth_hdr *)&uip_buf[0])\r
- uip_len = ethernet_devicedrver_poll();\r
- if(uip_len > 0) {\r
- if(BUF->type == HTONS(UIP_ETHTYPE_IP)) {\r
- uip_arp_ipin();\r
- uip_input();\r
- if(uip_len > 0) {\r
- uip_arp_out();\r
- ethernet_devicedriver_send();\r
- }\r
- } else if(BUF->type == HTONS(UIP_ETHTYPE_ARP)) {\r
- uip_arp_arpin();\r
- if(uip_len > 0) {\r
- ethernet_devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_input() uip_process(UIP_DATA)\r
-\r
-/**\r
- * Periodic processing for a connection identified by its number.\r
- *\r
- * This function does the necessary periodic processing (timers,\r
- * polling) for a uIP TCP conneciton, and should be called when the\r
- * periodic uIP timer goes off. It should be called for every\r
- * connection, regardless of whether they are open of closed.\r
- *\r
- * When the function returns, it may have an outbound packet waiting\r
- * for service in the uIP packet buffer, and if so the uip_len\r
- * variable is set to a value larger than zero. The device driver\r
- * should be called to send out the packet.\r
- *\r
- * The ususal way of calling the function is through a for() loop like\r
- * this:\r
- \code\r
- for(i = 0; i < UIP_CONNS; ++i) {\r
- uip_periodic(i);\r
- if(uip_len > 0) {\r
- devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \note If you are writing a uIP device driver that needs ARP\r
- * (Address Resolution Protocol), e.g., when running uIP over\r
- * Ethernet, you will need to call the uip_arp_out() function before\r
- * calling the device driver:\r
- \code\r
- for(i = 0; i < UIP_CONNS; ++i) {\r
- uip_periodic(i);\r
- if(uip_len > 0) {\r
- uip_arp_out();\r
- ethernet_devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \param conn The number of the connection which is to be periodically polled.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_periodic(conn) do { uip_conn = &uip_conns[conn]; \\r
- uip_process(UIP_TIMER); } while (0)\r
-\r
-/**\r
- * Periodic processing for a connection identified by a pointer to its structure.\r
- *\r
- * Same as uip_periodic() but takes a pointer to the actual uip_conn\r
- * struct instead of an integer as its argument. This function can be\r
- * used to force periodic processing of a specific connection.\r
- *\r
- * \param conn A pointer to the uip_conn struct for the connection to\r
- * be processed.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_periodic_conn(conn) do { uip_conn = conn; \\r
- uip_process(UIP_TIMER); } while (0)\r
-\r
-#if UIP_UDP\r
-/**\r
- * Periodic processing for a UDP connection identified by its number.\r
- *\r
- * This function is essentially the same as uip_prerioic(), but for\r
- * UDP connections. It is called in a similar fashion as the\r
- * uip_periodic() function:\r
- \code\r
- for(i = 0; i < UIP_UDP_CONNS; i++) {\r
- uip_udp_periodic(i);\r
- if(uip_len > 0) {\r
- devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \note As for the uip_periodic() function, special care has to be\r
- * taken when using uIP together with ARP and Ethernet:\r
- \code\r
- for(i = 0; i < UIP_UDP_CONNS; i++) {\r
- uip_udp_periodic(i);\r
- if(uip_len > 0) {\r
- uip_arp_out();\r
- ethernet_devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \param conn The number of the UDP connection to be processed.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_periodic(conn) do { uip_udp_conn = &uip_udp_conns[conn]; \\r
- uip_process(UIP_UDP_TIMER); } while (0)\r
-\r
-/**\r
- * Periodic processing for a UDP connection identified by a pointer to\r
- * its structure.\r
- *\r
- * Same as uip_udp_periodic() but takes a pointer to the actual\r
- * uip_conn struct instead of an integer as its argument. This\r
- * function can be used to force periodic processing of a specific\r
- * connection.\r
- *\r
- * \param conn A pointer to the uip_udp_conn struct for the connection\r
- * to be processed.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_periodic_conn(conn) do { uip_udp_conn = conn; \\r
- uip_process(UIP_UDP_TIMER); } while (0)\r
-\r
-\r
-#endif /* UIP_UDP */\r
-\r
-/**\r
- * The uIP packet buffer.\r
- *\r
- * The uip_buf array is used to hold incoming and outgoing\r
- * packets. The device driver should place incoming data into this\r
- * buffer. When sending data, the device driver should read the link\r
- * level headers and the TCP/IP headers from this buffer. The size of\r
- * the link level headers is configured by the UIP_LLH_LEN define.\r
- *\r
- * \note The application data need not be placed in this buffer, so\r
- * the device driver must read it from the place pointed to by the\r
- * uip_appdata pointer as illustrated by the following example:\r
- \code\r
- void\r
- devicedriver_send(void)\r
- {\r
- hwsend(&uip_buf[0], UIP_LLH_LEN);\r
- hwsend(&uip_buf[UIP_LLH_LEN], 40);\r
- hwsend(uip_appdata, uip_len - 40 - UIP_LLH_LEN);\r
- }\r
- \endcode\r
- */\r
-extern u8_t uip_buf[UIP_BUFSIZE+2]; /*_RB_ __attribute__ ((aligned (4)));*/\r
-\r
-/** @} */\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* Functions that are used by the uIP application program. Opening and\r
- * closing connections, sending and receiving data, etc. is all\r
- * handled by the functions below.\r
-*/\r
-/**\r
- * \defgroup uipappfunc uIP application functions\r
- * @{\r
- *\r
- * Functions used by an application running of top of uIP.\r
- */\r
-\r
-/**\r
- * Start listening to the specified port.\r
- *\r
- * \note Since this function expects the port number in network byte\r
- * order, a conversion using HTONS() or htons() is necessary.\r
- *\r
- \code\r
- uip_listen(HTONS(80));\r
- \endcode\r
- *\r
- * \param port A 16-bit port number in network byte order.\r
- */\r
-void uip_listen(u16_t port);\r
-\r
-/**\r
- * Stop listening to the specified port.\r
- *\r
- * \note Since this function expects the port number in network byte\r
- * order, a conversion using HTONS() or htons() is necessary.\r
- *\r
- \code\r
- uip_unlisten(HTONS(80));\r
- \endcode\r
- *\r
- * \param port A 16-bit port number in network byte order.\r
- */\r
-void uip_unlisten(u16_t port);\r
-\r
-/**\r
- * Connect to a remote host using TCP.\r
- *\r
- * This function is used to start a new connection to the specified\r
- * port on the specied host. It allocates a new connection identifier,\r
- * sets the connection to the SYN_SENT state and sets the\r
- * retransmission timer to 0. This will cause a TCP SYN segment to be\r
- * sent out the next time this connection is periodically processed,\r
- * which usually is done within 0.5 seconds after the call to\r
- * uip_connect().\r
- *\r
- * \note This function is avaliable only if support for active open\r
- * has been configured by defining UIP_ACTIVE_OPEN to 1 in uipopt.h.\r
- *\r
- * \note Since this function requires the port number to be in network\r
- * byte order, a convertion using HTONS() or htons() is necessary.\r
- *\r
- \code\r
- u16_t ipaddr[2];\r
-\r
- uip_ipaddr(ipaddr, 192,168,1,2);\r
- uip_connect(ipaddr, HTONS(80));\r
- \endcode\r
- *\r
- * \param ripaddr A pointer to a 4-byte array representing the IP\r
- * address of the remote hot.\r
- *\r
- * \param port A 16-bit port number in network byte order.\r
- *\r
- * \return A pointer to the uIP connection identifier for the new connection,\r
- * or NULL if no connection could be allocated.\r
- *\r
- */\r
-struct uip_conn *uip_connect(u16_t *ripaddr, u16_t port);\r
-\r
-\r
-\r
-/**\r
- * \internal\r
- *\r
- * Check if a connection has outstanding (i.e., unacknowledged) data.\r
- *\r
- * \param conn A pointer to the uip_conn structure for the connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_outstanding(conn) ((conn)->len)\r
-\r
-/**\r
- * Send data on the current connection.\r
- *\r
- * This function is used to send out a single segment of TCP\r
- * data. Only applications that have been invoked by uIP for event\r
- * processing can send data.\r
- *\r
- * The amount of data that actually is sent out after a call to this\r
- * funcion is determined by the maximum amount of data TCP allows. uIP\r
- * will automatically crop the data so that only the appropriate\r
- * amount of data is sent. The function uip_mss() can be used to query\r
- * uIP for the amount of data that actually will be sent.\r
- *\r
- * \note This function does not guarantee that the sent data will\r
- * arrive at the destination. If the data is lost in the network, the\r
- * application will be invoked with the uip_rexmit() event being\r
- * set. The application will then have to resend the data using this\r
- * function.\r
- *\r
- * \param data A pointer to the data which is to be sent.\r
- *\r
- * \param len The maximum amount of data bytes to be sent.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_send(data, len) do { uip_sappdata = (data); uip_slen = (len);} while(0)\r
-\r
-/**\r
- * The length of any incoming data that is currently avaliable (if avaliable)\r
- * in the uip_appdata buffer.\r
- *\r
- * The test function uip_data() must first be used to check if there\r
- * is any data available at all.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_datalen() uip_len\r
-\r
-/**\r
- * The length of any out-of-band data (urgent data) that has arrived\r
- * on the connection.\r
- *\r
- * \note The configuration parameter UIP_URGDATA must be set for this\r
- * function to be enabled.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_urgdatalen() uip_urglen\r
-\r
-/**\r
- * Close the current connection.\r
- *\r
- * This function will close the current connection in a nice way.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_close() (uip_flags = UIP_CLOSE)\r
-\r
-/**\r
- * Abort the current connection.\r
- *\r
- * This function will abort (reset) the current connection, and is\r
- * usually used when an error has occured that prevents using the\r
- * uip_close() function.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_abort() (uip_flags = UIP_ABORT)\r
-\r
-/**\r
- * Tell the sending host to stop sending data.\r
- *\r
- * This function will close our receiver's window so that we stop\r
- * receiving data for the current connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_stop() (uip_conn->tcpstateflags |= UIP_STOPPED)\r
-\r
-/**\r
- * Find out if the current connection has been previously stopped with\r
- * uip_stop().\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_stopped(conn) ((conn)->tcpstateflags & UIP_STOPPED)\r
-\r
-/**\r
- * Restart the current connection, if is has previously been stopped\r
- * with uip_stop().\r
- *\r
- * This function will open the receiver's window again so that we\r
- * start receiving data for the current connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_restart() do { uip_flags |= UIP_NEWDATA; \\r
- uip_conn->tcpstateflags &= ~UIP_STOPPED; \\r
- } while(0)\r
-\r
-\r
-/* uIP tests that can be made to determine in what state the current\r
- connection is, and what the application function should do. */\r
-\r
-/**\r
- * Is new incoming data available?\r
- *\r
- * Will reduce to non-zero if there is new data for the application\r
- * present at the uip_appdata pointer. The size of the data is\r
- * avaliable through the uip_len variable.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_newdata() (uip_flags & UIP_NEWDATA)\r
-\r
-/**\r
- * Has previously sent data been acknowledged?\r
- *\r
- * Will reduce to non-zero if the previously sent data has been\r
- * acknowledged by the remote host. This means that the application\r
- * can send new data.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_acked() (uip_flags & UIP_ACKDATA)\r
-\r
-/**\r
- * Has the connection just been connected?\r
- *\r
- * Reduces to non-zero if the current connection has been connected to\r
- * a remote host. This will happen both if the connection has been\r
- * actively opened (with uip_connect()) or passively opened (with\r
- * uip_listen()).\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_connected() (uip_flags & UIP_CONNECTED)\r
-\r
-/**\r
- * Has the connection been closed by the other end?\r
- *\r
- * Is non-zero if the connection has been closed by the remote\r
- * host. The application may then do the necessary clean-ups.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_closed() (uip_flags & UIP_CLOSE)\r
-\r
-/**\r
- * Has the connection been aborted by the other end?\r
- *\r
- * Non-zero if the current connection has been aborted (reset) by the\r
- * remote host.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_aborted() (uip_flags & UIP_ABORT)\r
-\r
-/**\r
- * Has the connection timed out?\r
- *\r
- * Non-zero if the current connection has been aborted due to too many\r
- * retransmissions.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_timedout() (uip_flags & UIP_TIMEDOUT)\r
-\r
-/**\r
- * Do we need to retransmit previously data?\r
- *\r
- * Reduces to non-zero if the previously sent data has been lost in\r
- * the network, and the application should retransmit it. The\r
- * application should send the exact same data as it did the last\r
- * time, using the uip_send() function.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_rexmit() (uip_flags & UIP_REXMIT)\r
-\r
-/**\r
- * Is the connection being polled by uIP?\r
- *\r
- * Is non-zero if the reason the application is invoked is that the\r
- * current connection has been idle for a while and should be\r
- * polled.\r
- *\r
- * The polling event can be used for sending data without having to\r
- * wait for the remote host to send data.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_poll() (uip_flags & UIP_POLL)\r
-\r
-/**\r
- * Get the initial maxium segment size (MSS) of the current\r
- * connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_initialmss() (uip_conn->initialmss)\r
-\r
-/**\r
- * Get the current maxium segment size that can be sent on the current\r
- * connection.\r
- *\r
- * The current maxiumum segment size that can be sent on the\r
- * connection is computed from the receiver's window and the MSS of\r
- * the connection (which also is available by calling\r
- * uip_initialmss()).\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_mss() (uip_conn->mss)\r
-\r
-/**\r
- * Set up a new UDP connection.\r
- *\r
- * \param ripaddr A pointer to a 4-byte structure representing the IP\r
- * address of the remote host.\r
- *\r
- * \param rport The remote port number in network byte order.\r
- *\r
- * \return The uip_udp_conn structure for the new connection or NULL\r
- * if no connection could be allocated.\r
- */\r
-struct uip_udp_conn *uip_udp_new(u16_t *ripaddr, u16_t rport);\r
-\r
-/**\r
- * Removed a UDP connection.\r
- *\r
- * \param conn A pointer to the uip_udp_conn structure for the connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_remove(conn) (conn)->lport = 0\r
-\r
-/**\r
- * Send a UDP datagram of length len on the current connection.\r
- *\r
- * This function can only be called in response to a UDP event (poll\r
- * or newdata). The data must be present in the uip_buf buffer, at the\r
- * place pointed to by the uip_appdata pointer.\r
- *\r
- * \param len The length of the data in the uip_buf buffer.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_send(len) uip_slen = (len)\r
-\r
-/** @} */\r
-\r
-/* uIP convenience and converting functions. */\r
-\r
-/**\r
- * \defgroup uipconvfunc uIP conversion functions\r
- * @{\r
- *\r
- * These functions can be used for converting between different data\r
- * formats used by uIP.\r
- */\r
-\r
-/**\r
- * Pack an IP address into a 4-byte array which is used by uIP to\r
- * represent IP addresses.\r
- *\r
- * Example:\r
- \code\r
- u16_t ipaddr[2];\r
-\r
- uip_ipaddr(&ipaddr, 192,168,1,2);\r
- \endcode\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the IP addres.\r
- * \param addr0 The first octet of the IP address.\r
- * \param addr1 The second octet of the IP address.\r
- * \param addr2 The third octet of the IP address.\r
- * \param addr3 The forth octet of the IP address.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_ipaddr(addr, addr0,addr1,addr2,addr3) do { \\r
- (addr)[0] = HTONS(((addr0) << 8) | (addr1)); \\r
- (addr)[1] = HTONS(((addr2) << 8) | (addr3)); \\r
- } while(0)\r
-\r
-/**\r
- * Convert 16-bit quantity from host byte order to network byte order.\r
- *\r
- * This macro is primarily used for converting constants from host\r
- * byte order to network byte order. For converting variables to\r
- * network byte order, use the htons() function instead.\r
- *\r
- * \hideinitializer\r
- */\r
-#ifndef HTONS\r
-# if BYTE_ORDER == BIG_ENDIAN\r
-# define HTONS(n) (n)\r
-# else /* BYTE_ORDER == BIG_ENDIAN */\r
-# define HTONS(n) ((((u16_t)((n) & 0xff)) << 8) | (((n) & 0xff00) >> 8))\r
-# endif /* BYTE_ORDER == BIG_ENDIAN */\r
-#endif /* HTONS */\r
-\r
-/**\r
- * Convert 16-bit quantity from host byte order to network byte order.\r
- *\r
- * This function is primarily used for converting variables from host\r
- * byte order to network byte order. For converting constants to\r
- * network byte order, use the HTONS() macro instead.\r
- */\r
-#ifndef htons\r
-u16_t htons(u16_t val);\r
-#endif /* htons */\r
-\r
-/** @} */\r
-\r
-/**\r
- * Pointer to the application data in the packet buffer.\r
- *\r
- * This pointer points to the application data when the application is\r
- * called. If the application wishes to send data, the application may\r
- * use this space to write the data into before calling uip_send().\r
- */\r
-extern volatile u8_t *uip_appdata;\r
-extern volatile u8_t *uip_sappdata;\r
-\r
-#if UIP_URGDATA > 0\r
-/* u8_t *uip_urgdata:\r
- *\r
- * This pointer points to any urgent data that has been received. Only\r
- * present if compiled with support for urgent data (UIP_URGDATA).\r
- */\r
-extern volatile u8_t *uip_urgdata;\r
-#endif /* UIP_URGDATA > 0 */\r
-\r
-\r
-/* u[8|16]_t uip_len:\r
- *\r
- * When the application is called, uip_len contains the length of any\r
- * new data that has been received from the remote host. The\r
- * application should set this variable to the size of any data that\r
- * the application wishes to send. When the network device driver\r
- * output function is called, uip_len should contain the length of the\r
- * outgoing packet.\r
- */\r
-extern volatile u16_t uip_len, uip_slen;\r
-\r
-#if UIP_URGDATA > 0\r
-extern volatile u8_t uip_urglen, uip_surglen;\r
-#endif /* UIP_URGDATA > 0 */\r
-\r
-\r
-/**\r
- * Representation of a uIP TCP connection.\r
- *\r
- * The uip_conn structure is used for identifying a connection. All\r
- * but one field in the structure are to be considered read-only by an\r
- * application. The only exception is the appstate field whos purpose\r
- * is to let the application store application-specific state (e.g.,\r
- * file pointers) for the connection. The size of this field is\r
- * configured in the "uipopt.h" header file.\r
- */\r
-struct uip_conn {\r
- u16_t ripaddr[2]; /**< The IP address of the remote host. */\r
-\r
- u16_t lport; /**< The local TCP port, in network byte order. */\r
- u16_t rport; /**< The local remote TCP port, in network byte\r
- order. */\r
-\r
- u8_t rcv_nxt[4]; /**< The sequence number that we expect to\r
- receive next. */\r
- u8_t snd_nxt[4]; /**< The sequence number that was last sent by\r
- us. */\r
- u16_t len; /**< Length of the data that was previously sent. */\r
- u16_t mss; /**< Current maximum segment size for the\r
- connection. */\r
- u16_t initialmss; /**< Initial maximum segment size for the\r
- connection. */\r
- u8_t sa; /**< Retransmission time-out calculation state\r
- variable. */\r
- u8_t sv; /**< Retransmission time-out calculation state\r
- variable. */\r
- u8_t rto; /**< Retransmission time-out. */\r
- u8_t tcpstateflags; /**< TCP state and flags. */\r
- u8_t timer; /**< The retransmission timer. */\r
- u8_t nrtx; /**< The number of retransmissions for the last\r
- segment sent. */\r
-\r
- /** The application state. */\r
- u8_t appstate[UIP_APPSTATE_SIZE];\r
-};\r
-\r
-\r
-/* Pointer to the current connection. */\r
-extern struct uip_conn *uip_conn;\r
-/* The array containing all uIP connections. */\r
-extern struct uip_conn uip_conns[UIP_CONNS];\r
-/**\r
- * \addtogroup uiparch\r
- * @{\r
- */\r
-\r
-/**\r
- * 4-byte array used for the 32-bit sequence number calculations.\r
- */\r
-extern volatile u8_t uip_acc32[4];\r
-\r
-/** @} */\r
-\r
-\r
-#if UIP_UDP\r
-/**\r
- * Representation of a uIP UDP connection.\r
- */\r
-struct uip_udp_conn {\r
- u16_t ripaddr[2]; /**< The IP address of the remote peer. */\r
- u16_t lport; /**< The local port number in network byte order. */\r
- u16_t rport; /**< The remote port number in network byte order. */\r
-};\r
-\r
-extern struct uip_udp_conn *uip_udp_conn;\r
-extern struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];\r
-#endif /* UIP_UDP */\r
-\r
-/**\r
- * The structure holding the TCP/IP statistics that are gathered if\r
- * UIP_STATISTICS is set to 1.\r
- *\r
- */\r
-struct uip_stats {\r
- struct {\r
- uip_stats_t drop; /**< Number of dropped packets at the IP\r
- layer. */\r
- uip_stats_t recv; /**< Number of received packets at the IP\r
- layer. */\r
- uip_stats_t sent; /**< Number of sent packets at the IP\r
- layer. */\r
- uip_stats_t vhlerr; /**< Number of packets dropped due to wrong\r
- IP version or header length. */\r
- uip_stats_t hblenerr; /**< Number of packets dropped due to wrong\r
- IP length, high byte. */\r
- uip_stats_t lblenerr; /**< Number of packets dropped due to wrong\r
- IP length, low byte. */\r
- uip_stats_t fragerr; /**< Number of packets dropped since they\r
- were IP fragments. */\r
- uip_stats_t chkerr; /**< Number of packets dropped due to IP\r
- checksum errors. */\r
- uip_stats_t protoerr; /**< Number of packets dropped since they\r
- were neither ICMP, UDP nor TCP. */\r
- } ip; /**< IP statistics. */\r
- struct {\r
- uip_stats_t drop; /**< Number of dropped ICMP packets. */\r
- uip_stats_t recv; /**< Number of received ICMP packets. */\r
- uip_stats_t sent; /**< Number of sent ICMP packets. */\r
- uip_stats_t typeerr; /**< Number of ICMP packets with a wrong\r
- type. */\r
- } icmp; /**< ICMP statistics. */\r
- struct {\r
- uip_stats_t drop; /**< Number of dropped TCP segments. */\r
- uip_stats_t recv; /**< Number of recived TCP segments. */\r
- uip_stats_t sent; /**< Number of sent TCP segments. */\r
- uip_stats_t chkerr; /**< Number of TCP segments with a bad\r
- checksum. */\r
- uip_stats_t ackerr; /**< Number of TCP segments with a bad ACK\r
- number. */\r
- uip_stats_t rst; /**< Number of recevied TCP RST (reset) segments. */\r
- uip_stats_t rexmit; /**< Number of retransmitted TCP segments. */\r
- uip_stats_t syndrop; /**< Number of dropped SYNs due to too few\r
- connections was avaliable. */\r
- uip_stats_t synrst; /**< Number of SYNs for closed ports,\r
- triggering a RST. */\r
- } tcp; /**< TCP statistics. */\r
-};\r
-\r
-/**\r
- * The uIP TCP/IP statistics.\r
- *\r
- * This is the variable in which the uIP TCP/IP statistics are gathered.\r
- */\r
-extern struct uip_stats uip_stat;\r
-\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* All the stuff below this point is internal to uIP and should not be\r
- * used directly by an application or by a device driver.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-/* u8_t uip_flags:\r
- *\r
- * When the application is called, uip_flags will contain the flags\r
- * that are defined in this file. Please read below for more\r
- * infomation.\r
- */\r
-extern volatile u8_t uip_flags;\r
-\r
-/* The following flags may be set in the global variable uip_flags\r
- before calling the application callback. The UIP_ACKDATA and\r
- UIP_NEWDATA flags may both be set at the same time, whereas the\r
- others are mutualy exclusive. Note that these flags should *NOT* be\r
- accessed directly, but through the uIP functions/macros. */\r
-\r
-#define UIP_ACKDATA 1 /* Signifies that the outstanding data was\r
- acked and the application should send\r
- out new data instead of retransmitting\r
- the last data. */\r
-#define UIP_NEWDATA 2 /* Flags the fact that the peer has sent\r
- us new data. */\r
-#define UIP_REXMIT 4 /* Tells the application to retransmit the\r
- data that was last sent. */\r
-#define UIP_POLL 8 /* Used for polling the application, to\r
- check if the application has data that\r
- it wants to send. */\r
-#define UIP_CLOSE 16 /* The remote host has closed the\r
- connection, thus the connection has\r
- gone away. Or the application signals\r
- that it wants to close the\r
- connection. */\r
-#define UIP_ABORT 32 /* The remote host has aborted the\r
- connection, thus the connection has\r
- gone away. Or the application signals\r
- that it wants to abort the\r
- connection. */\r
-#define UIP_CONNECTED 64 /* We have got a connection from a remote\r
- host and have set up a new connection\r
- for it, or an active connection has\r
- been successfully established. */\r
-\r
-#define UIP_TIMEDOUT 128 /* The connection has been aborted due to\r
- too many retransmissions. */\r
-\r
-\r
-/* uip_process(flag):\r
- *\r
- * The actual uIP function which does all the work.\r
- */\r
-void uip_process(u8_t flag);\r
-\r
-/* The following flags are passed as an argument to the uip_process()\r
- function. They are used to distinguish between the two cases where\r
- uip_process() is called. It can be called either because we have\r
- incoming data that should be processed, or because the periodic\r
- timer has fired. */\r
-\r
-#define UIP_DATA 1 /* Tells uIP that there is incoming data in\r
- the uip_buf buffer. The length of the\r
- data is stored in the global variable\r
- uip_len. */\r
-#define UIP_TIMER 2 /* Tells uIP that the periodic timer has\r
- fired. */\r
-#if UIP_UDP\r
-#define UIP_UDP_TIMER 3\r
-#endif /* UIP_UDP */\r
-\r
-/* The TCP states used in the uip_conn->tcpstateflags. */\r
-#define CLOSED 0\r
-#define SYN_RCVD 1\r
-#define SYN_SENT 2\r
-#define ESTABLISHED 3\r
-#define FIN_WAIT_1 4\r
-#define FIN_WAIT_2 5\r
-#define CLOSING 6\r
-#define TIME_WAIT 7\r
-#define LAST_ACK 8\r
-#define TS_MASK 15\r
-\r
-#define UIP_STOPPED 16\r
-\r
-#define UIP_TCPIP_HLEN 40\r
-\r
-/* The TCP and IP headers. */\r
-typedef struct {\r
- /* IP header. */\r
- u8_t vhl,\r
- tos,\r
- len[2],\r
- ipid[2],\r
- ipoffset[2],\r
- ttl,\r
- proto;\r
- u16_t ipchksum;\r
- u16_t srcipaddr[2],\r
- destipaddr[2];\r
-\r
- /* TCP header. */\r
- u16_t srcport,\r
- destport;\r
- u8_t seqno[4],\r
- ackno[4],\r
- tcpoffset,\r
- flags,\r
- wnd[2];\r
- u16_t tcpchksum;\r
- u8_t urgp[2];\r
- u8_t optdata[4];\r
-} uip_tcpip_hdr;\r
-\r
-/* The ICMP and IP headers. */\r
-typedef struct {\r
- /* IP header. */\r
- u8_t vhl,\r
- tos,\r
- len[2],\r
- ipid[2],\r
- ipoffset[2],\r
- ttl,\r
- proto;\r
- u16_t ipchksum;\r
- u16_t srcipaddr[2],\r
- destipaddr[2];\r
- /* ICMP (echo) header. */\r
- u8_t type, icode;\r
- u16_t icmpchksum;\r
- u16_t id, seqno;\r
-} uip_icmpip_hdr;\r
-\r
-\r
-/* The UDP and IP headers. */\r
-typedef struct {\r
- /* IP header. */\r
- u8_t vhl,\r
- tos,\r
- len[2],\r
- ipid[2],\r
- ipoffset[2],\r
- ttl,\r
- proto;\r
- u16_t ipchksum;\r
- u16_t srcipaddr[2],\r
- destipaddr[2];\r
-\r
- /* UDP header. */\r
- u16_t srcport,\r
- destport;\r
- u16_t udplen;\r
- u16_t udpchksum;\r
-} uip_udpip_hdr;\r
-\r
-#define UIP_PROTO_ICMP 1\r
-#define UIP_PROTO_TCP 6\r
-#define UIP_PROTO_UDP 17\r
-\r
-#if UIP_FIXEDADDR\r
-extern const u16_t uip_hostaddr[2];\r
-#else /* UIP_FIXEDADDR */\r
-extern u16_t uip_hostaddr[2];\r
-#endif /* UIP_FIXEDADDR */\r
-\r
-#endif /* __UIP_H__ */\r
-\r
-\r
-/** @} */\r
-\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arch.c,v 1.2.2.1 2003/10/04 22:54:17 adam Exp $\r
- *\r
- */\r
-\r
-\r
-#include "uip.h"\r
-#include "uip_arch.h"\r
-\r
-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-#define IP_PROTO_TCP 6\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_add32(u8_t *op32, u16_t op16)\r
-{\r
-\r
- uip_acc32[3] = op32[3] + (op16 & 0xff);\r
- uip_acc32[2] = op32[2] + (op16 >> 8);\r
- uip_acc32[1] = op32[1];\r
- uip_acc32[0] = op32[0];\r
-\r
- if(uip_acc32[2] < (op16 >> 8)) {\r
- ++uip_acc32[1];\r
- if(uip_acc32[1] == 0) {\r
- ++uip_acc32[0];\r
- }\r
- }\r
-\r
-\r
- if(uip_acc32[3] < (op16 & 0xff)) {\r
- ++uip_acc32[2];\r
- if(uip_acc32[2] == 0) {\r
- ++uip_acc32[1];\r
- if(uip_acc32[1] == 0) {\r
- ++uip_acc32[0];\r
- }\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-uip_chksum(u16_t *sdata, u16_t len)\r
-{\r
- u16_t acc;\r
-\r
- for (acc = 0; len > 1; len -= 2) {\r
- u16_t u = ((unsigned char *)sdata)[0] + (((unsigned char *)sdata)[1] << 8);\r
- if ((acc += u) < u) {\r
- /* Overflow, so we add the carry to acc (i.e., increase by\r
- one). */\r
- ++acc;\r
- }\r
- ++sdata;\r
- }\r
-\r
- /* add up any odd byte */\r
- if(len == 1) {\r
- acc += htons(((u16_t)(*(u8_t *)sdata)) << 8);\r
- if(acc < htons(((u16_t)(*(u8_t *)sdata)) << 8)) {\r
- ++acc;\r
- }\r
- }\r
-\r
- return acc;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-uip_ipchksum(void)\r
-{\r
- return uip_chksum((u16_t *)&uip_buf[UIP_LLH_LEN], 20);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-uip_tcpchksum(void)\r
-{\r
- u16_t hsum, sum;\r
-\r
-\r
- /* Compute the checksum of the TCP header. */\r
- hsum = uip_chksum((u16_t *)&uip_buf[20 + UIP_LLH_LEN], 20);\r
-\r
- /* Compute the checksum of the data in the TCP packet and add it to\r
- the TCP header checksum. */\r
- sum = uip_chksum((u16_t *)uip_appdata,\r
- (u16_t)(((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 40)));\r
-\r
- if((sum += hsum) < hsum) {\r
- ++sum;\r
- }\r
-\r
- if((sum += BUF->srcipaddr[0]) < BUF->srcipaddr[0]) {\r
- ++sum;\r
- }\r
- if((sum += BUF->srcipaddr[1]) < BUF->srcipaddr[1]) {\r
- ++sum;\r
- }\r
- if((sum += BUF->destipaddr[0]) < BUF->destipaddr[0]) {\r
- ++sum;\r
- }\r
- if((sum += BUF->destipaddr[1]) < BUF->destipaddr[1]) {\r
- ++sum;\r
- }\r
- if((sum += (u16_t)htons((u16_t)IP_PROTO_TCP)) < (u16_t)htons((u16_t)IP_PROTO_TCP)) {\r
- ++sum;\r
- }\r
-\r
- hsum = (u16_t)htons((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 20);\r
-\r
- if((sum += hsum) < hsum) {\r
- ++sum;\r
- }\r
-\r
- return sum;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \defgroup uiparch Architecture specific uIP functions\r
- * @{\r
- *\r
- * The functions in the architecture specific module implement the IP\r
- * check sum and 32-bit additions.\r
- *\r
- * The IP checksum calculation is the most computationally expensive\r
- * operation in the TCP/IP stack and it therefore pays off to\r
- * implement this in efficient assembler. The purpose of the uip-arch\r
- * module is to let the checksum functions to be implemented in\r
- * architecture specific assembler.\r
- *\r
- */\r
-\r
-/**\r
- * \file\r
- * Declarations of architecture specific functions.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arch.h,v 1.1.2.2 2003/10/06 15:10:22 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIP_ARCH_H__\r
-#define __UIP_ARCH_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * Carry out a 32-bit addition.\r
- *\r
- * Because not all architectures for which uIP is intended has native\r
- * 32-bit arithmetic, uIP uses an external C function for doing the\r
- * required 32-bit additions in the TCP protocol processing. This\r
- * function should add the two arguments and place the result in the\r
- * global variable uip_acc32.\r
- *\r
- * \note The 32-bit integer pointed to by the op32 parameter and the\r
- * result in the uip_acc32 variable are in network byte order (big\r
- * endian).\r
- *\r
- * \param op32 A pointer to a 4-byte array representing a 32-bit\r
- * integer in network byte order (big endian).\r
- *\r
- * \param op16 A 16-bit integer in host byte order.\r
- */\r
-void uip_add32(u8_t *op32, u16_t op16);\r
-\r
-/**\r
- * Calculate the Internet checksum over a buffer.\r
- *\r
- * The Internet checksum is the one's complement of the one's\r
- * complement sum of all 16-bit words in the buffer.\r
- *\r
- * See RFC1071.\r
- *\r
- * \note This function is not called in the current version of uIP,\r
- * but future versions might make use of it.\r
- *\r
- * \param buf A pointer to the buffer over which the checksum is to be\r
- * computed.\r
- *\r
- * \param len The length of the buffer over which the checksum is to\r
- * be computed.\r
- *\r
- * \return The Internet checksum of the buffer.\r
- */\r
-u16_t uip_chksum(u16_t *buf, u16_t len);\r
-\r
-/**\r
- * Calculate the IP header checksum of the packet header in uip_buf.\r
- *\r
- * The IP header checksum is the Internet checksum of the 20 bytes of\r
- * the IP header.\r
- *\r
- * \return The IP header checksum of the IP header in the uip_buf\r
- * buffer.\r
- */\r
-u16_t uip_ipchksum(void);\r
-\r
-/**\r
- * Calculate the TCP checksum of the packet in uip_buf and uip_appdata.\r
- *\r
- * The TCP checksum is the Internet checksum of data contents of the\r
- * TCP segment, and a pseudo-header as defined in RFC793.\r
- *\r
- * \note The uip_appdata pointer that points to the packet data may\r
- * point anywhere in memory, so it is not possible to simply calculate\r
- * the Internet checksum of the contents of the uip_buf buffer.\r
- *\r
- * \return The TCP checksum of the TCP segment in uip_buf and pointed\r
- * to by uip_appdata.\r
- */\r
-u16_t uip_tcpchksum(void);\r
-\r
-/** @} */\r
-\r
-#endif /* __UIP_ARCH_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup uiparp uIP Address Resolution Protocol\r
- * @{\r
- *\r
- * The Address Resolution Protocol ARP is used for mapping between IP\r
- * addresses and link level addresses such as the Ethernet MAC\r
- * addresses. ARP uses broadcast queries to ask for the link level\r
- * address of a known IP address and the host which is configured with\r
- * the IP address for which the query was meant, will respond with its\r
- * link level address.\r
- *\r
- * \note This ARP implementation only supports Ethernet.\r
- */\r
-\r
-/**\r
- * \file\r
- * Implementation of the ARP Address Resolution Protocol.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arp.c,v 1.7.2.3 2003/10/06 22:42:30 adam Exp $\r
- *\r
- */\r
-\r
-\r
-#include "uip_arp.h"\r
-\r
-#include <string.h>\r
-\r
-struct arp_hdr {\r
- struct uip_eth_hdr ethhdr;\r
- u16_t hwtype;\r
- u16_t protocol;\r
- u8_t hwlen;\r
- u8_t protolen;\r
- u16_t opcode;\r
- struct uip_eth_addr shwaddr;\r
- u16_t sipaddr[2];\r
- struct uip_eth_addr dhwaddr;\r
- u16_t dipaddr[2];\r
-};\r
-\r
-struct ethip_hdr {\r
- struct uip_eth_hdr ethhdr;\r
- /* IP header. */\r
- u8_t vhl,\r
- tos,\r
- len[2],\r
- ipid[2],\r
- ipoffset[2],\r
- ttl,\r
- proto;\r
- u16_t ipchksum;\r
- u16_t srcipaddr[2],\r
- destipaddr[2];\r
-};\r
-\r
-#define ARP_REQUEST 1\r
-#define ARP_REPLY 2\r
-\r
-#define ARP_HWTYPE_ETH 1\r
-\r
-struct arp_entry {\r
- u16_t ipaddr[2];\r
- struct uip_eth_addr ethaddr;\r
- u8_t time;\r
-};\r
-\r
-struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,\r
- UIP_ETHADDR1,\r
- UIP_ETHADDR2,\r
- UIP_ETHADDR3,\r
- UIP_ETHADDR4,\r
- UIP_ETHADDR5}};\r
-\r
-static struct arp_entry arp_table[UIP_ARPTAB_SIZE];\r
-static u16_t ipaddr[2];\r
-static u8_t i, c;\r
-\r
-static u8_t arptime;\r
-static u8_t tmpage;\r
-\r
-#define BUF ((struct arp_hdr *)&uip_buf[0])\r
-#define IPBUF ((struct ethip_hdr *)&uip_buf[0])\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the ARP module.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_init(void)\r
-{\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- memset(arp_table[i].ipaddr, 0, 4);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Periodic ARP processing function.\r
- *\r
- * This function performs periodic timer processing in the ARP module\r
- * and should be called at regular intervals. The recommended interval\r
- * is 10 seconds between the calls.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_timer(void)\r
-{\r
- struct arp_entry *tabptr;\r
-\r
- ++arptime;\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if((tabptr->ipaddr[0] | tabptr->ipaddr[1]) != 0 &&\r
- arptime - tabptr->time >= UIP_ARP_MAXAGE) {\r
- memset(tabptr->ipaddr, 0, 4);\r
- }\r
- }\r
-\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)\r
-{\r
- register struct arp_entry *tabptr;\r
- /* Walk through the ARP mapping table and try to find an entry to\r
- update. If none is found, the IP -> MAC address mapping is\r
- inserted in the ARP table. */\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
-\r
- tabptr = &arp_table[i];\r
- /* Only check those entries that are actually in use. */\r
- if(tabptr->ipaddr[0] != 0 &&\r
- tabptr->ipaddr[1] != 0) {\r
-\r
- /* Check if the source IP address of the incoming packet matches\r
- the IP address in this ARP table entry. */\r
- if(ipaddr[0] == tabptr->ipaddr[0] &&\r
- ipaddr[1] == tabptr->ipaddr[1]) {\r
- \r
- /* An old entry found, update this and return. */\r
- memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);\r
- tabptr->time = arptime;\r
-\r
- return;\r
- }\r
- }\r
- }\r
-\r
- /* If we get here, no existing ARP table entry was found, so we\r
- create one. */\r
-\r
- /* First, we try to find an unused entry in the ARP table. */\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if(tabptr->ipaddr[0] == 0 &&\r
- tabptr->ipaddr[1] == 0) {\r
- break;\r
- }\r
- }\r
-\r
- /* If no unused entry is found, we try to find the oldest entry and\r
- throw it away. */\r
- if(i == UIP_ARPTAB_SIZE) {\r
- tmpage = 0;\r
- c = 0;\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if(arptime - tabptr->time > tmpage) {\r
- tmpage = arptime - tabptr->time;\r
- c = i;\r
- }\r
- }\r
- i = c;\r
- }\r
-\r
- /* Now, i is the ARP table entry which we will fill with the new\r
- information. */\r
- memcpy(tabptr->ipaddr, ipaddr, 4);\r
- memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);\r
- tabptr->time = arptime;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * ARP processing for incoming IP packets\r
- *\r
- * This function should be called by the device driver when an IP\r
- * packet has been received. The function will check if the address is\r
- * in the ARP cache, and if so the ARP cache entry will be\r
- * refreshed. If no ARP cache entry was found, a new one is created.\r
- *\r
- * This function expects an IP packet with a prepended Ethernet header\r
- * in the uip_buf[] buffer, and the length of the packet in the global\r
- * variable uip_len.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_ipin(void)\r
-{\r
- uip_len -= sizeof(struct uip_eth_hdr);\r
- \r
- /* Only insert/update an entry if the source IP address of the\r
- incoming IP packet comes from a host on the local network. */\r
- if((IPBUF->srcipaddr[0] & uip_arp_netmask[0]) !=\r
- (uip_hostaddr[0] & uip_arp_netmask[0])) {\r
- return;\r
- }\r
- if((IPBUF->srcipaddr[1] & uip_arp_netmask[1]) !=\r
- (uip_hostaddr[1] & uip_arp_netmask[1])) {\r
- return;\r
- }\r
- uip_arp_update(IPBUF->srcipaddr, &(IPBUF->ethhdr.src));\r
-\r
- return;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * ARP processing for incoming ARP packets.\r
- *\r
- * This function should be called by the device driver when an ARP\r
- * packet has been received. The function will act differently\r
- * depending on the ARP packet type: if it is a reply for a request\r
- * that we previously sent out, the ARP cache will be filled in with\r
- * the values from the ARP reply. If the incoming ARP packet is an ARP\r
- * request for our IP address, an ARP reply packet is created and put\r
- * into the uip_buf[] buffer.\r
- *\r
- * When the function returns, the value of the global variable uip_len\r
- * indicates whether the device driver should send out a packet or\r
- * not. If uip_len is zero, no packet should be sent. If uip_len is\r
- * non-zero, it contains the length of the outbound packet that is\r
- * present in the uip_buf[] buffer.\r
- *\r
- * This function expects an ARP packet with a prepended Ethernet\r
- * header in the uip_buf[] buffer, and the length of the packet in the\r
- * global variable uip_len.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-typedef struct arp_hdr aht;\r
-\r
-void\r
-uip_arp_arpin(void)\r
-{\r
- int ul;\r
-\r
- if(uip_len < sizeof(struct arp_hdr)) {\r
- uip_len = 0;\r
- return;\r
- }\r
-\r
- uip_len = 0;\r
-\r
- switch(BUF->opcode) {\r
- case HTONS(ARP_REQUEST):\r
- /* ARP request. If it asked for our address, we send out a\r
- reply. */\r
- if(BUF->dipaddr[0] == uip_hostaddr[0] &&\r
- BUF->dipaddr[1] == uip_hostaddr[1]) {\r
- /* The reply opcode is 2. */\r
- BUF->opcode = HTONS(2);\r
-\r
- memcpy(BUF->dhwaddr.addr, BUF->shwaddr.addr, 6);\r
- memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);\r
- memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);\r
- memcpy(BUF->ethhdr.dest.addr, BUF->dhwaddr.addr, 6);\r
-\r
- BUF->dipaddr[0] = BUF->sipaddr[0];\r
- BUF->dipaddr[1] = BUF->sipaddr[1];\r
- BUF->sipaddr[0] = uip_hostaddr[0];\r
- BUF->sipaddr[1] = uip_hostaddr[1];\r
-\r
- ul = BUF->hwlen;\r
- BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);\r
- uip_len = sizeof(struct arp_hdr);\r
- }\r
- break;\r
- case HTONS(ARP_REPLY):\r
- /* ARP reply. We insert or update the ARP table if it was meant\r
- for us. */\r
- if(BUF->dipaddr[0] == uip_hostaddr[0] &&\r
- BUF->dipaddr[1] == uip_hostaddr[1]) {\r
-\r
- uip_arp_update(BUF->sipaddr, &BUF->shwaddr);\r
- }\r
- break;\r
- }\r
-\r
- ( void ) ul;\r
-\r
- return;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Prepend Ethernet header to an outbound IP packet and see if we need\r
- * to send out an ARP request.\r
- *\r
- * This function should be called before sending out an IP packet. The\r
- * function checks the destination IP address of the IP packet to see\r
- * what Ethernet MAC address that should be used as a destination MAC\r
- * address on the Ethernet.\r
- *\r
- * If the destination IP address is in the local network (determined\r
- * by logical ANDing of netmask and our IP address), the function\r
- * checks the ARP cache to see if an entry for the destination IP\r
- * address is found. If so, an Ethernet header is prepended and the\r
- * function returns. If no ARP cache entry is found for the\r
- * destination IP address, the packet in the uip_buf[] is replaced by\r
- * an ARP request packet for the IP address. The IP packet is dropped\r
- * and it is assumed that they higher level protocols (e.g., TCP)\r
- * eventually will retransmit the dropped packet.\r
- *\r
- * If the destination IP address is not on the local network, the IP\r
- * address of the default router is used instead.\r
- *\r
- * When the function returns, a packet is present in the uip_buf[]\r
- * buffer, and the length of the packet is in the global variable\r
- * uip_len.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_out(void)\r
-{\r
- struct arp_entry *tabptr;\r
- /* Find the destination IP address in the ARP table and construct\r
- the Ethernet header. If the destination IP addres isn't on the\r
- local network, we use the default router's IP address instead.\r
-\r
- If not ARP table entry is found, we overwrite the original IP\r
- packet with an ARP request for the IP address. */\r
-\r
- /* Check if the destination address is on the local network. */\r
- if((IPBUF->destipaddr[0] & uip_arp_netmask[0]) !=\r
- (uip_hostaddr[0] & uip_arp_netmask[0]) ||\r
- (IPBUF->destipaddr[1] & uip_arp_netmask[1]) !=\r
- (uip_hostaddr[1] & uip_arp_netmask[1])) {\r
- /* Destination address was not on the local network, so we need to\r
- use the default router's IP address instead of the destination\r
- address when determining the MAC address. */\r
- ipaddr[0] = uip_arp_draddr[0];\r
- ipaddr[1] = uip_arp_draddr[1];\r
- } else {\r
- /* Else, we use the destination IP address. */\r
- ipaddr[0] = IPBUF->destipaddr[0];\r
- ipaddr[1] = IPBUF->destipaddr[1];\r
- }\r
-\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if(ipaddr[0] == tabptr->ipaddr[0] &&\r
- ipaddr[1] == tabptr->ipaddr[1])\r
- break;\r
- }\r
-\r
- if(i == UIP_ARPTAB_SIZE) {\r
- /* The destination address was not in our ARP table, so we\r
- overwrite the IP packet with an ARP request. */\r
-\r
- memset(BUF->ethhdr.dest.addr, 0xff, 6);\r
- memset(BUF->dhwaddr.addr, 0x00, 6);\r
- memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);\r
- memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);\r
-\r
- BUF->dipaddr[0] = ipaddr[0];\r
- BUF->dipaddr[1] = ipaddr[1];\r
- BUF->sipaddr[0] = uip_hostaddr[0];\r
- BUF->sipaddr[1] = uip_hostaddr[1];\r
- BUF->opcode = HTONS(ARP_REQUEST); /* ARP request. */\r
- BUF->hwtype = HTONS(ARP_HWTYPE_ETH);\r
- BUF->protocol = HTONS(UIP_ETHTYPE_IP);\r
- BUF->hwlen = 6;\r
- BUF->protolen = 4;\r
- BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);\r
-\r
- uip_appdata = &uip_buf[40 + UIP_LLH_LEN];\r
-\r
- uip_len = sizeof(struct arp_hdr);\r
- return;\r
- }\r
-\r
- /* Build an ethernet header. */\r
- memcpy(IPBUF->ethhdr.dest.addr, tabptr->ethaddr.addr, 6);\r
- memcpy(IPBUF->ethhdr.src.addr, uip_ethaddr.addr, 6);\r
-\r
- IPBUF->ethhdr.type = HTONS(UIP_ETHTYPE_IP);\r
-\r
- uip_len += sizeof(struct uip_eth_hdr);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
-/** @} */\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \addtogroup uiparp\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Macros and definitions for the ARP module.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arp.h,v 1.3.2.2 2003/10/06 15:10:22 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIP_ARP_H__\r
-#define __UIP_ARP_H__\r
-\r
-#include "uip.h"\r
-\r
-\r
-/**\r
- * Representation of a 48-bit Ethernet address.\r
- */\r
-struct uip_eth_addr {\r
- u8_t addr[6];\r
-} /*_RB_ __attribute__ ((packed, aligned (1))) */;\r
-\r
-extern struct uip_eth_addr uip_ethaddr;\r
-\r
-/**\r
- * The Ethernet header.\r
- */\r
-struct uip_eth_hdr {\r
- struct uip_eth_addr dest;\r
- struct uip_eth_addr src;\r
- u16_t type;\r
-} /*_RB_ __attribute__ ((packed)) */;\r
-\r
-#define UIP_ETHTYPE_ARP 0x0806\r
-#define UIP_ETHTYPE_IP 0x0800\r
-#define UIP_ETHTYPE_IP6 0x86dd\r
-\r
-\r
-/* The uip_arp_init() function must be called before any of the other\r
- ARP functions. */\r
-void uip_arp_init(void);\r
-\r
-/* The uip_arp_ipin() function should be called whenever an IP packet\r
- arrives from the Ethernet. This function refreshes the ARP table or\r
- inserts a new mapping if none exists. The function assumes that an\r
- IP packet with an Ethernet header is present in the uip_buf buffer\r
- and that the length of the packet is in the uip_len variable. */\r
-void uip_arp_ipin(void);\r
-\r
-/* The uip_arp_arpin() should be called when an ARP packet is received\r
- by the Ethernet driver. This function also assumes that the\r
- Ethernet frame is present in the uip_buf buffer. When the\r
- uip_arp_arpin() function returns, the contents of the uip_buf\r
- buffer should be sent out on the Ethernet if the uip_len variable\r
- is > 0. */\r
-void uip_arp_arpin(void);\r
-\r
-/* The uip_arp_out() function should be called when an IP packet\r
- should be sent out on the Ethernet. This function creates an\r
- Ethernet header before the IP header in the uip_buf buffer. The\r
- Ethernet header will have the correct Ethernet MAC destination\r
- address filled in if an ARP table entry for the destination IP\r
- address (or the IP address of the default router) is present. If no\r
- such table entry is found, the IP packet is overwritten with an ARP\r
- request and we rely on TCP to retransmit the packet that was\r
- overwritten. In any case, the uip_len variable holds the length of\r
- the Ethernet frame that should be transmitted. */\r
-void uip_arp_out(void);\r
-\r
-/* The uip_arp_timer() function should be called every ten seconds. It\r
- is responsible for flushing old entries in the ARP table. */\r
-void uip_arp_timer(void);\r
-\r
-/** @} */\r
-\r
-/**\r
- * \addtogroup uipconffunc\r
- * @{\r
- */\r
-\r
-/**\r
- * Set the default router's IP address.\r
- *\r
- * \param addr A pointer to a 4-byte array containing the IP address\r
- * of the default router.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_setdraddr(addr) do { uip_arp_draddr[0] = addr[0]; \\r
- uip_arp_draddr[1] = addr[1]; } while(0)\r
-\r
-/**\r
- * Set the netmask.\r
- *\r
- * \param addr A pointer to a 4-byte array containing the IP address\r
- * of the netmask.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_setnetmask(addr) do { uip_arp_netmask[0] = addr[0]; \\r
- uip_arp_netmask[1] = addr[1]; } while(0)\r
-\r
-\r
-/**\r
- * Get the default router's IP address.\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the IP address of the default router.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_getdraddr(addr) do { addr[0] = uip_arp_draddr[0]; \\r
- addr[1] = uip_arp_draddr[1]; } while(0)\r
-\r
-/**\r
- * Get the netmask.\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the value of the netmask.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_getnetmask(addr) do { addr[0] = uip_arp_netmask[0]; \\r
- addr[1] = uip_arp_netmask[1]; } while(0)\r
-\r
-\r
-/**\r
- * Specifiy the Ethernet MAC address.\r
- *\r
- * The ARP code needs to know the MAC address of the Ethernet card in\r
- * order to be able to respond to ARP queries and to generate working\r
- * Ethernet headers.\r
- *\r
- * \note This macro only specifies the Ethernet MAC address to the ARP\r
- * code. It cannot be used to change the MAC address of the Ethernet\r
- * card.\r
- *\r
- * \param eaddr A pointer to a struct uip_eth_addr containing the\r
- * Ethernet MAC address of the Ethernet card.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_setethaddr(eaddr) do {uip_ethaddr.addr[0] = eaddr.addr[0]; \\r
- uip_ethaddr.addr[1] = eaddr.addr[1];\\r
- uip_ethaddr.addr[2] = eaddr.addr[2];\\r
- uip_ethaddr.addr[3] = eaddr.addr[3];\\r
- uip_ethaddr.addr[4] = eaddr.addr[4];\\r
- uip_ethaddr.addr[5] = eaddr.addr[5];} while(0)\r
-\r
-/** @} */\r
-\r
-/**\r
- * \internal Internal variables that are set using the macros\r
- * uip_setdraddr and uip_setnetmask.\r
- */\r
-extern u16_t uip_arp_draddr[2], uip_arp_netmask[2];\r
-#endif /* __UIP_ARP_H__ */\r
-\r
-\r
+++ /dev/null
-/**\r
- * \defgroup uipopt Configuration options for uIP\r
- * @{\r
- *\r
- * uIP is configured using the per-project configuration file\r
- * "uipopt.h". This file contains all compile-time options for uIP and\r
- * should be tweaked to match each specific project. The uIP\r
- * distribution contains a documented example "uipopt.h" that can be\r
- * copied and modified for each project.\r
- */\r
-\r
-/**\r
- * \file\r
- * Configuration options for uIP.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * This file is used for tweaking various configuration options for\r
- * uIP. You should make a copy of this file into one of your project's\r
- * directories instead of editing this example "uipopt.h" file that\r
- * comes with the uIP distribution.\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved.\r
- *\r
- * Redistribution and use in source and binary forms, with or without\r
- * modification, are permitted provided that the following conditions\r
- * are met:\r
- * 1. Redistributions of source code must retain the above copyright\r
- * notice, this list of conditions and the following disclaimer.\r
- * 2. Redistributions in binary form must reproduce the above copyright\r
- * notice, this list of conditions and the following disclaimer in the\r
- * documentation and/or other materials provided with the distribution.\r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission.\r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uipopt.h,v 1.16.2.5 2003/10/07 13:22:51 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIPOPT_H__\r
-#define __UIPOPT_H__\r
-\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipopttypedef uIP type definitions\r
- * @{\r
- */\r
-\r
-/**\r
- * The 8-bit unsigned data type.\r
- *\r
- * This may have to be tweaked for your particular compiler. "unsigned\r
- * char" works for most compilers.\r
- */\r
-typedef unsigned char u8_t;\r
-\r
-/**\r
- * The 16-bit unsigned data type.\r
- *\r
- * This may have to be tweaked for your particular compiler. "unsigned\r
- * short" works for most compilers.\r
- */\r
-typedef unsigned short u16_t;\r
-\r
-/**\r
- * The statistics data type.\r
- *\r
- * This datatype determines how high the statistics counters are able\r
- * to count.\r
- */\r
-typedef unsigned short uip_stats_t;\r
-\r
-/** @} */\r
-\r
-/*------------------------------------------------------------------------------*/\r
-\r
-/**\r
- * \defgroup uipoptstaticconf Static configuration options\r
- * @{\r
- *\r
- * These configuration options can be used for setting the IP address\r
- * settings statically, but only if UIP_FIXEDADDR is set to 1. The\r
- * configuration options for a specific node includes IP address,\r
- * netmask and default router as well as the Ethernet address. The\r
- * netmask, default router and Ethernet address are appliciable only\r
- * if uIP should be run over Ethernet.\r
- *\r
- * All of these should be changed to suit your project.\r
-*/\r
-\r
-/**\r
- * Determines if uIP should use a fixed IP address or not.\r
- *\r
- * If uIP should use a fixed IP address, the settings are set in the\r
- * uipopt.h file. If not, the macros uip_sethostaddr(),\r
- * uip_setdraddr() and uip_setnetmask() should be used instead.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_FIXEDADDR 1\r
-\r
-/**\r
- * Ping IP address asignment.\r
- *\r
- * uIP uses a "ping" packets for setting its own IP address if this\r
- * option is set. If so, uIP will start with an empty IP address and\r
- * the destination IP address of the first incoming "ping" (ICMP echo)\r
- * packet will be used for setting the hosts IP address.\r
- *\r
- * \note This works only if UIP_FIXEDADDR is 0.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_PINGADDRCONF 0\r
-\r
-\r
-#define UIP_IPADDR0 172U /**< The first octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR1 25U /**< The second octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR2 218U /**< The third octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR3 11U /**< The fourth octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-#define UIP_NETMASK0 255 /**< The first octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK1 255 /**< The second octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK2 0 /**< The third octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK3 0 /**< The fourth octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-#define UIP_DRIPADDR0 172 /**< The first octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR1 25 /**< The second octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR2 218 /**< The third octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR3 3 /**< The fourth octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-\r
-\r
-/**\r
- * Specifies if the uIP ARP module should be compiled with a fixed\r
- * Ethernet MAC address or not.\r
- *\r
- * If this configuration option is 0, the macro uip_setethaddr() can\r
- * be used to specify the Ethernet address at run-time.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_FIXEDETHADDR 0\r
-\r
-#define UIP_ETHADDR0 0x00 /**< The first octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR1 0xbd /**< The second octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR2 0x3b /**< The third octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR3 0x33 /**< The fourth octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR4 0x06 /**< The fifth octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR5 0x65 /**< The sixth octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptip IP configuration options\r
- * @{\r
- *\r
- */\r
-/**\r
- * The IP TTL (time to live) of IP packets sent by uIP.\r
- *\r
- * This should normally not be changed.\r
- */\r
-#define UIP_TTL 255\r
-\r
-/**\r
- * Turn on support for IP packet reassembly.\r
- *\r
- * uIP supports reassembly of fragmented IP packets. This features\r
- * requires an additonal amount of RAM to hold the reassembly buffer\r
- * and the reassembly code size is approximately 700 bytes. The\r
- * reassembly buffer is of the same size as the uip_buf buffer\r
- * (configured by UIP_BUFSIZE).\r
- *\r
- * \note IP packet reassembly is not heavily tested.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_REASSEMBLY 0\r
-\r
-/**\r
- * The maximum time an IP fragment should wait in the reassembly\r
- * buffer before it is dropped.\r
- *\r
- */\r
-#define UIP_REASS_MAXAGE 40\r
-\r
-/** @} */\r
-\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptudp UDP configuration options\r
- * @{\r
- *\r
- * \note The UDP support in uIP is still not entirely complete; there\r
- * is no support for sending or receiving broadcast or multicast\r
- * packets, but it works well enough to support a number of vital\r
- * applications such as DNS queries, though\r
- */\r
-\r
-/**\r
- * Toggles wether UDP support should be compiled in or not.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP 0\r
-\r
-/**\r
- * Toggles if UDP checksums should be used or not.\r
- *\r
- * \note Support for UDP checksums is currently not included in uIP,\r
- * so this option has no function.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP_CHECKSUMS 0\r
-\r
-/**\r
- * The maximum amount of concurrent UDP connections.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP_CONNS 2\r
-\r
-/**\r
- * The name of the function that should be called when UDP datagrams arrive.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP_APPCALL udp_appcall\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipopttcp TCP configuration options\r
- * @{\r
- */\r
-\r
-/**\r
- * Determines if support for opening connections from uIP should be\r
- * compiled in.\r
- *\r
- * If the applications that are running on top of uIP for this project\r
- * do not need to open outgoing TCP connections, this configration\r
- * option can be turned off to reduce the code size of uIP.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_ACTIVE_OPEN 0\r
-\r
-/**\r
- * The maximum number of simultaneously open TCP connections.\r
- *\r
- * Since the TCP connections are statically allocated, turning this\r
- * configuration knob down results in less RAM used. Each TCP\r
- * connection requires approximatly 30 bytes of memory.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_CONNS 25\r
-\r
-/**\r
- * The maximum number of simultaneously listening TCP ports.\r
- *\r
- * Each listening TCP port requires 2 bytes of memory.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_LISTENPORTS 10\r
-\r
-/**\r
- * The size of the advertised receiver's window.\r
- *\r
- * Should be set low (i.e., to the size of the uip_buf buffer) is the\r
- * application is slow to process incoming data, or high (32768 bytes)\r
- * if the application processes data quickly.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_RECEIVE_WINDOW 32768\r
-\r
-/**\r
- * Determines if support for TCP urgent data notification should be\r
- * compiled in.\r
- *\r
- * Urgent data (out-of-band data) is a rarely used TCP feature that\r
- * very seldom would be required.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_URGDATA 1\r
-\r
-/**\r
- * The initial retransmission timeout counted in timer pulses.\r
- *\r
- * This should not be changed.\r
- */\r
-#define UIP_RTO 3\r
-\r
-/**\r
- * The maximum number of times a segment should be retransmitted\r
- * before the connection should be aborted.\r
- *\r
- * This should not be changed.\r
- */\r
-#define UIP_MAXRTX 8\r
-\r
-/**\r
- * The maximum number of times a SYN segment should be retransmitted\r
- * before a connection request should be deemed to have been\r
- * unsuccessful.\r
- *\r
- * This should not need to be changed.\r
- */\r
-#define UIP_MAXSYNRTX 3\r
-\r
-/**\r
- * The TCP maximum segment size.\r
- *\r
- * This is should not be to set to more than UIP_BUFSIZE - UIP_LLH_LEN - 40.\r
- */\r
-#define UIP_TCP_MSS (UIP_BUFSIZE - UIP_LLH_LEN - 40)\r
-\r
-/**\r
- * How long a connection should stay in the TIME_WAIT state.\r
- *\r
- * This configiration option has no real implication, and it should be\r
- * left untouched.\r
- */\r
-#define UIP_TIME_WAIT_TIMEOUT 120\r
-\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptarp ARP configuration options\r
- * @{\r
- */\r
-\r
-/**\r
- * The size of the ARP table.\r
- *\r
- * This option should be set to a larger value if this uIP node will\r
- * have many connections from the local network.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_ARPTAB_SIZE 8\r
-\r
-/**\r
- * The maxium age of ARP table entries measured in 10ths of seconds.\r
- *\r
- * An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD\r
- * default).\r
- */\r
-#define UIP_ARP_MAXAGE 120\r
-\r
-/** @} */\r
-\r
-/*------------------------------------------------------------------------------*/\r
-\r
-/**\r
- * \defgroup uipoptgeneral General configuration options\r
- * @{\r
- */\r
-\r
-/**\r
- * The size of the uIP packet buffer.\r
- *\r
- * The uIP packet buffer should not be smaller than 60 bytes, and does\r
- * not need to be larger than 1500 bytes. Lower size results in lower\r
- * TCP throughput, larger size results in higher TCP throughput.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_BUFSIZE 1480\r
-\r
-\r
-/**\r
- * Determines if statistics support should be compiled in.\r
- *\r
- * The statistics is useful for debugging and to show the user.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_STATISTICS 1\r
-\r
-/**\r
- * Determines if logging of certain events should be compiled in.\r
- *\r
- * This is useful mostly for debugging. The function uip_log()\r
- * must be implemented to suit the architecture of the project, if\r
- * logging is turned on.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_LOGGING 0\r
-\r
-/**\r
- * Print out a uIP log message.\r
- *\r
- * This function must be implemented by the module that uses uIP, and\r
- * is called by uIP whenever a log message is generated.\r
- */\r
-void uip_log(char *msg);\r
-\r
-/**\r
- * The link level header length.\r
- *\r
- * This is the offset into the uip_buf where the IP header can be\r
- * found. For Ethernet, this should be set to 14. For SLIP, this\r
- * should be set to 0.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_LLH_LEN 14\r
-\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptcpu CPU architecture configuration\r
- * @{\r
- *\r
- * The CPU architecture configuration is where the endianess of the\r
- * CPU on which uIP is to be run is specified. Most CPUs today are\r
- * little endian, and the most notable exception are the Motorolas\r
- * which are big endian. The BYTE_ORDER macro should be changed to\r
- * reflect the CPU architecture on which uIP is to be run.\r
- */\r
-#ifndef LITTLE_ENDIAN\r
-#define LITTLE_ENDIAN 3412\r
-#endif /* LITTLE_ENDIAN */\r
-#ifndef BIG_ENDIAN\r
-#define BIG_ENDIAN 1234\r
-#endif /* BIGE_ENDIAN */\r
-\r
-/**\r
- * The byte order of the CPU architecture on which uIP is to be run.\r
- *\r
- * This option can be either BIG_ENDIAN (Motorola byte order) or\r
- * LITTLE_ENDIAN (Intel byte order).\r
- *\r
- * \hideinitializer\r
- */\r
-#ifndef BYTE_ORDER\r
-#define BYTE_ORDER LITTLE_ENDIAN\r
-#endif /* BYTE_ORDER */\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-\r
-/**\r
- * \defgroup uipoptapp Appication specific configurations\r
- * @{\r
- *\r
- * An uIP application is implemented using a single application\r
- * function that is called by uIP whenever a TCP/IP event occurs. The\r
- * name of this function must be registered with uIP at compile time\r
- * using the UIP_APPCALL definition.\r
- *\r
- * uIP applications can store the application state within the\r
- * uip_conn structure by specifying the size of the application\r
- * structure with the UIP_APPSTATE_SIZE macro.\r
- *\r
- * The file containing the definitions must be included in the\r
- * uipopt.h file.\r
- *\r
- * The following example illustrates how this can look.\r
- \code\r
-\r
-void httpd_appcall(void);\r
-#define UIP_APPCALL httpd_appcall\r
-\r
-struct httpd_state {\r
- u8_t state;\r
- u16_t count;\r
- char *dataptr;\r
- char *script;\r
-};\r
-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))\r
- \endcode\r
- */\r
-\r
-/**\r
- * \var #define UIP_APPCALL\r
- *\r
- * The name of the application function that uIP should call in\r
- * response to TCP/IP events.\r
- *\r
- */\r
-\r
-/**\r
- * \var #define UIP_APPSTATE_SIZE\r
- *\r
- * The size of the application state that is to be stored in the\r
- * uip_conn structure.\r
- */\r
-/** @} */\r
-\r
-/* Include the header file for the application program that should be\r
- used. If you don't use the example web server, you should change\r
- this. */\r
-#include "httpd.h"\r
-\r
-\r
-#endif /* __UIPOPT_H__ */\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-#ifndef FREERTOS_CONFIG_H\r
-#define FREERTOS_CONFIG_H\r
-\r
-#include <lpc210x.h>\r
-#define vPortYieldProcessor swi_handler\r
-\r
-\r
-/*-----------------------------------------------------------\r
- * Application specific definitions.\r
- *\r
- * These definitions should be adjusted for your particular hardware and\r
- * application requirements.\r
- *\r
- * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE\r
- * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. \r
- *\r
- * See http://www.freertos.org/a00110.html.\r
- *----------------------------------------------------------*/\r
-\r
-#define configUSE_PREEMPTION 1\r
-#define configUSE_IDLE_HOOK 0\r
-#define configUSE_TICK_HOOK 0\r
-#define configCPU_CLOCK_HZ ( ( unsigned long ) 58982400 ) /* =14.7456MHz xtal multiplied by 4 using the PLL. */\r
-#define configTICK_RATE_HZ ( ( TickType_t ) 1000 )\r
-#define configMAX_PRIORITIES ( 5 )\r
-#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 128 )\r
-#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 10 * 1024 ) )\r
-#define configMAX_TASK_NAME_LEN ( 16 )\r
-#define configUSE_TRACE_FACILITY 1\r
-#define configUSE_16_BIT_TICKS 0\r
-#define configIDLE_SHOULD_YIELD 1\r
-\r
-/* Co-routine definitions. */\r
-#define configUSE_CO_ROUTINES 0\r
-#define configMAX_CO_ROUTINE_PRIORITIES ( 2 )\r
-\r
-/* Set the following definitions to 1 to include the API function, or zero\r
-to exclude the API function. */\r
-\r
-#define INCLUDE_vTaskPrioritySet 1\r
-#define INCLUDE_uxTaskPriorityGet 1\r
-#define INCLUDE_vTaskDelete 1\r
-#define INCLUDE_vTaskCleanUpResources 0\r
-#define INCLUDE_vTaskSuspend 1\r
-#define INCLUDE_vTaskDelayUntil 1\r
-#define INCLUDE_vTaskDelay 1\r
-\r
-\r
-#endif /* FREERTOS_CONFIG_H */\r
+++ /dev/null
-/*****************************************************************************\r
- * Copyright (c) 2001, 2002 Rowley Associates Limited. *\r
- * *\r
- * This file may be distributed under the terms of the License Agreement *\r
- * provided with this software. *\r
- * *\r
- * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE *\r
- * WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. *\r
- *****************************************************************************/\r
-\r
-/*****************************************************************************\r
- * Preprocessor Definitions\r
- * ------------------------\r
- *\r
- * VECTORED_IRQ_INTERRUPTS\r
- *\r
- * Enable vectored IRQ interrupts. If defined, the PC register will be loaded\r
- * with the contents of the VICVectAddr register on an IRQ exception.\r
- *\r
- * USE_PLL\r
- *\r
- * If defined, connect PLL as processor clock source. If undefined, the \r
- * oscillator clock will be used.\r
- *\r
- * PLLCFG_VAL\r
- *\r
- * Override the default PLL configuration (multiplier = 5, divider = 2)\r
- * by defining PLLCFG_VAL.\r
- *\r
- * USE_MAM\r
- *\r
- * If defined then the memory accelerator module (MAM) will be enabled.\r
- *\r
- * MAMCR_VAL & MAMTIM_VAL\r
- * \r
- * Override the default MAM configuration (fully enabled, 3 fetch cycles)\r
- * by defining MAMCR_VAL and MAMTIM_VAL.\r
- *\r
- * VPBDIV_VAL\r
- *\r
- * If defined then this value will be used to configure the VPB divider.\r
- *\r
- * SRAM_EXCEPTIONS\r
- *\r
- * If defined, enable copying and re-mapping of interrupt vectors from User \r
- * FLASH to SRAM. If undefined, interrupt vectors will be mapped in User \r
- * FLASH.\r
- *\r
- *****************************************************************************/\r
-\r
-#ifndef PLLCFG_VAL\r
-#define PLLCFG_VAL 0x24 \r
-#endif\r
-\r
-#ifndef MAMCR_VAL\r
-#define MAMCR_VAL 2\r
-#endif\r
-\r
-#ifndef MAMTIM_VAL\r
-#define MAMTIM_VAL 3\r
-#endif\r
-\r
-#define MAMCR_OFFS 0x000\r
-#define MAMTIM_OFFS 0x004\r
-\r
-#define PLLCON_OFFS 0x080\r
-#define PLLCFG_OFFS 0x084\r
-#define PLLSTAT_OFFS 0x088\r
-#define PLLFEED_OFFS 0x08C\r
-\r
-#define VPBDIV_OFFS 0x100\r
-\r
- .section .vectors, "ax"\r
- .code 32\r
- .align 0\r
-\r
-/*****************************************************************************\r
- * Exception Vectors *\r
- *****************************************************************************/\r
-_vectors:\r
- ldr pc, [pc, #reset_handler_address - . - 8] /* reset */\r
- ldr pc, [pc, #undef_handler_address - . - 8] /* undefined instruction */\r
- ldr pc, [pc, #swi_handler_address - . - 8] /* swi handler */\r
- ldr pc, [pc, #pabort_handler_address - . - 8] /* abort prefetch */\r
- ldr pc, [pc, #dabort_handler_address - . - 8] /* abort data */\r
-#ifdef VECTORED_IRQ_INTERRUPTS\r
- .word 0xB9205F84 /* boot loader checksum */\r
- ldr pc, [pc, #-0xFF0] /* irq handler */\r
-#else\r
- .word 0xB8A06F60 /* boot loader checksum */\r
- ldr pc, [pc, #irq_handler_address - . - 8] /* irq handler */\r
-#endif\r
- ldr pc, [pc, #fiq_handler_address - . - 8] /* fiq handler */\r
-\r
-reset_handler_address:\r
- .word reset_handler\r
-undef_handler_address:\r
- .word undef_handler\r
-swi_handler_address:\r
- .word swi_handler\r
-pabort_handler_address:\r
- .word pabort_handler\r
-dabort_handler_address:\r
- .word dabort_handler\r
-irq_handler_address:\r
- .word irq_handler\r
-fiq_handler_address:\r
- .word fiq_handler\r
-\r
- .section .init, "ax"\r
- .code 32\r
- .align 0\r
-\r
-/******************************************************************************\r
- * *\r
- * Default exception handlers *\r
- * *\r
- ******************************************************************************/\r
-\r
-reset_handler:\r
-#if defined(USE_PLL) || defined(USE_MAM) || defined(VPBDIV_VAL)\r
- ldr r0, =0xE01FC000\r
-#endif\r
-#if defined(USE_PLL)\r
- /* Configure PLL Multiplier/Divider */\r
- ldr r1, =PLLCFG_VAL\r
- str r1, [r0, #PLLCFG_OFFS]\r
- /* Enable PLL */\r
- mov r1, #0x1\r
- str r1, [r0, #PLLCON_OFFS]\r
- mov r1, #0xAA\r
- str r1, [r0, #PLLFEED_OFFS]\r
- mov r1, #0x55\r
- str r1, [r0, #PLLFEED_OFFS]\r
- /* Wait for PLL to lock */\r
-pll_lock_loop:\r
- ldr r1, [r0, #PLLSTAT_OFFS]\r
- tst r1, #0x400\r
- beq pll_lock_loop\r
- /* PLL Locked, connect PLL as clock source */\r
- mov r1, #0x3\r
- str r1, [r0, #PLLCON_OFFS]\r
- mov r1, #0xAA\r
- str r1, [r0, #PLLFEED_OFFS]\r
- mov r1, #0x55\r
- str r1, [r0, #PLLFEED_OFFS]\r
-#endif\r
-\r
-#if defined(USE_MAM)\r
- mov r1, #0\r
- str r1, [r0, #MAMCR_OFFS]\r
- ldr r1, =MAMTIM_VAL\r
- str r1, [r0, #MAMTIM_OFFS]\r
- ldr r1, =MAMCR_VAL\r
- str r1, [r0, #MAMCR_OFFS]\r
-#endif\r
-\r
-#if defined(VPBDIV_VAL)\r
- ldr r1, =VPBDIV_VAL\r
- str r1, [r0, #VPBDIV_OFFS]\r
-#endif\r
-\r
-#if defined(SRAM_EXCEPTIONS)\r
- /* Copy exception vectors into SRAM */\r
- mov r8, #0x40000000\r
- ldr r9, =_vectors\r
- ldmia r9!, {r0-r7}\r
- stmia r8!, {r0-r7}\r
- ldmia r9!, {r0-r6}\r
- stmia r8!, {r0-r6}\r
-\r
- /* Re-map interrupt vectors from SRAM */\r
- ldr r0, MEMMAP\r
- mov r1, #2 /* User RAM Mode. Interrupt vectors are re-mapped from SRAM */\r
- str r1, [r0]\r
-#endif /* SRAM_EXCEPTIONS */\r
- \r
- b _start\r
-\r
-#ifdef SRAM_EXCEPTIONS\r
-MEMMAP:\r
- .word 0xE01FC040\r
-#endif\r
-\r
-/******************************************************************************\r
- * *\r
- * Default exception handlers *\r
- * These are declared weak symbols so they can be redefined in user code. * \r
- * *\r
- ******************************************************************************/\r
-\r
-undef_handler:\r
- b undef_handler\r
- \r
-swi_handler:\r
- b swi_handler\r
- \r
-pabort_handler:\r
- b pabort_handler\r
- \r
-dabort_handler:\r
- b dabort_handler\r
- \r
-irq_handler:\r
- b irq_handler\r
- \r
-fiq_handler:\r
- b fiq_handler\r
-\r
- .weak undef_handler, swi_handler, pabort_handler, dabort_handler, irq_handler, fiq_handler\r
- \r
-\r
- \r
--- /dev/null
+If you need the demo that used to be in this directory then download FreeRTOS V8.2.3\r
+from http://sourceforge.net/projects/freertos/files/FreeRTOS/\r
+\r
+FreeRTOS now uses its own TCP/IP stack: http://www.FreeRTOS.org/TCP\r
+\r
+++ /dev/null
-<!DOCTYPE Linker_Placement_File>\r
-<Root name="Flash Section Placement" >\r
- <MemorySegment name="External SRAM;SRAM;SDRAM;DRAM" >\r
- <ProgramSection alignment="4" load="No" name=".data_run" />\r
- <ProgramSection alignment="4" load="No" inputsections="*(.bss .bss.* .gnu.linkonce.b.*) *(COMMON)" name=".bss" />\r
- <ProgramSection alignment="4" size="0x0" load="No" name=".heap" />\r
- <ProgramSection alignment="4" size="0x0" load="No" name=".stack" />\r
- <ProgramSection alignment="4" size="0x200" load="No" name=".stack_irq" />\r
- <ProgramSection alignment="4" size="0x0" load="No" name=".stack_fiq" />\r
- <ProgramSection alignment="4" size="0x200" load="No" name=".stack_svc" />\r
- <ProgramSection alignment="4" size="0x0" load="No" name=".stack_abt" />\r
- <ProgramSection alignment="4" size="0x0" load="No" name=".stack_und" />\r
- </MemorySegment>\r
- <MemorySegment name="Internal SRAM;SRAM;SDRAM;DRAM" >\r
- <ProgramSection size="0x3C" load="No" name=".vectors_ram" />\r
- <ProgramSection alignment="4" load="No" name=".fast_run" />\r
- </MemorySegment>\r
- <MemorySegment name="FLASH" >\r
- <ProgramSection load="Yes" inputsections="*(.vectors .vectors.*)" name=".vectors" />\r
- <ProgramSection alignment="4" load="Yes" inputsections="*(.init .init.*)" name=".init" />\r
- <ProgramSection alignment="4" load="No" name=".text_load" />\r
- <ProgramSection alignment="4" load="Yes" inputsections="*(.text .text.* .glue_7t .glue_7 .gnu.linkonce.t.*)" name=".text" />\r
- <ProgramSection alignment="4" load="Yes" inputsections="KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors))" name=".dtors" />\r
- <ProgramSection alignment="4" load="Yes" inputsections="KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors))" name=".ctors" />\r
- <ProgramSection alignment="4" load="Yes" inputsections="*(.rodata .rodata.* .gnu.linkonce.r.*)" name=".rodata" />\r
- <ProgramSection alignment="4" load="Yes" runin=".fast_run" inputsections="*(.fast .fast.*)" name=".fast" />\r
- <ProgramSection alignment="4" load="Yes" runin=".data_run" inputsections="*(.data .data.* .gnu.linkonce.d.*)" name=".data" />\r
- </MemorySegment>\r
-</Root>\r
+++ /dev/null
-#ifndef lpc210x_h\r
-#define lpc210x_h\r
-/*******************************************************************************\r
-lpc210x.h - Register defs for Philips LPC210X: LPC2104, LPC2105 and LPC2106\r
-\r
- \r
-THE SOFTWARE IS DELIVERED "AS IS" WITHOUT WARRANTY OR CONDITION OF ANY KIND, \r
-EITHER EXPRESS, IMPLIED OR STATUTORY. THIS INCLUDES WITHOUT LIMITATION ANY \r
-WARRANTY OR CONDITION WITH RESPECT TO MERCHANTABILITY OR FITNESS FOR ANY \r
-PARTICULAR PURPOSE, OR AGAINST THE INFRINGEMENTS OF INTELLECTUAL PROPERTY RIGHTS \r
-OF OTHERS.\r
- \r
-This file may be freely used for commercial and non-commercial applications, \r
-including being redistributed with any tools.\r
-\r
-If you find a problem with the file, please report it so that it can be fixed.\r
-\r
-Created by Sten Larsson (sten_larsson at yahoo com)\r
-\r
-Edited by Richard Barry.\r
-*******************************************************************************/\r
-\r
-#define REG8 (volatile unsigned char*)\r
-#define REG16 (volatile unsigned short*)\r
-#define REG32 (volatile unsigned int*)\r
-\r
-\r
-/*##############################################################################\r
-## MISC\r
-##############################################################################*/\r
-\r
- /* Constants for data to put in IRQ/FIQ Exception Vectors */\r
-#define VECTDATA_IRQ 0xE51FFFF0 /* LDR PC,[PC,#-0xFF0] */\r
-#define VECTDATA_FIQ /* __TODO */\r
-\r
-\r
-/*##############################################################################\r
-## VECTORED INTERRUPT CONTROLLER\r
-##############################################################################*/\r
-\r
-#define VICIRQStatus (*(REG32 (0xFFFFF000)))\r
-#define VICFIQStatus (*(REG32 (0xFFFFF004)))\r
-#define VICRawIntr (*(REG32 (0xFFFFF008)))\r
-#define VICIntSelect (*(REG32 (0xFFFFF00C)))\r
-#define VICIntEnable (*(REG32 (0xFFFFF010)))\r
-#define VICIntEnClear (*(REG32 (0xFFFFF014)))\r
-#define VICSoftInt (*(REG32 (0xFFFFF018)))\r
-#define VICSoftIntClear (*(REG32 (0xFFFFF01C)))\r
-#define VICProtection (*(REG32 (0xFFFFF020)))\r
-#define VICVectAddr (*(REG32 (0xFFFFF030)))\r
-#define VICDefVectAddr (*(REG32 (0xFFFFF034)))\r
-\r
-#define VICVectAddr0 (*(REG32 (0xFFFFF100)))\r
-#define VICVectAddr1 (*(REG32 (0xFFFFF104)))\r
-#define VICVectAddr2 (*(REG32 (0xFFFFF108)))\r
-#define VICVectAddr3 (*(REG32 (0xFFFFF10C)))\r
-#define VICVectAddr4 (*(REG32 (0xFFFFF110)))\r
-#define VICVectAddr5 (*(REG32 (0xFFFFF114)))\r
-#define VICVectAddr6 (*(REG32 (0xFFFFF118)))\r
-#define VICVectAddr7 (*(REG32 (0xFFFFF11C)))\r
-#define VICVectAddr8 (*(REG32 (0xFFFFF120)))\r
-#define VICVectAddr9 (*(REG32 (0xFFFFF124)))\r
-#define VICVectAddr10 (*(REG32 (0xFFFFF128)))\r
-#define VICVectAddr11 (*(REG32 (0xFFFFF12C)))\r
-#define VICVectAddr12 (*(REG32 (0xFFFFF130)))\r
-#define VICVectAddr13 (*(REG32 (0xFFFFF134)))\r
-#define VICVectAddr14 (*(REG32 (0xFFFFF138)))\r
-#define VICVectAddr15 (*(REG32 (0xFFFFF13C)))\r
-\r
-#define VICVectCntl0 (*(REG32 (0xFFFFF200)))\r
-#define VICVectCntl1 (*(REG32 (0xFFFFF204)))\r
-#define VICVectCntl2 (*(REG32 (0xFFFFF208)))\r
-#define VICVectCntl3 (*(REG32 (0xFFFFF20C)))\r
-#define VICVectCntl4 (*(REG32 (0xFFFFF210)))\r
-#define VICVectCntl5 (*(REG32 (0xFFFFF214)))\r
-#define VICVectCntl6 (*(REG32 (0xFFFFF218)))\r
-#define VICVectCntl7 (*(REG32 (0xFFFFF21C)))\r
-#define VICVectCntl8 (*(REG32 (0xFFFFF220)))\r
-#define VICVectCntl9 (*(REG32 (0xFFFFF224)))\r
-#define VICVectCntl10 (*(REG32 (0xFFFFF228)))\r
-#define VICVectCntl11 (*(REG32 (0xFFFFF22C)))\r
-#define VICVectCntl12 (*(REG32 (0xFFFFF230)))\r
-#define VICVectCntl13 (*(REG32 (0xFFFFF234)))\r
-#define VICVectCntl14 (*(REG32 (0xFFFFF238)))\r
-#define VICVectCntl15 (*(REG32 (0xFFFFF23C)))\r
-\r
-#define VICITCR (*(REG32 (0xFFFFF300)))\r
-#define VICITIP1 (*(REG32 (0xFFFFF304)))\r
-#define VICITIP2 (*(REG32 (0xFFFFF308)))\r
-#define VICITOP1 (*(REG32 (0xFFFFF30C)))\r
-#define VICITOP2 (*(REG32 (0xFFFFF310)))\r
-#define VICPeriphID0 (*(REG32 (0xFFFFFFE0)))\r
-#define VICPeriphID1 (*(REG32 (0xFFFFFFE4)))\r
-#define VICPeriphID2 (*(REG32 (0xFFFFFFE8)))\r
-#define VICPeriphID3 (*(REG32 (0xFFFFFFEC)))\r
-\r
-#define VICIntEnClr VICIntEnClear\r
-#define VICSoftIntClr VICSoftIntClear\r
-\r
-\r
-/*##############################################################################\r
-## PCB - Pin Connect Block\r
-##############################################################################*/\r
-\r
-#define PCB_PINSEL0 (*(REG32 (0xE002C000)))\r
-#define PCB_PINSEL1 (*(REG32 (0xE002C004)))\r
-\r
-\r
-/*##############################################################################\r
-## GPIO - General Purpose I/O\r
-##############################################################################*/\r
-\r
-#define GPIO_IOPIN (*(REG32 (0xE0028000))) /* ALTERNATE NAME GPIO = GPIO0 */\r
-#define GPIO_IOSET (*(REG32 (0xE0028004)))\r
-#define GPIO_IODIR (*(REG32 (0xE0028008)))\r
-#define GPIO_IOCLR (*(REG32 (0xE002800C)))\r
-\r
-#define GPIO0_IOPIN (*(REG32 (0xE0028000))) /* ALTERNATE NAME GPIO = GPIO0 */\r
-#define GPIO0_IOSET (*(REG32 (0xE0028004)))\r
-#define GPIO0_IODIR (*(REG32 (0xE0028008)))\r
-#define GPIO0_IOCLR (*(REG32 (0xE002800C)))\r
-\r
-\r
-/*##############################################################################\r
-## UART0 / UART1\r
-##############################################################################*/\r
-\r
-/* ---- UART 0 --------------------------------------------- */\r
-#define UART0_RBR (*(REG32 (0xE000C000)))\r
-#define UART0_THR (*(REG32 (0xE000C000)))\r
-#define UART0_IER (*(REG32 (0xE000C004)))\r
-#define UART0_IIR (*(REG32 (0xE000C008)))\r
-#define UART0_FCR (*(REG32 (0xE000C008)))\r
-#define UART0_LCR (*(REG32 (0xE000C00C)))\r
-#define UART0_LSR (*(REG32 (0xE000C014)))\r
-#define UART0_SCR (*(REG32 (0xE000C01C)))\r
-#define UART0_DLL (*(REG32 (0xE000C000)))\r
-#define UART0_DLM (*(REG32 (0xE000C004)))\r
-\r
-/* ---- UART 1 --------------------------------------------- */\r
-#define UART1_RBR (*(REG32 (0xE0010000)))\r
-#define UART1_THR (*(REG32 (0xE0010000)))\r
-#define UART1_IER (*(REG32 (0xE0010004)))\r
-#define UART1_IIR (*(REG32 (0xE0010008)))\r
-#define UART1_FCR (*(REG32 (0xE0010008)))\r
-#define UART1_LCR (*(REG32 (0xE001000C)))\r
-#define UART1_LSR (*(REG32 (0xE0010014)))\r
-#define UART1_SCR (*(REG32 (0xE001001C)))\r
-#define UART1_DLL (*(REG32 (0xE0010000)))\r
-#define UART1_DLM (*(REG32 (0xE0010004)))\r
-#define UART1_MCR (*(REG32 (0xE0010010)))\r
-#define UART1_MSR (*(REG32 (0xE0010018)))\r
-\r
-\r
-/*##############################################################################\r
-## I2C\r
-##############################################################################*/\r
-\r
-#define I2C_I2CONSET (*(REG32 (0xE001C000)))\r
-#define I2C_I2STAT (*(REG32 (0xE001C004)))\r
-#define I2C_I2DAT (*(REG32 (0xE001C008)))\r
-#define I2C_I2ADR (*(REG32 (0xE001C00C)))\r
-#define I2C_I2SCLH (*(REG32 (0xE001C010)))\r
-#define I2C_I2SCLL (*(REG32 (0xE001C014)))\r
-#define I2C_I2CONCLR (*(REG32 (0xE001C018)))\r
-\r
-\r
-/*##############################################################################\r
-## SPI - Serial Peripheral Interface\r
-##############################################################################*/\r
-\r
-#define SPI_SPCR (*(REG32 (0xE0020000)))\r
-#define SPI_SPSR (*(REG32 (0xE0020004)))\r
-#define SPI_SPDR (*(REG32 (0xE0020008)))\r
-#define SPI_SPCCR (*(REG32 (0xE002000C)))\r
-#define SPI_SPTCR (*(REG32 (0xE0020010)))\r
-#define SPI_SPTSR (*(REG32 (0xE0020014)))\r
-#define SPI_SPTOR (*(REG32 (0xE0020018)))\r
-#define SPI_SPINT (*(REG32 (0xE002001C)))\r
-\r
-\r
-/*##############################################################################\r
-## Timer 0 and Timer 1\r
-##############################################################################*/\r
-\r
-/* ---- Timer 0 -------------------------------------------- */\r
-#define T0_IR (*(REG32 (0xE0004000)))\r
-#define T0_TCR (*(REG32 (0xE0004004)))\r
-#define T0_TC (*(REG32 (0xE0004008)))\r
-#define T0_PR (*(REG32 (0xE000400C)))\r
-#define T0_PC (*(REG32 (0xE0004010)))\r
-#define T0_MCR (*(REG32 (0xE0004014)))\r
-#define T0_MR0 (*(REG32 (0xE0004018)))\r
-#define T0_MR1 (*(REG32 (0xE000401C)))\r
-#define T0_MR2 (*(REG32 (0xE0004020)))\r
-#define T0_MR3 (*(REG32 (0xE0004024)))\r
-#define T0_CCR (*(REG32 (0xE0004028)))\r
-#define T0_CR0 (*(REG32 (0xE000402C)))\r
-#define T0_CR1 (*(REG32 (0xE0004030)))\r
-#define T0_CR2 (*(REG32 (0xE0004034)))\r
-#define T0_CR3 (*(REG32 (0xE0004038)))\r
-#define T0_EMR (*(REG32 (0xE000403C)))\r
-\r
-/* ---- Timer 1 -------------------------------------------- */\r
-#define T1_IR (*(REG32 (0xE0008000)))\r
-#define T1_TCR (*(REG32 (0xE0008004)))\r
-#define T1_TC (*(REG32 (0xE0008008)))\r
-#define T1_PR (*(REG32 (0xE000800C)))\r
-#define T1_PC (*(REG32 (0xE0008010)))\r
-#define T1_MCR (*(REG32 (0xE0008014)))\r
-#define T1_MR0 (*(REG32 (0xE0008018)))\r
-#define T1_MR1 (*(REG32 (0xE000801C)))\r
-#define T1_MR2 (*(REG32 (0xE0008020)))\r
-#define T1_MR3 (*(REG32 (0xE0008024)))\r
-#define T1_CCR (*(REG32 (0xE0008028)))\r
-#define T1_CR0 (*(REG32 (0xE000802C)))\r
-#define T1_CR1 (*(REG32 (0xE0008030)))\r
-#define T1_CR2 (*(REG32 (0xE0008034)))\r
-#define T1_CR3 (*(REG32 (0xE0008038)))\r
-#define T1_EMR (*(REG32 (0xE000803C)))\r
-\r
-\r
-/*##############################################################################\r
-## PWM\r
-##############################################################################*/\r
-\r
-#define PWM_IR (*(REG32 (0xE0014000)))\r
-#define PWM_TCR (*(REG32 (0xE0014004)))\r
-#define PWM_TC (*(REG32 (0xE0014008)))\r
-#define PWM_PR (*(REG32 (0xE001400C)))\r
-#define PWM_PC (*(REG32 (0xE0014010)))\r
-#define PWM_MCR (*(REG32 (0xE0014014)))\r
-#define PWM_MR0 (*(REG32 (0xE0014018)))\r
-#define PWM_MR1 (*(REG32 (0xE001401C)))\r
-#define PWM_MR2 (*(REG32 (0xE0014020)))\r
-#define PWM_MR3 (*(REG32 (0xE0014024)))\r
-#define PWM_MR4 (*(REG32 (0xE0014040)))\r
-#define PWM_MR5 (*(REG32 (0xE0014044)))\r
-#define PWM_MR6 (*(REG32 (0xE0014048)))\r
-#define PWM_EMR (*(REG32 (0xE001403C)))\r
-#define PWM_PCR (*(REG32 (0xE001404C)))\r
-#define PWM_LER (*(REG32 (0xE0014050)))\r
-#define PWM_CCR (*(REG32 (0xE0014028)))\r
-#define PWM_CR0 (*(REG32 (0xE001402C)))\r
-#define PWM_CR1 (*(REG32 (0xE0014030)))\r
-#define PWM_CR2 (*(REG32 (0xE0014034)))\r
-#define PWM_CR3 (*(REG32 (0xE0014038)))\r
-\r
-/*##############################################################################\r
-## RTC\r
-##############################################################################*/\r
-\r
-/* ---- RTC: Miscellaneous Register Group ------------------ */\r
-#define RTC_ILR (*(REG32 (0xE0024000)))\r
-#define RTC_CTC (*(REG32 (0xE0024004)))\r
-#define RTC_CCR (*(REG32 (0xE0024008))) \r
-#define RTC_CIIR (*(REG32 (0xE002400C)))\r
-#define RTC_AMR (*(REG32 (0xE0024010)))\r
-#define RTC_CTIME0 (*(REG32 (0xE0024014)))\r
-#define RTC_CTIME1 (*(REG32 (0xE0024018)))\r
-#define RTC_CTIME2 (*(REG32 (0xE002401C)))\r
-\r
-/* ---- RTC: Timer Control Group --------------------------- */\r
-#define RTC_SEC (*(REG32 (0xE0024020)))\r
-#define RTC_MIN (*(REG32 (0xE0024024)))\r
-#define RTC_HOUR (*(REG32 (0xE0024028)))\r
-#define RTC_DOM (*(REG32 (0xE002402C)))\r
-#define RTC_DOW (*(REG32 (0xE0024030)))\r
-#define RTC_DOY (*(REG32 (0xE0024034)))\r
-#define RTC_MONTH (*(REG32 (0xE0024038)))\r
-#define RTC_YEAR (*(REG32 (0xE002403C)))\r
-\r
-/* ---- RTC: Alarm Control Group --------------------------- */\r
-#define RTC_ALSEC (*(REG32 (0xE0024060)))\r
-#define RTC_ALMIN (*(REG32 (0xE0024064)))\r
-#define RTC_ALHOUR (*(REG32 (0xE0024068)))\r
-#define RTC_ALDOM (*(REG32 (0xE002406C)))\r
-#define RTC_ALDOW (*(REG32 (0xE0024070)))\r
-#define RTC_ALDOY (*(REG32 (0xE0024074)))\r
-#define RTC_ALMON (*(REG32 (0xE0024078)))\r
-#define RTC_ALYEAR (*(REG32 (0xE002407C)))\r
-\r
-/* ---- RTC: Reference Clock Divider Group ----------------- */\r
-#define RTC_PREINT (*(REG32 (0xE0024080)))\r
-#define RTC_PREFRAC (*(REG32 (0xE0024084)))\r
-\r
-\r
-/*##############################################################################\r
-## WD - Watchdog\r
-##############################################################################*/\r
-\r
-#define WD_WDMOD (*(REG32 (0xE0000000)))\r
-#define WD_WDTC (*(REG32 (0xE0000004)))\r
-#define WD_WDFEED (*(REG32 (0xE0000008)))\r
-#define WD_WDTV (*(REG32 (0xE000000C)))\r
-\r
-\r
-/*##############################################################################\r
-## System Control Block\r
-##############################################################################*/\r
-\r
-#define SCB_EXTINT (*(REG32 (0xE01FC140)))\r
-#define SCB_EXTWAKE (*(REG32 (0xE01FC144)))\r
-#define SCB_MEMMAP (*(REG32 (0xE01FC040)))\r
-#define SCB_PLLCON (*(REG32 (0xE01FC080)))\r
-#define SCB_PLLCFG (*(REG32 (0xE01FC084)))\r
-#define SCB_PLLSTAT (*(REG32 (0xE01FC088)))\r
-#define SCB_PLLFEED (*(REG32 (0xE01FC08C)))\r
-#define SCB_PCON (*(REG32 (0xE01FC0C0)))\r
-#define SCB_PCONP (*(REG32 (0xE01FC0C4)))\r
-#define SCB_VPBDIV (*(REG32 (0xE01FC100)))\r
-\r
-/*##############################################################################\r
-## Memory Accelerator Module (MAM)\r
-##############################################################################*/\r
-\r
-#define MAM_TIM (*(REG32 (0xE01FC004)))\r
-#define MAM_CR (*(REG32 (0xE01FC000)))\r
-\r
-#endif /* lpc210x_h */\r
-\r
+++ /dev/null
-/*\r
- FreeRTOS V9.0.0rc2 - Copyright (C) 2016 Real Time Engineers Ltd.\r
- All rights reserved\r
-\r
- VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
-\r
- This file is part of the FreeRTOS distribution.\r
-\r
- FreeRTOS is free software; you can redistribute it and/or modify it under\r
- the terms of the GNU General Public License (version 2) as published by the\r
- Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception.\r
-\r
- ***************************************************************************\r
- >>! NOTE: The modification to the GPL is included to allow you to !<<\r
- >>! distribute a combined work that includes FreeRTOS without being !<<\r
- >>! obliged to provide the source code for proprietary components !<<\r
- >>! outside of the FreeRTOS kernel. !<<\r
- ***************************************************************************\r
-\r
- FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
- WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
- FOR A PARTICULAR PURPOSE. Full license text is available on the following\r
- link: http://www.freertos.org/a00114.html\r
-\r
- ***************************************************************************\r
- * *\r
- * FreeRTOS provides completely free yet professionally developed, *\r
- * robust, strictly quality controlled, supported, and cross *\r
- * platform software that is more than just the market leader, it *\r
- * is the industry's de facto standard. *\r
- * *\r
- * Help yourself get started quickly while simultaneously helping *\r
- * to support the FreeRTOS project by purchasing a FreeRTOS *\r
- * tutorial book, reference manual, or both: *\r
- * http://www.FreeRTOS.org/Documentation *\r
- * *\r
- ***************************************************************************\r
-\r
- http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading\r
- the FAQ page "My application does not run, what could be wrong?". Have you\r
- defined configASSERT()?\r
-\r
- http://www.FreeRTOS.org/support - In return for receiving this top quality\r
- embedded software for free we request you assist our global community by\r
- participating in the support forum.\r
-\r
- http://www.FreeRTOS.org/training - Investing in training allows your team to\r
- be as productive as possible as early as possible. Now you can receive\r
- FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers\r
- Ltd, and the world's leading authority on the world's leading RTOS.\r
-\r
- http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
- including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
- compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
-\r
- http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate.\r
- Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS.\r
-\r
- http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High\r
- Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS\r
- licenses offer ticketed support, indemnification and commercial middleware.\r
-\r
- http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
- engineered and independently SIL3 certified version for use in safety and\r
- mission critical applications that require provable dependability.\r
-\r
- 1 tab == 4 spaces!\r
-*/\r
-\r
-/* \r
- NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.\r
- The processor MUST be in supervisor mode when vTaskStartScheduler is \r
- called. The demo applications included in the FreeRTOS.org download switch\r
- to supervisor mode prior to main being called. If you are not using one of\r
- these demo application projects then ensure Supervisor mode is used.\r
-*/\r
-\r
-\r
-/*\r
- * Creates all the application tasks, then starts the scheduler. \r
- * \r
- * A task is created called "uIP". This executes the uIP stack and small\r
- * WEB server sample. All the other tasks are from the set of standard\r
- * demo tasks. The WEB documentation provides more details of the standard\r
- * demo application tasks.\r
- *\r
- * Main.c also creates a task called "Check". This only executes every three \r
- * seconds but has the highest priority so is guaranteed to get processor time. \r
- * Its main function is to check that all the other tasks are still operational.\r
- * Each standard demo task maintains a unique count that is incremented each \r
- * time the task successfully completes its function. Should any error occur \r
- * within such a task the count is permanently halted. The check task inspects\r
- * the count of each task to ensure it has changed since the last time the \r
- * check task executed. If all the count variables have changed all the tasks \r
- * are still executing error free, and the check task toggles the yellow LED. \r
- * Should any task contain an error at any time the LED toggle rate will change \r
- * from 3 seconds to 500ms.\r
- *\r
- */\r
-\r
-\r
-/* Standard includes. */\r
-#include <stdlib.h>\r
-#include <string.h>\r
-\r
-/* Scheduler includes. */\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-/* Demo application includes. */\r
-#include "PollQ.h"\r
-#include "dynamic.h"\r
-#include "semtest.h"\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/* Constants to setup the PLL. */\r
-#define mainPLL_MUL_4 ( ( unsigned char ) 0x0003 )\r
-#define mainPLL_DIV_1 ( ( unsigned char ) 0x0000 )\r
-#define mainPLL_ENABLE ( ( unsigned char ) 0x0001 )\r
-#define mainPLL_CONNECT ( ( unsigned char ) 0x0003 )\r
-#define mainPLL_FEED_BYTE1 ( ( unsigned char ) 0xaa )\r
-#define mainPLL_FEED_BYTE2 ( ( unsigned char ) 0x55 )\r
-#define mainPLL_LOCK ( ( unsigned long ) 0x0400 )\r
-\r
-/* Constants to setup the MAM. */\r
-#define mainMAM_TIM_3 ( ( unsigned char ) 0x03 )\r
-#define mainMAM_MODE_FULL ( ( unsigned char ) 0x02 )\r
-\r
-/* Constants to setup the peripheral bus. */\r
-#define mainBUS_CLK_FULL ( ( unsigned char ) 0x01 )\r
-\r
-/* Priorities/stacks for the demo application tasks. */\r
-#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 )\r
-#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 4 )\r
-#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 )\r
-#define mainUIP_PRIORITY ( tskIDLE_PRIORITY + 3 )\r
-#define mainUIP_TASK_STACK_SIZE ( 150 )\r
-\r
-/* The rate at which the on board LED will toggle when there is/is not an \r
-error. */\r
-#define mainNO_ERROR_FLASH_PERIOD ( ( TickType_t ) 3000 / portTICK_PERIOD_MS )\r
-#define mainERROR_FLASH_PERIOD ( ( TickType_t ) 500 / portTICK_PERIOD_MS )\r
-#define mainON_BOARD_LED_BIT ( ( unsigned long ) 0x80 )\r
-#define mainYELLOW_LED ( 1 << 11 )\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * This is the uIP task which is defined within the uip.c file. This has not\r
- * been placed into a header file in order to minimise the changes to the uip\r
- * code.\r
- */\r
-extern void ( vuIP_TASK ) ( void *pvParameters );\r
-\r
-/*\r
- * The Yellow LED is under the control of the Check task. All the other LED's\r
- * are under the control of the uIP task. \r
- */\r
-void prvToggleOnBoardLED( void );\r
-\r
-/*\r
- * Checks that all the demo application tasks are still executing without error\r
- * - as described at the top of the file.\r
- */\r
-static long prvCheckOtherTasksAreStillRunning( void );\r
-\r
-/*\r
- * The task that executes at the highest priority and calls \r
- * prvCheckOtherTasksAreStillRunning(). See the description at the top\r
- * of the file.\r
- */\r
-static void vErrorChecks( void *pvParameters );\r
-\r
-/*\r
- * Configure the processor for use with the Olimex demo board. This includes\r
- * setup for the I/O, system clock, and access timings.\r
- */\r
-static void prvSetupHardware( void );\r
-\r
-/*-----------------------------------------------------------*/\r
-\r
-/*\r
- * Starts all the other tasks, then starts the scheduler. \r
- */\r
-int main( void )\r
-{\r
- /* Configure the processor. */\r
- prvSetupHardware();\r
-\r
- /* Start the task that handles the TCP/IP functionality. */\r
- xTaskCreate( vuIP_TASK, "uIP", mainUIP_TASK_STACK_SIZE, NULL, mainUIP_PRIORITY, NULL );\r
- \r
- /* Start the demo/test application tasks. These are created in addition \r
- to the TCP/IP task for demonstration and test purposes. */\r
- vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY );\r
- vStartDynamicPriorityTasks();\r
- vStartSemaphoreTasks( mainSEM_TEST_PRIORITY );\r
-\r
- /* Start the check task - which is defined in this file. */ \r
- xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL );\r
-\r
- /* Now all the tasks have been started - start the scheduler.\r
-\r
- NOTE : Tasks run in system mode and the scheduler runs in Supervisor mode.\r
- The processor MUST be in supervisor mode when vTaskStartScheduler is \r
- called. The demo applications included in the FreeRTOS.org download switch\r
- to supervisor mode prior to main being called. If you are not using one of\r
- these demo application projects then ensure Supervisor mode is used here. */\r
- vTaskStartScheduler();\r
-\r
- /* Should never reach here! */\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void vErrorChecks( void *pvParameters )\r
-{\r
-TickType_t xDelayPeriod = mainNO_ERROR_FLASH_PERIOD;\r
-\r
- /* Cycle for ever, delaying then checking all the other tasks are still\r
- operating without error. If an error is detected then the delay period\r
- is decreased from mainNO_ERROR_FLASH_PERIOD to mainERROR_FLASH_PERIOD so\r
- the on board LED flash rate will increase. */\r
- for( ;; )\r
- {\r
- /* Delay until it is time to execute again. */\r
- vTaskDelay( xDelayPeriod );\r
- \r
- /* Check all the standard demo application tasks are executing without \r
- error. */\r
- if( prvCheckOtherTasksAreStillRunning() != pdPASS )\r
- {\r
- /* An error has been detected in one of the tasks - flash faster. */\r
- xDelayPeriod = mainERROR_FLASH_PERIOD;\r
- }\r
-\r
- prvToggleOnBoardLED();\r
- }\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static void prvSetupHardware( void )\r
-{\r
- #ifdef RUN_FROM_RAM\r
- /* Remap the interrupt vectors to RAM if we are are running from RAM. */\r
- SCB_MEMMAP = 2;\r
- #endif\r
-\r
- /* Setup the PLL to multiply the XTAL input by 4. */\r
- SCB_PLLCFG = ( mainPLL_MUL_4 | mainPLL_DIV_1 );\r
-\r
- /* Activate the PLL by turning it on then feeding the correct sequence of\r
- bytes. */\r
- SCB_PLLCON = mainPLL_ENABLE;\r
- SCB_PLLFEED = mainPLL_FEED_BYTE1;\r
- SCB_PLLFEED = mainPLL_FEED_BYTE2;\r
-\r
- /* Wait for the PLL to lock... */\r
- while( !( SCB_PLLSTAT & mainPLL_LOCK ) );\r
-\r
- /* ...before connecting it using the feed sequence again. */\r
- SCB_PLLCON = mainPLL_CONNECT;\r
- SCB_PLLFEED = mainPLL_FEED_BYTE1;\r
- SCB_PLLFEED = mainPLL_FEED_BYTE2;\r
-\r
- /* Setup and turn on the MAM. Three cycle access is used due to the fast\r
- PLL used. It is possible faster overall performance could be obtained by\r
- tuning the MAM and PLL settings. */\r
- MAM_TIM = mainMAM_TIM_3;\r
- MAM_CR = mainMAM_MODE_FULL;\r
-\r
- /* Setup the peripheral bus to be the same as the PLL output. */\r
- SCB_VPBDIV = mainBUS_CLK_FULL;\r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-void prvToggleOnBoardLED( void )\r
-{\r
-unsigned long ulState;\r
-\r
- ulState = GPIO0_IOPIN;\r
- if( ulState & mainYELLOW_LED )\r
- {\r
- GPIO_IOCLR = mainYELLOW_LED;\r
- }\r
- else\r
- {\r
- GPIO_IOSET = mainYELLOW_LED;\r
- } \r
-}\r
-/*-----------------------------------------------------------*/\r
-\r
-static long prvCheckOtherTasksAreStillRunning( void )\r
-{\r
-long lReturn = ( long ) pdPASS;\r
-\r
- /* Check all the demo tasks (other than the flash tasks) to ensure\r
- that they are all still running, and that none of them have detected\r
- an error. */\r
-\r
- if( xArePollingQueuesStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xAreDynamicPriorityTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- if( xAreSemaphoreTasksStillRunning() != pdTRUE )\r
- {\r
- lReturn = ( long ) pdFAIL;\r
- }\r
-\r
- return lReturn;\r
-}\r
-\r
-\r
-\r
+++ /dev/null
-<!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>
+++ /dev/null
-<!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>
+++ /dev/null
-# Copyright (c) 2001, Adam Dunkels.\r
-# All rights reserved. \r
-#\r
-# Redistribution and use in source and binary forms, with or without \r
-# modification, are permitted provided that the following conditions \r
-# are met: \r
-# 1. Redistributions of source code must retain the above copyright \r
-# notice, this list of conditions and the following disclaimer. \r
-# 2. Redistributions in binary form must reproduce the above copyright \r
-# notice, this list of conditions and the following disclaimer in the \r
-# documentation and/or other materials provided with the distribution. \r
-# 3. All advertising materials mentioning features or use of this software\r
-# must display the following acknowledgement:\r
-# This product includes software developed by Adam Dunkels.\r
-# 4. The name of the author may not be used to endorse or promote\r
-# products derived from this software without specific prior\r
-# written permission. \r
-#\r
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
-# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
-# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
-# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
-# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
-# GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
-# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
-# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
-# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
-#\r
-# This file is part of the uIP TCP/IP stack.\r
-#\r
-# $Id: Makefile,v 1.8.2.2 2003/10/04 22:54:17 adam Exp $\r
-#\r
-\r
-CC=gcc\r
-CFLAGS=-Wall -g -I../uip -I. -I../apps/httpd -I../apps/resolv -I../apps/webclient -I../apps/smtp -I../apps/telnet -fpack-struct\r
-\r
-%.o:\r
- $(CC) $(CFLAGS) -c $(<:.o=.c)\r
-\r
-\r
-uip: uip.o uip_arch.o tapdev.o httpd.o main.o fs.o uip_arp.o cgi.o \r
-\r
-tapdev.o: tapdev.c uipopt.h\r
-main.o: main.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h \\r
- tapdev.h\r
-uip_arch.o: uip_arch.c ../uip/uip_arch.h ../uip/uip.h uipopt.h \\r
- ../apps/httpd/httpd.h \r
-uip.o: ../uip/uip.c ../uip/uip.h uipopt.h ../apps/httpd/httpd.h \r
-\r
-uip_arp.o: ../uip/uip_arp.c ../uip/uip_arp.h ../uip/uip.h uipopt.h \\r
- ../apps/httpd/httpd.h\r
- $(CC) -o uip_arp.o $(CFLAGS) -fpack-struct -c ../uip/uip_arp.c\r
-\r
-\r
-cgi.o: ../apps/httpd/cgi.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \\r
- ../apps/httpd/cgi.h ../apps/httpd/httpd.h ../apps/httpd/fs.h\r
-fs.o: ../apps/httpd/fs.c ../uip/uip.h uipopt.h ../apps/smtp/smtp.h \\r
- ../apps/httpd/httpd.h ../apps/httpd/fs.h ../apps/httpd/fsdata.h \\r
- ../apps/httpd/fsdata.c\r
-fsdata.o: ../apps/httpd/fsdata.c\r
-httpd.o: ../apps/httpd/httpd.c ../uip/uip.h uipopt.h \\r
- ../apps/smtp/smtp.h ../apps/httpd/httpd.h ../apps/httpd/fs.h \\r
- ../apps/httpd/fsdata.h ../apps/httpd/cgi.h\r
-\r
-clean:\r
- rm -f *.o *~ *core uip\r
-\r
-\r
-\r
-\r
-\r
-\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server script language C functions file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * This file contains functions that are called by the web server\r
- * scripts. The functions takes one argument, and the return value is\r
- * interpreted as follows. A zero means that the function did not\r
- * complete and should be invoked for the next packet as well. A\r
- * non-zero value indicates that the function has completed and that\r
- * the web server should move along to the next script line.\r
- *\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: cgi.c,v 1.23.2.4 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-\r
-#include "uip.h"\r
-#include "cgi.h"\r
-#include "httpd.h"\r
-#include "fs.h"\r
-\r
-#include <stdio.h>\r
-#include <string.h>\r
-\r
-static u8_t print_stats(u8_t next);\r
-static u8_t file_stats(u8_t next);\r
-static u8_t tcp_stats(u8_t next);\r
-\r
-cgifunction cgitab[] = {\r
- print_stats, /* CGI function "a" */\r
- file_stats, /* CGI function "b" */\r
- tcp_stats /* CGI function "c" */\r
-};\r
-\r
-static const char closed[] = /* "CLOSED",*/\r
-{0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0};\r
-static const char syn_rcvd[] = /* "SYN-RCVD",*/\r
-{0x53, 0x59, 0x4e, 0x2d, 0x52, 0x43, 0x56, \r
- 0x44, 0};\r
-static const char syn_sent[] = /* "SYN-SENT",*/\r
-{0x53, 0x59, 0x4e, 0x2d, 0x53, 0x45, 0x4e, \r
- 0x54, 0};\r
-static const char established[] = /* "ESTABLISHED",*/\r
-{0x45, 0x53, 0x54, 0x41, 0x42, 0x4c, 0x49, 0x53, 0x48, \r
- 0x45, 0x44, 0};\r
-static const char fin_wait_1[] = /* "FIN-WAIT-1",*/\r
-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, \r
- 0x54, 0x2d, 0x31, 0};\r
-static const char fin_wait_2[] = /* "FIN-WAIT-2",*/\r
-{0x46, 0x49, 0x4e, 0x2d, 0x57, 0x41, 0x49, \r
- 0x54, 0x2d, 0x32, 0};\r
-static const char closing[] = /* "CLOSING",*/\r
-{0x43, 0x4c, 0x4f, 0x53, 0x49, \r
- 0x4e, 0x47, 0};\r
-static const char time_wait[] = /* "TIME-WAIT,"*/\r
-{0x54, 0x49, 0x4d, 0x45, 0x2d, 0x57, 0x41, \r
- 0x49, 0x54, 0};\r
-static const char last_ack[] = /* "LAST-ACK"*/\r
-{0x4c, 0x41, 0x53, 0x54, 0x2d, 0x41, 0x43, \r
- 0x4b, 0};\r
-\r
-static const char *states[] = {\r
- closed,\r
- syn_rcvd,\r
- syn_sent,\r
- established,\r
- fin_wait_1,\r
- fin_wait_2,\r
- closing,\r
- time_wait,\r
- last_ack};\r
- \r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* print_stats:\r
- *\r
- * Prints out a part of the uIP statistics. The statistics data is\r
- * written into the uip_appdata buffer. It overwrites any incoming\r
- * packet.\r
- */\r
-static u8_t\r
-print_stats(u8_t next)\r
-{\r
-#if UIP_STATISTICS\r
- u16_t i, j;\r
- u8_t *buf;\r
- u16_t *databytes;\r
- \r
- if(next) {\r
- /* If our last data has been acknowledged, we move on the next\r
- chunk of statistics. */\r
- hs->count = hs->count + 4;\r
- if(hs->count >= sizeof(struct uip_stats)/sizeof(u16_t)) {\r
- /* We have printed out all statistics, so we return 1 to\r
- indicate that we are done. */\r
- return 1;\r
- }\r
- }\r
-\r
- /* Write part of the statistics into the uip_appdata buffer. */\r
- databytes = (u16_t *)&uip_stat + hs->count;\r
- buf = (u8_t *)uip_appdata;\r
-\r
- j = 4 + 1;\r
- i = hs->count;\r
- while (i < sizeof(struct uip_stats)/sizeof(u16_t) && --j > 0) {\r
- sprintf((char *)buf, "%5u\r\n", *databytes);\r
- ++databytes;\r
- buf += 6;\r
- ++i;\r
- }\r
-\r
- /* Send the data. */\r
- uip_send(uip_appdata, buf - uip_appdata);\r
- \r
- return 0;\r
-#else\r
- return 1;\r
-#endif /* UIP_STATISTICS */\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static u8_t\r
-file_stats(u8_t next)\r
-{\r
- /* We use sprintf() to print the number of file accesses to a\r
- particular file (given as an argument to the function in the\r
- script). We then use uip_send() to actually send the data. */\r
- if(next) {\r
- return 1;\r
- }\r
- uip_send(uip_appdata, sprintf((char *)uip_appdata, "%5u", fs_count(&hs->script[4]))); \r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static u8_t\r
-tcp_stats(u8_t next)\r
-{\r
- struct uip_conn *conn; \r
-\r
- if(next) {\r
- /* If the previously sent data has been acknowledged, we move\r
- forward one connection. */\r
- if(++hs->count == UIP_CONNS) {\r
- /* If all connections has been printed out, we are done and\r
- return 1. */\r
- return 1;\r
- }\r
- }\r
- \r
- conn = &uip_conns[hs->count];\r
- if((conn->tcpstateflags & TS_MASK) == CLOSED) {\r
- uip_send(uip_appdata, sprintf((char *)uip_appdata,\r
- "<tr align=\"center\"><td>-</td><td>-</td><td>%u</td><td>%u</td><td>%c %c</td></tr>\r\n",\r
- conn->nrtx,\r
- conn->timer,\r
- (uip_outstanding(conn))? '*':' ',\r
- (uip_stopped(conn))? '!':' '));\r
- } else {\r
- uip_send(uip_appdata, sprintf((char *)uip_appdata,\r
- "<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",\r
- htons(conn->ripaddr[0]) >> 8,\r
- htons(conn->ripaddr[0]) & 0xff,\r
- htons(conn->ripaddr[1]) >> 8,\r
- htons(conn->ripaddr[1]) & 0xff,\r
- htons(conn->rport),\r
- states[conn->tcpstateflags & TS_MASK],\r
- conn->nrtx,\r
- conn->timer,\r
- (uip_outstanding(conn))? '*':' ',\r
- (uip_stopped(conn))? '!':' '));\r
- }\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP script language header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: cgi.h,v 1.3.2.4 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __CGI_H__\r
-#define __CGI_H__\r
-\r
-typedef u8_t (* cgifunction)(u8_t next);\r
-\r
-/**\r
- * A table containing pointers to C functions that can be called from\r
- * a web server script.\r
- */\r
-extern cgifunction cgitab[];\r
-\r
-#endif /* __CGI_H__ */\r
+++ /dev/null
-// Rowley C Compiler, runtime support.\r
-//\r
-// Copyright (c) 2001, 2002, 2003 Rowley Associates Limited.\r
-//\r
-// This file may be distributed under the terms of the License Agreement\r
-// provided with this software.\r
-//\r
-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE\r
-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-\r
-; Create sections\r
- .data\r
- .bss\r
-\r
-; Go to code section.\r
- .code\r
-\r
-; Executed upon reset\r
-__reset proc\r
-\r
-; Turn off watchdog. You can enable it in main() if required.\r
- mov.w #0x5a80, &0x120\r
-\r
-; Set up stack.\r
- mov.w #RAM_Start_Address+RAM_Size, sp\r
-\r
-; Copy from initialised data section to data section.\r
- mov.w #SFB(IDATA0), r15\r
- mov.w #data_init_begin, r14\r
- mov.w #data_init_end-data_init_begin, r13\r
- call #_memcpy\r
-\r
-; Zero the bss. Ensure the stack is not allocated in the bss!\r
- mov.w #SFB(UDATA0), r15\r
- mov.w #0, r14\r
- mov.w #SFE(UDATA0)-SFB(UDATA0), r13\r
- call #_memset\r
-\r
-; Call user entry point void main(void).\r
- call #_main\r
-\r
-; If main() returns, kick off again.\r
- jmp __reset\r
- endproc\r
-\r
-; Heap data structures; removed by the linker if the heap isn't used.\r
- .break \r
- .data\r
- align WORD\r
-___heap_start__::\r
- DW 0\r
- DW heap_size\r
- DS heap_size-4 \r
-\r
-; Reset vector\r
- .vectors\r
- .keep\r
- org 0x1e\r
- dw __reset\r
-\r
-; Initialise the IDATA0 section by duplicating the contents into the\r
-; CONST section and copying them on startup.\r
- .const\r
-data_init_begin:\r
- .init "IDATA0"\r
-data_init_end:\r
+++ /dev/null
-// cs8900a.c: device driver for the CS8900a chip in 8-bit mode.\r
-\r
-#include <LPC210x.h>\r
-\r
-#include "cs8900a.h"\r
-#include "uip.h"\r
-#include "uip_arp.h"\r
-\r
-#define IOR (1<<12) // CS8900's ISA-bus interface pins\r
-#define IOW (1<<13)\r
-\r
-// definitions for Crystal CS8900 ethernet-controller\r
-// based on linux-header by Russel Nelson\r
-\r
-#define PP_ChipID 0x0000 // offset 0h -> Corp-ID\r
-\r
- // offset 2h -> Model/Product Number\r
-#define LED_RED (1<<8)\r
-#define LED_GREEN (1<<10)\r
-#define LED_YELLOW (1<<11)\r
-\r
-#define PP_ISAIOB 0x0020 // IO base address\r
-#define PP_CS8900_ISAINT 0x0022 // ISA interrupt select\r
-#define PP_CS8900_ISADMA 0x0024 // ISA Rec DMA channel\r
-#define PP_ISASOF 0x0026 // ISA DMA offset\r
-#define PP_DmaFrameCnt 0x0028 // ISA DMA Frame count\r
-#define PP_DmaByteCnt 0x002A // ISA DMA Byte count\r
-#define PP_CS8900_ISAMemB 0x002C // Memory base\r
-#define PP_ISABootBase 0x0030 // Boot Prom base\r
-#define PP_ISABootMask 0x0034 // Boot Prom Mask\r
-\r
-// EEPROM data and command registers\r
-#define PP_EECMD 0x0040 // NVR Interface Command register\r
-#define PP_EEData 0x0042 // NVR Interface Data Register\r
-\r
-// Configuration and control registers\r
-#define PP_RxCFG 0x0102 // Rx Bus config\r
-#define PP_RxCTL 0x0104 // Receive Control Register\r
-#define PP_TxCFG 0x0106 // Transmit Config Register\r
-#define PP_TxCMD 0x0108 // Transmit Command Register\r
-#define PP_BufCFG 0x010A // Bus configuration Register\r
-#define PP_LineCTL 0x0112 // Line Config Register\r
-#define PP_SelfCTL 0x0114 // Self Command Register\r
-#define PP_BusCTL 0x0116 // ISA bus control Register\r
-#define PP_TestCTL 0x0118 // Test Register\r
-\r
-// Status and Event Registers\r
-#define PP_ISQ 0x0120 // Interrupt Status\r
-#define PP_RxEvent 0x0124 // Rx Event Register\r
-#define PP_TxEvent 0x0128 // Tx Event Register\r
-#define PP_BufEvent 0x012C // Bus Event Register\r
-#define PP_RxMiss 0x0130 // Receive Miss Count\r
-#define PP_TxCol 0x0132 // Transmit Collision Count\r
-#define PP_LineST 0x0134 // Line State Register\r
-#define PP_SelfST 0x0136 // Self State register\r
-#define PP_BusST 0x0138 // Bus Status\r
-#define PP_TDR 0x013C // Time Domain Reflectometry\r
-\r
-// Initiate Transmit Registers\r
-#define PP_TxCommand 0x0144 // Tx Command\r
-#define PP_TxLength 0x0146 // Tx Length\r
-\r
-// Adress Filter Registers\r
-#define PP_LAF 0x0150 // Hash Table\r
-#define PP_IA 0x0158 // Physical Address Register\r
-\r
-// Frame Location\r
-#define PP_RxStatus 0x0400 // Receive start of frame\r
-#define PP_RxLength 0x0402 // Receive Length of frame\r
-#define PP_RxFrame 0x0404 // Receive frame pointer\r
-#define PP_TxFrame 0x0A00 // Transmit frame pointer\r
-\r
-// Primary I/O Base Address. If no I/O base is supplied by the user, then this\r
-// can be used as the default I/O base to access the PacketPage Area.\r
-#define DEFAULTIOBASE 0x0300\r
-\r
-// PP_RxCFG - Receive Configuration and Interrupt Mask bit definition - Read/write\r
-#define SKIP_1 0x0040\r
-#define RX_STREAM_ENBL 0x0080\r
-#define RX_OK_ENBL 0x0100\r
-#define RX_DMA_ONLY 0x0200\r
-#define AUTO_RX_DMA 0x0400\r
-#define BUFFER_CRC 0x0800\r
-#define RX_CRC_ERROR_ENBL 0x1000\r
-#define RX_RUNT_ENBL 0x2000\r
-#define RX_EXTRA_DATA_ENBL 0x4000\r
-\r
-// PP_RxCTL - Receive Control bit definition - Read/write\r
-#define RX_IA_HASH_ACCEPT 0x0040\r
-#define RX_PROM_ACCEPT 0x0080\r
-#define RX_OK_ACCEPT 0x0100\r
-#define RX_MULTCAST_ACCEPT 0x0200\r
-#define RX_IA_ACCEPT 0x0400\r
-#define RX_BROADCAST_ACCEPT 0x0800\r
-#define RX_BAD_CRC_ACCEPT 0x1000\r
-#define RX_RUNT_ACCEPT 0x2000\r
-#define RX_EXTRA_DATA_ACCEPT 0x4000\r
-\r
-// PP_TxCFG - Transmit Configuration Interrupt Mask bit definition - Read/write\r
-#define TX_LOST_CRS_ENBL 0x0040\r
-#define TX_SQE_ERROR_ENBL 0x0080\r
-#define TX_OK_ENBL 0x0100\r
-#define TX_LATE_COL_ENBL 0x0200\r
-#define TX_JBR_ENBL 0x0400\r
-#define TX_ANY_COL_ENBL 0x0800\r
-#define TX_16_COL_ENBL 0x8000\r
-\r
-// PP_TxCMD - Transmit Command bit definition - Read-only and\r
-// PP_TxCommand - Write-only\r
-#define TX_START_5_BYTES 0x0000\r
-#define TX_START_381_BYTES 0x0040\r
-#define TX_START_1021_BYTES 0x0080\r
-#define TX_START_ALL_BYTES 0x00C0\r
-#define TX_FORCE 0x0100\r
-#define TX_ONE_COL 0x0200\r
-#define TX_NO_CRC 0x1000\r
-#define TX_RUNT 0x2000\r
-\r
-// PP_BufCFG - Buffer Configuration Interrupt Mask bit definition - Read/write\r
-#define GENERATE_SW_INTERRUPT 0x0040\r
-#define RX_DMA_ENBL 0x0080\r
-#define READY_FOR_TX_ENBL 0x0100\r
-#define TX_UNDERRUN_ENBL 0x0200\r
-#define RX_MISS_ENBL 0x0400\r
-#define RX_128_BYTE_ENBL 0x0800\r
-#define TX_COL_COUNT_OVRFLOW_ENBL 0x1000\r
-#define RX_MISS_COUNT_OVRFLOW_ENBL 0x2000\r
-#define RX_DEST_MATCH_ENBL 0x8000\r
-\r
-// PP_LineCTL - Line Control bit definition - Read/write\r
-#define SERIAL_RX_ON 0x0040\r
-#define SERIAL_TX_ON 0x0080\r
-#define AUI_ONLY 0x0100\r
-#define AUTO_AUI_10BASET 0x0200\r
-#define MODIFIED_BACKOFF 0x0800\r
-#define NO_AUTO_POLARITY 0x1000\r
-#define TWO_PART_DEFDIS 0x2000\r
-#define LOW_RX_SQUELCH 0x4000\r
-\r
-// PP_SelfCTL - Software Self Control bit definition - Read/write\r
-#define POWER_ON_RESET 0x0040\r
-#define SW_STOP 0x0100\r
-#define SLEEP_ON 0x0200\r
-#define AUTO_WAKEUP 0x0400\r
-#define HCB0_ENBL 0x1000\r
-#define HCB1_ENBL 0x2000\r
-#define HCB0 0x4000\r
-#define HCB1 0x8000\r
-\r
-// PP_BusCTL - ISA Bus Control bit definition - Read/write\r
-#define RESET_RX_DMA 0x0040\r
-#define MEMORY_ON 0x0400\r
-#define DMA_BURST_MODE 0x0800\r
-#define IO_CHANNEL_READY_ON 0x1000\r
-#define RX_DMA_SIZE_64K 0x2000\r
-#define ENABLE_IRQ 0x8000\r
-\r
-// PP_TestCTL - Test Control bit definition - Read/write\r
-#define LINK_OFF 0x0080\r
-#define ENDEC_LOOPBACK 0x0200\r
-#define AUI_LOOPBACK 0x0400\r
-#define BACKOFF_OFF 0x0800\r
-#define FDX_8900 0x4000\r
-\r
-// PP_RxEvent - Receive Event Bit definition - Read-only\r
-#define RX_IA_HASHED 0x0040\r
-#define RX_DRIBBLE 0x0080\r
-#define RX_OK 0x0100\r
-#define RX_HASHED 0x0200\r
-#define RX_IA 0x0400\r
-#define RX_BROADCAST 0x0800\r
-#define RX_CRC_ERROR 0x1000\r
-#define RX_RUNT 0x2000\r
-#define RX_EXTRA_DATA 0x4000\r
-#define HASH_INDEX_MASK 0xFC00 // Hash-Table Index Mask (6 Bit)\r
-\r
-// PP_TxEvent - Transmit Event Bit definition - Read-only\r
-#define TX_LOST_CRS 0x0040\r
-#define TX_SQE_ERROR 0x0080\r
-#define TX_OK 0x0100\r
-#define TX_LATE_COL 0x0200\r
-#define TX_JBR 0x0400\r
-#define TX_16_COL 0x8000\r
-#define TX_COL_COUNT_MASK 0x7800\r
-\r
-// PP_BufEvent - Buffer Event Bit definition - Read-only\r
-#define SW_INTERRUPT 0x0040\r
-#define RX_DMA 0x0080\r
-#define READY_FOR_TX 0x0100\r
-#define TX_UNDERRUN 0x0200\r
-#define RX_MISS 0x0400\r
-#define RX_128_BYTE 0x0800\r
-#define TX_COL_OVRFLW 0x1000\r
-#define RX_MISS_OVRFLW 0x2000\r
-#define RX_DEST_MATCH 0x8000\r
-\r
-// PP_LineST - Ethernet Line Status bit definition - Read-only\r
-#define LINK_OK 0x0080\r
-#define AUI_ON 0x0100\r
-#define TENBASET_ON 0x0200\r
-#define POLARITY_OK 0x1000\r
-#define CRS_OK 0x4000\r
-\r
-// PP_SelfST - Chip Software Status bit definition\r
-#define ACTIVE_33V 0x0040\r
-#define INIT_DONE 0x0080\r
-#define SI_BUSY 0x0100\r
-#define EEPROM_PRESENT 0x0200\r
-#define EEPROM_OK 0x0400\r
-#define EL_PRESENT 0x0800\r
-#define EE_SIZE_64 0x1000\r
-\r
-// PP_BusST - ISA Bus Status bit definition\r
-#define TX_BID_ERROR 0x0080\r
-#define READY_FOR_TX_NOW 0x0100\r
-\r
-// The following block defines the ISQ event types\r
-#define ISQ_RX_EVENT 0x0004\r
-#define ISQ_TX_EVENT 0x0008\r
-#define ISQ_BUFFER_EVENT 0x000C\r
-#define ISQ_RX_MISS_EVENT 0x0010\r
-#define ISQ_TX_COL_EVENT 0x0012\r
-\r
-#define ISQ_EVENT_MASK 0x003F // ISQ mask to find out type of event\r
-\r
-// Ports for I/O-Mode\r
-#define RX_FRAME_PORT 0x0000\r
-#define TX_FRAME_PORT 0x0000\r
-#define TX_CMD_PORT 0x0004\r
-#define TX_LEN_PORT 0x0006\r
-#define ISQ_PORT 0x0008\r
-#define ADD_PORT 0x000A\r
-#define DATA_PORT 0x000C\r
-\r
-#define AUTOINCREMENT 0x8000 // Bit mask to set Bit-15 for autoincrement\r
-\r
-// EEProm Commands\r
-#define EEPROM_WRITE_EN 0x00F0\r
-#define EEPROM_WRITE_DIS 0x0000\r
-#define EEPROM_WRITE_CMD 0x0100\r
-#define EEPROM_READ_CMD 0x0200\r
-\r
-// Receive Header of each packet in receive area of memory for DMA-Mode\r
-#define RBUF_EVENT_LOW 0x0000 // Low byte of RxEvent\r
-#define RBUF_EVENT_HIGH 0x0001 // High byte of RxEvent\r
-#define RBUF_LEN_LOW 0x0002 // Length of received data - low byte\r
-#define RBUF_LEN_HI 0x0003 // Length of received data - high byte\r
-#define RBUF_HEAD_LEN 0x0004 // Length of this header\r
-\r
-// typedefs\r
-typedef struct { // struct to store CS8900's\r
- unsigned int Addr; // init-sequence\r
- unsigned int Data;\r
-} TInitSeq;\r
-\r
-unsigned short ticks;\r
-\r
-static void skip_frame(void);\r
-\r
-const TInitSeq InitSeq[] =\r
-{\r
- PP_IA, UIP_ETHADDR0 + (UIP_ETHADDR1 << 8), // set our MAC as Individual Address\r
- PP_IA + 2, UIP_ETHADDR2 + (UIP_ETHADDR3 << 8),\r
- PP_IA + 4, UIP_ETHADDR4 + (UIP_ETHADDR5 << 8),\r
- PP_LineCTL, SERIAL_RX_ON | SERIAL_TX_ON, // configure the Physical Interface\r
- PP_RxCTL, RX_OK_ACCEPT | RX_IA_ACCEPT | RX_BROADCAST_ACCEPT\r
-};\r
-\r
-// Writes a word in little-endian byte order to a specified port-address\r
-void\r
-cs8900a_write(unsigned addr, unsigned int data)\r
-{\r
- GPIO_IODIR |= 0xff << 16; // Data port to output\r
-\r
- GPIO_IOCLR = 0xf << 4; // Put address on bus\r
- GPIO_IOSET = addr << 4;\r
-\r
- GPIO_IOCLR = 0xff << 16; // Write low order byte to data bus\r
- GPIO_IOSET = data << 16;\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOW; // Toggle IOW-signal\r
- __asm volatile ( "NOP" );\r
- GPIO_IOSET = IOW;\r
- __asm volatile ( "NOP" );\r
-\r
- GPIO_IOCLR = 0xf << 4;\r
- GPIO_IOSET = ((addr | 1) << 4); // And put next address on bus\r
-\r
- GPIO_IOCLR = 0xff << 16; // Write high order byte to data bus\r
- GPIO_IOSET = data >> 8 << 16;\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOW; // Toggle IOW-signal\r
- __asm volatile ( "NOP" );\r
- GPIO_IOSET = IOW;\r
- __asm volatile ( "NOP" );\r
-}\r
-\r
-// Reads a word in little-endian byte order from a specified port-address\r
-unsigned\r
-cs8900a_read(unsigned addr)\r
-{\r
- unsigned int value;\r
-\r
- GPIO_IODIR &= ~(0xff << 16); // Data port to input\r
-\r
- GPIO_IOCLR = 0xf << 4; // Put address on bus\r
- GPIO_IOSET = addr << 4;\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOR; // IOR-signal low\r
- __asm volatile ( "NOP" );\r
- value = (GPIO_IOPIN >> 16) & 0xff; // get low order byte from data bus\r
- GPIO_IOSET = IOR;\r
-\r
- GPIO_IOSET = 1 << 4; // IOR high and put next address on bus\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOR; // IOR-signal low\r
- __asm volatile ( "NOP" );\r
- value |= ((GPIO_IOPIN >> 8) & 0xff00); // get high order byte from data bus\r
- GPIO_IOSET = IOR; // IOR-signal low\r
-\r
- return value;\r
-}\r
-\r
-// Reads a word in little-endian byte order from a specified port-address\r
-unsigned\r
-cs8900a_read_addr_high_first(unsigned addr)\r
-{\r
- unsigned int value;\r
-\r
- GPIO_IODIR &= ~(0xff << 16); // Data port to input\r
-\r
- GPIO_IOCLR = 0xf << 4; // Put address on bus\r
- GPIO_IOSET = (addr+1) << 4;\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOR; // IOR-signal low\r
- __asm volatile ( "NOP" );\r
- value = ((GPIO_IOPIN >> 8) & 0xff00); // get high order byte from data bus\r
- GPIO_IOSET = IOR; // IOR-signal high\r
-\r
- GPIO_IOCLR = 1 << 4; // Put low address on bus\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOR; // IOR-signal low\r
- __asm volatile ( "NOP" );\r
- value |= (GPIO_IOPIN >> 16) & 0xff; // get low order byte from data bus\r
- GPIO_IOSET = IOR;\r
-\r
- return value;\r
-}\r
-\r
-void\r
-cs8900a_init(void)\r
-{\r
- int i;\r
-\r
- // Reset outputs, control lines high\r
- GPIO_IOSET = IOR | IOW;\r
-\r
- // No LEDs on.\r
- GPIO_IOSET = LED_RED | LED_YELLOW | LED_GREEN;\r
-\r
- // Port 3 as output (all pins but RS232)\r
- GPIO_IODIR = ~0U; // everything to output.\r
-\r
- // Reset outputs\r
- GPIO_IOCLR = 0xff << 16; // clear data outputs\r
-\r
- // Reset the CS8900A\r
- cs8900a_write(ADD_PORT, PP_SelfCTL);\r
- cs8900a_write(DATA_PORT, POWER_ON_RESET);\r
-\r
- // Wait until chip-reset is done\r
- cs8900a_write(ADD_PORT, PP_SelfST);\r
- while ((cs8900a_read(DATA_PORT) & INIT_DONE) == 0)\r
- ;\r
-\r
- // Configure the CS8900A\r
- for (i = 0; i < sizeof InitSeq / sizeof (TInitSeq); ++i)\r
- {\r
- cs8900a_write(ADD_PORT, InitSeq[i].Addr);\r
- cs8900a_write(DATA_PORT, InitSeq[i].Data);\r
- }\r
-}\r
-\r
-void\r
-cs8900a_send(void)\r
-{\r
- unsigned u;\r
-\r
- GPIO_IOCLR = LED_RED; // Light RED LED when frame starting\r
-\r
- // Transmit command\r
- cs8900a_write(TX_CMD_PORT, TX_START_ALL_BYTES);\r
- cs8900a_write(TX_LEN_PORT, uip_len);\r
-\r
- // Maximum number of retries\r
- u = 8;\r
- for (;;)\r
- {\r
- // Check for avaliable buffer space\r
- cs8900a_write(ADD_PORT, PP_BusST);\r
- if (cs8900a_read(DATA_PORT) & READY_FOR_TX_NOW)\r
- break;\r
- if (u -- == 0)\r
- {\r
- GPIO_IOSET = LED_RED; // Extinguish RED LED on end of frame\r
- return;\r
- }\r
-\r
- // No space avaliable, skip a received frame and try again\r
- skip_frame();\r
- }\r
-\r
- GPIO_IODIR |= 0xff << 16; // Data port to output\r
-\r
- // Send 40+14=54 bytes of header\r
- for (u = 0; u < 54; u += 2)\r
- {\r
- GPIO_IOCLR = 0xf << 4; // Put address on bus\r
- GPIO_IOSET = TX_FRAME_PORT << 4;\r
-\r
- GPIO_IOCLR = 0xff << 16; // Write low order byte to data bus\r
- GPIO_IOSET = uip_buf[u] << 16; // write low order byte to data bus\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOW; // Toggle IOW-signal\r
- __asm volatile ( "NOP" );\r
- GPIO_IOSET = IOW;\r
-\r
- GPIO_IOCLR = 0xf << 4; // Put address on bus\r
- GPIO_IOSET = (TX_FRAME_PORT | 1) << 4; // and put next address on bus\r
-\r
- GPIO_IOCLR = 0xff << 16; // Write low order byte to data bus\r
- GPIO_IOSET = uip_buf[u+1] << 16; // write low order byte to data bus\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOW; // Toggle IOW-signal\r
- __asm volatile ( "NOP" );\r
- GPIO_IOSET = IOW;\r
- }\r
-\r
- if (uip_len <= 54)\r
- {\r
- GPIO_IOSET = LED_RED; // Extinguish RED LED on end of frame\r
- return;\r
- }\r
-\r
- // Send remainder of packet, the application data\r
- uip_len -= 54;\r
- for (u = 0; u < uip_len; u += 2)\r
- {\r
-\r
- GPIO_IOCLR = 0xf << 4; // Put address on bus\r
- GPIO_IOSET = TX_FRAME_PORT << 4;\r
-\r
- GPIO_IOCLR = 0xff << 16; // Write low order byte to data bus\r
- GPIO_IOSET = uip_appdata[u] << 16; // write low order byte to data bus\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOW; // Toggle IOW-signal\r
- __asm volatile ( "NOP" );\r
- GPIO_IOSET = IOW;\r
-\r
- GPIO_IOCLR = 0xf << 4; // Put address on bus\r
- GPIO_IOSET = (TX_FRAME_PORT | 1) << 4; // and put next address on bus\r
-\r
- GPIO_IOCLR = 0xff << 16; // Write low order byte to data bus\r
- GPIO_IOSET = uip_appdata[u+1] << 16; // write low order byte to data bus\r
-\r
- __asm volatile ( "NOP" );\r
- GPIO_IOCLR = IOW; // Toggle IOW-signal\r
- __asm volatile ( "NOP" );\r
- GPIO_IOSET = IOW;\r
- }\r
-\r
- GPIO_IOSET = LED_RED; // Extinguish RED LED on end of frame\r
-}\r
-\r
-static void\r
-skip_frame(void)\r
-{\r
- // No space avaliable, skip a received frame and try again\r
- cs8900a_write(ADD_PORT, PP_RxCFG);\r
- cs8900a_write(DATA_PORT, cs8900a_read(DATA_PORT) | SKIP_1);\r
-}\r
-\r
-u8_t\r
-cs8900a_poll(void)\r
-{\r
- u16_t len, u;\r
-\r
- // Check receiver event register to see if there are any valid frames avaliable\r
- cs8900a_write(ADD_PORT, PP_RxEvent);\r
- if ((cs8900a_read(DATA_PORT) & 0xd00) == 0)\r
- return 0;\r
-\r
- GPIO_IOCLR = LED_GREEN; // Light GREED LED when frame coming in.\r
-\r
- // Read receiver status and discard it.\r
- cs8900a_read_addr_high_first(RX_FRAME_PORT);\r
-\r
- // Read frame length\r
- len = cs8900a_read_addr_high_first(RX_FRAME_PORT);\r
-\r
- // If the frame is too big to handle, throw it away\r
- if (len > UIP_BUFSIZE)\r
- {\r
- skip_frame();\r
- return 0;\r
- }\r
-\r
- // Data port to input\r
- GPIO_IODIR &= ~(0xff << 16);\r
-\r
- GPIO_IOCLR = 0xf << 4; // put address on bus\r
- GPIO_IOSET = RX_FRAME_PORT << 4;\r
-\r
- // Read bytes into uip_buf\r
- u = 0;\r
- while (u < len)\r
- {\r
- GPIO_IOCLR = 1 << 4; // put address on bus\r
-\r
- GPIO_IOCLR = IOR; // IOR-signal low\r
- uip_buf[u] = GPIO_IOPIN >> 16; // get high order byte from data bus\r
- __asm volatile ( "NOP" );\r
- GPIO_IOSET = IOR; // IOR-signal high\r
-\r
- GPIO_IOSET = 1 << 4; // put address on bus\r
-\r
- GPIO_IOCLR = IOR; // IOR-signal low\r
- __asm volatile ( "NOP" );\r
- uip_buf[u+1] = GPIO_IOPIN >> 16; // get high order byte from data bus\r
- GPIO_IOSET = IOR; // IOR-signal high\r
- u += 2;\r
- }\r
-\r
- GPIO_IOSET = LED_GREEN; // Extinguish GREED LED when frame finished.\r
- return len;\r
-}\r
-\r
+++ /dev/null
-#ifndef __CS8900A_H__\r
-#define __CS8900A_H__\r
-\r
-#include "uip_arch.h"\r
-\r
-void cs8900a_init(void);\r
-void cs8900a_send(void);\r
-u8_t cs8900a_poll(void);\r
-\r
-#endif /* __CS8900A_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server read-only file system code.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * A simple read-only filesystem. \r
- */\r
- \r
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. Neither the name of the Institute nor the names of its contributors \r
- * may be used to endorse or promote products derived from this software \r
- * without specific prior written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND \r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE \r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
- * SUCH DAMAGE. \r
- *\r
- * This file is part of the lwIP TCP/IP stack.\r
- * \r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: fs.c,v 1.7.2.3 2003/10/07 13:22:27 adam Exp $\r
- */\r
-\r
-#include "uip.h"\r
-#include "httpd.h"\r
-#include "fs.h"\r
-#include "fsdata.h"\r
-\r
-#define NULL (void *)0\r
-#include "fsdata.c"\r
-\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
-static u16_t count[FS_NUMFILES];\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-static u8_t\r
-fs_strcmp(const char *str1, const char *str2)\r
-{\r
- u8_t i;\r
- i = 0;\r
- loop:\r
-\r
- if(str2[i] == 0 ||\r
- str1[i] == '\r' || \r
- str1[i] == '\n') {\r
- return 0;\r
- }\r
-\r
- if(str1[i] != str2[i]) {\r
- return 1;\r
- }\r
-\r
-\r
- ++i;\r
- goto loop;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-int\r
-fs_open(const char *name, struct fs_file *file)\r
-{\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t i = 0;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
- struct fsdata_file_noconst *f;\r
-\r
- for(f = (struct fsdata_file_noconst *)FS_ROOT;\r
- f != NULL;\r
- f = (struct fsdata_file_noconst *)f->next) {\r
-\r
- if(fs_strcmp(name, f->name) == 0) {\r
- file->data = f->data;\r
- file->len = f->len;\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- ++count[i];\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
- return 1;\r
- }\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- ++i;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-\r
- }\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-fs_init(void)\r
-{\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t i;\r
- for(i = 0; i < FS_NUMFILES; i++) {\r
- count[i] = 0;\r
- }\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1 \r
-u16_t fs_count\r
-(char *name)\r
-{\r
- struct fsdata_file_noconst *f;\r
- u16_t i;\r
-\r
- i = 0;\r
- for(f = (struct fsdata_file_noconst *)FS_ROOT;\r
- f != NULL;\r
- f = (struct fsdata_file_noconst *)f->next) {\r
-\r
- if(fs_strcmp(name, f->name) == 0) {\r
- return count[i];\r
- }\r
- ++i;\r
- }\r
- return 0;\r
-}\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server read-only file system header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
- \r
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. Neither the name of the Institute nor the names of its contributors \r
- * may be used to endorse or promote products derived from this software \r
- * without specific prior written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND \r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE \r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
- * SUCH DAMAGE. \r
- *\r
- * This file is part of the lwIP TCP/IP stack.\r
- * \r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: fs.h,v 1.6.2.3 2003/10/07 13:22:27 adam Exp $\r
- */\r
-#ifndef __FS_H__\r
-#define __FS_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * An open file in the read-only file system.\r
- */\r
-struct fs_file {\r
- char *data; /**< The actual file data. */\r
- int len; /**< The length of the file data. */\r
-};\r
-\r
-/**\r
- * Open a file in the read-only file system.\r
- *\r
- * \param name The name of the file.\r
- *\r
- * \param file The file pointer, which must be allocated by caller and\r
- * will be filled in by the function.\r
- */\r
-int fs_open(const char *name, struct fs_file *file);\r
-\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1 \r
-u16_t fs_count(char *name);\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-\r
-/**\r
- * Initialize the read-only file system.\r
- */\r
-void fs_init(void);\r
-\r
-#endif /* __FS_H__ */\r
+++ /dev/null
-<html><body bgcolor="white"><center><h1>404 - file not found</h1></center></body></html>
\ No newline at end of file
+++ /dev/null
-<html>\r
-<body bgcolor="white">\r
-<center>\r
-<table width="600" border="0"><tr><td>\r
-<h2>Welcome</h2>\r
-<p align="justify">\r
-These web pages are served by the small web server running on top of\r
-the <a href="http://dunkels.com/adam/uip/" target="_top">uIP TCP/IP\r
-stack</a>.\r
-</p>\r
-<p align="justify">\r
-Click on the links above to see some status information about the web\r
-server and the TCP/IP stack.\r
-</p>\r
-</td></tr></table>\r
-</center>\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-# This script shows the access statistics for different files on the\r
-# web server.\r
-#\r
-# First, we include the HTML header.\r
-i /files_header.html\r
-# Print out the name of the file, and call the function that prints\r
-# the access statistics of that file.\r
-t <tr><td><a href="/index.html">/index.html</a></td><td>\r
-c b /index.html\r
-t </td></tr> <tr><td><a href="/about.html">/about.html</a></td><td>\r
-c b /about.html\r
-t </td></tr> <tr><td><a href="/control.html">/control.html</a></td><td>\r
-c b /control.html\r
-t </td></tr> <tr><td><a href="/img/bg.png">/img/bg.png</a></td><td>\r
-c b /img/bg.png\r
-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>\r
-c b /404.html\r
-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>\r
-c b /cgi/files\r
-t </td></tr> <tr><td><a href="/cgi/stats">/cgi/stats</a></td><td>\r
-c b /cgi/stats\r
-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>\r
-c b /cgi/tcp\r
-t </td></tr>\r
-# Include the HTML footer.\r
-i /files_footer.plain\r
-# End of script.\r
-.
\ No newline at end of file
+++ /dev/null
-i /stats_header.html\r
-c a\r
-i /stats_footer.plain\r
-.\r
+++ /dev/null
-i /tcp_header.html\r
-c c\r
-i /tcp_footer.plain\r
-.
\ No newline at end of file
+++ /dev/null
-<html>\r
-<body bgcolor="white">\r
-<center>\r
-<table width="797" height="94" border="0" cellpadding="0"\r
- cellspacing="0" background="/img/bg.png"><tr><td align="center">\r
-<h1>uIP web server test pages</h1>\r
-[ <a href="about.html" target="main">About</a> |\r
-<a href="/cgi/tcp" target="main">Connections</a> |\r
-<a href="/cgi/files" target="main">Files</a> |\r
-<a href="/cgi/stats" target="main">Statistics</a> ]\r
-</td></tr></table>\r
-</center>\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-</td></tr></table>\r
-</body>\r
-</html>\r
+++ /dev/null
-<html>\r
-<body bgcolor="white">\r
-<center>\r
-<table width="600" border="0">\r
+++ /dev/null
-<html>\r
-<head><title>uIP web server test page</title></head>\r
-\r
-<frameset cols="*" rows="120,*" frameborder="no"> \r
- <frame src="control.html">\r
- <frame src="about.html" name="main">\r
-</frameset>\r
-\r
-<noframes>\r
-<body>\r
-Your browser must support frames\r
-</body>\r
-</noframes>\r
-</html>
\ No newline at end of file
+++ /dev/null
-</td></tr></table>\r
-</body>\r
-</html>\r
+++ /dev/null
-<html>\r
-<body bgcolor="white">\r
-<center>\r
-<table width="600" border="0">\r
-<tr><td>\r
-<pre>\r
-IP Packets dropped\r
- Packets received\r
- Packets sent\r
-IP errors IP version/header length\r
- IP length, high byte\r
- IP length, low byte\r
- IP fragments\r
- Header checksum\r
- Wrong protocol\r
-ICMP Packets dropped\r
- Packets received\r
- Packets sent\r
- Type errors\r
-TCP Packets dropped\r
- Packets received\r
- Packets sent\r
- Checksum errors\r
- Data packets without ACKs\r
- Resets\r
- Retransmissions\r
- No connection avaliable\r
- Connection attempts to closed ports\r
-</pre> \r
-</td><td><pre>
\ No newline at end of file
+++ /dev/null
-\r
-</td></tr></table>\r
-</center>\r
-</body>\r
-</html>
\ No newline at end of file
+++ /dev/null
-<html>\r
-<body bgcolor="white">\r
-<center>\r
-<table width="600" border="0">\r
-<tr><th>Remote</th><th>State</th><th>Retransmissions</th><th>Timer</th><th>Flags</th></tr>\r
-\r
+++ /dev/null
-static const char data_cgi_files[] = {\r
- /* /cgi/files */\r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0,\r
- 0x23, 0x20, 0x54, 0x68, 0x69, 0x73, 0x20, 0x73, 0x63, 0x72, \r
- 0x69, 0x70, 0x74, 0x20, 0x73, 0x68, 0x6f, 0x77, 0x73, 0x20, \r
- 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, \r
- 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, \r
- 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x64, 0x69, 0x66, 0x66, \r
- 0x65, 0x72, 0x65, 0x6e, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, \r
- 0x73, 0x20, 0x6f, 0x6e, 0x20, 0x74, 0x68, 0x65, 0xa, 0x23, \r
- 0x20, 0x77, 0x65, 0x62, 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, \r
- 0x72, 0x2e, 0xa, 0x23, 0xa, 0x23, 0x20, 0x46, 0x69, 0x72, \r
- 0x73, 0x74, 0x2c, 0x20, 0x77, 0x65, 0x20, 0x69, 0x6e, 0x63, \r
- 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, 0x65, 0x20, 0x48, \r
- 0x54, 0x4d, 0x4c, 0x20, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, \r
- 0x2e, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, \r
- 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, \r
- 0x6d, 0x6c, 0xa, 0x23, 0x20, 0x50, 0x72, 0x69, 0x6e, 0x74, \r
- 0x20, 0x6f, 0x75, 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x6e, \r
- 0x61, 0x6d, 0x65, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, 0x65, \r
- 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2c, 0x20, 0x61, 0x6e, 0x64, \r
- 0x20, 0x63, 0x61, 0x6c, 0x6c, 0x20, 0x74, 0x68, 0x65, 0x20, \r
- 0x66, 0x75, 0x6e, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x74, \r
- 0x68, 0x61, 0x74, 0x20, 0x70, 0x72, 0x69, 0x6e, 0x74, 0x73, \r
- 0xa, 0x23, 0x20, 0x74, 0x68, 0x65, 0x20, 0x61, 0x63, 0x63, \r
- 0x65, 0x73, 0x73, 0x20, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, \r
- 0x74, 0x69, 0x63, 0x73, 0x20, 0x6f, 0x66, 0x20, 0x74, 0x68, \r
- 0x61, 0x74, 0x20, 0x66, 0x69, 0x6c, 0x65, 0x2e, 0xa, 0x74, \r
- 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x69, \r
- 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, \r
- 0x3e, 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, \r
- 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, \r
- 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, \r
- 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, \r
- 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, \r
- 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, \r
- 0x3d, 0x22, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, \r
- 0x74, 0x6d, 0x6c, 0x22, 0x3e, 0x2f, 0x61, 0x62, 0x6f, 0x75, \r
- 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, \r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, \r
- 0x63, 0x20, 0x62, 0x20, 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, \r
- 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, \r
- 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, \r
- 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, \r
- 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x6f, 0x6e, \r
- 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, \r
- 0x3e, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, \r
- 0x68, 0x74, 0x6d, 0x6c, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, \r
- 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, \r
- 0x62, 0x20, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, \r
- 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, 0x3c, 0x2f, \r
- 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x20, 0x3c, \r
- 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, 0x61, 0x20, \r
- 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x69, 0x6d, 0x67, \r
- 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0x22, 0x3e, 0x2f, \r
- 0x69, 0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, \r
- 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x69, \r
- 0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0xa, \r
- 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, \r
- 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, \r
- 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, \r
- 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, \r
- 0x3e, 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, \r
- 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x34, \r
- 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x74, 0x20, \r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, \r
- 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, \r
- 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, 0x3e, \r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, \r
- 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, \r
- 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0xa, 0x74, \r
- 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, \r
- 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, \r
- 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, \r
- 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, \r
- 0x3e, 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, \r
- 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, \r
- 0x3c, 0x74, 0x64, 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, \r
- 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0xa, \r
- 0x74, 0x20, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, \r
- 0x72, 0x3e, 0x20, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, \r
- 0x3e, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, \r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 0x3e, \r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x3c, 0x2f, \r
- 0x61, 0x3e, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x74, 0x64, \r
- 0x3e, 0xa, 0x63, 0x20, 0x62, 0x20, 0x2f, 0x63, 0x67, 0x69, \r
- 0x2f, 0x74, 0x63, 0x70, 0xa, 0x74, 0x20, 0x3c, 0x2f, 0x74, \r
- 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0xa, 0x23, 0x20, \r
- 0x49, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x20, 0x74, 0x68, \r
- 0x65, 0x20, 0x48, 0x54, 0x4d, 0x4c, 0x20, 0x66, 0x6f, 0x6f, \r
- 0x74, 0x65, 0x72, 0x2e, 0xa, 0x69, 0x20, 0x2f, 0x66, 0x69, \r
- 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, \r
- 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xa, 0x23, 0x20, 0x45, \r
- 0x6e, 0x64, 0x20, 0x6f, 0x66, 0x20, 0x73, 0x63, 0x72, 0x69, \r
- 0x70, 0x74, 0x2e, 0xa, 0x2e, };\r
-\r
-static const char data_cgi_stats[] = {\r
- /* /cgi/stats */\r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0,\r
- 0x69, 0x20, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, \r
- 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, \r
- 0xa, 0x63, 0x20, 0x61, 0xa, 0x69, 0x20, 0x2f, 0x73, 0x74, \r
- 0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, \r
- 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0xa, 0x2e, 0xa, };\r
-\r
-static const char data_cgi_tcp[] = {\r
- /* /cgi/tcp */\r
- 0x2f, 0x63, 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0,\r
- 0x69, 0x20, 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, \r
- 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0xa, 0x63, \r
- 0x20, 0x63, 0xa, 0x69, 0x20, 0x2f, 0x74, 0x63, 0x70, 0x5f, \r
- 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, \r
- 0x69, 0x6e, 0xa, 0x2e, };\r
-\r
-static const char data_img_bg_png[] = {\r
- /* /img/bg.png */\r
- 0x2f, 0x69, 0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x69, \r
- 0x6d, 0x61, 0x67, 0x65, 0x2f, 0x70, 0x6e, 0x67, 0xd, 0xa, \r
- 0xd, 0xa, 0x89, 0x50, 0x4e, 0x47, 0xd, 0xa, 0x1a, 0xa, \r
- 00, 00, 00, 0xd, 0x49, 0x48, 0x44, 0x52, 00, 00, \r
- 0x3, 0x1d, 00, 00, 00, 0x5e, 0x8, 0x6, 00, 00, \r
- 00, 0x46, 0xbd, 0x79, 0xcc, 00, 00, 00, 0x6, 0x62, \r
- 0x4b, 0x47, 0x44, 00, 0xff, 00, 0xff, 00, 0xff, 0xa0, \r
- 0xbd, 0xa7, 0x93, 00, 00, 00, 0x9, 0x70, 0x48, 0x59, \r
- 0x73, 00, 00, 0xb, 0x12, 00, 00, 0xb, 0x12, 0x1, \r
- 0xd2, 0xdd, 0x7e, 0xfc, 00, 00, 00, 0x7, 0x74, 0x49, \r
- 0x4d, 0x45, 0x7, 0xd3, 0xa, 0x5, 0x12, 0x22, 0x33, 0x22, \r
- 0xd0, 0x7c, 0x9a, 00, 00, 00, 0x1d, 0x74, 0x45, 0x58, \r
- 0x74, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 00, 0x43, \r
- 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x20, 0x77, 0x69, 0x74, \r
- 0x68, 0x20, 0x54, 0x68, 0x65, 0x20, 0x47, 0x49, 0x4d, 0x50, \r
- 0xef, 0x64, 0x25, 0x6e, 00, 00, 0x3, 0xa0, 0x49, 0x44, \r
- 0x41, 0x54, 0x78, 0xda, 0xed, 0xdd, 0xc1, 0x76, 0x9a, 0x40, \r
- 0x18, 0x80, 0x51, 0x27, 0xc7, 0x5, 0x6c, 0xd1, 0x65, 0x1a, \r
- 0xec, 0xe9, 0xfb, 0xbf, 0x45, 0x9e, 0x23, 0xd5, 0xb4, 0x4b, \r
- 0x71, 0x19, 0xdd, 0x4d, 0x97, 0x36, 0x8a, 0x6, 0x1c, 0x82, \r
- 0x20, 0xf7, 0xee, 0x92, 0xa8, 0x3f, 0xc, 0x68, 0xfa, 0xa1, \r
- 0x3d, 0x9, 0x6f, 0xaf, 0x1f, 0x71, 0x76, 0x26, 0xcc, 0x6e, \r
- 0x15, 0x9e, 0xce, 0xbf, 0x17, 0xe3, 0x71, 0x44, 0xb8, 0xfd, \r
- 0xa1, 0x93, 0xd5, 0x6d, 0x5b, 0x7f, 0xc3, 0x13, 0xef, 0x1e, \r
- 0x86, 0xb3, 0x2d, 0x5d, 0x6d, 0xdb, 0xf2, 0x57, 0x96, 0x34, \r
- 0x77, 0xfb, 0xfb, 0x90, 0x74, 0xff, 0xe5, 0xcf, 0xb4, 0xf9, \r
- 0xbb, 0x4d, 0xda, 0xfc, 0xa2, 0xcc, 0x92, 0xd6, 0xb4, 0x5a, \r
- 0x5f, 0x99, 0xdf, 0xe0, 0x5c, 0x5f, 0xae, 0xb2, 0xd9, 0x20, \r
- 0x85, 0x6f, 0x5c, 0xff, 0x70, 0x7c, 0x2d, 0x5a, 0x94, 0xf9, \r
- 0xf0, 0x76, 0xfd, 0x69, 0x36, 0x39, 0x53, 0xdc, 0xe7, 0x41, \r
- 0xfc, 0x1e, 0x18, 0xe1, 0xef, 0x41, 0xc6, 0xf1, 0x7c, 0xa9, \r
- 0x3d, 0x4f, 0xe3, 0x83, 0x1f, 0xfc, 0xb1, 0x1e, 0x17, 0xcb, \r
- 0x4, 00, 00, 0x68, 0x33, 00, 00, 00, 0xd1, 0x1, \r
- 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 00, \r
- 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 00, 00, \r
- 0xa2, 0x3, 00, 00, 0x40, 0x74, 00, 00, 00, 0xa2, \r
- 0x3, 00, 00, 0x40, 0x74, 00, 00, 00, 0xa2, 0x3, \r
- 00, 00, 0x10, 0x1d, 00, 0x1d, 0xa, 0x96, 00, 00, \r
- 0x44, 0x7, 00, 00, 0x40, 0x4b, 0xe1, 0xed, 0xf5, 0x23, \r
- 0xd6, 0x7c, 0xfb, 0xf6, 0x7, 0xac, 0xc9, 0x98, 0x18, 0x8f, \r
- 0x23, 0xc2, 0x1d, 0xaf, 0x64, 0x86, 0x7b, 0x26, 0x56, 0xe2, \r
- 0x7e, 0x77, 0xba, 0x6e, 0x1d, 0x1f, 0x83, 0xa4, 0x6d, 0xb, \r
- 0xfd, 0x6e, 0x6b, 0x97, 0x6b, 0x1a, 0xee, 0x7c, 0x55, 0x7e, \r
- 0xb1, 0xca, 0x92, 0x9e, 0xb, 0xdb, 0xf5, 0x21, 0x69, 0xfe, \r
- 0x32, 0x61, 0xfe, 0x18, 0x8f, 0xf7, 0xc3, 0xbf, 0x46, 0xd9, \r
- 0xe7, 0xe1, 0xaf, 0xd5, 0xd8, 0xdf, 0x9, 0xf4, 0x4e, 0xe6, \r
- 0x24, 0x9e, 0x2f, 0xb5, 0xe7, 0x69, 0x7c, 0xf0, 0x83, 0x3f, \r
- 0xd6, 0xe3, 0x62, 0x99, 00, 00, 00, 0x6d, 0x6, 00, \r
- 00, 0x20, 0x3a, 00, 00, 00, 0xd1, 0x1, 00, 00, \r
- 0x88, 0xe, 00, 00, 00, 0xd1, 0x1, 00, 00, 0x88, \r
- 0xe, 00, 00, 0x40, 0x74, 00, 00, 00, 0x88, 0xe, \r
- 00, 00, 0x40, 0x74, 00, 00, 00, 0x88, 0xe, 0x98, \r
- 0xaa, 0xe0, 0x59, 0xf, 00, 0x88, 0xe, 00, 0x86, 0x53, \r
- 0xa9, 0x96, 00, 00, 0xd1, 0x1, 00, 00, 0x88, 0xe, \r
- 00, 00, 0x40, 0x74, 00, 00, 00, 0x7c, 0x93, 0xb9, \r
- 0x25, 0x80, 0xfb, 0x28, 0xca, 0xec, 0xe2, 0xcf, 0x42, 0x83, \r
- 0xcf, 0xd1, 0x57, 0xeb, 0xc3, 0xe5, 0x1f, 0x36, 0xb8, 0x9c, \r
- 0xb0, 0x5c, 0x65, 0x49, 0xdb, 0xbf, 0xbd, 0x30, 0x3f, 0x34, \r
- 0xfc, 0x3f, 00, 0x8b, 0x32, 0x6d, 0xfe, 0x6e, 0x73, 0x68, \r
- 0x7f, 0xa7, 0x10, 0xff, 0x9b, 0x9f, 0x27, 0xcd, 0xaf, 0xde, \r
- 0xf7, 0xed, 0x46, 0x9f, 0x1c, 0x93, 0xe2, 0x39, 0xf7, 0x24, \r
- 00, 0x60, 0x32, 0xbc, 0xd3, 0x1, 00, 00, 0x88, 0xe, \r
- 00, 00, 0x40, 0x74, 00, 00, 00, 0x88, 0xe, 00, \r
- 00, 0x40, 0x74, 00, 00, 00, 0x8f, 0x1f, 0x1d, 0xdd, \r
- 0xfe, 0xf9, 0xd9, 0x18, 0xa3, 0x55, 0x6, 00, 00, 0xd1, \r
- 0xc1, 0x64, 0x84, 0x8e, 0x1f, 0x2e, 0x58, 0x52, 00, 00, \r
- 0x44, 0x7, 00, 00, 0x20, 0x3a, 00, 00, 00, 0xd1, \r
- 0x1, 00, 00, 0x20, 0x3a, 00, 00, 00, 0xd1, 0x1, \r
- 00, 00, 0x88, 0xe, 00, 00, 00, 0xd1, 0x1, 00, \r
- 00, 0x88, 0xe, 00, 00, 0x80, 0xb9, 0x25, 0x80, 0xfb, \r
- 0xd8, 0x6d, 0xe, 0x77, 0x9d, 0xbf, 0x5d, 0xa7, 0xcd, 0x5f, \r
- 0xae, 0xb2, 0xa4, 0xfb, 0x57, 0x35, 0xfb, 0xdf, 0xe6, 0x8f, \r
- 0x4d, 0x16, 0x65, 0xbb, 0xf9, 0xa7, 0x8f, 0x5d, 0x6d, 0xf6, \r
- 0xe7, 0x37, 0x88, 0xf1, 0xca, 0x3, 0x7c, 0xfe, 0x72, 0xf1, \r
- 0x92, 0x3b, 0x89, 0x1, 0xa0, 0x21, 0xef, 0x74, 00, 00, \r
- 00, 0xa2, 0x3, 00, 00, 0x10, 0x1d, 00, 00, 00, \r
- 0xa2, 0x63, 0xac, 0xda, 0x7c, 0xce, 0x1d, 00, 00, 0x44, \r
- 0x7, 0xe0, 0x59, 0xd, 00, 0xf8, 0xe7, 0x9, 00, 00, \r
- 0x80, 0xe8, 00, 00, 00, 0x44, 0x7, 00, 00, 0x80, \r
- 0xe8, 00, 00, 00, 0x44, 0x7, 00, 00, 0x20, 0x3a, \r
- 00, 00, 00, 0x44, 0x7, 00, 00, 0x20, 0x3a, 00, \r
- 00, 00, 0xd1, 0x1, 00, 00, 0x20, 0x3a, 00, 00, \r
- 0x80, 0x81, 0x98, 0x5b, 0x2, 0xe0, 0x16, 0xdb, 0xf5, 0xa1, \r
- 0xf6, 0xfb, 0x21, 0xf4, 0x33, 0x7f, 0xb7, 0x39, 0xb4, 0xbb, \r
- 0x43, 0x88, 0x9f, 0xbe, 0x5c, 0x94, 0x79, 0xd2, 0xfc, 0xea, \r
- 0x7d, 0xdf, 0x6e, 0xfc, 0xc9, 0x25, 0x9e, 0xe2, 0xb9, 0xbf, \r
- 0xf9, 0x75, 0xc7, 0xa4, 0xf8, 0x91, 0x3b, 0x89, 0x1, 0xe8, \r
- 0x8d, 0x77, 0x3a, 00, 00, 00, 0xd1, 0x1, 0x43, 0xd3, \r
- 0xd7, 0xd5, 0x7c, 0xeb, 0x2, 00, 0x88, 0xe, 00, 0xbe, \r
- 0x8e, 0x31, 0xaf, 0xb4, 00, 0x88, 0xe, 00, 00, 00, \r
- 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, 00, 0xd1, \r
- 0x1, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, \r
- 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, 00, 00, \r
- 00, 0xa2, 0x3, 00, 00, 0x60, 0x34, 0xd1, 0x11, 0x82, \r
- 0x5, 0x7, 00, 00, 0xd1, 0x1, 0x43, 0x21, 0x52, 0x1, \r
- 00, 0x44, 0x7, 00, 00, 0xc0, 0x57, 0xe6, 0x96, 00, \r
- 0x18, 0xa3, 0xa2, 0xcc, 0x5a, 0xdd, 0xfe, 0xf4, 0xe3, 0x9d, \r
- 0xd5, 0x66, 0x7f, 0x7e, 0x83, 0x18, 0xaf, 0x3c, 0x40, 0xb7, \r
- 0xdb, 0xbf, 0xfb, 0xbb, 0x4f, 0xba, 0xff, 0xe2, 0x25, 0x4f, \r
- 0x9b, 0xff, 0xa7, 0xe1, 0xfc, 0xb, 0xfb, 0x5d, 0x3c, 0xe7, \r
- 0xdf, 0xbe, 0xff, 0xe1, 0xca, 0x65, 0xb1, 0x3e, 0xe6, 0x5f, \r
- 0x3d, 0xff, 0x12, 0xe7, 0x3, 0x4c, 0x8d, 0x77, 0x3a, 00, \r
- 00, 00, 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, \r
- 00, 0xd1, 0x1, 00, 00, 0x88, 0xe, 00, 00, 0x40, \r
- 0x74, 00, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, \r
- 00, 00, 00, 0xa2, 0x3, 00, 00, 0x40, 0x74, 0x34, \r
- 0x13, 0xe4, 0x15, 00, 00, 0x88, 0xe, 00, 00, 0x40, \r
- 0x74, 00, 00, 00, 0x88, 0xe, 00, 00, 0x40, 0x74, \r
- 00, 00, 00, 0x13, 0xf1, 0xf, 0x24, 0xa1, 0x5c, 0xab, \r
- 0x41, 0xd8, 0x92, 0xa4, 00, 00, 00, 00, 0x49, 0x45, \r
- 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, };\r
-\r
-static const char data_about_html[] = {\r
- /* /about.html */\r
- 0x2f, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, \r
- 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, \r
- 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, \r
- 0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, \r
- 0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, \r
- 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, \r
- 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, 0xa, \r
- 0x3c, 0x68, 0x32, 0x3e, 0x57, 0x65, 0x6c, 0x63, 0x6f, 0x6d, \r
- 0x65, 0x3c, 0x2f, 0x68, 0x32, 0x3e, 0xa, 0x3c, 0x70, 0x20, \r
- 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x6a, 0x75, 0x73, \r
- 0x74, 0x69, 0x66, 0x79, 0x22, 0x3e, 0xa, 0x54, 0x68, 0x65, \r
- 0x73, 0x65, 0x20, 0x77, 0x65, 0x62, 0x20, 0x70, 0x61, 0x67, \r
- 0x65, 0x73, 0x20, 0x61, 0x72, 0x65, 0x20, 0x73, 0x65, 0x72, \r
- 0x76, 0x65, 0x64, 0x20, 0x62, 0x79, 0x20, 0x74, 0x68, 0x65, \r
- 0x20, 0x73, 0x6d, 0x61, 0x6c, 0x6c, 0x20, 0x77, 0x65, 0x62, \r
- 0x20, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x72, 0x75, \r
- 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x6e, 0x20, 0x74, \r
- 0x6f, 0x70, 0x20, 0x6f, 0x66, 0xa, 0x74, 0x68, 0x65, 0x20, \r
- 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x68, \r
- 0x74, 0x74, 0x70, 0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, \r
- 0x65, 0x6c, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, \r
- 0x61, 0x6d, 0x2f, 0x75, 0x69, 0x70, 0x2f, 0x22, 0x20, 0x74, \r
- 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x5f, 0x74, 0x6f, \r
- 0x70, 0x22, 0x3e, 0x75, 0x49, 0x50, 0x20, 0x54, 0x43, 0x50, \r
- 0x2f, 0x49, 0x50, 0xa, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x3c, \r
- 0x2f, 0x61, 0x3e, 0x2e, 0xa, 0x3c, 0x2f, 0x70, 0x3e, 0xa, \r
- 0x3c, 0x70, 0x20, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, \r
- 0x6a, 0x75, 0x73, 0x74, 0x69, 0x66, 0x79, 0x22, 0x3e, 0xa, \r
- 0x43, 0x6c, 0x69, 0x63, 0x6b, 0x20, 0x6f, 0x6e, 0x20, 0x74, \r
- 0x68, 0x65, 0x20, 0x6c, 0x69, 0x6e, 0x6b, 0x73, 0x20, 0x61, \r
- 0x62, 0x6f, 0x76, 0x65, 0x20, 0x74, 0x6f, 0x20, 0x73, 0x65, \r
- 0x65, 0x20, 0x73, 0x6f, 0x6d, 0x65, 0x20, 0x73, 0x74, 0x61, \r
- 0x74, 0x75, 0x73, 0x20, 0x69, 0x6e, 0x66, 0x6f, 0x72, 0x6d, \r
- 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x62, 0x6f, 0x75, \r
- 0x74, 0x20, 0x74, 0x68, 0x65, 0x20, 0x77, 0x65, 0x62, 0xa, \r
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x61, 0x6e, 0x64, \r
- 0x20, 0x74, 0x68, 0x65, 0x20, 0x54, 0x43, 0x50, 0x2f, 0x49, \r
- 0x50, 0x20, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0xa, 0x3c, \r
- 0x2f, 0x70, 0x3e, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x2f, 0x74, 0x72, 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, \r
- 0x65, 0x3e, 0xa, 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, \r
- 0x72, 0x3e, 0xa, 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, \r
- 0xa, 0x3c, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0x3e, };\r
-\r
-static const char data_control_html[] = {\r
- /* /control.html */\r
- 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, \r
- 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, \r
- 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, \r
- 0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, \r
- 0x64, 0x74, 0x68, 0x3d, 0x22, 0x37, 0x39, 0x37, 0x22, 0x20, \r
- 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x3d, 0x22, 0x39, 0x34, \r
- 0x22, 0x20, 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, \r
- 0x30, 0x22, 0x20, 0x63, 0x65, 0x6c, 0x6c, 0x70, 0x61, 0x64, \r
- 0x64, 0x69, 0x6e, 0x67, 0x3d, 0x22, 0x30, 0x22, 0xa, 0x9, \r
- 0x63, 0x65, 0x6c, 0x6c, 0x73, 0x70, 0x61, 0x63, 0x69, 0x6e, \r
- 0x67, 0x3d, 0x22, 0x30, 0x22, 0x20, 0x62, 0x61, 0x63, 0x6b, \r
- 0x67, 0x72, 0x6f, 0x75, 0x6e, 0x64, 0x3d, 0x22, 0x2f, 0x69, \r
- 0x6d, 0x67, 0x2f, 0x62, 0x67, 0x2e, 0x70, 0x6e, 0x67, 0x22, \r
- 0x3e, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x20, 0x61, \r
- 0x6c, 0x69, 0x67, 0x6e, 0x3d, 0x22, 0x63, 0x65, 0x6e, 0x74, \r
- 0x65, 0x72, 0x22, 0x3e, 0xa, 0x3c, 0x68, 0x31, 0x3e, 0x75, \r
- 0x49, 0x50, 0x20, 0x77, 0x65, 0x62, 0x20, 0x73, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x20, 0x74, 0x65, 0x73, 0x74, 0x20, 0x70, \r
- 0x61, 0x67, 0x65, 0x73, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0xa, \r
- 0x5b, 0x20, 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, \r
- 0x22, 0x61, 0x62, 0x6f, 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, \r
- 0x6c, 0x22, 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, \r
- 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x41, 0x62, 0x6f, \r
- 0x75, 0x74, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xa, 0x3c, \r
- 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, \r
- 0x67, 0x69, 0x2f, 0x74, 0x63, 0x70, 0x22, 0x20, 0x74, 0x61, \r
- 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, \r
- 0x22, 0x3e, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, \r
- 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xa, \r
- 0x3c, 0x61, 0x20, 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, \r
- 0x63, 0x67, 0x69, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x22, \r
- 0x20, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, \r
- 0x61, 0x69, 0x6e, 0x22, 0x3e, 0x46, 0x69, 0x6c, 0x65, 0x73, \r
- 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x7c, 0xa, 0x3c, 0x61, 0x20, \r
- 0x68, 0x72, 0x65, 0x66, 0x3d, 0x22, 0x2f, 0x63, 0x67, 0x69, \r
- 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x22, 0x20, 0x74, 0x61, \r
- 0x72, 0x67, 0x65, 0x74, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, \r
- 0x22, 0x3e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, \r
- 0x63, 0x73, 0x3c, 0x2f, 0x61, 0x3e, 0x20, 0x5d, 0xa, 0x3c, \r
- 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, 0x3c, \r
- 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 0x3c, 0x2f, \r
- 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, 0x3c, 0x2f, \r
- 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 0x74, \r
- 0x6d, 0x6c, 0x3e, };\r
-\r
-static const char data_404_html[] = {\r
- /* /404.html */\r
- 0x2f, 0x34, 0x30, 0x34, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x34, \r
- 0x30, 0x34, 0x20, 0x46, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, \r
- 0x74, 0x20, 0x66, 0x6f, 0x75, 0x6e, 0x64, 0xd, 0xa, 0x53, \r
- 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, \r
- 0x2f, 0x30, 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, \r
- 0x3a, 0x2f, 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, \r
- 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, \r
- 0x75, 0x69, 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, \r
- 0x74, 0x65, 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, \r
- 0x20, 0x74, 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, \r
- 0xd, 0xa, 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, \r
- 0x3c, 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, \r
- 0x6c, 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, \r
- 0x22, 0x3e, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, \r
- 0x3c, 0x68, 0x31, 0x3e, 0x34, 0x30, 0x34, 0x20, 0x2d, 0x20, \r
- 0x66, 0x69, 0x6c, 0x65, 0x20, 0x6e, 0x6f, 0x74, 0x20, 0x66, \r
- 0x6f, 0x75, 0x6e, 0x64, 0x3c, 0x2f, 0x68, 0x31, 0x3e, 0x3c, \r
- 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0x3c, 0x2f, \r
- 0x62, 0x6f, 0x64, 0x79, 0x3e, 0x3c, 0x2f, 0x68, 0x74, 0x6d, \r
- 0x6c, 0x3e, };\r
-\r
-static const char data_files_footer_plain[] = {\r
- /* /files_footer.plain */\r
- 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,\r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, \r
- 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 0x3c, \r
- 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, \r
- 0x74, 0x6d, 0x6c, 0x3e, 0xa, };\r
-\r
-static const char data_files_header_html[] = {\r
- /* /files_header.html */\r
- 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, \r
- 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, \r
- 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, \r
- 0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, \r
- 0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, \r
- 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, \r
- 0x3e, 0xa, };\r
-\r
-static const char data_index_html[] = {\r
- /* /index.html */\r
- 0x2f, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, \r
- 0x68, 0x65, 0x61, 0x64, 0x3e, 0x3c, 0x74, 0x69, 0x74, 0x6c, \r
- 0x65, 0x3e, 0x75, 0x49, 0x50, 0x20, 0x77, 0x65, 0x62, 0x20, \r
- 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x20, 0x74, 0x65, 0x73, \r
- 0x74, 0x20, 0x70, 0x61, 0x67, 0x65, 0x3c, 0x2f, 0x74, 0x69, \r
- 0x74, 0x6c, 0x65, 0x3e, 0x3c, 0x2f, 0x68, 0x65, 0x61, 0x64, \r
- 0x3e, 0xa, 0xa, 0x3c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, \r
- 0x65, 0x74, 0x20, 0x63, 0x6f, 0x6c, 0x73, 0x3d, 0x22, 0x2a, \r
- 0x22, 0x20, 0x72, 0x6f, 0x77, 0x73, 0x3d, 0x22, 0x31, 0x32, \r
- 0x30, 0x2c, 0x2a, 0x22, 0x20, 0x66, 0x72, 0x61, 0x6d, 0x65, \r
- 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x6e, 0x6f, \r
- 0x22, 0x3e, 0x20, 0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, \r
- 0x6d, 0x65, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x63, 0x6f, \r
- 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x68, 0x74, 0x6d, 0x6c, \r
- 0x22, 0x3e, 0xa, 0x20, 0x20, 0x3c, 0x66, 0x72, 0x61, 0x6d, \r
- 0x65, 0x20, 0x73, 0x72, 0x63, 0x3d, 0x22, 0x61, 0x62, 0x6f, \r
- 0x75, 0x74, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0x22, 0x20, 0x6e, \r
- 0x61, 0x6d, 0x65, 0x3d, 0x22, 0x6d, 0x61, 0x69, 0x6e, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x2f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, \r
- 0x65, 0x74, 0x3e, 0xa, 0xa, 0x3c, 0x6e, 0x6f, 0x66, 0x72, \r
- 0x61, 0x6d, 0x65, 0x73, 0x3e, 0xa, 0x3c, 0x62, 0x6f, 0x64, \r
- 0x79, 0x3e, 0xa, 0x59, 0x6f, 0x75, 0x72, 0x20, 0x62, 0x72, \r
- 0x6f, 0x77, 0x73, 0x65, 0x72, 0x20, 0x6d, 0x75, 0x73, 0x74, \r
- 0x20, 0x73, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x20, 0x66, \r
- 0x72, 0x61, 0x6d, 0x65, 0x73, 0xa, 0x3c, 0x2f, 0x62, 0x6f, \r
- 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x6e, 0x6f, 0x66, 0x72, \r
- 0x61, 0x6d, 0x65, 0x73, 0x3e, 0xa, 0x3c, 0x2f, 0x68, 0x74, \r
- 0x6d, 0x6c, 0x3e, };\r
-\r
-static const char data_stats_footer_plain[] = {\r
- /* /stats_footer.plain */\r
- 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,\r
- 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, 0x3e, \r
- 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, 0x3c, \r
- 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, 0x68, \r
- 0x74, 0x6d, 0x6c, 0x3e, 0xa, };\r
-\r
-static const char data_stats_header_html[] = {\r
- /* /stats_header.html */\r
- 0x2f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, \r
- 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, \r
- 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, \r
- 0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, \r
- 0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, \r
- 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x64, 0x3e, \r
- 0xa, 0x3c, 0x70, 0x72, 0x65, 0x3e, 0xa, 0x49, 0x50, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, \r
- 0x6f, 0x70, 0x70, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, \r
- 0x65, 0x69, 0x76, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, \r
- 0x74, 0xa, 0x49, 0x50, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, \r
- 0x73, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x76, 0x65, \r
- 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2f, 0x68, 0x65, 0x61, 0x64, \r
- 0x65, 0x72, 0x20, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0xa, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, 0x6c, 0x65, 0x6e, 0x67, \r
- 0x74, 0x68, 0x2c, 0x20, 0x68, 0x69, 0x67, 0x68, 0x20, 0x62, \r
- 0x79, 0x74, 0x65, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x49, 0x50, 0x20, \r
- 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2c, 0x20, 0x6c, 0x6f, \r
- 0x77, 0x20, 0x62, 0x79, 0x74, 0x65, 0xa, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x49, 0x50, 0x20, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, \r
- 0x74, 0x73, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x48, 0x65, 0x61, 0x64, \r
- 0x65, 0x72, 0x20, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, \r
- 0x6d, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x57, 0x72, 0x6f, 0x6e, 0x67, \r
- 0x20, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0xa, \r
- 0x49, 0x43, 0x4d, 0x50, 0x9, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, \r
- 0x6f, 0x70, 0x70, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, \r
- 0x65, 0x69, 0x76, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, \r
- 0x74, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x54, 0x79, 0x70, 0x65, 0x20, \r
- 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0xa, 0x54, 0x43, 0x50, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x64, 0x72, \r
- 0x6f, 0x70, 0x70, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x72, 0x65, 0x63, \r
- 0x65, 0x69, 0x76, 0x65, 0x64, 0xa, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x50, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x73, 0x65, 0x6e, \r
- 0x74, 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x68, 0x65, 0x63, 0x6b, \r
- 0x73, 0x75, 0x6d, 0x20, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, \r
- 0xa, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x20, 0x44, 0x61, 0x74, 0x61, 0x20, 0x70, \r
- 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x20, 0x77, 0x69, 0x74, \r
- 0x68, 0x6f, 0x75, 0x74, 0x20, 0x41, 0x43, 0x4b, 0x73, 0xa, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x52, 0x65, 0x73, 0x65, 0x74, 0x73, 0xa, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0x52, 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, \r
- 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0xa, 0x9, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x4e, 0x6f, 0x20, 0x63, 0x6f, \r
- 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, \r
- 0x76, 0x61, 0x6c, 0x69, 0x61, 0x62, 0x6c, 0x65, 0xa, 0x9, \r
- 0x20, 0x20, 0x20, 0x20, 0x20, 0x43, 0x6f, 0x6e, 0x6e, 0x65, \r
- 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x74, 0x74, 0x65, \r
- 0x6d, 0x70, 0x74, 0x73, 0x20, 0x74, 0x6f, 0x20, 0x63, 0x6c, \r
- 0x6f, 0x73, 0x65, 0x64, 0x20, 0x70, 0x6f, 0x72, 0x74, 0x73, \r
- 0xa, 0x3c, 0x2f, 0x70, 0x72, 0x65, 0x3e, 0x9, 0x20, 0x20, \r
- 0x20, 0x20, 0x20, 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, \r
- 0x74, 0x64, 0x3e, 0x3c, 0x70, 0x72, 0x65, 0x3e, };\r
-\r
-static const char data_tcp_footer_plain[] = {\r
- /* /tcp_footer.plain */\r
- 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x6f, 0x6f, 0x74, 0x65, 0x72, 0x2e, 0x70, 0x6c, 0x61, 0x69, 0x6e, 0,\r
- 0xa, 0x3c, 0x2f, 0x74, 0x64, 0x3e, 0x3c, 0x2f, 0x74, 0x72, \r
- 0x3e, 0x3c, 0x2f, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x3e, 0xa, \r
- 0x3c, 0x2f, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, 0xa, \r
- 0x3c, 0x2f, 0x62, 0x6f, 0x64, 0x79, 0x3e, 0xa, 0x3c, 0x2f, \r
- 0x68, 0x74, 0x6d, 0x6c, 0x3e, };\r
-\r
-static const char data_tcp_header_html[] = {\r
- /* /tcp_header.html */\r
- 0x2f, 0x74, 0x63, 0x70, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x68, 0x74, 0x6d, 0x6c, 0,\r
- 0x48, 0x54, 0x54, 0x50, 0x2f, 0x31, 0x2e, 0x30, 0x20, 0x32, \r
- 0x30, 0x30, 0x20, 0x4f, 0x4b, 0xd, 0xa, 0x53, 0x65, 0x72, \r
- 0x76, 0x65, 0x72, 0x3a, 0x20, 0x75, 0x49, 0x50, 0x2f, 0x30, \r
- 0x2e, 0x39, 0x20, 0x28, 0x68, 0x74, 0x74, 0x70, 0x3a, 0x2f, \r
- 0x2f, 0x64, 0x75, 0x6e, 0x6b, 0x65, 0x6c, 0x73, 0x2e, 0x63, \r
- 0x6f, 0x6d, 0x2f, 0x61, 0x64, 0x61, 0x6d, 0x2f, 0x75, 0x69, \r
- 0x70, 0x2f, 0x29, 0xd, 0xa, 0x43, 0x6f, 0x6e, 0x74, 0x65, \r
- 0x6e, 0x74, 0x2d, 0x74, 0x79, 0x70, 0x65, 0x3a, 0x20, 0x74, \r
- 0x65, 0x78, 0x74, 0x2f, 0x68, 0x74, 0x6d, 0x6c, 0xd, 0xa, \r
- 0xd, 0xa, 0x3c, 0x68, 0x74, 0x6d, 0x6c, 0x3e, 0xa, 0x3c, \r
- 0x62, 0x6f, 0x64, 0x79, 0x20, 0x62, 0x67, 0x63, 0x6f, 0x6c, \r
- 0x6f, 0x72, 0x3d, 0x22, 0x77, 0x68, 0x69, 0x74, 0x65, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x63, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x3e, \r
- 0xa, 0x3c, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x20, 0x77, 0x69, \r
- 0x64, 0x74, 0x68, 0x3d, 0x22, 0x36, 0x30, 0x30, 0x22, 0x20, \r
- 0x62, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x3d, 0x22, 0x30, 0x22, \r
- 0x3e, 0xa, 0x3c, 0x74, 0x72, 0x3e, 0x3c, 0x74, 0x68, 0x3e, \r
- 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x3c, 0x2f, 0x74, 0x68, \r
- 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x53, 0x74, 0x61, 0x74, 0x65, \r
- 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x52, \r
- 0x65, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x73, 0x73, \r
- 0x69, 0x6f, 0x6e, 0x73, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, \r
- 0x74, 0x68, 0x3e, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x3c, 0x2f, \r
- 0x74, 0x68, 0x3e, 0x3c, 0x74, 0x68, 0x3e, 0x46, 0x6c, 0x61, \r
- 0x67, 0x73, 0x3c, 0x2f, 0x74, 0x68, 0x3e, 0x3c, 0x2f, 0x74, \r
- 0x72, 0x3e, 0xa, 0xa, };\r
-\r
-const struct fsdata_file file_cgi_files[] = {{NULL, data_cgi_files, data_cgi_files + 11, sizeof(data_cgi_files) - 11}};\r
-\r
-const struct fsdata_file file_cgi_stats[] = {{file_cgi_files, data_cgi_stats, data_cgi_stats + 11, sizeof(data_cgi_stats) - 11}};\r
-\r
-const struct fsdata_file file_cgi_tcp[] = {{file_cgi_stats, data_cgi_tcp, data_cgi_tcp + 9, sizeof(data_cgi_tcp) - 9}};\r
-\r
-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}};\r
-\r
-const struct fsdata_file file_about_html[] = {{file_img_bg_png, data_about_html, data_about_html + 12, sizeof(data_about_html) - 12}};\r
-\r
-const struct fsdata_file file_control_html[] = {{file_about_html, data_control_html, data_control_html + 14, sizeof(data_control_html) - 14}};\r
-\r
-const struct fsdata_file file_404_html[] = {{file_control_html, data_404_html, data_404_html + 10, sizeof(data_404_html) - 10}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-const struct fsdata_file file_index_html[] = {{file_files_header_html, data_index_html, data_index_html + 12, sizeof(data_index_html) - 12}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-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}};\r
-\r
-#define FS_ROOT file_tcp_header_html\r
-\r
-#define FS_NUMFILES 14\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. Neither the name of the Institute nor the names of its contributors \r
- * may be used to endorse or promote products derived from this software \r
- * without specific prior written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND \r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE \r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
- * SUCH DAMAGE. \r
- *\r
- * This file is part of the lwIP TCP/IP stack.\r
- * \r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: fsdata.h,v 1.4.2.1 2003/10/04 22:54:06 adam Exp $\r
- */\r
-#ifndef __FSDATA_H__\r
-#define __FSDATA_H__\r
-\r
-#include "uipopt.h"\r
-\r
-struct fsdata_file {\r
- const struct fsdata_file *next;\r
- const char *name;\r
- const char *data;\r
- const int len;\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t count;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-};\r
-\r
-struct fsdata_file_noconst {\r
- struct fsdata_file *next;\r
- char *name;\r
- char *data;\r
- int len;\r
-#ifdef FS_STATISTICS\r
-#if FS_STATISTICS == 1\r
- u16_t count;\r
-#endif /* FS_STATISTICS */\r
-#endif /* FS_STATISTICS */\r
-};\r
-\r
-#endif /* __FSDATA_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup httpd Web server\r
- * @{\r
- *\r
- * The uIP web server is a very simplistic implementation of an HTTP\r
- * server. It can serve web pages and files from a read-only ROM\r
- * filesystem, and provides a very small scripting language.\r
- *\r
- * The script language is very simple and works as follows. Each\r
- * script line starts with a command character, either "i", "t", "c",\r
- * "#" or ".". The "i" command tells the script interpreter to\r
- * "include" a file from the virtual file system and output it to the\r
- * web browser. The "t" command should be followed by a line of text\r
- * that is to be output to the browser. The "c" command is used to\r
- * call one of the C functions from the httpd-cgi.c file. A line that\r
- * starts with a "#" is ignored (i.e., the "#" denotes a comment), and\r
- * the "." denotes the last script line.\r
- *\r
- * The script that produces the file statistics page looks somewhat\r
- * like this:\r
- *\r
- \code\r
-i /header.html\r
-t <h1>File statistics</h1><br><table width="100%">\r
-t <tr><td><a href="/index.html">/index.html</a></td><td>\r
-c a /index.html\r
-t </td></tr> <tr><td><a href="/cgi/files">/cgi/files</a></td><td>\r
-c a /cgi/files\r
-t </td></tr> <tr><td><a href="/cgi/tcp">/cgi/tcp</a></td><td>\r
-c a /cgi/tcp\r
-t </td></tr> <tr><td><a href="/404.html">/404.html</a></td><td>\r
-c a /404.html\r
-t </td></tr></table>\r
-i /footer.plain\r
-.\r
- \endcode\r
- *\r
- */\r
-\r
-\r
-/**\r
- * \file\r
- * HTTP server.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: httpd.c,v 1.28.2.6 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-\r
-\r
-#include "uip.h"\r
-#include "httpd.h"\r
-#include "fs.h"\r
-#include "fsdata.h"\r
-#include "cgi.h"\r
-\r
-#define NULL (void *)0\r
-\r
-/* The HTTP server states: */\r
-#define HTTP_NOGET 0\r
-#define HTTP_FILE 1\r
-#define HTTP_TEXT 2\r
-#define HTTP_FUNC 3\r
-#define HTTP_END 4\r
-\r
-#ifdef DEBUG\r
-#include <stdio.h>\r
-#define PRINT(x) \r
-#define PRINTLN(x)\r
-#else /* DEBUG */\r
-#define PRINT(x)\r
-#define PRINTLN(x)\r
-#endif /* DEBUG */\r
-\r
-struct httpd_state *hs;\r
-\r
-extern const struct fsdata_file file_index_html;\r
-extern const struct fsdata_file file_404_html;\r
-\r
-static void next_scriptline(void);\r
-static void next_scriptstate(void);\r
-\r
-#define ISO_G 0x47\r
-#define ISO_E 0x45\r
-#define ISO_T 0x54\r
-#define ISO_slash 0x2f \r
-#define ISO_c 0x63\r
-#define ISO_g 0x67\r
-#define ISO_i 0x69\r
-#define ISO_space 0x20\r
-#define ISO_nl 0x0a\r
-#define ISO_cr 0x0d\r
-#define ISO_a 0x61\r
-#define ISO_t 0x74\r
-#define ISO_hash 0x23\r
-#define ISO_period 0x2e\r
-\r
-#define httpPORT 80\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the web server.\r
- *\r
- * Starts to listen for incoming connection requests on TCP port 80.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-httpd_init(void)\r
-{\r
- fs_init();\r
- \r
- /* Listen to port 80. */\r
- uip_listen(HTONS(httpPORT));\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-httpd_appcall(void)\r
-{\r
- struct fs_file fsfile; \r
-\r
- u8_t i;\r
-\r
- switch(uip_conn->lport) {\r
- /* This is the web server: */\r
- case HTONS(httpPORT):\r
- /* Pick out the application state from the uip_conn structure. */\r
- hs = (struct httpd_state *)(uip_conn->appstate);\r
-\r
- /* We use the uip_ test functions to deduce why we were\r
- called. If uip_connected() is non-zero, we were called\r
- because a remote host has connected to us. If\r
- uip_newdata() is non-zero, we were called because the\r
- remote host has sent us new data, and if uip_acked() is\r
- non-zero, the remote host has acknowledged the data we\r
- previously sent to it. */\r
- if(uip_connected()) {\r
- /* Since we have just been connected with the remote host, we\r
- reset the state for this connection. The ->count variable\r
- contains the amount of data that is yet to be sent to the\r
- remote host, and the ->state is set to HTTP_NOGET to signal\r
- that we haven't received any HTTP GET request for this\r
- connection yet. */\r
-\r
- hs->state = HTTP_NOGET;\r
- hs->count = 0;\r
- return;\r
-\r
- } else if(uip_poll()) {\r
- /* If we are polled ten times, we abort the connection. This is\r
- because we don't want connections lingering indefinately in\r
- the system. */\r
- if(hs->count++ >= 10) {\r
- uip_abort();\r
- }\r
- return;\r
- } else if(uip_newdata() && hs->state == HTTP_NOGET) {\r
- /* This is the first data we receive, and it should contain a\r
- GET. */\r
-\r
- /* Check for GET. */\r
- if(uip_appdata[0] != ISO_G ||\r
- uip_appdata[1] != ISO_E ||\r
- uip_appdata[2] != ISO_T ||\r
- uip_appdata[3] != ISO_space) {\r
- /* If it isn't a GET, we abort the connection. */\r
- uip_abort();\r
- return;\r
- }\r
- \r
- /* Find the file we are looking for. */\r
- for(i = 4; i < 40; ++i) {\r
- if(uip_appdata[i] == ISO_space ||\r
- uip_appdata[i] == ISO_cr ||\r
- uip_appdata[i] == ISO_nl) {\r
- uip_appdata[i] = 0;\r
- break;\r
- }\r
- }\r
-\r
- PRINT("request for file ");\r
- PRINTLN(&uip_appdata[4]);\r
- \r
- /* Check for a request for "/". */\r
- if(uip_appdata[4] == ISO_slash &&\r
- uip_appdata[5] == 0) {\r
- fs_open(file_index_html.name, &fsfile); \r
- } else {\r
- if(!fs_open((const char *)&uip_appdata[4], &fsfile)) {\r
- PRINTLN("couldn't open file");\r
- fs_open(file_404_html.name, &fsfile);\r
- }\r
- } \r
-\r
-\r
- if(uip_appdata[4] == ISO_slash &&\r
- uip_appdata[5] == ISO_c &&\r
- uip_appdata[6] == ISO_g &&\r
- uip_appdata[7] == ISO_i &&\r
- uip_appdata[8] == ISO_slash) {\r
- /* If the request is for a file that starts with "/cgi/", we\r
- prepare for invoking a script. */ \r
- hs->script = fsfile.data;\r
- next_scriptstate();\r
- } else {\r
- hs->script = NULL;\r
- /* The web server is now no longer in the HTTP_NOGET state, but\r
- in the HTTP_FILE state since is has now got the GET from\r
- the client and will start transmitting the file. */\r
- hs->state = HTTP_FILE;\r
-\r
- /* Point the file pointers in the connection state to point to\r
- the first byte of the file. */\r
- hs->dataptr = fsfile.data;\r
- hs->count = fsfile.len; \r
- } \r
- }\r
-\r
- \r
- if(hs->state != HTTP_FUNC) {\r
- /* Check if the client (remote end) has acknowledged any data that\r
- we've previously sent. If so, we move the file pointer further\r
- into the file and send back more data. If we are out of data to\r
- send, we close the connection. */\r
- if(uip_acked()) {\r
- if(hs->count >= uip_conn->len) {\r
- hs->count -= uip_conn->len;\r
- hs->dataptr += uip_conn->len;\r
- } else {\r
- hs->count = 0;\r
- }\r
- \r
- if(hs->count == 0) {\r
- if(hs->script != NULL) {\r
- next_scriptline();\r
- next_scriptstate();\r
- } else {\r
- uip_close();\r
- }\r
- }\r
- } \r
- } else {\r
- /* Call the CGI function. */\r
- if(cgitab[hs->script[2] - ISO_a](uip_acked())) {\r
- /* If the function returns non-zero, we jump to the next line\r
- in the script. */\r
- next_scriptline();\r
- next_scriptstate();\r
- }\r
- }\r
-\r
- if(hs->state != HTTP_FUNC && !uip_poll()) {\r
- /* Send a piece of data, but not more than the MSS of the\r
- connection. */\r
- uip_send(hs->dataptr, hs->count);\r
- }\r
-\r
- /* Finally, return to uIP. Our outgoing packet will soon be on its\r
- way... */\r
- return;\r
-\r
- default:\r
- /* Should never happen. */\r
- uip_abort();\r
- break;\r
- } \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/* next_scriptline():\r
- *\r
- * Reads the script until it finds a newline. */\r
-static void\r
-next_scriptline(void)\r
-{\r
- /* Loop until we find a newline character. */\r
- do {\r
- ++(hs->script);\r
- } while(hs->script[0] != ISO_nl);\r
-\r
- /* Eat up the newline as well. */\r
- ++(hs->script);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/* next_sciptstate:\r
- *\r
- * Reads one line of script and decides what to do next.\r
- */\r
-static void\r
-next_scriptstate(void)\r
-{\r
- struct fs_file fsfile;\r
- u8_t i;\r
-\r
- again:\r
- switch(hs->script[0]) {\r
- case ISO_t:\r
- /* Send a text string. */\r
- hs->state = HTTP_TEXT;\r
- hs->dataptr = &hs->script[2];\r
-\r
- /* Calculate length of string. */\r
- for(i = 0; hs->dataptr[i] != ISO_nl; ++i);\r
- hs->count = i; \r
- break;\r
- case ISO_c:\r
- /* Call a function. */\r
- hs->state = HTTP_FUNC;\r
- hs->dataptr = NULL;\r
- hs->count = 0;\r
- cgitab[hs->script[2] - ISO_a](0);\r
- break;\r
- case ISO_i: \r
- /* Include a file. */\r
- hs->state = HTTP_FILE;\r
- if(!fs_open(&hs->script[2], &fsfile)) {\r
- uip_abort();\r
- }\r
- hs->dataptr = fsfile.data;\r
- hs->count = fsfile.len;\r
- break;\r
- case ISO_hash:\r
- /* Comment line. */\r
- next_scriptline();\r
- goto again;\r
- break;\r
- case ISO_period:\r
- /* End of script. */\r
- hs->state = HTTP_END;\r
- uip_close();\r
- break;\r
- default:\r
- uip_abort();\r
- break;\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/** @} */\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup httpd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * HTTP server header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: httpd.h,v 1.4.2.3 2003/10/06 22:56:44 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __HTTPD_H__\r
-#define __HTTPD_H__\r
-\r
-void httpd_init(void);\r
-void httpd_appcall(void);\r
-\r
-/* UIP_APPCALL: the name of the application function. This function\r
- must return void and take no arguments (i.e., C type "void\r
- appfunc(void)"). */\r
-#ifndef UIP_APPCALL\r
-#define UIP_APPCALL httpd_appcall\r
-#endif\r
-\r
-struct httpd_state {\r
- u8_t state; \r
- u16_t count;\r
- char *dataptr;\r
- char *script;\r
-};\r
-\r
-\r
-/* UIP_APPSTATE_SIZE: The size of the application-specific state\r
- stored in the uip_conn structure. */\r
-#ifndef UIP_APPSTATE_SIZE\r
-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))\r
-#endif\r
-\r
-#define FS_STATISTICS 1\r
-\r
-extern struct httpd_state *hs;\r
-\r
-#endif /* __HTTPD_H__ */\r
+++ /dev/null
-// Copyright (c) 2001-2004 Rowley Associates Limited.\r
-//\r
-// This file may be distributed under the terms of the License Agreement\r
-// provided with this software.\r
-//\r
-// THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING THE\r
-// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.\r
-//\r
-////////////////////////////////////////////////////////////////////////////////\r
-//\r
-// Olimex LPC-P1 LED Example\r
-//\r
-// Description\r
-// -----------\r
-// This example demonstrates writing to the programmable peripheral interface.\r
-//\r
-////////////////////////////////////////////////////////////////////////////////\r
-\r
-#include <targets/LPC210x.h>\r
-\r
-#define LED_RED (1<<8)\r
-#define LED_GREEN (1<<10)\r
-#define LED_YELLOW (1<<11)\r
-\r
-#define LED1 LED_YELLOW\r
-\r
-static void\r
-ledInit()\r
-{\r
- IODIR |= LED1;\r
- IOSET = LED1;\r
-}\r
-\r
-static void\r
-ledOn(void)\r
-{\r
- IOCLR = LED1;\r
-}\r
-\r
-static void\r
-ledOff(void)\r
-{\r
- IOSET = LED1;\r
-}\r
-\r
-void\r
-delay(int d)\r
-{ \r
- for(; d; --d);\r
-}\r
- \r
-int\r
-main(void)\r
-{\r
- MAMCR = 2;\r
- ledInit();\r
- while (1)\r
- {\r
- ledOn();\r
- delay(100000);\r
- ledOff();\r
- delay(100000);\r
- }\r
- return 0;\r
-}\r
-\r
-\r
+++ /dev/null
-#!/usr/bin/perl\r
-\r
-open(OUTPUT, "> fsdata.c");\r
-\r
-chdir("fs");\r
-open(FILES, "find . -type f |");\r
-\r
-while($file = <FILES>) {\r
-\r
- # Do not include files in CVS directories nor backup files.\r
- if($file =~ /(CVS|~)/) {\r
- next;\r
- }\r
- \r
- chop($file);\r
- \r
- open(HEADER, "> /tmp/header") || die $!;\r
- if($file =~ /404.html/) {\r
- print(HEADER "HTTP/1.0 404 File not found\r\n");\r
- } else {\r
- print(HEADER "HTTP/1.0 200 OK\r\n");\r
- }\r
- print(HEADER "Server: uIP/0.9 (http://dunkels.com/adam/uip/)\r\n");\r
- if($file =~ /\.html$/) {\r
- print(HEADER "Content-type: text/html\r\n");\r
- } elsif($file =~ /\.gif$/) {\r
- print(HEADER "Content-type: image/gif\r\n");\r
- } elsif($file =~ /\.png$/) {\r
- print(HEADER "Content-type: image/png\r\n");\r
- } elsif($file =~ /\.jpg$/) {\r
- print(HEADER "Content-type: image/jpeg\r\n");\r
- } else {\r
- print(HEADER "Content-type: text/plain\r\n");\r
- }\r
- print(HEADER "\r\n");\r
- close(HEADER);\r
-\r
- unless($file =~ /\.plain$/ || $file =~ /cgi/) {\r
- system("cat /tmp/header $file > /tmp/file");\r
- } else {\r
- system("cp $file /tmp/file");\r
- }\r
- \r
- open(FILE, "/tmp/file");\r
- unlink("/tmp/file");\r
- unlink("/tmp/header");\r
-\r
- $file =~ s/\.//;\r
- $fvar = $file;\r
- $fvar =~ s-/-_-g;\r
- $fvar =~ s-\.-_-g;\r
- print(OUTPUT "static const char data".$fvar."[] = {\n");\r
- print(OUTPUT "\t/* $file */\n\t");\r
- for($j = 0; $j < length($file); $j++) {\r
- printf(OUTPUT "%#02x, ", unpack("C", substr($file, $j, 1)));\r
- }\r
- printf(OUTPUT "0,\n");\r
- \r
- \r
- $i = 0; \r
- while(read(FILE, $data, 1)) {\r
- if($i == 0) {\r
- print(OUTPUT "\t");\r
- }\r
- printf(OUTPUT "%#02x, ", unpack("C", $data));\r
- $i++;\r
- if($i == 10) {\r
- print(OUTPUT "\n");\r
- $i = 0;\r
- }\r
- }\r
- print(OUTPUT "};\n\n");\r
- close(FILE);\r
- push(@fvars, $fvar);\r
- push(@files, $file);\r
-}\r
-\r
-for($i = 0; $i < @fvars; $i++) {\r
- $file = $files[$i];\r
- $fvar = $fvars[$i];\r
-\r
- if($i == 0) {\r
- $prevfile = "NULL";\r
- } else {\r
- $prevfile = "file" . $fvars[$i - 1];\r
- }\r
- print(OUTPUT "const struct fsdata_file file".$fvar."[] = {{$prevfile, data$fvar, ");\r
- print(OUTPUT "data$fvar + ". (length($file) + 1) .", ");\r
- print(OUTPUT "sizeof(data$fvar) - ". (length($file) + 1) ."}};\n\n");\r
-}\r
-\r
-print(OUTPUT "#define FS_ROOT file$fvars[$i - 1]\n\n");\r
-print(OUTPUT "#define FS_NUMFILES $i");\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Memory block allocation routines.\r
- * \author Adam Dunkels <adam@sics.se>\r
- *\r
- * The memory block allocation routines provide a simple yet powerful\r
- * set of functions for managing a set of memory blocks of fixed\r
- * size. A set of memory blocks is statically declared with the\r
- * MEMB() macro. Memory blocks are allocated from the declared\r
- * memory by the memb_alloc() function, and are deallocated with the\r
- * memb_free() function.\r
- *\r
- * \note Because of namespace clashes only one MEMB() can be\r
- * declared per C module, and the name scope of a MEMB() memory\r
- * block is local to each C module.\r
- *\r
- * The following example shows how to declare and use a memory block\r
- * called "cmem" which has 8 chunks of memory with each memory chunk\r
- * being 20 bytes large.\r
- *\r
- \code\r
- MEMB(cmem, 20, 8);\r
-\r
- int main(int argc, char *argv[]) {\r
- char *ptr;\r
- \r
- memb_init(&cmem);\r
-\r
- ptr = memb_alloc(&cmem);\r
-\r
- if(ptr != NULL) {\r
- do_something(ptr);\r
- } else {\r
- printf("Could not allocate memory.\n");\r
- }\r
-\r
- if(memb_free(ptr) == 0) {\r
- printf("Deallocation succeeded.\n");\r
- }\r
- }\r
- \endcode\r
- * \r
- */\r
-\r
-#include <string.h>\r
-\r
-#include "memb.h"\r
-\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize a memory block that was declared with MEMB().\r
- *\r
- * \param m A memory block previosly declared with MEMB().\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-void\r
-memb_init(struct memb_blocks *m)\r
-{\r
- memset(m->mem, (m->size + 1) * m->num, 0);\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Allocate a memory block from a block of memory declared with MEMB().\r
- *\r
- * \param m A memory block previosly declared with MEMB().\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-char *\r
-memb_alloc(struct memb_blocks *m)\r
-{\r
- int i;\r
- char *ptr;\r
-\r
- ptr = m->mem;\r
- for(i = 0; i < m->num; ++i) {\r
- if(*ptr == 0) {\r
- /* If this block was unused, we increase the reference count to\r
- indicate that it now is used and return a pointer to the\r
- first byte following the reference counter. */\r
- ++*ptr;\r
- return ptr + 1;\r
- }\r
- ptr += m->size + 1;\r
- }\r
-\r
- /* No free block was found, so we return NULL to indicate failure to\r
- allocate block. */\r
- return NULL;\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Deallocate a memory block from a memory block previously declared\r
- * with MEMB().\r
- *\r
- * \param m m A memory block previosly declared with MEMB().\r
- *\r
- * \param ptr A pointer to the memory block that is to be deallocated.\r
- *\r
- * \return The new reference count for the memory block (should be 0\r
- * if successfully deallocated) or -1 if the pointer "ptr" did not\r
- * point to a legal memory block.\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-char\r
-memb_free(struct memb_blocks *m, char *ptr)\r
-{\r
- int i;\r
- char *ptr2;\r
-\r
- /* Walk through the list of blocks and try to find the block to\r
- which the pointer "ptr" points to. */\r
- ptr2 = m->mem;\r
- for(i = 0; i < m->num; ++i) {\r
- \r
- if(ptr2 == ptr - 1) {\r
- /* We've found to block to which "ptr" points so we decrease the\r
- reference count and return the new value of it. */ \r
- return --*ptr2;\r
- }\r
- ptr2 += m->size + 1;\r
- }\r
- return -1;\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * Increase the reference count for a memory chunk.\r
- *\r
- * \note No sanity checks are currently made.\r
- *\r
- * \param m m A memory block previosly declared with MEMB().\r
- *\r
- * \param ptr A pointer to the memory chunk for which the reference\r
- * count should be increased.\r
- *\r
- * \return The new reference count.\r
- */\r
-/*------------------------------------------------------------------------------*/\r
-char\r
-memb_ref(struct memb_blocks *m, char *ptr)\r
-{\r
- return ++*(ptr - 1);\r
-}\r
-/*------------------------------------------------------------------------------*/\r
-\r
-\r
-\r
-\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Memory block allocation routines.\r
- * \author Adam Dunkels <adam@sics.se>\r
- *\r
- */\r
-\r
-#ifndef __MEMB_H__\r
-#define __MEMB_H__\r
-\r
-/**\r
- * Declare a memory block.\r
- *\r
- * \param name The name of the memory block (later used with\r
- * memb_init(), memb_alloc() and memb_free()).\r
- *\r
- * \param size The size of each memory chunk, in bytes.\r
- *\r
- * \param num The total number of memory chunks in the block.\r
- *\r
- */\r
-#define MEMB(name, size, num) \\r
- static char memb_mem[(size + 1) * num]; \\r
- static struct memb_blocks name = {size, num, memb_mem}\r
-\r
-struct memb_blocks {\r
- unsigned short size;\r
- unsigned short num;\r
- char *mem;\r
-};\r
-\r
-void memb_init(struct memb_blocks *m);\r
-char *memb_alloc(struct memb_blocks *m);\r
-char memb_ref(struct memb_blocks *m, char *ptr);\r
-char memb_free(struct memb_blocks *m, char *ptr);\r
-\r
-\r
-#endif /* __MEMB_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup slip Serial Line IP (SLIP) protocol\r
- * @{\r
- *\r
- * The SLIP protocol is a very simple way to transmit IP packets over\r
- * a serial line. It does not provide any framing or error control,\r
- * and is therefore not very widely used today.\r
- *\r
- * This SLIP implementation requires two functions for accessing the\r
- * serial device: slipdev_char_poll() and slipdev_char_put(). These\r
- * must be implemented specifically for the system on which the SLIP\r
- * protocol is to be run.\r
- */\r
-\r
-/**\r
- * \file\r
- * SLIP protocol implementation\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: slipdev.c,v 1.1.2.3 2003/10/07 13:23:01 adam Exp $\r
- *\r
- */\r
-\r
-/*\r
- * This is a generic implementation of the SLIP protocol over an RS232\r
- * (serial) device. \r
- *\r
- * Huge thanks to Ullrich von Bassewitz <uz@cc65.org> of cc65 fame for\r
- * and endless supply of bugfixes, insightsful comments and\r
- * suggestions, and improvements to this code!\r
- */\r
-\r
-#include "uip.h"\r
-\r
-#define SLIP_END 0300\r
-#define SLIP_ESC 0333\r
-#define SLIP_ESC_END 0334\r
-#define SLIP_ESC_ESC 0335\r
-\r
-static u8_t slip_buf[UIP_BUFSIZE];\r
-\r
-static u16_t len, tmplen;\r
-static u8_t lastc;\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Send the packet in the uip_buf and uip_appdata buffers using the\r
- * SLIP protocol.\r
- *\r
- * The first 40 bytes of the packet (the IP and TCP headers) are read\r
- * from the uip_buf buffer, and the following bytes (the application\r
- * data) are read from the uip_appdata buffer.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-slipdev_send(void)\r
-{\r
- u16_t i;\r
- u8_t *ptr;\r
- u8_t c;\r
-\r
- slipdev_char_put(SLIP_END);\r
-\r
- ptr = uip_buf;\r
- for(i = 0; i < uip_len; ++i) {\r
- if(i == 40) {\r
- ptr = (u8_t *)uip_appdata;\r
- }\r
- c = *ptr++;\r
- switch(c) {\r
- case SLIP_END:\r
- slipdev_char_put(SLIP_ESC);\r
- slipdev_char_put(SLIP_ESC_END);\r
- break;\r
- case SLIP_ESC:\r
- slipdev_char_put(SLIP_ESC);\r
- slipdev_char_put(SLIP_ESC_ESC);\r
- break;\r
- default:\r
- slipdev_char_put(c);\r
- break;\r
- }\r
- }\r
- slipdev_char_put(SLIP_END);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/** \r
- * Poll the SLIP device for an available packet.\r
- *\r
- * This function will poll the SLIP device to see if a packet is\r
- * available. It uses a buffer in which all avaliable bytes from the\r
- * RS232 interface are read into. When a full packet has been read\r
- * into the buffer, the packet is copied into the uip_buf buffer and\r
- * the length of the packet is returned.\r
- *\r
- * \return The length of the packet placed in the uip_buf buffer, or\r
- * zero if no packet is available.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-slipdev_poll(void)\r
-{\r
- u8_t c;\r
- \r
- while(slipdev_char_poll(c)) {\r
- switch(c) {\r
- case SLIP_ESC:\r
- lastc = c;\r
- break;\r
- \r
- case SLIP_END:\r
- lastc = c;\r
- /* End marker found, we copy our input buffer to the uip_buf\r
- buffer and return the size of the packet we copied. */\r
- memcpy(uip_buf, slip_buf, len);\r
- tmplen = len;\r
- len = 0;\r
- return tmplen;\r
- \r
- default: \r
- if(lastc == SLIP_ESC) {\r
- lastc = c;\r
- /* Previous read byte was an escape byte, so this byte will be\r
- interpreted differently from others. */\r
- switch(c) {\r
- case SLIP_ESC_END:\r
- c = SLIP_END;\r
- break;\r
- case SLIP_ESC_ESC:\r
- c = SLIP_ESC;\r
- break;\r
- }\r
- } else {\r
- lastc = c;\r
- }\r
- \r
- slip_buf[len] = c;\r
- ++len;\r
- \r
- if(len > UIP_BUFSIZE) {\r
- len = 0;\r
- }\r
- \r
- break;\r
- }\r
- }\r
- return 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the SLIP module.\r
- *\r
- * This function does not initialize the underlying RS232 device, but\r
- * only the SLIP part.\r
- */ \r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-slipdev_init(void)\r
-{\r
- lastc = len = 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
-/** @} */\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup slip\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * SLIP header file.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: slipdev.h,v 1.1.2.3 2003/10/06 22:42:51 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __SLIPDEV_H__\r
-#define __SLIPDEV_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * Put a character on the serial device.\r
- *\r
- * This function is used by the SLIP implementation to put a character\r
- * on the serial device. It must be implemented specifically for the\r
- * system on which the SLIP implementation is to be run.\r
- *\r
- * \param c The character to be put on the serial device.\r
- */\r
-void slipdev_char_put(u8_t c);\r
-\r
-/**\r
- * Poll the serial device for a character.\r
- *\r
- * This function is used by the SLIP implementation to poll the serial\r
- * device for a character. It must be implemented specifically for the\r
- * system on which the SLIP implementation is to be run.\r
- *\r
- * The function should return immediately regardless if a character is\r
- * available or not. If a character is available it should be placed\r
- * at the memory location pointed to by the pointer supplied by the\r
- * arguement c.\r
- *\r
- * \param c A pointer to a byte that is filled in by the function with\r
- * the received character, if available.\r
- *\r
- * \retval 0 If no character is available.\r
- * \retval Non-zero If a character is available.\r
- */\r
-u8_t slipdev_char_poll(u8_t *c);\r
-\r
-void slipdev_init(void);\r
-void slipdev_send(void);\r
-u16_t slipdev_poll(void);\r
-\r
-#endif /* __SLIPDEV_H__ */\r
-\r
-/** @} */\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Swedish Institute of Computer Science.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- *\r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- *\r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- *\r
- * 3. Neither the name of the Institute nor the names of its contributors \r
- * may be used to endorse or promote products derived from this software \r
- * without specific prior written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND \r
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE \r
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE \r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE \r
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL \r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS \r
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) \r
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT \r
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY \r
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
- * SUCH DAMAGE. \r
- *\r
- * Author: Adam Dunkels <adam@sics.se>\r
- *\r
- * $Id: tapdev.c,v 1.7.2.1 2003/10/07 13:23:19 adam Exp $\r
- */\r
-\r
-\r
-#include <fcntl.h>\r
-#include <stdlib.h>\r
-#include <stdio.h>\r
-#include <unistd.h>\r
-#include <string.h>\r
-#include <sys/ioctl.h>\r
-#include <sys/socket.h>\r
-#include <sys/types.h>\r
-#include <sys/time.h>\r
-#include <sys/uio.h>\r
-#include <sys/socket.h>\r
-\r
-#ifdef linux\r
-#include <sys/ioctl.h>\r
-#include <linux/if.h>\r
-#include <linux/if_tun.h>\r
-#define DEVTAP "/dev/net/tun"\r
-#else /* linux */\r
-#define DEVTAP "/dev/tap0"\r
-#endif /* linux */\r
-\r
-#include "uip.h"\r
-\r
-static int fd;\r
-\r
-static unsigned long lasttime;\r
-static struct timezone tz;\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-tapdev_init(void)\r
-{\r
- char buf[1024];\r
- \r
- fd = open(DEVTAP, O_RDWR);\r
- if(fd == -1) {\r
- perror("tapdev: tapdev_init: open");\r
- exit(1);\r
- }\r
-\r
-#ifdef linux\r
- {\r
- struct ifreq ifr;\r
- memset(&ifr, 0, sizeof(ifr));\r
- ifr.ifr_flags = IFF_TAP|IFF_NO_PI;\r
- if (ioctl(fd, TUNSETIFF, (void *) &ifr) < 0) {\r
- perror(buf);\r
- exit(1);\r
- }\r
- }\r
-#endif /* Linux */\r
-\r
- snprintf(buf, sizeof(buf), "ifconfig tap0 inet %d.%d.%d.%d",\r
- UIP_DRIPADDR0, UIP_DRIPADDR1, UIP_DRIPADDR2, UIP_DRIPADDR3);\r
- system(buf);\r
-\r
- lasttime = 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-unsigned int\r
-tapdev_read(void)\r
-{\r
- fd_set fdset;\r
- struct timeval tv, now;\r
- int ret;\r
- \r
- if(lasttime >= 500000) {\r
- lasttime = 0;\r
- return 0;\r
- }\r
- \r
- tv.tv_sec = 0;\r
- tv.tv_usec = 500000 - lasttime;\r
-\r
-\r
- FD_ZERO(&fdset);\r
- FD_SET(fd, &fdset);\r
-\r
- gettimeofday(&now, &tz); \r
- ret = select(fd + 1, &fdset, NULL, NULL, &tv);\r
- if(ret == 0) {\r
- lasttime = 0; \r
- return 0;\r
- } \r
- ret = read(fd, uip_buf, UIP_BUFSIZE); \r
- if(ret == -1) {\r
- perror("tap_dev: tapdev_read: read");\r
- }\r
- gettimeofday(&tv, &tz);\r
- lasttime += (tv.tv_sec - now.tv_sec) * 1000000 + (tv.tv_usec - now.tv_usec);\r
-\r
- return ret;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-tapdev_send(void)\r
-{\r
- int ret;\r
- struct iovec iov[2];\r
- \r
-#ifdef linux\r
- {\r
- char tmpbuf[UIP_BUFSIZE];\r
- int i;\r
-\r
- for(i = 0; i < 40 + UIP_LLH_LEN; i++) {\r
- tmpbuf[i] = uip_buf[i];\r
- }\r
- \r
- for(; i < uip_len; i++) {\r
- tmpbuf[i] = uip_appdata[i - 40 - UIP_LLH_LEN];\r
- }\r
- \r
- ret = write(fd, tmpbuf, uip_len);\r
- } \r
-#else \r
-\r
- if(uip_len < 40 + UIP_LLH_LEN) {\r
- ret = write(fd, uip_buf, uip_len + UIP_LLH_LEN);\r
- } else {\r
- iov[0].iov_base = uip_buf;\r
- iov[0].iov_len = 40 + UIP_LLH_LEN;\r
- iov[1].iov_base = (char *)uip_appdata;\r
- iov[1].iov_len = uip_len - (40 + UIP_LLH_LEN); \r
- \r
- ret = writev(fd, iov, 2);\r
- }\r
-#endif\r
- if(ret == -1) {\r
- perror("tap_dev: tapdev_send: writev");\r
- exit(1);\r
- }\r
-} \r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: tapdev.h,v 1.1.2.1 2003/10/04 22:54:17 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __TAPDEV_H__\r
-#define __TAPDEV_H__\r
-\r
-void tapdev_init(void);\r
-unsigned int tapdev_read(void);\r
-void tapdev_send(void);\r
-\r
-#endif /* __TAPDEV_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup telnetd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * An example telnet server shell\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the Contiki desktop OS.\r
- *\r
- * $Id: telnetd-shell.c,v 1.1.2.1 2003/10/06 22:56:22 adam Exp $\r
- *\r
- */\r
-\r
-#include "uip.h"\r
-#include "telnetd.h"\r
-#include <string.h>\r
-\r
-struct ptentry {\r
- char c;\r
- void (* pfunc)(struct telnetd_state *s, char *str);\r
-};\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-parse(struct telnetd_state *s, register char *str, struct ptentry *t)\r
-{\r
- register struct ptentry *p;\r
- char *sstr;\r
-\r
- sstr = str;\r
- \r
- /* Loop over the parse table entries in t in order to find one that\r
- matches the first character in str. */\r
- for(p = t; p->c != 0; ++p) {\r
- if(*str == p->c) {\r
- /* Skip rest of the characters up to the first space. */\r
- while(*str != ' ') {\r
- ++str;\r
- }\r
-\r
- /* Skip all spaces.*/\r
- while(*str == ' ') {\r
- ++str;\r
- }\r
-\r
- /* Call parse table entry function and return. */\r
- p->pfunc(s, str);\r
- return;\r
- }\r
- }\r
-\r
- /* Did not find matching entry in parse table. We just call the\r
- default handler supplied by the caller and return. */\r
- p->pfunc(s, str);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-exitt(struct telnetd_state *s, char *str)\r
-{\r
- telnetd_close(s);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-inttostr(register char *str, unsigned int i)\r
-{\r
- str[0] = '0' + i / 100;\r
- if(str[0] == '0') {\r
- str[0] = ' ';\r
- }\r
- str[1] = '0' + (i / 10) % 10;\r
- if(str[1] == '0') {\r
- str[1] = ' ';\r
- }\r
- str[2] = '0' + i % 10;\r
- str[3] = ' ';\r
- str[4] = 0;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-stats(struct telnetd_state *s, char *strr)\r
-{\r
- char str[10];\r
-\r
- inttostr(str, uip_stat.ip.recv);\r
- telnetd_output(s, "IP packets received ", str);\r
- inttostr(str, uip_stat.ip.sent);\r
- telnetd_output(s, "IP packets sent ", str);\r
- inttostr(str, uip_stat.ip.drop);\r
- telnetd_output(s, "IP packets dropped ", str);\r
-\r
- inttostr(str, uip_stat.icmp.recv);\r
- telnetd_output(s, "ICMP packets received ", str);\r
- inttostr(str, uip_stat.icmp.sent);\r
- telnetd_output(s, "ICMP packets sent ", str);\r
- inttostr(str, uip_stat.icmp.drop);\r
- telnetd_output(s, "ICMP packets dropped ", str);\r
-\r
- inttostr(str, uip_stat.tcp.recv);\r
- telnetd_output(s, "TCP packets received ", str);\r
- inttostr(str, uip_stat.tcp.sent);\r
- telnetd_output(s, "TCP packets sent ", str);\r
- inttostr(str, uip_stat.tcp.drop);\r
- telnetd_output(s, "TCP packets dropped ", str);\r
- inttostr(str, uip_stat.tcp.rexmit);\r
- telnetd_output(s, "TCP packets retransmitted ", str);\r
- inttostr(str, uip_stat.tcp.synrst);\r
- telnetd_output(s, "TCP connection attempts ", str);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-help(struct telnetd_state *s, char *str)\r
-{\r
- telnetd_output(s, "Available commands:", "");\r
- telnetd_output(s, "stats - show uIP statistics", "");\r
- telnetd_output(s, "exit - exit shell", ""); \r
- telnetd_output(s, "? - show this help", ""); \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-none(struct telnetd_state *s, char *str)\r
-{\r
- if(strlen(str) > 0) {\r
- telnetd_output(s, "Unknown command", "");\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static struct ptentry configparsetab[] =\r
- {{'s', stats},\r
- {'e', exitt},\r
- {'?', help},\r
-\r
- /* Default action */\r
- {0, none}};\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_connected(struct telnetd_state *s)\r
-{\r
- telnetd_output(s, "uIP command shell", "");\r
- telnetd_output(s, "Type '?' for help", ""); \r
- telnetd_prompt(s, "uIP-0.9> "); \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_input(struct telnetd_state *s, char *cmd)\r
-{\r
- parse(s, cmd, configparsetab);\r
- telnetd_prompt(s, "uIP-0.9> "); \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \addtogroup exampleapps\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup telnetd Telnet server\r
- * @{\r
- *\r
- * The uIP telnet server provides a command based interface to uIP. It\r
- * allows using the "telnet" application to access uIP, and implements\r
- * the required telnet option negotiation.\r
- *\r
- * The code is structured in a way which makes it possible to add\r
- * commands without having to rewrite the main telnet code. The main\r
- * telnet code calls two callback functions, telnetd_connected() and\r
- * telnetd_input(), when a telnet connection has been established and\r
- * when a line of text arrives on a telnet connection. These two\r
- * functions can be implemented in a way which suits the particular\r
- * application or environment in which the uIP system is intended to\r
- * be run.\r
- *\r
- * The uIP distribution contains an example telnet shell\r
- * implementation that provides a basic set of commands.\r
- */\r
-\r
-/**\r
- * \file\r
- * Implementation of the Telnet server.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: telnetd.c,v 1.1.2.2 2003/10/07 13:47:50 adam Exp $\r
- *\r
- */\r
-\r
-#include "uip.h"\r
-#include "memb.h"\r
-#include "telnetd.h"\r
-#include <string.h>\r
-\r
-#define ISO_nl 0x0a\r
-#define ISO_cr 0x0d\r
-\r
-MEMB(linemem, TELNETD_LINELEN, TELNETD_NUMLINES);\r
-\r
-static u8_t i;\r
-\r
-#define STATE_NORMAL 0\r
-#define STATE_IAC 1\r
-#define STATE_WILL 2\r
-#define STATE_WONT 3\r
-#define STATE_DO 4 \r
-#define STATE_DONT 5\r
-#define STATE_CLOSE 6\r
-\r
-#define TELNET_IAC 255\r
-#define TELNET_WILL 251\r
-#define TELNET_WONT 252\r
-#define TELNET_DO 253\r
-#define TELNET_DONT 254\r
-/*-----------------------------------------------------------------------------------*/\r
-static char *\r
-alloc_line(void)\r
-{ \r
- return memb_alloc(&linemem);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-dealloc_line(char *line)\r
-{\r
- memb_free(&linemem, line);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-sendline(struct telnetd_state *s, char *line)\r
-{\r
- static unsigned int i;\r
- for(i = 0; i < TELNETD_NUMLINES; ++i) {\r
- if(s->lines[i] == NULL) {\r
- s->lines[i] = line;\r
- break;\r
- }\r
- }\r
- if(i == TELNETD_NUMLINES) {\r
- dealloc_line(line);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Close a telnet session.\r
- *\r
- * This function can be called from a telnet command in order to close\r
- * the connection.\r
- *\r
- * \param s The connection which is to be closed.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_close(struct telnetd_state *s)\r
-{\r
- s->state = STATE_CLOSE;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Print a prompt on a telnet connection.\r
- *\r
- * This function can be called by the telnet command shell in order to\r
- * print out a command prompt.\r
- *\r
- * \param s A telnet connection.\r
- *\r
- * \param str The command prompt.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_prompt(struct telnetd_state *s, char *str)\r
-{\r
- char *line;\r
- line = alloc_line();\r
- if(line != NULL) {\r
- strncpy(line, str, TELNETD_LINELEN);\r
- sendline(s, line);\r
- } \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Print out a string on a telnet connection.\r
- *\r
- * This function can be called from a telnet command parser in order\r
- * to print out a string of text on the connection. The two strings\r
- * given as arguments to the function will be concatenated, a carrige\r
- * return and a new line character will be added, and the line is\r
- * sent.\r
- *\r
- * \param s The telnet connection.\r
- *\r
- * \param str1 The first string.\r
- *\r
- * \param str2 The second string.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_output(struct telnetd_state *s, char *str1, char *str2)\r
-{\r
- static unsigned len;\r
- char *line;\r
- \r
- line = alloc_line();\r
- if(line != NULL) {\r
- len = strlen(str1);\r
- strncpy(line, str1, TELNETD_LINELEN);\r
- if(len < TELNETD_LINELEN) {\r
- strncpy(line + len, str2, TELNETD_LINELEN - len);\r
- }\r
- len = strlen(line);\r
- if(len < TELNETD_LINELEN - 2) {\r
- line[len] = ISO_cr;\r
- line[len+1] = ISO_nl;\r
- line[len+2] = 0;\r
- }\r
- sendline(s, line);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the telnet server.\r
- *\r
- * This function will perform the necessary initializations and start\r
- * listening on TCP port 23.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_init(void)\r
-{\r
- memb_init(&linemem);\r
- uip_listen(HTONS(23));\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-acked(struct telnetd_state *s) \r
-{\r
- dealloc_line(s->lines[0]);\r
- for(i = 1; i < TELNETD_NUMLINES; ++i) {\r
- s->lines[i - 1] = s->lines[i];\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-senddata(struct telnetd_state *s) \r
-{\r
- if(s->lines[0] != NULL) {\r
- uip_send(s->lines[0], strlen(s->lines[0]));\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-getchar(struct telnetd_state *s, u8_t c)\r
-{\r
- if(c == ISO_cr) {\r
- return;\r
- }\r
- \r
- s->buf[(int)s->bufptr] = c; \r
- if(s->buf[(int)s->bufptr] == ISO_nl ||\r
- s->bufptr == sizeof(s->buf) - 1) { \r
- if(s->bufptr > 0) {\r
- s->buf[(int)s->bufptr] = 0;\r
- }\r
- telnetd_input(s, s->buf);\r
- s->bufptr = 0;\r
- } else {\r
- ++s->bufptr;\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-sendopt(struct telnetd_state *s, u8_t option, u8_t value)\r
-{\r
- char *line;\r
- line = alloc_line();\r
- if(line != NULL) {\r
- line[0] = TELNET_IAC;\r
- line[1] = option;\r
- line[2] = value;\r
- line[3] = 0;\r
- sendline(s, line);\r
- } \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-newdata(struct telnetd_state *s)\r
-{\r
- u16_t len;\r
- u8_t c;\r
- \r
- \r
- len = uip_datalen();\r
- \r
- while(len > 0 && s->bufptr < sizeof(s->buf)) {\r
- c = *uip_appdata;\r
- ++uip_appdata;\r
- --len;\r
- switch(s->state) {\r
- case STATE_IAC:\r
- if(c == TELNET_IAC) {\r
- getchar(s, c);\r
- s->state = STATE_NORMAL;\r
- } else {\r
- switch(c) {\r
- case TELNET_WILL:\r
- s->state = STATE_WILL;\r
- break;\r
- case TELNET_WONT:\r
- s->state = STATE_WONT;\r
- break;\r
- case TELNET_DO:\r
- s->state = STATE_DO;\r
- break;\r
- case TELNET_DONT:\r
- s->state = STATE_DONT;\r
- break;\r
- default:\r
- s->state = STATE_NORMAL;\r
- break;\r
- }\r
- }\r
- break;\r
- case STATE_WILL:\r
- /* Reply with a DONT */\r
- sendopt(s, TELNET_DONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- \r
- case STATE_WONT:\r
- /* Reply with a DONT */\r
- sendopt(s, TELNET_DONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- case STATE_DO:\r
- /* Reply with a WONT */\r
- sendopt(s, TELNET_WONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- case STATE_DONT:\r
- /* Reply with a WONT */\r
- sendopt(s, TELNET_WONT, c);\r
- s->state = STATE_NORMAL;\r
- break;\r
- case STATE_NORMAL:\r
- if(c == TELNET_IAC) {\r
- s->state = STATE_IAC;\r
- } else {\r
- getchar(s, c);\r
- } \r
- break;\r
- } \r
-\r
- \r
- } \r
- \r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-telnetd_app(void)\r
-{\r
- struct telnetd_state *s;\r
-\r
- s = (struct telnetd_state *)uip_conn->appstate;\r
- \r
- if(uip_connected()) {\r
-\r
- for(i = 0; i < TELNETD_NUMLINES; ++i) {\r
- s->lines[i] = NULL;\r
- }\r
- s->bufptr = 0;\r
- s->state = STATE_NORMAL;\r
-\r
- telnetd_connected(s);\r
- senddata(s);\r
- return;\r
- }\r
-\r
- if(s->state == STATE_CLOSE) {\r
- s->state = STATE_NORMAL;\r
- uip_close();\r
- return;\r
- }\r
- \r
- if(uip_closed()) {\r
- telnetd_output(s, "Connection closed", "");\r
- }\r
-\r
- \r
- if(uip_aborted()) {\r
- telnetd_output(s, "Connection reset", "");\r
- }\r
- \r
- if(uip_timedout()) {\r
- telnetd_output(s, "Connection timed out", "");\r
- }\r
- \r
- if(uip_acked()) {\r
- acked(s);\r
- }\r
- \r
- if(uip_newdata()) {\r
- newdata(s);\r
- }\r
- \r
- if(uip_rexmit() ||\r
- uip_newdata() ||\r
- uip_acked()) {\r
- senddata(s);\r
- } else if(uip_poll()) { \r
- senddata(s);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \addtogroup telnetd\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Header file for the telnet server.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2002, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: telnetd.h,v 1.1.2.2 2003/10/07 13:22:27 adam Exp $\r
- *\r
- */\r
-#ifndef __TELNETD_H__\r
-#define __TELNETD_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * The maximum length of a telnet line.\r
- *\r
- * \hideinitializer\r
- */\r
-#define TELNETD_LINELEN 36\r
-\r
-/**\r
- * The number of output lines being buffered for all telnet\r
- * connections.\r
- *\r
- * \hideinitializer\r
- */\r
-#define TELNETD_NUMLINES 2\r
-\r
-/**\r
- * A telnet connection structure.\r
- */\r
-struct telnetd_state {\r
- char *lines[TELNETD_NUMLINES];\r
- char buf[TELNETD_LINELEN];\r
- char bufptr;\r
- u8_t state;\r
-};\r
-\r
-\r
-/**\r
- * Callback function that is called when a telnet connection has been\r
- * established.\r
- *\r
- * \param s The telnet connection. \r
- */\r
-void telnetd_connected(struct telnetd_state *s);\r
-\r
-/**\r
- * Callback function that is called when a line of text has arrived on\r
- * a telnet connection.\r
- *\r
- * \param s The telnet connection.\r
- *\r
- * \param cmd The line of text.\r
- */\r
-void telnetd_input(struct telnetd_state *s, char *cmd);\r
-\r
-\r
-void telnetd_close(struct telnetd_state *s);\r
-void telnetd_output(struct telnetd_state *s, char *s1, char *s2);\r
-void telnetd_prompt(struct telnetd_state *s, char *str);\r
-\r
-void telnetd_app(void);\r
-\r
-#ifndef UIP_APPCALL\r
-#define UIP_APPCALL telnetd_app\r
-#endif\r
-\r
-#ifndef UIP_APPSTATE_SIZE\r
-#define UIP_APPSTATE_SIZE (sizeof(struct telnetd_state))\r
-#endif\r
-\r
-void telnetd_init(void);\r
-\r
-\r
-#endif /* __TELNET_H__ */\r
-\r
-/** @} */\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: main.c,v 1.10.2.4 2003/10/21 21:27:51 adam Exp $\r
- *\r
- */\r
-\r
-\r
-#include <stdlib.h> /* For system(). */\r
-#include <stdio.h> /* For printf(). */\r
-\r
-#include "FreeRTOS.h"\r
-#include "task.h"\r
-\r
-#undef HTONS\r
-\r
-#include "cs8900a.h"\r
-#include "uip.h"\r
-#include "uip_arp.h"\r
-#include "tapdev.h"\r
-#include "httpd.h"\r
-\r
-static const struct uip_eth_addr ethaddr = {{0x00,0x00,0xe2,0x58,0xb6,0x6b}};\r
-\r
-#define BUF ((struct uip_eth_hdr *)&uip_buf[0])\r
-#define uipSHORT_DELAY ( ( TickType_t ) 2 / portTICK_PERIOD_MS )\r
-\r
-#ifndef NULL\r
-#define NULL (void *)0\r
-#endif /* NULL */\r
-\r
-static volatile TickType_t start, current;\r
-\r
-#define RT_CLOCK_SECOND ( configTICK_RATE_HZ / 2 )\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * \internal\r
- * A real-time clock.\r
- *\r
- * This example main() function uses polling of a real-time clock in\r
- * order to know when the periodic processing should be\r
- * performed. This is implemented using this function - rt_ticks(). In\r
- * this example unix implementation, it simply calls the unix function\r
- * gettimeofday() which returns the current wall clock time.\r
- *\r
- * For a micro-controller, a simple way to implement this function is\r
- * by having a counter that is incremented by a timer interrupt and\r
- * read by this function.\r
- * \r
- * The macro RT_CLOCK_SECOND should be defined as the approximate\r
- * number of ticks that are elapsed during one second. \r
- */\r
-#define rt_ticks xTaskGetTickCount\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-void vuIP_TASK( void *pvParameters )\r
-{\r
-u8_t i, arptimer;\r
-u16_t addr[2];\r
-int z = 3;\r
-\r
- /* Initialize the uIP TCP/IP stack. */\r
- uip_init();\r
- uip_arp_init();\r
-\r
- /* Initialize the device driver. */ \r
- cs8900a_init();\r
-\r
- /* Initialize the HTTP server. */\r
- httpd_init();\r
-\r
- start = rt_ticks();\r
- arptimer = 0;\r
- \r
- while(1) \r
- {\r
- /* Let the network device driver read an entire IP packet\r
- into the uip_buf. If it returns > 0, there is a packet in the\r
- uip_buf buffer. */\r
- uip_len = cs8900a_poll();\r
-\r
- if(uip_len > 0) \r
- {\r
- /* A packet is present in the packet buffer. We call the\r
- appropriate ARP functions depending on what kind of packet we\r
- have received. If the packet is an IP packet, we should call\r
- uip_input() as well. */\r
- if(BUF->type == htons(UIP_ETHTYPE_IP)) \r
- {\r
- uip_arp_ipin();\r
- uip_input();\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */\r
- if(uip_len > 0) \r
- {\r
- uip_arp_out();\r
- cs8900a_send();\r
- }\r
- } \r
- else if(BUF->type == htons(UIP_ETHTYPE_ARP)) \r
- {\r
- uip_arp_arpin();\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */ \r
- if(uip_len > 0) \r
- { \r
- cs8900a_send();\r
- }\r
- }\r
- } \r
- else \r
- {\r
- /* The poll function returned 0, so no packet was\r
- received. Instead we check if there is time that we do the\r
- periodic processing. */\r
- current = rt_ticks();\r
-\r
- if((u16_t)(current - start) >= (u16_t)RT_CLOCK_SECOND / 2) \r
- {\r
- start = current;\r
-\r
- for(i = 0; i < UIP_CONNS; i++) \r
- {\r
- uip_periodic(i);\r
-\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */\r
- \r
- if(uip_len > 0) \r
- {\r
- uip_arp_out();\r
- cs8900a_send();\r
- }\r
- }\r
-\r
- #if UIP_UDP\r
- for(i = 0; i < UIP_UDP_CONNS; i++) \r
- {\r
- uip_udp_periodic(i);\r
-\r
- /* If the above function invocation resulted in data that\r
- should be sent out on the network, the global variable\r
- uip_len is set to a value > 0. */\r
-\r
- if(uip_len > 0) \r
- {\r
- uip_arp_out();\r
- tapdev_send();\r
- }\r
- }\r
- #endif /* UIP_UDP */\r
-\r
- /* Call the ARP timer function every 10 seconds. */\r
- if(++arptimer == 20) \r
- { \r
- uip_arp_timer();\r
- arptimer = 0;\r
- }\r
- }\r
- else\r
- {\r
- vTaskDelay( uipSHORT_DELAY );\r
- } }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
-\r
-\r
-\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * The uIP TCP/IP stack code.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip.c,v 1.62.2.10 2003/10/07 13:23:01 adam Exp $\r
- *\r
- */\r
-\r
-/*\r
-This is a small implementation of the IP and TCP protocols (as well as\r
-some basic ICMP stuff). The implementation couples the IP, TCP and the\r
-application layers very tightly. To keep the size of the compiled code\r
-down, this code also features heavy usage of the goto statement.\r
-\r
-The principle is that we have a small buffer, called the uip_buf, in\r
-which the device driver puts an incoming packet. The TCP/IP stack\r
-parses the headers in the packet, and calls upon the application. If\r
-the remote host has sent data to the application, this data is present\r
-in the uip_buf and the application read the data from there. It is up\r
-to the application to put this data into a byte stream if needed. The\r
-application will not be fed with data that is out of sequence.\r
-\r
-If the application whishes to send data to the peer, it should put its\r
-data into the uip_buf, 40 bytes from the start of the buffer. The\r
-TCP/IP stack will calculate the checksums, and fill in the necessary\r
-header fields and finally send the packet back to the peer.\r
-*/\r
-\r
-#include "uip.h"\r
-#include "uipopt.h"\r
-#include "uip_arch.h"\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* Variable definitions. */\r
-\r
-\r
-/* 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 */\r
-#if UIP_FIXEDADDR > 0\r
-const u16_t uip_hostaddr[2] =\r
- {HTONS((UIP_IPADDR0 << 8) | UIP_IPADDR1),\r
- HTONS((UIP_IPADDR2 << 8) | UIP_IPADDR3)};\r
-const u16_t uip_arp_draddr[2] =\r
- {HTONS((UIP_DRIPADDR0 << 8) | UIP_DRIPADDR1),\r
- HTONS((UIP_DRIPADDR2 << 8) | UIP_DRIPADDR3)};\r
-const u16_t uip_arp_netmask[2] =\r
- {HTONS((UIP_NETMASK0 << 8) | UIP_NETMASK1),\r
- HTONS((UIP_NETMASK2 << 8) | UIP_NETMASK3)};\r
-#else\r
-u16_t uip_hostaddr[2]; \r
-u16_t uip_arp_draddr[2], uip_arp_netmask[2];\r
-#endif /* UIP_FIXEDADDR */\r
-\r
-u8_t uip_buf[UIP_BUFSIZE+2]; /* The packet buffer that contains\r
- incoming packets. */\r
-volatile u8_t *uip_appdata; /* The uip_appdata pointer points to\r
- application data. */\r
-volatile u8_t *uip_sappdata; /* The uip_appdata pointer points to the\r
- application data which is to be sent. */\r
-#if UIP_URGDATA > 0\r
-volatile u8_t *uip_urgdata; /* The uip_urgdata pointer points to\r
- urgent data (out-of-band data), if\r
- present. */\r
-volatile u8_t uip_urglen, uip_surglen;\r
-#endif /* UIP_URGDATA > 0 */\r
-\r
-volatile u16_t uip_len, uip_slen;\r
- /* The uip_len is either 8 or 16 bits,\r
- depending on the maximum packet\r
- size. */\r
-\r
-volatile u8_t uip_flags; /* The uip_flags variable is used for\r
- communication between the TCP/IP stack\r
- and the application program. */\r
-struct uip_conn *uip_conn; /* uip_conn always points to the current\r
- connection. */\r
-\r
-struct uip_conn uip_conns[UIP_CONNS];\r
- /* The uip_conns array holds all TCP\r
- connections. */\r
-u16_t uip_listenports[UIP_LISTENPORTS];\r
- /* The uip_listenports list all currently\r
- listning ports. */\r
-#if UIP_UDP\r
-struct uip_udp_conn *uip_udp_conn;\r
-struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];\r
-#endif /* UIP_UDP */\r
-\r
-\r
-static u16_t ipid; /* Ths ipid variable is an increasing\r
- number that is used for the IP ID\r
- field. */\r
-\r
-static u8_t iss[4]; /* The iss variable is used for the TCP\r
- initial sequence number. */\r
-\r
-#if UIP_ACTIVE_OPEN\r
-static u16_t lastport; /* Keeps track of the last port used for\r
- a new connection. */\r
-#endif /* UIP_ACTIVE_OPEN */\r
-\r
-/* Temporary variables. */\r
-volatile u8_t uip_acc32[4];\r
-static u8_t c, opt;\r
-static u16_t tmp16;\r
-\r
-/* Structures and definitions. */\r
-#define TCP_FIN 0x01\r
-#define TCP_SYN 0x02\r
-#define TCP_RST 0x04\r
-#define TCP_PSH 0x08\r
-#define TCP_ACK 0x10\r
-#define TCP_URG 0x20\r
-#define TCP_CTL 0x3f\r
-\r
-#define ICMP_ECHO_REPLY 0\r
-#define ICMP_ECHO 8 \r
-\r
-/* Macros. */\r
-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-#define FBUF ((uip_tcpip_hdr *)&uip_reassbuf[0])\r
-#define ICMPBUF ((uip_icmpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-#define UDPBUF ((uip_udpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-\r
-#if UIP_STATISTICS == 1\r
-struct uip_stats uip_stat;\r
-#define UIP_STAT(s) s\r
-#else\r
-#define UIP_STAT(s)\r
-#endif /* UIP_STATISTICS == 1 */\r
-\r
-#if UIP_LOGGING == 1\r
-#include <stdio.h>\r
-void uip_log(char *msg);\r
-#define UIP_LOG(m) uip_log(m)\r
-#else\r
-#define UIP_LOG(m)\r
-#endif /* UIP_LOGGING == 1 */\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_init(void)\r
-{\r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- uip_listenports[c] = 0;\r
- }\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- uip_conns[c].tcpstateflags = CLOSED;\r
- }\r
-#if UIP_ACTIVE_OPEN\r
- lastport = 1024;\r
-#endif /* UIP_ACTIVE_OPEN */\r
-\r
-#if UIP_UDP\r
- for(c = 0; c < UIP_UDP_CONNS; ++c) {\r
- uip_udp_conns[c].lport = 0;\r
- }\r
-#endif /* UIP_UDP */\r
- \r
-\r
- /* IPv4 initialization. */\r
-#if UIP_FIXEDADDR == 0\r
- uip_hostaddr[0] = uip_hostaddr[1] = 0;\r
-#endif /* UIP_FIXEDADDR */\r
-\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-#if UIP_ACTIVE_OPEN\r
-struct uip_conn *\r
-uip_connect(u16_t *ripaddr, u16_t rport)\r
-{\r
- register struct uip_conn *conn, *cconn;\r
- \r
- /* Find an unused local port. */\r
- again:\r
- ++lastport;\r
-\r
- if(lastport >= 32000) {\r
- lastport = 4096;\r
- }\r
-\r
- /* Check if this port is already in use, and if so try to find\r
- another one. */\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- conn = &uip_conns[c];\r
- if(conn->tcpstateflags != CLOSED &&\r
- conn->lport == htons(lastport)) {\r
- goto again;\r
- }\r
- }\r
-\r
-\r
- conn = 0;\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- cconn = &uip_conns[c]; \r
- if(cconn->tcpstateflags == CLOSED) {\r
- conn = cconn;\r
- break;\r
- }\r
- if(cconn->tcpstateflags == TIME_WAIT) {\r
- if(conn == 0 ||\r
- cconn->timer > uip_conn->timer) {\r
- conn = cconn;\r
- }\r
- }\r
- }\r
-\r
- if(conn == 0) {\r
- return 0;\r
- }\r
- \r
- conn->tcpstateflags = SYN_SENT;\r
-\r
- conn->snd_nxt[0] = iss[0];\r
- conn->snd_nxt[1] = iss[1];\r
- conn->snd_nxt[2] = iss[2];\r
- conn->snd_nxt[3] = iss[3];\r
-\r
- conn->initialmss = conn->mss = UIP_TCP_MSS;\r
- \r
- conn->len = 1; /* TCP length of the SYN is one. */\r
- conn->nrtx = 0;\r
- conn->timer = 1; /* Send the SYN next time around. */\r
- conn->rto = UIP_RTO;\r
- conn->sa = 0;\r
- conn->sv = 16;\r
- conn->lport = htons(lastport);\r
- conn->rport = rport;\r
- conn->ripaddr[0] = ripaddr[0];\r
- conn->ripaddr[1] = ripaddr[1];\r
- \r
- return conn;\r
-}\r
-#endif /* UIP_ACTIVE_OPEN */\r
-/*-----------------------------------------------------------------------------------*/\r
-#if UIP_UDP\r
-struct uip_udp_conn *\r
-uip_udp_new(u16_t *ripaddr, u16_t rport)\r
-{\r
- register struct uip_udp_conn *conn;\r
- \r
- /* Find an unused local port. */\r
- again:\r
- ++lastport;\r
-\r
- if(lastport >= 32000) {\r
- lastport = 4096;\r
- }\r
- \r
- for(c = 0; c < UIP_UDP_CONNS; ++c) {\r
- if(uip_udp_conns[c].lport == lastport) {\r
- goto again;\r
- }\r
- }\r
-\r
-\r
- conn = 0;\r
- for(c = 0; c < UIP_UDP_CONNS; ++c) {\r
- if(uip_udp_conns[c].lport == 0) {\r
- conn = &uip_udp_conns[c]; \r
- break;\r
- }\r
- }\r
-\r
- if(conn == 0) {\r
- return 0;\r
- }\r
- \r
- conn->lport = HTONS(lastport);\r
- conn->rport = HTONS(rport);\r
- conn->ripaddr[0] = ripaddr[0];\r
- conn->ripaddr[1] = ripaddr[1];\r
- \r
- return conn;\r
-}\r
-#endif /* UIP_UDP */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_unlisten(u16_t port)\r
-{\r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- if(uip_listenports[c] == port) {\r
- uip_listenports[c] = 0;\r
- return;\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_listen(u16_t port)\r
-{\r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- if(uip_listenports[c] == 0) {\r
- uip_listenports[c] = port;\r
- return;\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/* XXX: IP fragment reassembly: not well-tested. */\r
-\r
-#if UIP_REASSEMBLY\r
-#define UIP_REASS_BUFSIZE (UIP_BUFSIZE - UIP_LLH_LEN)\r
-static u8_t uip_reassbuf[UIP_REASS_BUFSIZE];\r
-static u8_t uip_reassbitmap[UIP_REASS_BUFSIZE / (8 * 8)];\r
-static const u8_t bitmap_bits[8] = {0xff, 0x7f, 0x3f, 0x1f,\r
- 0x0f, 0x07, 0x03, 0x01};\r
-static u16_t uip_reasslen;\r
-static u8_t uip_reassflags;\r
-#define UIP_REASS_FLAG_LASTFRAG 0x01\r
-static u8_t uip_reasstmr;\r
-\r
-#define IP_HLEN 20\r
-#define IP_MF 0x20\r
-\r
-static u8_t\r
-uip_reass(void)\r
-{\r
- u16_t offset, len;\r
- u16_t i;\r
-\r
- /* If ip_reasstmr is zero, no packet is present in the buffer, so we\r
- write the IP header of the fragment into the reassembly\r
- buffer. The timer is updated with the maximum age. */\r
- if(uip_reasstmr == 0) {\r
- memcpy(uip_reassbuf, &BUF->vhl, IP_HLEN);\r
- uip_reasstmr = UIP_REASS_MAXAGE;\r
- uip_reassflags = 0;\r
- /* Clear the bitmap. */\r
- memset(uip_reassbitmap, sizeof(uip_reassbitmap), 0);\r
- }\r
-\r
- /* Check if the incoming fragment matches the one currently present\r
- in the reasembly buffer. If so, we proceed with copying the\r
- fragment into the buffer. */\r
- if(BUF->srcipaddr[0] == FBUF->srcipaddr[0] &&\r
- BUF->srcipaddr[1] == FBUF->srcipaddr[1] &&\r
- BUF->destipaddr[0] == FBUF->destipaddr[0] &&\r
- BUF->destipaddr[1] == FBUF->destipaddr[1] &&\r
- BUF->ipid[0] == FBUF->ipid[0] &&\r
- BUF->ipid[1] == FBUF->ipid[1]) {\r
-\r
- len = (BUF->len[0] << 8) + BUF->len[1] - (BUF->vhl & 0x0f) * 4;\r
- offset = (((BUF->ipoffset[0] & 0x3f) << 8) + BUF->ipoffset[1]) * 8;\r
-\r
- /* If the offset or the offset + fragment length overflows the\r
- reassembly buffer, we discard the entire packet. */\r
- if(offset > UIP_REASS_BUFSIZE ||\r
- offset + len > UIP_REASS_BUFSIZE) {\r
- uip_reasstmr = 0;\r
- goto nullreturn;\r
- }\r
-\r
- /* Copy the fragment into the reassembly buffer, at the right\r
- offset. */\r
- memcpy(&uip_reassbuf[IP_HLEN + offset],\r
- (char *)BUF + (int)((BUF->vhl & 0x0f) * 4),\r
- len);\r
- \r
- /* Update the bitmap. */\r
- if(offset / (8 * 8) == (offset + len) / (8 * 8)) {\r
- /* If the two endpoints are in the same byte, we only update\r
- that byte. */\r
- \r
- uip_reassbitmap[offset / (8 * 8)] |=\r
- bitmap_bits[(offset / 8 ) & 7] &\r
- ~bitmap_bits[((offset + len) / 8 ) & 7];\r
- } else {\r
- /* If the two endpoints are in different bytes, we update the\r
- bytes in the endpoints and fill the stuff inbetween with\r
- 0xff. */\r
- uip_reassbitmap[offset / (8 * 8)] |=\r
- bitmap_bits[(offset / 8 ) & 7];\r
- for(i = 1 + offset / (8 * 8); i < (offset + len) / (8 * 8); ++i) {\r
- uip_reassbitmap[i] = 0xff;\r
- } \r
- uip_reassbitmap[(offset + len) / (8 * 8)] |=\r
- ~bitmap_bits[((offset + len) / 8 ) & 7];\r
- }\r
- \r
- /* If this fragment has the More Fragments flag set to zero, we\r
- know that this is the last fragment, so we can calculate the\r
- size of the entire packet. We also set the\r
- IP_REASS_FLAG_LASTFRAG flag to indicate that we have received\r
- the final fragment. */\r
-\r
- if((BUF->ipoffset[0] & IP_MF) == 0) {\r
- uip_reassflags |= UIP_REASS_FLAG_LASTFRAG;\r
- uip_reasslen = offset + len;\r
- }\r
- \r
- /* Finally, we check if we have a full packet in the buffer. We do\r
- this by checking if we have the last fragment and if all bits\r
- in the bitmap are set. */\r
- if(uip_reassflags & UIP_REASS_FLAG_LASTFRAG) {\r
- /* Check all bytes up to and including all but the last byte in\r
- the bitmap. */\r
- for(i = 0; i < uip_reasslen / (8 * 8) - 1; ++i) {\r
- if(uip_reassbitmap[i] != 0xff) {\r
- goto nullreturn;\r
- }\r
- }\r
- /* Check the last byte in the bitmap. It should contain just the\r
- right amount of bits. */\r
- if(uip_reassbitmap[uip_reasslen / (8 * 8)] !=\r
- (u8_t)~bitmap_bits[uip_reasslen / 8 & 7]) {\r
- goto nullreturn;\r
- }\r
-\r
- /* If we have come this far, we have a full packet in the\r
- buffer, so we allocate a pbuf and copy the packet into it. We\r
- also reset the timer. */\r
- uip_reasstmr = 0;\r
- memcpy(BUF, FBUF, uip_reasslen);\r
-\r
- /* Pretend to be a "normal" (i.e., not fragmented) IP packet\r
- from now on. */\r
- BUF->ipoffset[0] = BUF->ipoffset[1] = 0;\r
- BUF->len[0] = uip_reasslen >> 8;\r
- BUF->len[1] = uip_reasslen & 0xff;\r
- BUF->ipchksum = 0;\r
- BUF->ipchksum = ~(uip_ipchksum());\r
-\r
- return uip_reasslen;\r
- }\r
- }\r
-\r
- nullreturn:\r
- return 0;\r
-}\r
-#endif /* UIP_REASSEMBL */\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-uip_add_rcv_nxt(u16_t n)\r
-{\r
- uip_add32(uip_conn->rcv_nxt, n);\r
- uip_conn->rcv_nxt[0] = uip_acc32[0];\r
- uip_conn->rcv_nxt[1] = uip_acc32[1];\r
- uip_conn->rcv_nxt[2] = uip_acc32[2];\r
- uip_conn->rcv_nxt[3] = uip_acc32[3];\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_process(u8_t flag)\r
-{\r
- register struct uip_conn *uip_connr = uip_conn;\r
- \r
- uip_appdata = &uip_buf[40 + UIP_LLH_LEN];\r
-\r
- \r
- /* Check if we were invoked because of the perodic timer fireing. */\r
- if(flag == UIP_TIMER) {\r
-#if UIP_REASSEMBLY\r
- if(uip_reasstmr != 0) {\r
- --uip_reasstmr;\r
- }\r
-#endif /* UIP_REASSEMBLY */\r
- /* Increase the initial sequence number. */\r
- if(++iss[3] == 0) {\r
- if(++iss[2] == 0) {\r
- if(++iss[1] == 0) {\r
- ++iss[0];\r
- }\r
- }\r
- } \r
- uip_len = 0;\r
- if(uip_connr->tcpstateflags == TIME_WAIT ||\r
- uip_connr->tcpstateflags == FIN_WAIT_2) {\r
- ++(uip_connr->timer);\r
- if(uip_connr->timer == UIP_TIME_WAIT_TIMEOUT) {\r
- uip_connr->tcpstateflags = CLOSED;\r
- }\r
- } else if(uip_connr->tcpstateflags != CLOSED) {\r
- /* If the connection has outstanding data, we increase the\r
- connection's timer and see if it has reached the RTO value\r
- in which case we retransmit. */\r
- if(uip_outstanding(uip_connr)) {\r
- if(uip_connr->timer-- == 0) {\r
- if(uip_connr->nrtx == UIP_MAXRTX ||\r
- ((uip_connr->tcpstateflags == SYN_SENT ||\r
- uip_connr->tcpstateflags == SYN_RCVD) &&\r
- uip_connr->nrtx == UIP_MAXSYNRTX)) {\r
- uip_connr->tcpstateflags = CLOSED;\r
-\r
- /* We call UIP_APPCALL() with uip_flags set to\r
- UIP_TIMEDOUT to inform the application that the\r
- connection has timed out. */\r
- uip_flags = UIP_TIMEDOUT;\r
- UIP_APPCALL();\r
-\r
- /* We also send a reset packet to the remote host. */\r
- BUF->flags = TCP_RST | TCP_ACK;\r
- goto tcp_send_nodata;\r
- }\r
-\r
- /* Exponential backoff. */\r
- uip_connr->timer = UIP_RTO << (uip_connr->nrtx > 4?\r
- 4:\r
- uip_connr->nrtx);\r
- ++(uip_connr->nrtx);\r
- \r
- /* Ok, so we need to retransmit. We do this differently\r
- depending on which state we are in. In ESTABLISHED, we\r
- call upon the application so that it may prepare the\r
- data for the retransmit. In SYN_RCVD, we resend the\r
- SYNACK that we sent earlier and in LAST_ACK we have to\r
- retransmit our FINACK. */\r
- UIP_STAT(++uip_stat.tcp.rexmit);\r
- switch(uip_connr->tcpstateflags & TS_MASK) {\r
- case SYN_RCVD:\r
- /* In the SYN_RCVD state, we should retransmit our\r
- SYNACK. */\r
- goto tcp_send_synack;\r
- \r
-#if UIP_ACTIVE_OPEN\r
- case SYN_SENT:\r
- /* In the SYN_SENT state, we retransmit out SYN. */\r
- BUF->flags = 0;\r
- goto tcp_send_syn;\r
-#endif /* UIP_ACTIVE_OPEN */\r
- \r
- case ESTABLISHED:\r
- /* In the ESTABLISHED state, we call upon the application\r
- to do the actual retransmit after which we jump into\r
- the code for sending out the packet (the apprexmit\r
- label). */\r
- uip_len = 0;\r
- uip_slen = 0;\r
- uip_flags = UIP_REXMIT;\r
- UIP_APPCALL();\r
- goto apprexmit;\r
- \r
- case FIN_WAIT_1:\r
- case CLOSING:\r
- case LAST_ACK:\r
- /* In all these states we should retransmit a FINACK. */\r
- goto tcp_send_finack;\r
- \r
- }\r
- }\r
- } else if((uip_connr->tcpstateflags & TS_MASK) == ESTABLISHED) {\r
- /* If there was no need for a retransmission, we poll the\r
- application for new data. */\r
- uip_len = 0;\r
- uip_slen = 0;\r
- uip_flags = UIP_POLL;\r
- UIP_APPCALL();\r
- goto appsend;\r
- }\r
- }\r
- goto drop;\r
- }\r
-#if UIP_UDP \r
- if(flag == UIP_UDP_TIMER) {\r
- if(uip_udp_conn->lport != 0) {\r
- uip_appdata = &uip_buf[UIP_LLH_LEN + 28];\r
- uip_len = uip_slen = 0;\r
- uip_flags = UIP_POLL;\r
- UIP_UDP_APPCALL();\r
- goto udp_send;\r
- } else {\r
- goto drop;\r
- }\r
- }\r
-#endif\r
-\r
- /* This is where the input processing starts. */\r
- UIP_STAT(++uip_stat.ip.recv);\r
-\r
-\r
- /* Start of IPv4 input header processing code. */\r
- \r
- /* Check validity of the IP header. */ \r
- if(BUF->vhl != 0x45) { /* IP version and header length. */\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.vhlerr);\r
- UIP_LOG("ip: invalid version or header length.");\r
- goto drop;\r
- }\r
- \r
- /* Check the size of the packet. If the size reported to us in\r
- uip_len doesn't match the size reported in the IP header, there\r
- has been a transmission error and we drop the packet. */\r
- \r
- if(BUF->len[0] != (uip_len >> 8)) { /* IP length, high byte. */\r
- uip_len = (uip_len & 0xff) | (BUF->len[0] << 8);\r
- }\r
- if(BUF->len[1] != (uip_len & 0xff)) { /* IP length, low byte. */\r
- uip_len = (uip_len & 0xff00) | BUF->len[1];\r
- }\r
-\r
- /* Check the fragment flag. */\r
- if((BUF->ipoffset[0] & 0x3f) != 0 ||\r
- BUF->ipoffset[1] != 0) { \r
-#if UIP_REASSEMBLY\r
- uip_len = uip_reass();\r
- if(uip_len == 0) {\r
- goto drop;\r
- }\r
-#else\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.fragerr);\r
- UIP_LOG("ip: fragment dropped."); \r
- goto drop;\r
-#endif /* UIP_REASSEMBLY */\r
- }\r
-\r
- /* If we are configured to use ping IP address configuration and\r
- hasn't been assigned an IP address yet, we accept all ICMP\r
- packets. */\r
-#if UIP_PINGADDRCONF\r
- if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {\r
- if(BUF->proto == UIP_PROTO_ICMP) {\r
- UIP_LOG("ip: possible ping config packet received.");\r
- goto icmp_input;\r
- } else {\r
- UIP_LOG("ip: packet dropped since no address assigned.");\r
- goto drop;\r
- }\r
- }\r
-#endif /* UIP_PINGADDRCONF */\r
- \r
- /* Check if the packet is destined for our IP address. */ \r
- if(BUF->destipaddr[0] != uip_hostaddr[0]) {\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_LOG("ip: packet not for us."); \r
- goto drop;\r
- }\r
- if(BUF->destipaddr[1] != uip_hostaddr[1]) {\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_LOG("ip: packet not for us."); \r
- goto drop;\r
- }\r
-\r
-#if 0\r
- // IP checksum is wrong through Netgear DSL router\r
- if (uip_ipchksum() != 0xffff) { /* Compute and check the IP header\r
- checksum. */\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.chkerr);\r
- UIP_LOG("ip: bad checksum."); \r
- goto drop;\r
- }\r
-#endif\r
-\r
- if(BUF->proto == UIP_PROTO_TCP) /* Check for TCP packet. If so, jump\r
- to the tcp_input label. */\r
- goto tcp_input;\r
-\r
-#if UIP_UDP\r
- if(BUF->proto == UIP_PROTO_UDP)\r
- goto udp_input;\r
-#endif /* UIP_UDP */\r
-\r
- if(BUF->proto != UIP_PROTO_ICMP) { /* We only allow ICMP packets from\r
- here. */\r
- UIP_STAT(++uip_stat.ip.drop);\r
- UIP_STAT(++uip_stat.ip.protoerr);\r
- UIP_LOG("ip: neither tcp nor icmp."); \r
- goto drop;\r
- }\r
- \r
- icmp_input:\r
- UIP_STAT(++uip_stat.icmp.recv);\r
- \r
- /* ICMP echo (i.e., ping) processing. This is simple, we only change\r
- the ICMP type from ECHO to ECHO_REPLY and adjust the ICMP\r
- checksum before we return the packet. */\r
- if(ICMPBUF->type != ICMP_ECHO) {\r
- UIP_STAT(++uip_stat.icmp.drop);\r
- UIP_STAT(++uip_stat.icmp.typeerr);\r
- UIP_LOG("icmp: not icmp echo.");\r
- goto drop;\r
- }\r
-\r
- /* If we are configured to use ping IP address assignment, we use\r
- the destination IP address of this ping packet and assign it to\r
- ourself. */\r
-#if UIP_PINGADDRCONF\r
- if((uip_hostaddr[0] | uip_hostaddr[1]) == 0) {\r
- uip_hostaddr[0] = BUF->destipaddr[0];\r
- uip_hostaddr[1] = BUF->destipaddr[1];\r
- }\r
-#endif /* UIP_PINGADDRCONF */ \r
- \r
- ICMPBUF->type = ICMP_ECHO_REPLY;\r
- \r
- if(ICMPBUF->icmpchksum >= HTONS(0xffff - (ICMP_ECHO << 8))) {\r
- ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8) + 1;\r
- } else {\r
- ICMPBUF->icmpchksum += HTONS(ICMP_ECHO << 8);\r
- }\r
- \r
- /* Swap IP addresses. */\r
- tmp16 = BUF->destipaddr[0];\r
- BUF->destipaddr[0] = BUF->srcipaddr[0];\r
- BUF->srcipaddr[0] = tmp16;\r
- tmp16 = BUF->destipaddr[1];\r
- BUF->destipaddr[1] = BUF->srcipaddr[1];\r
- BUF->srcipaddr[1] = tmp16;\r
-\r
- UIP_STAT(++uip_stat.icmp.sent);\r
- goto send;\r
-\r
- /* End of IPv4 input header processing code. */\r
- \r
-\r
-#if UIP_UDP\r
- /* UDP input processing. */\r
- udp_input:\r
- /* UDP processing is really just a hack. We don't do anything to the\r
- UDP/IP headers, but let the UDP application do all the hard\r
- work. If the application sets uip_slen, it has a packet to\r
- send. */\r
-#if UIP_UDP_CHECKSUMS\r
- if(uip_udpchksum() != 0xffff) { \r
- UIP_STAT(++uip_stat.udp.drop);\r
- UIP_STAT(++uip_stat.udp.chkerr);\r
- UIP_LOG("udp: bad checksum."); \r
- goto drop;\r
- } \r
-#endif /* UIP_UDP_CHECKSUMS */\r
-\r
- /* Demultiplex this UDP packet between the UDP "connections". */\r
- for(uip_udp_conn = &uip_udp_conns[0];\r
- uip_udp_conn < &uip_udp_conns[UIP_UDP_CONNS];\r
- ++uip_udp_conn) {\r
- if(uip_udp_conn->lport != 0 &&\r
- UDPBUF->destport == uip_udp_conn->lport &&\r
- (uip_udp_conn->rport == 0 ||\r
- UDPBUF->srcport == uip_udp_conn->rport) &&\r
- BUF->srcipaddr[0] == uip_udp_conn->ripaddr[0] &&\r
- BUF->srcipaddr[1] == uip_udp_conn->ripaddr[1]) {\r
- goto udp_found; \r
- }\r
- }\r
- goto drop;\r
- \r
- udp_found:\r
- uip_len = uip_len - 28;\r
- uip_appdata = &uip_buf[UIP_LLH_LEN + 28];\r
- uip_flags = UIP_NEWDATA;\r
- uip_slen = 0;\r
- UIP_UDP_APPCALL();\r
- udp_send:\r
- if(uip_slen == 0) {\r
- goto drop; \r
- }\r
- uip_len = uip_slen + 28;\r
-\r
- BUF->len[0] = (uip_len >> 8);\r
- BUF->len[1] = (uip_len & 0xff);\r
- \r
- BUF->proto = UIP_PROTO_UDP;\r
-\r
- UDPBUF->udplen = HTONS(uip_slen + 8);\r
- UDPBUF->udpchksum = 0;\r
-#if UIP_UDP_CHECKSUMS \r
- /* Calculate UDP checksum. */\r
- UDPBUF->udpchksum = ~(uip_udpchksum());\r
- if(UDPBUF->udpchksum == 0) {\r
- UDPBUF->udpchksum = 0xffff;\r
- }\r
-#endif /* UIP_UDP_CHECKSUMS */\r
-\r
- BUF->srcport = uip_udp_conn->lport;\r
- BUF->destport = uip_udp_conn->rport;\r
-\r
- BUF->srcipaddr[0] = uip_hostaddr[0];\r
- BUF->srcipaddr[1] = uip_hostaddr[1];\r
- BUF->destipaddr[0] = uip_udp_conn->ripaddr[0];\r
- BUF->destipaddr[1] = uip_udp_conn->ripaddr[1];\r
- \r
- uip_appdata = &uip_buf[UIP_LLH_LEN + 40];\r
- goto ip_send_nolen;\r
-#endif /* UIP_UDP */\r
- \r
- /* TCP input processing. */ \r
- tcp_input:\r
- UIP_STAT(++uip_stat.tcp.recv);\r
-\r
- /* Start of TCP input header processing code. */\r
- \r
-#if 1 // FIXME\r
- if(uip_tcpchksum() != 0xffff) { /* Compute and check the TCP\r
- checksum. */\r
- UIP_STAT(++uip_stat.tcp.drop);\r
- UIP_STAT(++uip_stat.tcp.chkerr);\r
- UIP_LOG("tcp: bad checksum."); \r
- goto drop;\r
- }\r
-#endif\r
- \r
- /* Demultiplex this segment. */\r
- /* First check any active connections. */\r
- for(uip_connr = &uip_conns[0]; uip_connr < &uip_conns[UIP_CONNS]; ++uip_connr) {\r
- if(uip_connr->tcpstateflags != CLOSED &&\r
- BUF->destport == uip_connr->lport &&\r
- BUF->srcport == uip_connr->rport &&\r
- BUF->srcipaddr[0] == uip_connr->ripaddr[0] &&\r
- BUF->srcipaddr[1] == uip_connr->ripaddr[1]) {\r
- goto found; \r
- }\r
- }\r
-\r
- /* If we didn't find and active connection that expected the packet,\r
- either this packet is an old duplicate, or this is a SYN packet\r
- destined for a connection in LISTEN. If the SYN flag isn't set,\r
- it is an old packet and we send a RST. */\r
- if((BUF->flags & TCP_CTL) != TCP_SYN)\r
- goto reset;\r
- \r
- tmp16 = BUF->destport;\r
- /* Next, check listening connections. */ \r
- for(c = 0; c < UIP_LISTENPORTS; ++c) {\r
- if(tmp16 == uip_listenports[c])\r
- goto found_listen;\r
- }\r
- \r
- /* No matching connection found, so we send a RST packet. */\r
- UIP_STAT(++uip_stat.tcp.synrst);\r
- reset:\r
-\r
- /* We do not send resets in response to resets. */\r
- if(BUF->flags & TCP_RST) \r
- goto drop;\r
-\r
- UIP_STAT(++uip_stat.tcp.rst);\r
- \r
- BUF->flags = TCP_RST | TCP_ACK;\r
- uip_len = 40;\r
- BUF->tcpoffset = 5 << 4;\r
-\r
- /* Flip the seqno and ackno fields in the TCP header. */\r
- c = BUF->seqno[3];\r
- BUF->seqno[3] = BUF->ackno[3]; \r
- BUF->ackno[3] = c;\r
- \r
- c = BUF->seqno[2];\r
- BUF->seqno[2] = BUF->ackno[2]; \r
- BUF->ackno[2] = c;\r
- \r
- c = BUF->seqno[1];\r
- BUF->seqno[1] = BUF->ackno[1];\r
- BUF->ackno[1] = c;\r
- \r
- c = BUF->seqno[0];\r
- BUF->seqno[0] = BUF->ackno[0]; \r
- BUF->ackno[0] = c;\r
-\r
- /* We also have to increase the sequence number we are\r
- acknowledging. If the least significant byte overflowed, we need\r
- to propagate the carry to the other bytes as well. */\r
- if(++BUF->ackno[3] == 0) {\r
- if(++BUF->ackno[2] == 0) {\r
- if(++BUF->ackno[1] == 0) {\r
- ++BUF->ackno[0];\r
- }\r
- }\r
- }\r
- \r
- /* Swap port numbers. */\r
- tmp16 = BUF->srcport;\r
- BUF->srcport = BUF->destport;\r
- BUF->destport = tmp16;\r
- \r
- /* Swap IP addresses. */\r
- tmp16 = BUF->destipaddr[0];\r
- BUF->destipaddr[0] = BUF->srcipaddr[0];\r
- BUF->srcipaddr[0] = tmp16;\r
- tmp16 = BUF->destipaddr[1];\r
- BUF->destipaddr[1] = BUF->srcipaddr[1];\r
- BUF->srcipaddr[1] = tmp16;\r
-\r
- \r
- /* And send out the RST packet! */\r
- goto tcp_send_noconn;\r
-\r
- /* This label will be jumped to if we matched the incoming packet\r
- with a connection in LISTEN. In that case, we should create a new\r
- connection and send a SYNACK in return. */\r
- found_listen:\r
- /* First we check if there are any connections avaliable. Unused\r
- connections are kept in the same table as used connections, but\r
- unused ones have the tcpstate set to CLOSED. Also, connections in\r
- TIME_WAIT are kept track of and we'll use the oldest one if no\r
- CLOSED connections are found. Thanks to Eddie C. Dost for a very\r
- nice algorithm for the TIME_WAIT search. */\r
- uip_connr = 0;\r
- for(c = 0; c < UIP_CONNS; ++c) {\r
- if(uip_conns[c].tcpstateflags == CLOSED) {\r
- uip_connr = &uip_conns[c];\r
- break;\r
- }\r
- if(uip_conns[c].tcpstateflags == TIME_WAIT) {\r
- if(uip_connr == 0 ||\r
- uip_conns[c].timer > uip_connr->timer) {\r
- uip_connr = &uip_conns[c];\r
- }\r
- }\r
- }\r
-\r
- if(uip_connr == 0) {\r
- /* All connections are used already, we drop packet and hope that\r
- the remote end will retransmit the packet at a time when we\r
- have more spare connections. */\r
- UIP_STAT(++uip_stat.tcp.syndrop);\r
- UIP_LOG("tcp: found no unused connections.");\r
- goto drop;\r
- }\r
- uip_conn = uip_connr;\r
- \r
- /* Fill in the necessary fields for the new connection. */\r
- uip_connr->rto = uip_connr->timer = UIP_RTO;\r
- uip_connr->sa = 0;\r
- uip_connr->sv = 4; \r
- uip_connr->nrtx = 0;\r
- uip_connr->lport = BUF->destport;\r
- uip_connr->rport = BUF->srcport;\r
- uip_connr->ripaddr[0] = BUF->srcipaddr[0];\r
- uip_connr->ripaddr[1] = BUF->srcipaddr[1];\r
- uip_connr->tcpstateflags = SYN_RCVD;\r
-\r
- uip_connr->snd_nxt[0] = iss[0];\r
- uip_connr->snd_nxt[1] = iss[1];\r
- uip_connr->snd_nxt[2] = iss[2];\r
- uip_connr->snd_nxt[3] = iss[3];\r
- uip_connr->len = 1;\r
-\r
- /* rcv_nxt should be the seqno from the incoming packet + 1. */\r
- uip_connr->rcv_nxt[3] = BUF->seqno[3];\r
- uip_connr->rcv_nxt[2] = BUF->seqno[2];\r
- uip_connr->rcv_nxt[1] = BUF->seqno[1];\r
- uip_connr->rcv_nxt[0] = BUF->seqno[0];\r
- uip_add_rcv_nxt(1);\r
-\r
- /* Parse the TCP MSS option, if present. */\r
- if((BUF->tcpoffset & 0xf0) > 0x50) {\r
- for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {\r
- opt = uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + c];\r
- if(opt == 0x00) {\r
- /* End of options. */ \r
- break;\r
- } else if(opt == 0x01) {\r
- ++c;\r
- /* NOP option. */\r
- } else if(opt == 0x02 &&\r
- uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {\r
- /* An MSS option with the right option length. */ \r
- tmp16 = ((u16_t)uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |\r
- (u16_t)uip_buf[40 + UIP_LLH_LEN + 3 + c];\r
- uip_connr->initialmss = uip_connr->mss =\r
- tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;\r
- \r
- /* And we are done processing options. */\r
- break;\r
- } else {\r
- /* All other options have a length field, so that we easily\r
- can skip past them. */\r
- if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {\r
- /* If the length field is zero, the options are malformed\r
- and we don't process them further. */\r
- break;\r
- }\r
- c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];\r
- } \r
- }\r
- }\r
- \r
- /* Our response will be a SYNACK. */\r
-#if UIP_ACTIVE_OPEN\r
- tcp_send_synack:\r
- BUF->flags = TCP_ACK; \r
- \r
- tcp_send_syn:\r
- BUF->flags |= TCP_SYN; \r
-#else /* UIP_ACTIVE_OPEN */\r
- tcp_send_synack:\r
- BUF->flags = TCP_SYN | TCP_ACK; \r
-#endif /* UIP_ACTIVE_OPEN */\r
- \r
- /* We send out the TCP Maximum Segment Size option with our\r
- SYNACK. */\r
- BUF->optdata[0] = 2;\r
- BUF->optdata[1] = 4;\r
- BUF->optdata[2] = (UIP_TCP_MSS) / 256;\r
- BUF->optdata[3] = (UIP_TCP_MSS) & 255;\r
- uip_len = 44;\r
- BUF->tcpoffset = 6 << 4;\r
- goto tcp_send;\r
-\r
- /* This label will be jumped to if we found an active connection. */\r
- found:\r
- uip_conn = uip_connr;\r
- uip_flags = 0;\r
-\r
- /* We do a very naive form of TCP reset processing; we just accept\r
- any RST and kill our connection. We should in fact check if the\r
- sequence number of this reset is wihtin our advertised window\r
- before we accept the reset. */\r
- if(BUF->flags & TCP_RST) {\r
- uip_connr->tcpstateflags = CLOSED;\r
- UIP_LOG("tcp: got reset, aborting connection.");\r
- uip_flags = UIP_ABORT;\r
- UIP_APPCALL();\r
- goto drop;\r
- } \r
- /* Calculated the length of the data, if the application has sent\r
- any data to us. */\r
- c = (BUF->tcpoffset >> 4) << 2;\r
- /* uip_len will contain the length of the actual TCP data. This is\r
- calculated by subtracing the length of the TCP header (in\r
- c) and the length of the IP header (20 bytes). */\r
- uip_len = uip_len - c - 20;\r
-\r
- /* First, check if the sequence number of the incoming packet is\r
- what we're expecting next. If not, we send out an ACK with the\r
- correct numbers in. */\r
- if(uip_len > 0 &&\r
- (BUF->seqno[0] != uip_connr->rcv_nxt[0] ||\r
- BUF->seqno[1] != uip_connr->rcv_nxt[1] ||\r
- BUF->seqno[2] != uip_connr->rcv_nxt[2] ||\r
- BUF->seqno[3] != uip_connr->rcv_nxt[3])) {\r
- goto tcp_send_ack;\r
- }\r
-\r
- /* Next, check if the incoming segment acknowledges any outstanding\r
- data. If so, we update the sequence number, reset the length of\r
- the outstanding data, calculate RTT estimations, and reset the\r
- retransmission timer. */\r
- if((BUF->flags & TCP_ACK) && uip_outstanding(uip_connr)) {\r
- uip_add32(uip_connr->snd_nxt, uip_connr->len);\r
- if(BUF->ackno[0] == uip_acc32[0] &&\r
- BUF->ackno[1] == uip_acc32[1] &&\r
- BUF->ackno[2] == uip_acc32[2] &&\r
- BUF->ackno[3] == uip_acc32[3]) {\r
- /* Update sequence number. */\r
- uip_connr->snd_nxt[0] = uip_acc32[0];\r
- uip_connr->snd_nxt[1] = uip_acc32[1];\r
- uip_connr->snd_nxt[2] = uip_acc32[2];\r
- uip_connr->snd_nxt[3] = uip_acc32[3];\r
- \r
-\r
- /* Do RTT estimation, unless we have done retransmissions. */\r
- if(uip_connr->nrtx == 0) {\r
- signed char m;\r
- m = uip_connr->rto - uip_connr->timer;\r
- /* This is taken directly from VJs original code in his paper */\r
- m = m - (uip_connr->sa >> 3);\r
- uip_connr->sa += m;\r
- if(m < 0) {\r
- m = -m;\r
- }\r
- m = m - (uip_connr->sv >> 2);\r
- uip_connr->sv += m;\r
- uip_connr->rto = (uip_connr->sa >> 3) + uip_connr->sv;\r
-\r
- }\r
- /* Set the acknowledged flag. */\r
- uip_flags = UIP_ACKDATA;\r
- /* Reset the retransmission timer. */\r
- uip_connr->timer = uip_connr->rto;\r
- }\r
- \r
- }\r
-\r
- /* Do different things depending on in what state the connection is. */\r
- switch(uip_connr->tcpstateflags & TS_MASK) {\r
- /* CLOSED and LISTEN are not handled here. CLOSE_WAIT is not\r
- implemented, since we force the application to close when the\r
- peer sends a FIN (hence the application goes directly from\r
- ESTABLISHED to LAST_ACK). */\r
- case SYN_RCVD:\r
- /* In SYN_RCVD we have sent out a SYNACK in response to a SYN, and\r
- we are waiting for an ACK that acknowledges the data we sent\r
- out the last time. Therefore, we want to have the UIP_ACKDATA\r
- flag set. If so, we enter the ESTABLISHED state. */\r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = ESTABLISHED;\r
- uip_flags = UIP_CONNECTED;\r
- uip_connr->len = 0;\r
- if(uip_len > 0) {\r
- uip_flags |= UIP_NEWDATA;\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
- uip_slen = 0;\r
- UIP_APPCALL();\r
- goto appsend;\r
- }\r
- goto drop;\r
-#if UIP_ACTIVE_OPEN\r
- case SYN_SENT:\r
- /* In SYN_SENT, we wait for a SYNACK that is sent in response to\r
- our SYN. The rcv_nxt is set to sequence number in the SYNACK\r
- plus one, and we send an ACK. We move into the ESTABLISHED\r
- state. */\r
- if((uip_flags & UIP_ACKDATA) &&\r
- BUF->flags == (TCP_SYN | TCP_ACK)) {\r
-\r
- /* Parse the TCP MSS option, if present. */\r
- if((BUF->tcpoffset & 0xf0) > 0x50) {\r
- for(c = 0; c < ((BUF->tcpoffset >> 4) - 5) << 2 ;) {\r
- opt = uip_buf[40 + UIP_LLH_LEN + c];\r
- if(opt == 0x00) {\r
- /* End of options. */ \r
- break;\r
- } else if(opt == 0x01) {\r
- ++c;\r
- /* NOP option. */\r
- } else if(opt == 0x02 &&\r
- uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0x04) {\r
- /* An MSS option with the right option length. */\r
- tmp16 = (uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 2 + c] << 8) |\r
- uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 3 + c];\r
- uip_connr->initialmss =\r
- uip_connr->mss = tmp16 > UIP_TCP_MSS? UIP_TCP_MSS: tmp16;\r
-\r
- /* And we are done processing options. */\r
- break;\r
- } else {\r
- /* All other options have a length field, so that we easily\r
- can skip past them. */\r
- if(uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c] == 0) {\r
- /* If the length field is zero, the options are malformed\r
- and we don't process them further. */\r
- break;\r
- }\r
- c += uip_buf[UIP_TCPIP_HLEN + UIP_LLH_LEN + 1 + c];\r
- } \r
- }\r
- }\r
- uip_connr->tcpstateflags = ESTABLISHED; \r
- uip_connr->rcv_nxt[0] = BUF->seqno[0];\r
- uip_connr->rcv_nxt[1] = BUF->seqno[1];\r
- uip_connr->rcv_nxt[2] = BUF->seqno[2];\r
- uip_connr->rcv_nxt[3] = BUF->seqno[3];\r
- uip_add_rcv_nxt(1);\r
- uip_flags = UIP_CONNECTED | UIP_NEWDATA;\r
- uip_connr->len = 0;\r
- uip_len = 0;\r
- uip_slen = 0;\r
- UIP_APPCALL();\r
- goto appsend;\r
- }\r
- goto reset;\r
-#endif /* UIP_ACTIVE_OPEN */\r
- \r
- case ESTABLISHED:\r
- /* In the ESTABLISHED state, we call upon the application to feed\r
- data into the uip_buf. If the UIP_ACKDATA flag is set, the\r
- application should put new data into the buffer, otherwise we are\r
- retransmitting an old segment, and the application should put that\r
- data into the buffer.\r
-\r
- If the incoming packet is a FIN, we should close the connection on\r
- this side as well, and we send out a FIN and enter the LAST_ACK\r
- state. We require that there is no outstanding data; otherwise the\r
- sequence numbers will be screwed up. */\r
-\r
- if(BUF->flags & TCP_FIN) {\r
- if(uip_outstanding(uip_connr)) {\r
- goto drop;\r
- }\r
- uip_add_rcv_nxt(1 + uip_len); \r
- uip_flags = UIP_CLOSE;\r
- if(uip_len > 0) {\r
- uip_flags |= UIP_NEWDATA;\r
- }\r
- UIP_APPCALL();\r
- uip_connr->len = 1;\r
- uip_connr->tcpstateflags = LAST_ACK;\r
- uip_connr->nrtx = 0;\r
- tcp_send_finack:\r
- BUF->flags = TCP_FIN | TCP_ACK; \r
- goto tcp_send_nodata;\r
- }\r
-\r
- /* Check the URG flag. If this is set, the segment carries urgent\r
- data that we must pass to the application. */\r
- if(BUF->flags & TCP_URG) {\r
-#if UIP_URGDATA > 0\r
- uip_urglen = (BUF->urgp[0] << 8) | BUF->urgp[1];\r
- if(uip_urglen > uip_len) {\r
- /* There is more urgent data in the next segment to come. */\r
- uip_urglen = uip_len;\r
- }\r
- uip_add_rcv_nxt(uip_urglen);\r
- uip_len -= uip_urglen;\r
- uip_urgdata = uip_appdata;\r
- uip_appdata += uip_urglen;\r
- } else {\r
- uip_urglen = 0;\r
-#endif /* UIP_URGDATA > 0 */\r
- uip_appdata += (BUF->urgp[0] << 8) | BUF->urgp[1];\r
- uip_len -= (BUF->urgp[0] << 8) | BUF->urgp[1];\r
- }\r
- \r
- \r
- /* If uip_len > 0 we have TCP data in the packet, and we flag this\r
- by setting the UIP_NEWDATA flag and update the sequence number\r
- we acknowledge. If the application has stopped the dataflow\r
- using uip_stop(), we must not accept any data packets from the\r
- remote host. */\r
- if(uip_len > 0 && !(uip_connr->tcpstateflags & UIP_STOPPED)) {\r
- uip_flags |= UIP_NEWDATA;\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
-\r
- /* Check if the available buffer space advertised by the other end\r
- is smaller than the initial MSS for this connection. If so, we\r
- set the current MSS to the window size to ensure that the\r
- application does not send more data than the other end can\r
- handle.\r
-\r
- If the remote host advertises a zero window, we set the MSS to\r
- the initial MSS so that the application will send an entire MSS\r
- of data. This data will not be acknowledged by the receiver,\r
- and the application will retransmit it. This is called the\r
- "persistent timer" and uses the retransmission mechanim.\r
- */\r
- tmp16 = ((u16_t)BUF->wnd[0] << 8) + (u16_t)BUF->wnd[1];\r
- if(tmp16 > uip_connr->initialmss ||\r
- tmp16 == 0) {\r
- tmp16 = uip_connr->initialmss;\r
- }\r
- uip_connr->mss = tmp16;\r
-\r
- /* If this packet constitutes an ACK for outstanding data (flagged\r
- by the UIP_ACKDATA flag, we should call the application since it\r
- might want to send more data. If the incoming packet had data\r
- from the peer (as flagged by the UIP_NEWDATA flag), the\r
- application must also be notified.\r
-\r
- When the application is called, the global variable uip_len\r
- contains the length of the incoming data. The application can\r
- access the incoming data through the global pointer\r
- uip_appdata, which usually points 40 bytes into the uip_buf\r
- array.\r
-\r
- If the application wishes to send any data, this data should be\r
- put into the uip_appdata and the length of the data should be\r
- put into uip_len. If the application don't have any data to\r
- send, uip_len must be set to 0. */\r
- if(uip_flags & (UIP_NEWDATA | UIP_ACKDATA)) {\r
- uip_slen = 0;\r
- UIP_APPCALL();\r
-\r
- appsend:\r
- \r
- if(uip_flags & UIP_ABORT) {\r
- uip_slen = 0;\r
- uip_connr->tcpstateflags = CLOSED;\r
- BUF->flags = TCP_RST | TCP_ACK;\r
- goto tcp_send_nodata;\r
- }\r
-\r
- if(uip_flags & UIP_CLOSE) {\r
- uip_slen = 0;\r
- uip_connr->len = 1;\r
- uip_connr->tcpstateflags = FIN_WAIT_1;\r
- uip_connr->nrtx = 0;\r
- BUF->flags = TCP_FIN | TCP_ACK;\r
- goto tcp_send_nodata; \r
- }\r
-\r
- /* If uip_slen > 0, the application has data to be sent. */\r
- if(uip_slen > 0) {\r
-\r
- /* If the connection has acknowledged data, the contents of\r
- the ->len variable should be discarded. */ \r
- if((uip_flags & UIP_ACKDATA) != 0) {\r
- uip_connr->len = 0;\r
- }\r
-\r
- /* If the ->len variable is non-zero the connection has\r
- already data in transit and cannot send anymore right\r
- now. */\r
- if(uip_connr->len == 0) {\r
-\r
- /* The application cannot send more than what is allowed by\r
- the mss (the minumum of the MSS and the available\r
- window). */\r
- if(uip_slen > uip_connr->mss) {\r
- uip_slen = uip_connr->mss;\r
- }\r
-\r
- /* Remember how much data we send out now so that we know\r
- when everything has been acknowledged. */\r
- uip_connr->len = uip_slen;\r
- } else {\r
-\r
- /* If the application already had unacknowledged data, we\r
- make sure that the application does not send (i.e.,\r
- retransmit) out more than it previously sent out. */\r
- uip_slen = uip_connr->len;\r
- }\r
- } else {\r
- uip_connr->len = 0;\r
- }\r
- uip_connr->nrtx = 0;\r
- apprexmit:\r
- uip_appdata = uip_sappdata;\r
- \r
- /* If the application has data to be sent, or if the incoming\r
- packet had new data in it, we must send out a packet. */\r
- if(uip_slen > 0 && uip_connr->len > 0) {\r
- /* Add the length of the IP and TCP headers. */\r
- uip_len = uip_connr->len + UIP_TCPIP_HLEN;\r
- /* We always set the ACK flag in response packets. */\r
- BUF->flags = TCP_ACK | TCP_PSH;\r
- /* Send the packet. */\r
- goto tcp_send_noopts;\r
- }\r
- /* If there is no data to send, just send out a pure ACK if\r
- there is newdata. */\r
- if(uip_flags & UIP_NEWDATA) {\r
- uip_len = UIP_TCPIP_HLEN;\r
- BUF->flags = TCP_ACK;\r
- goto tcp_send_noopts;\r
- }\r
- }\r
- goto drop;\r
- case LAST_ACK:\r
- /* We can close this connection if the peer has acknowledged our\r
- FIN. This is indicated by the UIP_ACKDATA flag. */ \r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = CLOSED;\r
- uip_flags = UIP_CLOSE;\r
- UIP_APPCALL();\r
- }\r
- break;\r
- \r
- case FIN_WAIT_1:\r
- /* The application has closed the connection, but the remote host\r
- hasn't closed its end yet. Thus we do nothing but wait for a\r
- FIN from the other side. */\r
- if(uip_len > 0) {\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
- if(BUF->flags & TCP_FIN) {\r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = TIME_WAIT;\r
- uip_connr->timer = 0;\r
- uip_connr->len = 0;\r
- } else {\r
- uip_connr->tcpstateflags = CLOSING;\r
- }\r
- uip_add_rcv_nxt(1);\r
- uip_flags = UIP_CLOSE;\r
- UIP_APPCALL();\r
- goto tcp_send_ack;\r
- } else if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = FIN_WAIT_2;\r
- uip_connr->len = 0;\r
- goto drop;\r
- }\r
- if(uip_len > 0) {\r
- goto tcp_send_ack;\r
- }\r
- goto drop;\r
- \r
- case FIN_WAIT_2:\r
- if(uip_len > 0) {\r
- uip_add_rcv_nxt(uip_len);\r
- }\r
- if(BUF->flags & TCP_FIN) {\r
- uip_connr->tcpstateflags = TIME_WAIT;\r
- uip_connr->timer = 0;\r
- uip_add_rcv_nxt(1);\r
- uip_flags = UIP_CLOSE;\r
- UIP_APPCALL();\r
- goto tcp_send_ack;\r
- }\r
- if(uip_len > 0) {\r
- goto tcp_send_ack;\r
- }\r
- goto drop;\r
-\r
- case TIME_WAIT:\r
- goto tcp_send_ack;\r
- \r
- case CLOSING:\r
- if(uip_flags & UIP_ACKDATA) {\r
- uip_connr->tcpstateflags = TIME_WAIT;\r
- uip_connr->timer = 0;\r
- }\r
- } \r
- goto drop;\r
- \r
-\r
- /* We jump here when we are ready to send the packet, and just want\r
- to set the appropriate TCP sequence numbers in the TCP header. */\r
- tcp_send_ack:\r
- BUF->flags = TCP_ACK;\r
- tcp_send_nodata:\r
- uip_len = 40;\r
- tcp_send_noopts:\r
- BUF->tcpoffset = 5 << 4;\r
- tcp_send:\r
- /* We're done with the input processing. We are now ready to send a\r
- reply. Our job is to fill in all the fields of the TCP and IP\r
- headers before calculating the checksum and finally send the\r
- packet. */\r
- BUF->ackno[0] = uip_connr->rcv_nxt[0];\r
- BUF->ackno[1] = uip_connr->rcv_nxt[1];\r
- BUF->ackno[2] = uip_connr->rcv_nxt[2];\r
- BUF->ackno[3] = uip_connr->rcv_nxt[3];\r
- \r
- BUF->seqno[0] = uip_connr->snd_nxt[0];\r
- BUF->seqno[1] = uip_connr->snd_nxt[1];\r
- BUF->seqno[2] = uip_connr->snd_nxt[2];\r
- BUF->seqno[3] = uip_connr->snd_nxt[3];\r
-\r
- BUF->proto = UIP_PROTO_TCP;\r
- \r
- BUF->srcport = uip_connr->lport;\r
- BUF->destport = uip_connr->rport;\r
-\r
- BUF->srcipaddr[0] = uip_hostaddr[0];\r
- BUF->srcipaddr[1] = uip_hostaddr[1];\r
- BUF->destipaddr[0] = uip_connr->ripaddr[0];\r
- BUF->destipaddr[1] = uip_connr->ripaddr[1];\r
- \r
-\r
- if(uip_connr->tcpstateflags & UIP_STOPPED) {\r
- /* If the connection has issued uip_stop(), we advertise a zero\r
- window so that the remote host will stop sending data. */\r
- BUF->wnd[0] = BUF->wnd[1] = 0;\r
- } else {\r
- BUF->wnd[0] = ((UIP_RECEIVE_WINDOW) >> 8);\r
- BUF->wnd[1] = ((UIP_RECEIVE_WINDOW) & 0xff); \r
- }\r
-\r
- tcp_send_noconn:\r
-\r
- BUF->len[0] = (uip_len >> 8);\r
- BUF->len[1] = (uip_len & 0xff);\r
-\r
- /* Calculate TCP checksum. */\r
- BUF->tcpchksum = 0;\r
- BUF->tcpchksum = ~(uip_tcpchksum());\r
- \r
- ip_send_nolen:\r
-\r
- BUF->vhl = 0x45;\r
- BUF->tos = 0;\r
- BUF->ipoffset[0] = BUF->ipoffset[1] = 0;\r
- BUF->ttl = UIP_TTL;\r
- ++ipid;\r
- BUF->ipid[0] = ipid >> 8;\r
- BUF->ipid[1] = ipid & 0xff;\r
- \r
- /* Calculate IP checksum. */\r
- BUF->ipchksum = 0;\r
- BUF->ipchksum = ~(uip_ipchksum());\r
-\r
- UIP_STAT(++uip_stat.tcp.sent);\r
- send:\r
- UIP_STAT(++uip_stat.ip.sent);\r
- /* Return and let the caller do the actual transmission. */\r
- return;\r
- drop:\r
- uip_len = 0;\r
- return;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-htons(u16_t val)\r
-{\r
- return HTONS(val);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \file\r
- * Header file for the uIP TCP/IP stack.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * The uIP TCP/IP stack header file contains definitions for a number\r
- * of C macros that are used by uIP programs as well as internal uIP\r
- * structures, TCP/IP header structures and function declarations.\r
- *\r
- */\r
-\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip.h,v 1.36.2.7 2003/10/07 13:47:51 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIP_H__\r
-#define __UIP_H__\r
-\r
-#include "uipopt.h"\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* First, the functions that should be called from the\r
- * system. Initialization, the periodic timer and incoming packets are\r
- * handled by the following three functions.\r
- */\r
-\r
-/**\r
- * \defgroup uipconffunc uIP configuration functions\r
- * @{\r
- *\r
- * The uIP configuration functions are used for setting run-time\r
- * parameters in uIP such as IP addresses. \r
- */\r
-\r
-/**\r
- * Set the IP address of this host.\r
- *\r
- * The IP address is represented as a 4-byte array where the first\r
- * octet of the IP address is put in the first member of the 4-byte\r
- * array.\r
- *\r
- * \param addr A pointer to a 4-byte representation of the IP address.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_sethostaddr(addr) do { uip_hostaddr[0] = addr[0]; \\r
- uip_hostaddr[1] = addr[1]; } while(0)\r
-\r
-/**\r
- * Get the IP address of this host.\r
- *\r
- * The IP address is represented as a 4-byte array where the first\r
- * octet of the IP address is put in the first member of the 4-byte\r
- * array.\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the currently configured IP address.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_gethostaddr(addr) do { addr[0] = uip_hostaddr[0]; \\r
- addr[1] = uip_hostaddr[1]; } while(0)\r
-\r
-/** @} */\r
-\r
-/**\r
- * \defgroup uipinit uIP initialization functions\r
- * @{\r
- *\r
- * The uIP initialization functions are used for booting uIP.\r
- */\r
-\r
-/**\r
- * uIP initialization function.\r
- *\r
- * This function should be called at boot up to initilize the uIP\r
- * TCP/IP stack.\r
- */\r
-void uip_init(void);\r
-\r
-/** @} */\r
-\r
-/**\r
- * \defgroup uipdevfunc uIP device driver functions\r
- * @{\r
- *\r
- * These functions are used by a network device driver for interacting\r
- * with uIP.\r
- */\r
-\r
-/**\r
- * Process an incoming packet.\r
- *\r
- * This function should be called when the device driver has received\r
- * a packet from the network. The packet from the device driver must\r
- * be present in the uip_buf buffer, and the length of the packet\r
- * should be placed in the uip_len variable.\r
- *\r
- * When the function returns, there may be an outbound packet placed\r
- * in the uip_buf packet buffer. If so, the uip_len variable is set to\r
- * the length of the packet. If no packet is to be sent out, the\r
- * uip_len variable is set to 0.\r
- *\r
- * The usual way of calling the function is presented by the source\r
- * code below.\r
- \code\r
- uip_len = devicedriver_poll();\r
- if(uip_len > 0) {\r
- uip_input();\r
- if(uip_len > 0) {\r
- devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \note If you are writing a uIP device driver that needs ARP\r
- * (Address Resolution Protocol), e.g., when running uIP over\r
- * Ethernet, you will need to call the uIP ARP code before calling\r
- * this function:\r
- \code\r
- #define BUF ((struct uip_eth_hdr *)&uip_buf[0])\r
- uip_len = ethernet_devicedrver_poll();\r
- if(uip_len > 0) {\r
- if(BUF->type == HTONS(UIP_ETHTYPE_IP)) {\r
- uip_arp_ipin();\r
- uip_input();\r
- if(uip_len > 0) {\r
- uip_arp_out();\r
- ethernet_devicedriver_send();\r
- }\r
- } else if(BUF->type == HTONS(UIP_ETHTYPE_ARP)) {\r
- uip_arp_arpin();\r
- if(uip_len > 0) {\r
- ethernet_devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_input() uip_process(UIP_DATA)\r
-\r
-/**\r
- * Periodic processing for a connection identified by its number.\r
- * \r
- * This function does the necessary periodic processing (timers,\r
- * polling) for a uIP TCP conneciton, and should be called when the\r
- * periodic uIP timer goes off. It should be called for every\r
- * connection, regardless of whether they are open of closed.\r
- *\r
- * When the function returns, it may have an outbound packet waiting\r
- * for service in the uIP packet buffer, and if so the uip_len\r
- * variable is set to a value larger than zero. The device driver\r
- * should be called to send out the packet.\r
- *\r
- * The ususal way of calling the function is through a for() loop like\r
- * this:\r
- \code\r
- for(i = 0; i < UIP_CONNS; ++i) {\r
- uip_periodic(i);\r
- if(uip_len > 0) {\r
- devicedriver_send();\r
- }\r
- }\r
- \endcode\r
- *\r
- * \note If you are writing a uIP device driver that needs ARP\r
- * (Address Resolution Protocol), e.g., when running uIP over\r
- * Ethernet, you will need to call the uip_arp_out() function before\r
- * calling the device driver:\r
- \code\r
- for(i = 0; i < UIP_CONNS; ++i) {\r
- uip_periodic(i);\r
- if(uip_len > 0) {\r
- uip_arp_out();\r
- ethernet_devicedriver_send();\r
- }\r
- }\r
- \endcode \r
- *\r
- * \param conn The number of the connection which is to be periodically polled.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_periodic(conn) do { uip_conn = &uip_conns[conn]; \\r
- uip_process(UIP_TIMER); } while (0)\r
-\r
-/**\r
- * Periodic processing for a connection identified by a pointer to its structure.\r
- *\r
- * Same as uip_periodic() but takes a pointer to the actual uip_conn\r
- * struct instead of an integer as its argument. This function can be\r
- * used to force periodic processing of a specific connection.\r
- *\r
- * \param conn A pointer to the uip_conn struct for the connection to\r
- * be processed.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_periodic_conn(conn) do { uip_conn = conn; \\r
- uip_process(UIP_TIMER); } while (0)\r
-\r
-#if UIP_UDP\r
-/**\r
- * Periodic processing for a UDP connection identified by its number.\r
- *\r
- * This function is essentially the same as uip_prerioic(), but for\r
- * UDP connections. It is called in a similar fashion as the\r
- * uip_periodic() function:\r
- \code\r
- for(i = 0; i < UIP_UDP_CONNS; i++) {\r
- uip_udp_periodic(i);\r
- if(uip_len > 0) {\r
- devicedriver_send();\r
- }\r
- } \r
- \endcode\r
- *\r
- * \note As for the uip_periodic() function, special care has to be\r
- * taken when using uIP together with ARP and Ethernet:\r
- \code\r
- for(i = 0; i < UIP_UDP_CONNS; i++) {\r
- uip_udp_periodic(i);\r
- if(uip_len > 0) {\r
- uip_arp_out();\r
- ethernet_devicedriver_send();\r
- }\r
- } \r
- \endcode\r
- *\r
- * \param conn The number of the UDP connection to be processed.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_periodic(conn) do { uip_udp_conn = &uip_udp_conns[conn]; \\r
- uip_process(UIP_UDP_TIMER); } while (0)\r
-\r
-/**\r
- * Periodic processing for a UDP connection identified by a pointer to\r
- * its structure.\r
- *\r
- * Same as uip_udp_periodic() but takes a pointer to the actual\r
- * uip_conn struct instead of an integer as its argument. This\r
- * function can be used to force periodic processing of a specific\r
- * connection.\r
- *\r
- * \param conn A pointer to the uip_udp_conn struct for the connection\r
- * to be processed.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_periodic_conn(conn) do { uip_udp_conn = conn; \\r
- uip_process(UIP_UDP_TIMER); } while (0)\r
-\r
-\r
-#endif /* UIP_UDP */\r
-\r
-/**\r
- * The uIP packet buffer.\r
- *\r
- * The uip_buf array is used to hold incoming and outgoing\r
- * packets. The device driver should place incoming data into this\r
- * buffer. When sending data, the device driver should read the link\r
- * level headers and the TCP/IP headers from this buffer. The size of\r
- * the link level headers is configured by the UIP_LLH_LEN define.\r
- *\r
- * \note The application data need not be placed in this buffer, so\r
- * the device driver must read it from the place pointed to by the\r
- * uip_appdata pointer as illustrated by the following example:\r
- \code\r
- void\r
- devicedriver_send(void)\r
- {\r
- hwsend(&uip_buf[0], UIP_LLH_LEN);\r
- hwsend(&uip_buf[UIP_LLH_LEN], 40);\r
- hwsend(uip_appdata, uip_len - 40 - UIP_LLH_LEN);\r
- }\r
- \endcode\r
- */\r
-extern u8_t uip_buf[UIP_BUFSIZE+2] __attribute__ ((aligned (4)));\r
-\r
-/** @} */\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* Functions that are used by the uIP application program. Opening and\r
- * closing connections, sending and receiving data, etc. is all\r
- * handled by the functions below.\r
-*/\r
-/**\r
- * \defgroup uipappfunc uIP application functions\r
- * @{\r
- *\r
- * Functions used by an application running of top of uIP.\r
- */\r
-\r
-/**\r
- * Start listening to the specified port.\r
- *\r
- * \note Since this function expects the port number in network byte\r
- * order, a conversion using HTONS() or htons() is necessary.\r
- *\r
- \code\r
- uip_listen(HTONS(80)); \r
- \endcode\r
- *\r
- * \param port A 16-bit port number in network byte order.\r
- */\r
-void uip_listen(u16_t port);\r
-\r
-/**\r
- * Stop listening to the specified port.\r
- *\r
- * \note Since this function expects the port number in network byte\r
- * order, a conversion using HTONS() or htons() is necessary.\r
- *\r
- \code\r
- uip_unlisten(HTONS(80)); \r
- \endcode\r
- *\r
- * \param port A 16-bit port number in network byte order.\r
- */\r
-void uip_unlisten(u16_t port);\r
-\r
-/**\r
- * Connect to a remote host using TCP.\r
- *\r
- * This function is used to start a new connection to the specified\r
- * port on the specied host. It allocates a new connection identifier,\r
- * sets the connection to the SYN_SENT state and sets the\r
- * retransmission timer to 0. This will cause a TCP SYN segment to be\r
- * sent out the next time this connection is periodically processed,\r
- * which usually is done within 0.5 seconds after the call to\r
- * uip_connect().\r
- *\r
- * \note This function is avaliable only if support for active open\r
- * has been configured by defining UIP_ACTIVE_OPEN to 1 in uipopt.h.\r
- *\r
- * \note Since this function requires the port number to be in network\r
- * byte order, a convertion using HTONS() or htons() is necessary.\r
- *\r
- \code\r
- u16_t ipaddr[2];\r
-\r
- uip_ipaddr(ipaddr, 192,168,1,2);\r
- uip_connect(ipaddr, HTONS(80)); \r
- \endcode\r
- * \r
- * \param ripaddr A pointer to a 4-byte array representing the IP\r
- * address of the remote hot.\r
- *\r
- * \param port A 16-bit port number in network byte order.\r
- *\r
- * \return A pointer to the uIP connection identifier for the new connection,\r
- * or NULL if no connection could be allocated. \r
- *\r
- */\r
-struct uip_conn *uip_connect(u16_t *ripaddr, u16_t port);\r
-\r
-\r
-\r
-/**\r
- * \internal\r
- *\r
- * Check if a connection has outstanding (i.e., unacknowledged) data.\r
- *\r
- * \param conn A pointer to the uip_conn structure for the connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_outstanding(conn) ((conn)->len)\r
-\r
-/**\r
- * Send data on the current connection.\r
- *\r
- * This function is used to send out a single segment of TCP\r
- * data. Only applications that have been invoked by uIP for event\r
- * processing can send data. \r
- *\r
- * The amount of data that actually is sent out after a call to this\r
- * funcion is determined by the maximum amount of data TCP allows. uIP\r
- * will automatically crop the data so that only the appropriate\r
- * amount of data is sent. The function uip_mss() can be used to query\r
- * uIP for the amount of data that actually will be sent.\r
- * \r
- * \note This function does not guarantee that the sent data will\r
- * arrive at the destination. If the data is lost in the network, the\r
- * application will be invoked with the uip_rexmit() event being\r
- * set. The application will then have to resend the data using this\r
- * function.\r
- * \r
- * \param data A pointer to the data which is to be sent.\r
- *\r
- * \param len The maximum amount of data bytes to be sent.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_send(data, len) do { uip_sappdata = (data); uip_slen = (len);} while(0) \r
-\r
-/**\r
- * The length of any incoming data that is currently avaliable (if avaliable)\r
- * in the uip_appdata buffer.\r
- *\r
- * The test function uip_data() must first be used to check if there\r
- * is any data available at all.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_datalen() uip_len\r
-\r
-/**\r
- * The length of any out-of-band data (urgent data) that has arrived\r
- * on the connection.\r
- *\r
- * \note The configuration parameter UIP_URGDATA must be set for this\r
- * function to be enabled.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_urgdatalen() uip_urglen\r
-\r
-/**\r
- * Close the current connection.\r
- *\r
- * This function will close the current connection in a nice way.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_close() (uip_flags = UIP_CLOSE)\r
-\r
-/**\r
- * Abort the current connection.\r
- *\r
- * This function will abort (reset) the current connection, and is\r
- * usually used when an error has occured that prevents using the\r
- * uip_close() function.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_abort() (uip_flags = UIP_ABORT)\r
-\r
-/**\r
- * Tell the sending host to stop sending data.\r
- *\r
- * This function will close our receiver's window so that we stop\r
- * receiving data for the current connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_stop() (uip_conn->tcpstateflags |= UIP_STOPPED)\r
-\r
-/**\r
- * Find out if the current connection has been previously stopped with\r
- * uip_stop().\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_stopped(conn) ((conn)->tcpstateflags & UIP_STOPPED)\r
-\r
-/**\r
- * Restart the current connection, if is has previously been stopped\r
- * with uip_stop().\r
- *\r
- * This function will open the receiver's window again so that we\r
- * start receiving data for the current connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_restart() do { uip_flags |= UIP_NEWDATA; \\r
- uip_conn->tcpstateflags &= ~UIP_STOPPED; \\r
- } while(0)\r
-\r
-\r
-/* uIP tests that can be made to determine in what state the current\r
- connection is, and what the application function should do. */\r
-\r
-/**\r
- * Is new incoming data available?\r
- *\r
- * Will reduce to non-zero if there is new data for the application\r
- * present at the uip_appdata pointer. The size of the data is\r
- * avaliable through the uip_len variable.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_newdata() (uip_flags & UIP_NEWDATA)\r
-\r
-/**\r
- * Has previously sent data been acknowledged?\r
- *\r
- * Will reduce to non-zero if the previously sent data has been\r
- * acknowledged by the remote host. This means that the application\r
- * can send new data. \r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_acked() (uip_flags & UIP_ACKDATA)\r
-\r
-/**\r
- * Has the connection just been connected? \r
- *\r
- * Reduces to non-zero if the current connection has been connected to\r
- * a remote host. This will happen both if the connection has been\r
- * actively opened (with uip_connect()) or passively opened (with\r
- * uip_listen()).\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_connected() (uip_flags & UIP_CONNECTED)\r
-\r
-/**\r
- * Has the connection been closed by the other end?\r
- *\r
- * Is non-zero if the connection has been closed by the remote\r
- * host. The application may then do the necessary clean-ups.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_closed() (uip_flags & UIP_CLOSE)\r
-\r
-/**\r
- * Has the connection been aborted by the other end?\r
- *\r
- * Non-zero if the current connection has been aborted (reset) by the\r
- * remote host.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_aborted() (uip_flags & UIP_ABORT)\r
-\r
-/**\r
- * Has the connection timed out?\r
- *\r
- * Non-zero if the current connection has been aborted due to too many\r
- * retransmissions.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_timedout() (uip_flags & UIP_TIMEDOUT)\r
-\r
-/**\r
- * Do we need to retransmit previously data?\r
- *\r
- * Reduces to non-zero if the previously sent data has been lost in\r
- * the network, and the application should retransmit it. The\r
- * application should send the exact same data as it did the last\r
- * time, using the uip_send() function.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_rexmit() (uip_flags & UIP_REXMIT)\r
-\r
-/**\r
- * Is the connection being polled by uIP?\r
- *\r
- * Is non-zero if the reason the application is invoked is that the\r
- * current connection has been idle for a while and should be\r
- * polled.\r
- *\r
- * The polling event can be used for sending data without having to\r
- * wait for the remote host to send data.\r
- *\r
- * \hideinitializer\r
- */ \r
-#define uip_poll() (uip_flags & UIP_POLL)\r
-\r
-/**\r
- * Get the initial maxium segment size (MSS) of the current\r
- * connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_initialmss() (uip_conn->initialmss)\r
-\r
-/**\r
- * Get the current maxium segment size that can be sent on the current\r
- * connection.\r
- *\r
- * The current maxiumum segment size that can be sent on the\r
- * connection is computed from the receiver's window and the MSS of\r
- * the connection (which also is available by calling\r
- * uip_initialmss()).\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_mss() (uip_conn->mss)\r
-\r
-/**\r
- * Set up a new UDP connection.\r
- *\r
- * \param ripaddr A pointer to a 4-byte structure representing the IP\r
- * address of the remote host.\r
- *\r
- * \param rport The remote port number in network byte order.\r
- *\r
- * \return The uip_udp_conn structure for the new connection or NULL\r
- * if no connection could be allocated.\r
- */\r
-struct uip_udp_conn *uip_udp_new(u16_t *ripaddr, u16_t rport);\r
-\r
-/**\r
- * Removed a UDP connection.\r
- *\r
- * \param conn A pointer to the uip_udp_conn structure for the connection.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_remove(conn) (conn)->lport = 0\r
-\r
-/**\r
- * Send a UDP datagram of length len on the current connection.\r
- *\r
- * This function can only be called in response to a UDP event (poll\r
- * or newdata). The data must be present in the uip_buf buffer, at the\r
- * place pointed to by the uip_appdata pointer.\r
- *\r
- * \param len The length of the data in the uip_buf buffer.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_udp_send(len) uip_slen = (len)\r
-\r
-/** @} */\r
-\r
-/* uIP convenience and converting functions. */\r
-\r
-/**\r
- * \defgroup uipconvfunc uIP conversion functions\r
- * @{\r
- *\r
- * These functions can be used for converting between different data\r
- * formats used by uIP.\r
- */\r
- \r
-/**\r
- * Pack an IP address into a 4-byte array which is used by uIP to\r
- * represent IP addresses.\r
- *\r
- * Example:\r
- \code\r
- u16_t ipaddr[2];\r
-\r
- uip_ipaddr(&ipaddr, 192,168,1,2); \r
- \endcode\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the IP addres.\r
- * \param addr0 The first octet of the IP address.\r
- * \param addr1 The second octet of the IP address.\r
- * \param addr2 The third octet of the IP address.\r
- * \param addr3 The forth octet of the IP address. \r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_ipaddr(addr, addr0,addr1,addr2,addr3) do { \\r
- (addr)[0] = HTONS(((addr0) << 8) | (addr1)); \\r
- (addr)[1] = HTONS(((addr2) << 8) | (addr3)); \\r
- } while(0)\r
-\r
-/**\r
- * Convert 16-bit quantity from host byte order to network byte order.\r
- *\r
- * This macro is primarily used for converting constants from host\r
- * byte order to network byte order. For converting variables to\r
- * network byte order, use the htons() function instead.\r
- *\r
- * \hideinitializer\r
- */\r
-#ifndef HTONS\r
-# if BYTE_ORDER == BIG_ENDIAN\r
-# define HTONS(n) (n)\r
-# else /* BYTE_ORDER == BIG_ENDIAN */\r
-# define HTONS(n) ((((u16_t)((n) & 0xff)) << 8) | (((n) & 0xff00) >> 8))\r
-# endif /* BYTE_ORDER == BIG_ENDIAN */\r
-#endif /* HTONS */\r
-\r
-/**\r
- * Convert 16-bit quantity from host byte order to network byte order.\r
- *\r
- * This function is primarily used for converting variables from host\r
- * byte order to network byte order. For converting constants to\r
- * network byte order, use the HTONS() macro instead.\r
- */\r
-#ifndef htons\r
-u16_t htons(u16_t val);\r
-#endif /* htons */\r
-\r
-/** @} */\r
-\r
-/**\r
- * Pointer to the application data in the packet buffer.\r
- *\r
- * This pointer points to the application data when the application is\r
- * called. If the application wishes to send data, the application may\r
- * use this space to write the data into before calling uip_send().\r
- */\r
-extern volatile u8_t *uip_appdata;\r
-extern volatile u8_t *uip_sappdata; \r
-\r
-#if UIP_URGDATA > 0 \r
-/* u8_t *uip_urgdata:\r
- *\r
- * This pointer points to any urgent data that has been received. Only\r
- * present if compiled with support for urgent data (UIP_URGDATA).\r
- */\r
-extern volatile u8_t *uip_urgdata; \r
-#endif /* UIP_URGDATA > 0 */\r
-\r
-\r
-/* u[8|16]_t uip_len:\r
- *\r
- * When the application is called, uip_len contains the length of any\r
- * new data that has been received from the remote host. The\r
- * application should set this variable to the size of any data that\r
- * the application wishes to send. When the network device driver\r
- * output function is called, uip_len should contain the length of the\r
- * outgoing packet.\r
- */\r
-extern volatile u16_t uip_len, uip_slen;\r
-\r
-#if UIP_URGDATA > 0 \r
-extern volatile u8_t uip_urglen, uip_surglen;\r
-#endif /* UIP_URGDATA > 0 */\r
-\r
-\r
-/**\r
- * Representation of a uIP TCP connection.\r
- *\r
- * The uip_conn structure is used for identifying a connection. All\r
- * but one field in the structure are to be considered read-only by an\r
- * application. The only exception is the appstate field whos purpose\r
- * is to let the application store application-specific state (e.g.,\r
- * file pointers) for the connection. The size of this field is\r
- * configured in the "uipopt.h" header file.\r
- */\r
-struct uip_conn {\r
- u16_t ripaddr[2]; /**< The IP address of the remote host. */\r
- \r
- u16_t lport; /**< The local TCP port, in network byte order. */\r
- u16_t rport; /**< The local remote TCP port, in network byte\r
- order. */ \r
- \r
- u8_t rcv_nxt[4]; /**< The sequence number that we expect to\r
- receive next. */\r
- u8_t snd_nxt[4]; /**< The sequence number that was last sent by\r
- us. */\r
- u16_t len; /**< Length of the data that was previously sent. */\r
- u16_t mss; /**< Current maximum segment size for the\r
- connection. */\r
- u16_t initialmss; /**< Initial maximum segment size for the\r
- connection. */ \r
- u8_t sa; /**< Retransmission time-out calculation state\r
- variable. */\r
- u8_t sv; /**< Retransmission time-out calculation state\r
- variable. */\r
- u8_t rto; /**< Retransmission time-out. */\r
- u8_t tcpstateflags; /**< TCP state and flags. */\r
- u8_t timer; /**< The retransmission timer. */\r
- u8_t nrtx; /**< The number of retransmissions for the last\r
- segment sent. */\r
-\r
- /** The application state. */\r
- u8_t appstate[UIP_APPSTATE_SIZE]; \r
-};\r
-\r
-\r
-/* Pointer to the current connection. */\r
-extern struct uip_conn *uip_conn;\r
-/* The array containing all uIP connections. */\r
-extern struct uip_conn uip_conns[UIP_CONNS];\r
-/**\r
- * \addtogroup uiparch\r
- * @{\r
- */\r
-\r
-/**\r
- * 4-byte array used for the 32-bit sequence number calculations.\r
- */\r
-extern volatile u8_t uip_acc32[4];\r
-\r
-/** @} */\r
-\r
-\r
-#if UIP_UDP\r
-/**\r
- * Representation of a uIP UDP connection.\r
- */\r
-struct uip_udp_conn {\r
- u16_t ripaddr[2]; /**< The IP address of the remote peer. */\r
- u16_t lport; /**< The local port number in network byte order. */\r
- u16_t rport; /**< The remote port number in network byte order. */\r
-};\r
-\r
-extern struct uip_udp_conn *uip_udp_conn;\r
-extern struct uip_udp_conn uip_udp_conns[UIP_UDP_CONNS];\r
-#endif /* UIP_UDP */\r
-\r
-/**\r
- * The structure holding the TCP/IP statistics that are gathered if\r
- * UIP_STATISTICS is set to 1.\r
- *\r
- */\r
-struct uip_stats {\r
- struct {\r
- uip_stats_t drop; /**< Number of dropped packets at the IP\r
- layer. */\r
- uip_stats_t recv; /**< Number of received packets at the IP\r
- layer. */\r
- uip_stats_t sent; /**< Number of sent packets at the IP\r
- layer. */\r
- uip_stats_t vhlerr; /**< Number of packets dropped due to wrong\r
- IP version or header length. */\r
- uip_stats_t hblenerr; /**< Number of packets dropped due to wrong\r
- IP length, high byte. */\r
- uip_stats_t lblenerr; /**< Number of packets dropped due to wrong\r
- IP length, low byte. */\r
- uip_stats_t fragerr; /**< Number of packets dropped since they\r
- were IP fragments. */\r
- uip_stats_t chkerr; /**< Number of packets dropped due to IP\r
- checksum errors. */\r
- uip_stats_t protoerr; /**< Number of packets dropped since they\r
- were neither ICMP, UDP nor TCP. */\r
- } ip; /**< IP statistics. */\r
- struct {\r
- uip_stats_t drop; /**< Number of dropped ICMP packets. */\r
- uip_stats_t recv; /**< Number of received ICMP packets. */\r
- uip_stats_t sent; /**< Number of sent ICMP packets. */\r
- uip_stats_t typeerr; /**< Number of ICMP packets with a wrong\r
- type. */\r
- } icmp; /**< ICMP statistics. */\r
- struct {\r
- uip_stats_t drop; /**< Number of dropped TCP segments. */\r
- uip_stats_t recv; /**< Number of recived TCP segments. */\r
- uip_stats_t sent; /**< Number of sent TCP segments. */\r
- uip_stats_t chkerr; /**< Number of TCP segments with a bad\r
- checksum. */\r
- uip_stats_t ackerr; /**< Number of TCP segments with a bad ACK\r
- number. */\r
- uip_stats_t rst; /**< Number of recevied TCP RST (reset) segments. */\r
- uip_stats_t rexmit; /**< Number of retransmitted TCP segments. */\r
- uip_stats_t syndrop; /**< Number of dropped SYNs due to too few\r
- connections was avaliable. */\r
- uip_stats_t synrst; /**< Number of SYNs for closed ports,\r
- triggering a RST. */\r
- } tcp; /**< TCP statistics. */\r
-};\r
-\r
-/**\r
- * The uIP TCP/IP statistics.\r
- *\r
- * This is the variable in which the uIP TCP/IP statistics are gathered.\r
- */\r
-extern struct uip_stats uip_stat;\r
-\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-/* All the stuff below this point is internal to uIP and should not be\r
- * used directly by an application or by a device driver.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-/* u8_t uip_flags:\r
- *\r
- * When the application is called, uip_flags will contain the flags\r
- * that are defined in this file. Please read below for more\r
- * infomation.\r
- */\r
-extern volatile u8_t uip_flags;\r
-\r
-/* The following flags may be set in the global variable uip_flags\r
- before calling the application callback. The UIP_ACKDATA and\r
- UIP_NEWDATA flags may both be set at the same time, whereas the\r
- others are mutualy exclusive. Note that these flags should *NOT* be\r
- accessed directly, but through the uIP functions/macros. */\r
-\r
-#define UIP_ACKDATA 1 /* Signifies that the outstanding data was\r
- acked and the application should send\r
- out new data instead of retransmitting\r
- the last data. */\r
-#define UIP_NEWDATA 2 /* Flags the fact that the peer has sent\r
- us new data. */\r
-#define UIP_REXMIT 4 /* Tells the application to retransmit the\r
- data that was last sent. */\r
-#define UIP_POLL 8 /* Used for polling the application, to\r
- check if the application has data that\r
- it wants to send. */\r
-#define UIP_CLOSE 16 /* The remote host has closed the\r
- connection, thus the connection has\r
- gone away. Or the application signals\r
- that it wants to close the\r
- connection. */\r
-#define UIP_ABORT 32 /* The remote host has aborted the\r
- connection, thus the connection has\r
- gone away. Or the application signals\r
- that it wants to abort the\r
- connection. */\r
-#define UIP_CONNECTED 64 /* We have got a connection from a remote\r
- host and have set up a new connection\r
- for it, or an active connection has\r
- been successfully established. */\r
-\r
-#define UIP_TIMEDOUT 128 /* The connection has been aborted due to\r
- too many retransmissions. */\r
-\r
-\r
-/* uip_process(flag):\r
- *\r
- * The actual uIP function which does all the work.\r
- */\r
-void uip_process(u8_t flag);\r
-\r
-/* The following flags are passed as an argument to the uip_process()\r
- function. They are used to distinguish between the two cases where\r
- uip_process() is called. It can be called either because we have\r
- incoming data that should be processed, or because the periodic\r
- timer has fired. */\r
-\r
-#define UIP_DATA 1 /* Tells uIP that there is incoming data in\r
- the uip_buf buffer. The length of the\r
- data is stored in the global variable\r
- uip_len. */\r
-#define UIP_TIMER 2 /* Tells uIP that the periodic timer has\r
- fired. */\r
-#if UIP_UDP\r
-#define UIP_UDP_TIMER 3\r
-#endif /* UIP_UDP */\r
-\r
-/* The TCP states used in the uip_conn->tcpstateflags. */\r
-#define CLOSED 0\r
-#define SYN_RCVD 1\r
-#define SYN_SENT 2\r
-#define ESTABLISHED 3\r
-#define FIN_WAIT_1 4\r
-#define FIN_WAIT_2 5\r
-#define CLOSING 6\r
-#define TIME_WAIT 7\r
-#define LAST_ACK 8\r
-#define TS_MASK 15\r
- \r
-#define UIP_STOPPED 16\r
-\r
-#define UIP_TCPIP_HLEN 40\r
-\r
-/* The TCP and IP headers. */\r
-typedef struct {\r
- /* IP header. */\r
- u8_t vhl,\r
- tos, \r
- len[2], \r
- ipid[2], \r
- ipoffset[2], \r
- ttl, \r
- proto; \r
- u16_t ipchksum;\r
- u16_t srcipaddr[2], \r
- destipaddr[2];\r
- \r
- /* TCP header. */\r
- u16_t srcport,\r
- destport;\r
- u8_t seqno[4], \r
- ackno[4],\r
- tcpoffset,\r
- flags,\r
- wnd[2]; \r
- u16_t tcpchksum;\r
- u8_t urgp[2];\r
- u8_t optdata[4];\r
-} uip_tcpip_hdr;\r
-\r
-/* The ICMP and IP headers. */\r
-typedef struct {\r
- /* IP header. */\r
- u8_t vhl,\r
- tos, \r
- len[2], \r
- ipid[2], \r
- ipoffset[2], \r
- ttl, \r
- proto; \r
- u16_t ipchksum;\r
- u16_t srcipaddr[2], \r
- destipaddr[2];\r
- /* ICMP (echo) header. */\r
- u8_t type, icode;\r
- u16_t icmpchksum;\r
- u16_t id, seqno; \r
-} uip_icmpip_hdr;\r
-\r
-\r
-/* The UDP and IP headers. */\r
-typedef struct {\r
- /* IP header. */\r
- u8_t vhl,\r
- tos, \r
- len[2], \r
- ipid[2], \r
- ipoffset[2], \r
- ttl, \r
- proto; \r
- u16_t ipchksum;\r
- u16_t srcipaddr[2], \r
- destipaddr[2];\r
- \r
- /* UDP header. */\r
- u16_t srcport,\r
- destport;\r
- u16_t udplen;\r
- u16_t udpchksum;\r
-} uip_udpip_hdr;\r
-\r
-#define UIP_PROTO_ICMP 1\r
-#define UIP_PROTO_TCP 6\r
-#define UIP_PROTO_UDP 17\r
-\r
-#if UIP_FIXEDADDR\r
-extern const u16_t uip_hostaddr[2];\r
-#else /* UIP_FIXEDADDR */\r
-extern u16_t uip_hostaddr[2];\r
-#endif /* UIP_FIXEDADDR */\r
-\r
-#endif /* __UIP_H__ */\r
-\r
-\r
-/** @} */\r
-\r
+++ /dev/null
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arch.c,v 1.2.2.1 2003/10/04 22:54:17 adam Exp $\r
- *\r
- */\r
-\r
-\r
-#include "uip.h"\r
-#include "uip_arch.h"\r
-#include <__cross_studio_io.h>\r
-\r
-#define BUF ((uip_tcpip_hdr *)&uip_buf[UIP_LLH_LEN])\r
-#define IP_PROTO_TCP 6\r
-\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_add32(u8_t *op32, u16_t op16)\r
-{\r
- \r
- uip_acc32[3] = op32[3] + (op16 & 0xff);\r
- uip_acc32[2] = op32[2] + (op16 >> 8);\r
- uip_acc32[1] = op32[1];\r
- uip_acc32[0] = op32[0];\r
- \r
- if(uip_acc32[2] < (op16 >> 8)) {\r
- ++uip_acc32[1]; \r
- if(uip_acc32[1] == 0) {\r
- ++uip_acc32[0];\r
- }\r
- }\r
- \r
- \r
- if(uip_acc32[3] < (op16 & 0xff)) {\r
- ++uip_acc32[2]; \r
- if(uip_acc32[2] == 0) {\r
- ++uip_acc32[1]; \r
- if(uip_acc32[1] == 0) {\r
- ++uip_acc32[0];\r
- }\r
- }\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-uip_chksum(u16_t *sdata, u16_t len)\r
-{\r
- u16_t acc;\r
- \r
- for (acc = 0; len > 1; len -= 2) {\r
- u16_t u = ((unsigned char *)sdata)[0] + (((unsigned char *)sdata)[1] << 8);\r
- if ((acc += u) < u) {\r
- /* Overflow, so we add the carry to acc (i.e., increase by\r
- one). */\r
- ++acc;\r
- }\r
- ++sdata;\r
- }\r
-\r
- /* add up any odd byte */\r
- if(len == 1) {\r
- acc += htons(((u16_t)(*(u8_t *)sdata)) << 8);\r
- if(acc < htons(((u16_t)(*(u8_t *)sdata)) << 8)) {\r
- ++acc;\r
- }\r
- }\r
-\r
- return acc;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-uip_ipchksum(void)\r
-{\r
- return uip_chksum((u16_t *)&uip_buf[UIP_LLH_LEN], 20);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-u16_t\r
-uip_tcpchksum(void)\r
-{\r
- u16_t hsum, sum;\r
-\r
- \r
- /* Compute the checksum of the TCP header. */\r
- hsum = uip_chksum((u16_t *)&uip_buf[20 + UIP_LLH_LEN], 20);\r
-\r
- /* Compute the checksum of the data in the TCP packet and add it to\r
- the TCP header checksum. */\r
- sum = uip_chksum((u16_t *)uip_appdata,\r
- (u16_t)(((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 40)));\r
-\r
- if((sum += hsum) < hsum) {\r
- ++sum;\r
- }\r
- \r
- if((sum += BUF->srcipaddr[0]) < BUF->srcipaddr[0]) {\r
- ++sum;\r
- }\r
- if((sum += BUF->srcipaddr[1]) < BUF->srcipaddr[1]) {\r
- ++sum;\r
- }\r
- if((sum += BUF->destipaddr[0]) < BUF->destipaddr[0]) {\r
- ++sum;\r
- }\r
- if((sum += BUF->destipaddr[1]) < BUF->destipaddr[1]) {\r
- ++sum;\r
- }\r
- if((sum += (u16_t)htons((u16_t)IP_PROTO_TCP)) < (u16_t)htons((u16_t)IP_PROTO_TCP)) {\r
- ++sum;\r
- }\r
-\r
- hsum = (u16_t)htons((((u16_t)(BUF->len[0]) << 8) + BUF->len[1]) - 20);\r
- \r
- if((sum += hsum) < hsum) {\r
- ++sum;\r
- }\r
-\r
- return sum;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
+++ /dev/null
-/**\r
- * \defgroup uiparch Architecture specific uIP functions\r
- * @{\r
- *\r
- * The functions in the architecture specific module implement the IP\r
- * check sum and 32-bit additions.\r
- *\r
- * The IP checksum calculation is the most computationally expensive\r
- * operation in the TCP/IP stack and it therefore pays off to\r
- * implement this in efficient assembler. The purpose of the uip-arch\r
- * module is to let the checksum functions to be implemented in\r
- * architecture specific assembler.\r
- *\r
- */\r
-\r
-/**\r
- * \file\r
- * Declarations of architecture specific functions.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arch.h,v 1.1.2.2 2003/10/06 15:10:22 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIP_ARCH_H__\r
-#define __UIP_ARCH_H__\r
-\r
-#include "uip.h"\r
-\r
-/**\r
- * Carry out a 32-bit addition.\r
- *\r
- * Because not all architectures for which uIP is intended has native\r
- * 32-bit arithmetic, uIP uses an external C function for doing the\r
- * required 32-bit additions in the TCP protocol processing. This\r
- * function should add the two arguments and place the result in the\r
- * global variable uip_acc32.\r
- *\r
- * \note The 32-bit integer pointed to by the op32 parameter and the\r
- * result in the uip_acc32 variable are in network byte order (big\r
- * endian).\r
- *\r
- * \param op32 A pointer to a 4-byte array representing a 32-bit\r
- * integer in network byte order (big endian).\r
- *\r
- * \param op16 A 16-bit integer in host byte order.\r
- */\r
-void uip_add32(u8_t *op32, u16_t op16);\r
-\r
-/**\r
- * Calculate the Internet checksum over a buffer.\r
- *\r
- * The Internet checksum is the one's complement of the one's\r
- * complement sum of all 16-bit words in the buffer.\r
- *\r
- * See RFC1071.\r
- *\r
- * \note This function is not called in the current version of uIP,\r
- * but future versions might make use of it.\r
- *\r
- * \param buf A pointer to the buffer over which the checksum is to be\r
- * computed.\r
- *\r
- * \param len The length of the buffer over which the checksum is to\r
- * be computed.\r
- *\r
- * \return The Internet checksum of the buffer.\r
- */\r
-u16_t uip_chksum(u16_t *buf, u16_t len);\r
-\r
-/**\r
- * Calculate the IP header checksum of the packet header in uip_buf.\r
- *\r
- * The IP header checksum is the Internet checksum of the 20 bytes of\r
- * the IP header.\r
- *\r
- * \return The IP header checksum of the IP header in the uip_buf\r
- * buffer.\r
- */\r
-u16_t uip_ipchksum(void);\r
-\r
-/**\r
- * Calculate the TCP checksum of the packet in uip_buf and uip_appdata.\r
- *\r
- * The TCP checksum is the Internet checksum of data contents of the\r
- * TCP segment, and a pseudo-header as defined in RFC793.\r
- *\r
- * \note The uip_appdata pointer that points to the packet data may\r
- * point anywhere in memory, so it is not possible to simply calculate\r
- * the Internet checksum of the contents of the uip_buf buffer.\r
- *\r
- * \return The TCP checksum of the TCP segment in uip_buf and pointed\r
- * to by uip_appdata.\r
- */\r
-u16_t uip_tcpchksum(void);\r
-\r
-/** @} */\r
-\r
-#endif /* __UIP_ARCH_H__ */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \defgroup uiparp uIP Address Resolution Protocol\r
- * @{\r
- * \r
- * The Address Resolution Protocol ARP is used for mapping between IP\r
- * addresses and link level addresses such as the Ethernet MAC\r
- * addresses. ARP uses broadcast queries to ask for the link level\r
- * address of a known IP address and the host which is configured with\r
- * the IP address for which the query was meant, will respond with its\r
- * link level address.\r
- *\r
- * \note This ARP implementation only supports Ethernet.\r
- */\r
- \r
-/**\r
- * \file\r
- * Implementation of the ARP Address Resolution Protocol.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arp.c,v 1.7.2.3 2003/10/06 22:42:30 adam Exp $\r
- *\r
- */\r
-\r
-\r
-#include "uip_arp.h"\r
-\r
-#include <string.h>\r
-\r
-struct arp_hdr {\r
- struct uip_eth_hdr ethhdr;\r
- u16_t hwtype;\r
- u16_t protocol;\r
- u8_t hwlen;\r
- u8_t protolen;\r
- u16_t opcode;\r
- struct uip_eth_addr shwaddr;\r
- u16_t sipaddr[2];\r
- struct uip_eth_addr dhwaddr;\r
- u16_t dipaddr[2]; \r
-};\r
-\r
-struct ethip_hdr {\r
- struct uip_eth_hdr ethhdr;\r
- /* IP header. */\r
- u8_t vhl,\r
- tos, \r
- len[2], \r
- ipid[2], \r
- ipoffset[2], \r
- ttl, \r
- proto; \r
- u16_t ipchksum;\r
- u16_t srcipaddr[2], \r
- destipaddr[2];\r
-};\r
-\r
-#define ARP_REQUEST 1\r
-#define ARP_REPLY 2\r
-\r
-#define ARP_HWTYPE_ETH 1\r
-\r
-struct arp_entry {\r
- u16_t ipaddr[2];\r
- struct uip_eth_addr ethaddr;\r
- u8_t time;\r
-};\r
-\r
-struct uip_eth_addr uip_ethaddr = {{UIP_ETHADDR0,\r
- UIP_ETHADDR1,\r
- UIP_ETHADDR2,\r
- UIP_ETHADDR3,\r
- UIP_ETHADDR4,\r
- UIP_ETHADDR5}};\r
-\r
-static struct arp_entry arp_table[UIP_ARPTAB_SIZE];\r
-static u16_t ipaddr[2];\r
-static u8_t i, c;\r
-\r
-static u8_t arptime;\r
-static u8_t tmpage;\r
-\r
-#define BUF ((struct arp_hdr *)&uip_buf[0])\r
-#define IPBUF ((struct ethip_hdr *)&uip_buf[0])\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Initialize the ARP module.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_init(void)\r
-{\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- memset(arp_table[i].ipaddr, 0, 4);\r
- }\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Periodic ARP processing function.\r
- *\r
- * This function performs periodic timer processing in the ARP module\r
- * and should be called at regular intervals. The recommended interval\r
- * is 10 seconds between the calls.\r
- *\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_timer(void)\r
-{\r
- struct arp_entry *tabptr;\r
- \r
- ++arptime;\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if((tabptr->ipaddr[0] | tabptr->ipaddr[1]) != 0 &&\r
- arptime - tabptr->time >= UIP_ARP_MAXAGE) {\r
- memset(tabptr->ipaddr, 0, 4);\r
- }\r
- }\r
-\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-static void\r
-uip_arp_update(u16_t *ipaddr, struct uip_eth_addr *ethaddr)\r
-{\r
- register struct arp_entry *tabptr;\r
- /* Walk through the ARP mapping table and try to find an entry to\r
- update. If none is found, the IP -> MAC address mapping is\r
- inserted in the ARP table. */\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
-\r
- tabptr = &arp_table[i];\r
- /* Only check those entries that are actually in use. */\r
- if(tabptr->ipaddr[0] != 0 &&\r
- tabptr->ipaddr[1] != 0) {\r
-\r
- /* Check if the source IP address of the incoming packet matches\r
- the IP address in this ARP table entry. */\r
- if(ipaddr[0] == tabptr->ipaddr[0] &&\r
- ipaddr[1] == tabptr->ipaddr[1]) {\r
- \r
- /* An old entry found, update this and return. */\r
- memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);\r
- tabptr->time = arptime;\r
-\r
- return;\r
- }\r
- }\r
- }\r
-\r
- /* If we get here, no existing ARP table entry was found, so we\r
- create one. */\r
-\r
- /* First, we try to find an unused entry in the ARP table. */\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if(tabptr->ipaddr[0] == 0 &&\r
- tabptr->ipaddr[1] == 0) {\r
- break;\r
- }\r
- }\r
-\r
- /* If no unused entry is found, we try to find the oldest entry and\r
- throw it away. */\r
- if(i == UIP_ARPTAB_SIZE) {\r
- tmpage = 0;\r
- c = 0;\r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if(arptime - tabptr->time > tmpage) {\r
- tmpage = arptime - tabptr->time;\r
- c = i;\r
- }\r
- }\r
- i = c;\r
- }\r
-\r
- /* Now, i is the ARP table entry which we will fill with the new\r
- information. */\r
- memcpy(tabptr->ipaddr, ipaddr, 4);\r
- memcpy(tabptr->ethaddr.addr, ethaddr->addr, 6);\r
- tabptr->time = arptime;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * ARP processing for incoming IP packets\r
- *\r
- * This function should be called by the device driver when an IP\r
- * packet has been received. The function will check if the address is\r
- * in the ARP cache, and if so the ARP cache entry will be\r
- * refreshed. If no ARP cache entry was found, a new one is created.\r
- *\r
- * This function expects an IP packet with a prepended Ethernet header\r
- * in the uip_buf[] buffer, and the length of the packet in the global\r
- * variable uip_len.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_ipin(void)\r
-{\r
- uip_len -= sizeof(struct uip_eth_hdr);\r
- \r
- /* Only insert/update an entry if the source IP address of the\r
- incoming IP packet comes from a host on the local network. */\r
- if((IPBUF->srcipaddr[0] & uip_arp_netmask[0]) !=\r
- (uip_hostaddr[0] & uip_arp_netmask[0])) {\r
- return;\r
- }\r
- if((IPBUF->srcipaddr[1] & uip_arp_netmask[1]) !=\r
- (uip_hostaddr[1] & uip_arp_netmask[1])) {\r
- return;\r
- }\r
- uip_arp_update(IPBUF->srcipaddr, &(IPBUF->ethhdr.src));\r
- \r
- return;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * ARP processing for incoming ARP packets.\r
- *\r
- * This function should be called by the device driver when an ARP\r
- * packet has been received. The function will act differently\r
- * depending on the ARP packet type: if it is a reply for a request\r
- * that we previously sent out, the ARP cache will be filled in with\r
- * the values from the ARP reply. If the incoming ARP packet is an ARP\r
- * request for our IP address, an ARP reply packet is created and put\r
- * into the uip_buf[] buffer.\r
- *\r
- * When the function returns, the value of the global variable uip_len\r
- * indicates whether the device driver should send out a packet or\r
- * not. If uip_len is zero, no packet should be sent. If uip_len is\r
- * non-zero, it contains the length of the outbound packet that is\r
- * present in the uip_buf[] buffer.\r
- *\r
- * This function expects an ARP packet with a prepended Ethernet\r
- * header in the uip_buf[] buffer, and the length of the packet in the\r
- * global variable uip_len.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-typedef struct arp_hdr aht;\r
-\r
-void\r
-uip_arp_arpin(void)\r
-{\r
- int ul;\r
-\r
- if(uip_len < sizeof(struct arp_hdr)) {\r
- uip_len = 0;\r
- return;\r
- }\r
-\r
- uip_len = 0;\r
- \r
- switch(BUF->opcode) {\r
- case HTONS(ARP_REQUEST):\r
- /* ARP request. If it asked for our address, we send out a\r
- reply. */\r
- if(BUF->dipaddr[0] == uip_hostaddr[0] &&\r
- BUF->dipaddr[1] == uip_hostaddr[1]) {\r
- /* The reply opcode is 2. */\r
- BUF->opcode = HTONS(2);\r
-\r
- memcpy(BUF->dhwaddr.addr, BUF->shwaddr.addr, 6);\r
- memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);\r
- memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);\r
- memcpy(BUF->ethhdr.dest.addr, BUF->dhwaddr.addr, 6);\r
- \r
- BUF->dipaddr[0] = BUF->sipaddr[0];\r
- BUF->dipaddr[1] = BUF->sipaddr[1];\r
- BUF->sipaddr[0] = uip_hostaddr[0];\r
- BUF->sipaddr[1] = uip_hostaddr[1];\r
-\r
- ul = BUF->hwlen;\r
- BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP); \r
- uip_len = sizeof(struct arp_hdr);\r
- } \r
- break;\r
- case HTONS(ARP_REPLY):\r
- /* ARP reply. We insert or update the ARP table if it was meant\r
- for us. */\r
- if(BUF->dipaddr[0] == uip_hostaddr[0] &&\r
- BUF->dipaddr[1] == uip_hostaddr[1]) {\r
-\r
- uip_arp_update(BUF->sipaddr, &BUF->shwaddr);\r
- }\r
- break;\r
- }\r
-\r
- return;\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-/**\r
- * Prepend Ethernet header to an outbound IP packet and see if we need\r
- * to send out an ARP request.\r
- *\r
- * This function should be called before sending out an IP packet. The\r
- * function checks the destination IP address of the IP packet to see\r
- * what Ethernet MAC address that should be used as a destination MAC\r
- * address on the Ethernet.\r
- *\r
- * If the destination IP address is in the local network (determined\r
- * by logical ANDing of netmask and our IP address), the function\r
- * checks the ARP cache to see if an entry for the destination IP\r
- * address is found. If so, an Ethernet header is prepended and the\r
- * function returns. If no ARP cache entry is found for the\r
- * destination IP address, the packet in the uip_buf[] is replaced by\r
- * an ARP request packet for the IP address. The IP packet is dropped\r
- * and it is assumed that they higher level protocols (e.g., TCP)\r
- * eventually will retransmit the dropped packet.\r
- *\r
- * If the destination IP address is not on the local network, the IP\r
- * address of the default router is used instead.\r
- *\r
- * When the function returns, a packet is present in the uip_buf[]\r
- * buffer, and the length of the packet is in the global variable\r
- * uip_len.\r
- */\r
-/*-----------------------------------------------------------------------------------*/\r
-void\r
-uip_arp_out(void)\r
-{\r
- struct arp_entry *tabptr;\r
- /* Find the destination IP address in the ARP table and construct\r
- the Ethernet header. If the destination IP addres isn't on the\r
- local network, we use the default router's IP address instead.\r
-\r
- If not ARP table entry is found, we overwrite the original IP\r
- packet with an ARP request for the IP address. */\r
-\r
- /* Check if the destination address is on the local network. */\r
- if((IPBUF->destipaddr[0] & uip_arp_netmask[0]) !=\r
- (uip_hostaddr[0] & uip_arp_netmask[0]) ||\r
- (IPBUF->destipaddr[1] & uip_arp_netmask[1]) !=\r
- (uip_hostaddr[1] & uip_arp_netmask[1])) {\r
- /* Destination address was not on the local network, so we need to\r
- use the default router's IP address instead of the destination\r
- address when determining the MAC address. */\r
- ipaddr[0] = uip_arp_draddr[0];\r
- ipaddr[1] = uip_arp_draddr[1];\r
- } else {\r
- /* Else, we use the destination IP address. */\r
- ipaddr[0] = IPBUF->destipaddr[0];\r
- ipaddr[1] = IPBUF->destipaddr[1];\r
- }\r
- \r
- for(i = 0; i < UIP_ARPTAB_SIZE; ++i) {\r
- tabptr = &arp_table[i];\r
- if(ipaddr[0] == tabptr->ipaddr[0] &&\r
- ipaddr[1] == tabptr->ipaddr[1])\r
- break;\r
- }\r
-\r
- if(i == UIP_ARPTAB_SIZE) {\r
- /* The destination address was not in our ARP table, so we\r
- overwrite the IP packet with an ARP request. */\r
-\r
- memset(BUF->ethhdr.dest.addr, 0xff, 6);\r
- memset(BUF->dhwaddr.addr, 0x00, 6);\r
- memcpy(BUF->ethhdr.src.addr, uip_ethaddr.addr, 6);\r
- memcpy(BUF->shwaddr.addr, uip_ethaddr.addr, 6);\r
- \r
- BUF->dipaddr[0] = ipaddr[0];\r
- BUF->dipaddr[1] = ipaddr[1];\r
- BUF->sipaddr[0] = uip_hostaddr[0];\r
- BUF->sipaddr[1] = uip_hostaddr[1];\r
- BUF->opcode = HTONS(ARP_REQUEST); /* ARP request. */\r
- BUF->hwtype = HTONS(ARP_HWTYPE_ETH);\r
- BUF->protocol = HTONS(UIP_ETHTYPE_IP);\r
- BUF->hwlen = 6;\r
- BUF->protolen = 4;\r
- BUF->ethhdr.type = HTONS(UIP_ETHTYPE_ARP);\r
-\r
- uip_appdata = &uip_buf[40 + UIP_LLH_LEN];\r
- \r
- uip_len = sizeof(struct arp_hdr);\r
- return;\r
- }\r
-\r
- /* Build an ethernet header. */\r
- memcpy(IPBUF->ethhdr.dest.addr, tabptr->ethaddr.addr, 6);\r
- memcpy(IPBUF->ethhdr.src.addr, uip_ethaddr.addr, 6);\r
- \r
- IPBUF->ethhdr.type = HTONS(UIP_ETHTYPE_IP);\r
-\r
- uip_len += sizeof(struct uip_eth_hdr);\r
-}\r
-/*-----------------------------------------------------------------------------------*/\r
-\r
-/** @} */\r
-/** @} */\r
+++ /dev/null
-/**\r
- * \addtogroup uip\r
- * @{\r
- */\r
-\r
-/**\r
- * \addtogroup uiparp \r
- * @{\r
- */\r
- \r
-/**\r
- * \file\r
- * Macros and definitions for the ARP module.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- */\r
- \r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uip_arp.h,v 1.3.2.2 2003/10/06 15:10:22 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIP_ARP_H__\r
-#define __UIP_ARP_H__\r
-\r
-#include "uip.h"\r
-\r
-\r
-/**\r
- * Representation of a 48-bit Ethernet address.\r
- */\r
-struct uip_eth_addr {\r
- u8_t addr[6];\r
-} __attribute__ ((packed, aligned (1)));\r
-\r
-extern struct uip_eth_addr uip_ethaddr;\r
-\r
-/**\r
- * The Ethernet header. \r
- */\r
-struct uip_eth_hdr {\r
- struct uip_eth_addr dest;\r
- struct uip_eth_addr src;\r
- u16_t type;\r
-} __attribute__ ((packed));\r
-\r
-#define UIP_ETHTYPE_ARP 0x0806\r
-#define UIP_ETHTYPE_IP 0x0800\r
-#define UIP_ETHTYPE_IP6 0x86dd \r
-\r
-\r
-/* The uip_arp_init() function must be called before any of the other\r
- ARP functions. */\r
-void uip_arp_init(void);\r
-\r
-/* The uip_arp_ipin() function should be called whenever an IP packet\r
- arrives from the Ethernet. This function refreshes the ARP table or\r
- inserts a new mapping if none exists. The function assumes that an\r
- IP packet with an Ethernet header is present in the uip_buf buffer\r
- and that the length of the packet is in the uip_len variable. */\r
-void uip_arp_ipin(void);\r
-\r
-/* The uip_arp_arpin() should be called when an ARP packet is received\r
- by the Ethernet driver. This function also assumes that the\r
- Ethernet frame is present in the uip_buf buffer. When the\r
- uip_arp_arpin() function returns, the contents of the uip_buf\r
- buffer should be sent out on the Ethernet if the uip_len variable\r
- is > 0. */\r
-void uip_arp_arpin(void);\r
-\r
-/* The uip_arp_out() function should be called when an IP packet\r
- should be sent out on the Ethernet. This function creates an\r
- Ethernet header before the IP header in the uip_buf buffer. The\r
- Ethernet header will have the correct Ethernet MAC destination\r
- address filled in if an ARP table entry for the destination IP\r
- address (or the IP address of the default router) is present. If no\r
- such table entry is found, the IP packet is overwritten with an ARP\r
- request and we rely on TCP to retransmit the packet that was\r
- overwritten. In any case, the uip_len variable holds the length of\r
- the Ethernet frame that should be transmitted. */\r
-void uip_arp_out(void);\r
-\r
-/* The uip_arp_timer() function should be called every ten seconds. It\r
- is responsible for flushing old entries in the ARP table. */\r
-void uip_arp_timer(void);\r
-\r
-/** @} */\r
-\r
-/**\r
- * \addtogroup uipconffunc\r
- * @{\r
- */\r
-\r
-/**\r
- * Set the default router's IP address.\r
- *\r
- * \param addr A pointer to a 4-byte array containing the IP address\r
- * of the default router.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_setdraddr(addr) do { uip_arp_draddr[0] = addr[0]; \\r
- uip_arp_draddr[1] = addr[1]; } while(0)\r
-\r
-/**\r
- * Set the netmask.\r
- *\r
- * \param addr A pointer to a 4-byte array containing the IP address\r
- * of the netmask.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_setnetmask(addr) do { uip_arp_netmask[0] = addr[0]; \\r
- uip_arp_netmask[1] = addr[1]; } while(0)\r
-\r
-\r
-/**\r
- * Get the default router's IP address.\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the IP address of the default router.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_getdraddr(addr) do { addr[0] = uip_arp_draddr[0]; \\r
- addr[1] = uip_arp_draddr[1]; } while(0)\r
-\r
-/**\r
- * Get the netmask.\r
- *\r
- * \param addr A pointer to a 4-byte array that will be filled in with\r
- * the value of the netmask.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_getnetmask(addr) do { addr[0] = uip_arp_netmask[0]; \\r
- addr[1] = uip_arp_netmask[1]; } while(0)\r
-\r
-\r
-/**\r
- * Specifiy the Ethernet MAC address.\r
- *\r
- * The ARP code needs to know the MAC address of the Ethernet card in\r
- * order to be able to respond to ARP queries and to generate working\r
- * Ethernet headers.\r
- *\r
- * \note This macro only specifies the Ethernet MAC address to the ARP\r
- * code. It cannot be used to change the MAC address of the Ethernet\r
- * card.\r
- *\r
- * \param eaddr A pointer to a struct uip_eth_addr containing the\r
- * Ethernet MAC address of the Ethernet card.\r
- *\r
- * \hideinitializer\r
- */\r
-#define uip_setethaddr(eaddr) do {uip_ethaddr.addr[0] = eaddr.addr[0]; \\r
- uip_ethaddr.addr[1] = eaddr.addr[1];\\r
- uip_ethaddr.addr[2] = eaddr.addr[2];\\r
- uip_ethaddr.addr[3] = eaddr.addr[3];\\r
- uip_ethaddr.addr[4] = eaddr.addr[4];\\r
- uip_ethaddr.addr[5] = eaddr.addr[5];} while(0)\r
-\r
-/** @} */\r
-\r
-/**\r
- * \internal Internal variables that are set using the macros\r
- * uip_setdraddr and uip_setnetmask.\r
- */\r
-extern u16_t uip_arp_draddr[2], uip_arp_netmask[2];\r
-#endif /* __UIP_ARP_H__ */\r
-\r
-\r
+++ /dev/null
-/**\r
- * \defgroup uipopt Configuration options for uIP\r
- * @{\r
- *\r
- * uIP is configured using the per-project configuration file\r
- * "uipopt.h". This file contains all compile-time options for uIP and\r
- * should be tweaked to match each specific project. The uIP\r
- * distribution contains a documented example "uipopt.h" that can be\r
- * copied and modified for each project.\r
- */\r
-\r
-/**\r
- * \file\r
- * Configuration options for uIP.\r
- * \author Adam Dunkels <adam@dunkels.com>\r
- *\r
- * This file is used for tweaking various configuration options for\r
- * uIP. You should make a copy of this file into one of your project's\r
- * directories instead of editing this example "uipopt.h" file that\r
- * comes with the uIP distribution.\r
- */\r
-\r
-/*\r
- * Copyright (c) 2001-2003, Adam Dunkels.\r
- * All rights reserved. \r
- *\r
- * Redistribution and use in source and binary forms, with or without \r
- * modification, are permitted provided that the following conditions \r
- * are met: \r
- * 1. Redistributions of source code must retain the above copyright \r
- * notice, this list of conditions and the following disclaimer. \r
- * 2. Redistributions in binary form must reproduce the above copyright \r
- * notice, this list of conditions and the following disclaimer in the \r
- * documentation and/or other materials provided with the distribution. \r
- * 3. The name of the author may not be used to endorse or promote\r
- * products derived from this software without specific prior\r
- * written permission. \r
- *\r
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS\r
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\r
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY\r
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\r
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\r
- * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\r
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,\r
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\r
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \r
- *\r
- * This file is part of the uIP TCP/IP stack.\r
- *\r
- * $Id: uipopt.h,v 1.16.2.5 2003/10/07 13:22:51 adam Exp $\r
- *\r
- */\r
-\r
-#ifndef __UIPOPT_H__\r
-#define __UIPOPT_H__\r
-\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipopttypedef uIP type definitions\r
- * @{\r
- */\r
-\r
-/**\r
- * The 8-bit unsigned data type.\r
- *\r
- * This may have to be tweaked for your particular compiler. "unsigned\r
- * char" works for most compilers.\r
- */\r
-typedef unsigned char u8_t;\r
-\r
-/**\r
- * The 16-bit unsigned data type.\r
- *\r
- * This may have to be tweaked for your particular compiler. "unsigned\r
- * short" works for most compilers.\r
- */\r
-typedef unsigned short u16_t;\r
-\r
-/**\r
- * The statistics data type.\r
- *\r
- * This datatype determines how high the statistics counters are able\r
- * to count.\r
- */\r
-typedef unsigned short uip_stats_t;\r
-\r
-/** @} */\r
-\r
-/*------------------------------------------------------------------------------*/\r
-\r
-/**\r
- * \defgroup uipoptstaticconf Static configuration options\r
- * @{\r
- *\r
- * These configuration options can be used for setting the IP address\r
- * settings statically, but only if UIP_FIXEDADDR is set to 1. The\r
- * configuration options for a specific node includes IP address,\r
- * netmask and default router as well as the Ethernet address. The\r
- * netmask, default router and Ethernet address are appliciable only\r
- * if uIP should be run over Ethernet.\r
- *\r
- * All of these should be changed to suit your project.\r
-*/\r
-\r
-/**\r
- * Determines if uIP should use a fixed IP address or not.\r
- *\r
- * If uIP should use a fixed IP address, the settings are set in the\r
- * uipopt.h file. If not, the macros uip_sethostaddr(),\r
- * uip_setdraddr() and uip_setnetmask() should be used instead.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_FIXEDADDR 1\r
-\r
-/**\r
- * Ping IP address asignment.\r
- *\r
- * uIP uses a "ping" packets for setting its own IP address if this\r
- * option is set. If so, uIP will start with an empty IP address and\r
- * the destination IP address of the first incoming "ping" (ICMP echo)\r
- * packet will be used for setting the hosts IP address.\r
- *\r
- * \note This works only if UIP_FIXEDADDR is 0.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_PINGADDRCONF 0\r
-\r
-#if 0\r
-#define UIP_IPADDR0 172U /**< The first octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR1 25U /**< The second octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR2 218U /**< The third octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR3 202U /**< The fourth octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-#define UIP_NETMASK0 255 /**< The first octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK1 255 /**< The second octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK2 255 /**< The third octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK3 0 /**< The fourth octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-\r
-#define UIP_DRIPADDR0 192 /**< The first octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR1 168 /**< The second octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR2 0 /**< The third octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR3 1 /**< The fourth octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-#else\r
-\r
-#define UIP_IPADDR0 172U /**< The first octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR1 25U /**< The second octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR2 218U /**< The third octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_IPADDR3 202U /**< The fourth octet of the IP address of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-#define UIP_NETMASK0 255 /**< The first octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK1 255 /**< The second octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK2 255 /**< The third octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_NETMASK3 0 /**< The fourth octet of the netmask of\r
- this uIP node, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-#define UIP_DRIPADDR0 172 /**< The first octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR1 25 /**< The second octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR2 218 /**< The third octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-#define UIP_DRIPADDR3 3 /**< The fourth octet of the IP address of\r
- the default router, if UIP_FIXEDADDR is\r
- 1. \hideinitializer */\r
-\r
-#endif\r
-\r
-/**\r
- * Specifies if the uIP ARP module should be compiled with a fixed\r
- * Ethernet MAC address or not.\r
- *\r
- * If this configuration option is 0, the macro uip_setethaddr() can\r
- * be used to specify the Ethernet address at run-time.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_FIXEDETHADDR 0\r
-\r
-#define UIP_ETHADDR0 0x00 /**< The first octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR1 0xbd /**< The second octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR2 0x3b /**< The third octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR3 0x33 /**< The fourth octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR4 0x05 /**< The fifth octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-#define UIP_ETHADDR5 0x71 /**< The sixth octet of the Ethernet\r
- address if UIP_FIXEDETHADDR is\r
- 1. \hideinitializer */\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptip IP configuration options\r
- * @{\r
- *\r
- */\r
-/**\r
- * The IP TTL (time to live) of IP packets sent by uIP.\r
- *\r
- * This should normally not be changed.\r
- */\r
-#define UIP_TTL 255\r
-\r
-/**\r
- * Turn on support for IP packet reassembly.\r
- *\r
- * uIP supports reassembly of fragmented IP packets. This features\r
- * requires an additonal amount of RAM to hold the reassembly buffer\r
- * and the reassembly code size is approximately 700 bytes. The\r
- * reassembly buffer is of the same size as the uip_buf buffer\r
- * (configured by UIP_BUFSIZE).\r
- *\r
- * \note IP packet reassembly is not heavily tested.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_REASSEMBLY 0\r
-\r
-/**\r
- * The maximum time an IP fragment should wait in the reassembly\r
- * buffer before it is dropped.\r
- *\r
- */\r
-#define UIP_REASS_MAXAGE 40\r
-\r
-/** @} */\r
-\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptudp UDP configuration options\r
- * @{\r
- *\r
- * \note The UDP support in uIP is still not entirely complete; there\r
- * is no support for sending or receiving broadcast or multicast\r
- * packets, but it works well enough to support a number of vital\r
- * applications such as DNS queries, though\r
- */\r
-\r
-/**\r
- * Toggles wether UDP support should be compiled in or not.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP 0\r
-\r
-/**\r
- * Toggles if UDP checksums should be used or not.\r
- *\r
- * \note Support for UDP checksums is currently not included in uIP,\r
- * so this option has no function.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP_CHECKSUMS 0\r
-\r
-/**\r
- * The maximum amount of concurrent UDP connections.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP_CONNS 2\r
-\r
-/**\r
- * The name of the function that should be called when UDP datagrams arrive.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_UDP_APPCALL udp_appcall\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipopttcp TCP configuration options\r
- * @{\r
- */\r
-\r
-/**\r
- * Determines if support for opening connections from uIP should be\r
- * compiled in.\r
- *\r
- * If the applications that are running on top of uIP for this project\r
- * do not need to open outgoing TCP connections, this configration\r
- * option can be turned off to reduce the code size of uIP.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_ACTIVE_OPEN 1\r
-\r
-/**\r
- * The maximum number of simultaneously open TCP connections.\r
- *\r
- * Since the TCP connections are statically allocated, turning this\r
- * configuration knob down results in less RAM used. Each TCP\r
- * connection requires approximatly 30 bytes of memory.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_CONNS 20\r
-\r
-/**\r
- * The maximum number of simultaneously listening TCP ports.\r
- *\r
- * Each listening TCP port requires 2 bytes of memory.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_LISTENPORTS 10\r
-\r
-/**\r
- * The size of the advertised receiver's window.\r
- *\r
- * Should be set low (i.e., to the size of the uip_buf buffer) is the\r
- * application is slow to process incoming data, or high (32768 bytes)\r
- * if the application processes data quickly.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_RECEIVE_WINDOW 32768\r
-\r
-/**\r
- * Determines if support for TCP urgent data notification should be\r
- * compiled in.\r
- *\r
- * Urgent data (out-of-band data) is a rarely used TCP feature that\r
- * very seldom would be required.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_URGDATA 1\r
-\r
-/**\r
- * The initial retransmission timeout counted in timer pulses.\r
- *\r
- * This should not be changed.\r
- */\r
-#define UIP_RTO 3\r
-\r
-/**\r
- * The maximum number of times a segment should be retransmitted\r
- * before the connection should be aborted.\r
- *\r
- * This should not be changed.\r
- */\r
-#define UIP_MAXRTX 8\r
-\r
-/**\r
- * The maximum number of times a SYN segment should be retransmitted\r
- * before a connection request should be deemed to have been\r
- * unsuccessful.\r
- *\r
- * This should not need to be changed.\r
- */\r
-#define UIP_MAXSYNRTX 3\r
-\r
-/**\r
- * The TCP maximum segment size.\r
- *\r
- * This is should not be to set to more than UIP_BUFSIZE - UIP_LLH_LEN - 40.\r
- */\r
-#define UIP_TCP_MSS (UIP_BUFSIZE - UIP_LLH_LEN - 40)\r
-\r
-/**\r
- * How long a connection should stay in the TIME_WAIT state.\r
- *\r
- * This configiration option has no real implication, and it should be\r
- * left untouched.\r
- */ \r
-#define UIP_TIME_WAIT_TIMEOUT 120\r
-\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptarp ARP configuration options\r
- * @{\r
- */\r
-\r
-/**\r
- * The size of the ARP table.\r
- *\r
- * This option should be set to a larger value if this uIP node will\r
- * have many connections from the local network.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_ARPTAB_SIZE 8\r
-\r
-/**\r
- * The maxium age of ARP table entries measured in 10ths of seconds.\r
- *\r
- * An UIP_ARP_MAXAGE of 120 corresponds to 20 minutes (BSD\r
- * default).\r
- */\r
-#define UIP_ARP_MAXAGE 120\r
-\r
-/** @} */\r
-\r
-/*------------------------------------------------------------------------------*/\r
-\r
-/**\r
- * \defgroup uipoptgeneral General configuration options\r
- * @{\r
- */\r
-\r
-/**\r
- * The size of the uIP packet buffer.\r
- *\r
- * The uIP packet buffer should not be smaller than 60 bytes, and does\r
- * not need to be larger than 1500 bytes. Lower size results in lower\r
- * TCP throughput, larger size results in higher TCP throughput.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_BUFSIZE 2048\r
-\r
-\r
-/**\r
- * Determines if statistics support should be compiled in.\r
- *\r
- * The statistics is useful for debugging and to show the user.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_STATISTICS 1\r
-\r
-/**\r
- * Determines if logging of certain events should be compiled in.\r
- *\r
- * This is useful mostly for debugging. The function uip_log()\r
- * must be implemented to suit the architecture of the project, if\r
- * logging is turned on.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_LOGGING 0\r
-\r
-/**\r
- * Print out a uIP log message.\r
- *\r
- * This function must be implemented by the module that uses uIP, and\r
- * is called by uIP whenever a log message is generated.\r
- */\r
-void uip_log(char *msg);\r
-\r
-/**\r
- * The link level header length.\r
- *\r
- * This is the offset into the uip_buf where the IP header can be\r
- * found. For Ethernet, this should be set to 14. For SLIP, this\r
- * should be set to 0.\r
- *\r
- * \hideinitializer\r
- */\r
-#define UIP_LLH_LEN 14\r
-\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-/**\r
- * \defgroup uipoptcpu CPU architecture configuration\r
- * @{\r
- *\r
- * The CPU architecture configuration is where the endianess of the\r
- * CPU on which uIP is to be run is specified. Most CPUs today are\r
- * little endian, and the most notable exception are the Motorolas\r
- * which are big endian. The BYTE_ORDER macro should be changed to\r
- * reflect the CPU architecture on which uIP is to be run.\r
- */\r
-#ifndef LITTLE_ENDIAN\r
-#define LITTLE_ENDIAN 3412\r
-#endif /* LITTLE_ENDIAN */\r
-#ifndef BIG_ENDIAN\r
-#define BIG_ENDIAN 1234\r
-#endif /* BIGE_ENDIAN */\r
-\r
-/**\r
- * The byte order of the CPU architecture on which uIP is to be run.\r
- *\r
- * This option can be either BIG_ENDIAN (Motorola byte order) or\r
- * LITTLE_ENDIAN (Intel byte order).\r
- *\r
- * \hideinitializer\r
- */\r
-#ifndef BYTE_ORDER\r
-#define BYTE_ORDER LITTLE_ENDIAN\r
-#endif /* BYTE_ORDER */\r
-\r
-/** @} */\r
-/*------------------------------------------------------------------------------*/\r
-\r
-/**\r
- * \defgroup uipoptapp Appication specific configurations\r
- * @{\r
- *\r
- * An uIP application is implemented using a single application\r
- * function that is called by uIP whenever a TCP/IP event occurs. The\r
- * name of this function must be registered with uIP at compile time\r
- * using the UIP_APPCALL definition.\r
- *\r
- * uIP applications can store the application state within the\r
- * uip_conn structure by specifying the size of the application\r
- * structure with the UIP_APPSTATE_SIZE macro.\r
- *\r
- * The file containing the definitions must be included in the\r
- * uipopt.h file.\r
- *\r
- * The following example illustrates how this can look.\r
- \code\r
-\r
-void httpd_appcall(void);\r
-#define UIP_APPCALL httpd_appcall\r
-\r
-struct httpd_state {\r
- u8_t state; \r
- u16_t count;\r
- char *dataptr;\r
- char *script;\r
-};\r
-#define UIP_APPSTATE_SIZE (sizeof(struct httpd_state))\r
- \endcode\r
- */\r
-\r
-/**\r
- * \var #define UIP_APPCALL\r
- *\r
- * The name of the application function that uIP should call in\r
- * response to TCP/IP events.\r
- *\r
- */\r
-\r
-/**\r
- * \var #define UIP_APPSTATE_SIZE\r
- *\r
- * The size of the application state that is to be stored in the\r
- * uip_conn structure.\r
- */\r
-/** @} */\r
-\r
-/* Include the header file for the application program that should be\r
- used. If you don't use the example web server, you should change\r
- this. */\r
-#include "httpd.h"\r
-\r
-\r
-#endif /* __UIPOPT_H__ */\r