From 7c636ea0623ed5d65ecd33e8df65401604ea7100 Mon Sep 17 00:00:00 2001 From: rtel Date: Sun, 26 Jul 2015 16:41:12 +0000 Subject: [PATCH] MSP430: Add additional NOPs as required by hardware manual. Microblaze: Previously a task inherited the exception enable state from the context from which xTaskCreate() was called. Now tasks all have exceptions enabled if they are enabled in the hardware. Windows/GCC: Improve the implementation of portGET_HIGHEST_PRIORITY. Common code: Simplify the pointer use in xQueueGenericCreate() Demo apps: Remove jpg images that were used to create web pages. Fix capitalisation issues in some demos where some header files are incldued with the wrong case, preventing building on Linux. Remove the Microblaze demos that are using obsolete tools. Update main_blinky for the Windows port demo to include a software timer example. git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2356 1d2547de-c912-0410-9cb9-b8ca96c0e9e2 --- .../webserver/httpd-fs/image.jpg | Bin 66468 -> 0 bytes .../WebServer/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../WebServer/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../RTOSDemo/src/FreeRTOS_tick_config.c | 5 +- .../makefsdata/fs/logo.jpg | Bin 28602 -> 0 bytes .../webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../Full_Demo/main_full.c | 5 +- .../RTOSDemo/webserver/httpd-fs/image.jpg | Bin 80115 -> 0 bytes .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 29811 -> 0 bytes FreeRTOS/Demo/Common/Minimal/TaskNotify.c | 2 +- FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h | 116 - FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c | 189 - FreeRTOS/Demo/MicroBlaze/__xps/bitinit.opt | 1 - FreeRTOS/Demo/MicroBlaze/__xps/libgen.opt | 1 - FreeRTOS/Demo/MicroBlaze/__xps/platgen.opt | 1 - .../MicroBlaze/__xps/rtosdemo_compiler.opt | 23 - FreeRTOS/Demo/MicroBlaze/__xps/simgen.opt | 1 - .../__xps/testapp_peripheral_compiler.opt | 23 - FreeRTOS/Demo/MicroBlaze/__xps/vpgen.opt | 1 - FreeRTOS/Demo/MicroBlaze/__xps/xpsxflow.opt | 1 - FreeRTOS/Demo/MicroBlaze/_impact.cmd | 7 - FreeRTOS/Demo/MicroBlaze/crt0.s | 126 - FreeRTOS/Demo/MicroBlaze/data/system.ucf | 74 - FreeRTOS/Demo/MicroBlaze/etc/bitgen.ut | 21 - .../Demo/MicroBlaze/etc/bitgen_spartan3.ut | 15 - FreeRTOS/Demo/MicroBlaze/etc/download.cmd | 6 - FreeRTOS/Demo/MicroBlaze/etc/fast_runtime.opt | 80 - .../Demo/MicroBlaze/etc/xmd_microblaze_0.opt | 1 - FreeRTOS/Demo/MicroBlaze/main.c | 475 -- FreeRTOS/Demo/MicroBlaze/platgen.opt | 7 - FreeRTOS/Demo/MicroBlaze/serial/serial.c | 232 - FreeRTOS/Demo/MicroBlaze/system.bsb | 1 - FreeRTOS/Demo/MicroBlaze/system.make | 258 - FreeRTOS/Demo/MicroBlaze/system.mhs | 196 - FreeRTOS/Demo/MicroBlaze/system.mss | 84 - FreeRTOS/Demo/MicroBlaze/system.xmp | 66 - FreeRTOS/Demo/MicroBlaze/system_incl.make | 134 - .../makefsdata/fs/logo.jpg | Bin 28602 -> 0 bytes .../bsp/freertos_v2_00_a/data/freertos.mss | 12 - .../freertos_v2_00_a/data/freertos_v2_1_0.mld | 101 - .../freertos_v2_00_a/data/freertos_v2_1_0.tcl | 806 -- .../src/CreatingTheDirectoryStructure.txt | 4 - .../freertos_v2_00_a/src/License/license.txt | 435 - .../bsp/freertos_v2_00_a/src/Makefile | 77 - .../src/Source/portable/readme.txt | 19 - .../freertos_v2_00_a/src/Source/readme.txt | 17 - .../bsp/freertos_v2_00_a/src/readme.txt | 19 - .../data/FreeRTOS_Hello_World.mss | 9 - .../data/FreeRTOS_Hello_World.tcl | 127 - .../FreeRTOS_Hello_World/src/FreeRTOS-main.c | 407 - .../SDK/SDK_Export/hw/system.bit | Bin 1484497 -> 0 bytes .../SDK/SDK_Export/hw/system.xml | 6258 -------------- .../SDK/SDK_Export/hw/system_bd.bmm | 32 - .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 180 - .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 150 - .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 168 - .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 584 -- .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 2758 ------ .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 546 -- .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 1112 --- .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 115 - .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 495 -- .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 1566 ---- .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 1582 ---- .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 465 - .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 271 - .../PlatformStudioProject/__xps/bitinit.opt | 1 - .../__xps/edw2xtl_sav_globals.xsl | 263 - .../__xps/edw2xtl_sav_view.xsl | 245 - .../__xps/edw2xtl_sav_view_addr.xsl | 894 -- .../__xps/edw2xtl_sav_view_busif.xsl | 631 -- .../__xps/edw2xtl_sav_view_groups.xsl | 1447 ---- .../__xps/edw2xtl_sav_view_port.xsl | 771 -- .../__xps/gensav_cmd.xml | 2 - .../__xps/ise/_xmsgs/platgen.xmsgs | 141 - .../__xps/ise/system.xreport | 218 - .../__xps/ise/xmsgprops.lst | 3 - .../PlatformStudioProject/__xps/platgen.opt | 2 - .../PlatformStudioProject/__xps/simgen.opt | 1 - .../PlatformStudioProject/__xps/system.xml | 5243 ------------ .../PlatformStudioProject/__xps/xplorer.opt | 1 - .../PlatformStudioProject/__xps/xpsxflow.opt | 1 - .../PlatformStudioProject/data/system.ucf | 41 - .../PlatformStudioProject/etc/bitgen.ut | 3 - .../PlatformStudioProject/etc/download.cmd | 6 - .../etc/fast_runtime.opt | 84 - .../PlatformStudioProject/etc/system.filters | 158 - .../PlatformStudioProject/etc/system.gui | 237 - .../PlatformStudioProject/system.bsb | 1 - .../PlatformStudioProject/system.make | 216 - .../PlatformStudioProject/system.mhs | 387 - .../PlatformStudioProject/system.xmp | 38 - .../PlatformStudioProject/system_incl.make | 110 - .../ReadMe.txt | 6 + .../HardwareWithEthernetLite/.project | 12 - .../HardwareWithEthernetLite/download.bit | Bin 1484497 -> 0 bytes .../HardwareWithEthernetLite/system.bit | Bin 1484497 -> 0 bytes .../HardwareWithEthernetLite/system.xml | 6258 -------------- .../HardwareWithEthernetLite/system_bd.bmm | 32 - .../SDKProjects/RTOSDemo/.cproject | 1985 ----- .../SDKProjects/RTOSDemo/.project | 83 - .../CreateProjectDirectoryStructure.bat | 117 - .../SDKProjects/RTOSDemo/FreeRTOSConfig.h | 203 - .../SDKProjects/RTOSDemo/ParTest.c | 176 - .../SDKProjects/RTOSDemo/RegisterTests.c | 323 - .../lwIP/lwIP_Apps/apps/httpserver_raw/fs.c | 177 - .../lwIP/lwIP_Apps/apps/httpserver_raw/fs.h | 100 - .../lwIP_Apps/apps/httpserver_raw/fsdata.c | 2068 ----- .../lwIP_Apps/apps/httpserver_raw/fsdata.h | 50 - .../lwIP_Apps/apps/httpserver_raw/httpd.c | 2184 ----- .../lwIP_Apps/apps/httpserver_raw/httpd.h | 236 - .../apps/httpserver_raw/httpd_structs.h | 115 - .../httpserver_raw/makefsdata/fs/404.html | 21 - .../httpserver_raw/makefsdata/fs/index.shtml | 20 - .../httpserver_raw/makefsdata/fs/logo.jpg | Bin 28602 -> 0 bytes .../makefsdata/fs/runtime.shtml | 20 - .../makefsdata/makefsdata.c-source-file | 610 -- .../httpserver_raw/makefsdata/makefsdata.exe | Bin 46592 -> 0 bytes .../RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c | 177 - .../lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h | 15 - .../RTOSDemo/lwIP/lwIP_Apps/lwipopts.h | 317 - .../SDKProjects/RTOSDemo/main-blinky.c | 546 -- .../SDKProjects/RTOSDemo/main-full.c | 685 -- .../SDKProjects/RTOSDemo/printf-stdarg.c | 282 - .../SDKProjects/RTOSDemo/serial.c | 225 - .../SDKProjects/RTOSDemo/src/lscript.ld | 213 - .../SDKProjects/StandAloneBSP/.cproject | 15 - .../SDKProjects/StandAloneBSP/.project | 77 - .../SDKProjects/StandAloneBSP/.sdkproject | 3 - .../SDKProjects/StandAloneBSP/Makefile | 21 - .../SDKProjects/StandAloneBSP/libgen.options | 3 - .../SDKProjects/StandAloneBSP/system.mss | 81 - .../Version_Changes.log | 15 - .../system.log | 7514 ----------------- .../Version_Changes.log | 15 - .../system.log | 4454 ---------- .../Version_Changes.log | 15 - .../PPC440_Xilinx_Virtex5_GCC/psf2Edward.log | 41 - .../Demo/PPC440_Xilinx_Virtex5_GCC/system.log | 4571 ---------- .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 32592 -> 0 bytes .../RTOSDemo/webserver/httpd-fs/logo.jpg | Bin 37621 -> 0 bytes .../makefsdata/fs/logo.jpg | Bin 28602 -> 0 bytes FreeRTOS/Demo/WIN32-MSVC/main_blinky.c | 142 +- .../Source/portable/CCS/MSP430X/portext.asm | 2 + .../Source/portable/GCC/MicroBlazeV8/port.c | 14 +- .../GCC/MicroBlazeV8/port_exceptions.c | 44 +- .../portable/GCC/MicroBlazeV8/portasm.S | 6 +- .../portable/GCC/MicroBlazeV8/portmacro.h | 2 +- .../Source/portable/MSVC-MingW/portmacro.h | 8 +- FreeRTOS/Source/queue.c | 11 +- 157 files changed, 157 insertions(+), 65765 deletions(-) delete mode 100644 FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg delete mode 100644 FreeRTOS/Demo/CORTEX_A2F200_IAR_and_Keil/WebServer/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/CORTEX_A2F200_SoftConsole/WebServer/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg delete mode 100644 FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/image.jpg delete mode 100644 FreeRTOS/Demo/ColdFire_MCF52233_Eclipse/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h delete mode 100644 FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/bitinit.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/libgen.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/platgen.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/rtosdemo_compiler.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/simgen.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/vpgen.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/__xps/xpsxflow.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/_impact.cmd delete mode 100644 FreeRTOS/Demo/MicroBlaze/crt0.s delete mode 100644 FreeRTOS/Demo/MicroBlaze/data/system.ucf delete mode 100644 FreeRTOS/Demo/MicroBlaze/etc/bitgen.ut delete mode 100644 FreeRTOS/Demo/MicroBlaze/etc/bitgen_spartan3.ut delete mode 100644 FreeRTOS/Demo/MicroBlaze/etc/download.cmd delete mode 100644 FreeRTOS/Demo/MicroBlaze/etc/fast_runtime.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/etc/xmd_microblaze_0.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/main.c delete mode 100644 FreeRTOS/Demo/MicroBlaze/platgen.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze/serial/serial.c delete mode 100644 FreeRTOS/Demo/MicroBlaze/system.bsb delete mode 100644 FreeRTOS/Demo/MicroBlaze/system.make delete mode 100644 FreeRTOS/Demo/MicroBlaze/system.mhs delete mode 100644 FreeRTOS/Demo/MicroBlaze/system.mss delete mode 100644 FreeRTOS/Demo/MicroBlaze/system.xmp delete mode 100644 FreeRTOS/Demo/MicroBlaze/system_incl.make delete mode 100644 FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.xml delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make create mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/ReadMe.txt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.xml delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwIP_Apps.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options delete mode 100644 FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.log delete mode 100644 FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/RX600_RX62N-RDK_IAR/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/RX600_RX62N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/RX600_RX62N-RSK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/RX600_RX62N-RSK_IAR/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/RX600_RX62N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/RX600_RX63N-RDK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/RX600_RX63N-RSK_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/SuperH_SH7216_Renesas/RTOSDemo/webserver/httpd-fs/logo.jpg delete mode 100644 FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg diff --git a/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg b/FreeRTOS/Demo/ARM7_LPC2368_Rowley/webserver/httpd-fs/image.jpg deleted file mode 100644 index 29f76ae8b7693170aa1663f597685d6c10fbc1e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66468 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%0AZ>49%@;3`uXBSR1U{VW<01wfSP> zG{O#bM}{Ue!G2w|T$Xsg;q%$wj6}v|g;Mt*hkX|#9dE{6VH;u2S5*odYN~b= z?DFi+y;>`Cb=%kN!RMM)ai2p%%mL_GxRwRG_0s&KSl@qK1`c6$Z!MS41?ETM%C$&9 z68-Lf58`a{7$@GDJTcRDJZ^sFBt}!Z_uVWc&aw*>TE;b6hNy$A4g~ zZeOvrzKRhn-E22M-J5o!tDo4YF!n=P@!AWG?8^fq)dtPIu%plFEW@3vdU7M;S0B<- z4}6-{E4*mk8|Uck@b$E?%V#(DYHuq~+xvp9q|Taizi!^^yT(Zy9iiBsW8cj`tX`kI}&H*=5k z()z;%1}zp?lOPW*SRnE#bC)J@{qf^$&UWx7H&?Tt3kv>G8)1tR=!wiv5kT$rg&pds zx+_}?>ovwQxc3M3ZQyIU;`gEjYcMC`e{myiNw3m`dk=^?N7CKFgyFhxm39Pp*GV|c zI>JrT$A2}AdVpu+OaOE5ypuKOh82#>(M7EzJJ& za5^kas8Js~xSe{XBZ?3V@+g*r?k6?!scG`E!Af+}bzPn%nL!xsIhRB_l=E>}BSdPn z`y8~?l_pew1T&~d28)n=`9Zv(I3GNj=SGha4SZQg;0yuOYU}bqgF@&R?NZf$uuu9N zVGG3bI^l#R=YwOx+O#xp{>OLa=sDmX3ps(T^J48?j%tkW zPX7lZID_f4PZjOBw7nHef7f_n4jd#<NZ{A4{t@1*%Z)#XmVK`jfo@!ST*B%^I8-~WSS<>5= z*$hE9KyU$~#&TgAMBUjgID7~7T8JZ2R7kj^G_^|=SV|k6%^PFLAOGO3pYpL_y>53O zrQC_*Y$!2ipD?$moG6G2C-DKhc549r*@l$t+zrnnY?`^ZNQbwA_t4C#o|}ehnL_mh zV?1yQ4;ohZK1)pq| z8-dB+Qq7K(HG|XN#x0x!WF0?@zAu9LhDcMaGV%ThdM9{{9rnNm)iSWdn;i!rKn0pp zAFOdcqprG|{l?vtb2kp(4Q%h{{4bb6lj#eb5ETaCn|^okwJBP5C%}uzfKh78`pUQt z`mPg8dr)KCC?d%jgaf>$5s*>afgY^efTrJdvY7zPxI__3+8K`PPoQ=15MZmDbMO{P z;~F2IlXWqyt)R=43=z-#Gth0Sgr!h0P-jXl(Q@C&x7DaU zzMKkH_=_W_&F}2*@L*2$I)anI<;58K&NTkF=AqfPa@J3ExSi&zkb2LPYO1-ndr{+4 z^4(Z8FUqVts@4pXlg1l>_T%_WcuKFm4kzBs2tFlJv8&sekF}#WGH+DsPxad%u|6BP z-svqXq@f6(nj{V*H?EP9;ZvKyVdR6U$T{#qzLfqPdMWQS*nKntaC9o1QusImM!H8& zDA2*IwW8I^;7tW?Ldpv8=1Q=1=*pnC}_LS*5b<9uXG2m^w3*O)}W)&XH?K~eiN!n+2T>;5RHY}=1JLDf?zINN{Y zM+A(48m8r@Ak?Cp(Vev})~Nmqa;zrzE9(%rtPlZXo*JW7y}yHgcoV&sql9;6B5x8_ z494U7{_{`tyB$E{OgEVPC%DV#2bNky?vT}H-D?POF*H6{JngT3XDdr`P zOiy`9wfvUhY3}nMAwHKzfIOGwRub~cSk+Ft5g(MR+h1j?cXNATsA)ohmw!It zOq!rIh$Lp2Kwnw+ml>>30rSn9B2|QSh_^Ys9JM^RYQv;$hxI6AePv zWf!|Oo*wp>(YJQY0R<&FfB$*EB~9^THJ$!XfMcLU(f9zc`Y5d=F^u@M<+jNUg%tXL zTQ)PkMoTB@4CxfyK|2LRJnH2ufO)Xf{JUQb^nXT;s-yLcQR+^-0Ubyyq*9RUZe-}_ zTVxcKeVW(fC(_Djd_5mojxk1vjQFMr1U2+0NEB-fcaCNUePQRp`q~fYe+ybN6sZBI zC`-#RsA4pM4EBApU{1znTC=(AGh=S+2Y9?9a^xo=X_6)b9O{+;aprzk9;MvZe?r}5rZvGvJ_7fdu5%q2f27nj$(P8Fs6FM&*Fozx@pJA2@>mpziC+TMW!uNa?{=od3Zb@H=k$l}b{OoKq!>=m+?nZQWz5Lui^6 zEzt_Ld;~jqq`t@TAZY_Yi~Y9~;6)YTVu7(j?Z6T;w83iD;tTtgkM5y`G86R_zP0>F z>~C*_hwn;NFH4P&LW;L`K?~B+=^$Yp~LL|pz3#ZC=SM`izC+XHBMKihj4CrJ~$i^D>^F<>u=lvX@s3F`~RzGv`%mO40V}1R?ezEusqDW(Td*$dB=f)Pa z0;>Qtx;*xV%fjRz+LVXN=Z|}a?t8rkTtx38{Lb5eW`rOvF;lb%W~(F9Qk)YjuNN{| zGPIqgI33cK#AgUW=i*u43^67a>|`{5!T+A8LNfyY-Ghhj%QQhN+uzUj>Ci37lJrYD zvEKKyIa|kw<_`3yX$I>HI@y8^z`NO`Z|6dskJ{f7V0|T7GN)!~#+5e#Zb|h71{ywr ztauZ6dbzjuA!0%j9c`90P6(UXdIVTxm%%6 zM^ka@5+1=v_rH&$=^O?aH=3h#6+QT+{>|*3%1-7@G|dIZQcR+`RN7276ER?Ou|Izp zGuS{&#yg0cjW3X zOBo|J?gGLQ(qq?Fvtty`TqxTKpf2ECE>#A;=e_4K1ICX#Ox(9$LV~x&H_9M~0gq zTWv@Wtj-vrPnr8hrC3#;8Gr(tBpoEtWNTrQT@|byLfo8`j_7}}EAPh8d2-s{lKMs9 z=J;RwW50)Jm$60X88;w$UQ-o2)&sn4SEWb*MFPFk_yv#Cq$5K0?~TLFC71Elh0uNL zvW|yGmSe%@C&rg~+U69x%bLT4v&>gz%r>0pgO06CF^qrM%#hgSjM z%zI0Kxp#?aj{!^s%GB(Hzm+s@%LwX&vcVJ09O!5AWFO-Zo?xs2s2LztFK*64bt%cWaB^1ECta^V7wEOV^Z+mi5619Xz<)bzx`#itl6FDc4(^;2r z-+wxScsSvSz0+Ctje!Wy85@E`r2xPL)ns?K)f?W4lS;a(E*odnW>Pwz*B3gM-vgS+ zl9Zcor12+XU@VvE21ljzaf1VXan03+iGwnpDkdN_40aBwrLFdxF|_x~4Ym>cP0gt~ zv1RQK?#6HQ0~B``3=YS09O_;^_q0PVN9xBkG~6ZHMoR9{h`0g&Q7gE&M|e#}%YNP> zqG|Z<8+j|Eh)j1ii|3MA@(FjWx_~}X1=eKu(r8;wt;>QvaFqN=y7yl2IW3EWIIzw2 zE{(6?^5ai}?~ai)g~T`Yk^E{sxj4f#E*Rkc6GUB$U=6S<@dlmbt#ipAE%qEc+zDMo zXQAF2#3A2f%U`vS1<)awktWtqo#RVrq$!tN@tOcOc43TL zxG0)4Y|*R=PjS-06{`BeqkU4sy{g}f&tJ*q9j){%ybeugaPFnB2|M5<5rFh(Y+Gj{ z<{#s8qI`3J*#^$ct%%mh@Xd<{ng%jE$B@kVm3^PFx{@2v^CEM}<{n7~TSG{>QC+FtGOJbpcR~Aq?#r||JP)aP%?~a@ zYWA1p$a4OVdV@$9QG6w9j+Dp5bOc}G$syLNxY$v@%i>y$H+mAxi8-vlym*kSii-yI zd$f^1rXyMD<~lqD=G&HoS#c&BuNP|hUIEX2)Z1bM9-#)1#%3{M`#|;x(f3qt+Dzm1 zYyq7y5OdMRz8B>)ksH7%<>`;s8BJk>62I@QZJ9L`#a4p63OK(&QoSlrJkO1u7g>vZ zL``w0UL8CMA)27>`i9dDG6zK@uBHi=x@Z7kgRzm3KdNh~ zxS%G3)tUg(QE}lNpcdYAv71a*g3$fJYQJ)Xtc+1YrZ#E4?76mF$I3K8JQ>V@jJYv4 z@o2A5lcR)!%bT~S`>Q+Gua8z4=dSjeCYWs29dbKbmAwnZp^{blpJJZo%@GN$Sj`ft z891*bhwe`X7c|9HYSyzvQbE`_Z%LEcoa|^2?-4c^Mm}95+%BLqV)`O8hFgyW@-s|X z#O(IW#WQ0=yu;v^NV2OTQ*RwWH_74E>}XBHHM9gQaT0~Q4QQqN@L`-3k&5wcQHcaNj;g^>NhO5WP8 z7sy}NvzQ(PlBTGS#iQEw>|JC2FoKqeNY#=)?dN*huD9lha?`Niw6tA{=AJ$Rr>nOI zOJ$^sNMK3}Uh|r9e8`sTAb2D$*Ye*HV6@J_quGS)EZh-3~j{eq7T(*x6fO zbMJewWZlBKn%Ey(amyYu7Y4g*#%nlbNU2nZvqf5DnUf+lTJjQTI$X6QV9jyg7>b!Q zJ(CcY-sc?1lm5f&p#EVwpSGqP{bB zkNGr1$360CX{-r9V#jH` zxRCwO1qEn=!2#g{PNVF{h4Q;=0JJPn*B7N#PwW6tdKGTPj*`9O&{PuT$hnQCnGd2m z(Iw$52@PqHIO~bG$@|{7a4x$pSyvgq4Gpzn4_%MBZML1-4s+OXeXpC?9ZLw;YW*ZZ zrQKVt;Hzqyptng}oQ->t)M#NgH~Oci)z8X5nqu&%!Wx`v5NUepWx}9>Wfx%&{;~D> zt&YMgV;KCdOEIeIxEXJ&6d_EB@XaBKI~TCE zUl<@9Oy*Nb(sEJFFNW?o)6{u_wBrZa{!G{Q{P@>-Fw?1v=&#hjGR++hDg}_L7X6Oz|$TSl{e| z^S-%!day@x`ap<`GyEui#)+$n-&Dq@z9C$I++{>Qv(ryK?r2?@h~1|$`&efJ`KkCG zK?6OWF1qU)kt}t4>o%vY0x=(hWxjRHRZSeR6?Obc5tcIDGF8`h6E_}xt zH`l0b)Rt>_@5kOAgqtWgx&pW>=ZPLev;AMyodAqo=g9v&!OY{(2z=6$YR^&Znf&q$ z#T26N1yldZbW+D`^jSvswfPc?^cbA74(B>m9LR2=NQ@BKvJmqxIyx{l(A*PSH?|JY zr>GabZXCTIJqGkqw`;yR_FaNo%QXggbMpn*8)RGrZ}dA4b%SWq1S}wR4hKGX1id0$ z;3(Y<^iWtwGyj5D(W&HvXg((hQD{$(7Gkl1{tFE;sCP9aueC62kpI>BI^yWfO9VDo zbd?*|0(O+2f_>6Vj#6>Q$A^_KZZIe)$!l0TGm--+KT_XwdZY-8tp!>LMByY&DbhoZ zLH~2ZJ?JHdO#|qaz@TPyV7(tS-egcTB(9>TXD)z=<-fbbgjg)8&CKwzJ(Cx(L{OW} zOYb?70F=iAev8}ow`Nfelu1d_M+ytRN`e1ZIwFNlV69^~4DhId@2!;M;jB^*CJF58 zTiDazw9tn)uk@2HX;UUo1U;;~R0ge#Znmsms_Osw9GHmRcZ3O+U?89QAA!1;AN)pt z-7Iq4MH|fzRDZwzE(~>!4tTNilxRRkCOl`g&wv4|(u9#0LV!N2 zU;=S+83lJ}kN7zuMk@chRN94)|LgU;mjlsY_zr+qslegDpzDQ?ok60#_y5820X9li zdJC=mLJ;ltq^hg@Z~NE#tzrL9z1%=H{5RK+=S!^*tY!o5~`!>~9H-u?DX_sqZDr7lQ=Nj<+aM95dlm z=~C67`aa+=0K69x$J`D7O}&!N&aXULEcpARp#aUm}czdfOllck+tJ_X&fbx zr8$zDB`WoJbhSKdUTYwZIlG$u^UJ&Tqq8U_bIuCKhmt3^9zJWc&-JChGRdT{xRTkj znpZ9U>kryRXh{gbJ}u5Ni}XVDE7XWq^Pk@kN6cz=jJrf)Y5@4_6Ja*27M^ga@r3|7 z`zV+VK+GTCE9?nwEg+C$a(ljKZ*Qo1iwRl{M%Ky0TerL(w#D z@uEbttFi@5Q@Q#7bO{B8%8uU5q$yf|1i;CjI8E`iK0Z)UglNWQ7f&{4b(#WfS(PUE z-6aBwLj7+;AZZCz0I{Xc1YeTR<7Hg~W5*Z`fVF3+2{9L-*^w?j2PLJ>Q6y-Z%|DgD zas#m7i=4NncmfU3DuG<2E4QAoTBzt^$E~6MXz-=Io4;fWT;a9~Q9G-}bfag$bUjV5 zg{j5uPwDxc+^Qe_9}wxi(ZzR1X&Yx59^kVAGesY+t& z5P<2=sOXwATJtfJRbVlJ1&uA|51S90Pn}F4N6yQ{i(=Ff0H?pEa?@@h2kFe}$;JXa z?9FSku1LvYCc@@W-Km)X1aDU1q7uB|5>tl+YM?Wly`Hlg$E>fK$O%HL8FT-G{k{I3 zd+z9k54;gltLJnPb90bJq*ky9@UrgX&B-T4P9JXLZw1WgGgk$Y@#PgKUPF?R7^}X> zoyybsQ#!0aeE{sB_R6Okz^v*BHt_c--*%UTHui)u(glbal6!r3KT(AJ(PrIY)mI6a zPz@J8v*w$#bEs1Tl6mu6WxO?y22tdU5Th_+c0phhQ6~Ld!`%|QKFSfZvnwkB1D$rq zzpTn43uPv~�OeZS;F6tHrAV0fb|gmt}N7x5 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⁢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⁢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 diff --git a/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/CORTEX_Kinetis_K60_Tower_IAR/webserver/httpd-fs/logo.jpg deleted file mode 100644 index 46d756892a1480937294d92a3b1e2fd53ddc46b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32592 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⁢<3Q84efyRTkmo7fY|weBgFczBFF-Ysl6ZFv{Mr&9x04S~lJc_GT<+ zhuk9g1ett_e&R)+~r})`%Ul)mqB)OfJPmial z3d4H_%{gb6QV)v+$`}9FkLw^+_kZ+g2^OO*lkmj@d`#|AZ~VuM0kc(EI+xOR}}N0G5~!@xhmXk4cTR6$o-Vh9&N*?Cx9QZ^{ zbobuReLlh654-*b??7}~hb_+hX`seB2uz1zjyV@PR_PMj*_Lelp1^M5^4`W{=v;F3 zH`o{$lB~&lGXKrft+0C~RDE?;E3|<<2&;6yY86n*P74P#e}u0{ z#Ik27p!-~?9c<^UE^xOP1WlUTX<5uBnD9;*BVz_03_7! z`h#DT`>qgf^CzsUumr+JaWm8{n}qgl8uk(XDzUE=n<>E;I6^=@z3j;1jB|c~ELwPBb0d<;U`Yfni28-zVkf=7XRS@Z7E-?-ILQisST=_E@rN1-8zKJ zfPAumittceX3S5!_ZR1wKK@Soav7W_vSq;dfV0_DlbWTNrzR%m5r1i$9P(emmzp&rBY)eyEeX_uxIA~fGo?+HCdd4l%K2NdG>lEy%@}iB zWJDoiEfH!j6&KK2jZxLcLi}|O7xI|+sgqZYh?Tfem;k|xo%sRrTVY?7cHS;Dk2x~Q zcSZ5UIiL1|wFlyNK?-|xUCvX@(Kq8tH~#DDV7D_b?4Vvi5{dFiw>K!595&Z@ z6@T3D@(P%=NrFLPmcDK?%^7aFNHZ`G>iWI%+wHUx=!EMyWD||V_Wr%ccIa5E>fL<% z0bc8oBpI7;J)KgSgS~n2%S?w>x)+?HRh%!veKA7W?J0!M9%P7ei$4Rky67}y#&p?7 z71L_0e9*7Bh(|*|H5#cu-T+({06-I=XfL;`dwL#IWqsy|_N(HE^Dw1LG1(itKmJe? z_7%plZO@~;JfKr$uDeIm;X#dWS{sPi3g>?;ubj@@K_yy)_p9t+@`RBg=6A*X{AQ%`x<3t8SHrAXn_9CpH9U+S`h{-6Wv<6D%+Wejw=^@?AewZ;$S2vDqjtT$A za@C-kbDMmX^x)B*UU5fHt0JFo@~tY%-236Ng(rOm z%WEz={7#ZJVmLHgQo{LBk$P z(D;NauIyFSO_<22BE5w7HB9i}s|mWDUpRp_QtVb)Kywn=cLBvPey3U8_J`82>$15` zdxZ{*?j)xap#2$r#hoOc15SrvdT8e>pL?wN2>B@+?5ds7*MlCQ`ptTmszrky@OgR5 zcT7CKT_j1<|GW^TYnzrUShw1z^DDbF^7)lG{8wc=7ncHR&AQVNsJq;#s7`HeEk zy>+ohiJw?T;z0fh+Hp0>9fLwkD8gR|+Khg+p;AVwyi`FssM&l9iL?;@cJl90-%}_V z8T}$=$;AoF)C{6RcK7vy$?iE1&0zc85VhShO8X4BC-bwszxW&14_U;%_jTCbm$gRx zxgDAEtSx7vWzRVkN)$ECKi_zDI^sL&N@XpBJ+wvn%GA4Em|$^|WZxXEtN_!DQ%xbs zWI!jXW0_P1d)adi*S?gJAFCP-wFhMkVF>OrVu41`UtBBXr;M@h-E@w0)7EpTt>`f6 zZ7MX_dq*_1h2Cl5Kg%9;zFEd-mXTuG5|lEOpe)*GrewdgxnZ<@WGdb^I(hzmc*4Pd|~s>m~%*08sb1WE=AaVjOo|x zd1e?ihVD0cl}Y5F87^?sjf(wx>q%>1rF&3Z|paq zc2xr!$`napTfYO%bJslgDQ1v=(y@TYqEFLB{Vfrt)nl{l?Z09_j=tGzO)Dc|noIu^ zJ#7sdsiuaHO5cE;vHQvx8^&#BCo1?zsjUxaG7n3u->Qy7^=_CY|1vFyZu|{o9=?3{ zqN0ZWj)I{&XEJC*(hqXx|DPWZkvzq1rdE$9-^a61#>fGc+a4oR1a&itz~Nemw3)%Il--j_ zBHgUo|K)R+RX_hnbp3DR$1>;qq%=h2U6=lz(o$!6g1Or-qj9M}Ph2GO5N1JIZMIhA zEGW}A{b>ivZJje=pYy1fh0gD3IR6l@(rcQapCvwD?nn|ThVFLoFdrDGPpvIa>r{ct z+@B4Y{Y5#~{V0oA^;g6J>ni?n%PW^eO#2aURbFqB^@zG%??PMM7$czdRme@i4zJcn zvCU7JHv^;3T$ZG#By*Eaa5C$!dA;KTy95=Z2EAz9OMU-XvW60UlZK&;_}^IIWvb)8 zU^N)B;va&6bGWay`s*$FZ5k}}hL-^s0|NroIFi%mnrzne_YL`FUwW4(?!(7edd<`ldTc=EDBJkWZh7lMvgrg^mLdW7CVz(!9MX7(WGk# z9Ho5Xj2QR!litk-PAuWY;))Z_YOPpIKz4FRYR*y~Pe(}vy7$5L$=1-mA}W^ znm{^e6gOa!oRNfEs&IlGhNM?FbjhU|_soVOH68l-KIL7HP2~n+&Ov08>`Xk>GyBjM zp6iC&y;SJs0c_w_d*(14>gxiGO?qSpu$iec41I%;*8$q)rfS9~9hubaN?kwU?4gX_a<&>K66 z>)1aE3(BJ32`Pa#>bMOSQ1E?axZnBNtXmoVm%y0kU}tHY!=8<x9|_b`d0FFl5P#0EEJ|{`C_US5A&f( zQsM`GESZGRayfytmsfZdss#6i`q~QK&|DVzUP*+mn;w7w{fyu|Olt7{pilP*zVW7) zY{m)~D`UwB&~7fL+|C`dVXARMC+{1n2t(vwY|;P20Ga0A6S#0dIobmWA#u!zQC#vG z5)0cXzp^){8EDS0*XgIgPD9nHHoIo_t9;(K27b8^cxHT$Gp}2Kn)0BZOImbYFb7$G zpWSE#Cm0ypk{V1ln*R?3$fUp;rRrzknhb}(KuO6kdbc=`m;vEgDezsjgKfsg#;Sb< z3sXv3yft$|qek`j2ZDWXFh+)f+MG6g3;!1e%@g_|D~iAkdj9~ct&yGIKBxzt8KOh_ zM%C~?9tUBiU;#9^+UTpx?VhJwNhtnND(wV4_v_z#Pdc?2gcgq>+Q&~uc{HyFtzic z(B;Fk<3r)N7GG~6)ZBqc5E+lG8N|(JGd+}%Ne4bPnd$zPFjEBhD2paNLu~CPZMx9Z z9b7Hlt{=Qb&{?PNJ}f9#0-qRmOJPAAfL(l=U%&>OrmqZ%o;#J^RqlGkxJZq+OmiL0ZibBHn(HnFZKbUfrt0QqJ21N9U%+}+L_p`n(Z+d?qEf%xOY zMR(YqS24}e46|rIh|kMWKwiV13xcFjNRaxU^o3aZUNH4&d`SXhEHe_EJCfza#u)ih z6DB?V5G}Pzf>LO1l%bEHDD^Hoy-b3XH{1ARRhP;B02#=+_lQ=doD>F`)%om$ZveIB zP=(flN=+9Eue~X=Pq0xHOchT(?-jYwP)+FV6`~!ZVqW(mE`rX!GGw;n2GnsV54Wy+ zt9g1VLfUq5Sn-d;oQu#RyKFHyxdk=lKzpj;x`0kDxe7LUpz+sQBeL>l6JMl}yMh*w z#!hlml30NCV8$ALjX&s>?w%^@sJ6EVO`y(MFt7m zOa$!AwDWHmO~0fxi z#RXzI`aMv0wd(B6SYk?(nq+xcj>Bl_un|agUb|EaY?elCVM`o>z?Mg&Q!|iy%t^|< z@tkm(&Wm5w1-8Xu^5K*MOY>^qHPLpS$Whyd5&f{+=aWM&clsT48uXTTo z5K#Pc;G16g*;uu+y_Ob}ZSbE+)g>LYaU}&US%F<@Qpwn7mcb7M+{r9F7zVmxk z&M{_ZjU(mj9$8?hVr%SiEMw#$(_Z>0jVwaCVzt(vm%gX-k(p{ZCI3vNFj9lL%^vj< zW4H$zHJB0>u!QoCeTDtD20hiqvaL(MWdUmlkI5NM|IB>YA8y4hUaG75{dUnl$9iL4 z_F~KoQ*&N*bB&QV!o6T@(ZHl~(VMK`#7KiOF*eZCRY~ubXR6*&I2ps&e^SeZ$DfgU zw8+bm`iu^n{_%BY^eqj%mmsa`hgNSRuA2C#MpCk}yJv*aB9Z%ZhN~zhZ?7{BZ^sAz zDV$><)xf&D0dgEnf8`N3e)u+3Vz)965C(kiE&P*Ibp?8M3$?6v(LV!56x9VMQHDVG zUz>{TQWFk#s?2L@X4RvczU>L3j7y7T8{&~#QQGB)MH3P(tMP5~yZ=}!!Mxi22$U2* z*>VrJ1-k(&DQSgwIxiACB}p1N{8MEBZ2|XC1{@fLJ2W2oMfN3#G@gS zX)lP+hKLSxZtdbt4eM>*=`SV1u7Z9t&j`+A3ZoYzy0Q`I?$P-O)Yv%+gy#C2`KnNY zqM1Fm7>8de@vncfqcn*Kjigs0aszqc^k~va)hC#gXH_-AV(@|%*+NXm zuAV0s^YWV{Ir{T?wx=M?(4&+A)a!yQ!*mpLKg-M0?#$4Q+kL7=kE-L7in#jj@8iG8 zhP&u*g6gD@_-M8B+Bh!(^nVBQhHw7G+kH0Kc>|$+2GH0VJtDU>%(O&QYJR5gGG#m}kA3^Q~sA_)uC?DQ&ps2S>BaS(KJh%bZmc=Fo2o3rLT zL}W&h!$K#Y8^YfC5mlDSzfkb%M*oKBWH}-TR-DIJ|JGAIi)uK+N~rM}LSLLj@EHX^ zSBRULIzb5}T>9gZwlu`AoS*V$%+l}h6*z@;1#qyHnG{r{Ao|9|+H`!A$f%5( zylKtUDA)jJt-)E%-TTu5nH3#CzHM>=(gcE(Ew49HkuL+s=~tma97$=`G0lSPDoZ4Hv z?&?qWHTkPQtaVOyM_$jk>JKN`V82Kr`XzLvtn)kn)bFnHpZiW3@U=qA{mgtc7*vRn z9vF|L)hSlFX);Vgq@}EjD-{n+ztViv%m4Y^HCdRY3*Y^JEH~)u|5(gMK=FSaj`2<9 zxzlG9EGyC@;5*tcMEX-YpFBB=S)&U`ijAj zU^ueHyD|IslHutv1}*GC`R;yDa)^=lNh+O=!I zEASh@&HxI)bpirH0{rWQgoH#y*NI7~Z;+CZkTOtGkyEoUvazx-GBdMt3i7buzRSVP z%qwx{?mb~KF)=nCN!bS?GJ>LFB7Zu$MnptJN>E z+-tW19ExkW6xXnA02=^Y!w2v7&kg_k*EJkmJbVJe>qNvP;0cvC0i0{NxHx#Y`1p8u z;MqRl-vK-de9BwG@&r^`uL*BEQj7RUf4k1{sI-~p`4ECr)bxD-5iuv^m)y>_*Gw{R5px}^Cp)s*v z;^Gs&CMIQOeb3Ix&CCB$R$ftARb5kC*V5Y7-qG3B-7`EgIyOErIW@hsyt2BszOlKr zjXXR$J~=%@onQQ!*EIn5-=_7SGyA7`QGoNp!NbGFBm6V3YdCIT!==E(za>mSDX&HN z+L7wEi2rr!N73I(n~69?pCf2Y-wzSfa*8c+A^%M6ubKVtO)TL5YG(gAvHvlzX@C^> z8u;>XDF6s?3?p$jR31f(nt6HIj2QKOT#e3+z3axR*>A{(_~7n_@y7z^jG7p}NL(z? zm5_}ECWNlOPRKuG#scVDtSnd{1BOwG#R8#On46JgSl~AV3vj4nfp$H4MZgIQ{Jj&@ zBN=Hd@DRKge z>Z*z{0n^!AfzQ((#HCb?(Jxw6iw{ktOwJi8=G%T^KFq`d*8MHDxRq{Eum=O_s`@Y%*h#?j*=7{Oet{8=YYTSLiv=vje?PmXNd4d6UY<4a4T)V= zSJuK`B+4Cruui@YhcA&N1b6pK;(++ivt6ljFO?SxsW|RWbby zeK1ZlbmWrJ%h}v1g|yG_W@firE#-!dD#c{ULU~JWp5TP?X8c>@Yh1-VHu72Tg7*0F z+$AhoQ(8JWXABy1{q;RYbv4Gu6VPZ~I23!w3Syb;Og}1zGjuppFnrbeO$OeqEC`+c zI^TfzngltlYpBKxqZA+dkC(_kD8|)6MaYOR-^#TePkT&>1%9MT67D=SI;j4SE54OC zRKqLPll669rda4dRn&Y)^rxfnKLb}h!})9MtUm(_Py@-}*l+$CSX~j|{&TO-oD{`T z>>JES56Ln^d4YduxP5!D)jP$o$*1;P#_ONJhw2VlgkDe-lTBbAC2d@NSjWW8zeztN z48-7Lfp3h!AOeE^C|E2kYa8v`g`=$>U;gf2vwfioFPRY`6Ya6t%v{ISfdw9 z=&rsiXWKmYMSK5z(s^Zd$#Ye*ak4WvF_;n7eH`NV*wha1<)67=a`uF4C?&x|SwfP8M;sYAB<(&<7R(z=*O_Aq5_|n8{7e|AiF>H}~ zh}hX(0(FITt0w;6+d-98ZVcWKN-IK?c45fS#0O~Ty>jojWtJX+j#Pr zk2f=8_CMY`A5&zl_6rHN_kP^}U}S#`?*C&$wVRv)(ZLn5PV5a}4@v67_e;!_vy zvTx2t=WSJ{Sp{`xdlEk&l=gCOmDQHVA>&CW1VMFNeDn(=_7gc69Q&dye96ULaCvUP zfB|4&*q7{*F?S{O-xxx}K5Nw4LTTI;^oDsROPFngtOzB!%qgNCtQ33v=>X~e$X0sJ ztc9C9SSzLbJ+eNfw_8$AQsKyoo<*6y-C*jJ>v-SRJ=QR=)t6~h{BxLxYg9$DYR5W; z2K|(9#R%3i7@~&}3w%~JUc_ELW=Hzo<5?D8grappM}0V*m5x2xLg~paKU5$k0$;^$BTC^l(lb|G&(~kiUZR= zk3e_U@;5R3V^+T#xC(5>^O**%tT~Z|8F6=isC3~m`--n6LBoATcMOc1vU5@D3Q5Cj z674)+>E2%~&f-8QOgT#HgS2hcO+?!=ss*(!xgVPAow2 zuEC}FjU4swie!{?=d+HtSs!0r=dAcaF1g8{k5F!xCGV{J*dHHfo2S6lU}Bq`Hzd!1 z8(utnWb!uc?pOmq@^eRwwFzzG#I)NdbM@!vA^3}_d2>#C!|Btir>2|J`w_tyO122t zG4~tT**Wa|cKxNXrcvOp$o!rAuBX#|_hU4~8?2mdw(0#_nIj01de^W339N(dShaF+ zz#b!P5?ElY?zKp=lfRcXu3yp3>CPsdX-2{I^x>-WCZEmy{O)hfJX+lDL5axvW!;Jx zxws`;{*y4jJ=@&b9_lo|y{P4)cH~0)1#1DGuOQ;P>v&n%uAxU!cE`iJO=dSIH^N9S zLYL(jywm}`9j`M4G^J#W_Z zZ2g5EM?r7pBS6~iY*D9?acwlNy7Aloya19l*J@FBLgtRSxM4o+9f8c7GMSIxH|#y4 zN9T&K)FpJlKP8C~$>lGptJ9}e-AyoX=~L?uTcnLLUt~NhA>UF^K&&Tc6CTNR+A)K1 zp+V;%&v6O=)pyvc+Aw_gHssiFbYSS+jFH1x4BU*ib$PJe7HKDDLL6bJe_Ga08|U29 z1q->4rieJ1Mk}M5UoYw>XjD})1{HVLW**)D4n&ZoJ=G+9vn?GVI^qq6&={ws!An8~ z5C#w<;6e9GQ3Wei`FS?B8;$j|CbzppgDLT!lApPedcN}1>GnOEDuMjc@;!j$F55_S zl!Q#1YuPY%2AW2y_asD3&OT(&e4^6#f@*Scq8P>0nWPyh=H!)28|ofnn5=(&frM>6 zmyobY`sTweo&cr-54-)_s;}dSRhhyH?$EPGEQX%fFY!tdc53J;R=Cny6c?So>zWQz z+ZYXR^y%lV?@buHYUX-#WpT zgJpBn1d{x*dofyZv1W0kch_{>jkf(0As`(OAk%`sWut1B4k%Dg%gl0+A%V1Qd?L=U z+efqnkEh-8R&QyY)jM@PC}4!{;b-p9rcce^LoD7?$t$Z+D{tA0jv0d7QYI`&<9q!B z{yf_p9chl}4B7S8U)nLYeJXV7<>#wUz(CJT!!df()}%~ER4~vnV`kRf`tFE&ve3=) z5T!&}-)975o&ln1l_fd?-G*R1RC)csi)de(a3eWc*~$hfO;pHZX+5z(h0jOzWucoh z?!Lczxmn$o>79Dh5iI@gYbPfI*{<+HK~ z&=-}!4@;gxNj7c1DaG0P3HQB9Ix5vqy(@FhSbw=f>M#OSk7hd}4Ei<}D@(^UwreJZ-ugeW|Ho9#kW;>d2vU!h8HnQ3O z@|ANGWYJhi>S_m&=Y7xglQnF{+%-16W#QgzzrxHK@Jc!oriGd?ghJZyMybWL?J$kjOa#EsnJ=;0S^5#;f@AT{q3wdm-R|9i6gVcY1V%KvO&Sw5v^2;r^JvI=g!*<=i96tS~u=+ll%6ZL4oXpWqetK1neq1!@!uT zm%ZO+LUN18#Q_8v^jeD4zzYe;`<%RYzH5NSKUphb;xtGvY8zpJpD7E&_5DXuzus}KECV%?hz%MnRmxP+= ztV;;+_W2I8?x1SXdse3ENNt#Ci3Q#q`WoT-hXvU;hUsPN*j~x?zNqlhcr-A-KZP)0 z3i%K+Dan9GF&Sy_e~gtCj1vkXWK72hx4+rkNGuS{=zB7?I&Q)X z^1bD!?qfpcu|Bg>=HnA4O{Ux;zF9X=6MBehjB0Q&e5W6lSm4TvgBVZ9-uASJPkLQ8 zdURT&*p>}t4-BjBZSL%im=CBtZWJ6;9Ns&glVjr^p1QBdx;&#d!Wjdj(w&>}*}GUc zy2Y>W3g5Etsx^^Z^08MP@)boPPmG`UG+VsEv)o>~P4?(0yv?#PqNX3Zq!~~-r@Nv( zS^|W{5v4EC~PQO=U-;>d?C- z7!q%-VBKMgj%e2>(QQQ6k+GLunwPcogHQ5HGSK3SbGXfjS;dS=pJ+jPv8;g@jW!3l zOJEw{r6qFOD`8O8W#A%?#7{UY7 z8LdV)D&p<xAVVtpoA-In>&*_3mq4rbf{5z*g^Y04bp+HU!SY>+lBlMQ~EGab~)Vu1#$ zVXEAr?ao|c#Bal{52c$7iI4oqpA((-JHl|pZm8=aEwfj`mAF;DAK^XK#<4bkTWfS` zqP!B((a1NkxX^m3p103|*nNVmTBDrRxJ|WRxTbQ-9=f*_#P7}#bbXjN>semNH=P#_ z0B*)NeYtlT`x8P6o!+X*Km!D{?UR@fOuY)z!sD%N*fH<)xOL4zeeZ!J-YaMEXe3oT z7<atUNv9nHfpzJba>kiBZQwVfoeRI} zz_oCXc+&@pSb$C5q&sJ;s!k`&)irwe6X9}aEl;iZnx$kwYq5&ACPEtVQbPYoeF@z; zIXSa6?l^7G#t|g^Q42lT_%bu}TzAIJswqaT3(R;Ghmrzb;nf@^&upabh$WTd?fsCAY?yKB<$^`$9d@OKRt_WSAR9>lh{`$mz%|vUHP5=vx@(gF^fp6>2@!$C}-VEFa-6fL9 z8z9~Hqc`v{0^jpSTL8Z`a|)2tV0v-f?Zh8D*8k$k50SP6-;+rc!K$jgL*j<3ZC`fX zS#kYRCCbjg_U*}|vG)cHEhfnA7vX1`!|_=)jx-GsUby-!cM(_b*(6@pdcznBJ&N9c zH?1q^wHMj8>YRUXD`yC`*;G#D%AZ4v)r)LKzSX=4`c*vNFtN0nv+yi!p(16uk*_p< z!;WX49kdz^oIfnzx7y1%aRsL{UL2c0Z}cCU%)oz5gDw8otXT#r7WliS3Sy1Flf?h| zjQ$$=KRL$#;2Qt$kEB8ju&!JfW*hXUwkDz`{VPJ})CX8#4tjONw!?PoP;*gz;#m1( z5{$;vw-7YnQ%x~`1*M_=%6@q}0lj(E>*r=rZ4AqHm{y`?#Jz`t&GNEkjwW;8HskAP z)2gag?s~*Lm$POX1qtEl26QXa$r~>?)#PsTl21eB6s0wzV)5tP?Cc+}mG5>QNV{>D zOb{-UhtkTiO$a*IR?Oso4}53L@KExZSGs3En8uFefFv&K8Rk+GSrYvvCHYJ0j9jR& zmaZXds-j0ES}+wP5zgRe)39(hM4j`(1@1f+Sg^*3bI3}CF3X4_`Fh)?r>&!`C+Z}IJ!WsSIrkM@;oBgMK* zs`0cTW&5Tx9?UDK0uBt_(_|3vdo5hFiL#B_Y8Ft|{Htx32o&mv_$CicIwy zwi$h@axJ*BXH8Yi={ai7Sc4ig^+vEjS*2G2n`qz7rr)RzB@sxfkBMRAMVki?Qm73f zT%&1vo`oojqt-I{_KRj41}?uK}khS13c-))u|6J*-gBkx*29iOJD}8qwf3&uPwn1ungDb)_Wun9#v(k-d z>%GG8xALS%R2I?(i(BQL7keJ*HSib1EKu>&#*=!l!h8yn)4XH*wLQ8dZv;pZN|hPi$C zp3gS@d|7|3z>q z!#0&_q@m};w&|x-$rpManXoQaauglr!y8=4-^Cw2$lp?jzme|$NWlNU{TY{}1A2I8 z0SnZ@FBm7nCd%D=F^ZtyKhwhk3I@oe3-4GI<;fMrl4W|kNqPb3+`tIJ4K9?(9s7&j z^oyG%J|#GR|Cl=H%j*qZJ=If{(6#Kc5M=NaUN~#xCgE1vFE`iA#H-~;$e_Jt0z=~d zns)n8aVhH{H?wW>Dra`4KZ)#sP7hL`&t6WT05F3ek^cH1B$5u z1)p!?E?|KPY*oG<3lx{aHckCxW|oxEkw0M*74R-S!))(+qt2H;?eq+nT>HAjX zkA4?YkE7ca@k;>awjZ;veu*P08w=dVKf6T2Hrq=?P%pkUxZ(W7WAczEgyZ;$qOTRe z%uypxQ>tz!Vg_#wGC}<>_Qa2Uyjz!z?;NvHE^O_@-F)(d=PK~%7CHo7un8yI2C?8? zP$s!(OW}O~Q1JQizDuw|~hSY#Jvnd79(x|xvM}G#j zw}}zh<{cA#lU&3CMiJEBcDCTh)Fna>uz;&?-a#)c^3dwF{&X(-=SB5l5#xV&6z{}i z{9f1z(Q&>F|6hkUf0;Z;I_OsoFLUb>JnfQ7>PGT>wmbfK@8RPFDL-Jp2v z5^MIItFhyka+Q{yi`lIzH%>0Zd|F&e45~H1=!_b~_fu0!4w9qzl@YTK^_%NV4k6st z26xAPW=1E3CMUh@O(GN3r)zm|%OmGiUKVH4=IWD)&**1Jb=iYcf#fCaD{GeR=#*nc z0o!&BFIUqt)971Eo!Z8*58g1&*LP18YNhTrc8)g$jg|Tvx&}Y^VY7ZO`N_p2hOC-T z7N1(PNCWuP4xuEdqzyGk>M-*v*%zlJ&&wNwF6J!#Tkl-)a~HZO*(iqcW=6mM{3A}DR5%+|D6AZu>K%jsQ zaGgVzaCDVaFSlb^W&9yM0pQp3BJ3it>xXAk$?J?QJ;t0|2Z7z9QL(Z(feK1s5l55L znZ{;*nZN!`@hb;JPr&2XXf-8ybUsgZz;p_E$jJ@8wk8=(0&9ctfkX>?+tbG9rz0eC z^h+G!1Flq~DOM-=7n;Fn?IkFkeyeqXjln_C{t#x|MfyXGttxP?|1zqL%D;k4QtqUO zCpf(g#v-GiYce<6o-JEQX>6!)D{QW~T}SDa!rQg7Ya8E+7>?DULB2AG9(TK(s$rM> z`Qf9d*7GX8i*|7elnTz>gAWOv9^e1$0|NtWtLHY=yn6LH4;COqNI{w0doEQ{ogw5~ z+S^hmZ3O1$!Z#{BIQru1u0=UWuT&}NBR*?2jx{k@>rH!P7s7EZK3C|brnKZ2Wyd24jGSo1xQ@2jH ztFF|nx99jqnkU6;s@nPVYvF9|>ka#Me)t#$Utbam#v4Nz)ZN`nWkQZ?OVmB>vOQ@% zDnax1)_9UR=CMOtVY9k_Z;S^I`{fFKl2C}$SY#_3#oPj)=JE}KrCp0?vvYI1X5Hsm zVXw=)9F56aB+U|*O#Ft--uUG=58j$&n-JefU|iXZLaWwRRaDh_%~{IIan?Tjo$yMh zI^qMMx`F(WS8Mpe%U44E!0k3=opu7Or5{5pexgb49@sih0;6wUX|&wXt@bnNW0%~ahX%|rOBRG|MILhbi1$9y&BQ-ZS=#mK zn)2`O+H)@Cc6BH4udeuc?0a5LWV;KQu<{_@B@|w##dW$aKO$Er1Yac7SKM3fFVG) zGpPd$?>Sh!J}xO!E%ouIUWaSyEVJ7WIj$i&zRe4kc1*%b_85;Joh@`X<7{hfTtt}_mAr5ADC`%t^}YA4 zGF0dY0=7sQ0iPwOC8Wg)j9&FB>qonVM0$bnba+bKFM1ibuG8YIC6&^9g-bDuCEqQtwmc&Agshqm|@Rf?j*mlB|_|Q|cw?=Z*FCl@o%;5TcoZ-||;! zkBsKa%;}D#GB+|9JXP&qy zmA1f52l>uMwXynR44iz_{&CS5m_AHIE9eh{Ov!fp$sSXiL0WyTp{e?n^vi@nw=kde zh$lGT$s9+*QdVg4S0b7E%@CMg{oh=QvAXfs?cP~D)4e7nXNKE}I}vtL{JDef{%IP? z_(t8#szBIGD>Fe4MPz60iji_qXE1z83#IoEY1ztJLaBiFoF9Xn+<(ZR+~c4}$g!ig zH|JWt;sd!sm|1>;7ARSU+6N_N1n&uZKSFAr=3OmD7dKaloD4>Xy&XhY(Jxoa;1}#9 z!Gl`eBQ@g(b*d8g))$DvEoZ`1GW_G%PnfM96hkpI>7ShG2hq1Ma-(}I>M%imSuNUa znFxPX`fyLOo6!fu)fhHZ6-1Z+^Bl=GVN_zm)V8Q_M<67gm&K>>(S68yGAgfttuVxeG;O&}5LpB`mNp zv{j0h8onLJsed36MsG2ZCwW}l)WAJ_x;sA;=;k0F_u$CzvUR?3x*=sC+~BF)xc5w2 z5J9$N{(I#w{QnI5JzYE^JJQc_wxB1+3m4Z)?jDFV5&zL(!0e=$0`$fj#;|ti`OSAA znkZ~>uzmtD_lcGM|Swh!2TWfH-NCe zX`*+UpcE2Zxnum4x-Wj;tz-6`cI%zv6-c<3PkK8Wv9TeM1>9DzQ&@xQ9a|JThQN7zYe zIkGp0{e^Qoq#xw*l<@2iq;Ecz^Yg8^2I(+n>#hGeZf3%zZ6}OdbN&Tm7`&wCOM?oM zwkNXrX$0@hiLU|D&n7_uAv89838Ftf5ztt?BJ7d2Y-FyAGpJ%@(}Ei8q}Z|Gqe?dG+S0EENWH5tQ)D2CSkdkE^m06 zimy9@mh`A#_~|#kDkbrS@IX~O`OQ|Cz8IUcPR$OT?%1x3B(pv2ew))r@oXzM{8bX! ziUQ8JBE%`9NnmCZoGtd?yH&Pn@r%)7+ToUE*Ub=EoOeDbfu9yQIr6`=jIKTH_famK zsXUEyv}I`Rs-amsh2pJ7RU~-&hbMk&Inqs1($?7Zs4OviFWOPH@aJl2mNoCz}$#s_Row_}k@9#g@D-x9C}Xt=G#bCfj`7WAR4I#yg@a zbF8V>E-bSocdgh@SmR{hGir=Xt6YcN+U75ekmn=RjNr+E$c8b6tc#qO?KSMZ94C>pPC4+m^!X zkJ{e9U|VKbE|rn~=Bal}2N(dN$eGen3a#Oms_F-WR49e#HAsATsJF0}y>*E^`P7`?Xl3Il=Z1N* z@9T(+$cM7+cKj_Sw@1-hR?BRRCe|^7IR!-@m_4NEqi>E&Bz=Zx*N`?o^@(+gSRf{!L3GY3M05I-Sdd_kK98Rqb?e{NTJF` zov{O+$1{w6_ewjYcC~&D^5hq1hSG*E2t~>2ue)N%k%J!@4>S?31zGn$IdZ6z8hn56 z5&xtuo?;j8-Uf%;+Gr|$6Wvzl($!#)puJ_1ZGQOZMbPgu@$Op?-dHBRJeZ>@Yt6-KrY0jZaEt~Ta?!CoDWNhHh{AQhEj(_IVmhScE z3`SfS}ykz`7L+{fz!O^$Tzhox#6shBr zV8)OxANwnqK?>RDMLT5>Y?qwaF?#7BPVno^mt<>1CrCdprahtOBUJZX5a|WvkLbCHogwuGP5TU!85Rr8?1yik1NePc_ z@=P~1zb3znv@)?QzO%EI!#`>z|M>I01`CidO9eCW0+6;Va_{$&2!pR`!?A!1>{z^n zp(M8(;x7apVx_f4>ug4${zv$GwVVLgBULQmuGbWL zK6|ztJa{adQef>J#E|)1KKdGq{A;7?@CG5e&$~qe9oZ};(RX59e_xgfM`R{EL%A#! zX=|ln_J{RqQqQ_t+<^29aYGCZ^aB{YI_%Lzv1r?7+1F`A2qRze`i7M4p*f##G{Qf* zXDML~KDOmYARbC91w+}R8Z3a)@udPo83P=_t%=O~TPJUDszaNYH|KBF##~JAy%kDN zFmL4y9!rq*X)fl|{9w@1#4#pT4b|qjgZ^pT1V%u;CCE848RTrt!59fy(m`orye+Z7 zuS8IMkd)PYZo}Wq1T{FqfHQ1Wg_@JxHPfCj<<>Mzm)NFKuAbz01 zOj%A8w)iA{MH$TpCjujD*aC`*2lboq^+qcekTnD0;71SRvlb@X@JH)jKCTa5$Ll(O z?k0T2^I%}#(U|9NSAkKTxTFPkv?77Q>&A#(D_GK?9BH}0GkEK!)z{N^sNQm5>bWB0 z=#SD}NGC_1XkKpWf!oyn@tReX;nL%1Q2X7n<8yMoq!5|6dMO7Dj=#-*CCkd#*_(1HuZp>A<-MqiK zYTRSJcdygnNGPaorZ>AOT{H&CTm$Va6Nh@V0U65c|b5=ycA6N6i>4+?|_S3tX z9i4AuX&s9yxg0eo-`Z?kt(;UIa^T^f{HS6KWBh=lVnj9P68(w&Slv6mIy(h(aQFs!jn9>lEpxAHs1B%{=$LX z^M`0n>g2L|Mm<-~(aKaIrB7UAF8tE;b5&V$PfH189Y`o*pN>=-OY2ohNLgGJ?OqE_ zw9C<_bJ&aHw2C(IT7=+RU#y3dhobeY2ug}dC`pDevB(am4~l zQzJ6kIjF#9Ypd+1G1pH>9zJ2c5P$a*wt zS79frmaach9NQP#K}Yd1jF~P*p+(3<6ZW(c`UpAKKHkV0xU7NWgR7g$sQz*_l_zxR zAp^d+ga8mhuN3$zF(3|b;6~1u@sB{{v?^Q-pMn;~AfCW*!H+roLaDR!@BdRbqSm67+ zPRPE?ddT)f`Z@Fh3;2<%pTiP&e{SEGpc|QN^|I%ht08zpsUz~3T%(6f$;&d|$UV1p zJYo3d?9Q~2gkyktfO^;XW8j_S^Y;%nw)&lfQ3)6@2-8k(VrZ(<^+vw=C%s6$9dqeG zulv5ijzvWC>DUH@%<>Q|yUgPB0wEB-t0lWPT9?{3Bwg-*Bp;CN#~xju%M)SEGtskB zRdrOobOqCsJ)Pd3Kb@9N)?ZGW*SW!5`oO}$^QJQ1i^}%q6(0^|lvB3t;Utr^S6-%} zu~a{9sT1bjsY zVrrg7$7)3$d6Qf7nltuxdkyD!&(05jctm*etsZJ-tpAiTUNMA`bXwruce3#;&Rmyf zVtSAJn4uS>6WL3p`y+T&3hnMe|4h-umt~hX7 zc$u>vE6>N6xH1hvyUq-X$g<2FePqKVst%23{4D*sv^gIh&t|MzRoV2r7n*R?{%#U? z@3vt&FoYEi8t&l`L^3(wo@;0RdCOrF+B0#aut7eAZG&;}hGUQ= z_{dt%pxc~JlJil)kB7`vPK?boe|iwC8WwyB`FV0Jq~CJWJkAkFSxc2L>h#5XzmbHBlf+g5UY_qt*v}2-V}q zC#TPEs#-B|>W9TvsEvN# zZQ|YJDn05PFCKGWPw86Rm(`n|H*Lyok~~e+Ehol%U8qf*qY}SJff8M97u5I5pORE5 zw=2(fP@xZ9+M|}}+|zl9Ll#KSes;C?A}+fJq;T*SHXp^U^lzam+)mx9lES~cxk@~n zGgJ|Ym1lQ;=h#Yiq>Buepk^_Og+g8_EmvzF`SpzvwN zrTzAtQ9lxt3zj?s#afzc%bKAkOo)Bl>8&5rjmy!|(T8p1XcF%DJ;M^T^kwCp&D0B+ z`oZsGP#64Lk<9-Z`00f%#&5LJ4aqa9-g@{bulvC(%}xGxupULJF)Sf{Gm=CM+6d-H z)Ouwe-;56e8lY?R$Ej+Xu^+2bBQ+nJZEeDc7xQ+EP$^=<)PHmVQrkxrd4owjzn%4P z!3|mGO@B7@T@Kdc_4%G%a$a1po-F8fn%+BV9d$@YOCDF)Dpg2k(hP#IdEA6zWTmDy zd?U$nhLj?Ojw65Ym8?&@v-k#_sv`Wk-mptQAFiWd@-5d8?xU~(CVL0sqm#lL%5Nal zb|S<$WD>gIbLXpR#H!%)18*Ry_Bw*cuSg-6zbe$@(|Zg z>WV+P6d515B4G8T8p-=KV8ae-CKT$E!hlDyqxXB~nGw*lsB zP@(Y?p2iJHiY=8_eNi{|sdJ{h8z(uUoRYe0QOz`sd;K-P-JYtXs1=VGTd`N_}`^8d%y8*B~PyM z_e8=Lk~{*Ck1pu_#2KT?d8m4z);BCI zU20{jF3KF^qrv49K}AF=CTRxOn>}w(x~;R(ce+WfrRYMB@0s2TJEsF*?O&w=&l}1b zp-Z!rtxGx99Ojg>qB+X*#y>=4%Win+gMilZJPR%Wg`cxnSlPh;+9y|GEByis#IxyQ zbPj`mQ+8o=PfA zQ+7#JBcim%f!VJ3>VUAwdJ95+d`Z#t-XeL_`TJ-C2m9>ld&jF*?Y?jwNlsIBk0_7A z^WyR}>*~{qaZ<%LvL;la$GeNw<$MO!iZ{)Lv)0u(wjS5n52YFRkA;|CZohtA<9MS} zGdYXR=1{d*>PWxb=;lmZ=+8}M8)oh6vCTz7n69}!ZjaTL|97DuAmHK zO=2_AYQJ4{v^bZi&Cq1FJOmMWx?vGLNzbU#j=PFqrQ){pNu_k!8tm%{pzcM?_ zQjFsMVvu#xl>s+XKSr$Qa{u6L96j+M7|GjqO57mvyGI5vlUgx!GPLWQXZH&w-Y+YA zpgwcs-O)-%wOx+;mp5+O*1x-PD?hl&IX?t?B%;IaYqEG87kQ-<>_8DQD9@udIK|$6 z+Au=h%8onvM)?y^)dPya@MM=Un`_>w{ zNtrPX!lm)pOq*7{w4)c};$l!irhbFXSyf`zA1Q!Tnq!)#OwzLwIVbY z=;@$qc?PMFac~fEIY0kii3MUKK&7J82X<^T@p@^2coJo4r)zlU9jDz>^66A*)}Vs{eFakRSi^0hphB;PE1`jGD2*>e-;*VTBwWO|Z|W|A9K*Ed&I;iofr zmFq{aq5-cK*rA~exLMuE4suNV3t^9rDxrf-XefYnFC|Y$(EMgOs9aqnp2)2Dd|qi` z*KUsZ^?UdIL}U*&v`1t>n=qjo^_Ijt3%Bwe5i8!$Q9M#&vL+@RVaJHmddFk-;7oBa zAN77nOJ}SNa*pk~H@CYuMNZCIn28w4y&zr1!^tcMPuARs#)4ubU4V?fM}~>v4i=z( zZOr$$y*XW}`V-Eoi_Z%4N=oQ1e2I973t8ToIhp?lvIHr$y6HXn38VZLcImu#Emc3VQ#gP+0Vg{NBwIbo-h zYr;Ji{GvTU2jRN~V+na{4xVWhSRhPf1_WMsj|bq^QoDCQr@7(=L7v22@mC=wK2)UB zT3egtKU#b|v$y`SO8woULs#oJwvd%5+hphmDW=(}c@vwYxvQ(}Q8(fF`MFQoE$>Us zi}5@-7XejScj}R|SRWQF!1S>&wcZd>x=FJxM-xBhE9E}VV@{`upC3jkL494q49TC~ z(kNBqqqk%k`~ww$1&qBKpU=Fg7yeRPSxX^Xsx$L7#3-zUP?B&aR9zK1TC_ZoyKZH> zD<~(8dM>S`n>5|Aw%>B7%l(|rEw>-z^Ip72S11Td>C&iVO7(O?Y`pHX<1YzE@*3Fz z80FZ!yJ0h<=10!jno6(w{zu?$l<&}m{tZoDmTT`Gu>Nvp7~l^^8jpt~mD?F5g2ie~ z&c%99lV8-{tK%x;mJf-?b~_X#)-% zM}-ngN*J1u@lT)n{Q8CF|CvEbO7=xNw*I%OzKut20DQF+{pex}l)B0dp){{zHkM!^ z9G}$hRSNlUeiy#FR%9&HQYEGN$tBg3=pEyZ?jia(`b*}n(Txm1xk7ahu-YWCzfx97;K>>mh3oM zJRQr11scA)F5C@kUroF$FI`O^8KJS8H^RUpKJZS&)M4Ge~d63p~;6F?U8qV@OipoED`E0YPP&bV9fE% zVy6p1M$lPAPuTx(yt^(nVk z;6kng<^4EM6GW>zztHj%;w3k1l9cl8IK#gaPPq~1wKAVQSYc0b?JAfjL%tcyG9=l+ zxgzZ8jC??b1r9tTJL;xPBixhjn5lBS4pL^o^9qErn0(mOXtCAax}y{R^5`*Alh!?0 z136xjHT{N`GWkG;Hg$z~awS5_e>8T4M!e~#92;7F9QvZ_>oinUM2a+~a3+vktDB(F zbx>`j;?%P2XJwV;We2?u5&EOte#-zxm}RYy?z$w2*y~^D9S()g1D6`K50c}NlupC? zboW?ls)K7VX`k}zU%0Xwic4%v)+W?r-jC}7W<`zWMR{VrHSNeb#mL%D35Z<^$P()t z$iL0a3%cir(P4UXVJ2)jQrJrs^MoV@#s?h1@qDt{O=L&CjZO#gV>(w2_c0uPQfI#i zAN)V;y$4uRU%u}h1woLaNbgcarFZF|(nN~%j*8R}klqP`fb^yyUFkja&?CJUsY)mG zo=`)Jcl)0+^Ulnj^WHP(J!jr~@8k2plfB8#&JKHJt>5~s@AvcD9p4lhdlGq-rLZvK z+H-%-8y$>yL)wl#Oe#!!Wn8K9&K0LmCq5KBEgoYo{XxM&>*$owF3pA3_M(8tUeQB* z@Coz0F4H(a><(i~FyKg9O;(80do{T2q@RAcm68PGd0kr@o1Of)Zni%Dx!&YLnMP}C zpYDm(;Hz>07-v&GU~4hS<9jaeGDn6gPTuL7;=#F_LFd!;<-<>qi?>&DZ?*OFz|^_- z^)4%#Px)t3TClevuXLK59&z2gDD*gZzk}U_!JZyj=*SZmQpkP$J|5-cf#PIjh$^5&~!cxMstdDkEw4Ib6 zUVSTMp^k6*;9Y|K8sWR~Becl76B#QL&EdXO$iX!*&jhISy43Z;I?0gxmm$vl=bsp> zC8f#U*I32BIiwgF6V-D&))1N$WP8r5>+FBunQvJhtjgFqbg6wKLsL-CpO6m^zgo9^ ztoZ2Rvl_iygZ>K@^kLOX*>QvqA}1>U%Ure_9J$6}hvMi+|as{rceXYx#Q)8hOG;jmf@2 zy#dF=wNfPC240wQ1Qzc~HsqB>8DCDkj8z>YYnv`Oh>U_G>F$Hd6As)waLG7F8#$=j zOWd^2A@e`DNcCR!P;60Bip#xIu^_JO^b!ZP9hBU>8UX?wQt;@BL~uQ}vaN9||4Lo+ zt&edvVQE);oVaVIfb0KQefcl_%9ZOx*O_m6Fi$36`dT@j##Z0Jz1tD>8dwtL0#;@K zFSA#g@VD0riW=Q*MA@%zZJ6jkGe(VzWx;i3+HQqJdN?%=W#pIUbzsST$;{oYbE;11 z^0Ww~qTydII1^yyUkoWe=iz@jaJ6~*A=RQ5Nd6amT3`0aR%Ufmz8MVIptId6Mq%v? zp4!9{T{txSPEf*So0xHV6e#;u8&-38Qb#IZej1{>~Y!9dXaV?ZY14c2hY<|G$YD^!Yn`--3R$q!(0>;|dn z5fB<96feN3O-;394r~qeF+D;dTwSN6ayyz`Ikvau9l3P1B;A%nKk?46=F2=)I&3&C zW;~M+OCJ}k*FfCsG8{>h6z1??OK(?mE#!Qzw3l>MK}Lp&VX5*eABzl$n@X&7DR zGPa|g&$P7*060)eh5RG3)DN$!@1o$rchT48PDK^XZ(VK&7BTI@5D43&EpHD9_fo+1 ziHBJx`C)vZ+#f%tzZ)uoA=FXSofPuwW=xTteH0Qq6cy6ZH-aOtPs22T6}|VH|G-v~ ze{}_M_U=r(n&OX#Dv)0K#j6ypkd}~h(f&3i+*ST=wWD>Njtd2}@Ltg2C!WP}l?KHa z_TI9=n@2)d*2Jwsunb$xv`SpCglWC~PWA-Nl2yIT^+dg9V$`jScD<{MC5pZ1wCTiZ z$NIT6RF~l}lU5jVV$hrsz1&PMn#(DwjHb-V^`Wb)ZGH>8`OF+H7;%xbkPKRXjj1d& zn$FF0Ts&nRG4MZlF9td(mWfDbPtp8VRaF_LP*!j8sx1;b9*A_UmByiRZ@#ZAIb57@ zGc`JI(Xjbmta@8C0Us-)liSH>lG35}DYLg1oE8i<3F!H`d-tvD*rUY9cj%DXL&a@5 zTW97QqsGvJS0oe1rM$?rsv`XtHj@D<`+|i#+u8=CBH-o`YQ1(*xdjxJ(ot zMN9|Zq2i#xPUOqNbp&bEebcE4`TqXAnCd1+lzCfZHl4RioWxfI_uxU=Ty-RxQmj!J zjiZEq5wu+Sd}Z*fl_eNnhY4MLFBCk6S7g6=`;F{8zx1ciB%EKRnI}j>k))*Rf~o~J zUlQ=8lo&YUff-YvFk3@($9{KxU+;APt~T!oyb(7!a~hM_8Dn^xy-jesb&0OSaO8;h zs>hbHcl1r8AKy1We@xTgdEsk~16@P}?={M}`;~3-&sjSifU8d+uqUwF7-PS#rCB}o z;oX(`;ag6nT@OgBy)8f##6vR$g>)HpvbTRR2L9^z%IZJX+)v_z{~eJ&$m(yPS!)-7 zGK$4C5tywaj?GQ30qHmS|JGkcA%5dWsQz#^HNpzMZkERA4nN97*}8)-L}xxF`(n$T z(E9n|6WEJ<`;wPUHE~l&;W!#9aFz>81D}4+qLpjqEdBRXA#mrAU&!0%M$H_ku{oy3 zC6@%vjG10JlXz|fYHl*J)s8_L6DrI7 z_ej{_A?5)jUaO5KK}9>p^%6%1ex_Dt@Q_MCIL^Dzy-6EfeYYAWkJI;niQk@;^^MZo z&Np5!%#)$Pv=hWP%xddw#>pNA(z&&#s4!mHi4QCCMh+;PwW=79{UGY4^vnvki+lSc z^7%+LIFiMakvvTMqlgMoPaVB?*ywj{7kV*GFUZ8i*8Xrb_?phsof7why6-lL0zW)3 zQ&SJn zIG%16Cx-CiGh{l#>x!n0A8X^t3y)V(bJqRowggMFD?OJhhr+34@he`oV_wrbP|UUB zC!PuQCYOWrD7EI^`&C;5S9>h226m8Y&e*Dm2sn&_GF8K-MkG^@YR|%j`z7wFIt>TV zxWJ%Ee&Cz`w0FW8J6DFT~H78+w9y z>*Y)E(_d~#d+7MsxZ2t3!+;`2{RKi$-G4Vf<*&NYzwT21E4Qzho^{S^R>qBN^0NsL z@yYai(e4AoB4|tGq(adOR0qdjPVARw^SY_D+GH8F-MUn`2gD7-RuueH4yuub+)zjtd8ecD=wh@tJuD*SuE4C$KC}q77#-GqG$uE z?q3vb=q>0U5N*X@5bbh+Sox<{$W*MKKtoRdBk%J368?T0!E`{nT`x7ih*gXN0#8yT z?;nV5z#;gHv5k+W`V(UtdZFV@K@No=C3w3o+Rk~R-7(PE!vz@t?rl#`D~CnkP4|1yAQJ7^gS>G5##m4rSO{N~9(&gZf&(FFx`?40j5|FXJ*2}eqou=b=l5-8|IK$1bqYOrNCHWxIE~Ury=Zw6p;BYDSiaR zxc^r^0sqqnRIeIg7v*&J7F6nWD(Jjs_Ydfi|GZ~U751*Qn0sQXufuD+sluu+$h_)B zpx9ULD{Rg)@%nlKRBL0*)>CD{nhqo zqO>^xJ^Q5r5Y~V7mcjBX?A?S8&jPJsK`P@Xh`PjKCj%ckG!31vgSJNh)waKYyGI~4 zct`Ii=n9ay#dOd$0@KaMZbg7N?;3@Ozy69oGFhj{QvJO($p>?@*V#X_I4xv<1dgN?&MshZA9V$q|6fojkl&{%i8(EQ;F7^ zt#L^I|A7Pjz4`dRdmkqmH89?&UXmT(9(h?LL$tuOSQ^QutRZP%nwNFITX?nRKaD5( z7gW;tyKKjmf3*KBK|V}iXP9VoOGf(@?&ER}nU5gDpegINiXHr1VwEaytYsGbCrBgX zX@dW4>ywKCIz`0luR;)0QUGvQ;oIJ6GEfLYBpTZP?bort3PEJe9|%Dh0ajj4_KcJ@ zXbK;;Y8%-M%bhimDi)1x+&IZ1a(Zy-vDQh9x1=V5W&O77?fuS9Wd(KpNN6~veA@_k z2kSphZ)%0=Luz88C`MgHw8w6~G^+ZzQI%ZA;rLhYhj;haHT?R+$TwMnU)K=%>jHop z5`SDnHir!kJ(HKKydZ^f7%1Vdr4_*T|1ngof4ZUnQw(HsE%q3BI4+yLMhkC@&`%2B<)ka6(J_6&NnwGLk0u^j4|*o$Y{|A9zzH@ogy z`LaYgr+dDkZpFz1SGOW6QOstns@S`P{J8-GkRtt4t(iYzgKGa}*q}A0+l^L5HhNxW zL5(~&F@bt^imWeAZ>`ald92~b58pq|o|nrRJM`l0T)50|*}?=(hBhh|+tOBj5;RtP z;O_w5*LeyrJ{57ERTHAhW3vk17%=UnG7c2O*EoNFP4b5Ksew-bia+VaCyh ztJHCCI8W!pSTF}xj9D)i!S@Z`>511rTDjh>i%ai)0B9M59Z}Fr-0GoofHDNE^A;G+ zpY34Ht;(L8ilQzy=Lj(wz6*3|PkkRNiy&;u1Vs!fsJ|XlcQZT2#^8Yoq!~A)WiTB} zO0GuX-*vwsJqC(0;|$(7*BOnZ@34=Hp5XP&=OAvc({gqJPKHz;zyT-6?F_&a0DW?2 z(XgEhrx_83d3{1tmAyKr_u^}*te-)n~Ga}Qk+lp$U-Y1PBHHK^1||2#4Xb!G}YG(RJqFyPNtpPd7gsdk*lOa z86P5RXKK&qbLhH~yhv>f(n=`Md+mr|1gdmb=sThsQ6)W9A>uc%VmGA?^{h;ro8=s9 z6hz@#d(9=4!b96LN3`qs>4+Q32Sq(Yn2fa|lN-Kk){hqKlI!)K)ifcaBc(-Zhg~?k zs)kf^7wM*om?Sl>!k2F_)8FvL4KDyJ(gk zGFl+t8-+PLuOPX_sVN;p9 zxLlu3%j8&TPJ|At+X}wOlWYFd-O}H|L;m6G|EaF)^;V*(YJFF_X?0O3n)}$5@;xJ2 z@{^t)H=8D#959yZA``klLAJHZJeOM~s3%xR+Sj2wo5{n2yjn%s4)uN?szP=%a^%Vn zLc&U9(G+v|=;Z#w}LRS3-^6YAQsRZlad5PuJY=S8OD(23D(a*K@@r~CmYiNl`{Yk znu{o1b2ZgEmy?u1m70fs6;y`a^mpeD-oRMqx1j}*JdxDp6V0^qX7f)#-r;0eBNU(C zlUV1i;7)In5B2Inl16Bp4iRZq^gz8$y-7GhvC9X0eN?aU>)2_DGAI5jLVC|+6COlA zd7bN~B06IS<>B1o_XNz7#h68!5ar?d=nW}rz#K9Ua5sf4Wn2;@GhJfMuu3Hk;q|6p z3Pj&wTg;tZm%;ohysO*3WXZ2m7jZ|o@j^xP10AYybw1&qxTkw4fzM?U{$UxW2`zFq%J^T&(%_j=*iwC6C z&~FBlGWQXfOE06TK8r<#>hzV}oZ#-xgJ$=qEqwaR>FTDrjiXpfAmc2v9uLk)oxgb1 z&~)2iOj2c`4hE}|NV~hMzp7rYUfazdBVL&9b(kZuuY9L-W+UAOwbrVeE`%X+2`}cX z?jOQ!f8B9Uh7gpCrtCJ@Wp;$` zMmH+F@fak51{cC~zU7=uE1nUi*X*WT9AoQ4U4Me^)*_CH)Gvwj5-}33(3{mvxI@Jr z<|efPo%iW|gQu|8*>2P`I^+-zT=$+1ua&{r0{Heqz5ZzFVAf@N=&>A*X9GMi^3$Mi zxt<^1hF5Sb>R@~7W8}ccu4#6M2dk8ks7DKn{tt7s>fSD!46bYcxpcak(YNh41=xYsRuU6P6~;ilH(Cif$M=PKxSOYQny`M7D4%&GOG{JMEnF5 zKTa1}j&Q-f3I;PWV_KG`?+%j&-yQu@i~DTDg1szOqDYzZ1?dYpDX|SThjbC6@5)X+ z@G`%F&8`mdt9bBo$(nb+T}n+O&LC$0A;DYzvJdG~-8W397nlg4tyBwJ+!VP6tKrTAED?Ba zVh@jLzMkoD?l-?ODXmijW(EcK{)}MxuYBbEice!Jr4hQ zYKCLH6PYr6+f=#8ENO2wUZ!2%%dgz=81evVyhI3Y=dpKJT9eXGu4SbyouXuKI4SK~ z99Zz&Wgg;4)k{`&-ZKL3%#mv)`Vm*;es2T*M4`&#dn$8Mt;uV4cIq$H3X?xH>t+bL zPj|d_m5OE_dm%7CBQ4$y76BmRo0iox{q3$|g|`ilkoC78S}>^Y1v`71fotq{VogI$ z%@TC`nkU* zGeQ3VGlBjN%k(GRlhR;*&L@9-O>3MCbQM-HXgBJO(pMN!@={dwmMJeH+Mo)2LvOE7 zFJV)fZXD9WdBug{ddZ98D8tgd$7J5=jpH7!1YCP}>LV`D4_~U*RyQf!DY-jTL2FSH zUSv!5erMZ~%Y*JiSZ;ru-I;l7Gcz1b8G3C-lT*2hfJ!pBz%^8I{3dM4)EhP5BEA-~ z2JY*NzgoLGFNW7dtAs=5I8jlPXELoQ%3X^8bg;I1tHV{$=v>#L17S>9)t~xI^}gRw zaqFd6hnMv_XLmKkZCa@z+MX@Ri2a%uen_L1Ic)lVXzMfl0UD_XmSNc=!?QrMAa4Cj zvv}R2wzol6iOm$Y;Wd0ED==Xo&Q!%$Gc0(0#D+Yx8+Y^#;KkJRHVI6OUy_ z(_62fezah_H5_&bCH9C+qMSficyT5VJ{R8@JQFO-jJc^G*DX|y_vK#=3U2p6AmPD{ z6vajxUMVKZ&JRKyAvYZf7k^aLAI{Kqd&KrwnA&_m! z`!*#rEHhxksz1K^MrYWopuR<&$`cr027$6kwn7mHf68QU)M$Scu^xT1QGEj& z^!%r_Vdw6xks=#YJ~U+#vPg!+V^n<4I88=Awt^m_2@!l?;#E4MNFP4oCryLwhivH}kYjiDu#fMOI;GLf#*{)( z?lf53Zh$1q*_Sn(Z?TM$FUie3z;n@YY+0lFqH{bgS{ooQT=i%^Xg^cS6qdMGA`IbK z+2KKkhDOv!H`XoV4ADr5PjW2IGx$74M+d9rW!lh^EBwedSZ)#ss(qn+gYZ7b+lT}^ zvN!yJkAH#!_i+&tK0_v%jg?C1wMZYx;?dZ}{Vz5(eOEu$LUa{bJY`SgDAe9OJpB}9 z#1LBID}!|XFi)fy;Q%pZsSDjyr%b19eiRFaHE7e!Bd|?6b_6L{D@(nX>fjp`L^S8ZV)l zRh=}Y*f!eX_+wz7z4@T1edka<`*rhz*EGBQ z@l>s>4UdzMCfvf@ENeR=_Wea12|aOn_`#r~<5Ke$KfbY}jq2IkW}^#L6IE^mV%4u+ zel#X4PGXC~f8-t5C8xOHa1nPdbA|zAGzzqodm~71pB)TCZY7eKw+%hjT;O`_T3>5q z4bV>O70!$H1EbQ^$wl7_RikM=d}htHy`fdbj7H9kjty=iM?0yLr0968q$D>`S@IeT zJ75%tDLj?tY*~Cxf%yJX@Z29 zYr#?S!O_RWJeD=d2Rfeol39hFtQ*lE-vGaJi-Ny)X@f!WgH1>H@gP0AT9S&QE(?+EZipWe8)yx<%F zVkpK;B88GU-nq!!T-Q+a#>;Ufvx^hq`c@zJ$X|ge!a3br3)_t5c9S9u+n=@SOqW8X z>YlB=cQGNi7I;=5N$IRKsT+1dyzQsJ97FOgz*jJN79A3P#4Tz#;v=@WrJ{V4relJP zJN@w@^md#+Z~qSvN=k4?@q&+`#L`BZdF1E^Z@g;#!BppBNvUE&UxoZ8f{*4bB5X~F z+r85b%N8z=)(y2r&vcGFF4(xL3x6cDlA6+~jq+r}i2+F>6Oxt&G*4vF9TzbMp)PbO zpCFI2Ada+g4On~iQhwzI@QP!OujIBD1I6;0dxRhR7M47u-B35=i@YuK-0-YWvun@u z1EHrR6w2KiT^uy)@-CccPIV?C7IbmK$O9EdvSAT}+!?Jte5N@D$I(=`+;Ny+fZ=ri z&N}S=ge2g>ZS!NOojfwZf8x!0%OYTW#b$@5dGXWj>M?q}DMe${HFqqrWE{5o;>(Jt5T;(EBsUV_pNwG537G^bgJ<;Cb#VR zy0F11mC#RIjs>q&L0S_>fGt!lZhxb-FbdBr8I|VHo@mN8X6X6pz1-!D=K^71XER?) z2W{KCS6rD7Bc*%?UQa)yF8M-d`$o5Lc{}o4YXlCV%duJ)XZ%tm5N=J^H^ifOwTV{= z^@Oqz=7xP8IGQ7-%$%p%-C3p=Pe%?Psi)KD0NuV#I3GMXckSxKkB;jPe01#J^-+Xp75YAHQm)Y&i*3c@Ty21of<>KsQ5&PRJZg_7N1eOhL0-_PYuK(7 zzhRSYp=C+$<=64Px!CVBn2c8f>7Vjh$9JlB8-H3efy?xWbA5w3?0G1wE+evn_u_u` zCgJ00F01oye)ZJomyl?-O4E-B%O-xq#Adwo{v@vX{s<_(SHZQ$n4Svldu{nbyPxh= z*G*a{r$CH6ht7+E^7TC9j$xZz90Cfru&8|NDXuz=nV+DdKU@!*2LFm01f~{C!04kZ zEsiFqZ5g*Lk74P06Mi%1X`#oIG98fS?cV4zK7)`Kr)Slfb`CN~sMl1$apfGyI;c6= z9z>A%1r$G**K&7%on!HuA`xlAaqiwmn;Umsx3M~o!g8JFgFjSKH-|z%PxrorL@HJ5 z5SigT#&lG!HkNr(=u>l#yZN2z2c8}#)9UPw@YqgORUpYu-;)CdEJsz>su7cWJh5yw zK4k%n#d}p3jV~gO*YGKFkh~#tDCSB)}y23#r6Cz2q zI7Gk}{$)eMkVg8#KQT6hp6Znmz02T((&ar~j1$DdIyI=eU!1pVR#_NdKe#-%?f5<$ zGydy4&t3r7!zG}+#@2H*;VOex7nWeSc-cVsx-e5sf4&@Fdw87Ds8o}q3F5sZeDiJGl;RuWXxIaN7IT&DadEWfwN9F`6#qp*ozlzq-1u$ak7 zVrM6xPRPEf?rCV(@C(fiFOsCp0Vq!fWVz|G&BQo^Kczpm9?rJ3&UeqyXk!bkOCA2Zzq3bTre9u+j>LwmRZG65_+`jQ%4H7Y5QV?AmssBd^GU@Mpsp0z6I z8ON9x=Xgj>zC$WIDk++io0L86n?693WPU({(qGpbwDSR#IigJ$iHi>V zbO~4pA|7#?4iyb>Q9w;^30|n6y{&ghj%y*-)IUh6&r{cOr98F_q`3fNyELN*$^4VL zy1G#+qZ+VHsdiC4*%}*#ndw9NR}K2uTONemDmz2|uFk%%|$5 z%-g1Pn<%mkKYmW)=1}=WE^)VqYB%FU#F7*#`A^V*OkFHi)ps4~_n^1lt!QDue);3* zwyVXtN=5^h5$(EUoV)j%;t+4DDK@6p%)j5%A-_Z?m%nQdx3P&!61Bv%gzRmhw*pighGkusWojCXeAfc+>y~4Ztr%q7cs$DfP%Le4wjyk9KXd) zjB1&kP`+hSnOaeFjqRj+t=WbhK6Fq!-87%KQ2fU1x}JP^XS#Su8wT4K@hAZk)4cGd z7x#~{fS*C7|DkZOEi}>%SJP+>uQ6zSNP)c%{8v(%eqB? z@Il&Vl!3V(U=>wSrJ8f$WI=(hRl$Ywo|RB3-_7{FsrmQm2wz|+As7R|N*Ng`0as_h zBtR$1T*9jHOkz8Ze}cZ{Hbh#roteF7tya~X+_?dM1Luq8kGBgyFM{i`aZ8utwL>jF?R~{vp>Q>Tc!qeLK%tU0WcaD?dF*RK2YqZU# z$l)4?bY14$CPKvz_=vpiBKETmnE8t#;gl9}Ru9Ng5|$m)ROJ@pZ7fnnWET?QJLo*h z*yviEL20m|%S0-P?~rLcGqVw1GA&#+`9Nouz&VZ(2BRn8Hz|f*Z@fmCb9{uFEl=@` z2P?D6$NvO9>$B^s;omV~EMMH=Gz}Z!emeXtAwH*{kRkqc_=$S2f@69}80dJezg^!Ii4DUQnzdb3ePGZf-Of}&Z)asdRpJ$Kce8*#3Z*|tY!`QfIkM2Hv=8(Xw2(RUSb|(7 zdGS})!o*20Lgy)=TUcNjT2^>{jvfPDG$WW%cFeR!O&dRKNlIIJBZVWzu9#0fU>Mjc z&QOwGVnZDDUD%URW%cVOevq{0U7S3j|)tvY*WDM zFkotugK<TENa5%X*?^xfP&9#+bZtS5}ZOap(1W`a$)zG zUVSFey;8iA3H8E$$RHFp8mf^!J~_7J)YZd%HptiD>+9!#rVDEuI^~e22MR2^$ee*- zERfr(W5xD%7s4o*!KkEM{?}n;*Ze0NU|V`WbnNW=h1bM|*@0iTeTN>8QppdyTyj$j z{Fqh*z2HwP#DhKsKe^ZeXprg1?I!4>OY-NMfDz??DyZ-e*F^vRxIc%Qx{-gThWY*?5bjGsPu@31E)|b&|gV3UK$Yf9K>horF|zOYL&JY+zzJxtmnt5j?5% zw&L+X^v5eOmdWZHO|~1kbxw+?yq7xEGrc)#I$!$0lasU)1;R%y?5QZJYvw_5G;!9U z1~*rfw!xp1r>6>|J`S$G?keYn&|rfBenks?=- zkSK^~k=^u$>k?Cx#}{y!l&HktU;STfQ=I%TS2?6m1+9WhrNgR7*73*F*MpJ>&OMhk z_ot&kT~KgM_YZX1=TtqZ1qTYi-et4s;R-AFjqZyyET6u|}b5L#2C?9B)#ZGm7A z*5%6oD^2G=lJoxudHuLW73J()sq+(+vjh56&nj$Xmk^1Bsl zfiMc?TlWPM8$(y!JP9nNl#2^Wnu>~&zt_mp2wz=ycUP@>sC2?ox=O;GYFyJiuKhzO zvPOuRdh~1VBidb)<~|dKkdUe!89Yu`9+~%1*3Pt<>e| z1HhJNH~Kg@g`P=$MK;|7i4zgNF6$B}kHxvaEw3(?SFSs}Z@_zHNOJssY5jp|cmal| z^^h`zPxM^4W3&1Cc!{Xw6^jTj*CI^?fjl_cPN(J6P(^3I=>KgzA>b zq&mz-C9O)H(8=5y0Kc|K0b>^ft1dN@S|%ae*P(OL3i zD@I@mqoh*(g$Jdwz!#L^flYdn#>{0e?X&sH;JW(Ilw} zrizS+5*^z`sTXALxxOqiNS-n|vrSe_|3WLkK1Lu= z{hQFVC*#Nw9+DB&)RQ(T>3LNQ>T;Ca`pNO+{ZuCMlTohX-a@he= zGvKE$ouzTYM+XhUh&~&)cS#c;{AOQG*Px!@&ediI7(v@QNfeu%M~ZllhuUB?>j?tj z`ryjXU@hTt>}dR8`kW7OwsH&enK@4S#W$FVsJ|b_j7QYRyBV--e^={^xfKh#2}|5BHd)AFR&#}lVA$}WzTHSg6?Fi83r&Yc3nmQ ze&?sa-0LFf!u{Xosvo>~cVWW?uFyI78uoEB_2yJgX9kj+NqdYPks?3FUKzG)b`-}< zZ!e|1upG=9%(2DKQYh49kMxL>%;}GAb z{E_Va8x^lyX4~+la<6oRN^fz7*Rt zLf}G|KTSg?2fDBkwhL7Sd{ z!x)Qco{A(cIrPv@f+4vZPMgO}G=^*KH?ve%R0~^=ouvuxF%N>I@QvTdZs_?~Eivfn zVB8mp-JjI?N*`#9m5jY#zT~_v*}|EBA5fg7ZnR2~HOx6c- zEzy^zb0p3~a-)(uu=kGCK6e&!AS}cT2spPvG53$BvT93J6d?CCoKl;gpyZ1)s9Dkt zMEpgl&tq^g<}Mw#j51oJ1X}D7w$J$_Lo4-JLesN2g-?XyQG8%!$@|C*f-P~K)leAN z@G`sdx~qh$Ci-=|BG$0ei0UFAEH(!=8E zsk*N7?aoV_mz>HNsHbGSvQwO`Xok52H>6Vq?|_Of<#Sh_p~n0mP^3jxU@W;ZO z+&;gKlY3ULRq4#qSlYfHLQ`Bl3f(ek-X>Rq8 z$luLKFyuH%+zy+;(ES9lH4kB%Ie;l>aEa~S<@jmbG5iGaNIksy&X^D}sVe1UrOkw1 zVv&Pyz8vEz_agH$?2XsH81+)BjykFJN%`i49+njIRs@m9Ral=>Q;>fHF&o?2sl!h1 z^u{rjD3wSTkk~MoX?}A_@ow;?Zs;9S2V}8d7N_bi)3oZB0YbsKCVs|)4er>F@-u3n9d{uT^lY3>H;x@1`NJlRKdb@ zThS4Wg5}A_NEH>2l4pF9#pdrntl7rDO~+)@MxI>ow&h;dENwG=H+A^YII#~ut(}EG z9DFz^sP8VmlhL*pL3^BqydzwbSYjj#f$36toOIUSa|>{u%!8K*woQ$Ke}b4+5k?Z> zV7=k)YSCMt=B(cZl0hW>)wZp0Bj}ywrL=vSmRr61R?a9IxpO_@JH1ZAN_H=FiuKoP z3>$lxzL!2797@F{ajp?I_WArG;h18?Lq=;tD4G&%N;n}bCd?1EgD3kgw|fo{EEHuR znU_{2(|!Gy8!46maH#YhbcFc+5F}T%MD3edF)7weK5CbT!2GiBtZv9hY}iL- zDVl&CTe-yTH8Le;5jCto`yoO7)2^rSa@kNXRhgOB%r{BbLhE!Yv}-d$z-%*}+9}{o zgWpK8jEg?WyL8ecG2#9TPE2AJM(^v!OQcMderM&g2|XrD_ox+jvfdoI(~lJ-j^ki+ zHB>?la{dNpO}nl#p>wUhl(u(b8RDuGvKt;=_j?P)9oHDJ1&~6G`H8Mlrn%7rR>ESQysEj}$h1i1=lpeox9 zO&b6YRq`#sJoYm4mSnvE86%V%rH2<($Ftcz&eZn{}*x9e@slJ z`kMH0MJAQg)%+fgYESvSC?8d1#!cf5Kav1pcnu_OwpZHtTmwJ9DHEaf97t5Ps*4G) zAW+F34J}?x)rj!LV2Jc$EB6>{ko3`J#*|3F^<0~8nmR;5Q3Cg8bRWm{&WhdQ@paS! zLNX9xkyXL>`AY7Rey0zM0qGxRAM2KlWRaQ8cG%~AagG?FaSJQ5C@`=U!TP54JIh}# zi&1DUwbyeOmSd8Ywn6fGObu z+s}9<)9>MY-?iiBrGgAJI*}d+IoF4@&Ej1!9lj)xTB3NnXf*VmN>ulxzCYoyiuFa; zcQKq2t67ivb}ZLqsmmT-3z?yjNDt2{{p}rqWcVh0ma??@hK(lK%f>X{NK2Wom>;#x zcD}YA7hvQN-j>KjI$!X8J05)&lSdCVeZikGZ){^|KFN&G8T@*++vI5mH+{i~MZUe0%8?)nC#7<9|_owtu$$E=!Uw8toCydPEuh zfGnG+Ysc*~v48rguujMP;!^Oav__uycK)Vzm@9d5J-pj}VvPf})OylPin61X{=(e| zztzW?0JnVICdL|fWpBg8f?P+`5fGItUHy+tX8%{m{DaBv--+0)wps??`mqci;Oumj zat=0Mt9sn#j$ZctY{DeOShw1w;r}&2fb_YkS>c7mgixBFFSwQVeKj~RspPwb{@L)g z=*SX#Nqm-pX#Q+QjlG7cGFKCEh^i#ej2&@w9N%qEfPR@%-Sl_ zm6=c9MBj)XnB)ZklA*^XK*g5JpP)3)2joieK^ndQ3goTN9p}ZM3HkO`^_m$PErt-G zD_=3(%OPKz1xJ(h;%->EhI{s0t&pV6xVdw2bJB~rpV<1{$9JXrXOmyn(?N}+F41ID z%5P|@6)gdMue)&50x$8nr86Vf^$9)=KqTV0SvwHdG z8z7~5Qfm1O!EJo%pCGq7rneB%3l_b5wYN)J4itTsk6;R;b_2Qb4pw)FSK4niVPIlo z%?w*!A`Om37#U5O>SxFMgXPzYjr;nTWY)gvPr)1tY@-NPEJRiH3 zUc;Pnux_wQ;LXUvYv z?0otOs`zwFKU+qDNBpFJ$3SJw@DB}FLRS>jaXp?I&?-yvW=hm?0pgS=ab9t5lT_}D zOvK#Vo6U?Pk3y+ITvXG_6i@zicdrO8GurwlapbO-`3OTd*0aMm5 z(5C<*>K>5xZqn)w!FmFB$R|wlJ#_5@^rZVUDJS4*vbE{F*gigCaOT>=*X$^t-BN9un*{r~fh zzdzIO`}Di*{r*1v?jwHp<-fOQw(b&H-HX7pQDiJz&bg%#uS24%22J?jx zY<)#G_yR>WQP8i5Lsq>%hkSWJVVQd%lCK*0cQWNlx4fPihGUX9aU{g{GpqdzLCYY4 zcZUoE*3g$*&_j`V=mI-1@uSOXVcNe3thrCC1G>^-4Sbo)kP;w{od$G({t5FJ_R-r? z4%p!7y$jqL0Icdd{9G0gLLD;#FMSL-!Cp0jqU&YKju2;b4hR(4G*EJ4QcfP^37~c3&0`N&YTnXFph)+SeWkzy!FxKacVuZ! zqvedMTQ=&e2NLpN9XA2LWNOGN4HmbwLA^0ywNos6x~?*nL_AiOrWvqf#6If6PC?f@ z|Df;SLc711{{#VrInDLtWUo1=-$l;{H!=w~8Xo5yE7od$BV|z*z0z_X<~ZhB8rAH2 znZtisxww6}&pvc{SXI5M>}sx};H7uLGar(1$oCVp{ILrdn@dyL{J4kz2Xk*7)b{`H zdxk=h;_g!1DehK^7neY=Qc95^#e-WZ?giT5#U)VO-JwWvx8Uvs{cg@ZyL-=X_nf&q zyL0dCU&$mhnfHA1me>3BdOaV{M++O_)iD2?#@ERsiLFKPxG``%ls)hmaaRYb8iy!| z&Sm^j3wd+3Xl=*mh`{Kx?_sD@)_tGamIzH_2|#lg420G zPiDE3s3(bX%rB1K9%IBU?B;gm?g>{6%Wtq7i=Vjc80gt2N`sP<(Wm%LpiSXk6vR$>b^UJsJ@=g=#zHaD$v z`kpoggUJ)Lo8Y;<}%`8?#pvlqE`Of-}-KS1HhR7|3^>?i||Z%tM% zV(YIApH!(TiV*lChkE2igRK5I9M-pX)J&DHUfdsGn;3QS30Dbqnmep>B^9%Uqu_IncIQg?^+rh#}{mtvMc^rtrd9A{^#EA z-t!3Db^d~}PrQ z@@d)gHxeb8q!48D%}B4%+evBWJxP|2eT}`1_m0^*D*pENQ`{G^ zJ+3O}uxuPD$2C-@B{n-0J1z6CmfdTwL5wxKG3l-!^>h5Xsxo?u@;JHQLof%K z+K}M9S7$2&Ut78Cewo@k7C)tbQC;NYK4N?A($q-Vxm(~)syR2267X;QG>ZQPh9UoN z%tugmeg_VMEs(MYuW~;Xgc*HoLH&&T!)4)N zDmcOkAZdz|f}_l-;7VabDMiQc7V!9~+2n#1dnL(V6SW^|(RWI_Pq^P)8G2O=kFpd{ zb#|d@{*C5gH`s+SS?p&X4VnrdN3f~SFxeJF8uME5!XgRZ7ICV`ayVVjE3Rip--lfn z-BiZIcwonCfABwjtyh*qA|F(w6^Nu`y#n~oG_qqJIi4a*Oot~K45O|}@1of$@Z?au zhXw&Ju=>S%hkTp8v`#qrRyA(Gr&9Hj@zIOnp~*_oT|U%yg7eYtOPnu0as(-#-or79 zKr;xpjd((c)<#;C`%}Q+Vrrb-2R$Lz7dY?e8wY5D4L%^e&)qa9k#pwilxm(ena=9# zc9M0xlx6F$VV8MXT9iH?#qe+s6ALucy|nwI=C-T)i?|Of|H$$RYzXrXUXj;3U=K=L8g34MZb_lVEo%Xg z5V$n~XMZ7T&R~x|^3TltF-DHM?Nk4(GR7xXUhCY|BREXqK4vM?*Qwr>(6WdsxiWDZ;J1>sQueMy);yp zbQ+k>_KL`8_}kDCwyW=ld*FmQ>15HwBU}DHkdJ!Y223L$^e%Z>msJobn+|9 z-5#Q1JQ*Hr72I;UsGOT?MZ}-k<5SpcRM?63XwHhnE~VYN2|P`zY@6gP3wF`~U$b?^ zM^g1KNqhAViDVq%l+MkOQw%UfECU8)^7WaI7gCS?J(L~KWc#3LQGS%{GoO8<(XoDWXxiHo# zAId&Sdn7wRRsKIzAO8=Y*Z=od$~?xPR~*G{*u9c^8?2Q$WhMU5-XA|rC#MO6@B#Sp3s+4%t_FH~UdlD1KU(qK|(=nP~HrGfb zA*`(oPOekZ+T#$l_QbMy>%)~bC9Fkwz__?wD=o3w?Z&}{-$M4 zL4W3JW_J{O{(o2PCH9bfD8h}yZ~Kf0zy+>DOVBEA-A{^7?zo>NZBtiB? z{O>5^e|aVSS!n+cU{N9tX1C=XxNysbetdT+NG0PEC-cldt_GMwR`>s13s~)O_@t*% zGC78E+! zSIU(=bKRz=I(_uFc0^q0u&fbg=;G6D&DZ}v!0-)TU|jPnveJ#&u74TXe=^$lHZQ^* z3{8;k=&hcFTY~^E>7c9pMUyC9b+`BEPO6M~sS5?xe=gW*zb8U}O91KNYY|jl!L?mH z1E)^gn-t__^cF>GR9Z?zQAstT+mn9%<4e5Czuk0bNvlOx|L~uh6K||VKl7jSMIQ?x zQYjdq@2kDNUk4PnDZE9*lU2ceJ8-dq#ysD5^d=H#Yi`~=r}N*pNgpF>iX1t&o|bOu z&j?kY(gV=R{sCO7rRmMcbn3iC|6G2)sdNf>JcJg22$Ey+PY=e_>V8k}Y;XuY8Go5S z@C`6~XS2fbYYM0nU#~PU9b@3K$-m0^<($TQhe@|=1KHK}bd(a=eO3H?V?=0w@Z<9J z=WFpCTx*|bPvjb*N?kIlYx>Yq&wm7d+su$B4AFSnH4vtXhGs0?{WQ6bZMw)AFNCYG z%mO4~zit+RdFx5dr^j$63BP)+DvJ$YAjQXHclBa z8EF598bhlIb&itslYOeqvk8v|=`wNs{Fb3i(3Iwb{$rG`tEWLAW5P_A)Z#L}8)d%4 zG{bt27;@bz)vRnGk4hMDTbN z^f2{uGf$#+TR-?ThSd?cK$M z#igv@$c-gv>giM|>giSq>HJ2)cPzWRL;rB3_dMsM^zIz~bYMAkOtH08w5{U4#Pkn< zw<>UrG5gdn{Na?Z_lN0QrFYTsFxf9m;-xmKRk9aH*(pqRWE!)4gMWS6($vQy-! zY;}ya@>^~Du@5882S>=BJ-#pQua@n{kqvXS~-z zoJ9TNW1T;pl8LbMN~hn}kmB=8*%b;(wBVugab9WX-o>r^j;~IS@;B-=b`C{Hl`mT@ z34d3Oa&F9L_SJ8N0K`Zq7Z3v2JU%>*!j7663L~}^EGh87+T0IIMkL)qa-H!XXznvs zI?nEw*MzUL^85={26I_c|Mb5rm2greoJf2+ZmH^b=@YK*$leV^yf`@CzN2g>3e~P{ zn|54MX`6EQQ@Z)GGD`g8M+hx}GShL4r3xkBQxJcUK!qQ@YnoS$sV$XK^TjyxezECF zE3mlSwS@8_-BLbGx0+#{{`=OPL4mEvz3JsjUEk>OQ>Ov+V!tbKMs+cV9kWybVxY6U zl>`54A|@nmIgI=asOb$dvGFjKN+2qg;g{Z&EzO(HEuuxvJ|7&^a z&Z`tVL7+Sd=R<-#Mpf6L@iY09gHSd(0y?KrU0>6HZQIRdn<|8s_i00pw6*!2=OU+_ zk7Mt>yGyarcEjRH#?~ccBlBfaXL6FyrO_Eg;$Zc8=Z25$FxthP;Qh1N&$ZtKt^V1l zfUNJ*MzCM3=OWI+JjBXrkgAR>d3O@{sD9)RC9PYd;KXGP3itWk-f~iI zH;jp`5{(FxApw#|mI;HT%cW_Y(_}HX)U*n!yX-13g5NshVbqk_v zMgO!tq`U8P+s3h|4kA8}dv>pcH{0zdCHC!80b%YE%~zaioTugWD{-_?t9Lc^6VI>h zL7Hi3o>2E@2hq>7q)S92I}&6DG`t2tvHmakptyc1H8fjp!8{EbE*HfFuD5y z0)BPZP*<$!Xs?gE)N2Z6_18XkYx_<+#D156^O&mw_###kKvSZHYWzB5nKX5sGER`~ zbnC7Wo>j+x_EqiM;+)Zpqfo!Ngnw&s6-q`5aNb%`CgK1?J{Tw^zOg4ISVSu^d9Z0B z>}hNHLpcJ4C8}aZuYvjLDBGv-)R)-#XQdIH(B##VRyQB!OPG1@pkdOYmY#q#SO zUS*7B!>7++sN|t1{%2wJ5sG|6)qvqDV#eQHdOJ+;v##4>Xe&q&iE5~k?V+Qb5PFi; zY_FcUS_1btWbYF!DkZt*$-bf7ZIgGibKazhbOscw=v`XyL~O z;e?}j3_ zqDRu&;f99h2+l9w6vA#^DStMhu`$IC$E}i^ZIW7(Jn*`zju21iBywU2`Mx;_{rb>L zgOU;AO`1}M@EL<|dIZ%QR6UrdyWdWN7@|xPm_xVi$Z;f|*4<))l-$e=f94JpEvtJ8 zZ_noXGkyh^wWW9Cy=7N4(8+@6B+rSFrh9Bqo_JK1;S(ReS2TmYqQxi?r8L#M$Y5A*(2 z6ZLoBzze6JOn1DyF`V266%F7;0QWMIH_F84ND1+@kR!Vm!6ka-=SYFa>UVV3xK#t3 zDkqrbWgR%SI}d$^to?kyjg1Ce>}*LeVcU>3_lUfcj+40^n$X4=GKU*;rn3V`-0C8h zF!d5kLnbfD;+?UL63*9Cr9C+*E9py>XX+>owdd=~O4+Gnve`}gm7@>2K`s|gxR;`S zZj*(o7eWnl7ZzK(0T<5B2qp&yhgO9R4R)}h=VDY_t)Re4cXf$t=uXcI!J*yNQa|Zf z#xt308r$NCDbCUu09s|xOHh1IgUG!`TsC-9!*Iosc!cPe33+1RSCKuHbsQX&)8tX* zTnNbQ<%e(d1P2Xd38{>;?)CFak!&oMzysBd@a;Z3){Jx$N=2cRd&aL4{%KKCIu)#S z&a~I^^xdnPH#tdz@Z7&CBe|9A`kb6ffrl|b|YiOq+&|>aq-t;yPQbIR=PHkEnhY73g zv9jYCO{x9J-0XUJ$-3-hj;DXNY{T&3#Qyid`YAe?*!FLPA;ne}<`=0(Ec(v27pSRA zQ_1h+yBhfIy{KXWc;?6sHie>q7e~+5Z~K&F#)D&z@8*v|bhT z{Yen1bfY2H>s-|n`06F8(q;B+M5&93^To$-{E?AC;YN6_&SUbt;Xz8u+#(J66OZG3 zqf1MtyEHbWC4qTH_8=syou{+jtR2+*{xf4fDLe3`TEZJ8{wNfRISYI#9w{AId!l2} zVA22sw3{V($?DsyKIK38#e)uUPjastL{gt$pU2*$mnqVYhJ}?2C|e7hL;(}p&8E)~ z^MFAHnyfZ98A5V%kp1EbtaLFKhsO!T4*!Tx-OHcrGO+Sd{}#RS0LttWb8e>Sh=TgI6r3)hgdf zImni1?6?ujq=QH=!!Be0)Zi$yXa{=_-ZoV+|3GIjaEgf}Z}#S{n^HC;Z5@RJN%pjR%L*1(l(#^MKQ@gmf$rLnS4PPVIYXW0r}z-j z?y19ewm1viy$fd1y+p40-gn>|NF0gd`lsXpS8(BEt5~yPUCDu!etVO@V(19TCQp>y zs}|3GSa(os@_=cUT|)rXrH6X#+a9B7_okD#PdOlO?&=f@LoRM7RFr-oCBR0EBo%sR za)G?)Lp2KaPYVM-OUKq2IS@X5?=IvC{dLsOe;l=e#Jb^f>7HG!Eov)!foZRg3{#zg z6zqR(%752Pzu&kI?(7`%eK$#k%P_xq;PX|0xaHW99qO>lyrX?MUbu{N_R@NvjxbwM zKW?e_e#E5wR8pQ1MC$3qyPgPeAhVi?v5C=Jb8&wQK4hfF-?Ol9Bx^|i!OJF)$Q_X= zc+C68bsJq}E9QR2%=z79D^F3Zh5Qtc&|#xZm`Y8UrSZ(RKKnrq#-LS9Xz1WhvzgZW z`kC_4xW|>X zT{|h)9oJ6*^bzF3r+4HYviDcW880VH{w;7zADPKM?5BSM=m}@y!GWvMmG*`r7whUduF1{RYouZ#g;!>c~5aN5OGWx{P6c z%M;NP#?91oL*R~ge^`;Rg{>hp>^A6{2dL8;$;&chd=xV&$u0>`SjLFK6A9z0MTr60 z<$%oAAevl!L`FZEB{!3(*Ld}~Eh7|ICx?xSb-kr_pnjYafvx_^(j*T0*wfaH$vRa4Cr%h*hh6)lEb-xC^*L#`&6zhP9z@@RPo;8RgB(#3<$^v)r381d8J&awcOb}|XtKdoC8 zofxKBoO9pGm9le9lBQ+73!Q=dOf@I!FDEd61xq(>UG2mM_^Kt1yOR z<47ZRNv~8X(SUzsi36x1-=_LRB??mEi0mvS+p=BJT47q0^l>{Gw9$tfM=d3=+4ez*0NwX&szuT#YWc zzdSb$MGpsWSm5>)fdEXwcqR`6G*FENQ;h|)pFV${J#%`*u{z7ou*6VVGr4}Uc**v< z0c&lgj^$M;F-3u+U{FJujQkp*#pC0ADT5B(!KqDE)I;1wPT-`9N`ekMZr%5cIuNiBu)wxu-%@rdJ!cj@| zf76Qs&p8WY^cpLtD$2fk%peJV` zD@qw|m=}dB^0z*Q@d7;6^PxzsNb2~LFU9-z0;tq|9``3hI95G{q@O<7!e9a|(j?G>OS2h(Y@^w0#1qM9jQLq{_N> zI-v}f6ESoAFpJt-bQ0MXh4_+6XTk`5%Rl~PT%=*?b(8@pq!{I&3A^L*5)(zEh-Got)`+w5Adsl8}uLC>?tXIiHV0fDZ8 zT$0-f-nqgl#5AGZWx}26sA+h%N7LcWUr5MOI*{nXh zK!#yy9=HjvWE3ZDvTD;S)rhYs(YTYy)KzoXTgEr5jfjIHJl0?>DaSWUUkj(x}ywWI7iRkfH69% z>-@C(#@{Jzbn~KBO=}VTAArt`W%Xq3kNOb?MFE;*X!551C>%eE$|8)Vk>8jp;L3(l zI4g_(uO9pznS{GepJkzP`$q|Df3Tk0EcqsBSVtuHqofOJ>|02WNY_OPlUPN(N%rv6 z54_4gNZ{86KkM_!OM`}(A?r`&s5j4hl@{kD4~20A0eeFg4%V7#JQOg(aGxK%IpH2sU+y~U6io3n!U>k?R)6cugZ~BnUrz!Rq5ld6vPomPU*F? zRvebo4BOb$zR7g2L9Z~D;I9hadX7?8Px+$xA>S{g%7b{uWmU0c>@y@E*gFe*aK0!J zF~7>2%&)Y<{-)2gQnT9iVU|jI=~eeR&3qKQzb4$IZV2q=-5d>oXunjF@v8-$*!-N{ z>Zw~(kZ6XzqUY@7KiCx>VNCVVS>9}kw(T|in{)K5v3lM-FU@Lvm}50B`;)qn%#Xl|*Ol*W1BwUg4seo;{X+Pk7AsCp_H__OA(>nvQOI`kwcl#!HE~y#2fQUr}$r2!NMlBH$jv*u{SU0H#ihm*#x%hd+%mqBQ4< z-XI*KNY^QwEX>%Ql9!E?0%~Q*U93t<+^HT)Th|%QleBu9k(Yt*4uR1PrUj2`H&i-S0?0@llT&q5t zwPkFpei}1P$CCBlJ$7JJ3WHisg2!0g?+7QR>3v3 ztu31u%}e{O(Hs_y=3J3%$Qm~E!cF|~jg-`8QIFP+h8=mf2aW&Fri!|&C1A8=q>q)@ z&hJNAyode-7vXKhcfZ|NFT{gIFU{(_hOuTftvE zqz@NM!EdbOv{TAc&yxZrYL`#$jUC8dgRhG87{$Zz9~iSOH0x#hC2>-ET?Dg&fcS!U zHAAnTSy`LgK0C8%`q7zeS17gmjd>-7TXl_bn!AL5-1&(GedeF1fgY7*ogImLvr0FT zPRtpa;ekw7#{QIM^WZsc0eP+J6T`I&8$HE8`fGU3m4e2!Wt+hfd*F0IXDB;-jCv=E z*ACpF^VNrD&f3&Gn?2;7O&VpV<&6SBeo(mHXs!nQXK!fn#?{P;$6%U`?8a4GOsunv z`)vvHI$qrfSR$h3yCUV&qSv+XRCGm&p8x8AxhO%gu5;P^2=Z~R*18+vG>3?YX@Zg4 z7}?+w=q^siTl|r$ziZNivtmTAb7Zf%ZqB--#2ET5krqx#aFjeZTf0{oP#`uP&z%}R zHB<1aY8%=tHj*i_GyS-Sl-fcJ)J|2$ftK_zEHowTJc4!7>pw7bA=yu(CQecjiBUHoY{_3ZSCKa~_T-mbcSYBL z+C91Y=JY>+_P~Tn7KCDve{wemzb@6rNX8s&zvKKMaP>K)A*xy;2SyV8T}M$z`F~Ok zo@=)rg0l~8s&wn?Y9q1)EY>$ zst?tIDTOh6y((V_?V*bd>O0YA*>CF^da_8Cg;_(=4gImZ?+am6-0?PG=3&@GimsA> znPF6FMU>{Bty4cMs~kV+`g79JX=s#m>t{BV8|mdZ^a*lQC-@Q#e!<7ZeOcn`LB*%t zsPad#$@RiaaN&SElc`JFmiXEMx-yLq<}=UngL25@)0#C>ARU4)N-H=fc#rgUT)nvb z2f%h84d&xRzG3=$wifM??o5nqO<{s#@>tE#(Mt^9OeEqSpj`SDrMQHs+^+-Byos!URz$y}gIEK65OPk`nVUgwru#?2feyy2M)zh{k07W_PshJ;{b z`2qv?<7cbgD{&wJaCln8QPD*0kR!3?H~rvarcXc?*DjS#Ha4hglknvuDKcgiBD&RU zNZUMq@`=tvG#H*c$DbY@`FR!Y-+RRNYA-Dgpb^XD=MWv04@j+FG@(k14PEi!4GAUN zw>wAjTqiWd5x$NS7O{GU)OWiomwlK+JsWxZcWQu6I8msK)R*TyPad{A`m$xCLi~4s zeq#w4m`g4~b~824cANL(OodbttwH)L%zGQ53>Y;M;eo`DUEkqywRkW6+oPH@=><_8 zbS!9;@Av2|lOKKCmpV$!a2Ruo^D%G)sUm650&I~ySBQoDwIWp-hucRylB#8q>pS_w zQI~t??rhuxdfa0Ns<9Oh>hyQt53;oFWq{9+Z4-tsc)qVTWr&bGm45(nvPU1X?|}sq?W8+tNN}0f%(J!KH8r(K zi?4e062!?#l|X^Hw334+vsBZBZpK3696h>Rof%|aY3a|bAix3}R@3$kV5M-q{PKUDVTwyjOS8w-cUW9D z?5O)L6?Pz#VN8E{TNQs9r6+oo+uiI;|60a!N|gGwTheUA-IIoV-EO|hm=pZy@?X;DXSke;q3WOXlP)-1qj~(e2+I(yGEs2Q#r{g9+?0pv zqSwXn0_8Yabu$~+mg79F%TPga>Ul)Ct$P%!{%ti{G*+Y4&LW`S=YtNesYT!gGSgS9 zYu2$&mtBkqRh%Rvo4)qNX2~EXY-&>J4YHE-BFxGwf|=GgH?-Bq?aV@o8d4OLxiu+G z>An(nk#06`S3~qR@!HBEWnIaT(047dbh8&+`b{QcaGme$Yn*sKNgZA>Tkr~m`7>^+ zG-$W0Ip);aLts=Un{Bv0PWkM$wmw~^+G8U|6jNzqR@{I^CD<^4{%?f`^-?;7i236; z?-v+;L?pz^@FLKL3>jErH*(X=26>@MIZG9_6H*7;>Ms&)vF>67%6*~mI&evzhm3WP zYo7&_(H`fMv!_-MMhjVXH!6GsTrpKuGQ{dBBT({&^5tK~<-t@*V{U)HBQrEitTqlB zS|=PjRTcHRP~ZLHFXMbtb##VEmuo~GTs5!fgckU2zdvxA^;<6sCjO?``mkkHXV%5(;D)!i12P7KLbiv_n1x! z8}Ec_&Tu=kghu8yG^!$dqAp*u(S*)TW|!KhO0fQPDX|A~INCV1Y^U6_KZ>*cMooeg z3&rE@HNR+_6l#&A=QsEya#l)?o#E8Eb>S^_33P(-RKgZlFIKrCC_?`J37$@H6~Lz< zz~4}~c)8^$(yI^*6F zOD#VkGX`z16YL@F>ttatptKo4URv4o84Z1z~Z zxdCbKCtP1e;c{o>rlNJY!**_z_y3nox7-v`)H9n{nw2w)U6aaVCx22)#JJAXY-_{Dc$mAHv-x@34y?$;q8coy zKxL-HY}D_n7CMm;lQ{kY<|lskoD9dTTO)>qbT8?(woY4zy(kB-@Sp8dQeSHGuU|t>_qcfB-IeR7VKVHKb2{J_zM2(vJL-P@C8a@?c$T&OR-0b0MK?dgH1&?N{*rRr zX3`9GyMlc~Mq8`IPRCP<*Dj$!m;E8!bZV<2mp%@8Nc5J^kD+`N_<}1RSh-)H zMVDqw6`N2)NFKLcWWh3iwowzB96SfTJjLH9qZ33R<1%IQx^V6I_dmJ0k1G;XY1BiE zzKT;a+lXDm$}GZfs7T`@a}7h_3LT?=B=qaM^6C;em`j*LumHiqF*xqU$+vvlfrneV z2-vRk;g0OaTwLzCatM6JLt0r=9nqV#sz_7%YXSAQ?yxFni`;g5Q^oM=$>Pah-s1{J z=%V6kveHIk+Vq?Cc%SnQwEfvP0b{`1iG`&BFP9>7tRj`~s_cddxPOpFlkev|{-X;9 zjPs$w+~O>7@CVn@Xvfs!DB}8w%0wO9ckT>F+nU)oH zROOdQ!;DnXq^{n-OUul$^kR1*$#L?B`xa8L#ufzmdirNCd69M|?r4niI`BjQ z8)zQE)#;4??P~sN-$VTeH;canpt{*_AjZm#fCA^jOGkJl&?LZO2iwH|A3!wnM4xzl z&Kv4hk|}`etdXXTGw7&$Ol3Bb+4DhsuxoID0)}<+x~?H5YLRO_J*R ztFtymDK^<}%#-EqB#7$84a+5G2$aEiQceaa@NL<2BU!O*Fy(g2ZKpgNg*UuaW?DSWSuYeO#~`KU6ZOB z>Xf8vpY2@KzE4AsqeZ_2NV&)yBHL?7j=gP?E>t5Z$j9G4!>J!9Vg}>6;mLu_#7a4gM;bHYy2CX9&eK}xQmERSC^#x9_7r=v zdVZ^Gz#=R01pb|^Uf1+}h|xM;4;uY|HzGbCC~;A`&N=L)wv@%=P*GbdURY;+=#~x{ ze_+hdH^9tQmV3hio>vbV&6<{ z04QN(NtpYdblSlaaJWROy?^^*z4ISH3S^jcUz+&+-L)3+TM+AyhfLjreb1H+e+*L1 zO69!O;lLTvTPH5ixO|)d-TJBX$xT@tU7NSr)6t}usU{;ZDWJR{-_Fs6AL`ul67XDZKM`Q|9DkP$n4#I zDJtYVGG|hFu4j}<31cQ!>XmZ9pUiv2g^ZA!;~w}uy39v89^PisWHCnDUBEy3AHLez zJ}I*MB$Yjx3&;wAnb_TmYDB=ru7!%s>zP)3lJy8JNNwBv67`u>x`oG#;8Am_{C1z1 zPB4V?zy-?I^gjmN8xM^^wT*h_h1jq5dF`CW!Mt4(SYy65<5G4I#;L8{Y%S0^b=w@d zI#mqP=ORFOzk`4e{V&~VccTTiaiBex>2Bf{7tS5=SQ z@JWGbjdXq=PB!p#dRDIf=@qHmx{FD@0s;MPS@{V!k{J9yMU3`;HrGe7qmuUpP}ZD# zg;%)y&bq698RE9VB@RuoL{>zX?6Zm8G08QX&g!xwapW+ssU1~${Q6K)eN+THVv@vm z<3U&U9H7oGS=48#HEx@M2=!J=>2l~Vg{=i+&3TS(_Nt@dLKQiZ6ziIM>c4*b{)!maKL@hD3s=+X};!ycxb6Z1uypzo3ZiX3)@a zO%@kegS}0*i|$A=+aI2hJpz0S0j!l_@ge=uAA1HL2+mPDEck|&Vpk1CPnIrr=Q2Ll z@;+jF7a_tou6#7A(%(;{erozLSPFCnP=vUuic6uIrzje%oX*~o);6dM-)5PSrNjAN zLRu_Z|N2Q{LcGVMoQoofy9ynwX7HI?p;QZg`hqoDh~NIL$+zI5@l+$u3=#1zKxjOu$-fXW zzWH+ITlOX{`kLItaRt%NalmqefH|o+W{b?hZiV-LXg^o&Oe>dFIV4=EDogoYHgcaAC+T!bkW|)Bxt|PwSh>TAN4lw@M7KbGy$?JyicNC zdxtu`@hH9Vq&u*g7A>5fZU*&#^c-;%{ZaIXz0nC}uZ8 znf4&#sQ59d+thEk;vWEqW-I;_y>K=<#My|BXXeqe(s;?P0UD!<=HuV`ON)cNH4dF} z?C;?59o|h8S%}Yx&0+nNIl@=Bu0i8c1I+DGAvZ$GfRiOLhi!BAe5#M&vD`3Ie?ry! z#xVF0dMC)0s+Yp-`^AUqs+7YdP%?o0AHbV~Z1A%PGH@6E*%!)GTQvSrt>nq-)igw_I)<(# zy#HPA@+$C4V6p`S*$aWvr<`*DKF_ispms*2)JO2Vdqyh0VV4SyOPMQ@aFTIqh>cO> z>{TTx0z8-uoScD+q+!^bz3chD^2jrXc0SG)b;6$a3z=pLeYRZtbMd6CexBAVnNCd` zC?DFhNDJ#WUCwP+|5*{WRmveBM%Q#rF~)D6i=2bMVX$%DXpQr6_IVePXlP4zM#>k&(Ne);gdFJQ(wT~->gYW(FWvply6)e05 zc`;S={A-4YH#do_K;wyc9MB~b=7~YcdM>JS4R~nsb^OxU zFVFDoF{z^f)bMIp$66dm>KKUo;b)=|b2mPL*qM^gY>GosL3`~C z5NFWzl@{*u-i@7CV4j7%=WHy}bTEvj*s4=}AmHcWWZSE#!j&bY`5n>XYDeS_C@yky z#F=0ba;i9)^E}m9YvQP<06h-)LSgkOZ+n@4`g|ZDrL4dd@(;jt&e2Jj8rvDyj%+~? zgavQOI&Q&TcYJqm*(lTMMWPErmD+qzI#>SsXj5|dOgXtRd*l)H?NAF`*8nNhmP<5l zH_P{+b@eYrS_pELQ6KyE1~3_Yn7RH=0ITI|b7a5{(^$dwNlYA|1-Jf6scjh9ehQ$% zLq0=%6ohlH$SPX>PDoQ5K-W3X>3pr^PgF-w zvxvY&Y0g0W1?lYY+^<9|{9DO$F6CNenrzcTE8HITu-WdD2v4)Q=d1%X9VU%>TM^z^(;~l@57OP$P z_`c|)Y-`h~KgW8eiJo)#P#IX)JNZt7Uu<9`27U$meC8Ey^kJW@EpRsh2~3?%>Yg=0 zuYOZpZ_RF{6I^?fga3n1MiNpjt-001%}Be&cxM$1WkUP|*z6ns!Lv5CHE>bsp0;5T zTF@o&Ug2C=*CMnXH|3UATKTutvk=M_f561*>vz4WsVDwl?6(4IKNlCH?kCiEi3{(I zpUHNe7(M-*lZkAvkTT<)k@ z3(tI$CRpaPQ!@G>vF{j6mdoj{WQ)T1lqb|5xN4VF`am<&7-;K{QnO>c%=2mVL9DCM z8&u{vAemY!d$cVAuhFMCPL!iHwW!7TM(g@lGkhYdfqcLjOTv0PQLB(^JpIOf`fjPX z-(Rd$_j%l$@g0kkG$GXjaR>W zU_#g+ecdKHkAbII#vd2pk4@j(fu;5U1cu5Sy)=m)2%!8KRaj-O_2f=^$=!i2WkdbJ z?&Nv1RJ1#rQmGf0*Dqeq7WH87(Ku%i%M3IXZ>(sf;ia1B#hUBTGc8t`V6w3r^AR^w zWbftSY?r3dk-N;P*xc~p)t_)_@yaOr_viX**a`u8 z4XXv0t;Q%i9oiIo0=B5fmHYze*So9VC9+~?|_cEj~LmYVIQj(7A&{e}`dYdiRWpD(B zO=hFD3+Xg}r%uwOcdf2WpD3O8Rf?wUau4DaeT|cjVSH?R$oo+zMcrA0@r(}TC<}0z z=0xqX7^Z%3*;XLSUt!|EqCQA>{+AA7f1&>@Tv{UmgUma@@bhXQ$tTMA5{UWro3ffT zu@}knT&lWN)rr4rTauVc>;)G;KH+s-bs;cQxc!HdSePCINTo=3$n@jVF`0;o3%`n8 z?tAFK7N6?I|2AYdbdwb*V-IbaXJ{C;`;GUj55y!5=llgh(%*=`SLfYF7(pqoc<8XA zSZbCAe}CEN}5QQM#DbiI1x+Tf&NA4THTO}Xg9Y1^%W_@;E#k@d2><7B3d z>3hNX6Ne2c>y7U$t{VRZ*`}au_`eBS(a}t+I?;2{KU$LjvUH3>suq=Lx^mwuA~Kh4 zGEtt3c2c*1B1Fjhy2p?y27b3`@z_&RUr zg{^esY*!a9J7&Wu^_7$g{DcQs1J9QjVR7`d`o?OInNXl(mD@#i9@r?$6a>b2n0C)7 zUcIIq@DZ!9%sEoU+8hN!A7aRl*@o;^njdCo`L-7uM-PU#8u+Ap1ChNFf;c8 z^ruAV&#@+52b`QtVAkvEt`4G&ef5Gm*`?2WV*?&$&RwYD%W8yUc<7YaJXG6`>&LO7 z?q8W0I*+#e&0}!Iypvnj<5k^BnkNCL@vA3P_9{%ERoSOs(395aM_l(l$S zwWm>%8HX-kjSy9TA%JD8a|d@v2)M?G^CB84hM?ca@Xgt>VFVyTNE5T`4dJqsZD@|8 zp5C!zl9!y61@49r>jkx@ozwG~^L8)WBQko?cP;OiiCU?L^DCl$k##-rjf)cotgOG@ z*}7S}d;Ezy2tDbMPeLh@>j=}bhED*Swv!1jF*t|lZSeB8y|kjCzWISspJuIOA3Mx5 z?PC&o7j1^4xF%gU=d(%xB zn_)yDTfFWONMI2kxu#&oHgt2qb11@3(0UpjAf2L@w`K6aWO9Hjfv^)BJ--p2Rs@fa zYv(hkLp18f*PLbMdUH3ac@9Rbh)TA>XdC%aHm=Ae(W!G&7a-&yo9!HuRl#O7X`Lu`Tt zD!#X_=4WJ=bi-ee>)4_4i)eZU_BJ#TnFBVRGuoJb)qq51&Nw^fOnDA>tP~}6ubL^C zdk-JFeKJa$V+m%BIE0kZXfJzn1bXJRU+p(yIr;inixwFv%S9*5t4d7DBf@nmYe%J` zpw{=t7+^<_MYHXL!=+LxewtmpcF-jS22*Pt%4-TCkcFz**2l?dZQa90DhJ&a{%?yS zQ_a616d@t;D>DAI;-;;+TUaB{r#5@`+wQHlU^WdNH(Ag#l{L056M?JT5o(`}k~)Xz zCIb~~YKx0(@H+8Jg8VS1Th>O4YtRALi_7LzS7kl`LZT{RY-6H!1#NzoUQYO#<~J1+ylI zM{(Emy+ARSEnkcLFo&Svdrz;$27%IMch_!#DENl28b@b^FH4n$%e~4ho3X|w8=$g{ z=K_yRcfew|t#~U_5q>|p>SKiC@u;ZMLjaq=gL*01p*#JqWZt5t`cfhx(u$UGwf z$=g|F?*7uR6YefGk4|{_wvQq{5To~gW`4-ooi?Mkq8cSJ`=U*>Lx}!KPY=ioo8h6? z$jALx9Z9H|h+j;lxf^F2Tpp_LahK(pDSC5Eq}rV2on-2CtuMTtAN)OR`c| z^S!VgjpdIgW7!>vT{-OsWgu2o)g0u>Xy?x6VZvXKT<&*I<|=L8bw2zx)Ak2EQJM;m zL&+w}_|21bTlcM@Q~>Fq=!#T>{jSm%@!Hny$L^=A(z}P*-9@gLnN7w z>5+|4Yr17&1Zm|hI>8bjZ|16pZc0Jy6JBy;6@+w**8@`V+Bn`V58b6F7D=Fpj6WF{ zaaHOp!K9llBpD7FF#iSZxE`7gHZmwU`!qS(THpzbWTumGU$-Bo)6ClL>_xG|dLae* z<)p24re)feP1;xK*H_86Y|f!cPR(fbx*Y%x^7?EvB%6VYe$7Mx&EWfHYy;0mucM~h zsk^I-`Q@u^!5;MVIQPuXB&+d@(jCqiB-cF|w=M`3q)ENUv^bk3%O2)&~(j zK>Ap_fEW*>D``HimR>#jJB7!>Tg>S1hiymu6hC>*u*{f%Ue&}9M&Fh)MN{^vSaP+W ztAq!pAIReScrvR0;q+Uvp6{!<>N&w4Q48x10>3nW7N7+2R`p5WE|wXB-PJxUedzFcJ1)a&cUdNPHML{Zv0e)xhS_4_2G`&stOE$?R0Ymn4Rde z;6*Do9*{O)FW;nT`R?bk8~(=_(}zQ~R$Y^UU#0|r0T5XoqT=FImb_gM8z&2Ytziel zhfh!h!N}K3f`;*eU$yb2(ObU`x#Zito|KmlCBgymZ*yz%6fTjXe@!o?}(m>3eU{n|^!m%H$LO%aKfQuagOxvadk!m3C((E|3{TG_Gh;R??s-rEX~dCpA8z4LAbqkG|fDbzuUydEjbcZ8^MP? z$cXb~8)IzKJD_X)5NVh?Yic~_bE!Ic*`Oif`NW90WPp1s=XYIS^?vGML%(#|nwgs% zn!iY%Ftep)O=MVgw1!#a`Km_GY|~MyPowMJxa#8h4IXM(n^0}tNMj&HB;vV3;=Qwu zgLI?X-Pxo>MD$+}PRU$gJ&XJor0+mfzT?1Ttmd#pYqB$WISykbqJ47`(glozUg5gh zI8wgi8BK~RcyD<&=C3;&TNA-WvqtJ!n|=?+9DF1>9P>HMHB25j6&wWC`7d%)Jzn87 zE5}m@yPz3}F6-`&jc)#8-#*yGX-w<8y%{unlq}}_fa#L&(2_Ih^q_sj>N>sQAV&< z3w0c(*p;6yQ>o0!f##9J1BOb~h(&;7nEOGiHvG-EfP>%9<*RkZ6j!iIX z;@j-3qE`HIhvSt0?G&vLaCwu$wtwC6G|cF*=uac>VxQ?1HCOS5pJUQmf8L2X?7lLw zq%0@1Z~{Jlg7nC*N-Y#H`2_;k{sonG{qR^)4+AuFdTpgw-_7ieLr1GFc1JSILND@I z7Be{RAgE%=e zw9(}FVX>mKM*Rrka^s9vLBA8fV~j7o*(^I)&HWX?Up?V7h<|OJ@UH22taCftqQGz<9*Dq9h0v=qC?9B1HpT83I?6_SV z#qL=9G+~8W2>ww1I~~QMIh{C0p8mRrp%$Je^i`-kN0;@5lV?(j z#f6jj`l@a0f*I@b?>4ZH2sT-Tig*zcKUP&hNho#hiGM*vF5az+6#J2-VN1is_oj!t ziv%%PSgI}dcKxJaxWa*S*RF6)yvl1GBP@45DtzI^_v5{V0!8`=(rw7{j?&GXx}TLz z)$xOsO|^C!4*U;!$GoD+83!r`J`3X|*iFp%A-T-uFX*W=j18W$WG~V4z^Y+<=Tn$> z74+VzVYVS{uEzz^)=~0Mc;ibYw6j^f1zU}lb*9;P@9oF6+bGiDuHe^Yioc)0#UOPYsh)7+<0|n{g7p zxErXNJ&O0n9>Jt1OHF>hl=^8G-F5HQ53#g;@i&sW1?BwMME#0j+76=yKfxCh5%z8? zI*o|_Ru`)XT9Mo@5*IkG{G?E!@CW_*>YH+CKw>AO^B(z@$-*$dl>>U=OHl@!FSt~E zO;+a_o#sFA1`^EBl4B#98>U&PC5MIrnNhdRJ>mkH;q08DGC!&B(bTret0{b~=g-{y5NRp}W z5g8uH8{rE>JfnUT(*PZ6c2d4FGSYZQYKQ|ee@C|2dOVK#OgSDd{Ap#+e0ONrP|1(o z_Vf+*wTC*!-H7{#OXqxN$;fXr=hW|0Uj-hmKN|A;{(3~vQ>+zzz*&<3tWK(tpHW2= zZXmeQmm`ne3Y{~-CdDbAGUGJfUf&21@3X&oF8qw27+d54>F2>k60Ov{oz^Q<4&EEJ zFee!2AFKZcaet@I;AI(m=c6#Z-N@m+l)x%6z2E>T4zrk3sFZzo)okyxyjgS_gl=I8 zfw~(23=g9TR~P8BPGBFy$8W_ByQqI>?EkqKEuknVoi7$=>U5Ft=fHu4UPO38LeCLC zk{2h>n5Re7-Q&Of_8ffWTY1TAtz!oK&X08q|B}=1joYhV0aPsCEX4O>#C5D;wA;YL z8+za&uUjV<6$HO+xKFBmJn+*j{y=b*XQX0JiDk>E6fP4{MBF_+)?lcdo@vSw=7sf1 zihMz7vX;_O+~O7wFG3tk7`u{KPp+^_EodJ&5X5&#^6o|JN|a+H`LeffJrM0$s+W*6 z7f{zL3+xK|KG4nvD|!V6NNp<^mP`@R&nxi9K_a4MrTlTU@^7n!?@%q;>u5<(Q5SxA zrQU~SKSp0${y9uirY$W~jIPO4sd%>;^Gvb@6cU*#k?K2pW_2;(T&zVd5HjI46z-!9 zG&3JGD&gC)Gipo>eatU*q2CqE79zorwB{rj{FD9e$;@fpEcUz4T~swYHX6#Jw-fsQ z2cN_8e(PQJ(YwW?TkQ%gOZM7t@YIntFRykavGZpnkKvwgL6aD?xZOWyLuD^`*x}>k z$HXF5|AM5zL_f&BWogdAl+Rmyyp5_Id?{X`;oBk-{co*6@5bK3&X{gB6ipxSg2n>4zkv{SoyiL`K*uijD`nkkdVg|s z*AgKyWr@pF4b@Z^w`CCh#JymSN9LWmt8h~t8>IrBQe6)cO>4b?izZsV`bGYA1h05p ze$pW0(1LM{hxd=$yKWHQ^Ju59d`gEauci}2$*rRRM3}11n0xx-dD>GgMj@F%;RH%h zMb!87!h6zlThpdT3!wxq;Xy!L?7+tjotu#rWWzjjMEoe})4p<^w6uuJpK&+ShVayQ zzTFIVw;O79Ovhwt{OoZ@ZN4|sjqv3-r!!Lv5P(^Ih{c2>GkRAkTFp2Z{c_?UaXKjO zn?zN659g0}r+-lLe5;4g1rk?3HR+DFp)H6W3W7&-lcUpJJ0=ElnZ`4cd#P6VA|706 z^;UZ5DJ)o;Bg_)aV#>eI@cVh(eaAcdZV2Da)$`-KbINs9Qcaz#Q)EF}VhwG{!d2J3 zn&8P82bH;;YcggFZqzI9Ln_OBm(zoy3U0+&hULUOmpp4_l<{)CCJ9c*l@NU2A(4&X z6|E)*O_b2qr`j+(J_}xMNa5YCe@!YYHPO{AF#sy__WJ4huT+sE<^HM-1M?YXk2oCR zs!v_w{2(~=37OI>uQ45P-d}T8W-YHG3O%MG;AxvVIHS>v%0dc;e?fQqTG9z^fDc41 zd86^;5)V;xFw$@C$aH(|nfx9BOd9xc;)laHW7Bi>@$dksk9yID93~0b3@_RUdBW0C z`>xgS=7-l`*^ZADycpc74q%aX^lz|9oBcdjRGEBS@EtqsKXm8E^}AOu1m5y>gZHL> z*PfO$&Y&f8bCk=GkN<*7l!ew0#i)C-iRgFui}gvq;naACmL4QFFx;PdZPkWQlXs$c3T|MQ>-{jxkOdg(aTnFq*B=IwF zbq{S6SaeN{-{M#DwE*hRfYio5aBUDQJd{d#Og-H;m?T#R6t+;sDD82f(x7vd`gKpi ziWnHB-;1`m7Zfnq;b2HfnsN2t%XChSG)TCG@PdXY29=mCw@hr5u`h4#-B z>7oa-pE4cjzz9I}=%ecb9IR2);@5dsil;99vaO8fBf9Z*G%m8G3%y*!hQ6zJb-lkt0Eke0HS7HVe@F0KQ?RQM zefv@DO1kdD$Ih##=aAYcqZ&ieYQ<}cw&SD0)w_B`<0YHmjfqknA&T0&irP)yia%Ek zd=pCC@FF@HPhb0kkPwfdT(1Xkp^D8m&WZ{*hECJ3ABA$XMoMqBjo*+1R=oay_=H&o zh!I`n8@SXSs+y8kdwG{&RgGI*PlWt|DYs7Tr6D$=duK(%x>q%;g=Dk%w^;SUXB7Tx zrQ#~s4_;6xAj|vjaOMBgKKhWCa$VXs)4jd(Q>APr>>{cI5bk{lH}#Q@9Me6(}FVenxKpi z+~3-v!cQ{}bHoEDhp8M<)a7~S-@FWxzA0`fRBSzF%bWDlds$Xv>!~^s-^*Q1k!bI~ z^SY*1-T)oH^Kzd)7i1<~*rjPTb#d<_N_BLQ^+KZaTQpW~vyiTzj zrdFDEv5E`GCJ#oOr6XOau!wIVlU}-&EU`me5G5 z_$G7pzy6AUi?XtmxAQNErBQkj`DsCGY%gyXQmK4mcRx#fmU9_$FtGqS ztv~}MIXp9a>$qh_%$=^!5!Yihi#(<^I9^Fec5igO&-X5-H5y#YnVD5}w`Un>jNp^V z@R-xSmSfI9e3M{;8RU}JuB}8}eB!{^dGj8hP$ZpSK#9J*sfzwifq{B>joYw-V9{oG zW=?fY+#9{&a=l3ML!?(X{#A@CAmiAq*KF=;sENC4HuZIp>`{<*VjK}%moVtC1PieT z2J6$1BnBG7oB@NYr|*OQQuB8EA)V~si;fuE(9X0Q!lE2xCSxH!6!y@Q(X}q>^GH`r z2^`+opzYTZ{ilp{A1~URy;N*`WutkZbVK|qxPdK&u`KbzUYBl;{aW5j9by$y%{v>` z#*(X<#7?fb^SJg`t&zY!TN?h@(0Xq&escWH!ZA#2^!F)~mIG|<6pn{?*lRs*#AS>e zR-@tIXJ!rocP)i-SvYRp*NTjzyCk7~li1f*AD!xBlefO6f&O9NIsa|na^l%p^9R3- z!|ufo2g960Tyt-UV9Z|-?evkpmb|tcRl?wfsIOnb6hVB95Umxpepv)_^|0t~!*OZw zB;yFPUBk!L`&3@nTsOLl4C)~z$bIz5RTHqH;tYu(O?tV!V<2|DeaYd9}(mju0iZK_(Ct+1x6lGDp16mSmY7W%lE=u;6x26E?z)~H@W*Rqv~g}p1aWPR*Iz6 zYtJ7Jy*k<3NOCHD!q6zM1xb~ zqDb~76VXX(f4@)d)OnW+Hy1u0s+$#(ROPG!4(BZG>5dfjUdP%a4}W}#){|$HVQl$e z&Xd9!={R6EPegakGt`C};-T?b+F5bMPA>WJgVnQ-ueJ7Eqj=bMytmbj4wvQvKf}p} zlOFS0OU>D8fs22BySz$$rRs3eoHO=I>}dHRPlViHIt16JYlwKn^V(n4@@s44_NtlH zaXFpGj{ZIK)rOt@mttw>Pit(&P@C8#2bG1d3dZhv!0l?J9|zX5KuR^+MVGu4%CHc4 z0<1Z==6f7;8qTvS@!WU~?m5pc>a>tWl(=PE-TnNGo@-yRI0}DJG!yWMJRW=hG_l}l zRCDc0rRVbureX8(vPkx{?-M>OxirJ`Y0#^Imp{BSqlPZaU(n|Msg$50oO{0IQ;L3K zviTP@hyG(jOu`^|tB9f0L5HGBZOdS!@=%BtaDmB2t8rrv*CR4xY)ciKyJ0-hS=>BSOL9L<(f6wuDHuH@(8rv+P*`_ue z2MREIA3gJ=5PFr@s_l4UCf5|`0+WLqjh7dgHc`VKciNw``=v{Q`(VWiDfhma3A1+% zQWq|+)j+qD#Eg|O?6M*DBAvhgWN>TL4pdLKWuKc};|%Pkj9hN4T0#Zg8Mh}G3$1iE z3ycu#l}_IvFnzlFZ%TLhXsS~=353(|8)d+VR(bSvDr~)Z4@*KL>0jYs5zv}qr0TPY z5>{<&bz8unn+rZp!t{x6hmN%sIAdG*>w6E-m#j_LM@aU?T=E^$m>Q%iwA|#per1T^ z{w~F5f9OR9lp`-f_?J*U|9vFD{eS-P{|24^fARSY2~r4^)8xc(P(-)3p8C}2Jn+Rk`>bQ5L66;~PJvwot+V|9 zL)-Xo)IzBNdZ_>Taz^mtc!Ejq?r0&`aqs)TceGSHeQ>!n9KwqTTF%3*1uDod3Cu|; z@?TXsS-92L-9FsF*x@+(5IHSiWJhm2^bmg(dcO*PwN?JGPRwO}e$_ahB971CF%|hT z=nT+`hBk9~XtiMne6y{~XXYMsB@gabM*D5J$$K3{TGodPM2B~CH~iqfg=-F5E@rSo zZVb<>Grf2a2F;RG>R@!QhI^jMu~qEtUY1(sj=o0huJENQc?RQ?Vq>yAvcDW;DL6c$ii>x+Qr{MA3HkMtb({F_o|EG2f~c$2doikN#4{em1hR zT=(M{@sZ9K4T<_ln^yiv_~vi;iwcE`jUK*<1ZJJNmVYM_?7w^L{~jy9XQaeOKilTl z1`fPFs&-YWhkH}s@=_Sv1q}g2nqTGYtvtLIK8yNLu9-6uPj_LV;K`{SPTGsxAZ6z=OBPVPXY*&I7A-< zqz4l?@tG;vFNqAOdbftD)JbH)i2GLz?vfB*_WZ&joOCT7$ibaJlX%5| zHWV0G`@jeQFFnZOFKBH8wg)FSfz1Co^FP1#KX=$aPt`vy$v>^sztcPv@ z6Q-ZISpQQ1|5w3!gz4jBJbVJeCzu;*p8+0WVPikS!Tzt;n7e&3*8w=BxMa+4WFJ4* zG{bx8L@wYTla0^vuBwAVYwUzo@UwFO0U;$7H4QD>D|QY}E+JtNQ894|x%cu4ib~2V z+B&*=AbkTva|=r=>n}F8F0O9w-#k3Megp;uhx`l;i;ask$qPHV)o@c40mGhB>iGad4U6JSLOX#4~ex{!+jnpZr}+c2x%f zi=fsC#b@U+LP}PlRW{^*ru~m)|L+V7`2S_u|83a+v1<-MgpGxnJZw?`5OA-Z6UG7f z-{(80w|FY=YzPXfKR!zAd6TYVfAM7C?Q@}kT$@UXDP=3anBFsyw{t%-)dkPX=7;FI zlMv5Yzgm8D@KL1}WY|&TNDXbBla{@&cKh)FG7Mc+L+CXkjguzo#N}EHc;84}Hc!X2_KC|UL-YYqpF8F^b*wno zx`pYuhsXzb!2068AED>vvX z;LWpw>a49UUGU}hwTN&x)5wo9_~8IrEwhZzWhoxh4s!OmO-Ob^cGRNpic3#`EP?*7G=hc)t^Tjo^+$a zkt#C}fV?{yn~?k0WF$LNQc!9iYe3IP7sE%!L%P3E4X)HRDZIJu=yLG~z$r^KrDc{w zrc6x<^pxjvSt6bNQHz<3*j~&7pbzogM~>t+aTA_Q!RCgOQR_I-q5=V*T}`XYKmsat%CS>j7Zk=4p4x zmX>voLp%24GT?-D0}F=B9-TRDiMBC$HX_h?CzcFd(R=_1R?sWP>7bl21AZa~8_LXK z8{$vq9yvq{q69X4+E^>WH@mM!?w?S2`f;G%f7b|ewfA+y4?z!^#0-h?~=!b(LR0MA;4U4c$(yj=DV zfacavc${vT6|MTeGQV>hdOtGtv2v;hfCK-T1WX`luq@oye)yPCe&M-wVbaU`Q(=c; z#@fleyo!{08U+>PH$Kn!=KH;@jAPYp?149lE1kx zQ<@?t0e54mR`N9DSZw5jW2pdN^2JH}-*}p8i>giEDZ|tz-G1Z#A4vEgXu#skn+PqM z83hb|{EI%XxX?3jlo-WgP0p{a69o#AJ!2YfjI{1n;QidCT=N(*5WLLso_|9w_AD>+e6#o-*juB&AUKzEJEUh8_}^`<@}FVhHNCsQ(+2=;CO_$nYGifs9Yj7f zm$#tpOgFr1zy{Vb-fL4%zEp*(Ugu85`>7YYm6`UKZjVw1arTu+mAnpq;XqZguVJ~=w0isc^w^QCuD>KcJE zgmJK-b2#ehpXg0YBTOsGepkUf@D=8yYuY1G5=~Y8mTGL?9oheRAc8G!vl>-73ccKb z{yl31S}%u;Uz{vp-_Key^_P@oRa92BCGjMpzCc$<9{?hL_^e-E}UX&TpkFN6>QFylqm3=Ip91eOJ?@S%1TB9))$?VzGOy zVff(Z@>a?ay0k~KkKrfyiUK|)*vT@D7Mp*>dNLgDa@>M_qoG|G>BrZBhPUg*M&DSv zmOcQgQ?CfQb>pT(IwDKY9HHq?*MF@spIA|}*^`|4ul21JMwcgDEfZN=F{s$8;Gx5X zRiIIRuj@uqPW~M_JpeR`Fr&kDWy?9hHz+eKp^9E8cmP~Zid%{o&I}f`nki#0|GY-R zZ5Z4i`Hh|I-7xRf2f;6Y6@R`jwwpl9+_9Ct124c_sF>tqIsJgl+BpL60 z!ZpHDXAL#{c+cbE3a$kQ&G?HXRTyP%9=#QW~gQZKdw z*l)*jeRXumY(%u~ZDkD_rT<@c=UeRU6~ zoHY2U3O{-w6|?qd1q-`NS4w4XIx&2*5V86DKF5!7fu8^8IvzUJNImO@jBv6JHMZhi z_7$m@-1q>JgeFs>l%gzUfDytb(P^3U|b~`)krcqvo+x=svO zEP&BlWPR49Ux}FRdmjKtiZw^MZXQz0f9AiGSf2ESU-)vZ&|_#EL$CCYeycJ?Wb}=PjKUBv1u^zD8i>8@8Z?1EUHQ6ny7m@Y2z9Or@Gp?9^@lE*9OTE?-W>a?) zobm1HMPw&l*xF)OF06>9+-vfUs}pZ;daY4mu4(a}cf(hACdvgH)g_~XRLGR1prTN7 z$&1c-5lH1REB*L{;4y|T8RW@7VkxO}+Qb6_*K*wp8%vIQzq2H&^dW@POsGDzO!8Yk zGnjjKHpGb&D6cg*Lw|xLr5AXb=?SC0FL4{lU|Na(nL2!S@J;j)oxJ5&$+EbYO&on} zzZx!a(j!13uj;3E)ay?R&>PO5_wPX@T5wE#)0xCyBJ!$R&BYM8IO<_{p-lNyX6moQ zt7)E~zJfJ_zw5D(9i{jZfT!>#6wtyCS%m?1rV}sA?I{;&5+)$_EIdm6+pLJvX)#*o z!jKSP_k|w}gi5xo*;FOK)ix0Rws!#yCp^oFhSQv9eaFD7TQud~a5K-^D~?c>L6=cS zf_v_<($i`*;T1B(;KxB5$;8E%)yjk^dtS46s$b>_EHwLw)MIIu)sZ=t%Mhf-p&*iR z4-HBcvyQV6aU5Ze-Vc_7UX%{F!Lau-nc8Y<+CutMH==npoc6(m;1gB&tX${K@{bD# zdQ_T{XmwsT@6h?zm`|MSc<#hvBNS(fhsvG~>(Kd^ypM#anxr$j9s4W`-^8;6#rmk( z8KnEl0lvGpOdebg0l+Hz#)_r7*$ZyHMCwismQ7}L5PO^FIcx|PVA%KbPUBWZ-@wQg zBnr7NP$uD&Os-mwCFo#Z4!gIw&%0m%u0Rh`h*PqYeSr3<9;6+PXr1o|{R_nF&Fq<8 zSFnL&6uW3(E-L0$bLY%<+GVdOwsvE%iqfQg+vS+dodd<(ywa$!XUqFpURkoDX06xZd^f6Mr;m`=wqw4bZ~{DXwr ziwA%|ttEM1F-LO)10U<%-uua87IC8#phUU6Feh&sr#i$2*s^mDW7sn^2UvdttM#_J zbhPn-pUtnf8<2mKNuX6S1B&<%}lx4|ue}X6oTWqTB z9Qm@y>rU{;X;lSpy?*z%5vyq`QA`VRvD2@@rE2AONK@RSE-Co0jl-jDZ9qS4crs?Q zz<47f&N#s1SO>fYyqe8JE*{jku{8<&W1Dd=*8YX-a)FvQi-t*=D8IAgMk}t+6j+BA zN0o}{*qF?3W>2tpOKW;(-5yN#Bl)$#$IxY~MhWgnE9%->1X&joNF@05BCSti(7e{li_piUi9zwKcw(KXt0ej_B5lmDY@ZRn zx!SZwGz>gFKR-wHc9pQNJ#}LwMwVrAq`qa*;Fb7ug9!ZG8nSX9@g%?XU+?=eb>pjT z#@cfl5$njFwRM%eV}{xD>&H&X>&Veuz5Ml3>zpxp<`+b9{@}cw0OEXzH*GVQqb!N+7{ z;+jT#ZQ&pBsSQkS*A8e@Gl>dN>xChPXx(ew3O_Jde#SF1&Byprq3%~^c1Px47LcvU zpsCF}IYsg*iKPQL_Tgy-S9XMLBD1sVi8N)Hg;v>EX*N-r0Dd6?QRu6ArM#>|t|^aA z$Wi9&&?7=i%Oqn#W*)@D&6QxLAa%hI^PkTxJN%!k9md^X3k&}vAz=6(0PN0V+BI$+ z>1NP_HcJ+6qAAWOP;q$5bD~Mv$eB#OfgROEs-*1WULEa#c3RDsnGryV>p@gAh&QY5 z&5gg7;<|~cU{>vO6ych&u3Wh&iqU!9SkP-cX~ma9-oq*jDW_f2?)ik{l45)pNR{nL zVLw&r^$XWaM=TuMu)htgjp#z^nV95riopdZO7V;==N6qnWwmL(Dg%elo>xW$O#LWZ z_9;J$9&Sq%h*-;~aviA%T-V}q{Py7tPHosBrNtA*s<2nqNU=T#49!O|!N9gRIIkc^ z+2Q3h8($8$#PJ3{J|;8f6J0q`dU2vy;gNXD@c?K654W(a`IYbrUFSiPe|>jq{5~@N zr&v9`^_o|2q~uMxN_@E%ME~F>_aGY2qpquWiEiSeRYW&&{FLpNnLh_Kl#YQ$T_>uW zb^!$Y2lHR9HM}E1HM=4%Cm@D0HDtpcJPbZlzL;%mjLxqzg)M4U-}S%8Hz9d@Rkm|> z`R7=HqObG*(tkSqg#Y)Vqd41Cc-^D*XV+)5&~V3Zbz6UGC4~(b^OjB6&8)&We&a}U zhUAMEM|u2yEa;@0@5coa)^lI`&Sk9JvDNnFzMz&F=J5bnEew45>gz`}P zB`M=YG;q4IjThtJyt7{j01fyt{<@RDht=9?t2k88eR=j&V(XnK&E~s*_p*J11|EF` znR$rt)PLvMvJP6BVD3dU{`J9;@ubaa;)ON!_1qOSV83v~7qVI^3o$1P#D8@DxX!jU z-b#%8d1{sE*!jyhopC$dCz5DFx$+VILpG?Llb;*Y9}x>V#-S(;?&CSQPw7c6n$Z7b zOo|D){IR8W!f=$AcbWAEKtKd~b{fv$qskO=$Kva{#8|Jvxt>VEA!*@E zy#C8`56|`nf+k?N1)6$@Do;yUm)U4`@op$nly_vgM4T!NI`w)E`9b~qmj4`wLcc(N zUM5bHwk8DSvUMY>-}Zww4p^{|JX9UpJ!-b^2>CJ@GbR&ZPjWVgSm%&9rgA_nh& zkQpFwJ932NN3Y7?zTh!Xm#`C_SHuqO=CjqASIiF?a7r#Z(=3=1^Wx5*YQcu)Geh~5 z0q2I>474I#d%7VXA%v4$tD6IQBG$q_!e4nBx#fEz3*}klUN+Ic7AK$M#!ef&j1FFU zqoy_c)skfU_bNOPUAqh#mLZ>F8?SA)dFhAChfY)*G1Vv=7bvIB@>Z6IN&=(U}5RlI7QvsW4TK#|wnOFf^> z0&}^h7=PY;wdc!x99TN#uJjKH>)ttRnU@ytkM}8m!9cQYYT#XLVk#WA+Cmb~hS>GPg-5qlU0tTzUs#|Lg*VODJ{sr`@aO4yA9hHiXf|5NtHC3xH za(UVVVENUr4L3a|P5E{%Rfvn58xa=)->Rd;q}!+mWykTIqFq(pwMC=Yklnkix>7<& zsnSlD=1tEREwD|V*H(&!&=9eh-){T9@o=*UMWqu8VOH`wYJqthyWH~u@RN`H@%ja9 ziBnsrxc5m8Fn>o|$3`LDU1`Nf)wdS>s_iT4xI&gPYW^>g;Ez~IU&vC6forz0-92Q3 ze@@jXm|NjzPh%*yB)YagI_nkVhqb{yZz-PHQ+PO^)b3`2aqxovYu0Dppxp<+-Sg7R z)U0);u4^CRGG#X>n1?T=IN!GH<^c7odz<>&<8g(@0^V5Q__h}|PmpOQ!5oVe` z<VG#uv4^P<)eQfZn!3tgDHI$}OZk>Fk zY!N(;moZMxcTkf5QRP#Wx1Y=;YbflZbeHu_?=|Vu`MU4UZ*jh3 zu?JDi`%N*vj>8B)_`=EM`SS27a+}e<76NLOcl}jfRrp3nrxF;6N&Z&A;}sD9PIRn1 zkW5ann=M|Ij>W-VUCvn=NO%Il=6} z)KiC0U@cYGanuw`A+4=tt~>I#*nTO%-Hp~4K)E@!3ZW#Y7gxZs&!jEr@t2A!wX=pmM1D*mrlMZfgg*+55znu&kT8ETPs#Ox$n^1XY zZZpe!ZHkDK=@LaSXuK)C8~|RAfsmDZFR0?52)l5BON9-SG50 zo;?s-{AEisOkK?z-X+cHx=fn~O(!)KZwvSUdPuqIbv4C!VOEb+-R`iAi zmJ^pRFTFuoRTDcHlXI&2n&M{Omh0ets9)ZsIu(^rbpNAEn{V9E;ny?4=o1+3zR5`U z2z5oXb7JB!?er_wKfk`wu0l?UZmH-^-`t9N^cdZZbfD50h}@-{)RAHJ*Fj&th_Gu; zeF|Zgl^*7nX{A~f4UXL0Kp;pPqF%QdSiBH5UP0?_S)yz{BVXqv9-m10!0>q71v2o< zm)gR$r(JJ#tNsMz0&qTx?doylz?~v=w8D0vioINe7^OCr@I!eS=62 z;hb+!mdUpOfCQl-2W&2S=Tq4tRA246dhBKwJ@IS7AsbM+QhGpV&jFNT|VS85J zcuUy`b)}er?*7Ci(j~%cpwb0~u-qE~PP=*5mR{Rix!VmY;ha;v3*$yAtLw6Ev%8OM zdk$kNqV89Odp=Yv#Xg!Y4V6)|p1hfApLbF}G)?C}EmImaX`B=E2fy?9CKvK{g1I)- zQOBom@(Pys_Y@ABx=a8yGWA@_G=~U)4<&}nEpHpp{FR3+veje1l@3?sUwoG3`(Pyx zXK2lrx{BAbvJs%6+@gI%t?!c+n{G6H-KU7}M1an=^&o583zkKu+!I~Z&$eAn3Y*=X zO9ZUq%;Z%)KG*AN&T0+@?$+kCjwQ>hreo_F@-@p(P5wp|v+%X+-(0{l^ITXXx;NrX zq_o4n1=I2mW%$@c*i3ZF?>65*9>XXV$ZMzORSm)gkJM}P=r2E=H>1R0dJ|}>-NYCU zyTSV#Xprg&;zRI2*QkVo9>}=L>_^sc)84%{M}Ot{39?jAYCN$mGcoIfcscYI$V4q>|h@)2c}V#jz@1r?SC>;`j(xhnm5-ViaVVaJzPy zm3SQMFQFnzcO(eS5IcUfwYK)UEQ>3+chwZ8%NE2tmGTz1QFv31xl6OVk5og|Rm#vu zFfcnJm@6uA#|#o@rnLR2Wxo5H;?};&QuCXc<<~F)B*O^F8R3oj0f`VYXqWH-;2i~7 zL<(6t^kEr-f- zjb}86s+u|o?H=LVfN|0xUkVI0Ax=6W(3&^!xP!quz2CU$k@FE@*B^azEdQcU81}b( zKYt#te}PznpQw!Bm|b9?*4U{Sp1S5t6jZ%zX zus4tALeqLMks3cnl)&;mMBR-hMVmM@<9kSd-(nn#gQfU7#RWKs2R%^OnPOi1_Bu*K z<=VUxjxiY3(mie!kS#(9s%%J-}eC((x zi~}||1q(&n7<7Y(Au>#k_cVNW~x(*Zg;=}f1#EB2MjxY*Io2ciA8T?n~YOC3I)Uv4^kuQ zVwu{uo;LDgF^Gkmeit?fxw@1y#~c008Im z=FIf=7KH9)e0HDWhizm_8&$O4T`#F6DJH8n>=Y9_OtSlyk@*$}#dx*G)VKI()}q1E zDBj8~%L*XQ&c<{Nnpr;4W|~v&hCcCQ+f9`Tb#uYde8&h1O%c#oq#+q$T#ht@cF?zw z78QmHN0Um&KPi;^`p@2gB>9Oe;OGt|ya7GY;V0Xb80q8o5SlLyALxnmDdlM%1$bP$ zM{mDnD#)sYh1Et=`%q3?JpH@{Nek9&+)T;4j%KxpnmWvsoTTjPx*~Fl&2tvKm-pm9 z5YOIgA~~2}RdNeg;yKz3RNL%g?5h3V;gIrY>CTtC64e8xo$Yhj5>4**`Mm<=I(0F8 z0Dw9svtm}aJ+ewxxF+`@zT2_e;xdIon(}_EP>HZYB9iPOcSC6RqCzKbsC$CxV;5sf ziYYk?Bf^EEe+Ws(nL&l8jb>YG%jQjKYs2|3db{s{_ip|rC`{x+PY)Cmqwx{rlhJnP z)RiWGF0C+3pi`9hnV|a_&1+bmtvq6=;-e`vj$>LFc629s(sXn?khxO$%bN*ZRdzBX zf$Deu7&%z!L8LC@lk5RL7l#s~+_$?$`-wE`x~7nQ+hI4@@5eunx$czb&~ttF9M;(2 z6fz;3m#cYZ)LSI^>rLtyY)T*^N8FV@?^qO`6brQd>&#*K+9j=3+5XlO!+YF2BV~m7 zr3>X18B!5%u`~>ujkCJbX3Bj;9V-sIFf%(p#_e!WeCw-rbIZaK|J<%%NNm)&r z@GZFX^tfKge9T3NOM#N}89qSUI6K>G6p?1)X}81tP@bQ@*5FrXB@-6{M?pcmABBet z?Pxiy_=rhVZse4L%FpLLW^g~{z90fEIMy=SPI1eG_3bQBg>1pJns>^KF?~DFy;$Q; zNt|0!)?d|BW$J8mLh|L_mzOV^5Sh)aV>3-6>h9i6npd7I4qsXFH7iU6Kvhm2IYZ8( zIJ?i(GZ|c`vf`Wy_*3(xxMpo10J0o8=_MxL>EpnU{j9vAJD=jO)>2Uqze|4re1IBW zNc5fr{jgbL{1f$FC+?qChoXJ3qbY^i>tBV_2){CPSid6#+rLn?yy9M8Q=Vd< zaRwy0zLwhs5(mV-7HCB0G;wXTv1yRYFeVMUYyXHWqyZ*)UI)fICeR&>@C(HT6IMh2 zjXb__&G8=(yL*kcBX^@X7Y$%}_|?m4*d9x%b<_pWIlGGK~MIqXB- z{i5V2P!uSu+pfi1G#vek>j=Y>UW7GtqjTY4;T5H4|N}=z{cZbMjDGQ@f z`s5vU?YFe1s{H;}T^|E6H*6Hmwrqn^-dutoA(l3M#lAVFG2 zc3kVM&iEV8?;$JDpP&JmeAg}}pC~NMDwttn6#l|{z+k8_Jnl&H05EK0LRxkTDs_bR zORM>0TJ!n5H=9BEtocn)5c)NGYiqf%sA%V%urV#*NT>fg-E(WT>k`&2@3K=2ao?nkLVkdIb!)_{pmgg+E>s+NWWE|Ck$w^?iYTxFqh4DYhvr2M9;u zzTL`q`Ka{eQEiu#F)X4*(QXy^)V67A#j1AV(4r|pn=VCD^;zQ!i*@YGf+nMo6@))} zx=k?cE$Yi0Z@9G%l6617I}DRg!`YY|)bW?|lri~Cb_f$)D-&UK%bL|dgxY>QCph_YL8l`(PzFH^3{IyHB#O) zx`PS3X9bRHV`u^SLBvJ9a@v

J?x^7juL;QxJsGIZT+t-bJqcXx4jN%0XTaQf&W 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 NJktMze0=}@{12=8-j4tP diff --git a/FreeRTOS/Demo/Common/Minimal/TaskNotify.c b/FreeRTOS/Demo/Common/Minimal/TaskNotify.c index f963a758b..7bf9c53e5 100644 --- a/FreeRTOS/Demo/Common/Minimal/TaskNotify.c +++ b/FreeRTOS/Demo/Common/Minimal/TaskNotify.c @@ -426,8 +426,8 @@ TickType_t xPeriod; xPeriod = xMinPeriod; } + /* Change the timer period and start the timer. */ xTimerChangePeriod( xTimer, xPeriod, portMAX_DELAY ); - xTimerStart( xTimer, portMAX_DELAY ); /* Block waiting for the notification again with a different period. Sometimes the period will be higher than the tasks block time, sometimes diff --git a/FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h b/FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h deleted file mode 100644 index a3b04f61a..000000000 --- a/FreeRTOS/Demo/MicroBlaze/FreeRTOSConfig.h +++ /dev/null @@ -1,116 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -#include "xparameters.h" - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ - -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 0 -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ ( ( unsigned long ) 100000000 ) -#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) -#define configMAX_PRIORITIES ( 4 ) -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 120 ) -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 18 * 1024 ) ) -#define configMAX_TASK_NAME_LEN ( 5 ) -#define configUSE_TRACE_FACILITY 0 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 0 - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ - -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 0 -#define INCLUDE_vTaskCleanUpResources 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 - - -#endif /* FREERTOS_CONFIG_H */ diff --git a/FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c b/FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c deleted file mode 100644 index df67ec41a..000000000 --- a/FreeRTOS/Demo/MicroBlaze/ParTest/ParTest.c +++ /dev/null @@ -1,189 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/*----------------------------------------------------------- - * Simple parallel port IO routines. - *-----------------------------------------------------------*/ - -/* Kernel includes. */ -#include "FreeRTOS.h" - -/* Demo application includes. */ -#include "partest.h" - -/* Library includes. */ -#include "xgpio_l.h" - -/* Misc hardware specific definitions. */ -#define partstALL_AS_OUTPUT 0x00 -#define partstCHANNEL_1 0x01 -#define partstMAX_4BIT_LED 0x03 - -/* The outputs are split into two IO sections, these variables maintain the -current value of either section. */ -static unsigned portBASE_TYPE uxCurrentOutput4Bit, uxCurrentOutput5Bit; - -/*-----------------------------------------------------------*/ -/* - * Setup the IO for the LED outputs. - */ -void vParTestInitialise( void ) -{ - /* Set both sets of LED's on the demo board to outputs. */ - XGpio_mSetDataDirection( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT ); - XGpio_mSetDataDirection( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, partstALL_AS_OUTPUT ); - - /* Start with all outputs off. */ - uxCurrentOutput4Bit = 0; - XGpio_mSetDataReg( XPAR_LEDS_4BIT_BASEADDR, partstCHANNEL_1, 0x00 ); - uxCurrentOutput5Bit = 0; - XGpio_mSetDataReg( XPAR_LEDS_POSITIONS_BASEADDR, partstCHANNEL_1, 0x00 ); -} -/*-----------------------------------------------------------*/ - -void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue ) -{ -unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue; - - portENTER_CRITICAL(); - { - /* Which IO section does the LED being set/cleared belong to? The - 4 bit or 5 bit outputs? */ - if( uxLED <= partstMAX_4BIT_LED ) - { - uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR; - puxCurrentValue = &uxCurrentOutput4Bit; - } - else - { - uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR; - puxCurrentValue = &uxCurrentOutput5Bit; - uxLED -= partstMAX_4BIT_LED; - } - - /* Setup the bit mask accordingly. */ - uxLED = 0x01 << uxLED; - - /* Maintain the current output value. */ - if( xValue ) - { - *puxCurrentValue |= uxLED; - } - else - { - *puxCurrentValue &= ~uxLED; - } - - /* Write the value to the port. */ - XGpio_mSetDataReg( uxBaseAddress, partstCHANNEL_1, *puxCurrentValue ); - } - portEXIT_CRITICAL(); -} -/*-----------------------------------------------------------*/ - -void vParTestToggleLED( unsigned portBASE_TYPE uxLED ) -{ -unsigned portBASE_TYPE uxBaseAddress, *puxCurrentValue; - - portENTER_CRITICAL(); - { - /* Which IO section does the LED being toggled belong to? The - 4 bit or 5 bit outputs? */ - if( uxLED <= partstMAX_4BIT_LED ) - { - uxBaseAddress = XPAR_LEDS_4BIT_BASEADDR; - puxCurrentValue = &uxCurrentOutput4Bit; - } - else - { - uxBaseAddress = XPAR_LEDS_POSITIONS_BASEADDR; - puxCurrentValue = &uxCurrentOutput5Bit; - uxLED -= partstMAX_4BIT_LED; - } - - /* Setup the bit mask accordingly. */ - uxLED = 0x01 << uxLED; - - /* Maintain the current output value. */ - if( *puxCurrentValue & uxLED ) - { - *puxCurrentValue &= ~uxLED; - } - else - { - *puxCurrentValue |= uxLED; - } - - /* Write the value to the port. */ - XGpio_mSetDataReg(uxBaseAddress, partstCHANNEL_1, *puxCurrentValue ); - } - portEXIT_CRITICAL(); -} - - diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/bitinit.opt b/FreeRTOS/Demo/MicroBlaze/__xps/bitinit.opt deleted file mode 100644 index 2496fab76..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/bitinit.opt +++ /dev/null @@ -1 +0,0 @@ - -pe microblaze_0 RTOSDemo/executable.elf diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/libgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/libgen.opt deleted file mode 100644 index 77b154845..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/libgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex4 diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/platgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/platgen.opt deleted file mode 100644 index f56ee64ea..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/platgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex4 -lang vhdl -st xst diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/MicroBlaze/__xps/rtosdemo_compiler.opt deleted file mode 100644 index c108c4082..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/rtosdemo_compiler.opt +++ /dev/null @@ -1,23 +0,0 @@ -microblaze_0 -RTOSDEMO_SOURCES = main.c ParTest/ParTest.c ../../Source/tasks.c ../../Source/queue.c ../../Source/list.c ../../Source/portable/MemMang/heap_1.c ../../Source/portable/GCC/MicroBlaze/port.c ../../Source/portable/GCC/MicroBlaze/portasm.s ../Common/Minimal/flash.c serial/serial.c ../Common/Minimal/comtest.c ../Common/Minimal/integer.c ../Common/Minimal/semtest.c ../Common/Minimal/dynamic.c ../Common/Minimal/PollQ.c ../Common/Minimal/BlockQ.c -RTOSDEMO_HEADERS = FreeRTOSConfig.h -RTOSDEMO_CC = mb-gcc -RTOSDEMO_CC_SIZE = mb-size -RTOSDEMO_CC_OPT = -Os -RTOSDEMO_CFLAGS = -D MICROBLAZE_GCC -Wall -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./microblaze_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./microblaze_0/include/ -IDev/FreeRTOS/Demo/MicroBlaze/ -I. -I../Common/include -I../../Source/include -I../../Source/portable/GCC/MicroBlaze -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_CC_PREPROC_FLAG = # -Wp, -RTOSDEMO_CC_ASM_FLAG = # -Wa, -RTOSDEMO_CC_LINKER_FLAG = -Wl,-Map=rtosdemo.map -RTOSDEMO_LINKER_SCRIPT = -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_GLOBPTR_FLAG= # -mxl-gp-opt -RTOSDEMO_MODE = executable -RTOSDEMO_LIBG_OPT = -$(RTOSDEMO_MODE) microblaze_0 -RTOSDEMO_CC_SOFTMUL_FLAG= -mno-xl-soft-mul -RTOSDEMO_CC_START_ADDR_FLAG= # -Wl,-defsym -Wl,_TEXT_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # -Wl,-defsym -Wl,_STACK_SIZE= - $(RTOSDEMO_CC_SOFTMUL_FLAG) \ diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/simgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/simgen.opt deleted file mode 100644 index 236453ae0..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/simgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex4 -lang vhdl -pe microblaze_0 RTOSDemo/executable.elf -s mti diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt b/FreeRTOS/Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt deleted file mode 100644 index 67e70306a..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/testapp_peripheral_compiler.opt +++ /dev/null @@ -1,23 +0,0 @@ -microblaze_0 -TESTAPP_PERIPHERAL_SOURCES = TestApp_Peripheral/src/TestApp_Peripheral.c TestApp_Peripheral/src/xuartlite_selftest_example.c -TESTAPP_PERIPHERAL_HEADERS = -TESTAPP_PERIPHERAL_CC = mb-gcc -TESTAPP_PERIPHERAL_CC_SIZE = mb-size -TESTAPP_PERIPHERAL_CC_OPT = -O2 -TESTAPP_PERIPHERAL_CFLAGS = -TESTAPP_PERIPHERAL_CC_SEARCH = # -B -TESTAPP_PERIPHERAL_LIBPATH = -L./microblaze_0/lib/ # -L -TESTAPP_PERIPHERAL_INCLUDES = -I./microblaze_0/include/ # -I -TESTAPP_PERIPHERAL_LFLAGS = # -l -TESTAPP_PERIPHERAL_CC_PREPROC_FLAG = # -Wp, -TESTAPP_PERIPHERAL_CC_ASM_FLAG = # -Wa, -TESTAPP_PERIPHERAL_CC_LINKER_FLAG = # -Wl, -TESTAPP_PERIPHERAL_LINKER_SCRIPT = TestApp_Peripheral/src/TestApp_Peripheral_LinkScr -TESTAPP_PERIPHERAL_CC_DEBUG_FLAG = -g -TESTAPP_PERIPHERAL_CC_GLOBPTR_FLAG= # -mxl-gp-opt -TESTAPP_PERIPHERAL_MODE = executable -TESTAPP_PERIPHERAL_LIBG_OPT = -$(TESTAPP_PERIPHERAL_MODE) microblaze_0 -TESTAPP_PERIPHERAL_CC_SOFTMUL_FLAG= -mno-xl-soft-mul -TESTAPP_PERIPHERAL_CC_START_ADDR_FLAG= # -Wl,-defsym -Wl,_TEXT_START_ADDR= -TESTAPP_PERIPHERAL_CC_STACK_SIZE_FLAG= # -Wl,-defsym -Wl,_STACK_SIZE= - $(TESTAPP_PERIPHERAL_CC_SOFTMUL_FLAG) \ diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/vpgen.opt b/FreeRTOS/Demo/MicroBlaze/__xps/vpgen.opt deleted file mode 100644 index 8ea8f6640..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/vpgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p xc4vfx12ff668-10 diff --git a/FreeRTOS/Demo/MicroBlaze/__xps/xpsxflow.opt b/FreeRTOS/Demo/MicroBlaze/__xps/xpsxflow.opt deleted file mode 100644 index bf6b9048d..000000000 --- a/FreeRTOS/Demo/MicroBlaze/__xps/xpsxflow.opt +++ /dev/null @@ -1 +0,0 @@ --device xc4vfx12ff668-10 diff --git a/FreeRTOS/Demo/MicroBlaze/_impact.cmd b/FreeRTOS/Demo/MicroBlaze/_impact.cmd deleted file mode 100644 index a712a7180..000000000 --- a/FreeRTOS/Demo/MicroBlaze/_impact.cmd +++ /dev/null @@ -1,7 +0,0 @@ -setMode -bs -setCable -port auto -identify -identifyMPM -setAttribute -position 3 -attr configFileName -value "implementation/download.bit" -program -p 3 -quit diff --git a/FreeRTOS/Demo/MicroBlaze/crt0.s b/FreeRTOS/Demo/MicroBlaze/crt0.s deleted file mode 100644 index 8198096e8..000000000 --- a/FreeRTOS/Demo/MicroBlaze/crt0.s +++ /dev/null @@ -1,126 +0,0 @@ -###################################-*-asm*- -# -# Copyright (c) 2001 Xilinx, Inc. All rights reserved. -# -# Xilinx, Inc. CONFIDENTIAL -# -# XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A -# COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS -# ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR -# STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION -# IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE -# FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. -# XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO -# THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO -# ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE -# FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY -# AND FITNESS FOR A PARTICULAR PURPOSE. -# -# crt0.s -# -# C RunTime: -# Used for initialization of small data -# anchors and stack for programs compiled using -# Xilinx Gnu Tools. This routine also intializes the -# exception and interrupt handlers -# -# $Id: crt0.s,v 1.1.4.2 2005/05/26 21:50:39 vasanth Exp $ -# -####################################### - -/* Vector map (Interrupts, Exceptions, Breakpoints) */ -# # 0x00 # Jump to Start -# # 0x04 # nop -# # 0x08 # Imm instr for soft exception address [Hi halfword] -# # 0x0c # Jump to sof Exception handler [Lo halfword] -# # 0x10 # Imm instr for interrupt address [Hi halfword] -# # 0x14 # Jump to interrupt handler [Lo halfword] -# # 0x18 # nop - Reserved for breakpoint vector -# # 0x1C # nop - Reserved for breakpoint vector -# # 0x20 # Imm instr for hw exception address [Hi halfword] -# # 0x24 # Jump instr to hw exception handler [Lo halfword] - - .globl _start - -/* Set the exception and interrupt address vectors */ -/* to jump to the appropriate handlers */ - - .align 2 - .ent _start - _start: - bri _start1 # 0x00 - nop # 0x04 - nop # 0x08 # Reserve space for software exception vector - nop # 0x0c - nop # 0x10 # Reserve space for interrupt vector - nop # 0x14 - nop # 0x18 # Reserve space for breakpoint vector - nop # 0x1c - nop # 0x18 # Reserve space for hw exception vector - nop # 0x1c - - _start1: -/* Set the Small Data Anchors and the Stack pointer */ - la r13, r0, _SDA_BASE_ - la r2, r0, _SDA2_BASE_ - la r1, r0, _stack-16 # 16 bytes (4 words are needed by - # crt for args and link reg ) - -/* Set the opcodes brai and imm for handlers */ - la r6,r0,0xb8080000 # [opcode for brai ] - swi r6,r0,0x4 # [brai opcode for reset] - swi r6,r0,0xc # [brai opcode for exception] - swi r6,r0,0x14 # [brai opcode for interrupt] - swi r6,r0,0x24 # [brai opcode for hw exceptions] - - la r6,r0,0xb0000000 # [opcode for imm ] - swi r6,r0,0x0 # [imm opcode for reset] - swi r6,r0,0x8 # [imm opcode for exception] - swi r6,r0,0x10 # [imm opocde for interrupt] - swi r6,r0,0x20 # [imm opocde for hw exceptions] - -/* Set Reset vector */ - la r6,r0,_start1 - sw r6,r1,r0 - lhu r7,r1,r0 - shi r7,r0, 0x2 # [imm for reset] - shi r6,r0, 0x6 # [lower half for reset] - -/* Set Software Exception Handler */ - la r6,r0,_exception_handler - sw r6,r1,r0 - lhu r7,r1,r0 - shi r7,r0, 0xa # [imm for exception] - shi r6,r0, 0xe # [lower half for exception ] - -/* Set Interrupt Handler */ - la r6,r0,_interrupt_handler - sw r6,r1,r0 - lhu r7,r1,r0 - shi r7,r0, 0x12 # [imm for exception] - shi r6,r0, 0x16 # [lower half for intterupt ] - -/* Set HW Exception Handler */ - la r6,r0,_hw_exception_handler - sw r6,r1,r0 - lhu r7,r1,r0 - shi r7,r0, 0x22 # [imm for exception] - shi r6,r0, 0x26 # [lower half for hw exception] - -/* initialize bss sections */ - brlid r15,_crtinit - nop - -/* Adjust the stack pointer */ - addi r1,r1,16 - -/* Fall through to exit */ - .end _start - -/* Use this exit function */ - .globl exit # exit library call - .ent exit -exit: - bri exit - .end exit - diff --git a/FreeRTOS/Demo/MicroBlaze/data/system.ucf b/FreeRTOS/Demo/MicroBlaze/data/system.ucf deleted file mode 100644 index 81a63a2f8..000000000 --- a/FreeRTOS/Demo/MicroBlaze/data/system.ucf +++ /dev/null @@ -1,74 +0,0 @@ -############################################################################ -## This system.ucf file is generated by Base System Builder based on the -## settings in the selected Xilinx Board Definition file. Please add other -## user constraints to this file based on customer design specifications. -############################################################################ - -Net sys_clk_pin LOC=AE14; -Net sys_clk_pin IOSTANDARD = LVCMOS33; -Net sys_rst_pin LOC=D6; -Net sys_rst_pin PULLUP; -## System level constraints -Net sys_clk_pin TNM_NET = sys_clk_pin; -TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 10000 ps; -Net sys_rst_pin TIG; - -## FPGA pin constraints -Net fpga_0_RS232_Uart_RX_pin LOC=W2; -Net fpga_0_RS232_Uart_RX_pin IOSTANDARD = LVCMOS33; -Net fpga_0_RS232_Uart_TX_pin LOC=W1; -Net fpga_0_RS232_Uart_TX_pin IOSTANDARD = LVCMOS33; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> LOC=G5; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> PULLUP; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> SLEW = SLOW; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> DRIVE = 2; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<0> TIG; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> LOC=G6; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> PULLUP; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> SLEW = SLOW; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> DRIVE = 2; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<1> TIG; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> LOC=A11; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> PULLUP; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> SLEW = SLOW; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> DRIVE = 2; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<2> TIG; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> LOC=A12; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> PULLUP; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> SLEW = SLOW; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> DRIVE = 2; -Net fpga_0_LEDs_4Bit_GPIO_IO_pin<3> TIG; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> LOC=C6; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> PULLUP; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> SLEW = SLOW; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> DRIVE = 2; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<0> TIG; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> LOC=F9; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> PULLUP; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> SLEW = SLOW; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> DRIVE = 2; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<1> TIG; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> LOC=A5; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> PULLUP; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> SLEW = SLOW; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> DRIVE = 2; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<2> TIG; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> LOC=E10; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> PULLUP; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> SLEW = SLOW; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> DRIVE = 2; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<3> TIG; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> LOC=E2; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> IOSTANDARD = LVCMOS25; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> PULLUP; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> SLEW = SLOW; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> DRIVE = 2; -Net fpga_0_LEDs_Positions_GPIO_IO_pin<4> TIG; diff --git a/FreeRTOS/Demo/MicroBlaze/etc/bitgen.ut b/FreeRTOS/Demo/MicroBlaze/etc/bitgen.ut deleted file mode 100644 index 442444880..000000000 --- a/FreeRTOS/Demo/MicroBlaze/etc/bitgen.ut +++ /dev/null @@ -1,21 +0,0 @@ --g ConfigRate:4 --g CclkPin:PULLUP --g TdoPin:PULLNONE --g M1Pin:PULLDOWN --g DonePin:PULLUP --g DriveDone:No --g StartUpClk:JTAGCLK --g DONE_cycle:4 --g GTS_cycle:5 --g M0Pin:PULLUP --g M2Pin:PULLUP --g ProgPin:PULLUP --g TckPin:PULLUP --g TdiPin:PULLUP --g TmsPin:PULLUP --g DonePipe:No --g GWE_cycle:6 --g LCK_cycle:NoWait --g Security:NONE --m --g Persist:No diff --git a/FreeRTOS/Demo/MicroBlaze/etc/bitgen_spartan3.ut b/FreeRTOS/Demo/MicroBlaze/etc/bitgen_spartan3.ut deleted file mode 100644 index 65522563b..000000000 --- a/FreeRTOS/Demo/MicroBlaze/etc/bitgen_spartan3.ut +++ /dev/null @@ -1,15 +0,0 @@ --g CclkPin:PULLUP --g TdoPin:PULLNONE --g M1Pin:PULLDOWN --g DonePin:PULLUP --g StartUpClk:JTAGCLK --g M0Pin:PULLUP --g M2Pin:PULLUP --g ProgPin:PULLUP --g TckPin:PULLUP --g TdiPin:PULLUP --g TmsPin:PULLUP --g LCK_cycle:NoWait --g Security:NONE --m --g Persist:No diff --git a/FreeRTOS/Demo/MicroBlaze/etc/download.cmd b/FreeRTOS/Demo/MicroBlaze/etc/download.cmd deleted file mode 100644 index 15728dcff..000000000 --- a/FreeRTOS/Demo/MicroBlaze/etc/download.cmd +++ /dev/null @@ -1,6 +0,0 @@ -setMode -bscan -setCable -p auto -identify -assignfile -p 3 -file implementation/download.bit -program -p 3 -quit diff --git a/FreeRTOS/Demo/MicroBlaze/etc/fast_runtime.opt b/FreeRTOS/Demo/MicroBlaze/etc/fast_runtime.opt deleted file mode 100644 index 7335e7a21..000000000 --- a/FreeRTOS/Demo/MicroBlaze/etc/fast_runtime.opt +++ /dev/null @@ -1,80 +0,0 @@ -FLOWTYPE = FPGA; -############################################################### -## Filename: fast_runtime.opt -## -## Option File For Xilinx FPGA Implementation Flow for Fast -## Runtime. -## -## Version: 4.1.1 -############################################################### -# -# Options for Translator -# -# Type "ngdbuild -h" for a detailed list of ngdbuild command line options -# -Program ngdbuild --p ; # Partname to use - picked from xflow commandline --nt timestamp; # NGO File generation. Regenerate only when - # source netlist is newer than existing - # NGO file (default) --bm .bmm # Block RAM memory map file -; # User design - pick from xflow command line --uc .ucf; # ucf constraints -.ngd; # Name of NGD file. Filebase same as design filebase -End Program ngdbuild - -# -# Options for Mapper -# -# Type "map -h " for a detailed list of map command line options -# -Program map --o _map.ncd; # Output Mapped ncd file --pr b; # Pack internal FF/latches into IOBs -#-fp .mfp; # Floorplan file -.ngd; # Input NGD file -.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 _map.twr; # Output trace report file --xml _map.twx; # Output XML version of the timing report -#-tsi _map.tsi; # Produce Timing Specification Interaction report -_map.ncd; # Input mapped ncd -.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 -_map.ncd; # Input mapped NCD file -.ncd; # Output placed and routed NCD -.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 .twr; # Output trace report file --xml .twx; # Output XML version of the timing report -#-tsi .tsi; # Produce Timing Specification Interaction report -.ncd; # Input placed and routed ncd -.pcf; # Physical constraints file -END Program post_par_trce - - diff --git a/FreeRTOS/Demo/MicroBlaze/etc/xmd_microblaze_0.opt b/FreeRTOS/Demo/MicroBlaze/etc/xmd_microblaze_0.opt deleted file mode 100644 index 43994b0af..000000000 --- a/FreeRTOS/Demo/MicroBlaze/etc/xmd_microblaze_0.opt +++ /dev/null @@ -1 +0,0 @@ -connect mb mdm -cable type xilinx_parallel port LPT1 frequency 5000000 -debugdevice cpunr 1 diff --git a/FreeRTOS/Demo/MicroBlaze/main.c b/FreeRTOS/Demo/MicroBlaze/main.c deleted file mode 100644 index 1d701108e..000000000 --- a/FreeRTOS/Demo/MicroBlaze/main.c +++ /dev/null @@ -1,475 +0,0 @@ -#error This project has been reworked for use with a later version of the Xilinx tools and IP. Please find more up to date projects in other FreeRTOS/Demo/MicroBlaze_nnn directories. - -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* - * Creates all the demo application tasks, then starts the scheduler. The WEB - * documentation provides more details of the standard demo application tasks. - * - * In addition to the standard tasks, main() creates two "Register Check" - * tasks. These tasks write known values into every general purpose register, - * then check each register to ensure it still contains the expected (written) - * value. The register check tasks operate at the idle priority so will get - * repeatedly preempted. A register being found to contain an incorrect value - * following such a preemption would be indicative of an error in the context - * switch mechanism. - * - * Main.c also creates a task called "Check". This only executes every three - * seconds but has the highest priority so is guaranteed to get processor time. - * Its main function is to check that all the other tasks are still operational. - * Each task (other than the "flash" tasks) maintains a unique count that is - * incremented each time the task successfully completes its function. Should - * any error occur within such a task the count is permanently halted. The - * check task inspects the count of each task to ensure it has changed since - * the last time the check task executed. If all the count variables have - * changed all the tasks are still executing error free, and the check task - * toggles the onboard LED. Should any task contain an error at any time - * the LED toggle rate will change from 3 seconds to 500ms. - * - */ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "task.h" - -/* Demo application includes. */ -#include "partest.h" -#include "flash.h" -#include "comtest2.h" -#include "integer.h" -#include "semtest.h" -#include "BlockQ.h" -#include "dynamic.h" -#include "PollQ.h" - -/* Hardware library includes. */ -#include - -/* The rate at which the 'check' LED will flash when no errors have been -detected. */ -#define mainNO_ERROR_CHECK_PERIOD 3000 - -/* The rate at which the 'check' LED will flash when an error has been -detected in one of the demo tasks. */ -#define mainERROR_CHECK_PERIOD 500 - -/* Demo application task priorities. */ -#define mainLED_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainCHECK_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 ) -#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 1 ) -#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 2 ) - -/* Software cannot influence the BAUD rate used by the simple UART -implementation. */ -#define mainBAUD_RATE 0 - -/* The LED flashed by the 'check' task to indicate the system status. */ -#define mainCHECK_TASK_LED 3 - -/* The first LED flashed by the COM port test tasks. LED mainCOM_TEST_LED + 1 -will also be used. */ -#define mainCOM_TEST_LED 4 - -/* The register test task does not make any function calls so does not require -much stack at all. */ -#define mainTINY_STACK 70 - -/* - * The task that executes at the highest priority and calls - * prvCheckOtherTasksAreStillRunning(). See the description at the top - * of the file. - */ -static void vErrorChecks( void *pvParameters ); - -/* - * Checks that all the demo application tasks are still executing without error - * - as described at the top of the file. - */ -static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void ); - -/* - * The register test task as described at the top of this file. - */ -static void vRegisterTest( void *pvParameters ); - -/* - * Perform any necessary hardware configuration. - */ -static void prvSetupHardware( void ); - -/* Set to pdFAIL should an error be discovered in the register test tasks. */ -static unsigned long ulRegisterTestStatus = pdPASS; -const unsigned long *pulStatusAddr = &ulRegisterTestStatus; - -/*-----------------------------------------------------------*/ - -/* - * Create all the demo tasks - then start the scheduler. - */ -int main (void) -{ - /* When re-starting a debug session (rather than cold booting) we want - to ensure the installed interrupt handlers do not execute until after the - scheduler has been started. */ - portDISABLE_INTERRUPTS(); - - prvSetupHardware(); - - /* Start the standard demo application tasks. */ - vStartLEDFlashTasks( mainLED_TASK_PRIORITY ); - vAltStartComTestTasks( mainCOM_TEST_PRIORITY, mainBAUD_RATE, mainCOM_TEST_LED ); - vStartIntegerMathTasks( tskIDLE_PRIORITY ); - vStartSemaphoreTasks( mainSEM_TEST_PRIORITY ); - vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); - vStartDynamicPriorityTasks(); - vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); - - /* Create two register check tasks - using a different parameter for each. - The parameter is used to generate the known values written to the registers. */ - #if configUSE_PREEMPTION == 1 - xTaskCreate( vRegisterTest, "Reg1", mainTINY_STACK, ( void * ) 10, tskIDLE_PRIORITY, NULL ); - xTaskCreate( vRegisterTest, "Reg2", mainTINY_STACK, ( void * ) 20, tskIDLE_PRIORITY, NULL ); - #endif - - /* Create the 'check' task that is defined in this file. */ - xTaskCreate( vErrorChecks, "Check", configMINIMAL_STACK_SIZE, NULL, mainCHECK_TASK_PRIORITY, NULL ); - - /* Finally start the scheduler. */ - vTaskStartScheduler(); - - /* Should not get here as the processor is now under control of the - scheduler! */ - - return 0; -} -/*-----------------------------------------------------------*/ - -static void vErrorChecks( void *pvParameters ) -{ -TickType_t xDelayPeriod = mainNO_ERROR_CHECK_PERIOD; - - /* The parameters are not used. */ - ( void ) pvParameters; - - /* Cycle for ever, delaying then checking all the other tasks are still - operating without error. The delay period used will depend on whether - or not an error has been discovered in one of the demo tasks. */ - for( ;; ) - { - vTaskDelay( xDelayPeriod ); - if( !prvCheckOtherTasksAreStillRunning() ) - { - /* An error has been found. Shorten the delay period to make - the LED flash faster. */ - xDelayPeriod = mainERROR_CHECK_PERIOD; - } - - vParTestToggleLED( mainCHECK_TASK_LED ); - } -} -/*-----------------------------------------------------------*/ - -static portBASE_TYPE prvCheckOtherTasksAreStillRunning( void ) -{ -static portBASE_TYPE xAllTestsPass = pdTRUE; - - /* Return pdFALSE if any demo application task set has encountered - an error. */ - - if( xAreIntegerMathsTaskStillRunning() != pdTRUE ) - { - xAllTestsPass = pdFALSE; - } - - if( xAreComTestTasksStillRunning() != pdTRUE ) - { - xAllTestsPass = pdFALSE; - } - - if( xAreSemaphoreTasksStillRunning() != pdTRUE ) - { - xAllTestsPass = pdFALSE; - } - - if( xAreBlockingQueuesStillRunning() != pdTRUE ) - { - xAllTestsPass = pdFAIL; - } - - if( xAreDynamicPriorityTasksStillRunning() != pdTRUE ) - { - xAllTestsPass = ( long ) pdFAIL; - } - - if( xArePollingQueuesStillRunning() != pdTRUE ) - { - xAllTestsPass = ( long ) pdFAIL; - } - - /* Mutual exclusion on this variable is not necessary as we only read it. */ - if( ulRegisterTestStatus != pdPASS ) - { - xAllTestsPass = pdFALSE; - } - - return xAllTestsPass; -} -/*-----------------------------------------------------------*/ - -static void prvSetupHardware( void ) -{ - /* Ensure the interrupt controller is enabled in order that subsequent - code can successfully configure the peripherals. */ - XIntc_mMasterEnable( XPAR_OPB_INTC_0_BASEADDR ); - - /* Initialise the GPIO used for the LED's. */ - vParTestInitialise(); -} -/*-----------------------------------------------------------*/ - -static void vRegisterTest( void *pvParameters ) -{ - for( ;; ) - { - /* Fill the registers with their register number plus the offset - (added) value. The added value is passed in as a parameter so - is contained in r5. */ - asm volatile ( "addi r3, r5, 3 \n\t" \ - "addi r4, r5, 4 \n\t" \ - "addi r6, r5, 6 \n\t" \ - "addi r7, r5, 7 \n\t" \ - "addi r8, r5, 8 \n\t" \ - "addi r9, r5, 9 \n\t" \ - "addi r10, r5, 10 \n\t" \ - "addi r11, r5, 11 \n\t" \ - "addi r12, r5, 12 \n\t" \ - "addi r16, r5, 16 \n\t" \ - "addi r17, r5, 17 \n\t" \ - "addi r18, r5, 18 \n\t" \ - "addi r19, r5, 19 \n\t" \ - "addi r20, r5, 20 \n\t" \ - "addi r21, r5, 21 \n\t" \ - "addi r22, r5, 22 \n\t" \ - "addi r23, r5, 23 \n\t" \ - "addi r24, r5, 24 \n\t" \ - "addi r25, r5, 25 \n\t" \ - "addi r26, r5, 26 \n\t" \ - "addi r27, r5, 27 \n\t" \ - "addi r28, r5, 28 \n\t" \ - "addi r29, r5, 29 \n\t" \ - "addi r30, r5, 30 \n\t" \ - "addi r31, r5, 31 \n\t" - ); - - /* Now read back the register values to ensure they are as we expect. - This task will get preempted frequently so other tasks are likely to - have executed since the register values were written. */ - - /* r3 should contain r5 + 3. Subtract 3 to leave r3 equal to r5. */ - asm volatile ( "addi r3, r3, -3 " ); - - /* Compare r3 and r5. If they are not equal then either r3 or r5 - contains the wrong value and *pulStatusAddr is to pdFAIL. */ - asm volatile ( "cmp r3, r3, r5 \n\t" \ - "beqi r3, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" - ); - - /* Repeat for all the other registers. */ - asm volatile ( "addi r4, r4, -4 \n\t" \ - "cmp r4, r4, r5 \n\t" \ - "beqi r4, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r6, r6, -6 \n\t" \ - "cmp r6, r6, r5 \n\t" \ - "beqi r6, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r7, r7, -7 \n\t" \ - "cmp r7, r7, r5 \n\t" \ - "beqi r7, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r8, r8, -8 \n\t" \ - "cmp r8, r8, r5 \n\t" \ - "beqi r8, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r9, r9, -9 \n\t" \ - "cmp r9, r9, r5 \n\t" \ - "beqi r9, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r10, r10, -10 \n\t" \ - "cmp r10, r10, r5 \n\t" \ - "beqi r10, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r11, r11, -11 \n\t" \ - "cmp r11, r11, r5 \n\t" \ - "beqi r11, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r12, r12, -12 \n\t" \ - "cmp r12, r12, r5 \n\t" \ - "beqi r12, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r16, r16, -16 \n\t" \ - "cmp r16, r16, r5 \n\t" \ - "beqi r16, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r17, r17, -17 \n\t" \ - "cmp r17, r17, r5 \n\t" \ - "beqi r17, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r18, r18, -18 \n\t" \ - "cmp r18, r18, r5 \n\t" \ - "beqi r18, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r19, r19, -19 \n\t" \ - "cmp r19, r19, r5 \n\t" \ - "beqi r19, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r20, r20, -20 \n\t" \ - "cmp r20, r20, r5 \n\t" \ - "beqi r20, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r21, r21, -21 \n\t" \ - "cmp r21, r21, r5 \n\t" \ - "beqi r21, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r22, r22, -22 \n\t" \ - "cmp r22, r22, r5 \n\t" \ - "beqi r22, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r23, r23, -23 \n\t" \ - "cmp r23, r23, r5 \n\t" \ - "beqi r23, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r24, r24, -24 \n\t" \ - "cmp r24, r24, r5 \n\t" \ - "beqi r24, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r25, r25, -25 \n\t" \ - "cmp r25, r25, r5 \n\t" \ - "beqi r25, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r26, r26, -26 \n\t" \ - "cmp r26, r26, r5 \n\t" \ - "beqi r26, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r27, r27, -27 \n\t" \ - "cmp r27, r27, r5 \n\t" \ - "beqi r27, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r28, r28, -28 \n\t" \ - "cmp r28, r28, r5 \n\t" \ - "beqi r28, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r29, r29, -29 \n\t" \ - "cmp r29, r29, r5 \n\t" \ - "beqi r29, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r30, r30, -30 \n\t" \ - "cmp r30, r30, r5 \n\t" \ - "beqi r30, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" \ - "addi r31, r31, -31 \n\t" \ - "cmp r31, r31, r5 \n\t" \ - "beqi r31, 12 \n\t" \ - "lwi r3, r0, pulStatusAddr \n\t" \ - "sw r0, r0, r3 \n\t" - ); - } -} - - - diff --git a/FreeRTOS/Demo/MicroBlaze/platgen.opt b/FreeRTOS/Demo/MicroBlaze/platgen.opt deleted file mode 100644 index 1a984fdb6..000000000 --- a/FreeRTOS/Demo/MicroBlaze/platgen.opt +++ /dev/null @@ -1,7 +0,0 @@ --p -xc4vfx12ff668-10 --lang -vhdl --st -xst -system.mhs diff --git a/FreeRTOS/Demo/MicroBlaze/serial/serial.c b/FreeRTOS/Demo/MicroBlaze/serial/serial.c deleted file mode 100644 index 19d35847e..000000000 --- a/FreeRTOS/Demo/MicroBlaze/serial/serial.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -/* - BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR UART -*/ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "queue.h" -#include "task.h" - -/* Demo application includes. */ -#include "serial.h" - -/* Microblaze driver includes. */ -#include "xuartlite_l.h" -#include "xintc_l.h" - -/*-----------------------------------------------------------*/ - -/* Queues used to hold received characters, and characters waiting to be -transmitted. */ -static QueueHandle_t xRxedChars; -static QueueHandle_t xCharsForTx; - -/*-----------------------------------------------------------*/ - -xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength ) -{ -unsigned long ulControlReg, ulMask; - - /* NOTE: The baud rate used by this driver is determined by the hardware - parameterization of the UART Lite peripheral, and the baud value passed to - this function has no effect. */ - - /* Create the queues used to hold Rx and Tx characters. */ - xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) ); - xCharsForTx = xQueueCreate( uxQueueLength + 1, ( unsigned portBASE_TYPE ) sizeof( signed char ) ); - - if( ( xRxedChars ) && ( xCharsForTx ) ) - { - /* Disable the interrupt. */ - XUartLite_mDisableIntr( XPAR_RS232_UART_BASEADDR ); - - /* Flush the fifos. */ - ulControlReg = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET ); - XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_CONTROL_REG_OFFSET, ulControlReg | XUL_CR_FIFO_TX_RESET | XUL_CR_FIFO_RX_RESET ); - - /* Enable the interrupt again. The interrupt controller has not yet been - initialised so there is no chance of receiving an interrupt until the - scheduler has been started. */ - XUartLite_mEnableIntr( XPAR_RS232_UART_BASEADDR ); - - /* Enable the interrupt in the interrupt controller while maintaining - all the other bit settings. */ - ulMask = XIntc_In32( ( XPAR_OPB_INTC_0_BASEADDR + XIN_IER_OFFSET ) ); - ulMask |= XPAR_RS232_UART_INTERRUPT_MASK; - XIntc_Out32( ( XPAR_OPB_INTC_0_BASEADDR + XIN_IER_OFFSET ), ( ulMask ) ); - XIntc_mAckIntr( XPAR_INTC_SINGLE_BASEADDR, 2 ); - } - - return ( xComPortHandle ) 0; -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime ) -{ - /* The port handle is not required as this driver only supports one UART. */ - ( void ) pxPort; - - /* Get the next character from the buffer. Return false if no characters - are available, or arrive before xBlockTime expires. */ - if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) ) - { - return pdTRUE; - } - else - { - return pdFALSE; - } -} -/*-----------------------------------------------------------*/ - -signed portBASE_TYPE xSerialPutChar( xComPortHandle pxPort, signed char cOutChar, TickType_t xBlockTime ) -{ -portBASE_TYPE xReturn = pdTRUE; - - portENTER_CRITICAL(); - { - /* If the UART FIFO is full we can block posting the new data on the - Tx queue. */ - if( XUartLite_mIsTransmitFull( XPAR_RS232_UART_BASEADDR ) ) - { - if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS ) - { - xReturn = pdFAIL; - } - } - /* Otherwise, if there is data already in the queue we should add the - new data to the back of the queue to ensure the sequencing is - maintained. */ - else if( uxQueueMessagesWaiting( xCharsForTx ) ) - { - if( xQueueSend( xCharsForTx, &cOutChar, xBlockTime ) != pdPASS ) - { - xReturn = pdFAIL; - } - } - /* If the UART FIFO is not full and there is no data already in the - queue we can write directly to the FIFO without disrupting the - sequence. */ - else - { - XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cOutChar ); - } - } - portEXIT_CRITICAL(); - - return xReturn; -} -/*-----------------------------------------------------------*/ - -void vSerialClose( xComPortHandle xPort ) -{ - /* Not supported as not required by the demo application. */ - ( void ) xPort; -} -/*-----------------------------------------------------------*/ - -void vSerialISR( void *pvBaseAddress ) -{ -unsigned long ulISRStatus; -portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; -char cChar; - - /* Determine the cause of the interrupt. */ - ulISRStatus = XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_STATUS_REG_OFFSET ); - - if( ( ulISRStatus & ( XUL_SR_RX_FIFO_FULL | XUL_SR_RX_FIFO_VALID_DATA ) ) != 0 ) - { - /* A character is available - place it in the queue of received - characters. This might wake a task that was blocked waiting for - data. */ - cChar = ( char )XIo_In32( XPAR_RS232_UART_BASEADDR + XUL_RX_FIFO_OFFSET ); - xQueueSendFromISR( xRxedChars, &cChar, &xHigherPriorityTaskWoken ); - } - - if( ( ulISRStatus & XUL_SR_TX_FIFO_EMPTY ) != 0 ) - { - /* There is space in the FIFO - if there are any characters queue for - transmission they can be send to the UART now. This might unblock a - task that was waiting for space to become available on the Tx queue. */ - if( xQueueReceiveFromISR( xCharsForTx, &cChar, &xHigherPriorityTaskWoken ) == pdTRUE ) - { - XIo_Out32( XPAR_RS232_UART_BASEADDR + XUL_TX_FIFO_OFFSET, cChar ); - } - } - - /* If we woke any tasks we may require a context switch. */ - if( xHigherPriorityTaskWoken ) - { - portYIELD_FROM_ISR(); - } -} diff --git a/FreeRTOS/Demo/MicroBlaze/system.bsb b/FreeRTOS/Demo/MicroBlaze/system.bsb deleted file mode 100644 index cc6c27827..000000000 --- a/FreeRTOS/Demo/MicroBlaze/system.bsb +++ /dev/null @@ -1 +0,0 @@ -„æÄ®Òôtt¦Êè¬ÊäæÒÞÜ@Dn\b\dDvC„æÄ®Òôtt¦Êè„ÞÂäÈ@D°ÒØÒÜðD@D¬ÒäèÊð@h@š˜h`f@ŠìÂØêÂèÒÞÜ@ ØÂèÌÞäÚD@DbDv,„æÄ®ÒôttªàÈÂèʌ Ž‚@D‚¤†’¨Š†¨ª¤ŠD@DìÒäèÊðhDv,„æÄ®ÒôttªàÈÂèʌ Ž‚@DˆŠ¬’†Š¾¦’´ŠD@DðÆhìÌðbdDv%„æÄ®ÒôttªàÈÂèʌ Ž‚@D ‚†–‚ŽŠD@DÌÌllpDv&„æÄ®ÒôttªàÈÂèʌ Ž‚@D¦ ŠŠˆŽ¤‚ˆŠD@DZb`Dv"„æÄ®Òôtt‚ÈÈ äÞÆÊææÞä@DÚÒÆäÞÄØÂôÊDv=„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@D„ª¦¾Œ¤Š¢D@Db``\``````Dv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@D†‚†ŠD@Dœž@†‚†ŠDvN„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@D†‚†Š˜’œ–@†žš žœŠœ¨D@Dˆˆ¤¾¦ˆ¤‚š¾lhšðfdDv=„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@D†˜–¾Œ¤Š¢D@Db``\``````DvJ„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@DˆŠ„ªŽ¾’ŒD@DžÜZ†ÐÒà@®@ˆÊÄêÎ@šÞÈêØÊDv<„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@D˜š„„¤‚š@¦’´ŠD@DljjflDv>„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@D ¤ž†¾Œ¤Š¢D@Db``\``````Dv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôÊD@D¤¦¨¾ ž˜‚¤’¨²D@D`Dv2„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¤¦dfd¾ªÂäèD@DÞàľêÂäèØÒèÊDv9„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾„‚ªˆ¤‚¨ŠD@Drl``Dv7„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾ˆ‚¨‚¾„’¨¦D@DpDv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾žˆˆ¾ ‚¤’¨²D@D`Dv8„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D†¾ª¦Š¾ ‚¤’¨²D@D`Dv<„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@D’ž¨² ŠD@D°’˜¾ª‚¤¨¾¬bDv<„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäèD@Dª¦Š¾’œ¨Š¤¤ª ¨D@D¨¤ªŠDv-„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D˜Šˆæ¾h„ÒèD@DÞàľÎàÒÞDv;„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D˜Šˆæ¾h„ÒèD@D’ž¨² ŠD@D°’˜¾Ž ’ž¾¬bDv2„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D˜Šˆæ¾ ÞæÒèÒÞÜæD@DÞàľÎàÒÞDv@„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D˜Šˆæ¾ ÞæÒèÒÞÜæD@D’ž¨² ŠD@D°’˜¾Ž ’ž¾¬bDv0„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@DÞàľèÒÚÊä¾bD@DÞàľèÒÚÊäDv;„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÞàľèÒÚÊä¾bD@D†¾†žªœ¨¾®’ˆ¨D@DfdDv=„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÞàľèÒÚÊä¾bD@D†¾žœŠ¾¨’šŠ¤¾žœ˜²D@DbDv=„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÞàľèÒÚÊä¾bD@Dª¦Š¾’œ¨Š¤¤ª ¨D@D¨¤ªŠDv/„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾šŠš¨Š¦¨D@DŒ‚˜¦ŠDv1„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ŽŠœŠ¤‚¨Š¾ Š¤’ ¨Š¦¨D@D¨¤ªŠDv#„æÄ®ÒôttªàÈÂèʦ®@D¦®¾¦¨ˆ’œD@DœÞÜÊDv$„æÄ®ÒôttªàÈÂèʦ®@D¦®¾¦¨ˆžª¨D@DœÞÜÊDvA„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ˆ‚¨‚¾’œ¦D@DÈØÚľÆÜèØäD@D¨Êæè‚àྠÊäÒàÐÊäÂØDvA„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ˆ‚¨‚¾ ‚¤D@D†¾„‚¦Š‚ˆˆ¤D@D¨Êæè‚àྠÊäÒàÐÊäÂØDvD„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ ¤žŽ¤‚š¾’œ¦D@DÒØÚľÆÜèØäD@D¨Êæè‚àྠÊäÒàÐÊäÂØDvD„æÄ®ÒôttªàÈÂèʦ®@D¦®¾ ¤žŽ¤‚š¾ ‚¤D@D†¾„‚¦Š‚ˆˆ¤D@D¨Êæè‚àྠÊäÒàÐÊäÂØDvB„æÄ®ÒôttªàÈÂèʦ®@D¦®¾¦¨‚†–¾’œ¦D@DÈØÚľÆÜèØäD@D¨Êæè‚àྠÊäÒàÐÊäÂØDvB„æÄ®ÒôttªàÈÂèʦ®@D¦®¾¦¨‚†–¾ ‚¤D@D†¾„‚¦Š‚ˆˆ¤D@D¨Êæè‚àྠÊäÒàÐÊäÂØDv \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze/system.make b/FreeRTOS/Demo/MicroBlaze/system.make deleted file mode 100644 index 143cd8096..000000000 --- a/FreeRTOS/Demo/MicroBlaze/system.make +++ /dev/null @@ -1,258 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:E:\Dev\FreeRTOS\Demo\MicroBlaze\system.xmp -################################################################# - -# Name of the Microprocessor system -# The hardware specification of the system is in file : -# E:\Dev\FreeRTOS\Demo\MicroBlaze\system.mhs -# The software specification of the system is in file : -# E:\Dev\FreeRTOS\Demo\MicroBlaze\system.mss - -include system_incl.make - - -################################################################# -# EXTERNAL TARGETS -################################################################# -all: - @echo "Makefile to build a Microprocessor system :" - @echo "Run make with any of the following targets" - @echo " " - @echo " netlist : Generates the netlist for the given MHS " - @echo " bits : Runs Implementation tools to generate the bitstream" - @echo " exporttopn:Export to ProjNav" - @echo " " - @echo " libs : Configures the sw libraries for this system" - @echo " program : Compiles the program sources for all the processor instances" - @echo " " - @echo " init_bram: Initializes bitstream with BRAM data" - @echo " ace : Generate ace file from bitstream and elf" - @echo " download : Downloads the bitstream onto the board" - @echo " " - @echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode" - @echo " simmodel : Generates HDL simulation models for chosen simulation mode" - @echo " behavioral_model:Generates behavioral HDL models with BRAM initialization" - @echo " structural_model:Generates structural simulation HDL models with BRAM initialization" - @echo " timing_model : Generates timing simulation HDL models with BRAM initialization" - @echo " vp : Generates virtual platform model" - @echo " " - @echo " netlistclean: Deletes netlist" - @echo " bitsclean: Deletes bit, ncd, bmm files" - @echo " hwclean : Deletes implementation dir" - @echo " libsclean: Deletes sw libraries" - @echo " programclean: Deletes compiled ELF files" - @echo " swclean : Deletes sw libraries and ELF files" - @echo " simclean : Deletes simulation dir" - @echo " vpclean : Deletes virtualplatform dir" - @echo " clean : Deletes all generated files/directories" - @echo " " - @echo " make : (Default)" - @echo " Creates a Microprocessor system using default initializations" - @echo " specified for each processor in MSS file" - - -bits: $(SYSTEM_BIT) - -ace: $(SYSTEM_ACE) - -netlist: $(POSTSYN_NETLIST) - -libs: $(LIBRARIES) - -program: $(ALL_USER_ELF_FILES) - -download: $(DOWNLOAD_BIT) dummy - @echo "*********************************************" - @echo "Downloading Bitstream onto the target board" - @echo "*********************************************" - impact -batch etc/download.cmd - -init_bram: $(DOWNLOAD_BIT) - -sim: $(DEFAULT_SIM_SCRIPT) - cd simulation/behavioral; \ - $(SIM_CMD) & - -simmodel: $(DEFAULT_SIM_SCRIPT) - -behavioral_model: $(BEHAVIORAL_SIM_SCRIPT) - -structural_model: $(STRUCTURAL_SIM_SCRIPT) - -timing_model: $(TIMING_SIM_SCRIPT) - -vp: $(VPEXEC) - -clean: hwclean libsclean programclean simclean vpclean - rm -f _impact.cmd - -hwclean: netlistclean bitsclean - rm -rf implementation synthesis xst hdl - rm -rf xst.srp $(SYSTEM).srp - -netlistclean: - rm -f $(POSTSYN_NETLIST) - rm -f $(BMM_FILE) - -bitsclean: - rm -f $(SYSTEM_BIT) - rm -f implementation/$(SYSTEM).ncd - rm -f implementation/$(SYSTEM)_bd.bmm - -bitsclean: - -simclean: - rm -rf simulation/behavioral - -swclean: libsclean programclean - @echo "" - -libsclean: $(LIBSCLEAN_TARGETS) - -programclean: $(PROGRAMCLEAN_TARGETS) - -vpclean: - rm -rf virtualplatform - -################################################################# -# SOFTWARE PLATFORM FLOW -################################################################# - - -$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt - @echo "*********************************************" - @echo "Creating software libraries..." - @echo "*********************************************" - libgen $(LIBGEN_OPTIONS) $(MSSFILE) - - -microblaze_0_libsclean: - rm -rf microblaze_0/lib/ - -$(MICROBLAZE_0_XMDSTUB): $(LIBRARIES) - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDemo_program: $(RTOSDEMO_OUTPUT) - -$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \ - $(LIBRARIES) __xps/rtosdemo_compiler.opt - @mkdir -p $(RTOSDEMO_OUTPUT_DIR) - $(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \ - $(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \ - -xl-mode-$(RTOSDEMO_MODE) \ - $(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) - $(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) - -RTOSDemo_programclean: - rm -f $(RTOSDEMO_OUTPUT) - -################################################################# -# BOOTLOOP ELF FILES -################################################################# - - - -$(MICROBLAZE_0_BOOTLOOP): $(MICROBLAZE_BOOTLOOP) - @mkdir -p $(BOOTLOOP_DIR) - cp -f $(MICROBLAZE_BOOTLOOP) $(MICROBLAZE_0_BOOTLOOP) - -################################################################# -# HARDWARE IMPLEMENTATION FLOW -################################################################# - - -$(BMM_FILE) \ -$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \ - $(CORE_STATE_DEVELOPMENT_FILES) - @echo "****************************************************" - @echo "Creating system netlist for hardware specification.." - @echo "****************************************************" - platgen $(PLATGEN_OPTIONS) -st xst $(MHSFILE) - -$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES) - @echo "Running synthesis..." - bash -c "cd synthesis; ./synthesis.sh; cd .." - -$(SYSTEM_BIT): $(BMM_FILE) $(POSTSYN_NETLIST) __xps/xpsxflow.opt \ - $(UCF_FILE) $(BITGEN_UT_FILE) $(FASTRUNTIME_OPT_FILE) - @echo "Copying Xilinx Implementation tool scripts.." - @cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut - @cp -f $(FASTRUNTIME_OPT_FILE) implementation/fast_runtime.opt - @cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf - @echo "*********************************************" - @echo "Running Xilinx Implementation tools.." - @echo "*********************************************" - xflow -wd implementation -p $(DEVICE) -implement fast_runtime.opt $(SYSTEM).ngc - cd implementation; bitgen -w -f bitgen.ut $(SYSTEM) - -exporttopn: - @echo "You have chosen XPS for implementation tool flow." - @echo "Please select ProjNav as your implementation flow in Project Options." - @echo "In batch mode, use commad xset pnproj ." - -$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_FILES) __xps/bitinit.opt - @cp -f implementation/$(SYSTEM)_bd.bmm . - @echo "*********************************************" - @echo "Initializing BRAM contents of the bitstream" - @echo "*********************************************" - bitinit $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \ - -bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT) - @rm -f $(SYSTEM)_bd.bmm - -$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) - @echo "*********************************************" - @echo "Creating system ace file" - @echo "*********************************************" - xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT) -ace $(SYSTEM_ACE) - -################################################################# -# SIMULATION FLOW -################################################################# - - -################## BEHAVIORAL SIMULATION ################## - -$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \ - $(BRAMINIT_ELF_FILES) - @echo "*********************************************" - @echo "Creating behavioral simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE) - -################## STRUCTURAL SIMULATION ################## - -$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \ - $(BRAMINIT_ELF_FILES) - @echo "*********************************************" - @echo "Creating structural simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE) - - -################## TIMING SIMULATION ################## - -$(TIMING_SIM_SCRIPT): $(SYSTEM_BIT) __xps/simgen.opt \ - $(BRAMINIT_ELF_FILES) - @echo "*********************************************" - @echo "Creating timing simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE) - -################################################################# -# VIRTUAL PLATFORM FLOW -################################################################# - - -$(VPEXEC): $(MHSFILE) __xps/vpgen.opt - @echo "****************************************************" - @echo "Creating virtual platform for hardware specification.." - @echo "****************************************************" - vpgen $(VPGEN_OPTIONS) $(MHSFILE) - -dummy: - @echo "" - diff --git a/FreeRTOS/Demo/MicroBlaze/system.mhs b/FreeRTOS/Demo/MicroBlaze/system.mhs deleted file mode 100644 index 2999abcea..000000000 --- a/FreeRTOS/Demo/MicroBlaze/system.mhs +++ /dev/null @@ -1,196 +0,0 @@ -# ############################################################################## -# Created by Base System Builder Wizard for Xilinx EDK 7.1.2 Build EDK_H.12.5.1 -# Sun Nov 13 16:46:19 2005 -# Target Board: Xilinx Virtex 4 ML403 Evaluation Platform Rev 1 -# Family: virtex4 -# Device: xc4vfx12 -# Package: ff668 -# Speed Grade: -10 -# Processor: Microblaze -# System clock frequency: 100.000000 MHz -# Debug interface: On-Chip HW Debug Module -# On Chip Memory : 64 KB -# ############################################################################## - - - PARAMETER VERSION = 2.1.0 - - - PORT fpga_0_RS232_Uart_RX_pin = fpga_0_RS232_Uart_RX, DIR = INPUT - PORT fpga_0_RS232_Uart_TX_pin = fpga_0_RS232_Uart_TX, DIR = OUTPUT - PORT fpga_0_LEDs_4Bit_GPIO_IO_pin = fpga_0_LEDs_4Bit_GPIO_IO, DIR = INOUT, VEC = [0:3] - PORT fpga_0_LEDs_Positions_GPIO_IO_pin = fpga_0_LEDs_Positions_GPIO_IO, DIR = INOUT, VEC = [0:4] - PORT sys_clk_pin = dcm_clk_s, DIR = INPUT, SIGIS = DCMCLK - PORT sys_rst_pin = sys_rst_s, DIR = INPUT - - -BEGIN microblaze - PARAMETER INSTANCE = microblaze_0 - PARAMETER HW_VER = 4.00.a - PARAMETER C_DEBUG_ENABLED = 1 - PARAMETER C_NUMBER_OF_PC_BRK = 2 - PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 1 - PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 1 - BUS_INTERFACE DLMB = dlmb - BUS_INTERFACE ILMB = ilmb - BUS_INTERFACE DOPB = mb_opb - BUS_INTERFACE IOPB = mb_opb - PORT CLK = sys_clk_s - PORT DBG_CAPTURE = DBG_CAPTURE_s - PORT DBG_CLK = DBG_CLK_s - PORT DBG_REG_EN = DBG_REG_EN_s - PORT DBG_TDI = DBG_TDI_s - PORT DBG_TDO = DBG_TDO_s - PORT DBG_UPDATE = DBG_UPDATE_s - PORT Interrupt = Interrupt -END - -BEGIN opb_v20 - PARAMETER INSTANCE = mb_opb - PARAMETER HW_VER = 1.10.c - PARAMETER C_EXT_RESET_HIGH = 0 - PORT SYS_Rst = sys_rst_s - PORT OPB_Clk = sys_clk_s -END - -BEGIN opb_mdm - PARAMETER INSTANCE = debug_module - PARAMETER HW_VER = 2.00.a - PARAMETER C_MB_DBG_PORTS = 1 - PARAMETER C_USE_UART = 1 - PARAMETER C_UART_WIDTH = 8 - PARAMETER C_BASEADDR = 0x41400000 - PARAMETER C_HIGHADDR = 0x4140ffff - BUS_INTERFACE SOPB = mb_opb - PORT OPB_Clk = sys_clk_s - PORT DBG_CAPTURE_0 = DBG_CAPTURE_s - PORT DBG_CLK_0 = DBG_CLK_s - PORT DBG_REG_EN_0 = DBG_REG_EN_s - PORT DBG_TDI_0 = DBG_TDI_s - PORT DBG_TDO_0 = DBG_TDO_s - PORT DBG_UPDATE_0 = DBG_UPDATE_s -END - -BEGIN lmb_v10 - PARAMETER INSTANCE = ilmb - PARAMETER HW_VER = 1.00.a - PARAMETER C_EXT_RESET_HIGH = 0 - PORT SYS_Rst = sys_rst_s - PORT LMB_Clk = sys_clk_s -END - -BEGIN lmb_v10 - PARAMETER INSTANCE = dlmb - PARAMETER HW_VER = 1.00.a - PARAMETER C_EXT_RESET_HIGH = 0 - PORT SYS_Rst = sys_rst_s - PORT LMB_Clk = sys_clk_s -END - -BEGIN lmb_bram_if_cntlr - PARAMETER INSTANCE = dlmb_cntlr - PARAMETER HW_VER = 1.00.b - PARAMETER C_BASEADDR = 0x00000000 - PARAMETER C_HIGHADDR = 0x0000ffff - BUS_INTERFACE SLMB = dlmb - BUS_INTERFACE BRAM_PORT = dlmb_port -END - -BEGIN lmb_bram_if_cntlr - PARAMETER INSTANCE = ilmb_cntlr - PARAMETER HW_VER = 1.00.b - PARAMETER C_BASEADDR = 0x00000000 - PARAMETER C_HIGHADDR = 0x0000ffff - BUS_INTERFACE SLMB = ilmb - BUS_INTERFACE BRAM_PORT = ilmb_port -END - -BEGIN bram_block - PARAMETER INSTANCE = lmb_bram - PARAMETER HW_VER = 1.00.a - BUS_INTERFACE PORTA = ilmb_port - BUS_INTERFACE PORTB = dlmb_port -END - -BEGIN opb_uartlite - PARAMETER INSTANCE = RS232_Uart - PARAMETER HW_VER = 1.00.b - PARAMETER C_BAUDRATE = 9600 - PARAMETER C_DATA_BITS = 8 - PARAMETER C_ODD_PARITY = 0 - PARAMETER C_USE_PARITY = 0 - PARAMETER C_CLK_FREQ = 100000000 - PARAMETER C_BASEADDR = 0x40600000 - PARAMETER C_HIGHADDR = 0x4060ffff - BUS_INTERFACE SOPB = mb_opb - PORT OPB_Clk = sys_clk_s - PORT Interrupt = RS232_Uart_Interrupt - PORT RX = fpga_0_RS232_Uart_RX - PORT TX = fpga_0_RS232_Uart_TX -END - -BEGIN opb_gpio - PARAMETER INSTANCE = LEDs_4Bit - PARAMETER HW_VER = 3.01.b - PARAMETER C_GPIO_WIDTH = 4 - PARAMETER C_IS_DUAL = 0 - PARAMETER C_IS_BIDIR = 1 - PARAMETER C_ALL_INPUTS = 0 - PARAMETER C_BASEADDR = 0x40020000 - PARAMETER C_HIGHADDR = 0x4002ffff - BUS_INTERFACE SOPB = mb_opb - PORT OPB_Clk = sys_clk_s - PORT GPIO_IO = fpga_0_LEDs_4Bit_GPIO_IO -END - -BEGIN opb_gpio - PARAMETER INSTANCE = LEDs_Positions - PARAMETER HW_VER = 3.01.b - PARAMETER C_GPIO_WIDTH = 5 - PARAMETER C_IS_DUAL = 0 - PARAMETER C_IS_BIDIR = 1 - PARAMETER C_ALL_INPUTS = 0 - PARAMETER C_BASEADDR = 0x40000000 - PARAMETER C_HIGHADDR = 0x4000ffff - BUS_INTERFACE SOPB = mb_opb - PORT OPB_Clk = sys_clk_s - PORT GPIO_IO = fpga_0_LEDs_Positions_GPIO_IO -END - -BEGIN opb_timer - PARAMETER INSTANCE = opb_timer_1 - PARAMETER HW_VER = 1.00.b - PARAMETER C_COUNT_WIDTH = 32 - PARAMETER C_ONE_TIMER_ONLY = 1 - PARAMETER C_BASEADDR = 0x41c00000 - PARAMETER C_HIGHADDR = 0x41c0ffff - BUS_INTERFACE SOPB = mb_opb - PORT OPB_Clk = sys_clk_s - PORT Interrupt = opb_timer_1_Interrupt -END - -BEGIN opb_intc - PARAMETER INSTANCE = opb_intc_0 - PARAMETER HW_VER = 1.00.c - PARAMETER C_BASEADDR = 0x41200000 - PARAMETER C_HIGHADDR = 0x4120ffff - PARAMETER C_HAS_IPR = 0 - BUS_INTERFACE SOPB = mb_opb - PORT Irq = Interrupt - PORT Intr = RS232_Uart_Interrupt & opb_timer_1_Interrupt -END - -BEGIN dcm_module - PARAMETER INSTANCE = dcm_0 - PARAMETER HW_VER = 1.00.a - PARAMETER C_CLK0_BUF = TRUE - PARAMETER C_CLKIN_PERIOD = 10.000000 - PARAMETER C_CLK_FEEDBACK = 1X - PARAMETER C_EXT_RESET_HIGH = 1 - PORT CLKIN = dcm_clk_s - PORT CLK0 = sys_clk_s - PORT CLKFB = sys_clk_s - PORT RST = net_gnd - PORT LOCKED = dcm_0_lock -END - diff --git a/FreeRTOS/Demo/MicroBlaze/system.mss b/FreeRTOS/Demo/MicroBlaze/system.mss deleted file mode 100644 index 6c13869ca..000000000 --- a/FreeRTOS/Demo/MicroBlaze/system.mss +++ /dev/null @@ -1,84 +0,0 @@ - - PARAMETER VERSION = 2.2.0 - - -BEGIN OS - PARAMETER OS_NAME = standalone - PARAMETER OS_VER = 1.00.a - PARAMETER PROC_INSTANCE = microblaze_0 -END - - -BEGIN PROCESSOR - PARAMETER DRIVER_NAME = cpu - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = microblaze_0 - PARAMETER COMPILER = mb-gcc - PARAMETER ARCHIVER = mb-ar - PARAMETER XMDSTUB_PERIPHERAL = debug_module -END - - -BEGIN DRIVER - PARAMETER DRIVER_NAME = opbarb - PARAMETER DRIVER_VER = 1.02.a - PARAMETER HW_INSTANCE = mb_opb -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = uartlite - PARAMETER DRIVER_VER = 1.00.b - PARAMETER HW_INSTANCE = debug_module -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = bram - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = dlmb_cntlr -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = bram - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = ilmb_cntlr -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = uartlite - PARAMETER DRIVER_VER = 1.00.b - PARAMETER HW_INSTANCE = RS232_Uart - PARAMETER int_handler = vSerialISR, int_port = Interrupt -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = gpio - PARAMETER DRIVER_VER = 2.00.a - PARAMETER HW_INSTANCE = LEDs_4Bit -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = gpio - PARAMETER DRIVER_VER = 2.00.a - PARAMETER HW_INSTANCE = LEDs_Positions -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = tmrctr - PARAMETER DRIVER_VER = 1.00.b - PARAMETER HW_INSTANCE = opb_timer_1 - PARAMETER int_handler = vTickISR, int_port = Interrupt -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = intc - PARAMETER DRIVER_VER = 1.00.c - PARAMETER HW_INSTANCE = opb_intc_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = generic - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = dcm_0 -END - - diff --git a/FreeRTOS/Demo/MicroBlaze/system.xmp b/FreeRTOS/Demo/MicroBlaze/system.xmp deleted file mode 100644 index c899fd9b5..000000000 --- a/FreeRTOS/Demo/MicroBlaze/system.xmp +++ /dev/null @@ -1,66 +0,0 @@ -#Please do not modify this file by hand -XmpVersion: 7.1 -IntStyle: default -MHS File: system.mhs -MSS File: system.mss -NPL File: projnav/system.ise -Architecture: virtex4 -Device: xc4vfx12 -Package: ff668 -SpeedGrade: -10 -UseProjNav: 0 -AddToNPL: 0 -PNImportBitFile: -PNImportBmmFile: -UserCmd1: -UserCmd1Type: 0 -UserCmd2: -UserCmd2Type: 0 -SynProj: xst -ReloadPbde: 0 -MainMhsEditor: 0 -InsertNoPads: 0 -HdlLang: VHDL -Simulator: mti -SimModel: BEHAVIORAL -SimXLib: -SimEdkLib: -MixLangSim: 1 -UcfFile: data/system.ucf -Processor: microblaze_0 -BootLoop: 0 -XmdStub: 0 -SwProj: RTOSDemo -Processor: microblaze_0 -Executable: RTOSDemo/executable.elf -Source: main.c -Source: ParTest/ParTest.c -Source: ../../Source/tasks.c -Source: ../../Source/queue.c -Source: ../../Source/list.c -Source: ../../Source/portable/MemMang/heap_1.c -Source: ../../Source/portable/GCC/MicroBlaze/port.c -Source: ../../Source/portable/GCC/MicroBlaze/portasm.s -Source: ../Common/Minimal/flash.c -Source: serial/serial.c -Source: ../Common/Minimal/comtest.c -Source: ../Common/Minimal/integer.c -Source: ../Common/Minimal/semtest.c -Source: ../Common/Minimal/dynamic.c -Source: ../Common/Minimal/PollQ.c -Source: ../Common/Minimal/BlockQ.c -Header: FreeRTOSConfig.h -DefaultInit: EXECUTABLE -InitBram: 1 -Active: 1 -CompilerOptLevel: 4 -GlobPtrOpt: 0 -DebugSym: 1 -SearchIncl: . ../Common/include ../../Source/include ../../Source/portable/GCC/MicroBlaze -AsmOpt: -LinkOpt: -Map=rtosdemo.map -ProgStart: -StackSize: -HeapSize: -LinkerScript: -ProgCCFlags: -D MICROBLAZE_GCC -Wall diff --git a/FreeRTOS/Demo/MicroBlaze/system_incl.make b/FreeRTOS/Demo/MicroBlaze/system_incl.make deleted file mode 100644 index 9973ee322..000000000 --- a/FreeRTOS/Demo/MicroBlaze/system_incl.make +++ /dev/null @@ -1,134 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:E:\Dev\FreeRTOS\Demo\MicroBlaze\system.xmp -################################################################# - -XILINX_EDK_DIR = C:/devtools/xilinx/EDK - -SYSTEM = system - -MHSFILE = system.mhs - -MSSFILE = system.mss - -FPGA_ARCH = virtex4 - -DEVICE = xc4vfx12ff668-10 - -LANGUAGE = vhdl - -SEARCHPATHOPT = - -SUBMODULE_OPT = - -PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) - -LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT) \ - $(MICROBLAZE_0_LIBG_OPT) - -VPGEN_OPTIONS = -p $(DEVICE) $(SEARCHPATHOPT) - -RTOSDEMO_OUTPUT_DIR = RTOSDemo -RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf - -MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf -PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf -BOOTLOOP_DIR = bootloops - -MICROBLAZE_0_BOOTLOOP = $(BOOTLOOP_DIR)/microblaze_0.elf -MICROBLAZE_0_XMDSTUB = microblaze_0/code/xmdstub.elf - -BRAMINIT_ELF_FILES = $(RTOSDEMO_OUTPUT) -BRAMINIT_ELF_FILE_ARGS = -pe microblaze_0 $(RTOSDEMO_OUTPUT) - -ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) - -SIM_CMD = vsim - -BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM).do - -STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM).do - -TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM).do - -DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT) - -MIX_LANG_SIM_OPT = -mixed yes - -SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT) -s mti - -MICROBLAZE_0_XMDSTUB = microblaze_0/code/xmdstub.elf - -LIBRARIES = \ - microblaze_0/lib/libxil.a -VPEXEC = virtualplatform/vpexec.exe - -LIBSCLEAN_TARGETS = microblaze_0_libsclean - -PROGRAMCLEAN_TARGETS = RTOSDemo_programclean - -CORE_STATE_DEVELOPMENT_FILES = - -WRAPPER_NGC_FILES = implementation/microblaze_0_wrapper.ngc \ -implementation/mb_opb_wrapper.ngc \ -implementation/debug_module_wrapper.ngc \ -implementation/ilmb_wrapper.ngc \ -implementation/dlmb_wrapper.ngc \ -implementation/dlmb_cntlr_wrapper.ngc \ -implementation/ilmb_cntlr_wrapper.ngc \ -implementation/lmb_bram_wrapper.ngc \ -implementation/rs232_uart_wrapper.ngc \ -implementation/leds_4bit_wrapper.ngc \ -implementation/leds_positions_wrapper.ngc \ -implementation/opb_timer_1_wrapper.ngc \ -implementation/opb_intc_0_wrapper.ngc \ -implementation/dcm_0_wrapper.ngc - -POSTSYN_NETLIST = implementation/$(SYSTEM).ngc - -SYSTEM_BIT = implementation/$(SYSTEM).bit - -DOWNLOAD_BIT = implementation/download.bit - -SYSTEM_ACE = implementation/$(SYSTEM).ace - -UCF_FILE = data/system.ucf - -BMM_FILE = implementation/$(SYSTEM).bmm - -FASTRUNTIME_OPT_FILE = etc/fast_runtime.opt -BITGEN_UT_FILE = etc/bitgen.ut - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDEMO_SOURCES = main.c ParTest/ParTest.c ../../Source/tasks.c ../../Source/queue.c ../../Source/list.c ../../Source/portable/MemMang/heap_1.c ../../Source/portable/GCC/MicroBlaze/port.c ../../Source/portable/GCC/MicroBlaze/portasm.s ../Common/Minimal/flash.c serial/serial.c ../Common/Minimal/comtest.c ../Common/Minimal/integer.c ../Common/Minimal/semtest.c ../Common/Minimal/dynamic.c ../Common/Minimal/PollQ.c ../Common/Minimal/BlockQ.c - -RTOSDEMO_HEADERS = FreeRTOSConfig.h - -RTOSDEMO_CC = mb-gcc -RTOSDEMO_CC_SIZE = mb-size -RTOSDEMO_CC_OPT = -Os -RTOSDEMO_CFLAGS = -D MICROBLAZE_GCC -Wall -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./microblaze_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./microblaze_0/include/ -IDev/FreeRTOS/Demo/MicroBlaze/ -I. -I../Common/include -I../../Source/include -I../../Source/portable/GCC/MicroBlaze -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_CC_PREPROC_FLAG = # -Wp, -RTOSDEMO_CC_ASM_FLAG = # -Wa, -RTOSDEMO_CC_LINKER_FLAG = -Wl,-Map=rtosdemo.map -RTOSDEMO_LINKER_SCRIPT = -RTOSDEMO_LINKER_SCRIPT_FLAG = #-Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_GLOBPTR_FLAG= # -mxl-gp-opt -RTOSDEMO_MODE = executable -RTOSDEMO_LIBG_OPT = -$(RTOSDEMO_MODE) microblaze_0 -RTOSDEMO_CC_SOFTMUL_FLAG= -mno-xl-soft-mul -RTOSDEMO_CC_START_ADDR_FLAG= # -Wl,-defsym -Wl,_TEXT_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # -Wl,-defsym -Wl,_STACK_SIZE= -RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \ - $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) \ - $(RTOSDEMO_CC_SOFTMUL_FLAG) \ - $(RTOSDEMO_CC_PREPROC_FLAG) $(RTOSDEMO_CC_ASM_FLAG) $(RTOSDEMO_CC_LINKER_FLAG) \ - $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) diff --git a/FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg b/FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg deleted file mode 100644 index d3670e4f0c726e023b83ad4b1a3e6bb6b2c2446a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28602 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 diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss deleted file mode 100644 index 330c3083a..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos.mss +++ /dev/null @@ -1,12 +0,0 @@ - -PARAMETER VERSION = 2.2.0 - -BEGIN OS - PARAMETER OS_NAME = freertos - PARAMETER STDIN = * - PARAMETER STDOUT = * - PARAMETER SYSTMR_SPEC = true - PARAMETER SYSTMR_DEV = * - PARAMETER SYSINTC_SPEC = * -END - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld deleted file mode 100644 index f1d2e161d..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.mld +++ /dev/null @@ -1,101 +0,0 @@ -############################################################################## -# -# (c) Copyright 2011 Xilinx, Inc. All rights reserved. -# -# This file contains confidential and proprietary information of Xilinx, Inc. -# and is protected under U.S. and international copyright and other -# intellectual property laws. -# -# DISCLAIMER -# This disclaimer is not a license and does not grant any rights to the -# materials distributed herewith. Except as otherwise provided in a valid -# license issued to you by Xilinx, and to the maximum extent permitted by -# applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL -# FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, -# IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF -# MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; -# and (2) Xilinx shall not be liable (whether in contract or tort, including -# negligence, or under any other theory of liability) for any loss or damage -# of any kind or nature related to, arising under or in connection with these -# materials, including for any direct, or any indirect, special, incidental, -# or consequential loss or damage (including loss of data, profits, goodwill, -# or any type of loss or damage suffered as a result of any action brought by -# a third party) even if such damage or loss was reasonably foreseeable or -# Xilinx had been advised of the possibility of the same. -# -# CRITICAL APPLICATIONS -# Xilinx products are not designed or intended to be fail-safe, or for use in -# any application requiring fail-safe performance, such as life-support or -# safety devices or systems, Class III medical devices, nuclear facilities, -# applications related to the deployment of airbags, or any other applications -# that could lead to death, personal injury, or severe property or -# environmental damage (individually and collectively, "Critical -# Applications"). Customer assumes the sole risk and liability of any use of -# Xilinx products in Critical Applications, subject only to applicable laws -# and regulations governing limitations on product liability. -# -# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE -# AT ALL TIMES. -# -# This file is part of Xilkernel. -# -# $Id: xilkernel_v2_1_0.mld,v 1.1.2.4 2010/12/10 07:27:08 svemula Exp $ -############################################################################### - -OPTION psf_version = 2.1.0 ; -BEGIN OS freertos - - OPTION DRC = kernel_drc ; - OPTION SUPPORTED_PERIPHERALS = (microblaze); - OPTION COPYFILES = all; - OPTION DEPENDS = (standalone_v3_01_a); - OPTION APP_LINKER_FLAGS = "-Wl,--start-group,-lxil,-lfreertos,-lgcc,-lc,--end-group"; - - OPTION DESC = "FreeRTOS is a popular lightweight kernel." - - # STDIN/STDOUT - PARAM name = stdin, type = peripheral_instance, requires_interface = stdin, default=none, desc = "Specify the instance name of the standard input peripheral"; - PARAM name = stdout, type = peripheral_instance, requires_interface = stdout, default=none, desc = "Specify the instance name of the standard output peripheral"; - - # System timer specification - PARAM name = systmr_interval, type = int, default = 10, desc = "Specify the frequency of the kernel tick (in Hz)."; - - # System interrupt controller specification - # PARAM name = sysintc_spec, type = peripheral_instance, range = (opb_intc, xps_intc, dcr_intc, axi_intc), default = none, desc = "Specify the instance name of the interrupt controller device driving system interrupts"; - - BEGIN CATEGORY kernel_behavior - PARAM name = kernel_behavior, type = bool, default = true, desc = "Parameters relating to the kernel behavior", permit = user; - PARAM name = use_preemption, type = bool, default = true, desc = "Set to true to use the preemptive scheduler, or false to use the cooperative scheduler."; - PARAM name = idle_yield, type = bool, default = true, desc = "Set to true if the Idle task should yield if another idle priority task is able to run, or false if the idle task should always use its entire time slice unless it is preempted."; - PARAM name = max_priorities, type = int, default = 4, desc = "The number of task priorities that will be available. Priorities can be assigned from zero to (max_priorities - 1)"; - PARAM name = minimal_stack_size, type = int, default = 120, desc = "The size of the stack allocated to the Idle task. Also used by standard demo and test tasks found in the main FreeRTOS download."; - PARAM name = total_heap_size, type = int, default = 65536, desc = "Only used if heap_1.c or heap_2.c is included in the project. Sets the amount of RAM reserved for use by the kernel - used when tasks, queues and semaphores are created."; - PARAM name = max_task_name_len, type = int, default = 8, desc = "The maximum number of characters that can be in the name of a task."; - END CATEGORY - - BEGIN CATEGORY kernel_features - PARAM name = kernel_features, type = bool, default = true, desc = "Include or exclude kernel features", permit = user; - PARAM name = use_mutexes, type = bool, default = true, desc = "Set to true to include mutex functionality, or false to exclude mutex functionality."; - PARAM name = use_recursive_mutexes, type = bool, default = true, desc = "Set to true to include recursive mutex functionality, or false to exclude recursive mutex functionality."; - PARAM name = use_counting_semaphores, type = bool, default = true, desc = "Set to true to include counting semaphore functionality, or false to exclude recursive mutex functionality."; - PARAM name = queue_registry_size, type = int, default = 10, desc = "The maximum number of queues that can be registered at any one time. Registered queues can be viewed in the kernel aware debugger plug-in."; - PARAM name = use_trace_facility, type = bool, default = true, desc = "Set to true to include the legacy trace functionality, and a few other features. traceMACROS are the preferred method of tracing now."; - END CATEGORY - - BEGIN CATEGORY hook_functions - PARAM name = hook_functions, type = bool, default = true, desc = "Include or exclude application defined hook (callback) functions. Callback functions must be defined by the application that is using FreeRTOS", permit = user; - PARAM name = use_idle_hook, type = bool, default = false, desc = "Set to true for the kernel to call vApplicationIdleHook() on each iteration of the idle task. The application must provide an implementation of vApplicationIdleHook()."; - PARAM name = use_tick_hook, type = bool, default = false, desc = "Set to true for the kernel to call vApplicationTickHook() during each tick interrupt. The application must provide an implementation of vApplicationTickHook()."; - PARAM name = use_malloc_failed_hook, type = bool, default = true, desc = "Only used if heap_1.c, heap_2.c or heap_3.c is included in the project. Set to true for the kernel to call vApplicationMallocFailedHookHook() if there is insufficient FreeRTOS heap available for a task, queue or semaphore to be created. The application must provide an implementation of vApplicationMallocFailedHook()."; - PARAM name = check_for_stack_overflow, type = int, default = 2, desc = "Set to 1 to include basic run time task stack checking. Set to 2 to include more comprehensive run time task stack checking."; - END CATEGORY - - BEGIN CATEGORY software_timers - PARAM name = software_timers, type = bool, default = true, desc = "Options relating to the software timers functionality", permit = user; - PARAM name = use_timers, type = bool, default = true, desc = "Set to true to include software timer functionality, or false to exclude software timer functionality"; - PARAM name = timer_task_priority, type = string, default = "(configMAX_PRIORITIES - 1)", desc = "The priority at which the software timer service/daemon task will execute."; - PARAM name = timer_command_queue_length, type = int, default = 10, desc = "The number of commands the timer command queue can hold at any one time."; - PARAM name = timer_task_stack_depth, type = string, default = "(configMINIMAL_STACK_SIZE), desc = "The size of the stack allocated to the timer service/daemon task."; - END CATEGORY - -END OS diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl deleted file mode 100644 index efa8416f6..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/data/freertos_v2_1_0.tcl +++ /dev/null @@ -1,806 +0,0 @@ -############################################################################## -# -# (c) Copyright 2011 Xilinx, Inc. All rights reserved. -# -# This file contains confidential and proprietary information of Xilinx, Inc. -# and is protected under U.S. and international copyright and other -# intellectual property laws. -# -# DISCLAIMER -# This disclaimer is not a license and does not grant any rights to the -# materials distributed herewith. Except as otherwise provided in a valid -# license issued to you by Xilinx, and to the maximum extent permitted by -# applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL -# FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS, -# IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF -# MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; -# and (2) Xilinx shall not be liable (whether in contract or tort, including -# negligence, or under any other theory of liability) for any loss or damage -# of any kind or nature related to, arising under or in connection with these -# materials, including for any direct, or any indirect, special, incidental, -# or consequential loss or damage (including loss of data, profits, goodwill, -# or any type of loss or damage suffered as a result of any action brought by -# a third party) even if such damage or loss was reasonably foreseeable or -# Xilinx had been advised of the possibility of the same. -# -# CRITICAL APPLICATIONS -# Xilinx products are not designed or intended to be fail-safe, or for use in -# any application requiring fail-safe performance, such as life-support or -# safety devices or systems, Class III medical devices, nuclear facilities, -# applications related to the deployment of airbags, or any other applications -# that could lead to death, personal injury, or severe property or -# environmental damage (individually and collectively, "Critical -# Applications"). Customer assumes the sole risk and liability of any use of -# Xilinx products in Critical Applications, subject only to applicable laws -# and regulations governing limitations on product liability. -# -# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE -# AT ALL TIMES. -# -# This file is part of FreeRTOS. -# -# $Id: freertos_v2_1_0.tcl,v 1.1.2.8 2010/12/10 07:27:08 svemula Exp $ -############################################################################### - -# standalone bsp version. set this to the latest "ACTIVE" version. -set standalone_version standalone_v3_01_a - -proc kernel_drc {os_handle} { - set sw_proc_handle [xget_libgen_proc_handle] - set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"] - set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"] - set compiler [xget_value $sw_proc_handle "PARAMETER" "COMPILER"] - - # check for valid compiler - if { [string first "mb-gcc" $compiler] == 0 && [string first "mb-g++" $compiler] == 0} { - error "Wrong compiler requested. FreeRTOS can be compiled only with the GNU compiler for MicroBlaze." "" "mdt_error" - } - - # check for valid stdio parameters - set stdin [xget_value $os_handle "PARAMETER" "STDIN"] - set stdout [xget_value $os_handle "PARAMETER" "STDOUT"] - if { $stdin == "none" || $stdout == "none" } { - error "The STDIN/STDOUT parameters are not set. FreeRTOS requires stdin/stdout to be set." "" "mdt_error" - } - - # check if the design has a intc - set intr_port [xget_value $hw_proc_handle "PORT" "Interrupt"] - if { [llength $intr_port] == 0 } { - error "CPU has no connection to Interrupt controller." "" "mdt_error" - } - - # support only AXI/PLB - set interconnect [xget_value $hw_proc_handle "PARAMETER" "C_INTERCONNECT"] - if { $interconnect == 1 } { - set bus_name [xget_hw_busif_value $hw_proc_handle "DPLB"] - } elseif { $interconnect == 2 } { - set bus_name [xget_hw_busif_value $hw_proc_handle "M_AXI_DP"] - } else { - error "FreeRTOS supports Microblaze with only a AXI or PLB interconnect" "" "mdt_error" - } - - # obtain handles to all the peripherals in the design - set mhs_handle [xget_hw_parent_handle $hw_proc_handle] - set slave_ifs [xget_hw_connected_busifs_handle $mhs_handle $bus_name "slave"] - set timer_count 0 - set timer_has_intr 0 - - # check for a valid timer - foreach if $slave_ifs { - set ip_handle [xget_hw_parent_handle $if] - - if {$ip_handle != $hw_proc_handle} { - set type [xget_hw_value $ip_handle] - if { $type == "xps_timer" || $type == "axi_timer" } { - incr timer_count - - # check if the timer interrupts are enabled - set intr_port [xget_value $ip_handle "PORT" "Interrupt"] - if { [llength $intr_port] != 0 } { - set timer_has_intr 1 - } - } - } - } - - if { $timer_count == 0 } { - error "FreeRTOS for Microblaze requires an axi_timer or xps_timer. The HW platform doesn't have a valid timer." "" "mdt_error" - } - - if { $timer_has_intr == 0 } { - error "FreeRTOS for Microblaze requires interrupts enabled for a timer." "" "mdt_error" - } - - set systmr_interval_ms [xget_value $os_handle "PARAMETER" "systmr_interval"] - if { $systmr_interval_ms <= 0 } { - error "Invalid value for parameter systmr_interval specified. Please specify a positive value." "" "mdt_error" - } - - ### ToDo: Add DRC specific to FreeRTOS -} - -proc generate {os_handle} { - - variable standalone_version - - set sw_proc_handle [xget_libgen_proc_handle] - set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"] - set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"] - set procver [xget_value $hw_proc_handle "PARAMETER" "HW_VER"] - - set need_config_file "false" - - # proctype should be "microblaze" - set mbsrcdir "../${standalone_version}/src/microblaze" - set commondir "../${standalone_version}/src/common" - set datadir "../${standalone_version}/data" - - foreach entry [glob -nocomplain [file join $commondir *]] { - file copy -force $entry [file join ".." "${standalone_version}" "src"] - } - - # proctype should be "microblaze" - switch -regexp $proctype { - "microblaze" { - - foreach entry [glob -nocomplain [file join $mbsrcdir *]] { - if { [string first "microblaze_interrupt_handler" $entry] == -1 } { ;# Do not copy over the Standalone BSP exception handler - file copy -force $entry [file join ".." "${standalone_version}" "src"] - } - } - set need_config_file "true" - } - "default" {puts "unknown processor type $proctype\n"} - } - - # Write the config.make file - set makeconfig [open "../standalone_v3_01_a/src/config.make" w] - xprint_generated_header_tcl $makeconfig "Configuration parameters for Standalone Makefile" - - if { $proctype == "microblaze" } { - if { [mb_has_exceptions $hw_proc_handle] } { - puts $makeconfig "LIBSOURCES = *.s *.c *.S" - } else { - puts $makeconfig "LIBSOURCES = *.s *.c" - } - } - - puts $makeconfig "LIBS = standalone_libs" - close $makeconfig - - # Remove microblaze directories... - file delete -force $mbsrcdir - - # copy required files to the main src directory - file copy -force [file join src Source tasks.c] src - file copy -force [file join src Source queue.c] src - file copy -force [file join src Source list.c] src - file copy -force [file join src Source timers.c] src - file copy -force [file join src Source portable MemMang heap_3.c] src - file copy -force [file join src Source portable GCC MicroBlazeV8 port.c] src - file copy -force [file join src Source portable GCC MicroBlazeV8 port_exceptions.c] src - file copy -force [file join src Source portable GCC MicroBlazeV8 portasm.S] src - file copy -force [file join src Source portable GCC MicroBlazeV8 portmacro.h] src - set headers [glob -join ./src/Source/include *.\[h\]] - foreach header $headers { - file copy -force $header src - } - - file delete -force [file join src Source] - file delete -force [file join src Source] - - # Handle stdin and stdout - xhandle_stdin $os_handle - xhandle_stdout $os_handle - - # Create config file for microblaze interrupt handling - if {[string compare -nocase $need_config_file "true"] == 0} { - xhandle_mb_interrupts - } - - # Create config files for Microblaze exception handling - if { $proctype == "microblaze" && [mb_has_exceptions $hw_proc_handle] } { - xcreate_mb_exc_config_file - } - - # Create bspconfig file - set bspcfg_fn [file join ".." "${standalone_version}" "src" "bspconfig.h"] - file delete $bspcfg_fn - set bspcfg_fh [open $bspcfg_fn w] - xprint_generated_header $bspcfg_fh "Configurations for Standalone BSP" - - if { $proctype == "microblaze" && [mb_has_pvr $hw_proc_handle] } { - - set pvr [xget_value $hw_proc_handle "PARAMETER" "C_PVR"] - - switch $pvr { - "0" { - puts $bspcfg_fh "#define MICROBLAZE_PVR_NONE" - } - "1" { - puts $bspcfg_fh "#define MICROBLAZE_PVR_BASIC" - } - "2" { - puts $bspcfg_fh "#define MICROBLAZE_PVR_FULL" - } - "default" { - puts $bspcfg_fh "#define MICROBLAZE_PVR_NONE" - } - } - } - - close $bspcfg_fh - -# ToDO: FreeRTOS does not handle the following, refer xilkernel TCL script -# - MPU settings - - set config_file [xopen_new_include_file "./src/FreeRTOSConfig.h" "FreeRTOS Configuration parameters"] - puts $config_file "\#include \"xparameters.h\" \n" - - set val [xget_value $os_handle "PARAMETER" "use_preemption"] - if {$val == "false"} { - xput_define $config_file "configUSE_PREEMPTION" "0" - } else { - xput_define $config_file "configUSE_PREEMPTION" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_mutexes"] - if {$val == "false"} { - xput_define $config_file "configUSE_MUTEXES" "0" - } else { - xput_define $config_file "configUSE_MUTEXES" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_recursive_mutexes"] - if {$val == "false"} { - xput_define $config_file "configUSE_RECURSIVE_MUTEXES" "0" - } else { - xput_define $config_file "configUSE_RECURSIVE_MUTEXES" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_counting_semaphores"] - if {$val == "false"} { - xput_define $config_file "configUSE_COUNTING_SEMAPHORES" "0" - } else { - xput_define $config_file "configUSE_COUNTING_SEMAPHORES" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_timers"] - if {$val == "false"} { - xput_define $config_file "configUSE_TIMERS" "0" - } else { - xput_define $config_file "configUSE_TIMERS" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_idle_hook"] - if {$val == "false"} { - xput_define $config_file "configUSE_IDLE_HOOK" "0" - } else { - xput_define $config_file "configUSE_IDLE_HOOK" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_tick_hook"] - if {$val == "false"} { - xput_define $config_file "configUSE_TICK_HOOK" "0" - } else { - xput_define $config_file "configUSE_TICK_HOOK" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_malloc_failed_hook"] - if {$val == "false"} { - xput_define $config_file "configUSE_MALLOC_FAILED_HOOK" "0" - } else { - xput_define $config_file "configUSE_MALLOC_FAILED_HOOK" "1" - } - - set val [xget_value $os_handle "PARAMETER" "use_trace_facility"] - if {$val == "false"} { - xput_define $config_file "configUSE_TRACE_FACILITY" "0" - } else { - xput_define $config_file "configUSE_TRACE_FACILITY" "1" - } - - xput_define $config_file "configUSE_16_BIT_TICKS" "0" - xput_define $config_file "configUSE_APPLICATION_TASK_TAG" "0" - xput_define $config_file "configUSE_CO_ROUTINES" "0" - - # System timer tick rate (Microblaze only. kernel DRC ensures this) - set systmr_interval [xget_value $os_handle "PARAMETER" "systmr_interval"] - xput_define $config_file "configTICK_RATE_HZ" $systmr_interval - - set max_priorities [xget_value $os_handle "PARAMETER" "max_priorities"] - xput_define $config_file "configMAX_PRIORITIES" $max_priorities - xput_define $config_file "configMAX_CO_ROUTINE_PRIORITIES" "2" - - set min_stack [xget_value $os_handle "PARAMETER" "minimal_stack_size"] - set min_stack [expr [expr $min_stack + 3] & 0xFFFFFFFC] - xput_define $config_file "configMINIMAL_STACK_SIZE" $min_stack - - set total_heap_size [xget_value $os_handle "PARAMETER" "total_heap_size"] - set total_heap_size [expr [expr $total_heap_size + 3] & 0xFFFFFFFC] - xput_define $config_file "configTOTAL_HEAP_SIZE" $total_heap_size - - set max_task_name_len [xget_value $os_handle "PARAMETER" "max_task_name_len"] - xput_define $config_file "configMAX_TASK_NAME_LEN" $max_task_name_len - - set val [xget_value $os_handle "PARAMETER" "idle_yield"] - if {$val == "false"} { - xput_define $config_file "configIDLE_SHOULD_YIELD" "0" - } else { - xput_define $config_file "configIDLE_SHOULD_YIELD" "1" - } - - set val [xget_value $os_handle "PARAMETER" "check_for_stack_overflow"] - if {$val == "false"} { - xput_define $config_file "configCHECK_FOR_STACK_OVERFLOW" "0" - } else { - xput_define $config_file "configCHECK_FOR_STACK_OVERFLOW" "2" - } - - set val [xget_value $os_handle "PARAMETER" "queue_registry_size"] - if {$val == "false"} { - xput_define $config_file "configQUEUE_REGISTRY_SIZE" "0" - } else { - xput_define $config_file "configQUEUE_REGISTRY_SIZE" "10" - } - - xput_define $config_file "configGENERATE_RUN_TIME_STATS" "0" - - set val [xget_value $os_handle "PARAMETER" "timer_task_priority"] - if {$val == "false"} { - xput_define $config_file "configTIMER_TASK_PRIORITY" "0" - } else { - xput_define $config_file "configTIMER_TASK_PRIORITY" "10" - } - - set val [xget_value $os_handle "PARAMETER" "timer_command_queue_length"] - if {$val == "false"} { - xput_define $config_file "configTIMER_QUEUE_LENGTH" "0" - } else { - xput_define $config_file "configTIMER_QUEUE_LENGTH" "10" - } - - set val [xget_value $os_handle "PARAMETER" "timer_task_stack_depth"] - if {$val == "false"} { - xput_define $config_file "configTIMER_TASK_STACK_DEPTH" "0" - } else { - xput_define $config_file "configTIMER_TASK_STACK_DEPTH" $min_stack - } - - if { [mb_has_exceptions $hw_proc_handle] } { - xput_define $config_file "configINSTALL_EXCEPTION_HANDLERS" "1" - } else { - xput_define $config_file "configINSTALL_EXCEPTION_HANDLERS" "0" - } - - xput_define $config_file "configINTERRUPT_CONTROLLER_TO_USE" "XPAR_INTC_SINGLE_DEVICE_ID" - - xput_define $config_file "INCLUDE_vTaskCleanUpResources" "0" - xput_define $config_file "INCLUDE_vTaskDelay" "1" - xput_define $config_file "INCLUDE_vTaskDelayUntil" "1" - xput_define $config_file "INCLUDE_vTaskDelete" "1" - xput_define $config_file "INCLUDE_xTaskGetCurrentTaskHandle" "1" - xput_define $config_file "INCLUDE_xTaskGetIdleTaskHandle" "1" - xput_define $config_file "INCLUDE_xTaskGetSchedulerState" "1" - xput_define $config_file "INCLUDE_xTimerGetTimerDaemonTaskHandle" "1" - xput_define $config_file "INCLUDE_uxTaskGetStackHighWaterMark" "1" - xput_define $config_file "INCLUDE_uxTaskPriorityGet" "1" - xput_define $config_file "INCLUDE_vTaskPrioritySet" "1" - xput_define $config_file "INCLUDE_xTaskResumeFromISR" "1" - xput_define $config_file "INCLUDE_vTaskSuspend" "1" - xput_define $config_file "INCLUDE_pcTaskGetTaskName" "1" - xput_define $config_file "INCLUDE_xTaskGetIdleTaskHandle" "1" - xput_define $config_file "INCLUDE_xTimerGetTimerDaemonTaskHandle" "1" - - # complete the header protectors - puts $config_file "\#endif" - close $config_file -} - -proc xopen_new_include_file { filename description } { - set inc_file [open $filename w] - xprint_generated_header $inc_file $description - set newfname [string map {. _} [lindex [split $filename {\/}] end]] - puts $inc_file "\#ifndef _[string toupper $newfname]" - puts $inc_file "\#define _[string toupper $newfname]\n\n" - return $inc_file -} - -proc xadd_define { config_file os_handle parameter } { - set param_value [xget_value $os_handle "PARAMETER" $parameter] - puts $config_file "#define [string toupper $parameter] $param_value\n" - - # puts "creating #define [string toupper $parameter] $param_value\n" -} - -proc xput_define { config_file parameter param_value } { - puts $config_file "#define $parameter $param_value\n" - - # puts "creating #define [string toupper $parameter] $param_value\n" -} - -# args field of the array -proc xadd_extern_fname {initfile oshandle arrayname arg} { - - set arrhandle [xget_handle $oshandle "ARRAY" $arrayname] - set elements [xget_handle $arrhandle "ELEMENTS" "*"] - set count 0 - set max_count [llength $elements] - - foreach ele $elements { - incr count - set arg_value [xget_value $ele "PARAMETER" $arg] - puts $initfile "extern void $arg_value\(\)\;" - } - puts $initfile "" -} - -# args is variable no - fields of the array -proc xadd_struct {initfile oshandle structtype structname arrayname args} { - - set arrhandle [xget_handle $oshandle "ARRAY" $arrayname] - set elements [xget_handle $arrhandle "ELEMENTS" "*"] - set count 0 - set max_count [llength $elements] - puts $initfile "struct $structtype $structname\[$max_count\] = \{" - - foreach ele $elements { - incr count - puts -nonewline $initfile "\t\{" - foreach field $args { - set field_value [xget_value $ele "PARAMETER" $field] - # puts "$arrayname ( $count )->$field is $field_value" - puts -nonewline $initfile "$field_value" - if { $field != [lindex $args end] } { - puts -nonewline $initfile "," - } - } - if {$count < $max_count} { - puts $initfile "\}," - } else { - puts $initfile "\}" - } - } - puts $initfile "\}\;" -} - -# return the sum of all the arg field values in arrayname -proc get_field_sum {oshandle arrayname arg} { - - set arrhandle [xget_handle $oshandle "ARRAY" $arrayname] - set elements [xget_handle $arrhandle "ELEMENTS" "*"] - set count 0 - set max_count [llength $elements] - - foreach ele $elements { - set field_value [xget_value $ele "PARAMETER" $arg] - set count [expr $field_value+$count] - } - return $count -} - -# return the sum of the product of field values in arrayname -proc get_field_product_sum {oshandle arrayname field1 field2} { - - set arrhandle [xget_handle $oshandle "ARRAY" $arrayname] - set elements [xget_handle $arrhandle "ELEMENTS" "*"] - set count 0 - set max_count [llength $elements] - - foreach ele $elements { - set field1_value [xget_value $ele "PARAMETER" $field1] - set field2_value [xget_value $ele "PARAMETER" $field2] - set incr_value [expr $field1_value*$field2_value] - set count [expr $count+$incr_value] - } - return $count -} - -proc xhandle_mb_interrupts {} { - - set default_interrupt_handler "XNullHandler" - set default_arg "XNULL" - - set source_interrupt_handler $default_interrupt_handler - set source_handler_arg $default_arg - - # Handle the interrupt pin - set sw_proc_handle [xget_libgen_proc_handle] - set periph [xget_handle $sw_proc_handle "IPINST"] - set source_ports [xget_interrupt_sources $periph] - if {[llength $source_ports] > 1} { - error "Too many interrupting ports on the MicroBlaze. Should only find 1" "" "libgen_error" - return - } - - if {[llength $source_ports] == 1} { - set source_port [lindex $source_ports 0] - if {[llength $source_port] != 0} { - set source_port_name [xget_value $source_port "VALUE"] - set source_periph [xget_handle $source_port "PARENT"] - set source_name [xget_value $source_periph "NAME"] - set source_driver [xget_sw_driver_handle_for_ipinst $sw_proc_handle $source_name] - - if {[string compare -nocase $source_driver ""] != 0} { - set int_array [xget_handle $source_driver "ARRAY" "interrupt_handler"] - if {[llength $int_array] != 0} { - set int_array_elems [xget_handle $int_array "ELEMENTS" "*"] - if {[llength $int_array_elems] != 0} { - foreach int_array_elem $int_array_elems { - set int_port [xget_value $int_array_elem "PARAMETER" "int_port"] - if {[llength $int_port] != 0} { - if {[string compare -nocase $int_port $source_port_name] == 0 } { - set source_interrupt_handler [xget_value $int_array_elem "PARAMETER" "int_handler"] - set source_handler_arg [xget_value $int_array_elem "PARAMETER" "int_handler_arg"] - if {[string compare -nocase $source_handler_arg DEVICE_ID] == 0 } { - set source_handler_arg [xget_name $source_periph "DEVICE_ID"] - } else { - if {[string compare -nocase "global" [xget_port_type $source_port]] == 0} { - set source_handler_arg $default_arg - } else { - set source_handler_arg [xget_name $source_periph "C_BASEADDR"] - } - } - break - } - } - } - } - } - } - } - } - - # Generate microblaze_interrupts_g.c file... - xcreate_mb_intr_config_file $source_interrupt_handler $source_handler_arg - -} - - -proc xcreate_mb_intr_config_file {handler arg} { - - set mb_table "MB_InterruptVectorTable" - - set filename [file join "../standalone_v3_01_a/src" "microblaze_interrupts_g.c"] - file delete $filename - set config_file [open $filename w] - - xprint_generated_header $config_file "Interrupt Handler Table for MicroBlaze Processor" - - puts $config_file "#include \"microblaze_interrupts_i.h\"" - puts $config_file "#include \"xparameters.h\"" - puts $config_file "\n" - puts $config_file [format "extern void %s (void *);" $handler] - puts $config_file "\n/*" - puts $config_file "* The interrupt handler table for microblaze processor" - puts $config_file "*/\n" - puts $config_file [format "%sEntry %s\[\] =" $mb_table $mb_table] - puts $config_file "\{" - puts -nonewline $config_file [format "\{\t%s" $handler] - puts -nonewline $config_file [format ",\n\t(void*) %s\}" $arg] - puts -nonewline $config_file "\n\};" - puts $config_file "\n" - close $config_file -} - - -# ------------------------------------------- -# Tcl procedure xcreate_mb_exc_config file -# ------------------------------------------- -proc xcreate_mb_exc_config_file { } { - - set hfilename [file join "src" "microblaze_exceptions_g.h"] - file delete $hfilename - set hconfig_file [open $hfilename w] - - xprint_generated_header $hconfig_file "Exception Handling Header for MicroBlaze Processor" - - puts $hconfig_file "\n" - - set sw_proc_handle [xget_libgen_proc_handle] - set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"] - set procver [xget_value $hw_proc_handle "PARAMETER" "HW_VER"] - - if { ![mb_has_exceptions $hw_proc_handle]} { ;# NO exceptions are enabled - close $hconfig_file ;# Do not generate any info in either the header or the C file - return - } - - puts $hconfig_file "\#define MICROBLAZE_EXCEPTIONS_ENABLED 1" - if { [mb_can_handle_exceptions_in_delay_slots $procver] } { - puts $hconfig_file "#define MICROBLAZE_CAN_HANDLE_EXCEPTIONS_IN_DELAY_SLOTS" - } - - close $hconfig_file -} - -# -------------------------------------- -# Tcl procedure post_generate -# This proc removes from libxil.a the basic -# and standalone BSP versions of -# _interrupt_handler and _hw_exception_handler -# routines -# -------------------------------------- -proc post_generate {os_handle} { - set sw_proc_handle [xget_libgen_proc_handle] - set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"] - set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"] - set procname [xget_value $hw_proc_handle "NAME"] - - set procdrv [xget_sw_driver_handle_for_ipinst $sw_proc_handle $procname] - set archiver [xget_value $procdrv "PARAMETER" "archiver"] - - if {[string compare -nocase $proctype "microblaze"] == 0 } { - # Remove _interrupt_handler.o from libxil.a for FreeRTOS - set libxil_a [file join .. .. lib libxil.a] - exec $archiver -d $libxil_a _interrupt_handler.o - - # We have linkage problems due to how these platforms are defined. Can't do this right now. - # # Remove _exception_handler.o from libxil.a for FreeRTOS - # exec bash -c "$archiver -d ../../lib/libxil.a _exception_handler.o" - - # Remove _hw_exception_handler.o from libxil.a for microblaze cores with exception support - if {[mb_has_exceptions $hw_proc_handle]} { - exec $archiver -d ../../lib/libxil.a _hw_exception_handler.o - } - } -} - -# -------------------------------------- -# Tcl procedure execs_generate -# This proc removes from libxil.a all -# the stuff that we are overriding -# with xilkernel -# We currently override, -# MicroBlaze -# - Dummy _interrupt_hander and _hw_exception_handler -# (in post_generate) -# PPC -# - xvectors.o; sleep.o (IF config_time is true) -# Common to all processors -# - errno.o -# -------------------------------------- -proc execs_generate {os_handle} { - set sw_proc_handle [xget_libgen_proc_handle] - set hw_proc_handle [xget_handle $sw_proc_handle "IPINST"] - set proctype [xget_value $hw_proc_handle "OPTION" "IPNAME"] - set procname [xget_value $hw_proc_handle "NAME"] - - set procdrv [xget_sw_driver_handle_for_ipinst $sw_proc_handle $procname] - # Remove _interrupt_handler.o from libxil.a for mb-gcc - set archiver [xget_value $procdrv "PARAMETER" "archiver"] - - set libxil_a [file join .. .. lib libxil.a] -# exec $archiver -d $libxil_a errno.o - - # We have linkage problems due to how these platforms are defined. Can't do this right now. - # exec "$archiver -d $libxil_a microblaze_interrupt_handler.o" -} - -# -------------------------------------- -# Return true if this MB has -# exception handling support -# -------------------------------------- -proc mb_has_exceptions { hw_proc_handle } { - - # Check if the following parameters exist on this MicroBlaze's MPD - set ee [xget_value $hw_proc_handle "PARAMETER" "C_UNALIGNED_EXCEPTIONS"] - if { $ee != "" } { - return true - } - - set ee [xget_value $hw_proc_handle "PARAMETER" "C_ILL_OPCODE_EXCEPTION"] - if { $ee != "" } { - return true - } - - set ee [xget_value $hw_proc_handle "PARAMETER" "C_IOPB_BUS_EXCEPTION"] - if { $ee != "" } { - return true - } - - set ee [xget_value $hw_proc_handle "PARAMETER" "C_DOPB_BUS_EXCEPTION"] - if { $ee != "" } { - return true - } - - set ee [xget_value $hw_proc_handle "PARAMETER" "C_DIV_BY_ZERO_EXCEPTION"] - if { $ee != "" } { - return true - } - - set ee [xget_value $hw_proc_handle "PARAMETER" "C_DIV_ZERO_EXCEPTION"] - if { $ee != "" } { - return true - } - - set ee [xget_value $hw_proc_handle "PARAMETER" "C_FPU_EXCEPTION"] - if { $ee != "" } { - return true - } - - set ee [xget_value $hw_proc_handle "PARAMETER" "C_USE_MMU"] - if { $ee != "" && $ee != 0 } { - return true - } - - return false -} - -# -------------------------------------- -# Return true if this MB has -# FPU exception handling support -# -------------------------------------- -proc mb_has_fpu_exceptions { hw_proc_handle } { - - # Check if the following parameters exist on this MicroBlaze's MPD - set ee [xget_value $hw_proc_handle "PARAMETER" "C_FPU_EXCEPTION"] - if { $ee != "" } { - return true - } - - return false -} - -# -------------------------------------- -# Return true if this MB has PVR support -# -------------------------------------- -proc mb_has_pvr { hw_proc_handle } { - - # Check if the following parameters exist on this MicroBlaze's MPD - set pvr [xget_value $hw_proc_handle "PARAMETER" "C_PVR"] - if { $pvr != "" } { - return true - } - - return false -} - -# -------------------------------------- -# Return true if MB ver 'procver' has -# support for handling exceptions in -# delay slots -# -------------------------------------- -proc mb_can_handle_exceptions_in_delay_slots { procver } { - - if { [string compare -nocase $procver "5.00.a"] >= 0 } { - return true - } else { - return false - } -} - -# -------------------------------------------------------------------------- -# Gets all the handles that are memory controller cores. -# -------------------------------------------------------------------------- -proc xget_memory_controller_handles { mhs } { - set ret_list "" - - # Gets all MhsInsts in the system - set mhsinsts [xget_hw_ipinst_handle $mhs "*"] - - # Loop thru each MhsInst and determine if have "ADDR_TYPE = MEMORY" in - # the parameters. - foreach mhsinst $mhsinsts { - # Gets all parameters of the component - set params [xget_hw_parameter_handle $mhsinst "*"] - - # Loop thru each param and find tag "ADDR_TYPE = MEMORY" - foreach param $params { - if {$param == 0} { - continue - } elseif {$param == ""} { - continue - } - set addrTypeValue [ xget_hw_subproperty_value $param "ADDR_TYPE" ] - - # Found tag! Add MhsInst to list and break to go to next MhsInst - if {[string compare -nocase $addrTypeValue "MEMORY"] == 0} { - lappend ret_list $mhsinst - break - } - } - } - - return $ret_list -} diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt deleted file mode 100644 index df40ad2e1..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/CreatingTheDirectoryStructure.txt +++ /dev/null @@ -1,4 +0,0 @@ -The necessary files are copied to this BSP directory structure by executing -the CreateProjectDirectoryStructure.bat batch file located in the -FreeRTOS\\Demo\MicroBlaze_Spartan-6_EthernetLite\SDKProjects\RTOSDemoSource -folder. \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt deleted file mode 100644 index e29669138..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/License/license.txt +++ /dev/null @@ -1,435 +0,0 @@ -The FreeRTOS.org source code is licensed by the modified GNU General Public -License (GPL) text provided below. The FreeRTOS download also includes -demo application source code, some of which is provided by third parties -AND IS LICENSED SEPARATELY FROM FREERTOS.ORG. - -For the avoidance of any doubt refer to the comment included at the top -of each source and header file for license and copyright information. - -This is a list of files for which Real Time Engineers Ltd are not the -copyright owner and are NOT COVERED BY THE GPL. - - -1) Various header files provided by silicon manufacturers and tool vendors - that define processor specific memory addresses and utility macros. - Permission has been granted by the various copyright holders for these - files to be included in the FreeRTOS download. Users must ensure license - conditions are adhered to for any use other than compilation of the - FreeRTOS demo applications. - -2) The uIP TCP/IP stack the copyright of which is held by Adam Dunkels. - Users must ensure the open source license conditions stated at the top - of each uIP source file is understood and adhered to. - -3) The lwIP TCP/IP stack the copyright of which is held by the Swedish - Institute of Computer Science. Users must ensure the open source license - conditions stated at the top of each lwIP source file is understood and - adhered to. - -4) Various peripheral driver source files and binaries provided by silicon - manufacturers and tool vendors. Permission has been granted by the - various copyright holders for these files to be included in the FreeRTOS - download. Users must ensure license conditions are adhered to for any - use other than compilation of the FreeRTOS demo applications. - -5) The files contained within FreeRTOS\Demo\WizNET_DEMO_TERN_186\tern_code, - which are slightly modified versions of code provided by and copyright to - Tern Inc. - -Errors and omissions should be reported to Richard Barry, contact details for -whom can be obtained from http://www.FreeRTOS.org. - - - - - -The GPL license text follows. - -A special exception to the GPL is included to allow you to distribute a -combined work that includes FreeRTOS without being obliged to provide -the source code for any proprietary components. See the licensing section -of http://www.FreeRTOS.org for full details. The exception text is also -included at the bottom of this file. - --------------------------------------------------------------------- - - - - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License** as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. - ----------------------------------------------------------------------------- - -The FreeRTOS GPL Exception Text: - -Any FreeRTOS source code, whether modified or in it's original release form, -or whether in whole or in part, can only be distributed by you under the terms -of the GNU General Public License plus this exception. An independent module is -a module which is not derived from or based on FreeRTOS. - -Clause 1: - -Linking FreeRTOS statically or dynamically with other modules is making a -combined work based on FreeRTOS. Thus, the terms and conditions of the GNU -General Public License cover the whole combination. - -As a special exception, the copyright holder of FreeRTOS gives you permission -to link FreeRTOS with independent modules that communicate with FreeRTOS -solely through the FreeRTOS API interface, regardless of the license terms of -these independent modules, and to copy and distribute the resulting combined -work under terms of your choice, provided that - - + Every copy of the combined work is accompanied by a written statement that - details to the recipient the version of FreeRTOS used and an offer by yourself - to provide the FreeRTOS source code (including any modifications you may have - made) should the recipient request it. - - + The combined work is not itself an RTOS, scheduler, kernel or related product. - - + The independent modules add significant and primary functionality to FreeRTOS - and do not merely extend the existing functionality already present in FreeRTOS. - -Clause 2: - -FreeRTOS may not be used for any competitive or comparative purpose, including the -publication of any form of run time or compile time metric, without the express -permission of Real Time Engineers Ltd. (this is the norm within the industry and -is intended to ensure information accuracy). diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile deleted file mode 100644 index 57884bf14..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Makefile +++ /dev/null @@ -1,77 +0,0 @@ -############################################################################## -# -# Copyright (c) 2010 Xilinx, Inc. All rights reserved. -# -# Xilinx, Inc. -# XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A -# COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS -# ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR -# STANDARD, XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION -# IS FREE FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE -# FOR OBTAINING ANY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. -# XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO -# THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO -# ANY WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE -# FROM CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY -# AND FITNESS FOR A PARTICULAR PURPOSE. -# -# Top level Makefile -# -# $Id: $ -# -############################################################################## - -# -# Processor architecture -# microblaze -# -ARCH = microblaze - -SYSTEMDIR = ../../.. - -TOPDIR = . - -ARCH_PREFIX = mb - -# -# gnu tools for Makefile -# -CC = $(ARCH_PREFIX)-gcc -AR = $(ARCH_PREFIX)-ar -CP = cp - -# -# Compiler, linker and other options. -# -CFLAGS = ${COMPILER_FLAGS} ${EXTRA_COMPILER_FLAGS} - -# -# System project directories. -# -LIBDIR = $(SYSTEMDIR)/lib -INCLUDEDIR = $(SYSTEMDIR)/include - -# Kernel library. -LIBFREERTOS = ${LIBDIR}/libfreertos.a - -INCLUDEFILES = ${TOPDIR}/*.h - -INCLUDES = -I$(INCLUDEDIR) \ - -I${TOPDIR} - -KERNEL_AR_OBJS = *.c *.S - -OUTS = *.o - -libs: $(KERNEL_AR_OBJS) - @echo "Compiling FreeRTOS" - @$(COMPILER) $(COMPILER_FLAGS) $(EXTRA_COMPILER_FLAGS) $(INCLUDES) $^ - @$(ARCHIVER) -r ${LIBFREERTOS} ${OUTS} - make clean - -.PHONY: include -include: - ${CP} ${INCLUDEFILES} ${INCLUDEDIR} - -clean: - rm -rf ${OUTS} diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt deleted file mode 100644 index a20d687e0..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/portable/readme.txt +++ /dev/null @@ -1,19 +0,0 @@ -Each real time kernel port consists of three files that contain the core kernel -components and are common to every port, and one or more files that are -specific to a particular microcontroller and/or compiler. - - -+ The FreeRTOS/Source/Portable/MemMang directory contains the three sample -memory allocators as described on the http://www.FreeRTOS.org WEB site. - -+ The other directories each contain files specific to a particular -microcontroller or compiler. - - - -For example, if you are interested in the GCC port for the ATMega323 -microcontroller then the port specific files are contained in -FreeRTOS/Source/Portable/GCC/ATMega323 directory. If this is the only -port you are interested in then all the other directories can be -ignored. - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt deleted file mode 100644 index 81518ecb4..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/Source/readme.txt +++ /dev/null @@ -1,17 +0,0 @@ -Each real time kernel port consists of three files that contain the core kernel -components and are common to every port, and one or more files that are -specific to a particular microcontroller and or compiler. - -+ The FreeRTOS/Source directory contains the three files that are common to -every port - list.c, queue.c and tasks.c. The kernel is contained within these -three files. croutine.c implements the optional co-routine functionality - which -is normally only used on very memory limited systems. - -+ The FreeRTOS/Source/Portable directory contains the files that are specific to -a particular microcontroller and or compiler. - -+ The FreeRTOS/Source/include directory contains the real time kernel header -files. - -See the readme file in the FreeRTOS/Source/Portable directory for more -information. \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt deleted file mode 100644 index 49eecd6cd..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/bsp/freertos_v2_00_a/src/readme.txt +++ /dev/null @@ -1,19 +0,0 @@ -The download includes the kernel source code, and a demo application for EVERY -RTOS port. See http://www.freertos.org/a00017.html for full details of the -directory structure and information on locating the files you require. - -The easiest way to use FreeRTOS is start start with one of the demo application -projects. Once this is running the project can be modified to include your own -source files. This way the correct files and compiler options will be -automatically included in your application. - -+ The Source directory contains the real time kernel source files for every -port. The kernel itself is only 3 files. - -+ The Demo directory contains the demo application source files for every -port. - -+ The TraceCon directory contains the trace visualisation exe file. - -See the readme files in the respective directories for further information. - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss deleted file mode 100644 index 230dee3c4..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.mss +++ /dev/null @@ -1,9 +0,0 @@ - - PARAMETER VERSION = 2.2.0 - - -BEGIN OS - PARAMETER OS_NAME = freertos - PARAMETER STDIN = * - PARAMETER STDOUT = * -END diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl deleted file mode 100644 index 7845d73a8..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/data/FreeRTOS_Hello_World.tcl +++ /dev/null @@ -1,127 +0,0 @@ -proc swapp_get_name {} { - return "FreeRTOS Hello World"; -} - -proc swapp_get_description {} { - return "Let's say 'Hello World' in FreeRTOS."; -} - -proc get_os {} { - set oslist [xget_sw_modules "type" "os"]; - set os [lindex $oslist 0]; - - if { $os == "" } { - error "No Operating System specified in the Board Support Package."; - } - - return $os; -} - -proc get_stdout {} { - set os [get_os]; - set stdout [xget_sw_module_parameter $os "STDOUT"]; - return $stdout; -} - -proc check_stdout_hw {} { - set uartlites [xget_ips "type" "uartlite"]; - set uart16550s [xget_ips "type" "uart16550"]; - if { ([llength $uartlites] == 0) && ([llength $uart16550s] == 0) } { - # Check for MDM-Uart peripheral. The MDM would be listed as a peripheral - # only if it has a UART interface. So no further check is required - set mdmlist [xget_ips "type" "mdm"] - if { [llength $mdmlist] == 0 } { - error "This application requires a Uart IP in the hardware." - } - } -} - -proc check_stdout_sw {} { - set stdout [get_stdout]; - if { $stdout == "none" } { - error "The STDOUT parameter is not set on the OS. Hello World requires stdout to be set." - } -} - -proc get_mem_size { memlist } { - return [lindex $memlist 4]; -} - -proc require_memory {memsize} { - set imemlist [xget_memory_ranges "access_type" "I"]; - set idmemlist [xget_memory_ranges "access_type" "ID"]; - set dmemlist [xget_memory_ranges "access_type" "D"]; - - set memlist [concat $imemlist $idmemlist $dmemlist]; - - while { [llength $memlist] > 3 } { - set mem [lrange $memlist 0 4]; - set memlist [lreplace $memlist 0 4]; - - if { [get_mem_size $mem] >= $memsize } { - return 1; - } - } - - error "This application requires atleast $memsize bytes of memory."; -} - -proc swapp_is_supported_hw {} { - # check for uart peripheral - check_stdout_hw; - - # require about 1M of memory - require_memory "1000000"; - - return 1; -} - -proc swapp_is_supported_sw {} { - # check for stdout being set - check_stdout_sw; - - return 1; -} - -proc generate_stdout_config { fid } { - set stdout [get_stdout]; - - # if stdout is uartlite, we don't have to generate anything - set stdout_type [xget_ip_attribute "type" $stdout]; - - if { [regexp -nocase "uartlite" $stdout_type] || [string match -nocase "mdm" $stdout_type] } { - return; - } elseif { [regexp -nocase "uart16550" $stdout_type] } { - # mention that we have a 16550 - puts $fid "#define STDOUT_IS_16550"; - - # and note down its base address - set prefix "XPAR_"; - set postfix "_BASEADDR"; - set stdout_baseaddr_macro $prefix$stdout$postfix; - set stdout_baseaddr_macro [string toupper $stdout_baseaddr_macro]; - puts $fid "#define STDOUT_BASEADDR $stdout_baseaddr_macro"; - } -} - -# depending on the type of os (standalone|xilkernel), choose -# the correct source files -proc swapp_generate {} { - - # cleanup this file for writing - set fid [open "platform_config.h" "w+"]; - puts $fid "#ifndef __PLATFORM_CONFIG_H_"; - puts $fid "#define __PLATFORM_CONFIG_H_\n"; - - # if we have a uart16550 as stdout, then generate some config for that - generate_stdout_config $fid; - - puts $fid "#endif"; - close $fid; -} - -proc swapp_get_linker_constraints {} { - - # we need a 4k heap - return "stack 40k heap 40k"; -} diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c deleted file mode 100644 index 95ba54fa3..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/KernelAwareBSPRepository/sw_apps/FreeRTOS_Hello_World/src/FreeRTOS-main.c +++ /dev/null @@ -1,407 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* - * FreeRTOS-main.c (this file) defines a very simple demo that creates two tasks, - * one queue, and one timer. - * - * The main() Function: - * main() creates one software timer, one queue, and two tasks. It then starts - * the scheduler. - * - * The Queue Send Task: - * The queue send task is implemented by the prvQueueSendTask() function in - * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly - * block for 200 milliseconds, before sending the value 100 to the queue that - * was created within main(). Once the value is sent, the task loops back - * around to block for another 200 milliseconds. - * - * The Queue Receive Task: - * The queue receive task is implemented by the prvQueueReceiveTask() function - * in this file. prvQueueReceiveTask() sits in a loop that causes it to - * repeatedly attempt to read data from the queue that was created within - * main(). When data is received, the task checks the value of the data, and - * if the value equals the expected 100, increments the ulRecieved variable. - * The 'block time' parameter passed to the queue receive function specifies - * that the task should be held in the Blocked state indefinitely to wait for - * data to be available on the queue. The queue receive task will only leave - * the Blocked state when the queue send task writes to the queue. As the queue - * send task writes to the queue every 200 milliseconds, the queue receive task - * leaves the Blocked state every 200 milliseconds, and therefore toggles the LED - * every 200 milliseconds. - * - * The Software Timer: - * The software timer is configured to be an "auto reset" timer. Its callback - * function simply increments the ulCallback variable each time it executes. - */ - -/* Kernel includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "timers.h" - -/* BSP includes. */ -#include "xtmrctr.h" - -/* Priorities at which the tasks are created. */ -#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) - -/* The rate at which data is sent to the queue, specified in milliseconds, and -converted to ticks using the portTICK_PERIOD_MS constant. */ -#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS ) - -/* The number of items the queue can hold. This is 1 as the receive task -will remove items as they are added because it has the higher priority, meaning -the send task should always find the queue empty. */ -#define mainQUEUE_LENGTH ( 1 ) - -/* A block time of 0 simply means, "don't block". */ -#define mainDONT_BLOCK ( TickType_t ) 0 - -/* The following constants describe the timer instance used in this application. -They are defined here such that a user can easily change all the needed parameters -in one place. */ -#define TIMER_DEVICE_ID XPAR_TMRCTR_0_DEVICE_ID -#define TIMER_FREQ_HZ XPAR_TMRCTR_0_CLOCK_FREQ_HZ -#define TIMER_INTR_ID XPAR_INTC_0_TMRCTR_0_VEC_ID - -/*-----------------------------------------------------------*/ - -/* - * The tasks as described in the comments at the top of this file. - */ -static void prvQueueReceiveTask( void *pvParameters ); -static void prvQueueSendTask( void *pvParameters ); - -/* - * The LED timer callback function. This does nothing but increment the - * ulCallback variable each time it executes. - */ -static void vSoftwareTimerCallback( TimerHandle_t xTimer ); - -/*-----------------------------------------------------------*/ - -/* The queue used by the queue send and queue receive tasks. */ -static QueueHandle_t xQueue = NULL; - -/* The LED software timer. This uses vSoftwareTimerCallback() as its callback -function. */ -static TimerHandle_t xExampleSoftwareTimer = NULL; - -/*-----------------------------------------------------------*/ - -/* Structures that hold the state of the various peripherals used by this demo. -These are used by the Xilinx peripheral driver API functions. */ -static XTmrCtr xTimer0Instance; - -/* The variable that is incremented each time the receive task receives the -value 100. */ -static unsigned long ulReceived = 0UL; - -/* The variable that is incremented each time the software time callback function -executes. */ -static unsigned long ulCallback = 0UL; - -/*-----------------------------------------------------------*/ - -int main( void ) -{ - /*************************************************************************** - See http://www.FreeRTOS.org for full information on FreeRTOS, including - an API reference, pdf API reference manuals, and FreeRTOS tutorial books. - - See http://www.freertos.org/Free-RTOS-for-Xilinx-MicroBlaze-on-Spartan-6-FPGA.html - for comprehensive standalone FreeRTOS for MicroBlaze demos. - ***************************************************************************/ - - /* Create the queue used by the queue send and queue receive tasks as - described in the comments at the top of this file. */ - xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); - - /* Sanity check that the queue was created. */ - configASSERT( xQueue ); - - /* Start the two tasks as described in the comments at the top of this - file. */ - xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_RECEIVE_TASK_PRIORITY, NULL ); - xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL ); - - /* Create the software timer */ - xExampleSoftwareTimer = xTimerCreate( "SoftwareTimer", /* A text name, purely to help debugging. */ - ( 5000 / portTICK_PERIOD_MS ),/* The timer period, in this case 5000ms (5s). */ - pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ - ( void * ) 0, /* The ID is not used, so can be set to anything. */ - vSoftwareTimerCallback /* The callback function that switches the LED off. */ - ); - - /* Start the software timer. */ - xTimerStart( xExampleSoftwareTimer, mainDONT_BLOCK ); - - /* Start the tasks and timer running. */ - vTaskStartScheduler(); - - /* If all is well, the scheduler will now be running, and the following line - will never be reached. If the following line does execute, then there was - insufficient FreeRTOS heap memory available for the idle and/or timer tasks - to be created. See the memory management section on the FreeRTOS web site - for more details. */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -/* The callback is executed when the software timer expires. */ -static void vSoftwareTimerCallback( TimerHandle_t xTimer ) -{ - /* Just increment the ulCallbac variable. */ - ulCallback++; -} -/*-----------------------------------------------------------*/ - -static void prvQueueSendTask( void *pvParameters ) -{ -TickType_t xNextWakeTime; -const unsigned long ulValueToSend = 100UL; - - /* Initialise xNextWakeTime - this only needs to be done once. */ - xNextWakeTime = xTaskGetTickCount(); - - for( ;; ) - { - /* Place this task in the blocked state until it is time to run again. - The block time is specified in ticks, the constant used converts ticks - to ms. While in the Blocked state this task will not consume any CPU - time. */ - vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS ); - - /* Send to the queue - causing the queue receive task to unblock and - toggle an LED. 0 is used as the block time so the sending operation - will not block - it shouldn't need to block as the queue should always - be empty at this point in the code. */ - xQueueSend( xQueue, &ulValueToSend, mainDONT_BLOCK ); - } -} -/*-----------------------------------------------------------*/ - -static void prvQueueReceiveTask( void *pvParameters ) -{ -unsigned long ulReceivedValue; - - for( ;; ) - { - /* Wait until something arrives in the queue - this task will block - indefinitely provided INCLUDE_vTaskSuspend is set to 1 in - FreeRTOSConfig.h. */ - xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); - - /* To get here something must have been received from the queue, but - is it the expected value? If it is, increment the ulReceived variable. */ - if( ulReceivedValue == 100UL ) - { - ulReceived++; - } - } -} -/*-----------------------------------------------------------*/ - -void vApplicationMallocFailedHook( void ) -{ - /* vApplicationMallocFailedHook() will only be called if - configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook - function that will get called if a call to pvPortMalloc() fails. - pvPortMalloc() is called internally by the kernel whenever a task, queue or - semaphore is created. It is also called by various parts of the demo - application. If heap_1.c or heap_2.c are used, then the size of the heap - available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in - FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used - to query the size of free heap space that remains (although it does not - provide information on how the remaining heap might be fragmented). */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationStackOverflowHook( TaskHandle_t *pxTask, signed char *pcTaskName ) -{ - ( void ) pcTaskName; - ( void ) pxTask; - - /* vApplicationStackOverflowHook() will only be called if - configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2. The handle and name - of the offending task will be passed into the hook function via its - parameters. However, when a stack has overflowed, it is possible that the - parameters will have been corrupted, in which case the pxCurrentTCB variable - can be inspected directly. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationIdleHook( void ) -{ - /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set - to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle - task. It is essential that code added to this hook function never attempts - to block in any way (for example, call xQueueReceive() with a block time - specified, or call vTaskDelay()). If the application makes use of the - vTaskDelete() API function (as this demo application does) then it is also - important that vApplicationIdleHook() is permitted to return to its calling - function, because it is the responsibility of the idle task to clean up - memory allocated by the kernel to any task that has since been deleted. */ -} -/*-----------------------------------------------------------*/ - -void vApplicationTickHook( void ) -{ - /* vApplicationTickHook() will only be called if configUSE_TICK_HOOK is set - to 1 in FreeRTOSConfig.h. It executes from an interrupt context so must - not use any FreeRTOS API functions that do not end in ...FromISR(). - - This simple blinky demo does not use the tick hook, but a tick hook is - required to be defined as the blinky and full demos share a - FreeRTOSConfig.h header file. */ -} -/*-----------------------------------------------------------*/ - -/* This is an application defined callback function used to install the tick -interrupt handler. It is provided as an application callback because the kernel -will run on lots of different MicroBlaze and FPGA configurations - there could -be multiple timer instances in the hardware platform and the users can chose to -use any one of them. This example uses Timer 0. If that is available in your -hardware platform then this example callback implementation should not require -modification. The definitions for the timer instance used are at the top of this -file so that users can change them at one place based on the timer instance they -use. The name of the interrupt handler that should be installed is vPortTickISR(), -which the function below declares as an extern. */ -void vApplicationSetupTimerInterrupt( void ) -{ -portBASE_TYPE xStatus; -const unsigned char ucTimerCounterNumber = ( unsigned char ) 0U; -const unsigned long ulCounterValue = ( ( TIMER_FREQ_HZ / configTICK_RATE_HZ ) - 1UL ); -extern void vPortTickISR( void *pvUnused ); - - /* Initialise the timer/counter. */ - xStatus = XTmrCtr_Initialize( &xTimer0Instance, TIMER_DEVICE_ID ); - - if( xStatus == XST_SUCCESS ) - { - /* Install the tick interrupt handler as the timer ISR. - *NOTE* The xPortInstallInterruptHandler() API function must be used for - this purpose. */ - xStatus = xPortInstallInterruptHandler( TIMER_INTR_ID, vPortTickISR, NULL ); - } - - if( xStatus == pdPASS ) - { - /* Enable the timer interrupt in the interrupt controller. - *NOTE* The vPortEnableInterrupt() API function must be used for this - purpose. */ - vPortEnableInterrupt( TIMER_INTR_ID ); - - /* Configure the timer interrupt handler. */ - XTmrCtr_SetHandler( &xTimer0Instance, ( void * ) vPortTickISR, NULL ); - - /* Set the correct period for the timer. */ - XTmrCtr_SetResetValue( &xTimer0Instance, ucTimerCounterNumber, ulCounterValue ); - - /* Enable the interrupts. Auto-reload mode is used to generate a - periodic tick. Note that interrupts are disabled when this function is - called, so interrupts will not start to be processed until the first - task has started to run. */ - XTmrCtr_SetOptions( &xTimer0Instance, ucTimerCounterNumber, ( XTC_INT_MODE_OPTION | XTC_AUTO_RELOAD_OPTION | XTC_DOWN_COUNT_OPTION ) ); - - /* Start the timer. */ - XTmrCtr_Start( &xTimer0Instance, ucTimerCounterNumber ); - } - - /* Sanity check that the function executed as expected. */ - configASSERT( ( xStatus == pdPASS ) ); -} -/*-----------------------------------------------------------*/ - -/* This is an application defined callback function used to clear whichever -interrupt was installed by the the vApplicationSetupTimerInterrupt() callback -function - in this case the interrupt generated by the AXI timer. It is -provided as an application callback because the kernel will run on lots of -different MicroBlaze and FPGA configurations - not all of which will have the -same timer peripherals defined or available. This example uses the AXI Timer 0. -If that is available on your hardware platform then this example callback -implementation should not require modification provided the example definition -of vApplicationSetupTimerInterrupt() is also not modified. */ -void vApplicationClearTimerInterrupt( void ) -{ -unsigned long ulCSR; - - /* Clear the timer interrupt */ - ulCSR = XTmrCtr_GetControlStatusReg( XPAR_TMRCTR_0_BASEADDR, 0 ); - XTmrCtr_SetControlStatusReg( XPAR_TMRCTR_0_BASEADDR, 0, ulCSR ); -} -/*-----------------------------------------------------------*/ - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system.bit deleted file mode 100644 index be3fae52cc34f82deae38ac9449bc2701a6c3d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484497 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 z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U^i*Ahn*DzqyaP-%WL9oSNKyw - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interconnect - AXI4 Memory-Mapped Interconnect - - - - - - - Family - - - Base Family - - - Number of Slave Slots - - - Number of Master Slots - - - AXI ID Widgth - - - AXI Address Widgth - - - AXI Data Maximum Width - - - Slave AXI Data Width - - - Master AXI Data Width - - - Interconnect Crossbar Data Width - - - AXI Protocol - - - Master AXI Protocol - - - Master AXI Base Address - - - Master AXI High Address - - - Slave AXI Base ID - - - Slave AXI Thread ID Width - - - Slave AXI Is Interconnect - - - Slave AXI ACLK Ratio - - - Slvave AXI Is ACLK ASYNC - - - Master AXI ACLK Ratio - - - Master AXI Is ACLK ASYNC - - - Interconnect Crossbar ACLK Frequency Ratio - - - Slave AXI Supports Write - - - Slave AXI Supports Read - - - Master AXI Supports Write - - - Master AXI Supports Read - - - Propagate USER Signals - - - AWUSER Signal Width - - - ARUSER Signal Width - - - WUSER Signal Width - - - RUSER Signal Width - - - BUSER Signal Width - - - AXI Connectivity - - - Slave AXI Single Thread - - - Master AXI Supports Reordering - - - Master generates narrow bursts - - - Slave accepts narrow bursts - - - Slave AXI Write Acceptance - - - Slave AXI Read Acceptance - - - Master AXI Write Issuing - - - Master AXI Read Issuing - - - Slave AXI ARB Priority - - - Master AXI Secure - - - Master AXI Write FIFO Depth - - - Slave AXI Write FIFO Type - - - Slave AXI Write FIFO Delay - - - Slave AXI Read FIFO Depth - - - Slave AXI Read FIFO Type - - - Slave AXI Read FIFO Delay - - - Master AXI Write FIFO Depth - - - Master AXI Write FIFO Type - - - Master AXI Write FIFO Delay - - - Master AXI Read FIFO Depth - - - Master AXI Read FIFO Type - - - Master AXI Read FIFO Delay - - - Slave AXI AW Register - - - Slave AXI AR Register - - - Slave AXI W Register - - - Slave AXI R Register - - - Slave AXI B Register - - - Master AXI AW Register - - - Master AXI AR Register - - - Master AXI W Register - - - Master AXI R Register - - - Master AXI B Register - - - C_INTERCONNECT_R_REGISTER - - - Interconnect Architecture - - - Use Diagnostic Slave Port - - - Generate Interrupts - - - Check for transaction errors (DECERR) - - - Slave AXI CTRL Protocol - - - Slave AXI CTRL Address Width - - - Slave AXI CTRL Data Width - - - Diagnostic Slave Port Base Address - - - Diagnostic Slave Port High Address - - - Simulation debug - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interconnect - AXI4 Memory-Mapped Interconnect - - - - - - - Family - - - Base Family - - - Number of Slave Slots - - - Number of Master Slots - - - AXI ID Widgth - - - AXI Address Widgth - - - AXI Data Maximum Width - - - Slave AXI Data Width - - - Master AXI Data Width - - - Interconnect Crossbar Data Width - - - AXI Protocol - - - Master AXI Protocol - - - Master AXI Base Address - - - Master AXI High Address - - - Slave AXI Base ID - - - Slave AXI Thread ID Width - - - Slave AXI Is Interconnect - - - Slave AXI ACLK Ratio - - - Slvave AXI Is ACLK ASYNC - - - Master AXI ACLK Ratio - - - Master AXI Is ACLK ASYNC - - - Interconnect Crossbar ACLK Frequency Ratio - - - Slave AXI Supports Write - - - Slave AXI Supports Read - - - Master AXI Supports Write - - - Master AXI Supports Read - - - Propagate USER Signals - - - AWUSER Signal Width - - - ARUSER Signal Width - - - WUSER Signal Width - - - RUSER Signal Width - - - BUSER Signal Width - - - AXI Connectivity - - - Slave AXI Single Thread - - - Master AXI Supports Reordering - - - Master generates narrow bursts - - - Slave accepts narrow bursts - - - Slave AXI Write Acceptance - - - Slave AXI Read Acceptance - - - Master AXI Write Issuing - - - Master AXI Read Issuing - - - Slave AXI ARB Priority - - - Master AXI Secure - - - Master AXI Write FIFO Depth - - - Slave AXI Write FIFO Type - - - Slave AXI Write FIFO Delay - - - Slave AXI Read FIFO Depth - - - Slave AXI Read FIFO Type - - - Slave AXI Read FIFO Delay - - - Master AXI Write FIFO Depth - - - Master AXI Write FIFO Type - - - Master AXI Write FIFO Delay - - - Master AXI Read FIFO Depth - - - Master AXI Read FIFO Type - - - Master AXI Read FIFO Delay - - - Slave AXI AW Register - - - Slave AXI AR Register - - - Slave AXI W Register - - - Slave AXI R Register - - - Slave AXI B Register - - - Master AXI AW Register - - - Master AXI AR Register - - - Master AXI W Register - - - Master AXI R Register - - - Master AXI B Register - - - C_INTERCONNECT_R_REGISTER - - - Interconnect Architecture - - - Use Diagnostic Slave Port - - - Generate Interrupts - - - Check for transaction errors (DECERR) - - - Slave AXI CTRL Protocol - - - Slave AXI CTRL Address Width - - - Slave AXI CTRL Data Width - - - Diagnostic Slave Port Base Address - - - Diagnostic Slave Port High Address - - - Simulation debug - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MicroBlaze - The MicroBlaze 32 bit soft processor - - - - - - - - - - - - - Enable Fault Tolerance Support - - - - - Select implementation to optimize area (with lower instruction throughput) - - - - Select Bus Interfaces - - - Select Stream Interfaces - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Enable Additional Machine Status Register Instructions - - - Enable Pattern Comparator - - - Enable Barrel Shifter - - - Enable Integer Divider - - - Enable Integer Multiplier - - - Enable Floating Point Unit - - - Enable Unaligned Data Exception - - - Enable Illegal Instruction Exception - - - Enable Instruction-side AXI Exception - - - Enable Data-side AXI Exception - - - Enable Instruction-side PLB Exception - - - Enable Data-side PLB Exception - - - Enable Integer Divide Exception - - - Enable Floating Point Unit Exceptions - - - Enable Stream Exception - - - <qt>Enable stack protection</qt> - - - Specifies Processor Version Register - - - Specify USER1 Bits in Processor Version Register - - - Specify USER2 Bits in Processor Version Registers - - - Enable MicroBlaze Debug Module Interface - - - Number of PC Breakpoints - - - Number of Read Address Watchpoints - - - Number of Write Address Watchpoints - - - Sense Interrupt on Edge vs. Level - - - Sense Interrupt on Rising vs. Falling Edge - - - Specify Reset Value for Select MSR Bits - - - <qt>Generate Illegal Instruction Exception for NULL Instruction</qt> - - - Number of Stream Links - - - - Enable Additional Stream Instructions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - I-Cache Base Address - - - I-Cache High Address - - - Enable Instruction Cache - - - Enable I-Cache Writes - - - - Size of the I-Cache in Bytes - - - - Instruction Cache Line Length - - - Use Cache Links for All I-Cache Memory Accesses - - - - Number of I-Cache Victims - - - Number of I-Cache Streams - - - Use Distributed RAM for I-Cache Tags - - - - - - - - - - - - - - - - - - - - D-Cache Base Address - - - D-Cache High Address - - - Enable Data Cache - - - Enable D-Cache Writes - - - - Size of D-Cache in Bytes - - - - Data Cache Line Length - - - Use Cache Links for All D-Cache Memory Accesses - - - - Enable Write-back Storage Policy - - - Number of D-Cache Victims - - - Use Distributed RAM for D-Cache Tags - - - - - - - - - - - - - - - - - - - - - - Memory Management - - - Data Shadow Translation Look-Aside Buffer Size - - - Instruction Shadow Translation Look-Aside Buffer Size - - - Enable Access to Memory Management Special Registers - - - Number of Memory Protection Zones - - - Privileged Instructions - - - - - - Enable Branch Target Cache - - - Branch Target Cache Size - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Local Memory Bus (LMB) 1.0 - 'The LMB is a fast, local bus for connecting MicroBlaze I and D ports to peripherals and BRAM' - - - - - - - Number of Bus Slaves - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Active High External Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Local Memory Bus (LMB) 1.0 - 'The LMB is a fast, local bus for connecting MicroBlaze I and D ports to peripherals and BRAM' - - - - - - - Number of Bus Slaves - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Active High External Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMB BRAM Controller - Local Memory Bus (LMB) Block RAM (BRAM) Interface Controller connects to an lmb bus - - - - - - - LMB BRAM Base Address - - - LMB BRAM High Address - - - - LMB Address Decode Mask - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Error Correction Code - - - Select Interconnect - - - Fault Inject Registers - - - Correctable Error First Failing Register - - - Uncorrectable Error First Failing Register - - - ECC Status and Control Register - - - ECC On/Off Register - - - ECC On/Off Reset Value - - - Correctable Error Counter Register Width - - - Write Access setting - - - Base Address for PLB Interface - - - High Address for PLB Interface - - - PLB Address Bus Width - - - PLB Data Bus Width - - - PLB Slave Uses P2P Topology - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - PLB Slave is Capable of Bursts - - - Native Data Bus Width of PLB Slave - - - Frequency of PLB Slave - - - S_AXI_CTRL Clock Frequency - - - S_AXI_CTRL Base Address - - - S_AXI_CTRL High Address - - - S_AXI_CTRL Address Width - - - S_AXI_CTRL Data Width - - - S_AXI_CTRL Protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMB BRAM Controller - Local Memory Bus (LMB) Block RAM (BRAM) Interface Controller connects to an lmb bus - - - - - - - LMB BRAM Base Address - - - LMB BRAM High Address - - - - LMB Address Decode Mask - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Error Correction Code - - - Select Interconnect - - - Fault Inject Registers - - - Correctable Error First Failing Register - - - Uncorrectable Error First Failing Register - - - ECC Status and Control Register - - - ECC On/Off Register - - - ECC On/Off Reset Value - - - Correctable Error Counter Register Width - - - Write Access setting - - - Base Address for PLB Interface - - - High Address for PLB Interface - - - PLB Address Bus Width - - - PLB Data Bus Width - - - PLB Slave Uses P2P Topology - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - PLB Slave is Capable of Bursts - - - Native Data Bus Width of PLB Slave - - - Frequency of PLB Slave - - - S_AXI_CTRL Clock Frequency - - - S_AXI_CTRL Base Address - - - S_AXI_CTRL High Address - - - S_AXI_CTRL Address Width - - - S_AXI_CTRL Data Width - - - S_AXI_CTRL Protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Block RAM (BRAM) Block - The BRAM Block is a configurable memory module that attaches to a variety of BRAM Interface Controllers. - - - - - - - Size of BRAM(s) in Bytes - - - Data Width of Port A and B - - - Address Width of Port A and B - - - Number of Byte Write Enables - - - Device Family - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processor System Reset Module - Reset management module - - - - - - - Device Subfamily - - - Number of Clocks Before Input Change is Recognized On The External Reset Input - - - Number of Clocks Before Input Change is Recognized On The Auxiliary Reset Input - - - External Reset Active High - - - Auxiliary Reset Active High - - - Number of Bus Structure Reset Registered Outputs - - - Number of Peripheral Reset Registered Outputs - - - Number of Active Low Interconnect Reset Registered Outputs - - - Number of Active Low Peripheral Reset Registered Outputs - - - Device Family - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Clock Generator - Clock generator for processor system. - - - - - - - Family - - - Device - - - Package - - - Speed Grade - - - Input Clock Frequency (Hz) - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Varaible Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Varaible Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Clock Deskew - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase Shift - - - - Clock Primitive Feedback Buffer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MicroBlaze Debug Module (MDM) - Debug module for MicroBlaze Soft Processor. - - - - - - - Device Family - - - Specifies the JTAG user-defined register used - - - Specifies the Bus Interface for the JTAG UART - - - Base Address - - - High Address - - - PLB Address Bus Width - - - PLB Data Bus Width - - - PLB Slave Uses P2P Topology - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - Native Data Bus Width of PLB Slave - - - PLB Slave is Capable of Bursts - - - Number of MicroBlaze debug ports - - - Enable JTAG UART - - - AXI Address Width - - - AXI Data Width - - - AXI4LITE protocal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI UART (Lite) - Generic UART (Universal Asynchronous Receiver/Transmitter) for AXI. - - - - - - - Device Family - - - AXI Clock Frequency - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - UART Lite Baud Rate - Baud Rate - - - Number of Data Bits in a Serial Frame - Data Bits - - - Use Parity - - - Parity Type - - - AXI4LITE protocol - - - - - - - - - - Serial Data Out - - - Serial Data In - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI General Purpose IO - General Purpose Input/Output (GPIO) core for the AXI bus. - - - - - - - Device Family - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Supports Interrupts - - - Channel 1 Data Out Default Value - - - Channel 1 Tri-state Default Value - - - Enable Channel 2 - - - Channel 2 Data Out Default Value - - - Channel 2 Tri-state Default Value - - - AXI4LITE protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO1 Data IO - - - GPIO2 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI General Purpose IO - General Purpose Input/Output (GPIO) core for the AXI bus. - - - - - - - Device Family - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Supports Interrupts - - - Channel 1 Data Out Default Value - - - Channel 1 Tri-state Default Value - - - Enable Channel 2 - - - Channel 2 Data Out Default Value - - - Channel 2 Tri-state Default Value - - - AXI4LITE protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO1 Data IO - - - GPIO2 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI S6 Memory Controller(DDR/DDR2/DDR3) - Spartan-6 memory controller - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI 10/100 Ethernet MAC Lite - 'IEEE Std. 802.3 MII interface MAC with AXI interface, lightweight implementation' - - - - - - - AXI protocol selection - - - Device Family - - - Ethernetlite Base Address - - - Ethernetlite High Address - - - AXI System Clock Period - - - AXI Interface Addresses Width - - - AXI Interface Data Width - - - Width of ID Bus on AXI4 - - - Include MII Management Module - - - Include Global Buffers for PHY clocks - - - Include Internal Loopback - - - Duplex Mode - - - Include Second Transmitter Buffer - - - Include Second Receiver Buffer - - - Include PHY I/O Constraints - - - Interconnect write acceptance - - - Interconnect read acceptance - - - Support Narrow Burst on AXI4 - - - - - - - - - - Ethernet PHY Management Data - - - Ethernet PHY Management Clock - - - Ethernet Transmit Data Output - - - Ethernet Transmit Enable - - - Ethernet Transmit Clock Input - - - Ethernet Collision Input - - - Ethernet Receive Data Input - - - Ethernet Receive Error Input - - - Ethernet Receive Clock Input - - - Ethernet Carrier Sense Input - - - Ethernet Receive Data Valid - - - Ethernet PHY Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Timer/Counter - Timer counter with AXI interface - - - - - - - AXI4LITE protocol - - - Device Family - - - The Width of Counter in Timer - Count Width - - - Only One Timer is present - - - TRIG0 Active Level - - - TRIG1 Active Level - - - GEN0 Active Level - - - GEN1 Active Level - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - - - - - - - - - - Capture Trig 0 - - - Capture Trig 1 - - - Generate Out 0 - - - Generate Out 1 - - - Pulse Width Modulation 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interrupt Controller - intc core attached to the AXI - - - - - - - Device Family - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - Number of Interrupt Inputs - - - Type of Interrupt for Each Input - - - Type of Each Edge Senstive Interrupt - - - Type of Each Level Sensitive Interrupt - - - Support IPR - - - Support SIE - - - Support CIE - - - Support IVR - - - IRQ Output Use Level - - - The Sense of IRQ Output - - - AXI4LITE protocol - - - - - - - - - - Interrupt Request Output - - - - - - - - - - Interrupt Inputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm deleted file mode 100644 index ca5622cf7..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/SDK/SDK_Export/hw/system_bd.bmm +++ /dev/null @@ -1,32 +0,0 @@ -// BMM LOC annotation file. -// -// Release 13.1 - Data2MEM O.40d, build 1.9 Aug 19, 2010 -// Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved. - - -/////////////////////////////////////////////////////////////////////////////// -// -// Processor 'microblaze_0', ID 100, memory map. -// -/////////////////////////////////////////////////////////////////////////////// - -ADDRESS_MAP microblaze_0 MICROBLAZE-LE 100 - - - /////////////////////////////////////////////////////////////////////////////// - // - // Processor 'microblaze_0' address space 'microblaze_0_bram_block_combined' 0x00000000:0x00001FFF (8 KBytes). - // - /////////////////////////////////////////////////////////////////////////////// - - ADDRESS_SPACE microblaze_0_bram_block_combined RAMB16 [0x00000000:0x00001FFF] - BUS_BLOCK - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_0 [31:24] INPUT = microblaze_0_bram_block_combined_0.mem PLACED = X1Y30; - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_1 [23:16] INPUT = microblaze_0_bram_block_combined_1.mem PLACED = X1Y32; - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_2 [15:8] INPUT = microblaze_0_bram_block_combined_2.mem PLACED = X0Y30; - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_3 [7:0] INPUT = microblaze_0_bram_block_combined_3.mem PLACED = X0Y32; - END_BUS_BLOCK; - END_ADDRESS_SPACE; - -END_ADDRESS_MAP; - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl deleted file mode 100644 index 31625c0c4..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl deleted file mode 100644 index 1c97a4dee..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Colors.xsl +++ /dev/null @@ -1,150 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl deleted file mode 100644 index c066fad3a..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_Globals.xsl +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl deleted file mode 100644 index 88282dee5..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl +++ /dev/null @@ -1,584 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UNKNOWN Text style class - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl deleted file mode 100644 index 89b61569f..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl +++ /dev/null @@ -1,2758 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NONE - - - - - - - - NONE - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - _unknown_ - - - - - - - - - - - - - - - _unknown_ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NONE - - - - - - - - NONE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl deleted file mode 100644 index b95ad1144..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl +++ /dev/null @@ -1,546 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowInitiator - BusArrowSouth - - - - - - BusArrowInitiator - BusArrowNorth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowWest - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl deleted file mode 100644 index 5b091aba5..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl +++ /dev/null @@ -1,1112 +0,0 @@ - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 'NONE' - - - - - - - NONE - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 'NONE' - - - - - - - NONE - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl deleted file mode 100644 index 87bd7f399..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - 0 - - - - - - - 0 - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - Generating Blkdiagram in TestMode - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl deleted file mode 100644 index 4a9d67142..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl +++ /dev/null @@ -1,495 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - I - O - B - I - - - - - - W - E - D - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - 0 - -90 - 180 - 90 - - 180 - 90 - 0 - -90 - - 0 - 0 - 0 - 0 - 0 - - - - - - - -10 - 6 - - 6 - 0 - - - - - - - - - -2 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - I - O - B - I - - - - - - W - S - E - N - D - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - - - - 0 - - - - - - - 0 - -90 - 180 - 90 - - 180 - 90 - 0 - -90 - - 0 - 0 - 0 - 0 - 0 - - - - - - -14 - 8 - - 8 - 0 - - - - - - - - - -2 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl deleted file mode 100644 index 7fe3adb35..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl +++ /dev/null @@ -1,1566 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ERROT: Project is missing BLKDIAGRAM Element. Cannot generate. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - 0> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - NONE - - - - - - - - NONE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl deleted file mode 100644 index b676156c8..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl +++ /dev/null @@ -1,1582 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - symbol_ - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 'UNK' - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 4.5 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - -symbol_STACK_ - - - - -symbol_GROUP_ - - - -symbol_SPACE_WEST__EAST_ -symbol_STACK_ -symbol_STACK__SHAPE_ - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl deleted file mode 100644 index 11ab1be08..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl +++ /dev/null @@ -1,465 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SLAVES OF - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "_no_interrupt_cntlr_" - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl deleted file mode 100644 index 160f2d8be..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl +++ /dev/null @@ -1,271 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt deleted file mode 100644 index 7d88d37d7..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/bitinit.opt +++ /dev/null @@ -1 +0,0 @@ - -p xc6slx45tfgg484-3 diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl deleted file mode 100644 index 9249c08a9..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_globals.xsl +++ /dev/null @@ -1,263 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -]> - - - - - - - - - - - document($P_SYSTEM_XML) - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - document($P_GROUPS_XML) - / - - - - - - - - - - - - - - - - - - - FOCUSED MASTERS SPECIFIED - - - - - FOCUSED MASTER BIF . = - - - - - - - - - - FOCUSED PERIPHERAL BRIDGE - - - - - - FOCUSED PERIPHERAL BRIDGE - - - - - - - - - - - FOCUSED PERIPHERAL has memory ranges - - - - FOCUSED PERIPHERAL BUS - - - - - - - - - - FOCUSED BUSSES SPECIFIED - - - - - - FOCUSED BUS - - - - - - - - TRUE - FALSE - - - - - - - - Bus - Debug - Memory - Memory Controller - Interrupt Controller - Peripheral - Processor - Bus Bridge - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TRUE - FALSE - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl deleted file mode 100644 index b0fee7aa9..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view.xsl +++ /dev/null @@ -1,245 +0,0 @@ - - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - - - - - - SAV VIEW - SAV MODE - SAV SCOPE - - - - - EDW2SAV XTELLER ERROR: UNDEFINED VIEW - - - - EDW2SAV XTELLER ERROR: UNDEFINED MODE - - - - EDW2SAV XTELLER ERROR: UNDEFINED SCOPE - - - - EDW2SAV XTELLER ERROR: SYSTEM XML UNDEFINED - - - - EDW2SAV XTELLER ERROR: EDKSYSTEM MISSING in SYSTEM XML - - - - EDW2SAV XTELLER ERROR: GROUP XML UNDEFINED for FOCUS - - - - EDW2SAV XTELLER ERROR: GROUP XML UNDEFINED for SCOPE - - - - - - SYSTEM XML - GROUPS XML - - - - - TREE - - - - - - - - - PROJECT - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ERROR during SAV XTeller generation with panel and display mode - - - - - - - - - - - - - - - - TRUE - FALSE - - - - - - - - TREE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ERROR during SAV XTeller generation with panel and display mode - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl deleted file mode 100644 index 5e8d06cb4..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_addr.xsl +++ /dev/null @@ -1,894 +0,0 @@ - - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - 's Address Map - - - - - - - MODULE - - - - - - INSTANCE - - Instance - STATIC - - - - - - : - - - - - - - - .: - - - : - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Connected - - - - - - TRUE - FALSE - - - - - STATIC - TEXTBOX - - - - - - - - - - - - - - - - - - - - - - - - - - - DROPDOWN - STATIC - DROPDOWN - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : - - - - - - - : - - - - - - - - - - - - Not Applicable - Not Connected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : - : - - - - - - - - - - - - - - - TRUE - FALSE - - - - - STATIC - TEXTBOX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DROPDOWN - STATIC - DROPDOWN - - - - - - - - - - - - - - - : - - - - - - - - - - : - - - - - - - - - Not Connected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 's Address Map - - - - - - - - - - - : - - - - - ADDRESS ID - - - - - .: - - - : - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Connected - - - - - - TRUE - FALSE - - - - - STATIC - TEXTBOX - - - - - - - - - - - - - - - - - - - - - - - - - - - - DROPDOWN - STATIC - DROPDOWN - - - - - - - - - - - - - - - - - - : - - - - - - - - - - : - - - - - - - - - - - - - - Not Applicable - Not Connected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - : - : - - - - - - - - - - - - - - - TRUE - FALSE - - - - - STATIC - TEXTBOX - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DROPDOWN - STATIC - DROPDOWN - - - - - - - - - - - - - - - : - - - - - - - - - - : - - - - - - - - - Not Connected - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl deleted file mode 100644 index 97adb0df8..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_busif.xsl +++ /dev/null @@ -1,631 +0,0 @@ - - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - MODULE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BUSINTERFACE - - - - - TRUE - - - TRUE - - - - - - - - STATIC - Bus Standard - BUSSTD - - - - - - - - - - - - USER - - - - - - - - TEXTBOX - Bus Name - BUSNAME - - - _ - - - - - - - - - - - - - - - - - - - - - - BUTTON - - - DROPDOWN - - - Bus Name - BUSNAME - No Connection - - - - - - - - - - - - - - - - DROPDOWN - Bus Name - BUSNAME - - - - - - - - - - - - - - - BUTTON - - - DROPDOWN - - - BUSNAME - Bus Name - - - & - - - - - - - - - - - - - - - - - - - DROPDOWN - Bus Name - BUSNAME - - - - - - - - - - - - - - - - - - - - - - - - - - - $moduleRef_/BUSINTERFACES - $moduleRef_ - - - - - - - - - - - - - - - - - - - - - - - - - BUSINTERFACE - - - - - TRUE - - - TRUE - - - - - - - - - - - - - - - - - - - - - - STATIC - Bus Standard - BUSSTD - - - - - - - - - USER - - - - - - - - TEXTBOX - Bus Name - BUSNAME - - - _ - - - - - - - - - - - - - - - - - - - - - - BUTTON - - - DROPDOWN - - - Bus Name - BUSNAME - No Connection - - - - - - - - - - - - - - - - - DROPDOWN - Bus Name - BUSNAME - - - - - - - - - - - - - - - BUTTON - - - DROPDOWN - - - BUSNAME - Bus Name - - - & - - - - - - - - - - - - - - - - - - - DROPDOWN - Bus Name - BUSNAME - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl deleted file mode 100644 index e302f3a23..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_groups.xsl +++ /dev/null @@ -1,1447 +0,0 @@ - - - - - - - - - - - - - -]> - - - - - - - - - - - - - - - - - - - - - - -Focusing on busses - - - - - - MODULES WITH POTENTIAL CONNECTIONS TO FOCUSED BUS - SEPARATOR - - Name - STATIC - Name - POTENTIAL MODULES BELOW HERE - - - IP Type - STATIC - MODTYPE - - - - IP Version - STATIC - HWVERSION - - - - IP Classification - STATIC - IPCLASS - - - - Bus Name - - BUSNAME - - - - Type - STATIC - TYPE - - - - Bus Standard - STATIC - BUSSTD - - - - - - - - - - - - - - - - - MODULES WITH POTENTIAL CONNECTIONS TO THIS SUBSYSTEM - SEPARATOR - - Name - STATIC - Name - POTENTIAL MODULES BELOW HERE - - - IP Type - STATIC - MODTYPE - - - - IP Version - STATIC - HWVERSION - - - - IP Classification - STATIC - IPCLASS - - - - Bus Name - - BUSNAME - - - - Type - STATIC - TYPE - - - - Bus Standard - - STATIC - BUSSTD - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PLACING BUS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CONNECTED MASTER GROUP - - - - - - - POTENTIAL MASTER GROUP - - - - - - - - - SHARED GROUP - - - - - - - - - - - - - - - - - - - - - MEMORY GROUP - - - - - - - - - - PERIPHERAL GROUP - - - - - - - - SLAVE GROUP - - - - - - - - IP GROUP - - - - - - - FLOATING GROUP - - - - - - - IGNORING - - - - - - - - - - - - - - - - PLACING BUS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PERI PROCESSOR - - - - - - - PLACING MEMORY - - - - - - - - - - PLACING POTENTIAL GROUP OF PERIPHERALS - - - - - - - - PLACING POTENTIAL GROUP OF SLAVES - - - - - - - IGNORING - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PLACING MODULE ON BUS - - - - - - - MODULE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - __NONE__ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMINING CONNECTED MODULE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CONNECTED BIFS - POTENTIAL BIFS - IS PERIPHERAL - - PLACING MODULE - - - - - - MODULE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMINING POTENTIAL MODULE - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BUS has bifs - - - - - - - - - - - - - - - - - - - - - connected BIFS - potential bifs - unfocused bifs - is a peripheral - - - PLACING POTENTIAL MODULE - - - - - - MODULE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMINING CONNECTED INTERFACE . - - - - - - - - - - - - - - - . - PROC CONNECTIONS - MAST CONNECTIONS - PERI CONNECTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - CONNECTED SCOPE - POTENTIAL SCOPE - - - - TRUE - TRUE - TRUE - FALSE - - - - - PLACING CONNECTED INTERFACE . - - - - - __NONE__ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - EXAMINING POTENTIAL INTERFACE . - - - - - - - - - - - - - - - PROC CONNECTIONS - MAST CONNECTIONS - PERI CONNECTIONS - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TRUE - TRUE - TRUE - FALSE - - - - - - - __NONE__ - - - - - PLACING POTENTIAL INTERFACE . - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PROJECT - BUSINTERFACE - TREE - - - - - - - - - - PLACING BUS - - - - - - - - - - - - MODULE - - Name - TEXTBOX - INSTANCE - - - - IP Type - STATIC - MODTYPE - - - - IP Version - STATIC - HWVERSION - - - - IP Classification - STATIC - IPCLASS - BUS - - - - - - - - - - - - - - - - - - MODULE - - - Name - TEXTBOX - INSTANCE - - - - IP Type - STATIC - MODTYPE - - - - IP Version - STATIC - HWVERSION - - - - IP Classification - STATIC - IPCLASS - - - - - - - - - - PLACING BIF - TYPE - BUS - - - - TEXTBOX - BUTTON - BUTTON - BUTTON - DROPDOWN - - - - - - & - - - - - - - VIEWTYPE - BUSNAME - - - BUSINTERFACE - - NAME - STATIC - NAME - - - - Bus Name - - BUSNAME - - - - Type - STATIC - TYPE - - - - Bus Standard - STATIC - BUSSTD - - - - - - - - - - PROCESSOR GROUP - - - - - GROUP - - NAME - STATIC - INSTANCE - Subsystem of - - - - - - - - - - MASTER GROUP - - - - - GROUP - - NAME - STATIC - INSTANCE - Subsystem of - - - - - - - - - - - PLACING SHARED PERIPHERALS - - - GROUP - - NAME - STATIC - INSTANCE - Peripherals shared by - - - - - - - - - PLACING MEMORY - - - - GROUP - - NAME - STATIC - INSTANCE - (Memory) - - - - - - - - - PLACING PERIPHERAL - - - - - - - PLACING SLAVES - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl deleted file mode 100644 index 5cfc3be61..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/edw2xtl_sav_view_port.xsl +++ /dev/null @@ -1,771 +0,0 @@ - - - - - - - - - - - - -]> - - - - - - - - - - - - - WRITING PORT in MODE : - - - - - - - - - - - - - - - - - - - - - - - - ExternalPorts - MODULE - - - - - Name - External Ports - Name - STATIC - - - - - - - - - PORT - - - - - - - - - - - - - - - - [:] - - - - [:] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TRUE - TRUE - FALSE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - __NONE__ - - - - - - - - __NONE__ - - - - - - - __NONE__ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - __NONE__ - - - - - - - - __NONE__ - - - - - - - __NONE__ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Connected to BUS - Connected to External Ports - Not connected to BUS or External Ports - - - - - - - - BUSINTERFACE.PORTS - - - TRUE - - - - - - - - - - - - - - - - - - - __NONE__ - - - - - - - - __NONE__ - - - - - - - __NONE__ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Connected to External Ports - Not connected to External Ports - - - - - - - IOINTERFACE.PORTS - - - TRUE - - - - - - - - - - - - - - - - - - - - - __NONE__ - - - - - - - - __NONE__ - - - - - - - __NONE__ - - - - - - - - - - - - - - - - - - - - - - - - - WRITING PORT MODE - - - - - - - - - - - - - - - - - - - - - - - - - - - TRUE - FALSE - - - - - - - - - - [:] - - - - [:] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TRUE - TRUE - FALSE - - - - - - - - - - has valid ports - - - - - - - - - - - - FALSE - TRUE - TRUE - FALSE - - - - - - - - - - - - - - - - - - - - - - - - - - - - TRUE - FALSE - - - - - TRUE - TRUE - TRUE - FALSE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - TRUE - FALSE - - - - - TRUE - TRUE - TRUE - FALSE - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml deleted file mode 100644 index 42f1efa6c..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/gensav_cmd.xml +++ /dev/null @@ -1,2 +0,0 @@ - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs deleted file mode 100644 index 59d19ccf9..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/_xmsgs/platgen.xmsgs +++ /dev/null @@ -1,141 +0,0 @@ - - - -IPNAME: axi_interconnect, INSTANCE:axi4_0 - tcl is overriding PARAMETER C_BASEFAMILY value to spartan6 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 69 - - -IPNAME: axi_interconnect, INSTANCE:axi4lite_0 - tcl is overriding PARAMETER C_BASEFAMILY value to spartan6 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 69 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_ENDIANNESS value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 183 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_ICACHE_USE_FSL value to 0 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 322 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_DCACHE_USE_FSL value to 0 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 352 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_SYS_RST_PRESENT value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 228 - - -Cannot determine the input clock associated with port : microblaze_0_i_bram_ctrl:BRAM_Clk_A. Clock DRCs will not be performed on this core and cores connected to it. - - -Cannot determine the input clock associated with port : microblaze_0_d_bram_ctrl:BRAM_Clk_A. Clock DRCs will not be performed on this core and cores connected to it. - - -IPNAME: axi_ethernetlite, INSTANCE: Ethernet_Lite - This design requires design constraints to guarantee performance. -Please refer to the data sheet for details. -The AXI clock frequency must be greater than or equal to 50 MHz for 100 Mbs Ethernet operation and greater than or equal to 5.0 MHz for 10 Mbs Ethernet operation. - C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.mhs line 324 - - -IPNAME: lmb_v10, INSTANCE:microblaze_0_ilmb - tool is overriding PARAMETER C_LMB_NUM_SLAVES value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_v10_v2_00_a\data\lmb_v10_v2_1_0.mpd line 70 - - -IPNAME: lmb_v10, INSTANCE:microblaze_0_dlmb - tool is overriding PARAMETER C_LMB_NUM_SLAVES value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_v10_v2_00_a\data\lmb_v10_v2_1_0.mpd line 70 - - -IPNAME: bram_block, INSTANCE:microblaze_0_bram_block - tool is overriding PARAMETER C_MEMSIZE value to 0x2000 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a\data\bram_block_v2_1_0.mpd line 67 - - -PORT: bscan_tdo1, CONNECTOR: bscan_tdo1 - No driver found. Port will be driven to GND - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 230 - - -PORT: bscan_tdi, CONNECTOR: bscan_tdi - floating connection - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 223 - - -PORT: bscan_reset, CONNECTOR: bscan_reset - floating connection - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 224 - - -PORT: bscan_shift, CONNECTOR: bscan_shift - floating connection - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 225 - - -PORT: bscan_update, CONNECTOR: bscan_update - floating connection - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 226 - - -PORT: bscan_capture, CONNECTOR: bscan_capture - floating connection - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 227 - - -PORT: bscan_sel1, CONNECTOR: bscan_sel1 - floating connection - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 228 - - -PORT: bscan_drck1, CONNECTOR: bscan_drck1 - floating connection - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\mdm_v2_00_b\data\mdm_v2_1_0.mpd line 229 - - -IPNAME: axi_interconnect, INSTANCE:axi4_0 - tcl is overriding PARAMETER C_RANGE_CHECK value to 0 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 137 - - -IPNAME: axi_interconnect, INSTANCE:axi4lite_0 - tcl is overriding PARAMETER C_RANGE_CHECK value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_interconnect_v1_02_a\data\axi_interconnect_v2_1_0.mpd line 137 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_D_AXI value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 216 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_ADDR_TAG_BITS value to 13 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 320 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_DCACHE_ADDR_TAG value to 13 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 350 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_USE_INTERRUPT value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 384 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_USE_EXT_BRK value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 385 - - -IPNAME: microblaze, INSTANCE:microblaze_0 - tcl is overriding PARAMETER C_USE_EXT_NM_BRK value to 1 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\microblaze_v8_10_a\data\microblaze_v2_1_0.mpd line 386 - - -IPNAME: lmb_bram_if_cntlr, INSTANCE:microblaze_0_i_bram_ctrl - tcl is overriding PARAMETER C_MASK value to 0x40000000 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_bram_if_cntlr_v3_00_a\data\lmb_bram_if_cntlr_v2_1_0.mpd line 78 - - -IPNAME: lmb_bram_if_cntlr, INSTANCE:microblaze_0_d_bram_ctrl - tcl is overriding PARAMETER C_MASK value to 0x40000000 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\lmb_bram_if_cntlr_v3_00_a\data\lmb_bram_if_cntlr_v2_1_0.mpd line 78 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_MEMCLK_PERIOD value to 3333 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 110 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_S0_AXI_STRICT_COHERENCY value to 0 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 153 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_S1_AXI_REG_EN0 value to 0x0000F - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 165 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_S2_AXI_REG_EN0 value to 0x0000F - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 179 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_S3_AXI_REG_EN0 value to 0x0000F - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 193 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_S4_AXI_REG_EN0 value to 0x0000F - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 207 - - -IPNAME: axi_s6_ddrx, INSTANCE:MCB_DDR3 - tcl is overriding PARAMETER C_S5_AXI_REG_EN0 value to 0x0000F - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_s6_ddrx_v1_02_a\data\axi_s6_ddrx_v2_1_0.mpd line 221 - - -IPNAME: axi_intc, INSTANCE:microblaze_0_intc - tcl is overriding PARAMETER C_NUM_INTR_INPUTS value to 4 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 71 - - -IPNAME: axi_intc, INSTANCE:microblaze_0_intc - tcl is overriding PARAMETER C_KIND_OF_INTR value to 0b11111111111111111111111111110111 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 72 - - -IPNAME: axi_intc, INSTANCE:microblaze_0_intc - tcl is overriding PARAMETER C_KIND_OF_EDGE value to 0b11111111111111111111111111111111 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 73 - - -IPNAME: axi_intc, INSTANCE:microblaze_0_intc - tcl is overriding PARAMETER C_KIND_OF_LVL value to 0b11111111111111111111111111111111 - C:\devtools\Xilinx\13.1\ISE_DS\EDK\hw\XilinxProcessorIPLib\pcores\axi_intc_v1_01_a\data\axi_intc_v2_1_0.mpd line 74 - - -The following instances are synthesized with XST. The MPD option IMP_NETLIST=TRUE indicates that a NGC file is to be produced using XST synthesis. IMP_NETLIST=FALSE (default) instances are not synthesized. - - -NCF files should not be modified as they will be regenerated. -If any constraint needs to be overridden, this should be done by modifying the data/system.ucf file. - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport deleted file mode 100644 index 0939d8118..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport +++ /dev/null @@ -1,218 +0,0 @@ - - -
- 2011-07-27T13:20:02 - system - 2011-07-27T13:20:02 - C:/E/Dev/FreeRTOS/WorkingCopy/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/system.xreport - filter.filter - C:/E/Dev/FreeRTOS/WorkingCopy/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise - 2011-05-30T21:44:59 - false -
- - - - - - - - - - - - - - - - - - - - - - -
diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst deleted file mode 100644 index 10c9bb7ac..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/ise/xmsgprops.lst +++ /dev/null @@ -1,3 +0,0 @@ -MessageCaptureEnabled: TRUE -MessageFilteringEnabled: FALSE -IncrementalMessagingEnabled: TRUE diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt deleted file mode 100644 index 761753810..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/platgen.opt +++ /dev/null @@ -1,2 +0,0 @@ - -p xc6slx45tfgg484-3 -lang vhdl$(PROJECT_SEARCHPATHOPT) $(GLOBAL_SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt deleted file mode 100644 index 9fbb0051c..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/simgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p spartan6 -lang vhdl$(PROJECT_SEARCHPATHOPT) $(GLOBAL_SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst -s isim diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml deleted file mode 100644 index ee5b328e2..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/system.xml +++ /dev/null @@ -1,5243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interconnect - AXI4 Memory-Mapped Interconnect - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interconnect - AXI4 Memory-Mapped Interconnect - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MicroBlaze - The MicroBlaze 32 bit soft processor - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Local Memory Bus (LMB) 1.0 - 'The LMB is a fast, local bus for connecting MicroBlaze I and D ports to peripherals and BRAM' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Local Memory Bus (LMB) 1.0 - 'The LMB is a fast, local bus for connecting MicroBlaze I and D ports to peripherals and BRAM' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMB BRAM Controller - Local Memory Bus (LMB) Block RAM (BRAM) Interface Controller connects to an lmb bus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMB BRAM Controller - Local Memory Bus (LMB) Block RAM (BRAM) Interface Controller connects to an lmb bus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Block RAM (BRAM) Block - The BRAM Block is a configurable memory module that attaches to a variety of BRAM Interface Controllers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processor System Reset Module - Reset management module - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Clock Generator - Clock generator for processor system. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MicroBlaze Debug Module (MDM) - Debug module for MicroBlaze Soft Processor. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI UART (Lite) - Generic UART (Universal Asynchronous Receiver/Transmitter) for AXI. - - - - - - - - - - - - - - - - - - - - - - - - - Serial Data Out - - - Serial Data In - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI General Purpose IO - General Purpose Input/Output (GPIO) core for the AXI bus. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO1 Data IO - - - GPIO2 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI General Purpose IO - General Purpose Input/Output (GPIO) core for the AXI bus. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO1 Data IO - - - GPIO2 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI S6 Memory Controller(DDR/DDR2/DDR3) - Spartan-6 memory controller - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI 10/100 Ethernet MAC Lite - 'IEEE Std. 802.3 MII interface MAC with AXI interface, lightweight implementation' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Ethernet PHY Management Data - - - Ethernet PHY Management Clock - - - Ethernet Transmit Data Output - - - Ethernet Transmit Enable - - - Ethernet Transmit Clock Input - - - Ethernet Collision Input - - - Ethernet Receive Data Input - - - Ethernet Receive Error Input - - - Ethernet Receive Clock Input - - - Ethernet Carrier Sense Input - - - Ethernet Receive Data Valid - - - Ethernet PHY Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Timer/Counter - Timer counter with AXI interface - - - - - - - - - - - - - - - - - - - - - - - - - - - - Capture Trig 0 - - - Capture Trig 1 - - - Generate Out 0 - - - Generate Out 1 - - - Pulse Width Modulation 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interrupt Controller - intc core attached to the AXI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Interrupt Request Output - - - - - - - - - - Interrupt Inputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt deleted file mode 100644 index 1ba7dad07..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xplorer.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc6slx45tfgg484-3 data/system.ucf 7 0 diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt deleted file mode 100644 index 51c612843..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/__xps/xpsxflow.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc6slx45tfgg484-3 data/system.ucf 0 diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf deleted file mode 100644 index 681ad6274..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/data/system.ucf +++ /dev/null @@ -1,41 +0,0 @@ -# -# pin constraints -# -NET CLK_N LOC = "K22" | DIFF_TERM = "TRUE" | IOSTANDARD = "LVDS_25"; -NET CLK_P LOC = "K21" | DIFF_TERM = "TRUE" | IOSTANDARD = "LVDS_25"; -NET Ethernet_Lite_COL LOC = "M16" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_CRS LOC = "N15" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_MDC LOC = "R19" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_MDIO LOC = "V20" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_PHY_RST_N LOC = "J22" | IOSTANDARD = "LVCMOS25" | TIG; -NET Ethernet_Lite_RXD[0] LOC = "P19" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_RXD[1] LOC = "Y22" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_RXD[2] LOC = "Y21" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_RXD[3] LOC = "W22" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_RX_CLK LOC = "P20" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_RX_DV LOC = "T22" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_RX_ER LOC = "U20" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_TXD[0] LOC = "U10" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_TXD[1] LOC = "T10" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_TXD[2] LOC = "AB8" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_TXD[3] LOC = "AA8" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_TX_CLK LOC = "L20" | IOSTANDARD = "LVCMOS25"; -NET Ethernet_Lite_TX_EN LOC = "T8" | IOSTANDARD = "LVCMOS25"; -NET LEDs_4Bits_TRI_O[0] LOC = "D17" | IOSTANDARD = "LVCMOS25"; -NET LEDs_4Bits_TRI_O[1] LOC = "AB4" | IOSTANDARD = "LVCMOS25"; -NET LEDs_4Bits_TRI_O[2] LOC = "D21" | IOSTANDARD = "LVCMOS25"; -NET LEDs_4Bits_TRI_O[3] LOC = "W15" | IOSTANDARD = "LVCMOS25"; -NET Push_Buttons_4Bits_TRI_I[0] LOC = "F3" | IOSTANDARD = "LVCMOS25"; -NET Push_Buttons_4Bits_TRI_I[1] LOC = "G6" | IOSTANDARD = "LVCMOS25"; -NET Push_Buttons_4Bits_TRI_I[2] LOC = "F5" | IOSTANDARD = "LVCMOS25"; -NET Push_Buttons_4Bits_TRI_I[3] LOC = "C1" | IOSTANDARD = "LVCMOS25"; -NET RESET LOC = "H8" | IOSTANDARD = "LVCMOS15" | TIG; -NET RS232_Uart_1_sin LOC = "H17" | IOSTANDARD = "LVCMOS25"; -NET RS232_Uart_1_sout LOC = "B21" | IOSTANDARD = "LVCMOS25"; -# -# additional constraints -# - -NET "CLK" TNM_NET = sys_clk_pin; -TIMESPEC TS_sys_clk_pin = PERIOD sys_clk_pin 200000 kHz; - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut deleted file mode 100644 index bca21c81b..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/bitgen.ut +++ /dev/null @@ -1,3 +0,0 @@ --g TdoPin:PULLNONE --g StartUpClk:JTAGCLK -#add other options here. diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd deleted file mode 100644 index da4d7717e..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/download.cmd +++ /dev/null @@ -1,6 +0,0 @@ -setMode -bscan -setCable -p auto -identify -assignfile -p 2 -file implementation/download.bit -program -p 2 -quit diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt deleted file mode 100644 index 994a6d2f8..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/fast_runtime.opt +++ /dev/null @@ -1,84 +0,0 @@ -FLOWTYPE = FPGA; -############################################################### -## Filename: fast_runtime.opt -## -## Option File For Xilinx FPGA Implementation Flow for Fast -## Runtime. -## -## Version: 4.1.1 -############################################################### -# -# Options for Translator -# -# Type "ngdbuild -h" for a detailed list of ngdbuild command line options -# -Program ngdbuild --p ; # Partname to use - picked from xflow commandline --nt timestamp; # NGO File generation. Regenerate only when - # source netlist is newer than existing - # NGO file (default) --bm .bmm # Block RAM memory map file -; # User design - pick from xflow command line --uc .ucf; # ucf constraints -.ngd; # Name of NGD file. Filebase same as design filebase -End Program ngdbuild - -# -# Options for Mapper -# -# Type "map -h " for a detailed list of map command line options -# -Program map --o _map.ncd; # Output Mapped ncd file --w; # Overwrite output files. --pr b; # Pack internal FF/latches into IOBs -#-fp .mfp; # Floorplan file --ol high; --timing; --detail; -.ngd; # Input NGD file -.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 _map.twr; # Output trace report file --xml _map.twx; # Output XML version of the timing report -#-tsi _map.tsi; # Produce Timing Specification Interaction report -_map.ncd; # Input mapped ncd -.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 -_map.ncd; # Input mapped NCD file -.ncd; # Output placed and routed NCD -.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 .twr; # Output trace report file --xml .twx; # Output XML version of the timing report -#-tsi .tsi; # Produce Timing Specification Interaction report -.ncd; # Input placed and routed ncd -.pcf; # Physical constraints file -END Program post_par_trce - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters deleted file mode 100644 index 4317c270f..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.filters +++ /dev/null @@ -1,158 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui deleted file mode 100644 index 00a7f65c2..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/etc/system.gui +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb deleted file mode 100644 index 61ea89e9e..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.bsb +++ /dev/null @@ -1 +0,0 @@ -„æÄ®Òôtt¦Êè¬ÊäæÒÞÜ@Dbb\b\`bDv*„æÄ®Òôtt¦Êè„ÞÂäÈ@DðÒØÒÜð\ÆÞÚD@Dæàl`jD@D†Dv.„æÄ®ÒôttªàÈÂèʄÞÂäÈ@D‚¤†’¨Š†¨ª¤ŠD@DæàÂäèÂÜlDv.„æÄ®ÒôttªàÈÂèʄÞÂäÈ@DˆŠ¬’†Š¾¦’´ŠD@DðÆlæØðhjèDv'„æÄ®ÒôttªàÈÂèʄÞÂäÈ@D ‚†–‚ŽŠD@DÌÎÎhphDv'„æÄ®ÒôttªàÈÂèʄÞÂäÈ@D¤¦¨¾ ž˜‚¤’¨²D@DbDv&„æÄ®ÒôttªàÈÂèʄÞÂäÈ@D¦ ŠŠˆŽ¤‚ˆŠD@DZfDv%„æÄ®Òôtt¦Êè¦òæèÊÚ@DÚľÂðÒ¾bêàD@Db\`Dv;„æÄ®ÒôttªàÈÂèʦòæèÊÚ@D†ØÖ¾ŒäÊâD@Dd````````D@DÚÒÆäÞÄØÂôʾ`Dv@„æÄ®Òôtt‚ÈÈ äÞÆÊææÞä@DÚÒÆäÞÄØÂôʾ`D@DÚÒÆäÞÄØÂôÊD@DÚÒÆäÞÄØÂôʾ`DvH„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôʾ`D@DÈÂè¾ÆÂÆÐʾÚÊÚ¾ØÒæèD@Dš†„¾ˆˆ¤fDvA„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôʾ`D@DÈÂè¾ÆÂÆÐʾæÒôÊD@DblfphDvI„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôʾ`D@DÒÜæèä¾ÆÂÆÐʾÚÊÚ¾ØÒæèD@Dš†„¾ˆˆ¤fDvB„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôʾ`D@DÒÜæèä¾ÆÂÆÐʾæÒôÊD@DblfphDvH„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôʾ`D@DÚľÆØÞÆÖ¾ÌäÊâêÊÜÆòD@Db````````Dv>„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôʾ`D@DÚľÌàê¾ÊÜÂÄØÊD@D¨¤ªŠDvE„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÚÒÆäÞÄØÂôʾ`D@DÚľØÞÆÂؾÚÊÚÞäò¾æÒôÊD@DpbrdDvH„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@DŠèÐÊäÜÊ辘ÒèÊD@DÂðÒ¾ÊèÐÊäÜÊèØÒèÊD@DÚÒÆäÞÄØÂôʾ`DvB„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DŠèÐÊäÜÊ辘ÒèÊD@DêæʾÒÜèÊääêàè¾ÒÈD@D¨¤ªŠDv=„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D˜Šˆæ¾h„ÒèæD@DÂðÒ¾ÎàÒÞD@DÚÒÆäÞÄØÂôʾ`Dv@„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D˜Šˆæ¾h„ÒèæD@DêæʾÒÜèÊääêàè¾ÒÈD@DŒ‚˜¦ŠDv>„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@Dš†„¾ˆˆ¤fD@DÂðÒ¾æl¾ÈÈäðD@DÚÒÆäÞÄØÂôʾ`DvE„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D êæо„êèèÞÜæ¾h„ÒèæD@DÂðÒ¾ÎàÒÞD@DÚÒÆäÞÄØÂôʾ`DvG„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D êæо„êèèÞÜæ¾h„ÒèæD@DêæʾÒÜèÊääêàè¾ÒÈD@D¨¤ªŠDvC„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@D¤¦dfd¾ªÂäè¾bD@DÂðÒ¾êÂäèØÒèÊD@DÚÒÆäÞÄØÂôʾ`DvC„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäè¾bD@DêÂäè¾`¾ÄÂêȾäÂèÊD@Dbbjd``Dv>„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäè¾bD@DêÂäè¾`¾ÈÂèÂîÒÈèÐD@DpDv>„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäè¾bD@DêÂäè¾`¾àÂäÒèòD@DÜÞÜÊDvA„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@D¤¦dfd¾ªÂäè¾bD@DêæʾÒÜèÊääêàè¾ÒÈD@D¨¤ªŠDv?„æÄ®Òôtt‚ÈÈ ÊäÒàÐÊäÂØ@DÂðÒ¾èÒÚÊä¾`D@DÂðÒ¾èÒÚÊäD@DÚÒÆäÞÄØÂôʾ`Dv@„æÄ®ÒôttªàÈÂèʆÞÚàÞÜÊÜè@DÂðÒ¾èÒÚÊä¾`D@DêæʾÒÜèÊääêàè¾ÒÈD@D¨¤ªŠDv \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make deleted file mode 100644 index ca8e6d0f4..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.make +++ /dev/null @@ -1,216 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -# Name of the Microprocessor system -# The hardware specification of the system is in file : -# C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.mhs - -include system_incl.make - -################################################################# -# PHONY TARGETS -################################################################# -.PHONY: dummy -.PHONY: netlistclean -.PHONY: bitsclean -.PHONY: simclean -.PHONY: exporttosdk - -################################################################# -# EXTERNAL TARGETS -################################################################# -all: - @echo "Makefile to build a Microprocessor system :" - @echo "Run make with any of the following targets" - @echo " " - @echo " netlist : Generates the netlist for the given MHS " - @echo " bits : Runs Implementation tools to generate the bitstream" - @echo " exporttosdk: Export files to SDK" - @echo " " - @echo " init_bram: Initializes bitstream with BRAM data" - @echo " ace : Generate ace file from bitstream and elf" - @echo " download : Downloads the bitstream onto the board" - @echo " " - @echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode" - @echo " simmodel : Generates HDL simulation models for chosen simulation mode" - @echo " " - @echo " netlistclean: Deletes netlist" - @echo " bitsclean: Deletes bit, ncd, bmm files" - @echo " hwclean : Deletes implementation dir" - @echo " simclean : Deletes simulation dir" - @echo " clean : Deletes all generated files/directories" - @echo " " - -bits: $(SYSTEM_BIT) - -ace: $(SYSTEM_ACE) - -exporttosdk: $(SYSTEM_HW_HANDOFF_DEP) - -netlist: $(POSTSYN_NETLIST) - -download: $(DOWNLOAD_BIT) dummy - @echo "*********************************************" - @echo "Downloading Bitstream onto the target board" - @echo "*********************************************" - impact -batch etc/download.cmd - -init_bram: $(DOWNLOAD_BIT) - -sim: $(DEFAULT_SIM_SCRIPT) - cd simulation/behavioral & \ - system_fuse.cmd - cd simulation/behavioral & \ - start /B $(SIM_CMD) -gui -tclbatch system_setup.tcl - -simmodel: $(DEFAULT_SIM_SCRIPT) - -behavioral_model: $(BEHAVIORAL_SIM_SCRIPT) - -structural_model: $(STRUCTURAL_SIM_SCRIPT) - -clean: hwclean simclean - rm -f _impact.cmd - -hwclean: netlistclean bitsclean - rm -rf implementation synthesis xst hdl - rm -rf xst.srp $(SYSTEM).srp - rm -f __xps/ise/_xmsgs/bitinit.xmsgs - -netlistclean: - rm -f $(POSTSYN_NETLIST) - rm -f platgen.log - rm -f __xps/ise/_xmsgs/platgen.xmsgs - rm -f $(BMM_FILE) - -bitsclean: - rm -f $(SYSTEM_BIT) - rm -f implementation/$(SYSTEM).ncd - rm -f implementation/$(SYSTEM)_bd.bmm - rm -f implementation/$(SYSTEM)_map.ncd - rm -f implementation/download.bit - rm -f __xps/$(SYSTEM)_routed - -simclean: - rm -rf simulation/behavioral - rm -f simgen.log - rm -f __xps/ise/_xmsgs/simgen.xmsgs - -################################################################# -# BOOTLOOP ELF FILES -################################################################# - - -$(MICROBLAZE_0_BOOTLOOP): $(MICROBLAZE_BOOTLOOP_LE) - IF NOT EXIST "$(BOOTLOOP_DIR)" @mkdir "$(BOOTLOOP_DIR)" - cp -f $(MICROBLAZE_BOOTLOOP_LE) $(MICROBLAZE_0_BOOTLOOP) - -################################################################# -# HARDWARE IMPLEMENTATION FLOW -################################################################# - - -$(BMM_FILE) \ -$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \ - $(CORE_STATE_DEVELOPMENT_FILES) - @echo "****************************************************" - @echo "Creating system netlist for hardware specification.." - @echo "****************************************************" - platgen $(PLATGEN_OPTIONS) $(MHSFILE) - -$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES) - @echo "Running synthesis..." - cd synthesis & synthesis.cmd - -__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY) - @echo "*********************************************" - @echo "Running Xilinx Implementation tools.." - @echo "*********************************************" - @cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf - @cp -f etc/fast_runtime.opt implementation/xflow.opt - xflow -wd implementation -p $(DEVICE) -implement xflow.opt $(SYSTEM).ngc - touch __xps/$(SYSTEM)_routed - -$(SYSTEM_BIT): __xps/$(SYSTEM)_routed $(BITGEN_UT_FILE) - xilperl $(XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par - @echo "*********************************************" - @echo "Running Bitgen.." - @echo "*********************************************" - @cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut - cd implementation & bitgen -w -f bitgen.ut $(SYSTEM) & cd .. - -$(DOWNLOAD_BIT): $(SYSTEM_BIT) $(BRAMINIT_ELF_IMP_FILES) __xps/bitinit.opt - @cp -f implementation/$(SYSTEM)_bd.bmm . - @echo "*********************************************" - @echo "Initializing BRAM contents of the bitstream" - @echo "*********************************************" - bitinit -p $(DEVICE) $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_IMP_FILE_ARGS) \ - -bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT) - @rm -f $(SYSTEM)_bd.bmm - -$(SYSTEM_ACE): - @echo "In order to generate ace file, you must have:-" - @echo "- exactly one processor." - @echo "- opb_mdm, if using microblaze." - -################################################################# -# EXPORT_TO_SDK FLOW -################################################################# - -$(SYSTEM_HW_HANDOFF): $(MHSFILE) __xps/platgen.opt - IF NOT EXIST "$(SDK_EXPORT_DIR)" @mkdir "$(SDK_EXPORT_DIR)" - psf2Edward -inp $(SYSTEM).xmp -exit_on_error -edwver 1.2 -xml $(SDK_EXPORT_DIR)/$(SYSTEM).xml $(GLOBAL_SEARCHPATHOPT) - xdsgen -inp $(SYSTEM).xmp -report $(SDK_EXPORT_DIR)/$(SYSTEM).html $(GLOBAL_SEARCHPATHOPT) -make_docs_local - -$(SYSTEM_HW_HANDOFF_BIT): $(SYSTEM_BIT) - @rm -rf $(SYSTEM_HW_HANDOFF_BIT) - @cp -f $(SYSTEM_BIT) $(SDK_EXPORT_DIR) - -$(SYSTEM_HW_HANDOFF_BMM): implementation/$(SYSTEM)_bd.bmm - @rm -rf $(SYSTEM_HW_HANDOFF_BMM) - @cp -f implementation/$(SYSTEM)_bd.bmm $(SDK_EXPORT_DIR) - -################################################################# -# SIMULATION FLOW -################################################################# - - -################## BEHAVIORAL SIMULATION ################## - -$(BEHAVIORAL_SIM_SCRIPT): $(MHSFILE) __xps/simgen.opt \ - $(BRAMINIT_ELF_SIM_FILES) - @echo "*********************************************" - @echo "Creating behavioral simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -m behavioral $(MHSFILE) - -################## STRUCTURAL SIMULATION ################## - -$(STRUCTURAL_SIM_SCRIPT): $(WRAPPER_NGC_FILES) __xps/simgen.opt \ - $(BRAMINIT_ELF_SIM_FILES) - @echo "*********************************************" - @echo "Creating structural simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -sd implementation -m structural $(MHSFILE) - - -################## TIMING SIMULATION ################## - -implementation/$(SYSTEM).ncd: __xps/$(SYSTEM)_routed - -$(TIMING_SIM_SCRIPT): implementation/$(SYSTEM).ncd __xps/simgen.opt \ - $(BRAMINIT_ELF_SIM_FILES) - @echo "*********************************************" - @echo "Creating timing simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE) - -dummy: - @echo "" - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs deleted file mode 100644 index a0cc03c05..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.mhs +++ /dev/null @@ -1,387 +0,0 @@ - -# ############################################################################## -# Created by Base System Builder Wizard for Xilinx EDK 13.1 Build EDK_O.40d -# Mon May 30 21:43:34 2011 -# Target Board: xilinx.com sp605 Rev C -# Family: spartan6 -# Device: xc6slx45t -# Package: fgg484 -# Speed Grade: -3 -# ############################################################################## - PARAMETER VERSION = 2.1.0 - - - PORT RESET = RESET, DIR = I, SIGIS = RST, RST_POLARITY = 1 - PORT CLK_P = CLK, DIR = I, DIFFERENTIAL_POLARITY = P, SIGIS = CLK, CLK_FREQ = 200000000 - PORT CLK_N = CLK, DIR = I, DIFFERENTIAL_POLARITY = N, SIGIS = CLK, CLK_FREQ = 200000000 - PORT RS232_Uart_1_sout = RS232_Uart_1_sout, DIR = O - PORT RS232_Uart_1_sin = RS232_Uart_1_sin, DIR = I - PORT LEDs_4Bits_TRI_O = LEDs_4Bits_TRI_O, DIR = O, VEC = [0:3] - PORT Push_Buttons_4Bits_TRI_I = Push_Buttons_4Bits_TRI_I, DIR = I, VEC = [3:0] - PORT mcbx_dram_clk = mcbx_dram_clk, DIR = O - PORT mcbx_dram_clk_n = mcbx_dram_clk_n, DIR = O - PORT mcbx_dram_cke = mcbx_dram_cke, DIR = O - PORT mcbx_dram_odt = mcbx_dram_odt, DIR = O - PORT mcbx_dram_ras_n = mcbx_dram_ras_n, DIR = O - PORT mcbx_dram_cas_n = mcbx_dram_cas_n, DIR = O - PORT mcbx_dram_we_n = mcbx_dram_we_n, DIR = O - PORT mcbx_dram_udm = mcbx_dram_udm, DIR = O - PORT mcbx_dram_ldm = mcbx_dram_ldm, DIR = O - PORT mcbx_dram_ba = mcbx_dram_ba, DIR = O, VEC = [2:0] - PORT mcbx_dram_addr = mcbx_dram_addr, DIR = O, VEC = [12:0] - PORT mcbx_dram_ddr3_rst = mcbx_dram_ddr3_rst, DIR = O - PORT mcbx_dram_dq = mcbx_dram_dq, DIR = IO, VEC = [15:0] - PORT mcbx_dram_dqs = mcbx_dram_dqs, DIR = IO - PORT mcbx_dram_dqs_n = mcbx_dram_dqs_n, DIR = IO - PORT mcbx_dram_udqs = mcbx_dram_udqs, DIR = IO - PORT mcbx_dram_udqs_n = mcbx_dram_udqs_n, DIR = IO - PORT rzq = rzq, DIR = IO - PORT zio = zio, DIR = IO - PORT Ethernet_Lite_MDIO = Ethernet_Lite_MDIO, DIR = IO - PORT Ethernet_Lite_MDC = Ethernet_Lite_MDC, DIR = O - PORT Ethernet_Lite_TXD = Ethernet_Lite_TXD, DIR = O, VEC = [3:0] - PORT Ethernet_Lite_TX_EN = Ethernet_Lite_TX_EN, DIR = O - PORT Ethernet_Lite_TX_CLK = Ethernet_Lite_TX_CLK, DIR = I - PORT Ethernet_Lite_COL = Ethernet_Lite_COL, DIR = I - PORT Ethernet_Lite_RXD = Ethernet_Lite_RXD, DIR = I, VEC = [3:0] - PORT Ethernet_Lite_RX_ER = Ethernet_Lite_RX_ER, DIR = I - PORT Ethernet_Lite_RX_CLK = Ethernet_Lite_RX_CLK, DIR = I - PORT Ethernet_Lite_CRS = Ethernet_Lite_CRS, DIR = I - PORT Ethernet_Lite_RX_DV = Ethernet_Lite_RX_DV, DIR = I - PORT Ethernet_Lite_PHY_RST_N = Ethernet_Lite_PHY_RST_N, DIR = O - - -BEGIN axi_interconnect - PARAMETER INSTANCE = axi4_0 - PARAMETER HW_VER = 1.02.a - PORT interconnect_aclk = clk_100_0000MHzPLL0 - PORT INTERCONNECT_ARESETN = proc_sys_reset_0_Interconnect_aresetn -END - -BEGIN axi_interconnect - PARAMETER INSTANCE = axi4lite_0 - PARAMETER HW_VER = 1.02.a - PARAMETER C_INTERCONNECT_CONNECTIVITY_MODE = 0 - PORT INTERCONNECT_ARESETN = proc_sys_reset_0_Interconnect_aresetn - PORT INTERCONNECT_ACLK = clk_50_0000MHzPLL0 -END - -BEGIN microblaze - PARAMETER INSTANCE = microblaze_0 - PARAMETER HW_VER = 8.10.a - PARAMETER C_INTERCONNECT = 2 - PARAMETER C_USE_BARREL = 1 - PARAMETER C_USE_FPU = 1 - PARAMETER C_DEBUG_ENABLED = 1 - PARAMETER C_ICACHE_BASEADDR = 0xc0000000 - PARAMETER C_ICACHE_HIGHADDR = 0xc7ffffff - PARAMETER C_USE_ICACHE = 1 - PARAMETER C_ICACHE_ALWAYS_USED = 1 - PARAMETER C_DCACHE_BASEADDR = 0xc0000000 - PARAMETER C_DCACHE_HIGHADDR = 0xc7ffffff - PARAMETER C_USE_DCACHE = 1 - PARAMETER C_DCACHE_ALWAYS_USED = 1 - PARAMETER C_INTERCONNECT_M_AXI_DC_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DC_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DP_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DP_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DP_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DP_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DP_B_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DC_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DC_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_DC_B_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_IC_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_IC_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_IC_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_IC_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_M_AXI_IC_B_REGISTER = 1 - PARAMETER C_NUMBER_OF_PC_BRK = 7 - PARAMETER C_NUMBER_OF_WR_ADDR_BRK = 2 - PARAMETER C_NUMBER_OF_RD_ADDR_BRK = 2 - PARAMETER C_CACHE_BYTE_SIZE = 16384 - PARAMETER C_DCACHE_BYTE_SIZE = 16384 - PARAMETER C_FPU_EXCEPTION = 1 - PARAMETER C_DIV_ZERO_EXCEPTION = 1 - PARAMETER C_M_AXI_I_BUS_EXCEPTION = 1 - PARAMETER C_M_AXI_D_BUS_EXCEPTION = 1 - PARAMETER C_ILL_OPCODE_EXCEPTION = 1 - PARAMETER C_OPCODE_0x0_ILLEGAL = 1 - PARAMETER C_UNALIGNED_EXCEPTIONS = 1 - PARAMETER C_USE_DIV = 1 - BUS_INTERFACE M_AXI_DP = axi4lite_0 - BUS_INTERFACE M_AXI_DC = axi4_0 - BUS_INTERFACE M_AXI_IC = axi4_0 - BUS_INTERFACE DEBUG = microblaze_0_debug - BUS_INTERFACE DLMB = microblaze_0_dlmb - BUS_INTERFACE ILMB = microblaze_0_ilmb - PORT MB_RESET = proc_sys_reset_0_MB_Reset - PORT CLK = clk_100_0000MHzPLL0 - PORT INTERRUPT = microblaze_0_interrupt -END - -BEGIN lmb_v10 - PARAMETER INSTANCE = microblaze_0_ilmb - PARAMETER HW_VER = 2.00.a - PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET - PORT LMB_CLK = clk_100_0000MHzPLL0 -END - -BEGIN lmb_v10 - PARAMETER INSTANCE = microblaze_0_dlmb - PARAMETER HW_VER = 2.00.a - PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET - PORT LMB_CLK = clk_100_0000MHzPLL0 -END - -BEGIN lmb_bram_if_cntlr - PARAMETER INSTANCE = microblaze_0_i_bram_ctrl - PARAMETER HW_VER = 3.00.a - PARAMETER C_BASEADDR = 0x00000000 - PARAMETER C_HIGHADDR = 0x00001fff - BUS_INTERFACE SLMB = microblaze_0_ilmb - BUS_INTERFACE BRAM_PORT = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block -END - -BEGIN lmb_bram_if_cntlr - PARAMETER INSTANCE = microblaze_0_d_bram_ctrl - PARAMETER HW_VER = 3.00.a - PARAMETER C_BASEADDR = 0x00000000 - PARAMETER C_HIGHADDR = 0x00001fff - BUS_INTERFACE SLMB = microblaze_0_dlmb - BUS_INTERFACE BRAM_PORT = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block -END - -BEGIN bram_block - PARAMETER INSTANCE = microblaze_0_bram_block - PARAMETER HW_VER = 1.00.a - BUS_INTERFACE PORTA = microblaze_0_i_bram_ctrl_2_microblaze_0_bram_block - BUS_INTERFACE PORTB = microblaze_0_d_bram_ctrl_2_microblaze_0_bram_block -END - -BEGIN proc_sys_reset - PARAMETER INSTANCE = proc_sys_reset_0 - PARAMETER HW_VER = 3.00.a - PARAMETER C_EXT_RESET_HIGH = 1 - PORT Ext_Reset_In = RESET - PORT MB_Reset = proc_sys_reset_0_MB_Reset - PORT Slowest_sync_clk = clk_50_0000MHzPLL0 - PORT Interconnect_aresetn = proc_sys_reset_0_Interconnect_aresetn - PORT Dcm_locked = proc_sys_reset_0_Dcm_locked - PORT MB_Debug_Sys_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst - PORT BUS_STRUCT_RESET = proc_sys_reset_0_BUS_STRUCT_RESET -END - -BEGIN clock_generator - PARAMETER INSTANCE = clock_generator_0 - PARAMETER HW_VER = 4.01.a - PARAMETER C_CLKIN_FREQ = 200000000 - PARAMETER C_CLKOUT0_FREQ = 600000000 - PARAMETER C_CLKOUT0_GROUP = PLL0 - PARAMETER C_CLKOUT0_BUF = FALSE - PARAMETER C_CLKOUT1_FREQ = 600000000 - PARAMETER C_CLKOUT1_PHASE = 180 - PARAMETER C_CLKOUT1_GROUP = PLL0 - PARAMETER C_CLKOUT1_BUF = FALSE - PARAMETER C_CLKOUT2_FREQ = 100000000 - PARAMETER C_CLKOUT2_GROUP = PLL0 - PARAMETER C_CLKOUT3_FREQ = 50000000 - PARAMETER C_CLKOUT3_GROUP = PLL0 - PORT RST = RESET - PORT CLKIN = CLK - PORT CLKOUT2 = clk_100_0000MHzPLL0 - PORT CLKOUT3 = clk_50_0000MHzPLL0 - PORT CLKOUT0 = clk_600_0000MHzPLL0_nobuf - PORT CLKOUT1 = clk_600_0000MHz180PLL0_nobuf - PORT LOCKED = proc_sys_reset_0_Dcm_locked -END - -BEGIN mdm - PARAMETER INSTANCE = debug_module - PARAMETER HW_VER = 2.00.b - PARAMETER C_INTERCONNECT = 2 - PARAMETER C_USE_UART = 1 - PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1 - PARAMETER C_BASEADDR = 0x74800000 - PARAMETER C_HIGHADDR = 0x7480ffff - BUS_INTERFACE S_AXI = axi4lite_0 - BUS_INTERFACE MBDEBUG_0 = microblaze_0_debug - PORT S_AXI_ACLK = clk_50_0000MHzPLL0 - PORT Debug_SYS_Rst = proc_sys_reset_0_MB_Debug_Sys_Rst -END - -BEGIN axi_uartlite - PARAMETER INSTANCE = RS232_Uart_1 - PARAMETER HW_VER = 1.01.a - PARAMETER C_BAUDRATE = 115200 - PARAMETER C_DATA_BITS = 8 - PARAMETER C_USE_PARITY = 0 - PARAMETER C_ODD_PARITY = 1 - PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1 - PARAMETER C_BASEADDR = 0x40600000 - PARAMETER C_HIGHADDR = 0x4060ffff - BUS_INTERFACE S_AXI = axi4lite_0 - PORT TX = RS232_Uart_1_sout - PORT RX = RS232_Uart_1_sin - PORT S_AXI_ACLK = clk_50_0000MHzPLL0 - PORT Interrupt = RS232_Uart_1_Interrupt -END - -BEGIN axi_gpio - PARAMETER INSTANCE = LEDs_4Bits - PARAMETER HW_VER = 1.01.a - PARAMETER C_GPIO_WIDTH = 4 - PARAMETER C_ALL_INPUTS = 0 - PARAMETER C_INTERRUPT_PRESENT = 0 - PARAMETER C_IS_DUAL = 0 - PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1 - PARAMETER C_BASEADDR = 0x40020000 - PARAMETER C_HIGHADDR = 0x4002ffff - BUS_INTERFACE S_AXI = axi4lite_0 - PORT GPIO_IO_O = LEDs_4Bits_TRI_O - PORT S_AXI_ACLK = clk_50_0000MHzPLL0 -END - -BEGIN axi_gpio - PARAMETER INSTANCE = Push_Buttons_4Bits - PARAMETER HW_VER = 1.01.a - PARAMETER C_GPIO_WIDTH = 4 - PARAMETER C_ALL_INPUTS = 1 - PARAMETER C_INTERRUPT_PRESENT = 1 - PARAMETER C_IS_DUAL = 0 - PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1 - PARAMETER C_BASEADDR = 0x40000000 - PARAMETER C_HIGHADDR = 0x4000ffff - BUS_INTERFACE S_AXI = axi4lite_0 - PORT GPIO_IO_I = Push_Buttons_4Bits_TRI_I - PORT S_AXI_ACLK = clk_50_0000MHzPLL0 - PORT IP2INTC_Irpt = Push_Buttons_4Bits_IP2INTC_Irpt -END - -BEGIN axi_s6_ddrx - PARAMETER INSTANCE = MCB_DDR3 - PARAMETER HW_VER = 1.02.a - PARAMETER C_MCB_RZQ_LOC = K7 - PARAMETER C_MCB_ZIO_LOC = R7 - PARAMETER C_MEM_TYPE = DDR3 - PARAMETER C_MEM_PARTNO = MT41J64M16XX-187E - PARAMETER C_MEM_BANKADDR_WIDTH = 3 - PARAMETER C_MEM_NUM_COL_BITS = 10 - PARAMETER C_SKIP_IN_TERM_CAL = 0 - PARAMETER C_S0_AXI_ENABLE = 1 - PARAMETER C_INTERCONNECT_S0_AXI_MASTERS = microblaze_0.M_AXI_DC & microblaze_0.M_AXI_IC - PARAMETER C_INTERCONNECT_S0_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S0_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S0_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S0_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S0_AXI_B_REGISTER = 1 - PARAMETER C_S0_AXI_BASEADDR = 0xc0000000 - PARAMETER C_S0_AXI_HIGHADDR = 0xc7ffffff - BUS_INTERFACE S0_AXI = axi4_0 - PORT mcbx_dram_clk = mcbx_dram_clk - PORT mcbx_dram_clk_n = mcbx_dram_clk_n - PORT mcbx_dram_cke = mcbx_dram_cke - PORT mcbx_dram_odt = mcbx_dram_odt - PORT mcbx_dram_ras_n = mcbx_dram_ras_n - PORT mcbx_dram_cas_n = mcbx_dram_cas_n - PORT mcbx_dram_we_n = mcbx_dram_we_n - PORT mcbx_dram_udm = mcbx_dram_udm - PORT mcbx_dram_ldm = mcbx_dram_ldm - PORT mcbx_dram_ba = mcbx_dram_ba - PORT mcbx_dram_addr = mcbx_dram_addr - PORT mcbx_dram_ddr3_rst = mcbx_dram_ddr3_rst - PORT mcbx_dram_dq = mcbx_dram_dq - PORT mcbx_dram_dqs = mcbx_dram_dqs - PORT mcbx_dram_dqs_n = mcbx_dram_dqs_n - PORT mcbx_dram_udqs = mcbx_dram_udqs - PORT mcbx_dram_udqs_n = mcbx_dram_udqs_n - PORT rzq = rzq - PORT zio = zio - PORT s0_axi_aclk = clk_100_0000MHzPLL0 - PORT ui_clk = clk_100_0000MHzPLL0 - PORT sysclk_2x = clk_600_0000MHzPLL0_nobuf - PORT sysclk_2x_180 = clk_600_0000MHz180PLL0_nobuf - PORT SYS_RST = proc_sys_reset_0_BUS_STRUCT_RESET - PORT PLL_LOCK = proc_sys_reset_0_Dcm_locked -END - -BEGIN axi_ethernetlite - PARAMETER INSTANCE = Ethernet_Lite - PARAMETER HW_VER = 1.00.a - PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1 - PARAMETER C_BASEADDR = 0x40e00000 - PARAMETER C_HIGHADDR = 0x40e0ffff - PARAMETER C_S_AXI_PROTOCOL = AXI4LITE - PARAMETER C_RX_PING_PONG = 1 - PARAMETER C_TX_PING_PONG = 1 - PARAMETER C_S_AXI_ID_WIDTH = 1 - BUS_INTERFACE S_AXI = axi4lite_0 - PORT PHY_MDIO = Ethernet_Lite_MDIO - PORT PHY_MDC = Ethernet_Lite_MDC - PORT PHY_tx_data = Ethernet_Lite_TXD - PORT PHY_tx_en = Ethernet_Lite_TX_EN - PORT PHY_tx_clk = Ethernet_Lite_TX_CLK - PORT PHY_col = Ethernet_Lite_COL - PORT PHY_rx_data = Ethernet_Lite_RXD - PORT PHY_rx_er = Ethernet_Lite_RX_ER - PORT PHY_rx_clk = Ethernet_Lite_RX_CLK - PORT PHY_crs = Ethernet_Lite_CRS - PORT PHY_dv = Ethernet_Lite_RX_DV - PORT PHY_rst_n = Ethernet_Lite_PHY_RST_N - PORT S_AXI_ACLK = clk_50_0000MHzPLL0 - PORT IP2INTC_Irpt = Ethernet_Lite_IP2INTC_Irpt -END - -BEGIN axi_timer - PARAMETER INSTANCE = axi_timer_0 - PARAMETER HW_VER = 1.01.a - PARAMETER C_COUNT_WIDTH = 32 - PARAMETER C_ONE_TIMER_ONLY = 0 - PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1 - PARAMETER C_BASEADDR = 0x41c00000 - PARAMETER C_HIGHADDR = 0x41c0ffff - BUS_INTERFACE S_AXI = axi4lite_0 - PORT S_AXI_ACLK = clk_50_0000MHzPLL0 - PORT Interrupt = axi_timer_0_Interrupt -END - -BEGIN axi_intc - PARAMETER INSTANCE = microblaze_0_intc - PARAMETER HW_VER = 1.01.a - PARAMETER C_INTERCONNECT_S_AXI_AW_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_AR_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_W_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_R_REGISTER = 1 - PARAMETER C_INTERCONNECT_S_AXI_B_REGISTER = 1 - PARAMETER C_BASEADDR = 0x41200000 - PARAMETER C_HIGHADDR = 0x4120ffff - BUS_INTERFACE S_AXI = axi4lite_0 - PORT IRQ = microblaze_0_interrupt - PORT S_AXI_ACLK = clk_50_0000MHzPLL0 - PORT INTR = Push_Buttons_4Bits_IP2INTC_Irpt & Ethernet_Lite_IP2INTC_Irpt & axi_timer_0_Interrupt & RS232_Uart_1_Interrupt -END - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp deleted file mode 100644 index 3862cd3d6..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system.xmp +++ /dev/null @@ -1,38 +0,0 @@ -#Please do not modify this file by hand -XmpVersion: 13.1 -VerMgmt: 13.1 -IntStyle: default -MHS File: system.mhs -Architecture: spartan6 -Device: xc6slx45t -Package: fgg484 -SpeedGrade: -3 -UserCmd1: -UserCmd1Type: 0 -UserCmd2: -UserCmd2Type: 0 -GenSimTB: 0 -SdkExportBmmBit: 1 -SdkExportDir: SDK/SDK_Export -InsertNoPads: 0 -WarnForEAArch: 1 -HdlLang: VHDL -SimModel: BEHAVIORAL -UcfFile: data/system.ucf -EnableParTimingError: 1 -ShowLicenseDialog: 1 -ICacheAddr: MCB_DDR3,C_S0_AXI_BASEADDR -ICacheAddr: MCB_DDR3,C_S1_AXI_BASEADDR -ICacheAddr: MCB_DDR3,C_S2_AXI_BASEADDR -ICacheAddr: MCB_DDR3,C_S3_AXI_BASEADDR -ICacheAddr: MCB_DDR3,C_S4_AXI_BASEADDR -ICacheAddr: MCB_DDR3,C_S5_AXI_BASEADDR -DCacheAddr: MCB_DDR3,C_S0_AXI_BASEADDR -DCacheAddr: MCB_DDR3,C_S1_AXI_BASEADDR -DCacheAddr: MCB_DDR3,C_S2_AXI_BASEADDR -DCacheAddr: MCB_DDR3,C_S3_AXI_BASEADDR -DCacheAddr: MCB_DDR3,C_S4_AXI_BASEADDR -DCacheAddr: MCB_DDR3,C_S5_AXI_BASEADDR -Processor: microblaze_0 -ElfImp: -ElfSim: diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make deleted file mode 100644 index 0bd70abe4..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/PlatformStudioProject/system_incl.make +++ /dev/null @@ -1,110 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy\Demo\MicroBlaze_Spartan-6_EthernetLite\PlatformStudioProject\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -SHELL = CMD - -XILINX_EDK_DIR = C:/devtools/Xilinx/13.1/ISE_DS/EDK - -SYSTEM = system - -MHSFILE = system.mhs - -FPGA_ARCH = spartan6 - -DEVICE = xc6slx45tfgg484-3 - -LANGUAGE = vhdl -GLOBAL_SEARCHPATHOPT = -PROJECT_SEARCHPATHOPT = - -SEARCHPATHOPT = $(PROJECT_SEARCHPATHOPT) $(GLOBAL_SEARCHPATHOPT) - -SUBMODULE_OPT = - -PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) -msg __xps/ise/xmsgprops.lst - -OBSERVE_PAR_OPTIONS = -error yes - -MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf -MICROBLAZE_BOOTLOOP_LE = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop_le.elf -PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf -PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf -BOOTLOOP_DIR = bootloops - -MICROBLAZE_0_BOOTLOOP = $(BOOTLOOP_DIR)/microblaze_0.elf - -BRAMINIT_ELF_IMP_FILES = $(MICROBLAZE_0_BOOTLOOP) -BRAMINIT_ELF_IMP_FILE_ARGS = -pe microblaze_0 $(MICROBLAZE_0_BOOTLOOP) - -BRAMINIT_ELF_SIM_FILES = $(MICROBLAZE_0_BOOTLOOP) -BRAMINIT_ELF_SIM_FILE_ARGS = -pe microblaze_0 $(MICROBLAZE_0_BOOTLOOP) - -SIM_CMD = isim_system - -BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.tcl - -STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.tcl - -TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.tcl - -DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT) - -MIX_LANG_SIM_OPT = -mixed yes - -SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_SIM_FILE_ARGS) $(MIX_LANG_SIM_OPT) -msg __xps/ise/xmsgprops.lst -s isim - - -CORE_STATE_DEVELOPMENT_FILES = - -WRAPPER_NGC_FILES = implementation/axi4_0_wrapper.ngc \ -implementation/axi4lite_0_wrapper.ngc \ -implementation/microblaze_0_wrapper.ngc \ -implementation/microblaze_0_ilmb_wrapper.ngc \ -implementation/microblaze_0_dlmb_wrapper.ngc \ -implementation/microblaze_0_i_bram_ctrl_wrapper.ngc \ -implementation/microblaze_0_d_bram_ctrl_wrapper.ngc \ -implementation/microblaze_0_bram_block_wrapper.ngc \ -implementation/proc_sys_reset_0_wrapper.ngc \ -implementation/clock_generator_0_wrapper.ngc \ -implementation/debug_module_wrapper.ngc \ -implementation/rs232_uart_1_wrapper.ngc \ -implementation/leds_4bits_wrapper.ngc \ -implementation/push_buttons_4bits_wrapper.ngc \ -implementation/mcb_ddr3_wrapper.ngc \ -implementation/ethernet_lite_wrapper.ngc \ -implementation/axi_timer_0_wrapper.ngc \ -implementation/microblaze_0_intc_wrapper.ngc - -POSTSYN_NETLIST = implementation/$(SYSTEM).ngc - -SYSTEM_BIT = implementation/$(SYSTEM).bit - -DOWNLOAD_BIT = implementation/download.bit - -SYSTEM_ACE = implementation/$(SYSTEM).ace - -UCF_FILE = data/system.ucf - -BMM_FILE = implementation/$(SYSTEM).bmm - -BITGEN_UT_FILE = etc/bitgen.ut - -XFLOW_OPT_FILE = etc/fast_runtime.opt -XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE) - -XPLORER_DEPENDENCY = __xps/xplorer.opt -XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7 - -FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(XFLOW_DEPENDENCY) - -SDK_EXPORT_DIR = SDK\SDK_Export\hw -SYSTEM_HW_HANDOFF = $(SDK_EXPORT_DIR)/$(SYSTEM).xml -SYSTEM_HW_HANDOFF_BIT = $(SDK_EXPORT_DIR)/$(SYSTEM).bit -SYSTEM_HW_HANDOFF_BMM = $(SDK_EXPORT_DIR)/$(SYSTEM)_bd.bmm -SYSTEM_HW_HANDOFF_DEP = $(SYSTEM_HW_HANDOFF) $(SYSTEM_HW_HANDOFF_BIT) $(SYSTEM_HW_HANDOFF_BMM) diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/ReadMe.txt b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/ReadMe.txt new file mode 100644 index 000000000..305bd35db --- /dev/null +++ b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/ReadMe.txt @@ -0,0 +1,6 @@ +The project from this directory has been superseded by the project documented +on the following page: http://www.freertos.org/RTOS-Xilinx-Microblaze-KC705.html + +If you need the demo that used to be in this directory then download FreeRTOS V8.2.1 +from http://sourceforge.net/projects/freertos/files/FreeRTOS/ + diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project deleted file mode 100644 index 0060b40d2..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/.project +++ /dev/null @@ -1,12 +0,0 @@ - - - HardwareWithEthernetLite - - - - - - - com.xilinx.sdk.hw.HwProject - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/download.bit deleted file mode 100644 index 105bbd2a90d184203b3e86df0577069a625c1009..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484497 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
    R23Kia+$} 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 zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKwxVG{?XQIq9O=D00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P-mAK)?oKH8JDVV~>$c-@DKBe(#-qvog7Lh*u;<+-y|(eomS@xc%3RO4b7lPwY`KlOTf1L9nSi*t^Q`M zUcL0k)&3^CuLPm{-MbP5^MC((rfWLJe|vnf#DrPDW<-B*L;IJkp3KeaYjQKaCb!BX z(`zd4NsIqC)9v>8Kfe)~<^HbTGtbCpFUysN_pkn?nOwavx36~05B$MjNbGwvjXL-L E127c*Q2+n{ diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system.bit deleted file mode 100644 index be3fae52cc34f82deae38ac9449bc2701a6c3d3a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1484497 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 z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz z00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_< z0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb z2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$## zAOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;| zfB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U< z00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa z0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV= z5P$##AOHafKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHaf zKmY;|fB*y_009U<00Izz00bZa0SG_<0uX=z1Rwwb2tWV=5P$##AOHafKmY;|fB*y_ z009U^i*Ahn*DzqyaP-%WL9oSNKyw - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interconnect - AXI4 Memory-Mapped Interconnect - - - - - - - Family - - - Base Family - - - Number of Slave Slots - - - Number of Master Slots - - - AXI ID Widgth - - - AXI Address Widgth - - - AXI Data Maximum Width - - - Slave AXI Data Width - - - Master AXI Data Width - - - Interconnect Crossbar Data Width - - - AXI Protocol - - - Master AXI Protocol - - - Master AXI Base Address - - - Master AXI High Address - - - Slave AXI Base ID - - - Slave AXI Thread ID Width - - - Slave AXI Is Interconnect - - - Slave AXI ACLK Ratio - - - Slvave AXI Is ACLK ASYNC - - - Master AXI ACLK Ratio - - - Master AXI Is ACLK ASYNC - - - Interconnect Crossbar ACLK Frequency Ratio - - - Slave AXI Supports Write - - - Slave AXI Supports Read - - - Master AXI Supports Write - - - Master AXI Supports Read - - - Propagate USER Signals - - - AWUSER Signal Width - - - ARUSER Signal Width - - - WUSER Signal Width - - - RUSER Signal Width - - - BUSER Signal Width - - - AXI Connectivity - - - Slave AXI Single Thread - - - Master AXI Supports Reordering - - - Master generates narrow bursts - - - Slave accepts narrow bursts - - - Slave AXI Write Acceptance - - - Slave AXI Read Acceptance - - - Master AXI Write Issuing - - - Master AXI Read Issuing - - - Slave AXI ARB Priority - - - Master AXI Secure - - - Master AXI Write FIFO Depth - - - Slave AXI Write FIFO Type - - - Slave AXI Write FIFO Delay - - - Slave AXI Read FIFO Depth - - - Slave AXI Read FIFO Type - - - Slave AXI Read FIFO Delay - - - Master AXI Write FIFO Depth - - - Master AXI Write FIFO Type - - - Master AXI Write FIFO Delay - - - Master AXI Read FIFO Depth - - - Master AXI Read FIFO Type - - - Master AXI Read FIFO Delay - - - Slave AXI AW Register - - - Slave AXI AR Register - - - Slave AXI W Register - - - Slave AXI R Register - - - Slave AXI B Register - - - Master AXI AW Register - - - Master AXI AR Register - - - Master AXI W Register - - - Master AXI R Register - - - Master AXI B Register - - - C_INTERCONNECT_R_REGISTER - - - Interconnect Architecture - - - Use Diagnostic Slave Port - - - Generate Interrupts - - - Check for transaction errors (DECERR) - - - Slave AXI CTRL Protocol - - - Slave AXI CTRL Address Width - - - Slave AXI CTRL Data Width - - - Diagnostic Slave Port Base Address - - - Diagnostic Slave Port High Address - - - Simulation debug - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interconnect - AXI4 Memory-Mapped Interconnect - - - - - - - Family - - - Base Family - - - Number of Slave Slots - - - Number of Master Slots - - - AXI ID Widgth - - - AXI Address Widgth - - - AXI Data Maximum Width - - - Slave AXI Data Width - - - Master AXI Data Width - - - Interconnect Crossbar Data Width - - - AXI Protocol - - - Master AXI Protocol - - - Master AXI Base Address - - - Master AXI High Address - - - Slave AXI Base ID - - - Slave AXI Thread ID Width - - - Slave AXI Is Interconnect - - - Slave AXI ACLK Ratio - - - Slvave AXI Is ACLK ASYNC - - - Master AXI ACLK Ratio - - - Master AXI Is ACLK ASYNC - - - Interconnect Crossbar ACLK Frequency Ratio - - - Slave AXI Supports Write - - - Slave AXI Supports Read - - - Master AXI Supports Write - - - Master AXI Supports Read - - - Propagate USER Signals - - - AWUSER Signal Width - - - ARUSER Signal Width - - - WUSER Signal Width - - - RUSER Signal Width - - - BUSER Signal Width - - - AXI Connectivity - - - Slave AXI Single Thread - - - Master AXI Supports Reordering - - - Master generates narrow bursts - - - Slave accepts narrow bursts - - - Slave AXI Write Acceptance - - - Slave AXI Read Acceptance - - - Master AXI Write Issuing - - - Master AXI Read Issuing - - - Slave AXI ARB Priority - - - Master AXI Secure - - - Master AXI Write FIFO Depth - - - Slave AXI Write FIFO Type - - - Slave AXI Write FIFO Delay - - - Slave AXI Read FIFO Depth - - - Slave AXI Read FIFO Type - - - Slave AXI Read FIFO Delay - - - Master AXI Write FIFO Depth - - - Master AXI Write FIFO Type - - - Master AXI Write FIFO Delay - - - Master AXI Read FIFO Depth - - - Master AXI Read FIFO Type - - - Master AXI Read FIFO Delay - - - Slave AXI AW Register - - - Slave AXI AR Register - - - Slave AXI W Register - - - Slave AXI R Register - - - Slave AXI B Register - - - Master AXI AW Register - - - Master AXI AR Register - - - Master AXI W Register - - - Master AXI R Register - - - Master AXI B Register - - - C_INTERCONNECT_R_REGISTER - - - Interconnect Architecture - - - Use Diagnostic Slave Port - - - Generate Interrupts - - - Check for transaction errors (DECERR) - - - Slave AXI CTRL Protocol - - - Slave AXI CTRL Address Width - - - Slave AXI CTRL Data Width - - - Diagnostic Slave Port Base Address - - - Diagnostic Slave Port High Address - - - Simulation debug - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MicroBlaze - The MicroBlaze 32 bit soft processor - - - - - - - - - - - - - Enable Fault Tolerance Support - - - - - Select implementation to optimize area (with lower instruction throughput) - - - - Select Bus Interfaces - - - Select Stream Interfaces - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Enable Additional Machine Status Register Instructions - - - Enable Pattern Comparator - - - Enable Barrel Shifter - - - Enable Integer Divider - - - Enable Integer Multiplier - - - Enable Floating Point Unit - - - Enable Unaligned Data Exception - - - Enable Illegal Instruction Exception - - - Enable Instruction-side AXI Exception - - - Enable Data-side AXI Exception - - - Enable Instruction-side PLB Exception - - - Enable Data-side PLB Exception - - - Enable Integer Divide Exception - - - Enable Floating Point Unit Exceptions - - - Enable Stream Exception - - - <qt>Enable stack protection</qt> - - - Specifies Processor Version Register - - - Specify USER1 Bits in Processor Version Register - - - Specify USER2 Bits in Processor Version Registers - - - Enable MicroBlaze Debug Module Interface - - - Number of PC Breakpoints - - - Number of Read Address Watchpoints - - - Number of Write Address Watchpoints - - - Sense Interrupt on Edge vs. Level - - - Sense Interrupt on Rising vs. Falling Edge - - - Specify Reset Value for Select MSR Bits - - - <qt>Generate Illegal Instruction Exception for NULL Instruction</qt> - - - Number of Stream Links - - - - Enable Additional Stream Instructions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - I-Cache Base Address - - - I-Cache High Address - - - Enable Instruction Cache - - - Enable I-Cache Writes - - - - Size of the I-Cache in Bytes - - - - Instruction Cache Line Length - - - Use Cache Links for All I-Cache Memory Accesses - - - - Number of I-Cache Victims - - - Number of I-Cache Streams - - - Use Distributed RAM for I-Cache Tags - - - - - - - - - - - - - - - - - - - - D-Cache Base Address - - - D-Cache High Address - - - Enable Data Cache - - - Enable D-Cache Writes - - - - Size of D-Cache in Bytes - - - - Data Cache Line Length - - - Use Cache Links for All D-Cache Memory Accesses - - - - Enable Write-back Storage Policy - - - Number of D-Cache Victims - - - Use Distributed RAM for D-Cache Tags - - - - - - - - - - - - - - - - - - - - - - Memory Management - - - Data Shadow Translation Look-Aside Buffer Size - - - Instruction Shadow Translation Look-Aside Buffer Size - - - Enable Access to Memory Management Special Registers - - - Number of Memory Protection Zones - - - Privileged Instructions - - - - - - Enable Branch Target Cache - - - Branch Target Cache Size - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Local Memory Bus (LMB) 1.0 - 'The LMB is a fast, local bus for connecting MicroBlaze I and D ports to peripherals and BRAM' - - - - - - - Number of Bus Slaves - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Active High External Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Local Memory Bus (LMB) 1.0 - 'The LMB is a fast, local bus for connecting MicroBlaze I and D ports to peripherals and BRAM' - - - - - - - Number of Bus Slaves - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Active High External Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMB BRAM Controller - Local Memory Bus (LMB) Block RAM (BRAM) Interface Controller connects to an lmb bus - - - - - - - LMB BRAM Base Address - - - LMB BRAM High Address - - - - LMB Address Decode Mask - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Error Correction Code - - - Select Interconnect - - - Fault Inject Registers - - - Correctable Error First Failing Register - - - Uncorrectable Error First Failing Register - - - ECC Status and Control Register - - - ECC On/Off Register - - - ECC On/Off Reset Value - - - Correctable Error Counter Register Width - - - Write Access setting - - - Base Address for PLB Interface - - - High Address for PLB Interface - - - PLB Address Bus Width - - - PLB Data Bus Width - - - PLB Slave Uses P2P Topology - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - PLB Slave is Capable of Bursts - - - Native Data Bus Width of PLB Slave - - - Frequency of PLB Slave - - - S_AXI_CTRL Clock Frequency - - - S_AXI_CTRL Base Address - - - S_AXI_CTRL High Address - - - S_AXI_CTRL Address Width - - - S_AXI_CTRL Data Width - - - S_AXI_CTRL Protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - LMB BRAM Controller - Local Memory Bus (LMB) Block RAM (BRAM) Interface Controller connects to an lmb bus - - - - - - - LMB BRAM Base Address - - - LMB BRAM High Address - - - - LMB Address Decode Mask - - - LMB Address Bus Width - - - LMB Data Bus Width - - - Error Correction Code - - - Select Interconnect - - - Fault Inject Registers - - - Correctable Error First Failing Register - - - Uncorrectable Error First Failing Register - - - ECC Status and Control Register - - - ECC On/Off Register - - - ECC On/Off Reset Value - - - Correctable Error Counter Register Width - - - Write Access setting - - - Base Address for PLB Interface - - - High Address for PLB Interface - - - PLB Address Bus Width - - - PLB Data Bus Width - - - PLB Slave Uses P2P Topology - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - PLB Slave is Capable of Bursts - - - Native Data Bus Width of PLB Slave - - - Frequency of PLB Slave - - - S_AXI_CTRL Clock Frequency - - - S_AXI_CTRL Base Address - - - S_AXI_CTRL High Address - - - S_AXI_CTRL Address Width - - - S_AXI_CTRL Data Width - - - S_AXI_CTRL Protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Block RAM (BRAM) Block - The BRAM Block is a configurable memory module that attaches to a variety of BRAM Interface Controllers. - - - - - - - Size of BRAM(s) in Bytes - - - Data Width of Port A and B - - - Address Width of Port A and B - - - Number of Byte Write Enables - - - Device Family - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processor System Reset Module - Reset management module - - - - - - - Device Subfamily - - - Number of Clocks Before Input Change is Recognized On The External Reset Input - - - Number of Clocks Before Input Change is Recognized On The Auxiliary Reset Input - - - External Reset Active High - - - Auxiliary Reset Active High - - - Number of Bus Structure Reset Registered Outputs - - - Number of Peripheral Reset Registered Outputs - - - Number of Active Low Interconnect Reset Registered Outputs - - - Number of Active Low Peripheral Reset Registered Outputs - - - Device Family - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Clock Generator - Clock generator for processor system. - - - - - - - Family - - - Device - - - Package - - - Speed Grade - - - Input Clock Frequency (Hz) - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Varaible Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Varaible Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase - - - Required Frequency (Hz) - - - Clock Deskew - - - Required Frequency (Hz) - - - Required Phase - - - Required Group - - - Buffered - - - Variable Phase Shift - - - - Clock Primitive Feedback Buffer - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - MicroBlaze Debug Module (MDM) - Debug module for MicroBlaze Soft Processor. - - - - - - - Device Family - - - Specifies the JTAG user-defined register used - - - Specifies the Bus Interface for the JTAG UART - - - Base Address - - - High Address - - - PLB Address Bus Width - - - PLB Data Bus Width - - - PLB Slave Uses P2P Topology - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - Native Data Bus Width of PLB Slave - - - PLB Slave is Capable of Bursts - - - Number of MicroBlaze debug ports - - - Enable JTAG UART - - - AXI Address Width - - - AXI Data Width - - - AXI4LITE protocal - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI UART (Lite) - Generic UART (Universal Asynchronous Receiver/Transmitter) for AXI. - - - - - - - Device Family - - - AXI Clock Frequency - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - UART Lite Baud Rate - Baud Rate - - - Number of Data Bits in a Serial Frame - Data Bits - - - Use Parity - - - Parity Type - - - AXI4LITE protocol - - - - - - - - - - Serial Data Out - - - Serial Data In - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI General Purpose IO - General Purpose Input/Output (GPIO) core for the AXI bus. - - - - - - - Device Family - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Supports Interrupts - - - Channel 1 Data Out Default Value - - - Channel 1 Tri-state Default Value - - - Enable Channel 2 - - - Channel 2 Data Out Default Value - - - Channel 2 Tri-state Default Value - - - AXI4LITE protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO1 Data IO - - - GPIO2 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI General Purpose IO - General Purpose Input/Output (GPIO) core for the AXI bus. - - - - - - - Device Family - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Supports Interrupts - - - Channel 1 Data Out Default Value - - - Channel 1 Tri-state Default Value - - - Enable Channel 2 - - - Channel 2 Data Out Default Value - - - Channel 2 Tri-state Default Value - - - AXI4LITE protocol - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO1 Data IO - - - GPIO2 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI S6 Memory Controller(DDR/DDR2/DDR3) - Spartan-6 memory controller - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI 10/100 Ethernet MAC Lite - 'IEEE Std. 802.3 MII interface MAC with AXI interface, lightweight implementation' - - - - - - - AXI protocol selection - - - Device Family - - - Ethernetlite Base Address - - - Ethernetlite High Address - - - AXI System Clock Period - - - AXI Interface Addresses Width - - - AXI Interface Data Width - - - Width of ID Bus on AXI4 - - - Include MII Management Module - - - Include Global Buffers for PHY clocks - - - Include Internal Loopback - - - Duplex Mode - - - Include Second Transmitter Buffer - - - Include Second Receiver Buffer - - - Include PHY I/O Constraints - - - Interconnect write acceptance - - - Interconnect read acceptance - - - Support Narrow Burst on AXI4 - - - - - - - - - - Ethernet PHY Management Data - - - Ethernet PHY Management Clock - - - Ethernet Transmit Data Output - - - Ethernet Transmit Enable - - - Ethernet Transmit Clock Input - - - Ethernet Collision Input - - - Ethernet Receive Data Input - - - Ethernet Receive Error Input - - - Ethernet Receive Clock Input - - - Ethernet Carrier Sense Input - - - Ethernet Receive Data Valid - - - Ethernet PHY Reset - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Timer/Counter - Timer counter with AXI interface - - - - - - - AXI4LITE protocol - - - Device Family - - - The Width of Counter in Timer - Count Width - - - Only One Timer is present - - - TRIG0 Active Level - - - TRIG1 Active Level - - - GEN0 Active Level - - - GEN1 Active Level - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - - - - - - - - - - Capture Trig 0 - - - Capture Trig 1 - - - Generate Out 0 - - - Generate Out 1 - - - Pulse Width Modulation 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AXI Interrupt Controller - intc core attached to the AXI - - - - - - - Device Family - - - AXI Base Address - - - AXI High Address - - - AXI Address Width - - - AXI Data Width - - - Number of Interrupt Inputs - - - Type of Interrupt for Each Input - - - Type of Each Edge Senstive Interrupt - - - Type of Each Level Sensitive Interrupt - - - Support IPR - - - Support SIE - - - Support CIE - - - Support IVR - - - IRQ Output Use Level - - - The Sense of IRQ Output - - - AXI4LITE protocol - - - - - - - - - - Interrupt Request Output - - - - - - - - - - Interrupt Inputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm deleted file mode 100644 index ca5622cf7..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/HardwareWithEthernetLite/system_bd.bmm +++ /dev/null @@ -1,32 +0,0 @@ -// BMM LOC annotation file. -// -// Release 13.1 - Data2MEM O.40d, build 1.9 Aug 19, 2010 -// Copyright (c) 1995-2011 Xilinx, Inc. All rights reserved. - - -/////////////////////////////////////////////////////////////////////////////// -// -// Processor 'microblaze_0', ID 100, memory map. -// -/////////////////////////////////////////////////////////////////////////////// - -ADDRESS_MAP microblaze_0 MICROBLAZE-LE 100 - - - /////////////////////////////////////////////////////////////////////////////// - // - // Processor 'microblaze_0' address space 'microblaze_0_bram_block_combined' 0x00000000:0x00001FFF (8 KBytes). - // - /////////////////////////////////////////////////////////////////////////////// - - ADDRESS_SPACE microblaze_0_bram_block_combined RAMB16 [0x00000000:0x00001FFF] - BUS_BLOCK - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_0 [31:24] INPUT = microblaze_0_bram_block_combined_0.mem PLACED = X1Y30; - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_1 [23:16] INPUT = microblaze_0_bram_block_combined_1.mem PLACED = X1Y32; - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_2 [15:8] INPUT = microblaze_0_bram_block_combined_2.mem PLACED = X0Y30; - microblaze_0_bram_block/microblaze_0_bram_block/ramb16bwer_3 [7:0] INPUT = microblaze_0_bram_block_combined_3.mem PLACED = X0Y32; - END_BUS_BLOCK; - END_ADDRESS_SPACE; - -END_ADDRESS_MAP; - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject deleted file mode 100644 index 655608e6a..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.cproject +++ /dev/null @@ -1,1985 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project deleted file mode 100644 index d79f93ee6..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/.project +++ /dev/null @@ -1,83 +0,0 @@ - - - RTOSDemo - - - StandAloneBSP - RTOSDemoBSP - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - ${workspace_loc:/RTOSDemoSource/Debug} - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - true - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat deleted file mode 100644 index 3ed26c633..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/CreateProjectDirectoryStructure.bat +++ /dev/null @@ -1,117 +0,0 @@ -REM This file should be executed from the command line prior to the first -REM build. It will be necessary to refresh the Eclipse project once the -REM .bat file has been executed (normally just press F5 to refresh). - -REM Copies all the required files from their location within the standard -REM FreeRTOS directory structure to under the Eclipse project directory. -REM This permits the Eclipse project to be used in 'managed' mode and without -REM having to setup any linked resources. - -REM Files will also be copied into the BSP directory, which can be used to -REM generate FreeRTOS BSP packages directly from within the Xilinx SDK. -SET BSP_SOURCE=..\..\KernelAwareBSPRepository\bsp\freertos_v2_00_a\src\Source - -REM Standard paths -SET FREERTOS_SOURCE=..\..\..\..\Source -SET COMMON_SOURCE=..\..\..\Common\minimal -SET COMMON_INCLUDE=..\..\..\Common\include -SET LWIP_SOURCE=..\..\..\Common\ethernet\lwip-1.4.0 - -REM Have the files already been copied? -IF EXIST FreeRTOS_Source Goto END - - REM Create the required directory structure. - MD FreeRTOS_Source - MD FreeRTOS_Source\include - MD FreeRTOS_Source\portable\GCC - MD FreeRTOS_Source\portable\GCC\MicroBlazeV8 - MD FreeRTOS_Source\portable\MemMang - MD Demo_Source - MD Demo_Source\include - MD lwIP\api - MD lwIP\core - MD lwIP\core\ipv4 - MD lwIP\include - MD lwIP\include\ipv4 - MD lwIP\include\ipv4\lwip - MD lwIP\include\lwip - MD lwIP\include\netif - MD lwIP\netif - MD lwIP\netif\include - MD lwIP\netif\include\arch - - REM Copy the core kernel files into the SDK projects directory - copy %FREERTOS_SOURCE%\tasks.c FreeRTOS_Source - copy %FREERTOS_SOURCE%\queue.c FreeRTOS_Source - copy %FREERTOS_SOURCE%\list.c FreeRTOS_Source - copy %FREERTOS_SOURCE%\timers.c FreeRTOS_Source - - REM Copy the core kernel files into the BSP directory - copy %FREERTOS_SOURCE%\tasks.c %BSP_SOURCE% - copy %FREERTOS_SOURCE%\queue.c %BSP_SOURCE% - copy %FREERTOS_SOURCE%\list.c %BSP_SOURCE% - copy %FREERTOS_SOURCE%\timers.c %BSP_SOURCE% - - REM Copy the common header files into the SDK projects directory - copy %FREERTOS_SOURCE%\include\*.* FreeRTOS_Source\include - - REM Copy the common header files into the BSP directory - copy %FREERTOS_SOURCE%\include\*.* %BSP_SOURCE%\include - - REM Copy the portable layer files into the SDK projects directory - copy %FREERTOS_SOURCE%\portable\GCC\MicroBlazeV8\*.* FreeRTOS_Source\portable\GCC\MicroBlazeV8 - - REM Copy the portable layer files into the BSP projects directory - copy %FREERTOS_SOURCE%\portable\GCC\MicroBlazeV8\*.* %BSP_SOURCE%\portable\GCC\MicroBlazeV8 - - REM Copy the basic memory allocation files into the SDK projects directory - copy %FREERTOS_SOURCE%\portable\MemMang\heap_3.c FreeRTOS_Source\portable\MemMang - - REM Copy the basic memory allocation files into the BSP directory - copy %FREERTOS_SOURCE%\portable\MemMang\heap_3.c %BSP_SOURCE%\portable\MemMang - - REM Copy the files that define the common demo tasks. - copy %COMMON_SOURCE%\dynamic.c Demo_Source - copy %COMMON_SOURCE%\BlockQ.c Demo_Source - copy %COMMON_SOURCE%\death.c Demo_Source - copy %COMMON_SOURCE%\blocktim.c Demo_Source - copy %COMMON_SOURCE%\semtest.c Demo_Source - copy %COMMON_SOURCE%\PollQ.c Demo_Source - copy %COMMON_SOURCE%\GenQTest.c Demo_Source - copy %COMMON_SOURCE%\QPeek.c Demo_Source - copy %COMMON_SOURCE%\recmutex.c Demo_Source - copy %COMMON_SOURCE%\sp_flop.c Demo_Source - copy %COMMON_SOURCE%\flash.c Demo_Source - copy %COMMON_SOURCE%\comtest_strings.c Demo_Source - copy %COMMON_SOURCE%\TimerDemo.c Demo_Source - - REM Copy the common demo file headers. - copy %COMMON_INCLUDE%\dynamic.h Demo_Source\include - copy %COMMON_INCLUDE%\partest.h Demo_Source\include - copy %COMMON_INCLUDE%\BlockQ.h Demo_Source\include - copy %COMMON_INCLUDE%\death.h Demo_Source\include - copy %COMMON_INCLUDE%\blocktim.h Demo_Source\include - copy %COMMON_INCLUDE%\semtest.h Demo_Source\include - copy %COMMON_INCLUDE%\PollQ.h Demo_Source\include - copy %COMMON_INCLUDE%\GenQTest.h Demo_Source\include - copy %COMMON_INCLUDE%\QPeek.h Demo_Source\include - copy %COMMON_INCLUDE%\recmutex.h Demo_Source\include - copy %COMMON_INCLUDE%\flop.h Demo_Source\include - copy %COMMON_INCLUDE%\flash.h Demo_Source\include - copy %COMMON_INCLUDE%\comtest_strings.h Demo_Source\include - copy %COMMON_INCLUDE%\serial.h Demo_Source\include - copy %COMMON_INCLUDE%\comtest.h Demo_Source\include - copy %COMMON_INCLUDE%\TimerDemo.h Demo_Source\include - - REM Copy the required lwIP files - copy %LWIP_SOURCE%\src\api\*.c lwIP\api - copy %LWIP_SOURCE%\src\core\*.c lwIP\core - copy %LWIP_SOURCE%\src\core\ipv4\*.c lwIP\core\ipv4 - copy %LWIP_SOURCE%\src\include\ipv4\lwip\*.h lwIP\include\ipv4\lwip - copy %LWIP_SOURCE%\src\include\lwip\*.h lwIP\include\lwip - copy %LWIP_SOURCE%\src\include\netif\*.h lwIP\include\netif - copy %LWIP_SOURCE%\src\netif\etharp.c lwIP\netif - copy %LWIP_SOURCE%\ports\MicroBlaze-Ethernet-Lite lwip\netif - copy %LWIP_SOURCE%\ports\MicroBlaze-Ethernet-Lite\include\arch lwip\netif\include\arch - -: END diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h deleted file mode 100644 index a359fca76..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/FreeRTOSConfig.h +++ /dev/null @@ -1,203 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - - -/* The following #error directive is to remind users that a batch file must be - * executed prior to this project being built. The batch file *cannot* be - * executed from within older versions of Eclipse, but probably can be executed - * from within the Xilinx SDK. Once it has been executed, re-open or refresh - * the Eclipse project and remove the #error line below. - */ -#error Ensure CreateProjectDirectoryStructure.bat has been executed before building. See comment immediately above. - - -#ifndef FREERTOS_CONFIG_H -#define FREERTOS_CONFIG_H - -/*----------------------------------------------------------- - * Application specific definitions. - * - * These definitions should be adjusted for your particular hardware and - * application requirements. - * - * THESE PARAMETERS ARE DESCRIBED WITHIN THE 'CONFIGURATION' SECTION OF THE - * FreeRTOS API DOCUMENTATION AVAILABLE ON THE FreeRTOS.org WEB SITE. - * - * See http://www.freertos.org/a00110.html. - *----------------------------------------------------------*/ -#define configUSE_PREEMPTION 1 -#define configUSE_IDLE_HOOK 1 -#define configUSE_TICK_HOOK 0 -#define configCPU_CLOCK_HZ ( XPAR_MICROBLAZE_CORE_CLOCK_FREQ_HZ ) /* Not actually used in this demo as the timer is set up in main() and uses the peripheral clock, not the CPU clock. */ -#define configTICK_RATE_HZ ( ( TickType_t ) 1000 ) -#define configMAX_PRIORITIES ( 7 ) -#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 64 * 1024 ) ) -#define configMAX_TASK_NAME_LEN ( 10 ) -#define configUSE_TRACE_FACILITY 1 -#define configUSE_16_BIT_TICKS 0 -#define configIDLE_SHOULD_YIELD 1 -#define configUSE_MUTEXES 1 -#define configQUEUE_REGISTRY_SIZE 10 -#define configCHECK_FOR_STACK_OVERFLOW 2 -#define configUSE_RECURSIVE_MUTEXES 1 -#define configUSE_MALLOC_FAILED_HOOK 1 -#define configUSE_APPLICATION_TASK_TAG 0 -#define configUSE_COUNTING_SEMAPHORES 1 -#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 200 ) -#define configINTERRUPT_STACK_SIZE configMINIMAL_STACK_SIZE - -/* If configINSTALL_EXCEPTION_HANDLERS is set to 1, then the kernel will -automatically install its own exception handlers before the kernel is started, -if the application writer has not already caused them to be installed using the -vPortExceptionsInstallHandlers() API function. See the documentation page for -this demo on the FreeRTOS.org web site for more information. */ -#define configINSTALL_EXCEPTION_HANDLERS 1 - -/* configINTERRUPT_CONTROLLER_TO_USE must be set to the ID of the interrupt -controller that is going to be used directly by FreeRTOS itself. Most hardware -designs will only include on interrupt controller. */ -#define configINTERRUPT_CONTROLLER_TO_USE XPAR_INTC_SINGLE_DEVICE_ID - -/* Co-routine definitions. */ -#define configUSE_CO_ROUTINES 0 -#define configMAX_CO_ROUTINE_PRIORITIES ( 2 ) - -/* Software timer definitions. */ -#define configUSE_TIMERS 1 -#define configTIMER_TASK_PRIORITY ( configMAX_PRIORITIES - 4 ) -#define configTIMER_QUEUE_LENGTH 10 -#define configTIMER_TASK_STACK_DEPTH ( configMINIMAL_STACK_SIZE ) - -/* Set the following definitions to 1 to include the API function, or zero -to exclude the API function. */ -#define INCLUDE_vTaskPrioritySet 1 -#define INCLUDE_uxTaskPriorityGet 1 -#define INCLUDE_vTaskDelete 1 -#define INCLUDE_vTaskCleanUpResources 0 -#define INCLUDE_vTaskSuspend 1 -#define INCLUDE_vTaskDelayUntil 1 -#define INCLUDE_vTaskDelay 1 -#define INCLUDE_pcTaskGetTaskName 1 -#define INCLUDE_pcTaskGetTaskName 1 - -/* This demo makes use of one or more example stats formatting functions. These -format the raw data provided by the uxTaskGetSystemState() function in to human -readable ASCII form. See the notes in the implementation of vTaskList() within -FreeRTOS/Source/tasks.c for limitations. */ -#define configUSE_STATS_FORMATTING_FUNCTIONS 1 - -#define configASSERT( x ) if( ( x ) == 0 ) { portDISABLE_INTERRUPTS(); for( ;; ); } - - -/* Run time stats gathering definitions. The conditional compilation is to -prevent the C syntax being included in assembly files. */ -#ifndef __ASSEMBLER__ - unsigned long ulMainGetRunTimeCounterValue( void ); - void vMainConfigureTimerForRunTimeStats( void ); -#endif -#define configGENERATE_RUN_TIME_STATS 1 -#define portCONFIGURE_TIMER_FOR_RUN_TIME_STATS() vMainConfigureTimerForRunTimeStats() -#define portGET_RUN_TIME_COUNTER_VALUE() ulMainGetRunTimeCounterValue() - - - - - -/* Networking configuration follows. */ - -#define configLWIP_TASK_PRIORITY ( configMAX_PRIORITIES - 4 ) - -/* MAC address configuration. */ -#define configMAC_ADDR0 0x00 -#define configMAC_ADDR1 0x12 -#define configMAC_ADDR2 0x13 -#define configMAC_ADDR3 0x10 -#define configMAC_ADDR4 0x15 -#define configMAC_ADDR5 0x11 - -/* IP address configuration. */ -#define configIP_ADDR0 192 -#define configIP_ADDR1 168 -#define configIP_ADDR2 0 -#define configIP_ADDR3 200 - -/* Gateway IP address configuration. */ -#define configGW_IP_ADDR0 192 -#define configGW_IP_ADDR1 168 -#define configGW_IP_ADDR2 0 -#define configGW_IP_ADDR3 3 - -/* Netmask configuration. */ -#define configNET_MASK0 255 -#define configNET_MASK1 255 -#define configNET_MASK2 255 -#define configNET_MASK3 0 - -#endif /* FREERTOS_CONFIG_H */ - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c deleted file mode 100644 index a76dc8228..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/ParTest.c +++ /dev/null @@ -1,176 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/*----------------------------------------------------------- - * Simple digital IO routines. - *-----------------------------------------------------------*/ - -/* Kernel includes. */ -#include "FreeRTOS.h" - -/* Demo application includes. */ -#include "partest.h" - -/* Library includes. */ -#include "xgpio.h" - -/* The hardware design that accompanies this demo project has four LED -outputs. */ -#define partstMAX_LED 4 - -/*-----------------------------------------------------------*/ - -/* A hardware specific constant required to use the Xilinx driver library. */ -static const unsigned portBASE_TYPE uxGPIOOutputChannel = 1UL; - -/* The current state of the output port. */ -static unsigned char ucGPIOState = 0U; - -/* Structure that hold the state of the ouptut peripheral used by this demo. -This is used by the Xilinx peripheral driver API functions. */ -static XGpio xOutputGPIOInstance; - -/* - * Setup the IO for the LED outputs. - */ -void vParTestInitialise( void ) -{ -portBASE_TYPE xStatus; -const unsigned char ucSetToOutput = 0U; - - /* Initialise the GPIO for the LEDs. */ - xStatus = XGpio_Initialize( &xOutputGPIOInstance, XPAR_LEDS_4BITS_DEVICE_ID ); - if( xStatus == XST_SUCCESS ) - { - /* All bits on this channel are going to be outputs (LEDs). */ - XGpio_SetDataDirection( &xOutputGPIOInstance, uxGPIOOutputChannel, ucSetToOutput ); - - /* Start with all LEDs off. */ - ucGPIOState = 0U; - XGpio_DiscreteWrite( &xOutputGPIOInstance, uxGPIOOutputChannel, ucGPIOState ); - } - - configASSERT( xStatus == XST_SUCCESS ); -} -/*-----------------------------------------------------------*/ - -void vParTestSetLED( unsigned portBASE_TYPE uxLED, signed portBASE_TYPE xValue ) -{ -unsigned char ucLED = 1U; - - /* Only attempt to set the LED if it is in range. */ - if( uxLED < partstMAX_LED ) - { - ucLED <<= ( unsigned char ) uxLED; - - portENTER_CRITICAL(); - { - if( xValue == pdFALSE ) - { - ucGPIOState &= ~ucLED; - } - else - { - ucGPIOState |= ucLED; - } - XGpio_DiscreteWrite( &xOutputGPIOInstance, uxGPIOOutputChannel, ucGPIOState ); - } - portEXIT_CRITICAL(); - } -} -/*-----------------------------------------------------------*/ - -void vParTestToggleLED( unsigned portBASE_TYPE uxLED ) -{ -unsigned char ucLED = 1U; - - /* Only attempt to toggle the LED if it is in range. */ - if( uxLED < partstMAX_LED ) - { - ucLED <<= ( unsigned char ) uxLED; - - portENTER_CRITICAL(); - { - if( ( ucGPIOState & ucLED ) != 0 ) - { - ucGPIOState &= ~ucLED; - } - else - { - ucGPIOState |= ucLED; - } - - XGpio_DiscreteWrite( &xOutputGPIOInstance, uxGPIOOutputChannel, ucGPIOState ); - } - portEXIT_CRITICAL(); - } -} - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c deleted file mode 100644 index 7a41abad6..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/RegisterTests.c +++ /dev/null @@ -1,323 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "task.h" - -/* - * The register test task as described in the comments at the top of main-full.c. - */ -void vRegisterTest1( void *pvParameters ); -void vRegisterTest2( void *pvParameters ); - -/* Variables that are incremented on each iteration of the reg test tasks - -provided the tasks have not reported any errors. The check timer inspects these -variables to ensure they are still incrementing as expected. If a variable -stops incrementing then it is likely that its associate task has stalled or -detected an error. */ -volatile unsigned long ulRegTest1CycleCount = 0UL, ulRegTest2CycleCount = 0UL; - -/*-----------------------------------------------------------*/ - -void vRegisterTest1( void *pvParameters ) -{ - /* This task uses an infinite loop that is implemented in the assembly - code. - - First fill the relevant registers with known values. */ - asm volatile ( " addi r3, r0, 3 \n\t" \ - " addi r4, r0, 4 \n\t" \ - " addi r6, r0, 6 \n\t" \ - " addi r7, r0, 7 \n\t" \ - " addi r8, r0, 8 \n\t" \ - " addi r9, r0, 9 \n\t" \ - " addi r10, r0, 10 \n\t" \ - " addi r11, r0, 11 \n\t" \ - " addi r12, r0, 12 \n\t" \ - " addi r16, r0, 16 \n\t" \ - " addi r19, r0, 19 \n\t" \ - " addi r20, r0, 20 \n\t" \ - " addi r21, r0, 21 \n\t" \ - " addi r22, r0, 22 \n\t" \ - " addi r23, r0, 23 \n\t" \ - " addi r24, r0, 24 \n\t" \ - " addi r25, r0, 25 \n\t" \ - " addi r26, r0, 26 \n\t" \ - " addi r27, r0, 27 \n\t" \ - " addi r28, r0, 28 \n\t" \ - " addi r29, r0, 29 \n\t" \ - " addi r30, r0, 30 \n\t" \ - " addi r31, r0, 31 \n\t" - ); - - /* Now test the register values to ensure they contain the same value that - was written to them above. This task will get preempted frequently so - other tasks are likely to have executed since the register values were - written. If any register contains an unexpected value then the task will - branch to Error_Loop_1, which in turn prevents it from incrementing its - loop counter, enabling the check timer to determine that all is not as it - should be. */ - - asm volatile ( "Loop_Start_1: \n\t" \ - " xori r18, r3, 3 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r4, 4 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r6, 6 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r7, 7 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r8, 8 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r9, 9 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r10, 10 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r11, 11 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r12, 12 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r16, 16 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r19, 19 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r20, 20 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r21, 21 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r22, 22 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r23, 23 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r24, 24 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r25, 25 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r26, 26 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r27, 27 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r28, 28 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r29, 29 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r30, 30 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" \ - " xori r18, r31, 31 \n\t" \ - " bnei r18, Error_Loop_1 \n\t" - ); - - /* If this task has not branched to the error loop, then everything is ok, - and the check variable can be incremented to indicate that this task - is still running. Then, brach back to the top to check the register - contents again. */ - asm volatile ( " lwi r18, r0, ulRegTest1CycleCount \n\t" \ - " addik r18, r18, 1 \n\t" \ - " swi r18, r0, ulRegTest1CycleCount \n\t" \ - " \n\t" \ - " bri Loop_Start_1 " - ); - - /* The test function will branch here if it discovers an error. This part - of the code just sits in a NULL loop, which prevents the check variable - incrementing any further to allow the check timer to recognize that this - test has failed. */ - asm volatile ( "Error_Loop_1: \n\t" \ - " bri 0 \n\t" \ - " nop \n\t" \ - ); - - ( void ) pvParameters; -} -/*-----------------------------------------------------------*/ - -void vRegisterTest2( void *pvParameters ) -{ - /* This task uses an infinite loop that is implemented in the assembly - code. - - First fill the registers with known values. */ - asm volatile ( " addi r16, r0, 1016 \n\t" \ - " addi r19, r0, 1019 \n\t" \ - " addi r20, r0, 1020 \n\t" \ - " addi r21, r0, 1021 \n\t" \ - " addi r22, r0, 1022 \n\t" \ - " addi r23, r0, 1023 \n\t" \ - " addi r24, r0, 1024 \n\t" \ - " addi r25, r0, 1025 \n\t" \ - " addi r26, r0, 1026 \n\t" \ - " addi r27, r0, 1027 \n\t" \ - " addi r28, r0, 1028 \n\t" \ - " addi r29, r0, 1029 \n\t" \ - " addi r30, r0, 1030 \n\t" \ - " addi r31, r0, 1031 \n\t" \ - " " \ - "Loop_Start_2: " - ); - - /* Unlike vRegisterTest1, vRegisterTest2 performs a yield. This increases - the test coverage, but does mean volatile registers need re-loading with - their exepcted values. */ - taskYIELD(); - - /* taskYIELD() could have changed temporaries - set them back to those - expected by the reg test task. */ - asm volatile ( " addi r3, r0, 103 \n\t" \ - " addi r4, r0, 104 \n\t" \ - " addi r6, r0, 106 \n\t" \ - " addi r7, r0, 107 \n\t" \ - " addi r8, r0, 108 \n\t" \ - " addi r9, r0, 109 \n\t" \ - " addi r10, r0, 1010 \n\t" \ - " addi r11, r0, 1011 \n\t" \ - " addi r12, r0, 1012 \n\t" \ - ); - - - /* Now test the register values to ensure they contain the same value that - was written to them above. This task will get preempted frequently so - other tasks are likely to have executed since the register values were - written. */ - asm volatile ( " xori r18, r3, 103 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r4, 104 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r6, 106 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r7, 107 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r8, 108 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r9, 109 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r10, 1010 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r11, 1011 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r12, 1012 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r16, 1016 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r19, 1019 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r20, 1020 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r21, 1021 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r22, 1022 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r23, 1023 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r24, 1024 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r25, 1025 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r26, 1026 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r27, 1027 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r28, 1028 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r29, 1029 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r30, 1030 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" \ - " xori r18, r31, 1031 \n\t" \ - " bnei r18, Error_Loop_2 \n\t" - ); - - /* If this task has not branched to the error loop, then everything is ok, - and the check variable should be incremented to indicate that this task - is still running. Then, brach back to the top to check the registers - again. */ - asm volatile ( " lwi r18, r0, ulRegTest2CycleCount \n\t" \ - " addik r18, r18, 1 \n\t" \ - " swi r18, r0, ulRegTest2CycleCount \n\t" \ - " \n\t" \ - " bri Loop_Start_2 " - ); - - /* The test function will branch here if it discovers an error. This part - of the code just sits in a NULL loop, which prevents the check variable - incrementing any further to allow the check timer to recognize that this - test has failed. */ - asm volatile ( "Error_Loop_2: \n\t" \ - " bri 0 \n\t" \ - " nop \n\t" \ - ); - - ( void ) pvParameters; -} - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c deleted file mode 100644 index 993fffcdd..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.c +++ /dev/null @@ -1,177 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#include "lwip/opt.h" -#include "lwip/def.h" -#include "fs.h" -#include "fsdata.h" -#include - -/** Set this to 1 to include "fsdata_custom.c" instead of "fsdata.c" for the - * file system (to prevent changing the file included in CVS) */ -#ifndef HTTPD_USE_CUSTUM_FSDATA -#define HTTPD_USE_CUSTUM_FSDATA 0 -#endif - -#if HTTPD_USE_CUSTUM_FSDATA -#include "fsdata_custom.c" -#else /* HTTPD_USE_CUSTUM_FSDATA */ -#include "fsdata.c" -#endif /* HTTPD_USE_CUSTUM_FSDATA */ - -/*-----------------------------------------------------------------------------------*/ -/* Define the number of open files that we can support. */ -#ifndef LWIP_MAX_OPEN_FILES -#define LWIP_MAX_OPEN_FILES 10 -#endif - -/* Define the file system memory allocation structure. */ -struct fs_table { - struct fs_file file; - u8_t inuse; -}; - -/* Allocate file system memory */ -struct fs_table fs_memory[LWIP_MAX_OPEN_FILES]; - -#if LWIP_HTTPD_CUSTOM_FILES -int fs_open_custom(struct fs_file *file, const char *name); -void fs_close_custom(struct fs_file *file); -#endif /* LWIP_HTTPD_CUSTOM_FILES */ - -/*-----------------------------------------------------------------------------------*/ -static struct fs_file * -fs_malloc(void) -{ - int i; - for(i = 0; i < LWIP_MAX_OPEN_FILES; i++) { - if(fs_memory[i].inuse == 0) { - fs_memory[i].inuse = 1; - return(&fs_memory[i].file); - } - } - return(NULL); -} - -/*-----------------------------------------------------------------------------------*/ -static void -fs_free(struct fs_file *file) -{ - int i; - for(i = 0; i < LWIP_MAX_OPEN_FILES; i++) { - if(&fs_memory[i].file == file) { - fs_memory[i].inuse = 0; - break; - } - } - return; -} - -/*-----------------------------------------------------------------------------------*/ -struct fs_file * -fs_open(const char *name) -{ - struct fs_file *file; - const struct fsdata_file *f; - - file = fs_malloc(); - if(file == NULL) { - return NULL; - } - -#if LWIP_HTTPD_CUSTOM_FILES - if(fs_open_custom(file, name)) { - file->is_custom_file = 1; - return file; - } - file->is_custom_file = 0; -#endif /* LWIP_HTTPD_CUSTOM_FILES */ - - for(f = FS_ROOT; f != NULL; f = f->next) { - if (!strcmp(name, (char *)f->name)) { - file->data = (const char *)f->data; - file->len = f->len; - file->index = f->len; - file->pextension = NULL; - file->http_header_included = f->http_header_included; -#if HTTPD_PRECALCULATED_CHECKSUM - file->chksum_count = f->chksum_count; - file->chksum = f->chksum; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ -#if LWIP_HTTPD_FILE_STATE - file->state = fs_state_init(file, name); -#endif /* #if LWIP_HTTPD_FILE_STATE */ - return file; - } - } - fs_free(file); - return NULL; -} - -/*-----------------------------------------------------------------------------------*/ -void -fs_close(struct fs_file *file) -{ -#if LWIP_HTTPD_CUSTOM_FILES - if (file->is_custom_file) { - fs_close_custom(file); - } -#endif /* LWIP_HTTPD_CUSTOM_FILES */ -#if LWIP_HTTPD_FILE_STATE - fs_state_free(file, file->state); -#endif /* #if LWIP_HTTPD_FILE_STATE */ - fs_free(file); -} -/*-----------------------------------------------------------------------------------*/ -int -fs_read(struct fs_file *file, char *buffer, int count) -{ - int read; - - if(file->index == file->len) { - return -1; - } - - read = file->len - file->index; - if(read > count) { - read = count; - } - - MEMCPY(buffer, (file->data + file->index), read); - file->index += read; - - return(read); -} -/*-----------------------------------------------------------------------------------*/ -int fs_bytes_left(struct fs_file *file) -{ - return file->len - file->index; -} diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h deleted file mode 100644 index cd7675923..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fs.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __FS_H__ -#define __FS_H__ - -#include "lwip/opt.h" - -/** Set this to 1 and provide the functions: - * - "int fs_open_custom(struct fs_file *file, const char *name)" - * Called first for every opened file to allow opening files - * that are not included in fsdata(_custom).c - * - "void fs_close_custom(struct fs_file *file)" - * Called to free resources allocated by fs_open_custom(). - */ -#ifndef LWIP_HTTPD_CUSTOM_FILES -#define LWIP_HTTPD_CUSTOM_FILES 0 -#endif - -/** Set this to 1 to include an application state argument per file - * that is opened. This allows to keep a state per connection/file. - */ -#ifndef LWIP_HTTPD_FILE_STATE -#define LWIP_HTTPD_FILE_STATE 0 -#endif - -/** HTTPD_PRECALCULATED_CHECKSUM==1: include precompiled checksums for - * predefined (MSS-sized) chunks of the files to prevent having to calculate - * the checksums at runtime. */ -#ifndef HTTPD_PRECALCULATED_CHECKSUM -#define HTTPD_PRECALCULATED_CHECKSUM 0 -#endif - -#if HTTPD_PRECALCULATED_CHECKSUM -struct fsdata_chksum { - u32_t offset; - u16_t chksum; - u16_t len; -}; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ - -struct fs_file { - const char *data; - int len; - int index; - void *pextension; -#if HTTPD_PRECALCULATED_CHECKSUM - const struct fsdata_chksum *chksum; - u16_t chksum_count; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ - u8_t http_header_included; -#if LWIP_HTTPD_CUSTOM_FILES - u8_t is_custom_file; -#endif /* LWIP_HTTPD_CUSTOM_FILES */ -#if LWIP_HTTPD_FILE_STATE - void *state; -#endif /* LWIP_HTTPD_FILE_STATE */ -}; - -struct fs_file *fs_open(const char *name); -void fs_close(struct fs_file *file); -int fs_read(struct fs_file *file, char *buffer, int count); -int fs_bytes_left(struct fs_file *file); - -#if LWIP_HTTPD_FILE_STATE -/** This user-defined function is called when a file is opened. */ -void *fs_state_init(struct fs_file *file, const char *name); -/** This user-defined function is called when a file is closed. */ -void fs_state_free(struct fs_file *file, void *state); -#endif /* #if LWIP_HTTPD_FILE_STATE */ - -#endif /* __FS_H__ */ diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c deleted file mode 100644 index f2ddfd935..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.c +++ /dev/null @@ -1,2068 +0,0 @@ -#include "fs.h" -#include "lwip/def.h" -#include "fsdata.h" - - -#define file_NULL (struct fsdata_file *) NULL - - -static const unsigned int dummy_align__404_html = 0; -static const unsigned char data__404_html[] = { -/* /404.html (10 chars) */ -0x2f,0x34,0x30,0x34,0x2e,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 404 File not found -" (29 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x34,0x30,0x34,0x20,0x46,0x69,0x6c, -0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x0d,0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html - -" (27 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x0d,0x0a, -/* raw file data (544 bytes) */ -0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0a,0x3c,0x68,0x65,0x61,0x64,0x3e,0x3c,0x74,0x69, -0x74,0x6c,0x65,0x3e,0x6c,0x77,0x49,0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67, -0x68,0x74,0x77,0x65,0x69,0x67,0x68,0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20, -0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x3c,0x2f,0x68, -0x65,0x61,0x64,0x3e,0x0a,0x3c,0x62,0x6f,0x64,0x79,0x20,0x62,0x67,0x63,0x6f,0x6c, -0x6f,0x72,0x3d,0x22,0x77,0x68,0x69,0x74,0x65,0x22,0x20,0x74,0x65,0x78,0x74,0x3d, -0x22,0x62,0x6c,0x61,0x63,0x6b,0x22,0x3e,0x0a,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x61,0x62,0x6c,0x65,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x31,0x30,0x30,0x25, -0x22,0x3e,0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x74,0x72,0x20,0x76,0x61,0x6c, -0x69,0x67,0x6e,0x3d,0x22,0x74,0x6f,0x70,0x22,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69, -0x64,0x74,0x68,0x3d,0x22,0x38,0x30,0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20, -0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f, -0x77,0x77,0x77,0x2e,0x73,0x69,0x63,0x73,0x2e,0x73,0x65,0x2f,0x22,0x3e,0x3c,0x69, -0x6d,0x67,0x20,0x73,0x72,0x63,0x3d,0x22,0x2f,0x69,0x6d,0x67,0x2f,0x73,0x69,0x63, -0x73,0x2e,0x67,0x69,0x66,0x22,0x0a,0x09,0x20,0x20,0x62,0x6f,0x72,0x64,0x65,0x72, -0x3d,0x22,0x30,0x22,0x20,0x61,0x6c,0x74,0x3d,0x22,0x53,0x49,0x43,0x53,0x20,0x6c, -0x6f,0x67,0x6f,0x22,0x20,0x74,0x69,0x74,0x6c,0x65,0x3d,0x22,0x53,0x49,0x43,0x53, -0x20,0x6c,0x6f,0x67,0x6f,0x22,0x3e,0x3c,0x2f,0x61,0x3e,0x0a,0x09,0x3c,0x2f,0x74, -0x64,0x3e,0x3c,0x74,0x64,0x20,0x77,0x69,0x64,0x74,0x68,0x3d,0x22,0x35,0x30,0x30, -0x22,0x3e,0x09,0x20,0x20,0x0a,0x09,0x20,0x20,0x3c,0x68,0x31,0x3e,0x6c,0x77,0x49, -0x50,0x20,0x2d,0x20,0x41,0x20,0x4c,0x69,0x67,0x68,0x74,0x77,0x65,0x69,0x67,0x68, -0x74,0x20,0x54,0x43,0x50,0x2f,0x49,0x50,0x20,0x53,0x74,0x61,0x63,0x6b,0x3c,0x2f, -0x68,0x31,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x68,0x32,0x3e,0x34,0x30,0x34,0x20,0x2d, -0x20,0x50,0x61,0x67,0x65,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e,0x64,0x3c, -0x2f,0x68,0x32,0x3e,0x0a,0x09,0x20,0x20,0x3c,0x70,0x3e,0x0a,0x09,0x20,0x20,0x20, -0x20,0x53,0x6f,0x72,0x72,0x79,0x2c,0x20,0x74,0x68,0x65,0x20,0x70,0x61,0x67,0x65, -0x20,0x79,0x6f,0x75,0x20,0x61,0x72,0x65,0x20,0x72,0x65,0x71,0x75,0x65,0x73,0x74, -0x69,0x6e,0x67,0x20,0x77,0x61,0x73,0x20,0x6e,0x6f,0x74,0x20,0x66,0x6f,0x75,0x6e, -0x64,0x20,0x6f,0x6e,0x20,0x74,0x68,0x69,0x73,0x0a,0x09,0x20,0x20,0x20,0x20,0x73, -0x65,0x72,0x76,0x65,0x72,0x2e,0x20,0x0a,0x09,0x20,0x20,0x3c,0x2f,0x70,0x3e,0x0a, -0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x74,0x64,0x3e,0x0a,0x09,0x20,0x20,0x26,0x6e, -0x62,0x73,0x70,0x3b,0x0a,0x09,0x3c,0x2f,0x74,0x64,0x3e,0x3c,0x2f,0x74,0x72,0x3e, -0x0a,0x20,0x20,0x20,0x20,0x20,0x20,0x3c,0x2f,0x74,0x61,0x62,0x6c,0x65,0x3e,0x0a, -0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0a,0x3c,0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0a, -}; - -static const unsigned int dummy_align__index_shtml = 1; -static const unsigned char data__index_shtml[] = { -/* /index.shtml (13 chars) */ -0x2f,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html -Expires: Fri, 10 Apr 2008 14:00:00 GMT -Pragma: no-cache - -" (85 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73, -0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30, -0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d, -0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68, -0x65,0x0d,0x0a,0x0d,0x0a, -/* raw file data (762 bytes) */ -0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50, -0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44, -0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61, -0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, -0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65, -0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72, -0x67,0x20,0x6c,0x77,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65, -0x72,0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f, -0x44,0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f, -0x77,0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75, -0x6f,0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66, -0x3d,0x27,0x69,0x6e,0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27,0x26,0x71, -0x75,0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a,0x3c,0x66, -0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61,0x6c,0x22, -0x3e,0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e,0x64,0x65, -0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20,0x53,0x74, -0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e, -0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74,0x69,0x6d, -0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54,0x69,0x6d, -0x65,0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c, -0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x68,0x74, -0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x66,0x72,0x65,0x65,0x72,0x74,0x6f, -0x73,0x2e,0x6f,0x72,0x67,0x2f,0x22,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53, -0x20,0x48,0x6f,0x6d,0x65,0x70,0x61,0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62, -0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22, -0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20,0x6a,0x70, -0x67,0x3c,0x2f,0x61,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a, -0x3c,0x68,0x72,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c, -0x68,0x32,0x3e,0x54,0x61,0x73,0x6b,0x20,0x73,0x74,0x61,0x74,0x69,0x73,0x74,0x69, -0x63,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0d,0x0a,0x50,0x61,0x67,0x65,0x20,0x77,0x69, -0x6c,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68,0x20,0x65,0x76,0x65,0x72,0x79, -0x20,0x32,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73,0x2e,0x3c,0x70,0x3e,0x0d,0x0a, -0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x63,0x6f,0x75,0x72, -0x69,0x65,0x72,0x22,0x3e,0x3c,0x70,0x72,0x65,0x3e,0x54,0x61,0x73,0x6b,0x20,0x20, -0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x53,0x74,0x61,0x74,0x65,0x20,0x20,0x50, -0x72,0x69,0x6f,0x72,0x69,0x74,0x79,0x20,0x20,0x53,0x74,0x61,0x63,0x6b,0x09,0x23, -0x3c,0x62,0x72,0x3e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x3c,0x62,0x72,0x3e,0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72, -0x74,0x6f,0x73,0x5f,0x73,0x74,0x61,0x74,0x73,0x2d,0x2d,0x3e,0x0d,0x0a,0x3c,0x2f, -0x70,0x72,0x65,0x3e,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66, -0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c, -0x2f,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,}; - -static const unsigned int dummy_align__logo_jpg = 2; -static const unsigned char data__logo_jpg[] = { -/* /logo.jpg (10 chars) */ -0x2f,0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x00,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: image/jpeg - -" (28 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x69,0x6d, -0x61,0x67,0x65,0x2f,0x6a,0x70,0x65,0x67,0x0d,0x0a,0x0d,0x0a, -/* raw file data (28602 bytes) */ -0xff,0xd8,0xff,0xe0,0x00,0x10,0x4a,0x46,0x49,0x46,0x00,0x01,0x01,0x00,0x00,0x01, -0x00,0x01,0x00,0x00,0xff,0xdb,0x00,0x43,0x00,0x03,0x02,0x02,0x03,0x02,0x02,0x03, -0x03,0x03,0x03,0x04,0x03,0x03,0x04,0x05,0x08,0x05,0x05,0x04,0x04,0x05,0x0a,0x07, -0x07,0x06,0x08,0x0c,0x0a,0x0c,0x0c,0x0b,0x0a,0x0b,0x0b,0x0d,0x0e,0x12,0x10,0x0d, -0x0e,0x11,0x0e,0x0b,0x0b,0x10,0x16,0x10,0x11,0x13,0x14,0x15,0x15,0x15,0x0c,0x0f, -0x17,0x18,0x16,0x14,0x18,0x12,0x14,0x15,0x14,0xff,0xdb,0x00,0x43,0x01,0x03,0x04, -0x04,0x05,0x04,0x05,0x09,0x05,0x05,0x09,0x14,0x0d,0x0b,0x0d,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14, -0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0xff,0xc0, -0x00,0x11,0x08,0x00,0xea,0x02,0x71,0x03,0x01,0x22,0x00,0x02,0x11,0x01,0x03,0x11, -0x01,0xff,0xc4,0x00,0x1f,0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00, -0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09, -0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x10,0x00,0x02,0x01,0x03,0x03,0x02,0x04,0x03,0x05, -0x05,0x04,0x04,0x00,0x00,0x01,0x7d,0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21, -0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08,0x23, -0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,0x17, -0x18,0x19,0x1a,0x25,0x26,0x27,0x28,0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,0x3a, -0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a, -0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a, -0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99, -0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7, -0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5, -0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf1, -0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa,0xff,0xc4,0x00,0x1f,0x01,0x00,0x03, -0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01, -0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0a,0x0b,0xff,0xc4,0x00,0xb5,0x11,0x00, -0x02,0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77,0x00, -0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13, -0x22,0x32,0x81,0x08,0x14,0x42,0x91,0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,0x15, -0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26,0x27, -0x28,0x29,0x2a,0x35,0x36,0x37,0x38,0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49, -0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69, -0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87,0x88, -0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6, -0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4, -0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe2, -0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9, -0xfa,0xff,0xda,0x00,0x0c,0x03,0x01,0x00,0x02,0x11,0x03,0x11,0x00,0x3f,0x00,0xfd, -0x53,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa2,0x8a,0x28,0x00,0xa4,0x34,0x8e, -0x70,0x09,0xaf,0x0b,0xf1,0xbf,0xc6,0x4b,0x8f,0x13,0x78,0xc2,0xdb,0xc1,0x7e,0x0f, -0xb8,0x2b,0x24,0x93,0x08,0xae,0xf5,0x48,0x88,0x3b,0x47,0xf1,0x2c,0x7f,0x4e,0x72, -0xdf,0x97,0xad,0x72,0x62,0x71,0x54,0xf0,0xb1,0xe6,0x9e,0xef,0x44,0xba,0xb6,0x73, -0x57,0xc4,0x43,0x0e,0x93,0x9e,0xef,0x44,0xba,0xb6,0x77,0xbe,0x3b,0xf8,0xb9,0xa1, -0xf8,0x16,0x39,0x23,0x9d,0xe4,0xd4,0x35,0x05,0x1c,0x58,0x59,0x2e,0xf9,0x3d,0xb7, -0x76,0x51,0xf5,0xfc,0x8d,0x78,0x07,0x8a,0xff,0x00,0x69,0x3f,0x1b,0x6a,0xb3,0x3a, -0x69,0x3a,0x7f,0xf6,0x2d,0xb7,0xf0,0x81,0x09,0x96,0x5f,0xc5,0x98,0x63,0xf2,0x15, -0xf4,0xde,0x83,0xe0,0xdd,0x27,0xc3,0xf6,0x62,0x0b,0x6b,0x38,0xc9,0x3f,0x33,0xcb, -0x20,0xde,0xf2,0x37,0x76,0x66,0x3c,0x92,0x6b,0x40,0xe9,0x16,0x47,0xad,0x9c,0x1f, -0xf7,0xec,0x57,0x9d,0x88,0xc2,0xe3,0x31,0x2b,0xf8,0xbc,0x8b,0xb2,0x5f,0xad,0xce, -0x3c,0x46,0x1b,0x13,0x88,0x56,0x8d,0x5e,0x45,0xe4,0xbf,0x53,0xe0,0x8d,0x4f,0xc6, -0xfe,0x33,0xd5,0x18,0x9b,0xcd,0x5f,0x56,0x90,0x93,0x9c,0x19,0xa4,0x0b,0xf9,0x0e, -0x2b,0x35,0x75,0xff,0x00,0x10,0xc7,0x9c,0x6a,0x3a,0x82,0xfa,0xfe,0xfa,0x41,0xfd, -0x6b,0xf4,0x19,0xb4,0x2d,0x39,0xba,0xd8,0x5b,0x7f,0xdf,0xa1,0xfe,0x15,0x19,0xf0, -0xce,0x94,0xff,0x00,0x7b,0x4d,0xb5,0x3f,0xf6,0xc5,0x7f,0xc2,0xbc,0x79,0x64,0x15, -0xa4,0xef,0xed,0xaf,0xf2,0x7f,0xe6,0x78,0x72,0xc8,0x6a,0x49,0xdd,0xd7,0x7f,0xd7, -0xcc,0xf8,0x0d,0x3c,0x5f,0xe2,0x68,0x94,0x05,0xd6,0x35,0x45,0x03,0xa0,0x17,0x32, -0x0f,0xeb,0x53,0x27,0x8f,0xbc,0x59,0x11,0x25,0x75,0xfd,0x59,0x33,0xe9,0x77,0x28, -0xfe,0xb5,0xf7,0x8b,0x78,0x3b,0x44,0x7e,0xba,0x4d,0x99,0xff,0x00,0xb6,0x2b,0x51, -0x37,0x81,0x7c,0x3c,0xf9,0xce,0x8d,0x66,0x73,0xff,0x00,0x4c,0x56,0xa5,0x64,0x58, -0x85,0xb5,0x6f,0xcc,0x9f,0xec,0x2a,0xeb,0x6a,0xef,0xf1,0xff,0x00,0x33,0xe1,0x6f, -0xf8,0x59,0x3e,0x2f,0x5f,0xf9,0x98,0xb5,0x7f,0xfc,0x0c,0x93,0xfc,0x69,0xeb,0xf1, -0x4f,0xc6,0x51,0x9c,0xaf,0x89,0x35,0x5c,0xfb,0xdd,0x3f,0xf8,0xd7,0xdc,0x0d,0xf0, -0xf3,0xc3,0x6f,0xd7,0x44,0xb2,0x3f,0xf6,0xc8,0x54,0x4f,0xf0,0xcb,0xc2,0xaf,0xf7, -0xb4,0x2b,0x23,0xff,0x00,0x6c,0x85,0x2f,0xec,0x4c,0x5f,0xfc,0xfe,0xfc,0xc5,0xfd, -0x89,0x8a,0x5b,0x57,0x7f,0x89,0xf1,0x54,0x7f,0x17,0xfc,0x6b,0x1f,0xfc,0xcc,0x9a, -0x99,0xfa,0xdc,0x35,0x58,0x8b,0xe3,0x87,0x8e,0xe1,0x6c,0xaf,0x89,0x2f,0x73,0xd3, -0xe6,0x21,0x87,0xe4,0x45,0x7d,0x8e,0xff,0x00,0x09,0x7c,0x20,0xfd,0x74,0x0b,0x3f, -0xc2,0x3c,0x54,0x2f,0xf0,0x6b,0xc1,0xaf,0xd7,0x41,0xb5,0x1f,0x45,0xa4,0xb2,0x7c, -0x72,0xda,0xb7,0xe2,0xc7,0xfd,0x8f,0x8d,0x5b,0x62,0x1f,0xe2,0x7c,0x8a,0x9f,0x1f, -0xbc,0x7e,0x83,0x1f,0xf0,0x91,0x5c,0x7d,0x4c,0x71,0x9f,0xfd,0x96,0xa6,0x1f,0xb4, -0x37,0x8f,0xc7,0xfc,0xcc,0x12,0xfe,0x30,0x45,0xff,0x00,0xc4,0x57,0xd5,0xaf,0xf0, -0x43,0xc1,0x4e,0x0f,0xfc,0x48,0xa0,0x1f,0x4a,0x89,0xbe,0x03,0xf8,0x21,0xf3,0xff, -0x00,0x12,0x48,0x86,0x7d,0x09,0xa7,0xfd,0x95,0x98,0xad,0xab,0x7e,0x2c,0x3f,0xb2, -0xb3,0x15,0xb6,0x21,0xfd,0xec,0xf9,0x69,0x7f,0x68,0xaf,0x1f,0x8f,0xf9,0x8f,0x39, -0xfa,0xdb,0xc5,0xff,0x00,0xc4,0xd4,0x89,0xfb,0x48,0x78,0xf9,0x08,0x3f,0xdb,0x59, -0xc7,0xad,0xb4,0x47,0xff,0x00,0x65,0xaf,0xa6,0x9f,0xf6,0x7d,0xf0,0x33,0x8e,0x74, -0x75,0x1e,0xe1,0x8d,0x42,0xff,0x00,0xb3,0x9f,0x81,0x9c,0x7f,0xc8,0x2d,0x97,0xe9, -0x21,0xa3,0xfb,0x33,0x34,0x5b,0x56,0xff,0x00,0xc9,0x98,0xbf,0xb3,0x33,0x35,0xb5, -0x7f,0xc5,0x9f,0x39,0xc7,0xfb,0x4d,0xf8,0xf1,0x17,0x07,0x52,0x85,0xcf,0xab,0x5a, -0xa6,0x7f,0x95,0x58,0x4f,0xda,0x9b,0xc7,0x49,0x8f,0xf4,0x9b,0x36,0xc7,0xad,0xaa, -0xf3,0xfa,0xd7,0xbe,0xbf,0xec,0xd5,0xe0,0x86,0xc9,0x16,0x32,0xaf,0xd2,0x43,0x50, -0x3f,0xec,0xc5,0xe0,0xa6,0xe9,0x6f,0x3a,0xff,0x00,0xdb,0x4a,0x5f,0xd9,0xf9,0xb2, -0xda,0xaf,0xfe,0x4c,0xc3,0xfb,0x3f,0x36,0x5b,0x57,0xfc,0x59,0xe2,0x0b,0xfb,0x57, -0x78,0xdd,0x7a,0x9d,0x39,0xbe,0xb6,0xc7,0xfa,0x35,0x3d,0x7f,0x6b,0x0f,0x1a,0x82, -0x32,0x9a,0x61,0xff,0x00,0xb7,0x66,0xff,0x00,0xe2,0xeb,0xd9,0xdb,0xf6,0x5a,0xf0, -0x63,0x0e,0x12,0xe5,0x7f,0xed,0xa5,0x42,0xff,0x00,0xb2,0xa7,0x83,0xcf,0x47,0xbb, -0x5f,0xfb,0x69,0x43,0xc1,0xe7,0x0b,0x6a,0x9f,0xf9,0x30,0x7d,0x4b,0x37,0x5b,0x56, -0xfc,0x4f,0x23,0x5f,0xda,0xd7,0xc6,0x43,0xad,0xbe,0x96,0xdf,0xf6,0xc1,0xff,0x00, -0xf8,0xba,0x91,0x3f,0x6b,0x8f,0x16,0x82,0x37,0x59,0x69,0x6d,0xeb,0xfb,0xa7,0xff, -0x00,0xe2,0xeb,0xd4,0x24,0xfd,0x93,0xbc,0x2a,0xd8,0xdb,0x75,0x78,0xbf,0xf0,0x20, -0x6a,0x07,0xfd,0x92,0x3c,0x34,0x73,0x8b,0xfb,0xb5,0xf4,0xe9,0x4b,0xea,0xb9,0xca, -0xfb,0x7f,0x88,0x7d,0x53,0x39,0x5b,0x55,0xfc,0x4f,0x3d,0x8b,0xf6,0xbe,0xf1,0x32, -0xe7,0xcc,0xd2,0xb4,0xc7,0xf4,0xc2,0xc8,0x3f,0xf6,0x6a,0xb0,0x9f,0xb6,0x16,0xbc, -0x31,0xbb,0x43,0xd3,0x5b,0xd7,0x0d,0x20,0xfe,0xb5,0xda,0xc9,0xfb,0x22,0xe8,0x19, -0xf9,0x75,0x3b,0xa0,0x3d,0xd4,0x54,0x0f,0xfb,0x21,0x68,0xe4,0x7c,0xba,0xbd,0xcf, -0xe2,0x82,0x9f,0xb1,0xce,0x97,0xda,0xfc,0x50,0x7b,0x0c,0xe9,0x7d,0xbf,0xc8,0xe6, -0x07,0xed,0x89,0xaa,0xf7,0xf0,0xf5,0x99,0xfa,0x4e,0xdf,0xe1,0x4f,0x5f,0xdb,0x1b, -0x50,0x1f,0x7b,0xc3,0x96,0xa7,0xe9,0x72,0xdf,0xfc,0x4d,0x6f,0x3f,0xec,0x7f,0xa6, -0x1c,0xed,0xd6,0xe7,0x5f,0xac,0x60,0xd4,0x12,0x7e,0xc7,0xb6,0x99,0x1b,0x35,0xd9, -0x31,0xef,0x17,0xff,0x00,0x5e,0x8e,0x4c,0xed,0x75,0xfc,0x85,0xec,0xf3,0xb5,0xf6, -0xbf,0x23,0x35,0x7f,0x6c,0x7b,0xc3,0xf7,0xbc,0x35,0x01,0x1e,0xd7,0x67,0xff,0x00, -0x89,0xa9,0x93,0xf6,0xc8,0x70,0x06,0xef,0x0b,0xa9,0x3d,0xf1,0x7b,0xff,0x00,0xd8, -0x54,0xaf,0xfb,0x1e,0xa0,0x5f,0x97,0x5d,0xe7,0xde,0x2a,0x85,0xbf,0x63,0xe9,0x32, -0x76,0xeb,0xa9,0xed,0x98,0x8d,0x2f,0xf8,0x5b,0x5d,0xff,0x00,0xf2,0x50,0xb6,0x76, -0xba,0xfe,0x44,0xeb,0xfb,0x64,0xc4,0x7e,0xf7,0x85,0xdf,0x1e,0xd7,0xa3,0xff,0x00, -0x8d,0xd4,0xcb,0xfb,0x63,0xda,0x63,0xe6,0xf0,0xcc,0xc0,0xfb,0x5e,0x03,0xff,0x00, -0xb2,0x56,0x63,0xfe,0xc7,0xd7,0x7d,0xb5,0xc8,0x4f,0xd5,0x0d,0x40,0xff,0x00,0xb2, -0x06,0xa6,0x01,0xdb,0xad,0x5b,0x13,0xee,0x84,0x53,0xf6,0x99,0xda,0xe8,0xfe,0xe8, -0x87,0x3e,0x78,0xbf,0xa4,0x6f,0x27,0xed,0x8b,0xa7,0x13,0xcf,0x87,0x2e,0x40,0xff, -0x00,0xaf,0x95,0x3f,0xfb,0x2d,0x48,0x3f,0x6c,0x3d,0x27,0x1f,0x37,0x87,0xaf,0x01, -0xf6,0x9d,0x0f,0xf4,0xae,0x59,0xbf,0x64,0x2d,0x68,0x1e,0x35,0x6b,0x53,0xef,0x83, -0x50,0x37,0xec,0x8d,0xe2,0x11,0xf7,0x75,0x0b,0x46,0xfc,0x4d,0x4f,0xb7,0xce,0x97, -0xd9,0x7f,0x72,0x17,0xb5,0xce,0xd7,0xd9,0xfc,0x11,0xdd,0x45,0xfb,0x5f,0xf8,0x74, -0xb7,0xcf,0xa3,0x6a,0x4a,0x3d,0x54,0xc6,0x7f,0xf6,0x6a,0xb3,0x1f,0xed,0x75,0xe1, -0x36,0x5c,0xbe,0x9b,0xab,0x2b,0x7a,0x08,0xe3,0x3f,0xfb,0x3d,0x79,0xb4,0x9f,0xb2, -0x67,0x89,0x54,0x1c,0x5e,0x5a,0x13,0xfe,0xf1,0xa8,0x1b,0xf6,0x50,0xf1,0x5f,0x69, -0xad,0x1b,0xfe,0x07,0x42,0xc5,0x67,0x0b,0xec,0x3f,0xb9,0x0f,0xeb,0x39,0xd2,0xfb, -0x1f,0x82,0x3d,0x54,0x7e,0xd6,0xfe,0x0e,0xce,0x0d,0x96,0xae,0x07,0xaf,0x93,0x1f, -0xff,0x00,0x17,0x4f,0x1f,0xb5,0xaf,0x83,0x31,0xff,0x00,0x1e,0xba,0xb7,0xfd,0xf8, -0x4f,0xfe,0x2e,0xbc,0x85,0xbf,0x65,0x4f,0x18,0x0f,0xbb,0xf6,0x46,0xff,0x00,0xb6, -0xb5,0x03,0xfe,0xcb,0xbe,0x34,0x4c,0xe2,0x0b,0x76,0x03,0xd2,0x51,0x43,0xc7,0x66, -0xeb,0x7a,0x7f,0xf9,0x28,0x7d,0x73,0x39,0x5f,0xf2,0xeb,0xf0,0x3d,0xa9,0x7f,0x6a, -0xff,0x00,0x05,0x36,0x3f,0x75,0xa9,0xaf,0xd6,0xdd,0x7f,0xf8,0xaa,0x91,0x7f,0x6a, -0xaf,0x04,0x11,0xc9,0xd4,0x53,0xeb,0x6c,0x3f,0xf8,0xaa,0xf0,0xb6,0xfd,0x99,0x7c, -0x6c,0xbd,0x2c,0xe2,0x3f,0x49,0x45,0x42,0xff,0x00,0xb3,0x67,0x8d,0xd4,0x7f,0xc8, -0x3d,0x4f,0xd1,0xc5,0x2f,0xed,0x1c,0xd5,0x7f,0xcb,0xbf,0xfc,0x95,0x8b,0xeb,0xf9, -0xba,0xff,0x00,0x97,0x5f,0x87,0xfc,0x13,0xe8,0x48,0xbf,0x69,0xef,0x01,0xc8,0xe0, -0x1b,0xeb,0xa8,0xc1,0xfe,0x26,0xb5,0x6c,0x0f,0xca,0xad,0x2f,0xed,0x27,0xf0,0xfd, -0x81,0x3f,0xdb,0x2e,0xbe,0xc6,0xd6,0x5f,0xfe,0x26,0xbe,0x6b,0x6f,0xd9,0xd7,0xc7, -0x0a,0x78,0xd2,0xc9,0xc7,0xa3,0x8a,0x81,0xff,0x00,0x67,0xef,0x1c,0xa9,0xff,0x00, -0x90,0x34,0x87,0xe8,0xc0,0xff,0x00,0x5a,0x7f,0xda,0x99,0x9c,0x77,0xa5,0xff,0x00, -0x92,0xb0,0xfe,0xd2,0xcd,0x56,0xf4,0x7f,0x06,0x7d,0x42,0x3f,0x68,0x9f,0x87,0xcd, -0xff,0x00,0x33,0x02,0x8f,0xad,0xb4,0xdf,0xfc,0x45,0x38,0x7e,0xd0,0x9f,0x0f,0xcf, -0x4f,0x11,0x47,0xff,0x00,0x80,0xf2,0x8f,0xfd,0x92,0xbe,0x55,0x6f,0x81,0x3e,0x37, -0x43,0xce,0x89,0x37,0xe1,0x51,0x3f,0xc1,0x4f,0x1a,0x27,0x5d,0x0e,0xe7,0x8f,0x6a, -0x6f,0x38,0xcc,0x16,0xf4,0xbf,0xf2,0x59,0x07,0xf6,0xae,0x64,0xb7,0xa1,0xf8,0x3f, -0xf3,0x3e,0xb2,0x1f,0x1f,0xfc,0x00,0xd8,0xff,0x00,0x8a,0x8e,0x1e,0x7d,0x62,0x93, -0xff,0x00,0x89,0xa9,0xd3,0xe3,0xaf,0x80,0xdc,0x64,0x78,0x92,0xd4,0x7d,0x43,0x8f, -0xe9,0x5f,0x1f,0xbf,0xc1,0xff,0x00,0x18,0xa0,0xe7,0x42,0xba,0xe7,0xfd,0x9a,0x85, -0xbe,0x14,0xf8,0xb9,0x3a,0xe8,0x77,0x7f,0xf7,0xc5,0x2f,0xed,0xac,0x72,0xff,0x00, -0x97,0x4b,0xee,0x62,0xfe,0xd8,0xc7,0xad,0xe8,0x7e,0x0c,0xfb,0x3d,0x3e,0x32,0xf8, -0x21,0xc0,0xc7,0x89,0xb4,0xfe,0x7d,0x65,0xc5,0x48,0x9f,0x17,0x7c,0x14,0xf9,0xc7, -0x89,0xf4,0xce,0x3d,0x6e,0x14,0x57,0xc4,0xef,0xf0,0xd3,0xc5,0x51,0x9f,0x9b,0x44, -0xbd,0x1f,0xf6,0xc8,0xd4,0x0d,0xe0,0x0f,0x12,0x27,0x5d,0x1e,0xf0,0x7f,0xdb,0x23, -0x47,0xf6,0xee,0x29,0x6f,0x49,0x7e,0x23,0xfe,0xdb,0xc6,0x2d,0xe8,0x7e,0x67,0xdc, -0x63,0xe2,0xbf,0x83,0x4f,0x4f,0x13,0xe9,0x7f,0xf8,0x16,0x9f,0xe3,0x52,0x2f,0xc4, -0xef,0x09,0x36,0x71,0xe2,0x5d,0x2f,0x8f,0xfa,0x7b,0x4f,0xf1,0xaf,0x85,0x1b,0xc1, -0x5e,0x20,0x5e,0xba,0x55,0xd0,0xff,0x00,0xb6,0x46,0xa2,0x6f,0x0a,0x6b,0x69,0xd7, -0x4c,0xba,0x1f,0xf6,0xc8,0xd1,0xfd,0xbf,0x89,0xeb,0x49,0x7e,0x22,0xfe,0xdd,0xc5, -0x2d,0xe8,0x7e,0x67,0xde,0xc9,0xf1,0x07,0xc2,0xf2,0x80,0x57,0xc4,0x3a,0x59,0x07, -0xa7,0xfa,0x64,0x7f,0xe3,0x56,0x13,0xc6,0x5a,0x04,0x9f,0x77,0x5a,0xd3,0x9b,0x1e, -0x97,0x49,0xfe,0x35,0xf9,0xfa,0xde,0x1c,0xd5,0xd7,0xae,0x9f,0x72,0x3f,0xed,0x91, -0xa8,0xce,0x89,0xa9,0x27,0x06,0xca,0xe0,0x7d,0x63,0x34,0xd7,0x10,0xd6,0x5b,0xd3, -0x5f,0x8f,0xf9,0x0f,0xfb,0x7e,0xbf,0x5a,0x1f,0x99,0xfa,0x1a,0x9e,0x23,0xd2,0x64, -0x50,0x57,0x54,0xb3,0x60,0x7a,0x62,0xe1,0x3f,0xc6,0x9f,0xfd,0xbb,0xa6,0x9e,0x9a, -0x8d,0xa9,0xff,0x00,0xb6,0xeb,0xfe,0x35,0xf9,0xd8,0x74,0xbb,0xe1,0xd6,0xd6,0x61, -0xff,0x00,0x00,0x34,0xc3,0x61,0x78,0xbd,0x60,0x90,0x7d,0x54,0xd3,0xff,0x00,0x58, -0xe7,0xd6,0x97,0xe3,0xff,0x00,0x00,0x7f,0xeb,0x0d,0x45,0xff,0x00,0x2e,0x7f,0x1f, -0xf8,0x07,0xe8,0xca,0x6a,0xf6,0x2e,0x32,0x2f,0x2d,0xd8,0x7a,0x89,0x54,0xff,0x00, -0x5a,0x78,0xd4,0x6d,0x49,0xe2,0xe6,0x03,0xf4,0x90,0x7f,0x8d,0x7e,0x71,0x7d,0x9e, -0xed,0x7f,0xe5,0x9c,0xa3,0xf0,0x34,0xb9,0xbb,0x43,0xff,0x00,0x2d,0x47,0xe7,0x47, -0xfa,0xc7,0x2f,0xf9,0xf5,0xf8,0xff,0x00,0xc0,0x0f,0xf5,0x8a,0x56,0xd6,0x8b,0xfb, -0xff,0x00,0xe0,0x1f,0xa4,0x0b,0x75,0x13,0x8c,0xac,0xa8,0xc3,0xd4,0x30,0x34,0xf1, -0x20,0x3d,0xc1,0xfc,0x6b,0xf3,0x78,0x5e,0x5e,0xa7,0x49,0x66,0x51,0xec,0xcd,0x53, -0x2e,0xb5,0xaa,0xc6,0xc0,0xad,0xf5,0xda,0x9f,0x51,0x33,0x83,0xfc,0xea,0xd7,0x11, -0xf7,0xa5,0xf8,0xff,0x00,0xc0,0x29,0x71,0x1a,0xeb,0x49,0xfd,0xff,0x00,0xf0,0x0f, -0xd1,0xb0,0xc3,0xd6,0x97,0x75,0x7e,0x74,0x0f,0x13,0x6b,0x4a,0x30,0x35,0x4b,0xe5, -0xfa,0x5c,0x3f,0xf8,0xd2,0x8f,0x16,0x6b,0x8a,0x72,0x35,0x7d,0x40,0x1f,0xfa,0xfa, -0x93,0xfc,0x6a,0xff,0x00,0xd6,0x38,0xff,0x00,0xcf,0xbf,0xc7,0xfe,0x00,0xff,0x00, -0xd6,0x48,0x75,0xa4,0xfe,0xf3,0xf4,0x58,0x36,0x69,0x6b,0xf3,0xb1,0x7c,0x6b,0xe2, -0x04,0x04,0x0d,0x6b,0x51,0x1f,0xf6,0xf5,0x27,0xf8,0xd5,0x88,0xfe,0x23,0x78,0xa2, -0x10,0x36,0x78,0x83,0x54,0x5c,0x70,0x31,0x79,0x27,0xf8,0xd3,0x5c,0x45,0x0e,0xb4, -0xdf,0xde,0x52,0xe2,0x4a,0x5d,0x69,0xb3,0xf4,0x32,0x8a,0xfc,0xf9,0x5f,0x8a,0x5e, -0x2e,0x41,0x81,0xe2,0x4d,0x54,0x0f,0xfa,0xfb,0x73,0xfd,0x6a,0xc2,0x7c,0x62,0xf1, -0xaa,0x63,0x1e,0x26,0xd4,0xb8,0xe9,0xfb,0xf2,0x6a,0xd7,0x11,0x52,0xeb,0x4d,0xfe, -0x05,0x7f,0xac,0x94,0x3a,0xc1,0xfe,0x07,0xdf,0xd4,0x57,0xc0,0xa3,0xe3,0x57,0x8d, -0xd7,0xfe,0x66,0x6d,0x43,0xf1,0x97,0xff,0x00,0xad,0x4f,0x4f,0x8d,0xfe,0x38,0x5c, -0x7f,0xc5,0x4b,0x7c,0x71,0xea,0xe0,0xff,0x00,0x4a,0xaf,0xf5,0x8a,0x87,0xf2,0x3f, -0xc0,0xaf,0xf5,0x8f,0x0d,0xfc,0x8f,0xf0,0x3e,0xf7,0xa2,0xbe,0x0c,0x5f,0x8e,0xde, -0x3a,0x5e,0x9e,0x24,0xbc,0xfc,0x76,0x9f,0xe9,0x56,0x53,0xf6,0x84,0xf1,0xea,0x63, -0xfe,0x2a,0x19,0x8e,0x3d,0x61,0x8c,0xff,0x00,0xec,0xb4,0xd7,0x11,0x61,0xdf,0xd8, -0x97,0xe1,0xfe,0x65,0x2e,0x22,0xc2,0xf5,0x8c,0xbf,0x0f,0xf3,0x3e,0xea,0xa2,0xbe, -0x1c,0x8b,0xf6,0x8e,0xf1,0xf4,0x44,0x9f,0xed,0xc2,0xd9,0xfe,0xf5,0xbc,0x47,0xff, -0x00,0x65,0xab,0xf6,0x3f,0xb5,0x17,0x8e,0xed,0x26,0x57,0x96,0xee,0xd2,0xed,0x07, -0x54,0x9a,0xd5,0x40,0x3f,0xf7,0xce,0x0d,0x68,0xb8,0x83,0x0a,0xf7,0x4f,0xf0,0xff, -0x00,0x32,0xd7,0x10,0xe0,0xde,0xe9,0xaf,0x97,0xfc,0x13,0xed,0x4a,0x2b,0xe6,0x2f, -0x0c,0xfe,0xd8,0x52,0x06,0x58,0xfc,0x41,0xa1,0x86,0x5e,0xf3,0xe9,0xcf,0x83,0xed, -0xf2,0x39,0xff,0x00,0xd9,0xab,0xda,0xbc,0x15,0xf1,0x6f,0xc2,0xfe,0x3f,0x5d,0xba, -0x46,0xa9,0x1c,0x97,0x40,0x65,0xad,0x26,0xfd,0xdc,0xcb,0xff,0x00,0x01,0x3d,0x7e, -0xa3,0x22,0xbd,0x6c,0x3e,0x63,0x86,0xc4,0xe9,0x4e,0x7a,0xf6,0xd9,0x9e,0xa6,0x1f, -0x32,0xc2,0xe2,0x9d,0xa9,0xcd,0x5f,0xb6,0xcc,0xec,0xe8,0xa6,0xa9,0xcd,0x3a,0xbd, -0x13,0xd3,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x28,0xa2,0x80,0x0a,0x42, -0x69,0x6a,0xbd,0xe5,0xd4,0x56,0x56,0xd3,0x5c,0x4f,0x22,0xc5,0x04,0x48,0x5d,0xdd, -0xce,0x02,0xa8,0x19,0x24,0x9a,0x4f,0x45,0x71,0x37,0x65,0x76,0x78,0x6f,0xed,0x35, -0xf1,0x65,0xfc,0x33,0xa6,0x2f,0x86,0xb4,0xb9,0xb6,0x6a,0x57,0xd1,0xee,0xb8,0x95, -0x1b,0x0d,0x0c,0x3d,0x30,0x3d,0x0b,0x72,0x3e,0x80,0xfa,0x8a,0xe4,0xbf,0x64,0xbf, -0x08,0xfd,0xa7,0x55,0xbe,0xd7,0x66,0x43,0xb6,0xdd,0x7c,0xa8,0x8f,0x6d,0xc7,0xad, -0x78,0x9f,0x8c,0xbc,0x4d,0x71,0xe3,0x9f,0x17,0xea,0x3a,0xbc,0xdb,0x8b,0xde,0x4e, -0x5a,0x34,0x3d,0x51,0x33,0x84,0x5f,0xc0,0x00,0x2b,0xed,0x7f,0x82,0x9e,0x13,0x1e, -0x11,0xf8,0x7d,0xa6,0xdb,0x15,0xdb,0x3c,0xa9,0xe7,0xcb,0x91,0x83,0xb9,0xb9,0xaf, -0x89,0xc3,0x4e,0x59,0x96,0x64,0xea,0xbf,0x86,0x1b,0x7e,0x9f,0xe6,0x7c,0x56,0x0a, -0xa4,0xb3,0x3c,0xc1,0xd7,0x97,0xc3,0x0d,0xbf,0x4f,0xf3,0x3b,0xb0,0x31,0x4b,0x45, -0x15,0xf6,0xe7,0xdb,0x09,0x4b,0x45,0x14,0x00,0x53,0x43,0x83,0xd2,0x9d,0x5e,0x0f, -0xf1,0xcb,0xf6,0xdc,0xf8,0x3b,0xfb,0x3e,0x5c,0xc9,0x61,0xe2,0xaf,0x16,0xc2,0xfa, -0xda,0x02,0x7f,0xb1,0xf4,0xc4,0x6b,0xbb,0xa0,0x47,0x66,0x54,0xc8,0x8c,0x9e,0xde, -0x61,0x5c,0xd0,0x07,0xba,0x89,0x01,0x6d,0xbc,0xe7,0xdc,0x1a,0x7d,0x7e,0x71,0xeb, -0xdf,0xf0,0x5a,0xdf,0x00,0x5b,0xb3,0x0d,0x1b,0xe1,0xf7,0x89,0x2f,0x80,0xe8,0xd7, -0xd3,0xdb,0xdb,0xe7,0xf0,0x56,0x92,0xbe,0x9f,0xfd,0x94,0x7f,0x6a,0xb8,0xbf,0x69, -0x8f,0x85,0xfa,0xaf,0x8f,0x2e,0x7c,0x36,0xfe,0x0b,0xd0,0xac,0xae,0x64,0xb7,0x59, -0xef,0xef,0x92,0x44,0x91,0x63,0x40,0xd2,0xca,0x5b,0x6a,0x85,0x45,0xce,0x32,0x7d, -0x1b,0xa6,0x28,0x11,0xef,0xb4,0x57,0x17,0x6d,0xf1,0xb3,0xe1,0xe5,0xeb,0x2a,0xdb, -0xf8,0xf3,0xc3,0x33,0xb3,0x1c,0x05,0x8b,0x58,0xb7,0x62,0x4f,0xe0,0xf5,0xd9,0x83, -0x9e,0x94,0x0c,0x5a,0x2b,0x33,0x5f,0xf1,0x1e,0x9f,0xe1,0x7d,0x3d,0xaf,0xb5,0x3b, -0x91,0x6b,0x6a,0xac,0x14,0xb9,0x52,0xdc,0x93,0x80,0x30,0x01,0x35,0x81,0x17,0xc5, -0xff,0x00,0x07,0xcd,0xd3,0x5d,0x80,0x7f,0xbe,0xae,0xbf,0xcc,0x57,0x34,0xf1,0x34, -0x69,0x4b,0x96,0xa4,0xd2,0x7e,0x6d,0x22,0x1c,0xe1,0x17,0x66,0xd2,0x3b,0x1a,0x31, -0x5c,0xcc,0x7f,0x12,0xfc,0x2b,0x26,0x31,0xe2,0x0b,0x01,0x9f,0xef,0x4e,0xa3,0xf9, -0xd4,0xc3,0xe2,0x0f,0x86,0x0f,0x4f,0x10,0xe9,0x9f,0xf8,0x16,0x9f,0xe3,0x49,0x62, -0xb0,0xef,0x6a,0x8b,0xef,0x42,0xf6,0x90,0xfe,0x64,0x74,0x34,0x56,0x12,0xf8,0xe7, -0xc3,0x8e,0x78,0xd7,0xf4,0xc3,0xff,0x00,0x6f,0x91,0xff,0x00,0x8d,0x58,0x8b,0xc5, -0x3a,0x34,0xe3,0xf7,0x7a,0xb5,0x8c,0x9f,0xee,0xdc,0x21,0xfe,0xb5,0xa2,0xad,0x4d, -0xed,0x25,0xf7,0x8f,0x9a,0x2f,0x66,0x6a,0xd1,0x55,0x13,0x55,0xb2,0x97,0x95,0xbb, -0x81,0xbf,0xdd,0x95,0x4f,0xf5,0xa9,0x96,0x78,0xa4,0xfb,0xb2,0x2b,0x7d,0x1a,0xaf, -0x9e,0x2f,0x66,0x55,0xd1,0x2d,0x14,0xdd,0xdd,0xc1,0xa5,0x07,0x35,0x43,0x16,0x8a, -0x28,0xa6,0x01,0x45,0x21,0xe9,0x49,0x9a,0x00,0x75,0x26,0x29,0x32,0x3d,0x69,0x73, -0x48,0x05,0xa4,0xc5,0x18,0xf7,0xa5,0xa6,0x02,0x62,0x96,0x8a,0x28,0x00,0xa2,0x8a, -0x28,0x01,0x29,0x68,0xa2,0x80,0x12,0x8c,0x52,0xd1,0x40,0x05,0x14,0x51,0x40,0x05, -0x26,0x29,0x68,0xa0,0x04,0xc5,0x18,0x1e,0x94,0xb4,0x50,0x02,0x6d,0x1e,0x82,0x93, -0xcb,0x53,0xfc,0x23,0xf2,0xa0,0x92,0x3f,0x87,0x3f,0x8d,0x28,0xcf,0x71,0x8a,0x00, -0x69,0x82,0x33,0xd6,0x35,0x3f,0x80,0xa6,0x9b,0x58,0x5b,0xac,0x48,0x7f,0xe0,0x22, -0xa5,0xa2,0x95,0x97,0x61,0x59,0x10,0x1b,0x1b,0x73,0xd6,0x08,0xff,0x00,0xef,0x91, -0x4d,0x3a,0x6d,0xa3,0x75,0xb6,0x84,0xfd,0x50,0x55,0x9a,0x29,0x72,0xc7,0xb0,0x59, -0x14,0x9b,0x46,0xb0,0x6e,0xb6,0x56,0xe7,0xfe,0xd9,0x8f,0xf0,0xa8,0xdb,0xc3,0xba, -0x5b,0x75,0xd3,0xed,0x8f,0xfd,0xb2,0x5f,0xf0,0xad,0x1a,0x29,0x7b,0x38,0x76,0x17, -0x2a,0xec,0x64,0xb7,0x85,0x74,0x76,0xeb,0xa6,0x5a,0x9f,0xfb,0x64,0xbf,0xe1,0x51, -0xb7,0x83,0x74,0x36,0xeb,0xa4,0xda,0x1f,0xac,0x23,0xfc,0x2b,0x6a,0x8a,0x9f,0x65, -0x4f,0xf9,0x57,0xdc,0x2e,0x48,0x76,0x30,0x1f,0xc0,0x9e,0x1e,0x93,0xef,0x68,0xd6, -0x67,0xfe,0xd8,0x8a,0x89,0xbe,0x1c,0xf8,0x65,0xba,0xe8,0x96,0x7f,0xf7,0xec,0x57, -0x49,0x45,0x4b,0xc3,0xd2,0x7b,0xc1,0x7d,0xc4,0xfb,0x28,0x3f,0xb2,0x8e,0x55,0xbe, -0x17,0xf8,0x55,0xfa,0xe8,0x96,0x9f,0xf7,0xc5,0x42,0xdf,0x09,0x3c,0x22,0xdd,0x74, -0x3b,0x5f,0xfb,0xe6,0xba,0xfa,0x5a,0x8f,0xaa,0xd0,0xfe,0x45,0xf7,0x21,0x7b,0x1a, -0x5f,0xca,0xbe,0xe3,0x89,0x7f,0x83,0x7e,0x0e,0x7e,0xba,0x1d,0xb7,0xe5,0x50,0x3f, -0xc0,0xff,0x00,0x05,0x3f,0xfc,0xc0,0xe0,0x1f,0x4c,0xd7,0x7b,0x45,0x4b,0xc1,0xe1, -0xdf,0xfc,0xbb,0x5f,0x72,0x27,0xea,0xf4,0x7f,0x91,0x7d,0xc7,0x9e,0x3f,0xc0,0x5f, -0x04,0xbf,0xfc,0xc1,0xa3,0x1f,0x46,0x35,0x0b,0xfe,0xcf,0x7e,0x09,0x7f,0xf9,0x85, -0x63,0xe8,0xe6,0xbd,0x23,0x34,0x64,0x7a,0xd4,0x7d,0x47,0x0b,0xff,0x00,0x3e,0xd7, -0xdc,0x88,0xfa,0xa5,0x0f,0xe4,0x5f,0x71,0xe6,0x0f,0xfb,0x39,0x78,0x25,0xff,0x00, -0xe6,0x1c,0xc3,0xe8,0xf5,0x0b,0xfe,0xcd,0x5e,0x09,0x7f,0xf9,0x72,0x90,0x7d,0x24, -0xaf,0x55,0xa2,0xa7,0xfb,0x3f,0x08,0xff,0x00,0xe5,0xda,0xfb,0x89,0xfa,0x96,0x19, -0xef,0x4d,0x7d,0xc7,0x92,0x3f,0xec,0xc5,0xe0,0xb6,0xe9,0x05,0xc2,0xff,0x00,0xdb, -0x4a,0x81,0xff,0x00,0x65,0xcf,0x07,0xb7,0x41,0x72,0xbf,0xf6,0xd2,0xbd,0x8e,0x8a, -0x9f,0xec,0xcc,0x1b,0xff,0x00,0x97,0x4b,0xee,0x27,0xea,0x18,0x57,0xff,0x00,0x2e, -0xd7,0xdc,0x78,0xb3,0xfe,0xca,0xbe,0x12,0x6e,0x92,0x5d,0x2f,0xfc,0x08,0x54,0x2f, -0xfb,0x27,0xf8,0x5d,0xba,0x5c,0xdd,0x0f,0xc4,0x57,0xb7,0xd1,0x51,0xfd,0x95,0x82, -0xff,0x00,0x9f,0x48,0x97,0x97,0x61,0x1f,0xfc,0xbb,0x47,0x84,0xbf,0xec,0x95,0xe1, -0xb6,0xe9,0x7d,0x76,0x3f,0x2a,0xa5,0x77,0xfb,0x24,0x69,0xd0,0x95,0x9f,0x4e,0xd6, -0x6e,0xed,0xae,0xe3,0x21,0xe2,0x90,0x60,0x15,0x61,0xd0,0x82,0x39,0x06,0xbe,0x83, -0xa4,0x3d,0x29,0x7f,0x64,0xe0,0xf7,0x54,0xed,0xf7,0x99,0xbc,0xaf,0x07,0x2f,0xf9, -0x76,0x8f,0x01,0xf0,0x97,0xc6,0x3d,0x4f,0xe1,0xff,0x00,0x89,0xd3,0xc2,0x5e,0x3e, -0xb9,0x59,0xa1,0x77,0x10,0xda,0x6b,0xa4,0x6d,0xcb,0x67,0x01,0x66,0xed,0xcf,0x1f, -0x3f,0xe7,0xeb,0x5e,0xfa,0x8c,0x18,0x70,0x72,0x3d,0x6b,0xe3,0x1f,0xda,0x88,0xa5, -0xee,0xbb,0x24,0x4c,0x01,0x05,0x88,0xc7,0xad,0x77,0x1f,0xb1,0xff,0x00,0xc6,0x49, -0xbc,0x47,0x65,0x79,0xe0,0x6d,0x66,0xe9,0xa6,0xd5,0xf4,0xa8,0x84,0xd6,0x53,0x4a, -0xd9,0x79,0xed,0x72,0x06,0x09,0xee,0x63,0x25,0x47,0xd1,0x97,0xd2,0xb9,0x70,0x18, -0xde,0x6a,0xd3,0xc3,0x4d,0xdf,0x95,0xe8,0xcf,0x23,0x07,0x98,0xfb,0x2c,0x6b,0xcb, -0xea,0xbb,0xaf,0xb2,0xdf,0xe4,0xff,0x00,0x43,0xe9,0x8a,0x29,0x9b,0xbd,0xff,0x00, -0x5a,0x2b,0xe8,0x8f,0xaa,0xe6,0x43,0xe8,0xa2,0x8a,0x45,0x05,0x14,0x51,0x40,0x05, -0x79,0x0f,0xed,0x3d,0xe2,0xdf,0xf8,0x46,0xfe,0x1a,0xdc,0x5a,0x45,0x26,0xcb,0xad, -0x55,0xc5,0xa2,0x60,0xf3,0xb3,0xac,0x9f,0xf8,0xe8,0x23,0xfe,0x05,0x5e,0xb8,0x49, -0xed,0x5f,0x1b,0x7e,0xd4,0xbe,0x30,0x3a,0xff,0x00,0xc4,0x4f,0xec,0xb8,0xdf,0x75, -0xae,0x93,0x10,0x8b,0x00,0x82,0x0c,0xad,0x86,0x73,0xf8,0x0d,0xa3,0xea,0x0d,0x78, -0xf9,0xb6,0x23,0xea,0xf8,0x59,0x35,0xbb,0xd1,0x7c,0xcf,0x13,0x38,0xc4,0xfd,0x5b, -0x07,0x26,0xb7,0x96,0x8b,0xe6,0x72,0x5f,0x06,0x7c,0x26,0x7c,0x5d,0xe3,0xed,0x32, -0xd3,0x6e,0xe8,0x52,0x41,0x2c,0xb9,0xfe,0xe8,0xe6,0xbe,0xf6,0x8d,0x04,0x68,0xa8, -0xa3,0x0a,0xa3,0x00,0x0f,0x4a,0xf9,0xd3,0xf6,0x49,0xf0,0x8f,0xd9,0xf4,0xfb,0xfd, -0x7a,0x68,0xfe,0x79,0x4f,0x93,0x13,0x1f,0x4e,0xf5,0xf4,0x60,0xae,0x3c,0x8b,0x0f, -0xec,0xb0,0xde,0xd1,0xef,0x2d,0x7e,0x5d,0x0c,0x32,0x2c,0x37,0xb0,0xc2,0x29,0x3d, -0xe5,0xa8,0xb4,0x51,0x45,0x7d,0x21,0xf4,0x41,0x48,0x4e,0x29,0x6b,0x95,0xf8,0xad, -0xe3,0x88,0x3e,0x19,0xfc,0x32,0xf1,0x5f,0x8b,0x6e,0x81,0x68,0x34,0x4d,0x2e,0xe7, -0x50,0x65,0x03,0x39,0xf2,0xa3,0x67,0xc7,0xe3,0x8a,0x00,0xfc,0xfb,0xff,0x00,0x82, -0x96,0x7f,0xc1,0x41,0x75,0x2f,0x01,0x6a,0xd7,0xbf,0x09,0xbe,0x1b,0x6a,0x06,0xcf, -0x59,0x8e,0x30,0x35,0xcd,0x72,0x03,0x87,0xb6,0xdc,0x33,0xf6,0x68,0x5b,0xb3,0xed, -0x20,0xb3,0x8f,0xbb,0xb8,0x01,0xce,0xec,0x7c,0x27,0xf0,0x53,0xf6,0x29,0xf8,0xcd, -0xfb,0x4a,0x59,0xcb,0xaf,0x78,0x6b,0xc3,0xb2,0x4d,0xa4,0xc9,0x21,0x27,0x5a,0xd5, -0xee,0x45,0xbc,0x33,0xbe,0x4e,0xe2,0xae,0xe7,0x32,0x1c,0x83,0x92,0xa0,0xe0,0xf5, -0x35,0xe5,0x9a,0x76,0xab,0x1f,0x8f,0xbe,0x29,0xda,0x6a,0x3e,0x2e,0xbf,0x2b,0x0e, -0xb3,0xac,0xa4,0xfa,0xb5,0xfb,0xb6,0xd2,0xa9,0x2c,0xe0,0xcf,0x21,0x3d,0xb0,0x19, -0x8f,0xb5,0x7f,0x40,0x9f,0x1c,0x3e,0x24,0xe8,0x3f,0xb3,0x97,0xec,0xbf,0xae,0xf8, -0x9b,0x43,0x5b,0x5b,0x7d,0x2b,0x46,0xd1,0x44,0x7a,0x34,0x36,0xa5,0x44,0x4c,0xcc, -0xa2,0x3b,0x61,0x1e,0x38,0x20,0xb3,0x27,0x4e,0xdc,0xd3,0x25,0x6a,0x7f,0x3e,0x1e, -0x2f,0xf0,0x4e,0xa1,0xe0,0xef,0x1d,0x6a,0xbe,0x13,0x9d,0xa1,0xbe,0xd5,0x74,0xeb, -0xe7,0xd3,0xa4,0xfb,0x03,0x99,0x63,0x92,0x64,0x7d,0x85,0x50,0xe0,0x6e,0xf9,0x81, -0x03,0x8e,0x71,0x5f,0xbd,0xbe,0x1c,0xf8,0x6b,0xa7,0x7e,0xce,0x7f,0xb0,0xcd,0xef, -0x86,0x2e,0x84,0x51,0xc7,0xa3,0x78,0x42,0xed,0xf5,0x07,0xc6,0x16,0x4b,0x86,0xb7, -0x91,0xe7,0x27,0xeb,0x23,0x30,0xfc,0xab,0xf2,0x6b,0xfe,0x09,0xd5,0xf0,0x92,0x7f, -0x8e,0x9f,0xb5,0xbf,0x87,0xae,0x75,0x24,0x6b,0xed,0x3f,0x45,0x95,0xfc,0x45,0xa9, -0xcb,0x29,0xfb,0xcd,0x11,0x06,0x32,0x4f,0x72,0xd3,0xb4,0x59,0xf5,0x19,0xaf,0xb2, -0xff,0x00,0xe0,0xac,0x1f,0xb6,0x06,0x8d,0xa5,0x78,0x12,0xe7,0xe0,0xdf,0x85,0xb5, -0x38,0x6f,0xf5,0xfd,0x52,0x44,0xfe,0xde,0x6b,0x67,0x0e,0xb6,0x56,0xc8,0x43,0x08, -0x19,0x81,0xe2,0x47,0x60,0x99,0x5e,0x48,0x50,0x72,0x06,0xe1,0x40,0x2d,0x35,0x3f, -0x2c,0xfe,0x17,0x78,0x72,0xe3,0xc6,0x1f,0x12,0xfc,0x27,0xa0,0xd9,0x0c,0xdd,0xea, -0x7a,0xb5,0xa5,0x9c,0x5c,0xe3,0xe6,0x92,0x64,0x51,0xfc,0xeb,0xfa,0x6e,0x8d,0x3c, -0xb4,0x55,0xeb,0x80,0x06,0x6b,0xf1,0x1f,0xfe,0x09,0x3f,0xf0,0x0e,0xe3,0xe2,0x67, -0xed,0x0b,0x17,0x8c,0xaf,0x2d,0x0b,0xf8,0x7b,0xc1,0xa9,0xf6,0xb6,0x92,0x45,0x3b, -0x1e,0xf1,0x81,0x10,0x20,0x3e,0xaa,0x73,0x27,0xb6,0xc1,0xeb,0x5f,0xb7,0x2c,0xc1, -0x14,0x92,0x70,0x00,0xcd,0x0c,0x16,0xc7,0x81,0xfe,0xd2,0x7e,0x22,0x12,0xdd,0x69, -0x9a,0x24,0x6d,0x91,0x18,0x37,0x52,0x8f,0x73,0x95,0x4f,0xd3,0x77,0xe6,0x2b,0xc4, -0xab,0x7b,0xc7,0x5e,0x20,0x3e,0x28,0xf1,0x6e,0xa7,0xa9,0x64,0x98,0xe5,0x98,0x88, -0xb3,0xd9,0x07,0x0b,0xfa,0x01,0x58,0x35,0xf8,0x96,0x67,0x89,0xfa,0xde,0x2e,0x75, -0x56,0xd7,0xb2,0xf4,0x5a,0x1f,0x29,0x88,0xa9,0xed,0x6a,0xb9,0x06,0x68,0xa2,0x8c, -0xd7,0x98,0x73,0x85,0x14,0x51,0x48,0x00,0x71,0x4e,0x49,0x5e,0x33,0x95,0x76,0x52, -0x3b,0x83,0x8a,0x6d,0x14,0xd3,0x6b,0x60,0xb9,0xb5,0xa6,0xf8,0xd7,0x5f,0xd2,0x0a, -0xfd,0x93,0x58,0xbd,0x84,0x2f,0x45,0x13,0x31,0x5f,0xc8,0xf1,0x5e,0x89,0xe1,0x6f, -0xda,0x2b,0x56,0xb0,0x91,0x22,0xd6,0xed,0xd3,0x51,0xb7,0xef,0x2c,0x2a,0x12,0x51, -0xf8,0x7d,0xd3,0xfa,0x7d,0x6b,0xc8,0x68,0xaf,0x43,0x0f,0x98,0xe2,0xb0,0xb2,0xbd, -0x2a,0x8f,0xf4,0xfb,0x8d,0xe1,0x5e,0xa5,0x37,0x78,0xc8,0xfb,0x57,0xc3,0x5e,0x28, -0xd3,0xbc,0x59,0xa6,0xa5,0xf6,0x9b,0x72,0xb7,0x10,0x31,0xc1,0xec,0xc8,0xdd,0xd5, -0x87,0x63,0x5a,0xd5,0xf2,0x47,0xc2,0x6f,0x18,0x4f,0xe1,0x2f,0x17,0xda,0x10,0xe7, -0xec,0x57,0x6e,0xb0,0x5c,0xc7,0x9e,0x08,0x27,0x01,0xbe,0xaa,0x4e,0x7f,0x3f,0x5a, -0xfa,0xd9,0x4e,0x46,0x6b,0xf5,0x3c,0xa7,0x31,0x59,0x8d,0x0e,0x76,0xad,0x25,0xa3, -0x3e,0x8b,0x0d,0x5f,0xdb,0xc2,0xfd,0x50,0x37,0x00,0xd7,0xcd,0x1f,0x15,0x3e,0x26, -0xeb,0x51,0x78,0xeb,0x51,0xb7,0xd2,0xf5,0x5b,0x9b,0x5b,0x4b,0x56,0x10,0x04,0x89, -0xf0,0xa5,0x94,0x7c,0xc7,0x1f,0xef,0x64,0x7e,0x15,0xf4,0x4e,0xbb,0xaa,0xc7,0xa1, -0xe8,0xd7,0xda,0x84,0xdc,0xc5,0x6b,0x0b,0xcc,0xc0,0x75,0x21,0x41,0x38,0xfd,0x2b, -0xe2,0x8b,0xbb,0xa9,0x2f,0x6e,0xa6,0xb8,0x95,0xb7,0xcb,0x33,0xb4,0x8e,0xc7,0xbb, -0x13,0x92,0x6b,0xc6,0xe2,0x5c,0x64,0xe8,0xd3,0xa7,0x4a,0x9c,0xac,0xdb,0xbe,0x9d, -0x8e,0x6c,0x7d,0x57,0x08,0xa8,0xc5,0xd8,0xea,0x13,0xe2,0xc7,0x8b,0xa3,0xe9,0xae, -0xdd,0x7e,0x3b,0x4f,0xf3,0x15,0x32,0x7c,0x64,0xf1,0x94,0x7d,0x35,0xb9,0x0f,0xfb, -0xd1,0x46,0x7f,0xf6,0x5a,0xe3,0x28,0xaf,0x82,0x58,0xec,0x52,0xda,0xac,0xbe,0xf6, -0x78,0x9e,0xda,0xa7,0xf3,0x3f,0xbc,0xef,0x13,0xe3,0x8f,0x8c,0xd3,0xfe,0x62,0xc1, -0xbf,0xde,0xb7,0x8b,0xff,0x00,0x89,0xab,0x09,0xf1,0xef,0xc6,0x0b,0xd6,0xf6,0x06, -0xfa,0xdb,0xaf,0xf8,0x57,0x9d,0xd1,0x5a,0x2c,0xcb,0x1a,0xb6,0xad,0x2f,0xbd,0x97, -0xf5,0x8a,0xbf,0xcc,0xcf,0x4a,0x5f,0xda,0x0b,0xc5,0xca,0x79,0x96,0xd1,0xff,0x00, -0xde,0xb7,0xff,0x00,0x03,0x53,0xa7,0xed,0x17,0xe2,0xa4,0xeb,0x16,0x9c,0xff,0x00, -0x58,0x1b,0xff,0x00,0x8b,0xaf,0x2e,0xa2,0xb4,0x59,0xb6,0x39,0x6d,0x59,0xfd,0xe3, -0x58,0x9a,0xcb,0xed,0x33,0xd6,0x23,0xfd,0xa4,0xbc,0x48,0xbf,0x7a,0xcb,0x4e,0x6f, -0xfb,0x66,0xe3,0xff,0x00,0x67,0xab,0x09,0xfb,0x4b,0x6b,0x60,0x7c,0xda,0x5d,0x8b, -0x1f,0x6d,0xe3,0xfa,0xd7,0x8f,0xd1,0x56,0xb3,0x9c,0x7a,0xff,0x00,0x97,0xac,0x7f, -0x5a,0xaf,0xfc,0xc7,0xb3,0x27,0xed,0x33,0xaa,0x0f,0xbd,0xa2,0xda,0xb7,0xd2,0x56, -0x1f,0xd2,0xa7,0x5f,0xda,0x6e,0xef,0xf8,0xb4,0x08,0x7f,0x0b,0xa3,0xff,0x00,0xc4, -0xd7,0x89,0x51,0xfa,0xd6,0xab,0x3c,0xcc,0x3a,0x55,0xfc,0x17,0xf9,0x14,0xb1,0x95, -0xff,0x00,0x98,0xfb,0x1b,0xe1,0xef,0x8b,0x26,0xf1,0xb7,0x86,0x61,0xd5,0xa5,0xb3, -0x16,0x42,0x67,0x75,0x48,0xc3,0xee,0xc8,0x52,0x57,0x39,0xc0,0xee,0x0d,0x74,0xb5, -0x89,0xe0,0xad,0x23,0xfb,0x03,0xc2,0x9a,0x56,0x9e,0x7e,0xf4,0x16,0xe8,0xaf,0xee, -0xd8,0xcb,0x1f,0xcf,0x35,0xb4,0x6b,0xf5,0xac,0x3f,0x3f,0xb1,0x87,0xb5,0x77,0x95, -0x95,0xfd,0x4f,0xa5,0x85,0xf9,0x17,0x36,0xe2,0xd2,0x13,0x8a,0xaf,0x7b,0x7f,0x6f, -0xa7,0x5a,0x49,0x73,0x75,0x3c,0x76,0xf6,0xf1,0x8d,0xcf,0x2c,0xac,0x15,0x54,0x7a, -0x92,0x6b,0xc7,0x3c,0x65,0xfb,0x45,0xdb,0xda,0xb3,0xdb,0x78,0x7a,0xdf,0xed,0x72, -0x0e,0x3e,0xd9,0x70,0x08,0x8f,0xea,0xab,0xd4,0xfe,0x38,0xfc,0x6b,0x0c,0x5e,0x3b, -0x0f,0x82,0x8f,0x35,0x69,0x5b,0xcb,0xaf,0xdc,0x4d,0x5a,0xd0,0xa4,0xaf,0x36,0x7b, -0x51,0x70,0xa3,0x24,0xe0,0x7a,0x9a,0xe5,0xf5,0x8f,0x8a,0x3e,0x16,0xd0,0xb7,0x0b, -0x9d,0x6a,0xd8,0xba,0x9c,0x18,0xe0,0x6f,0x39,0x81,0xf7,0x09,0x92,0x2b,0xe5,0xbf, -0x10,0xf8,0xe3,0x5d,0xf1,0x4c,0x8c,0xda,0x96,0xa5,0x34,0xe8,0x4e,0x7c,0xa0,0xdb, -0x63,0x1f,0x45,0x18,0x15,0x85,0xd2,0xbe,0x33,0x11,0xc5,0x2f,0x6c,0x3d,0x3f,0x9b, -0xff,0x00,0x25,0xfe,0x67,0x95,0x3c,0xc7,0xf9,0x23,0xf7,0x9f,0x4b,0xdf,0xfe,0xd1, -0x7e,0x19,0xb6,0x72,0xb0,0x45,0x7d,0x79,0xe8,0xd1,0xc4,0x15,0x7f,0xf1,0xe6,0x07, -0xf4,0xac,0xb9,0xbf,0x69,0x9d,0x31,0x4f,0xee,0x74,0x6b,0xb7,0x1f,0xed,0xc8,0xab, -0xfc,0xb3,0x5f,0x3e,0x51,0x5e,0x44,0xb8,0x8f,0x1f,0x2d,0x9a,0x5f,0x2f,0xf3,0x39, -0x5e,0x3a,0xb3,0xea,0x7b,0xfa,0xfe,0xd3,0x76,0x64,0xfc,0xda,0x14,0xe0,0x7b,0x4e, -0xa7,0xfa,0x55,0xb8,0xbf,0x69,0x6d,0x10,0xe3,0xcc,0xd2,0xf5,0x04,0xf5,0xda,0x23, -0x6f,0xfd,0x98,0x57,0xce,0xb4,0x54,0xae,0x21,0xcc,0x17,0xda,0x4f,0xe4,0x84,0xb1, -0xd5,0xfb,0x9f,0x53,0x58,0x7c,0x7b,0xf0,0x85,0xe8,0x4f,0x32,0xf2,0x6b,0x36,0x6f, -0xe1,0x9e,0xdd,0xb8,0xfa,0x95,0x04,0x7e,0xb5,0xd8,0xe9,0x3e,0x25,0xd2,0xb5,0xe0, -0x4e,0x9d,0xa9,0x5a,0xde,0xe0,0x64,0x88,0x25,0x56,0x23,0xea,0x07,0x4a,0xf8,0xa2, -0x9d,0x14,0xaf,0x04,0x8a,0xf1,0xbb,0x46,0xeb,0xca,0xb2,0x1c,0x11,0xf4,0x22,0xbd, -0x0a,0x3c,0x51,0x88,0x8b,0xfd,0xf4,0x13,0x5e,0x5a,0x3f,0xd4,0xde,0x19,0x8c,0xd7, -0xc4,0xae,0x7d,0xcf,0x9c,0x9e,0xb4,0xb5,0xf2,0xcf,0x84,0xfe,0x39,0x78,0x8b,0xc3, -0xae,0x91,0xdd,0x4d,0xfd,0xaf,0x68,0x3a,0xc7,0x72,0x7e,0x70,0x3d,0x9f,0xaf,0xe7, -0x9a,0xf7,0xbf,0x04,0x7c,0x49,0xd1,0xfc,0x75,0x6e,0x4d,0x94,0xde,0x55,0xda,0x0c, -0xc9,0x69,0x36,0x04,0x8b,0xee,0x3d,0x47,0xb8,0xaf,0xaf,0xc0,0xe7,0x18,0x5c,0x73, -0xe5,0x83,0xb4,0xbb,0x3f,0xd0,0xf4,0xe8,0xe2,0xa9,0xd6,0xd1,0x3b,0x33,0xac,0xa2, -0x90,0x1c,0x8a,0x5a,0xf7,0x0e,0xc0,0xa2,0x8a,0x28,0x00,0xa2,0x90,0x9c,0x57,0x3b, -0xe2,0x9f,0x88,0x1a,0x1f,0x83,0x93,0x3a,0x9d,0xfc,0x71,0x4a,0x46,0x44,0x09,0xf3, -0xc8,0xdf,0xf0,0x11,0xce,0x3d,0xcf,0x15,0x95,0x4a,0xb0,0xa5,0x1e,0x6a,0x92,0xb2, -0xf3,0x26,0x52,0x51,0x57,0x93,0x3a,0x3a,0x4c,0xd7,0x84,0x6b,0xdf,0xb4,0xb3,0x1d, -0xc9,0xa3,0xe9,0x20,0x0e,0xd2,0xde,0x3f,0x3f,0xf7,0xc2,0xff,0x00,0xf1,0x55,0xc3, -0xea,0x7f,0x1b,0x7c,0x5f,0xa9,0x13,0xff,0x00,0x13,0x31,0x68,0xa7,0xf8,0x6d,0xa2, -0x55,0xc7,0xe3,0x82,0x7f,0x5a,0xf9,0xca,0xfc,0x45,0x81,0xa5,0xa4,0x5b,0x97,0xa2, -0xff,0x00,0x33,0x82,0x78,0xea,0x31,0xd1,0x6a,0x7d,0x5d,0x9f,0xca,0x8d,0xc3,0xd6, -0xbe,0x30,0xba,0xf1,0xaf,0x88,0x2f,0x73,0xe7,0xeb,0x7a,0x84,0x80,0xf5,0x06,0xe5, -0xf1,0xf9,0x66,0xb3,0x1e,0xfa,0xe6,0x43,0x96,0xb8,0x95,0x89,0xee,0xce,0x4d,0x79, -0x92,0xe2,0xaa,0x6b,0xe1,0xa4,0xfe,0xff,0x00,0xf8,0x07,0x3b,0xcc,0xa3,0xd2,0x27, -0xdc,0x04,0x2b,0x1f,0x9b,0x69,0xfa,0xd3,0x86,0xd0,0x30,0x00,0xfc,0x2b,0xe1,0xbf, -0xb5,0xcf,0xff,0x00,0x3d,0xa4,0xff,0x00,0xbe,0x8d,0x58,0xb6,0xd7,0x35,0x2b,0x33, -0x9b,0x7d,0x42,0xea,0x03,0xeb,0x1c,0xcc,0xbf,0xc8,0xd4,0xae,0x2a,0x87,0x5a,0x3f, -0x8f,0xfc,0x01,0x7f,0x69,0x2e,0xb1,0xfc,0x4f,0xb6,0xb6,0xa9,0x3d,0x06,0x69,0xd9, -0xe3,0x8a,0xf8,0xe6,0xd3,0xe2,0x37,0x8a,0x2c,0xbf,0xd5,0x6b,0xd7,0xff,0x00,0x47, -0x9d,0x9c,0x7f,0xe3,0xd9,0xae,0x82,0xc3,0xe3,0xcf,0x8b,0xec,0x48,0xdf,0x75,0x05, -0xea,0x8e,0xd3,0xc0,0xbf,0xcd,0x71,0x5d,0x74,0xf8,0x9f,0x0b,0x2f,0x8e,0x2d,0x7d, -0xcc,0xda,0x39,0x85,0x37,0xba,0x68,0xfa,0xa2,0x90,0xf1,0x5e,0x27,0xe1,0x2f,0xda, -0x22,0x6d,0x5f,0x53,0xb3,0xd3,0xef,0xb4,0x61,0xe6,0xdc,0xca,0x90,0xac,0x96,0xb2, -0x7f,0x13,0x10,0x07,0xca,0xdf,0x5f,0x5a,0xf6,0xc1,0xc8,0x15,0xf4,0x78,0x4c,0x75, -0x0c,0x74,0x5c,0xa8,0x4a,0xf6,0x3b,0xa9,0x56,0x85,0x65,0x78,0x30,0x56,0x0e,0xa0, -0x8e,0x86,0x96,0x9a,0xab,0xb4,0x60,0x74,0xa7,0x57,0x79,0xb0,0x53,0x5c,0xe1,0x49, -0xf4,0x14,0xea,0x8a,0xe9,0xfc,0xbb,0x69,0x5b,0xd1,0x09,0xfd,0x29,0x3d,0x80,0xf8, -0x93,0xf6,0x80,0xb9,0xfb,0x47,0x8a,0xe4,0x5c,0xe7,0x04,0xd7,0x87,0xe8,0xfe,0x3c, -0x97,0xe1,0x5f,0xc5,0x4f,0x09,0x78,0xaa,0x10,0x0a,0x5a,0x5f,0x24,0x57,0x0a,0x4e, -0x03,0x41,0x27,0xee,0xe4,0x07,0xfe,0x02,0xc4,0x8f,0x70,0x3d,0x2b,0xd6,0xbe,0x33, -0x5c,0x79,0xde,0x2d,0xb8,0x39,0xce,0x33,0x5f,0x2e,0x7c,0x77,0xba,0x30,0xe8,0x72, -0xed,0x38,0x60,0xa4,0x8c,0x7a,0xd7,0xe7,0x18,0x29,0x37,0x8e,0x94,0x97,0x76,0x7e, -0x39,0x8f,0xa9,0x25,0x9a,0x53,0x9c,0x77,0xe7,0x47,0xec,0x77,0xdb,0x61,0xff,0x00, -0x9e,0xc9,0xf9,0xd1,0x5e,0x03,0xfd,0x91,0x7b,0xff,0x00,0x3f,0x72,0xff,0x00,0xdf, -0x46,0x8a,0xfd,0x0f,0x9d,0x9f,0xaf,0x73,0x79,0x1f,0x44,0xd1,0x45,0x15,0xa9,0xa8, -0x51,0x45,0x14,0x01,0x93,0xe2,0x9d,0x7a,0x1f,0x0b,0xf8,0x77,0x53,0xd5,0xae,0x48, -0xf2,0x6c,0xed,0xde,0x76,0x1e,0xbb,0x41,0x38,0xfc,0x4f,0x15,0xf9,0xe8,0xf3,0x5d, -0x78,0x97,0x5b,0x92,0x79,0x4b,0x4d,0x79,0x7d,0x39,0x76,0x3d,0x49,0x66,0x6c,0xff, -0x00,0x5a,0xfa,0x97,0xf6,0xb9,0xf1,0x6b,0x69,0x9e,0x11,0xb1,0xd0,0xa0,0x90,0x2c, -0xba,0x9c,0xdb,0xe5,0x51,0x8c,0xf9,0x51,0xf3,0xfa,0xb1,0x5f,0xc8,0xd7,0x8e,0x7e, -0xce,0xde,0x11,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0xc8,0xbb,0xad,0xac,0xff,0x00, -0x7e,0xfc,0x71,0xc7,0x41,0xf9,0xd7,0xc3,0xe7,0x33,0x78,0xac,0x54,0x30,0x90,0xfe, -0x9b,0xff,0x00,0x80,0x7c,0x26,0x6f,0x27,0x8c,0xc7,0x53,0xc2,0x47,0x65,0xbf,0xab, -0xff,0x00,0x80,0x7d,0x75,0xf0,0xeb,0xc3,0x51,0xf8,0x4f,0xc1,0xba,0x5e,0x9a,0x8b, -0xb5,0xa2,0x84,0x17,0xf7,0x62,0x32,0x6b,0xa4,0x03,0x14,0x2f,0x02,0x96,0xbe,0xd2, -0x9c,0x15,0x38,0x28,0x47,0x64,0x7d,0xc4,0x22,0xa1,0x15,0x15,0xb2,0x0a,0x28,0xa2, -0xb4,0x2c,0x2b,0x88,0xf8,0xe1,0xe0,0x17,0xf8,0xa9,0xf0,0x77,0xc6,0xbe,0x0f,0x8e, -0x5f,0x22,0x5d,0x73,0x48,0xba,0xb0,0x8e,0x53,0xfc,0x0f,0x24,0x4c,0xaa,0x7f,0x02, -0x45,0x76,0xf4,0x84,0x66,0x80,0x3f,0x97,0xbf,0x12,0xf8,0x6f,0x53,0xf0,0x77,0x88, -0x75,0x2d,0x0f,0x59,0xb3,0x97,0x4f,0xd5,0x74,0xeb,0x87,0xb5,0xba,0xb5,0x9d,0x70, -0xf1,0x48,0xa4,0x86,0x52,0x3e,0xa2,0xb4,0xa7,0xf8,0x99,0xe2,0xdb,0x9f,0x06,0x0f, -0x08,0x4d,0xe2,0x5d,0x56,0x6f,0x0b,0x09,0x56,0x71,0xa3,0x49,0x79,0x23,0x5a,0xac, -0x8b,0x9d,0xac,0x23,0x27,0x68,0x23,0x27,0xa0,0xef,0x5f,0xbd,0xff,0x00,0xb4,0x67, -0xec,0x2b,0xf0,0x9f,0xf6,0x99,0xb8,0x6d,0x4b,0xc4,0xba,0x3c,0xba,0x77,0x88,0xf6, -0x04,0x1a,0xee,0x8f,0x20,0x82,0xe9,0x80,0x18,0x01,0xf8,0x29,0x26,0x07,0x03,0x7a, -0x92,0x07,0x00,0x81,0x5f,0x2a,0x6a,0xbf,0xf0,0x44,0xcf,0x0c,0x49,0x76,0x0e,0x99, -0xf1,0x3b,0x56,0xb6,0xb5,0xef,0x1d,0xde,0x9b,0x14,0xcf,0x8f,0xf7,0x95,0x90,0x7e, -0x95,0x57,0x22,0xcf,0xa1,0xf9,0x77,0xe0,0xff,0x00,0x89,0x7e,0x2c,0xf8,0x7d,0x0e, -0xa7,0x17,0x86,0x3c,0x45,0xa9,0x78,0x7d,0x75,0x38,0x84,0x17,0x9f,0xd9,0xb7,0x2f, -0x03,0x4f,0x18,0x24,0x84,0x62,0xa4,0x12,0x32,0x4f,0x15,0xdb,0xfe,0xcf,0x3f,0xb3, -0x4f,0x8e,0xff,0x00,0x6a,0x2f,0x1c,0x47,0xa3,0x78,0x5a,0xc6,0x49,0x63,0xf3,0x03, -0x6a,0x1a,0xcd,0xc8,0x3f,0x66,0xb3,0x42,0x79,0x79,0x1f,0xb9,0xeb,0x85,0x19,0x66, -0x3d,0x2b,0xf5,0x27,0xe1,0xef,0xfc,0x11,0xd7,0xe0,0xf7,0x86,0x2f,0xe1,0xbb,0xf1, -0x1e,0xad,0xe2,0x0f,0x18,0x98,0xf9,0x36,0x97,0x17,0x0b,0x6b,0x6e,0xc7,0xdc,0x44, -0xa1,0xff,0x00,0x0d,0xf5,0xf6,0xa7,0x82,0x3c,0x03,0xe1,0xcf,0x86,0xbe,0x1e,0xb6, -0xd0,0x7c,0x2b,0xa2,0x58,0xf8,0x7f,0x47,0xb7,0x1f,0xbb,0xb3,0xd3,0xe0,0x58,0xa3, -0x07,0xb9,0x20,0x0e,0x58,0xf7,0x63,0xc9,0xee,0x69,0x5c,0x12,0xee,0x71,0xdf,0xb3, -0x97,0xec,0xfd,0xe1,0xbf,0xd9,0xab,0xe1,0x7e,0x9d,0xe0,0xcf,0x0d,0xc6,0x5a,0x38, -0x7f,0x7b,0x77,0x7d,0x22,0x81,0x35,0xed,0xc3,0x01,0xbe,0x67,0x3e,0xa7,0x00,0x01, -0xd8,0x00,0x07,0x02,0xb6,0x7e,0x30,0xf8,0x8c,0x78,0x6f,0xc0,0x7a,0x8c,0x8a,0xc1, -0x6e,0x2e,0x57,0xec,0xb0,0xf3,0x83,0xb9,0xf8,0x24,0x7b,0x85,0xdc,0x7f,0x0a,0xed, -0xeb,0xe7,0x8f,0xda,0x43,0xc4,0x5f,0x6b,0xd6,0x6c,0x34,0x68,0xdf,0x29,0x6b,0x19, -0x9e,0x50,0x3a,0x6f,0x6e,0x07,0xe4,0x07,0xfe,0x3d,0x5e,0x2e,0x6f,0x89,0xfa,0xae, -0x0e,0x73,0x5b,0xbd,0x17,0xab,0xd0,0xe7,0xc5,0x54,0xf6,0x74,0x9b,0x3c,0x6e,0x8a, -0x28,0xaf,0xc6,0x0f,0x95,0x0a,0xf6,0xff,0x00,0xd9,0xcf,0xc2,0x90,0x5e,0xc5,0xaa, -0xea,0xf7,0x76,0xf1,0x4e,0x99,0x16,0xd1,0x09,0x50,0x30,0xc8,0xf9,0x98,0xe0,0xfd, -0x57,0xf5,0xaf,0x10,0xaf,0xb0,0xbe,0x1a,0x78,0x74,0xf8,0x63,0xc1,0x1a,0x4d,0x8b, -0xa9,0x59,0xc4,0x5e,0x64,0xc0,0x8c,0x10,0xee,0x77,0x30,0xfc,0x09,0xc7,0xe1,0x5f, -0x57,0xc3,0xb8,0x5f,0x6f,0x8b,0xf6,0x92,0x5a,0x45,0x7e,0x2f,0x44,0x7a,0x58,0x0a, -0x7c,0xf5,0x79,0x9f,0x43,0x4e,0x4f,0x09,0xe8,0x93,0x0f,0xde,0x69,0x16,0x2f,0xf5, -0xb6,0x43,0xfd,0x2b,0x36,0xf3,0xe1,0x87,0x85,0x2f,0x91,0x96,0x4d,0x02,0xc5,0x41, -0xea,0x62,0x84,0x46,0x7f,0x35,0xc1,0xae,0x9c,0x0c,0x51,0x5f,0xa6,0xcb,0x0f,0x46, -0x5f,0x14,0x13,0xf9,0x23,0xe8,0x1d,0x38,0x3d,0xd2,0x3c,0x33,0xe2,0x17,0xc0,0x1b, -0x3b,0x6d,0x3a,0xe3,0x50,0xf0,0xf3,0xcb,0x1c,0x90,0xa1,0x76,0xb3,0x95,0xb7,0x87, -0x03,0x93,0xb5,0x8f,0x39,0xfa,0x93,0x9f,0x6a,0xf0,0x8a,0xfb,0x2b,0xc7,0x7e,0x21, -0x83,0xc3,0x3e,0x14,0xd4,0x6f,0xe6,0x20,0x6c,0x89,0x95,0x14,0xff,0x00,0x1b,0x91, -0x85,0x1f,0x99,0xaf,0x8d,0x40,0xc0,0x02,0xbf,0x34,0xe2,0x2c,0x2e,0x1b,0x0d,0x5a, -0x1e,0xc1,0x59,0xb5,0xaa,0x5f,0x81,0xe0,0x63,0xa9,0xc2,0x9c,0xd7,0x26,0x81,0x45, -0x14,0x57,0xc9,0x1e,0x61,0x6f,0x49,0xb5,0x7b,0xed,0x56,0xce,0xde,0x21,0x99,0x25, -0x99,0x23,0x5c,0x7a,0x96,0x00,0x7f,0x3a,0xfb,0x79,0x38,0x50,0x2b,0xe5,0xdf,0x81, -0x3e,0x13,0x6f,0x10,0x78,0xce,0x2b,0xc9,0x13,0x75,0xa6,0x9a,0x3c,0xf7,0x24,0x70, -0x64,0xe8,0x83,0xeb,0x9f,0x9b,0xfe,0x03,0x5f,0x51,0x81,0x5f,0xa5,0xf0,0xc5,0x09, -0x53,0xc3,0xce,0xab,0xfb,0x4f,0x4f,0x91,0xef,0xe5,0xd0,0x71,0x83,0x93,0xea,0x61, -0x78,0xdb,0xc3,0x4f,0xe2,0xff,0x00,0x0e,0x5d,0xe9,0x2b,0x78,0xf6,0x22,0xe3,0x68, -0x69,0x91,0x37,0x10,0x03,0x02,0x46,0x32,0x3a,0xe3,0x15,0xe4,0xf2,0x7e,0xcc,0x63, -0xf8,0x3c,0x40,0x7f,0xe0,0x56,0x9f,0xfd,0x9d,0x7b,0xb5,0x26,0x2b,0xe8,0x71,0x59, -0x6e,0x17,0x19,0x25,0x3a,0xf0,0xbb,0xf5,0x67,0x75,0x4c,0x3d,0x3a,0xae,0xf3,0x57, -0x3c,0x09,0xff,0x00,0x66,0x4b,0xaf,0xe0,0xd7,0xa1,0x3f,0xef,0x5b,0x11,0xff,0x00, -0xb3,0x55,0x77,0xfd,0x99,0xf5,0x31,0xf7,0x35,0xab,0x46,0xfa,0xc4,0xc2,0xbe,0x85, -0xc5,0x52,0xd6,0x35,0x38,0xb4,0x7d,0x2a,0xf2,0xfa,0x63,0x88,0xad,0xa2,0x79,0x58, -0xfb,0x28,0x26,0xbc,0xe9,0xe4,0x39,0x72,0x4d,0xb8,0x5b,0xe6,0xff,0x00,0xcc,0xc1, -0xe0,0xa8,0x2d,0x6c,0x7c,0x65,0xe2,0x0d,0x20,0xe8,0x1a,0xdd,0xee,0x9a,0xd7,0x11, -0xdc,0xbd,0xac,0x86,0x26,0x92,0x20,0x42,0x96,0x1d,0x40,0xcf,0xa1,0xc8,0xfc,0x2b, -0x3e,0xa6,0xbc,0xba,0x96,0xfe,0xee,0x6b,0x99,0xdb,0x7c,0xf3,0x3b,0x49,0x23,0x7a, -0xb1,0x39,0x27,0xf3,0x35,0x0d,0x7e,0x51,0x53,0x95,0xcd,0xb8,0x2d,0x2f,0xa1,0xf3, -0x4e,0xd7,0x76,0x0a,0x28,0xad,0x2f,0x0d,0xe9,0x2d,0xaf,0x78,0x83,0x4d,0xd3,0xd4, -0x13,0xf6,0x9b,0x84,0x8c,0xe3,0xb2,0x93,0xc9,0xfc,0xb3,0x4a,0x10,0x75,0x24,0xa0, -0xb7,0x6e,0xc1,0x15,0x76,0x91,0xd2,0xda,0xfc,0x17,0xf1,0x7d,0xe5,0xa4,0x37,0x30, -0xe9,0x41,0xe2,0x99,0x04,0x88,0x7c,0xf8,0xc1,0xc1,0x19,0x19,0x05,0xb8,0xa4,0x93, -0xe0,0xb7,0x8c,0xe3,0xeb,0xa2,0x39,0xff,0x00,0x76,0x68,0x8f,0xfe,0xcd,0x5f,0x59, -0x43,0x1a,0xc5,0x12,0x22,0x8d,0xaa,0xa0,0x00,0x07,0x61,0x4e,0xc7,0xbd,0x7e,0x99, -0xfe,0xac,0x61,0x1a,0x5e,0xf4,0xaf,0xea,0xbf,0xc8,0xf7,0xff,0x00,0xb3,0xa9,0xf7, -0x67,0xc8,0x12,0x7c,0x2a,0xf1,0x6c,0x47,0xe6,0xd0,0x6e,0xcf,0xfb,0xaa,0x0f,0xf2, -0x35,0xa1,0xe1,0x2f,0x86,0x1e,0x20,0x9b,0xc5,0x3a,0x52,0x5e,0xe8,0xb7,0x50,0x5a, -0x7d,0xa5,0x1a,0x67,0x9a,0x22,0x10,0x20,0x39,0x6c,0x9f,0x70,0x31,0x5f,0x57,0x8a, -0x31,0x44,0x38,0x67,0x0d,0x09,0xa9,0x29,0xbd,0x3d,0x06,0xb2,0xfa,0x69,0xde,0xec, -0x07,0x02,0xb1,0x7c,0x59,0xe2,0xed,0x3f,0xc1,0xba,0x3c,0x9a,0x86,0xa1,0x2e,0xc8, -0xc7,0xca,0x91,0xaf,0xdf,0x95,0xbb,0x2a,0x8e,0xe7,0xf9,0x75,0x35,0x7f,0x56,0xd5, -0x6d,0xb4,0x4d,0x36,0xe6,0xfa,0xf2,0x51,0x0d,0xb4,0x08,0x64,0x91,0xcf,0x60,0x3f, -0xcf,0x4a,0xf9,0x1b,0xe2,0x07,0x8e,0x6e,0xfc,0x77,0xae,0xbd,0xe4,0xe5,0xa3,0xb6, -0x8c,0x95,0xb6,0xb7,0xcf,0x11,0x27,0xf8,0x9e,0xe7,0xfa,0x62,0xbd,0x1c,0xdb,0x34, -0x8e,0x5d,0x4a,0xd1,0xd6,0x6f,0x65,0xfa,0xb3,0x7c,0x4e,0x21,0x50,0x8e,0x9b,0xb2, -0x6f,0x1e,0x7c,0x48,0xd5,0x3c,0x79,0x78,0x5a,0xe5,0xcd,0xbd,0x8a,0x1c,0xc5,0x67, -0x1b,0x1d,0x8b,0xe8,0x4f,0xf7,0x9b,0xdc,0xfe,0x18,0xae,0x4e,0x8a,0x2b,0xf2,0x5a, -0xd5,0xaa,0x62,0x26,0xea,0x55,0x77,0x6c,0xf9,0x99,0x4e,0x53,0x7c,0xd2,0x7a,0x85, -0x14,0x57,0x5d,0xe0,0x0f,0x86,0x9a,0xa7,0x8f,0xae,0x8f,0xd9,0x80,0xb7,0xb1,0x8d, -0xb1,0x2d,0xe4,0x83,0xe5,0x1f,0xec,0x81,0xfc,0x4d,0xed,0xf9,0xd3,0xa3,0x46,0xa6, -0x22,0x6a,0x9d,0x25,0x76,0xc7,0x08,0x4a,0xa4,0xb9,0x62,0xae,0xce,0x46,0xa7,0xb7, -0xb1,0xb9,0xbc,0xff,0x00,0x51,0x6f,0x2c,0xf8,0xeb,0xe5,0xa1,0x6f,0xe5,0x5f,0x55, -0xf8,0x5f,0xe0,0xe7,0x86,0x7c,0x35,0x12,0x11,0x60,0x97,0xf7,0x23,0x19,0x9e,0xf0, -0x09,0x0e,0x7d,0x40,0x3f,0x28,0xfc,0x05,0x76,0xc9,0x0a,0x46,0x00,0x55,0x0a,0x07, -0x18,0x03,0x02,0xbe,0xce,0x87,0x0b,0x54,0x94,0x6f,0x5a,0xa2,0x4f,0xb2,0x57,0xfc, -0x74,0x3d,0x58,0x65,0xd2,0x7f,0x1c,0xac,0x7c,0x3f,0x71,0xa7,0x5d,0xda,0x0c,0xcf, -0x6b,0x34,0x23,0xd6,0x48,0xca,0xff,0x00,0x31,0x55,0xeb,0xee,0x96,0x8d,0x5d,0x48, -0x60,0x08,0x3d,0x8d,0x71,0xde,0x29,0xf8,0x4d,0xe1,0xcf,0x15,0x42,0xfe,0x6d,0x8a, -0x59,0xdd,0x31,0x2c,0x2e,0xad,0x00,0x8d,0xf7,0x7a,0x9c,0x70,0xdf,0x88,0x34,0xeb, -0xf0,0xb5,0x48,0xc6,0xf4,0x6a,0x5d,0xf6,0x6a,0xc1,0x3c,0xb9,0xa5,0xee,0x4a,0xe7, -0xc8,0xf4,0x57,0x4b,0xe3,0xbf,0x02,0x5f,0xf8,0x0f,0x56,0xfb,0x25,0xd8,0xf3,0x61, -0x93,0x2d,0x05,0xca,0x8c,0x2c,0x8b,0xfd,0x08,0xee,0x3d,0xeb,0x9a,0xaf,0x89,0xab, -0x4a,0x74,0x26,0xe9,0xd4,0x56,0x68,0xf2,0x65,0x17,0x07,0xcb,0x2d,0xc2,0xac,0x69, -0xfa,0x85,0xce,0x95,0x7b,0x0d,0xdd,0x9c,0xef,0x6d,0x73,0x0b,0x6e,0x8e,0x58,0xdb, -0x05,0x4d,0x57,0xa2,0xb3,0x4d,0xc5,0xa7,0x1d,0x1a,0x25,0x3b,0x6a,0x8f,0xaa,0xfe, -0x13,0xfc,0x4d,0x8f,0xc7,0x9a,0x61,0x86,0xe3,0x6c,0x5a,0xb5,0xb2,0x8f,0x3a,0x31, -0xc0,0x91,0x7f,0xbe,0xbe,0xde,0xa3,0xb1,0xfa,0x8a,0xef,0xc5,0x7c,0x59,0xe1,0x3f, -0x12,0xdc,0x78,0x47,0xc4,0x16,0x7a,0xad,0xb1,0x25,0xe0,0x6f,0x99,0x33,0xfe,0xb1, -0x0f,0xde,0x53,0xf5,0x19,0xaf,0xb2,0xf4,0xeb,0xd8,0x75,0x2b,0x0b,0x7b,0xbb,0x77, -0x12,0x41,0x3c,0x6b,0x24,0x6c,0x3a,0x15,0x23,0x20,0xd7,0xeb,0x39,0x16,0x64,0xf1, -0xd4,0x5c,0x2a,0x3f,0x7e,0x3b,0xf9,0xae,0x8c,0xfa,0x5c,0x1d,0x77,0x5a,0x16,0x96, -0xe8,0xb3,0x48,0x4e,0xd1,0x93,0x41,0xaf,0x29,0xf8,0xf9,0xe3,0x99,0x3c,0x3f,0xa2, -0x45,0xa4,0xd9,0xc8,0x52,0xf3,0x50,0x07,0x7b,0x29,0xe5,0x22,0x1d,0x7f,0x3e,0x9f, -0x4c,0xd7,0xb5,0x8b,0xc4,0xc3,0x07,0x46,0x55,0xa7,0xb2,0x3a,0xea,0xd4,0x54,0xa0, -0xe6,0xfa,0x1c,0xff,0x00,0xc5,0x1f,0x8e,0xb2,0x2c,0xb3,0x69,0x5e,0x1b,0x94,0x2e, -0xdc,0xa4,0xba,0x82,0xf3,0xcf,0x71,0x1f,0xff,0x00,0x15,0xf9,0x7a,0xd7,0x87,0x4f, -0x3c,0xb7,0x33,0x3c,0xb3,0x48,0xf2,0xca,0xec,0x59,0x9d,0xd8,0xb3,0x31,0x3d,0x49, -0x26,0x99,0x45,0x7e,0x39,0x8d,0xc7,0xd7,0xc7,0xd4,0xe7,0xaa,0xfd,0x17,0x44,0x7c, -0xb5,0x5a,0xd3,0xac,0xef,0x20,0xa2,0x8a,0x2b,0xce,0x30,0x0a,0x2b,0xba,0xf0,0xbf, -0xc1,0x8f,0x13,0x78,0xa2,0x14,0xb8,0x4b,0x64,0xb0,0xb5,0x7e,0x56,0x5b,0xc6,0x29, -0xb8,0x7a,0x85,0x00,0x9f,0xd2,0xbb,0x28,0x3f,0x66,0x5b,0xb6,0x51,0xe7,0xeb,0xd1, -0x21,0xee,0x23,0xb6,0x2d,0xfa,0x96,0x15,0xeb,0xd1,0xca,0x31,0xd5,0xd7,0x34,0x29, -0xbb,0x79,0xe9,0xf9,0x9d,0x31,0xc3,0x56,0x9a,0xba,0x89,0xe2,0x74,0x57,0xb9,0x37, -0xec,0xc6,0xf8,0xf9,0x7c,0x42,0x3f,0x1b,0x4f,0xfe,0xce,0xaa,0x5c,0x7e,0xcc,0xfa, -0x8a,0xa9,0xf2,0x35,0xab,0x59,0x0f,0x61,0x24,0x2c,0x9f,0xc8,0x9a,0xdd,0xe4,0x59, -0x82,0xff,0x00,0x97,0x7f,0x8a,0xff,0x00,0x32,0xfe,0xa7,0x5d,0x7d,0x93,0xc6,0x28, -0xaf,0x47,0xd4,0xbe,0x01,0x78,0xb2,0xc4,0x33,0x43,0x05,0xb5,0xf2,0x8f,0xf9,0xe1, -0x38,0xcf,0xe4,0xc0,0x57,0x15,0xac,0x78,0x6b,0x56,0xf0,0xfb,0xed,0xd4,0xb4,0xdb, -0x9b,0x2e,0x70,0x1a,0x68,0xc8,0x53,0xf4,0x3d,0x0d,0x79,0xd5,0xb0,0x58,0x9c,0x3e, -0xb5,0x69,0xb5,0xf2,0x30,0x95,0x2a,0x90,0xf8,0xa3,0x63,0xac,0xf8,0x1d,0xa4,0x0d, -0x57,0xe2,0x25,0x83,0x32,0x6e,0x8e,0xd5,0x5e,0xe1,0xbd,0xb0,0x30,0xa7,0xfe,0xfa, -0x65,0xaf,0xab,0x07,0x4a,0xf0,0x8f,0xd9,0x9f,0x48,0x05,0xb5,0x9d,0x51,0x97,0xfb, -0x96,0xc8,0x7f,0xf1,0xe6,0xff,0x00,0xd9,0x6b,0xde,0x2b,0xf4,0xce,0x1d,0xa3,0xec, -0xb0,0x2a,0x5f,0xcc,0xdb,0xfd,0x3f,0x43,0xe8,0x30,0x30,0xe5,0xa3,0x7e,0xe1,0x45, -0x14,0x57,0xd3,0x9e,0x80,0x55,0x2d,0x66,0x4f,0x2b,0x4a,0xbb,0x6f,0x48,0xcd,0x5d, -0xac,0x7f,0x16,0xcb,0xe4,0x78,0x7a,0xf9,0xff,0x00,0xe9,0x99,0xac,0xea,0x3b,0x41, -0xb2,0x64,0xed,0x16,0xcf,0x83,0x7e,0x27,0xcf,0xe7,0x78,0xa6,0xf4,0x83,0x9c,0x12, -0x3f,0x5a,0xf9,0xc3,0xe2,0xbc,0x5f,0xda,0x1a,0xa6,0x95,0x65,0xb7,0x79,0xb8,0xbd, -0x82,0x1d,0x9d,0x77,0x6e,0x91,0x57,0x1f,0xad,0x7d,0x01,0xe3,0xa9,0xbc,0xdd,0x7a, -0xf5,0xb3,0x9f,0x9c,0x8a,0xf1,0x3b,0xa8,0x3f,0xb4,0xfe,0x36,0xfc,0x3b,0xb2,0xed, -0x37,0x88,0xf4,0xe4,0xfa,0x8f,0xb4,0xc7,0xfe,0x15,0xf9,0xde,0x54,0xb9,0xb1,0x2d, -0xf9,0xfe,0xa7,0xe3,0x33,0x5e,0xd7,0x36,0xa4,0xbf,0xbc,0x7e,0xb6,0xff,0x00,0x61, -0x5a,0xff,0x00,0xcf,0xba,0xfe,0x54,0x56,0xad,0x15,0xfa,0x2f,0x2a,0x3f,0x66,0xb2, -0x1f,0x45,0x14,0x55,0x94,0x14,0xd2,0x69,0xd5,0xc8,0xfc,0x55,0xf1,0x6f,0xfc,0x21, -0x1e,0x01,0xd6,0xb5,0x75,0x60,0xb3,0xc3,0x09,0x48,0x33,0x8f,0xf5,0xad,0xf2,0xa7, -0x07,0xaf,0x24,0x1c,0x7b,0x56,0x75,0x26,0xa9,0xc1,0xce,0x5b,0x23,0x3a,0x93,0x54, -0xa0,0xe7,0x2d,0x96,0xa7,0xc8,0x5f,0x1f,0xbc,0x5f,0xff,0x00,0x09,0x8f,0xc4,0xfd, -0x4e,0x48,0xa4,0x2f,0x69,0x64,0x45,0x94,0x18,0x24,0x8c,0x26,0x77,0x11,0xf5,0x62, -0xdf,0xa5,0x7b,0xc7,0xec,0xaf,0xe1,0x1f,0xec,0x7f,0x08,0x4d,0xab,0x4a,0x98,0x9a, -0xf9,0xfe,0x52,0x47,0x3b,0x05,0x7c,0xa9,0xa0,0x69,0x73,0xf8,0x83,0x5d,0xb5,0xb3, -0x8c,0x19,0x66,0xb9,0x98,0x2f,0xa9,0x24,0x9e,0x4d,0x7e,0x85,0x78,0x67,0x45,0x8b, -0xc3,0xfa,0x0d,0x8e,0x9f,0x12,0x85,0x4b,0x78,0x95,0x30,0x3d,0x40,0xe6,0xbe,0x27, -0x28,0x83,0xc5,0xe3,0x27,0x8a,0x9f,0x4f,0xcd,0xff,0x00,0xc0,0x3e,0x27,0x23,0x84, -0xb1,0x58,0x9a,0x98,0xc9,0xff,0x00,0x57,0x34,0xc5,0x2d,0x14,0x57,0xdd,0x1f,0x74, -0x14,0x51,0x45,0x00,0x32,0x49,0x16,0x18,0xd9,0xdd,0x82,0x22,0x82,0x59,0x98,0xe0, -0x01,0xea,0x6b,0xe0,0x7f,0xda,0x6b,0xfe,0x0a,0xd3,0xe0,0xaf,0x85,0x9a,0x95,0xe7, -0x87,0xbe,0x1e,0x69,0xc9,0xe3,0xcd,0x72,0xdd,0x8c,0x73,0x5f,0xb4,0xa6,0x3d,0x36, -0x17,0x07,0x95,0x0e,0x3e,0x69,0x88,0xff,0x00,0x67,0x0b,0xfe,0xd7,0x5a,0xe2,0xbf, -0xe0,0xad,0x3f,0xb5,0xed,0xe7,0x84,0xed,0x62,0xf8,0x37,0xe1,0x3b,0xf6,0xb6,0xbe, -0xd4,0x2d,0xc5,0xc7,0x88,0x6e,0xa0,0x7c,0x3c,0x76,0xef,0xfe,0xae,0xd8,0x10,0x78, -0x2e,0x3e,0x66,0xff,0x00,0x64,0xa8,0xe8,0xc6,0xbe,0x5a,0xfd,0x8a,0x7f,0xe0,0x9d, -0x9a,0xff,0x00,0xed,0x53,0xa7,0xc9,0xe2,0x9d,0x5f,0x55,0x3e,0x15,0xf0,0x3c,0x53, -0x18,0x12,0xed,0x21,0xf3,0x2e,0x6f,0x5d,0x71,0xb9,0x61,0x52,0x40,0x0a,0xbd,0x0b, -0xb6,0x46,0x78,0x00,0xe0,0xe1,0x92,0xfc,0x8c,0xef,0x1a,0xff,0x00,0xc1,0x51,0x7f, -0x68,0x5f,0x17,0xcd,0x37,0x91,0xe2,0xeb,0x7f,0x0e,0xdb,0x3b,0x16,0x5b,0x7d,0x1b, -0x4f,0x86,0x30,0x83,0xb0,0x0e,0xea,0xcf,0xf9,0xb5,0x7d,0x1d,0xff,0x00,0x04,0xc4, -0xf8,0xc5,0xf1,0xb7,0xf6,0x81,0xf8,0xe3,0x7d,0x71,0xe2,0x9f,0x88,0x1a,0xe6,0xad, -0xe0,0xff,0x00,0x0f,0xd8,0xbd,0xd5,0xe5,0xb5,0xc3,0x29,0x86,0x79,0xe4,0xcc,0x70, -0xc4,0xc7,0x6e,0x47,0x57,0x93,0x03,0xfe,0x79,0x57,0xc9,0xbf,0xb7,0x6f,0xc0,0x4f, -0x01,0xfe,0xcd,0x7f,0x18,0x6d,0xbc,0x0b,0xe0,0x8d,0x57,0x58,0xd5,0xde,0xd7,0x4f, -0x8e,0xe3,0x53,0x9f,0x57,0x9e,0x29,0x19,0x27,0x90,0x96,0x58,0xc0,0x8e,0x34,0x0b, -0x88,0xf6,0x31,0xce,0x7f,0xd6,0x0e,0x98,0xaf,0xd3,0xef,0xf8,0x25,0x5f,0xc1,0x81, -0xf0,0xbf,0xf6,0x5f,0xb1,0xd7,0x2e,0xad,0xfc,0xad,0x5f,0xc5,0xf3,0x9d,0x56,0x56, -0x3f,0x7b,0xec,0xff,0x00,0x72,0xdd,0x7d,0x86,0xd0,0x5b,0xfe,0xda,0x50,0x08,0x8f, -0xe3,0x97,0xfc,0x15,0x17,0xc0,0x9f,0x00,0x7e,0x2c,0xeb,0xfe,0x01,0xd7,0xfc,0x21, -0xe2,0x5b,0xbd,0x43,0x48,0x92,0x34,0x92,0xea,0xc4,0x5b,0xb4,0x32,0x07,0x89,0x24, -0x56,0x5d,0xd2,0x29,0xe8,0xe3,0xb7,0x50,0x6b,0xe8,0x3f,0xd9,0xdb,0xe3,0xe6,0x87, -0xfb,0x4a,0xfc,0x30,0xb3,0xf1,0xc7,0x87,0x6c,0xef,0xac,0x34,0xcb,0x99,0xe5,0xb7, -0x58,0x35,0x15,0x45,0x98,0x34,0x6d,0xb5,0xb2,0x15,0x98,0x63,0x3d,0x39,0xaf,0xc2, -0xdf,0xdb,0xb3,0xc7,0x76,0x9f,0x11,0xbf,0x6b,0x6f,0x89,0x5a,0xcd,0x84,0xbe,0x75, -0x90,0xd4,0xbe,0xc5,0x13,0x8e,0x84,0x5b,0xc6,0x90,0x12,0x3d,0x8b,0x46,0xc7,0xf1, -0xaf,0xd8,0xaf,0xf8,0x27,0x2f,0x81,0x67,0xf0,0x0f,0xec,0x75,0xf0,0xfa,0xd2,0xe5, -0x59,0x2e,0x2f,0xed,0xa4,0xd5,0x59,0x58,0x60,0x81,0x71,0x2b,0x4a,0x9f,0xf8,0xe3, -0x2d,0x03,0x4f,0x53,0xe9,0x19,0xa7,0x5b,0x78,0x9e,0x49,0x18,0x24,0x68,0xa5,0x99, -0x98,0xe0,0x00,0x3b,0xd7,0xc5,0xfe,0x2d,0xd7,0x5f,0xc4,0xde,0x25,0xd4,0x75,0x37, -0x27,0xfd,0x22,0x66,0x65,0x07,0xb2,0x74,0x51,0xf8,0x00,0x05,0x7d,0x29,0xf1,0xbf, -0xc4,0x5f,0xd8,0x1e,0x01,0xbc,0x54,0x70,0xb7,0x17,0xc4,0x5a,0x46,0x3d,0x43,0x7d, -0xff,0x00,0xfc,0x74,0x37,0xe9,0x5f,0x2a,0x57,0xe7,0x1c,0x51,0x8a,0xe6,0x9c,0x30, -0xeb,0xa6,0xaf,0xe7,0xb1,0xe1,0xe6,0x15,0x2f,0x25,0x4f,0xe6,0x14,0x51,0x45,0x7c, -0x29,0xe3,0x9a,0x5e,0x1a,0x92,0xc6,0x2d,0x7f,0x4f,0x93,0x52,0x25,0x6c,0x23,0x99, -0x5e,0x6d,0xab,0xb8,0x95,0x07,0x24,0x60,0x7a,0xe3,0x1f,0x8d,0x7d,0x2b,0x1f,0xc7, -0x9f,0x06,0xb0,0x03,0xed,0xf2,0xaf,0xd6,0xda,0x4f,0xf0,0xaf,0x96,0x28,0xaf,0x6b, -0x01,0x9b,0x56,0xcb,0xa3,0x28,0xd2,0x49,0xdf,0xbf,0xfc,0x39,0xd7,0x47,0x13,0x3a, -0x09,0xa8,0xad,0xcf,0xaa,0xcf,0xc7,0x5f,0x06,0x81,0x9f,0xed,0x37,0xff,0x00,0xc0, -0x69,0x3f,0xf8,0x9a,0xc7,0xd6,0x3f,0x68,0xcf,0x0e,0xda,0x44,0xc2,0xc6,0xde,0xef, -0x50,0x97,0xb0,0xd9,0xe5,0xaf,0xe2,0x4f,0x3f,0xa5,0x7c,0xd9,0x45,0x7a,0x53,0xe2, -0x6c,0x6c,0x95,0x92,0x8a,0xf9,0x7f,0xc1,0x37,0x79,0x85,0x67,0xb5,0x8e,0xa7,0xc7, -0x5f,0x11,0x35,0x5f,0x1e,0xdd,0xab,0xde,0x32,0xc3,0x69,0x19,0x26,0x1b,0x48,0xbe, -0xe2,0x7b,0x9f,0x53,0xee,0x7f,0x0c,0x57,0x2d,0x45,0x6b,0xe9,0x1e,0x12,0xd6,0xb5, -0xed,0xa7,0x4f,0xd2,0xee,0xae,0x91,0xba,0x3c,0x71,0x1d,0x9f,0xf7,0xd7,0x4f,0xd6, -0xbe,0x72,0x73,0xad,0x8b,0xa8,0xe5,0x2b,0xca,0x4f,0xe6,0x70,0xc9,0xce,0xac,0xae, -0xf5,0x66,0x45,0x69,0x78,0x7b,0xc3,0xb7,0xfe,0x29,0xd5,0x21,0xd3,0xf4,0xe8,0x0c, -0xd7,0x12,0x1f,0xf8,0x0a,0x0e,0xec,0xc7,0xb0,0x15,0xe9,0x5e,0x18,0xfd,0x9d,0x75, -0x7d,0x45,0xd2,0x4d,0x66,0xe2,0x3d,0x36,0x0e,0x09,0x8a,0x32,0x24,0x94,0x8f,0x4e, -0x38,0x1f,0x99,0xfa,0x57,0xb9,0x78,0x4f,0xc1,0x7a,0x57,0x82,0xec,0x3e,0xcb,0xa6, -0x5b,0x08,0xb3,0x83,0x24,0xad,0xcc,0x92,0x1f,0x56,0x6e,0xff,0x00,0x4e,0x83,0xb0, -0x15,0xf4,0x79,0x7f,0x0f,0xe2,0x31,0x12,0x52,0xc4,0x2e,0x48,0xfe,0x2f,0xfa,0xf3, -0x3b,0xa8,0x60,0xa7,0x37,0x79,0xe8,0x8a,0xfe,0x01,0xf0,0x5d,0xaf,0x81,0xbc,0x3f, -0x0e,0x9f,0x6e,0x7c,0xc9,0x4f,0xcf,0x3c,0xf8,0xc1,0x95,0xcf,0x53,0xf4,0xec,0x3d, -0x85,0x74,0xb4,0x94,0xb5,0xfa,0x7d,0x2a,0x51,0xa3,0x05,0x4e,0x0a,0xc9,0x1f,0x43, -0x18,0xa8,0xa5,0x15,0xb0,0x51,0x45,0x15,0xa9,0x41,0x5e,0x6f,0xf1,0xeb,0x5c,0xfe, -0xc9,0xf0,0x05,0xc4,0x0a,0xdb,0x65,0xbe,0x91,0x6d,0xd7,0x1e,0x99,0xdc,0xdf,0xa0, -0x23,0xf1,0xaf,0x47,0x3d,0x2b,0xe7,0x8f,0xda,0x4f,0x5b,0xfb,0x4e,0xbd,0xa6,0x69, -0x68,0xdf,0x25,0xac,0x26,0x67,0x03,0xfb,0xce,0x70,0x3f,0x20,0xbf,0xad,0x78,0x79, -0xd5,0x7f,0xab,0xe0,0x6a,0x49,0x6e,0xf4,0xfb,0xce,0x4c,0x5c,0xf9,0x28,0xc9,0x9e, -0x39,0x45,0x14,0x57,0xe3,0x67,0xca,0x85,0x7a,0x67,0xec,0xfb,0xa2,0xff,0x00,0x69, -0x78,0xec,0x5d,0xba,0x93,0x1d,0x84,0x0d,0x2e,0x7b,0x07,0x6f,0x95,0x41,0xfc,0x0b, -0x1f,0xc2,0xbc,0xce,0xbe,0x89,0xfd,0x9b,0x74,0x41,0x6b,0xe1,0xdd,0x47,0x54,0x65, -0x22,0x4b,0xc9,0xc4,0x4a,0x4f,0x42,0x91,0x8e,0x08,0xfc,0x59,0x87,0xe1,0x5e,0xf6, -0x47,0x43,0xdb,0xe3,0xe0,0x9e,0xcb,0x5f,0xbb,0xfe,0x09,0xd9,0x84,0x87,0x3d,0x68, -0xf9,0x6a,0x7b,0x08,0xe9,0x4b,0x45,0x15,0xfb,0x11,0xf5,0x21,0x48,0x4e,0x29,0x6a, -0x9e,0xad,0xa8,0xc5,0xa4,0xe9,0xb7,0x57,0xb3,0x9c,0x43,0x6f,0x13,0x4a,0xe7,0xd9, -0x41,0x27,0xf9,0x54,0xc9,0xa8,0xa6,0xde,0xc2,0x6e,0xda,0xb3,0xc3,0x3f,0x68,0x9f, -0x1b,0xb5,0xc5,0xdc,0x3e,0x1b,0xb5,0x90,0x88,0xa2,0x02,0x6b,0xbd,0xa7,0xef,0x31, -0xe5,0x50,0xfd,0x07,0xcd,0x8f,0x71,0xe9,0x5e,0x27,0x57,0x35,0x9d,0x52,0x7d,0x6f, -0x55,0xbb,0xd4,0x2e,0x4e,0x67,0xb9,0x95,0xa5,0x7f,0xa9,0x39,0xc7,0xd0,0x74,0xfc, -0x2a,0x9d,0x7e,0x25,0x98,0x62,0xe5,0x8d,0xc4,0xca,0xb3,0xdb,0xa7,0xa7,0x43,0xe4, -0xab,0xd5,0x75,0xaa,0x39,0x30,0xa2,0x8a,0x2b,0xce,0x30,0x3a,0x5f,0x87,0xde,0x0a, -0x9f,0xc7,0x5e,0x22,0x86,0xc2,0x32,0x63,0xb7,0x5f,0xde,0x5c,0x4c,0x07,0xdc,0x8f, -0xbf,0xe2,0x7a,0x0f,0xfe,0xb5,0x7d,0x71,0xa3,0x69,0x16,0x9a,0x16,0x9b,0x05,0x8d, -0x8c,0x2b,0x6f,0x6b,0x02,0xed,0x48,0xd0,0x71,0xf5,0x3e,0xa4,0xf5,0x27,0xa9,0xae, -0x13,0xe0,0x4f,0x84,0xd7,0xc3,0xde,0x0d,0x8a,0xf2,0x44,0x02,0xf3,0x52,0xc5,0xc3, -0x92,0x39,0x11,0xff,0x00,0xcb,0x31,0xf9,0x73,0xf5,0x63,0x5e,0x93,0x5f,0xad,0x64, -0x59,0x7c,0x70,0x98,0x75,0x52,0x4b,0xdf,0x9e,0xaf,0xc9,0x74,0x47,0xd2,0xe0,0xe8, -0x2a,0x54,0xd4,0x9e,0xec,0x4a,0x5a,0x28,0xaf,0xa6,0x3d,0x00,0xa2,0x8a,0x28,0x03, -0x8c,0xf8,0xb1,0xe1,0x58,0xbc,0x55,0xe0,0xbb,0xe8,0x76,0x03,0x75,0x6e,0x86,0xe2, -0xdd,0xb1,0xc8,0x75,0x19,0xc0,0xfa,0x8c,0x8f,0xc6,0xbe,0x47,0xaf,0xb9,0xe4,0x50, -0xe8,0x54,0x8c,0x82,0x30,0x6b,0xe2,0x0d,0x46,0x11,0x6f,0xa8,0xdd,0x42,0x3a,0x47, -0x2b,0xa0,0xfc,0x09,0x15,0xf9,0xd7,0x14,0xd0,0x8c,0x67,0x4e,0xb2,0xdd,0xdd,0x3f, -0x91,0xe1,0x66,0x30,0x49,0xc6,0x5d,0xca,0xf4,0x51,0x45,0x7c,0x21,0xe3,0x85,0x7d, -0x49,0xf0,0x17,0x5a,0x6d,0x57,0xe1,0xf5,0xb4,0x4e,0xe5,0xe4,0xb2,0x95,0xed,0xc9, -0x3e,0x83,0xe6,0x51,0xf8,0x2b,0x01,0xf8,0x57,0xcb,0x75,0xf4,0x27,0xec,0xcf,0x29, -0x3a,0x0e,0xb3,0x1f,0x65,0xba,0x56,0xfc,0xd3,0x1f,0xd2,0xbe,0xa7,0x86,0xea,0x38, -0x63,0x94,0x57,0x54,0xff,0x00,0xcc,0xf4,0x70,0x12,0x6a,0xb5,0xbb,0x9e,0xcc,0x6b, -0xe5,0x2f,0x8e,0x1a,0x9b,0xea,0x3f,0x11,0xb5,0x14,0x66,0x2d,0x1d,0xa8,0x48,0x23, -0x1e,0x80,0x28,0x27,0xff,0x00,0x1e,0x66,0xaf,0xab,0x3b,0x57,0xc8,0xdf,0x17,0x6d, -0x5a,0xd3,0xe2,0x3e,0xb8,0xad,0xd5,0xa6,0x12,0x0f,0xa3,0x28,0x23,0xf9,0xd7,0xd3, -0x71,0x3c,0xa4,0xb0,0x91,0x4b,0x67,0x2f,0xd1,0x9d,0xf9,0x83,0xfd,0xd2,0xf5,0x38, -0xfa,0x28,0xa2,0xbf,0x30,0x3e,0x7c,0x2b,0xb7,0xf8,0x35,0xa3,0xd9,0xeb,0x5e,0x3f, -0xb0,0x8a,0xf7,0x6b,0x45,0x18,0x69,0x96,0x37,0xe4,0x48,0xca,0x32,0xa3,0xf3,0xe7, -0xf0,0xae,0x22,0xac,0xe9,0xba,0x8d,0xce,0x91,0x7f,0x05,0xed,0xa4,0xcd,0x05,0xcc, -0x0e,0x1e,0x39,0x13,0xaa,0x91,0x5d,0x38,0x6a,0x91,0xa3,0x5e,0x15,0x26,0xae,0x93, -0x4e,0xc5,0xd3,0x92,0x8c,0xd4,0x9e,0xc7,0xdb,0xea,0x38,0xc5,0x3b,0x15,0xe2,0xbe, -0x10,0xfd,0xa3,0x2c,0xe7,0x8d,0x21,0xf1,0x0d,0xb3,0xda,0xcc,0x38,0x37,0x56,0xeb, -0xba,0x33,0xee,0x57,0xa8,0xfc,0x33,0x5e,0xa7,0xa3,0x78,0xbb,0x46,0xf1,0x0a,0x06, -0xd3,0xb5,0x2b,0x6b,0xbf,0x55,0x8e,0x41,0xb8,0x7d,0x57,0xa8,0xaf,0xd9,0x70,0xb9, -0x86,0x17,0x16,0x93,0xa5,0x35,0xe9,0xd7,0xee,0x3e,0xae,0x9d,0x7a,0x75,0x7e,0x16, -0x6b,0xe2,0x82,0x29,0x37,0x52,0xe6,0xbd,0x23,0x70,0xc7,0xe3,0x4c,0x9e,0xde,0x3b, -0x98,0xda,0x39,0x51,0x64,0x8d,0x86,0x19,0x1d,0x72,0x08,0xf4,0x22,0xa4,0xa2,0x95, -0x93,0xdc,0x2c,0x50,0xd2,0x74,0x2b,0x0d,0x06,0x29,0x62,0xd3,0xed,0x21,0xb3,0x8a, -0x49,0x0c,0xad,0x1c,0x08,0x15,0x4b,0x10,0x01,0x38,0x1f,0x41,0x57,0xe8,0xa2,0x94, -0x62,0xa2,0xad,0x15,0x64,0x24,0x92,0xd1,0x05,0x14,0x51,0x54,0x30,0xae,0x67,0xe2, -0x24,0xfe,0x47,0x85,0x2f,0x5b,0xa1,0xdb,0x8a,0xe9,0xab,0x88,0xf8,0xbd,0x71,0xf6, -0x7f,0x07,0xdc,0x1c,0xe3,0x3f,0xe1,0x5c,0xb8,0xa9,0x72,0xd0,0x9b,0xf2,0x66,0x35, -0x9d,0xa9,0xc9,0x9f,0x08,0x78,0xa6,0x5d,0xfa,0x9d,0xe3,0x67,0xf8,0xcd,0x79,0xb7, -0xc3,0x9b,0x15,0xd7,0x3f,0x6a,0xdf,0x86,0x16,0x6f,0xc8,0x1a,0xd4,0x73,0xe3,0xde, -0x25,0x69,0x47,0xea,0x95,0xdf,0x6b,0xaf,0xba,0x7b,0x86,0xf5,0x63,0x5c,0x9f,0xec, -0xe3,0x0b,0xea,0x3f,0xb6,0xaf,0xc3,0xb4,0x0b,0xb9,0x21,0x96,0xf6,0x66,0xf6,0x0b, -0x67,0x3e,0x0f,0xe6,0x45,0x7c,0x36,0x48,0xaf,0x56,0xe7,0xe4,0x38,0x15,0xed,0x33, -0x9a,0x5e,0xad,0x9f,0xab,0x7b,0x68,0xa5,0xcd,0x15,0xfa,0x21,0xfb,0x08,0xb4,0x51, -0x45,0x22,0xc4,0xcd,0x7c,0xcb,0xfb,0x60,0xf8,0xbc,0xee,0xd1,0xfc,0x33,0x0b,0xe0, -0x1c,0xdf,0x5c,0x80,0x4f,0xba,0xc6,0x3e,0x9f,0x7c,0xfe,0x02,0xbe,0x97,0x95,0xc4, -0x68,0xce,0xc4,0x2a,0xa8,0x24,0x92,0x70,0x00,0xaf,0xcf,0xaf,0x89,0xbe,0x2c,0x93, -0xc6,0xfe,0x3c,0xd6,0x35,0x56,0x72,0xf1,0x4b,0x39,0x8e,0x01,0x9c,0x85,0x89,0x7e, -0x54,0xc7,0xe0,0x33,0xf8,0xd7,0xce,0x67,0x98,0x8f,0x63,0x86,0xf6,0x6b,0x79,0x69, -0xf2,0xea,0x7c,0xc7,0x10,0x62,0x7d,0x96,0x17,0xd9,0x47,0x79,0xbb,0x7c,0xba,0x9e, -0x89,0xfb,0x2d,0x78,0x47,0xfb,0x6b,0xc6,0x8d,0xa9,0xcb,0x1e,0xe8,0x2c,0x17,0x70, -0x27,0xa6,0xf3,0xd2,0xbe,0xc4,0x1d,0x2b,0xca,0x3f,0x67,0x0f,0x08,0xff,0x00,0xc2, -0x37,0xf0,0xfe,0x09,0xe4,0x4d,0xb7,0x17,0xc7,0xce,0x62,0x47,0x38,0xed,0x5e,0xaf, -0x5d,0x19,0x3e,0x1f,0xd8,0x61,0x63,0x7d,0xe5,0xab,0xf9,0xff,0x00,0xc0,0x3d,0x0c, -0xab,0x0d,0xf5,0x6c,0x24,0x62,0xf7,0x7a,0xb1,0x68,0xa2,0x8a,0xf6,0xcf,0x5c,0x29, -0x09,0xa5,0xa4,0xc5,0x00,0x7f,0x37,0xdf,0xb5,0x6f,0x8c,0xaf,0x3c,0x7d,0xfb,0x4a, -0x7c,0x4c,0xd6,0xef,0x9c,0xc9,0x34,0xda,0xfd,0xe4,0x28,0x4f,0x55,0x8a,0x29,0x4c, -0x51,0x2f,0xe1,0x1c,0x68,0x3f,0x0a,0xfd,0x53,0xfd,0x82,0x7f,0x6c,0xcf,0x83,0xf6, -0x1f,0xb3,0x47,0x85,0xfc,0x31,0xa9,0xf8,0xa7,0x4c,0xf0,0xae,0xbb,0xe1,0xbb,0x13, -0x6f,0x77,0xa7,0x6a,0x93,0xad,0xb1,0x99,0x94,0xb3,0x19,0x62,0x67,0x20,0x49,0xbf, -0x24,0xe0,0x1c,0xe4,0x90,0x47,0x4a,0xf8,0x47,0xfe,0x0a,0x39,0xfb,0x2b,0x78,0x83, -0xe0,0x87,0xc7,0x0f,0x10,0xf8,0xa2,0x1d,0x3e,0x69,0xfc,0x11,0xe2,0x7b,0xf9,0x75, -0x1b,0x2d,0x4a,0x35,0xdd,0x1c,0x32,0xca,0xdb,0xe5,0x82,0x4c,0x0f,0x91,0x83,0xb3, -0x6d,0xcf,0x55,0x23,0x07,0x39,0x03,0xe4,0x43,0xc7,0x19,0xaa,0x22,0xf6,0x67,0xaf, -0x6b,0x7a,0xcd,0xcf,0xed,0x4b,0xfb,0x51,0x5c,0xea,0x1a,0x95,0xf2,0x58,0x0f,0x17, -0x78,0x83,0x32,0x5d,0x5d,0xca,0xa8,0xb6,0x76,0xaf,0x20,0x03,0x73,0x36,0x00,0x11, -0xc2,0x00,0xe7,0xfb,0x95,0xfa,0x69,0xfb,0x5b,0xff,0x00,0xc1,0x44,0x3e,0x1f,0x7c, -0x15,0xf8,0x50,0xfe,0x01,0xf8,0x43,0xac,0xda,0x78,0x83,0xc4,0xc7,0x4f,0x5d,0x32, -0xd2,0xe7,0x49,0x71,0x2d,0xa6,0x95,0x08,0x4f,0x2c,0x48,0x65,0x19,0x57,0x90,0x28, -0xf9,0x55,0x49,0xc1,0xc1,0x38,0xc6,0x0f,0xe3,0x6f,0x5a,0xf5,0x3f,0x80,0xff,0x00, -0xb3,0x47,0xc4,0x3f,0xda,0x3b,0xc4,0x91,0x69,0x3e,0x0b,0xd0,0x66,0xbc,0x8b,0x78, -0x17,0x3a,0x9c,0xe0,0xc7,0x65,0x6a,0x33,0xcb,0x4b,0x2e,0x30,0x31,0x9f,0xba,0x32, -0xc7,0xb0,0x34,0x09,0x17,0x3f,0x65,0xcf,0x80,0x7a,0xc7,0xed,0x37,0xf1,0xb7,0x43, -0xf0,0x8d,0x92,0xcc,0x6d,0x27,0x9b,0xed,0x3a,0xb5,0xf8,0xc9,0xfb,0x35,0xa2,0x90, -0x65,0x90,0x9e,0x79,0x3f,0x75,0x73,0xd5,0x99,0x6b,0xfa,0x2e,0xd2,0xb4,0xcb,0x6d, -0x13,0x4b,0xb4,0xd3,0xec,0xa2,0x58,0x2c,0xed,0x21,0x48,0x21,0x89,0x06,0x02,0x22, -0xa8,0x55,0x03,0xe8,0x00,0xaf,0x0f,0xfd,0x90,0xff,0x00,0x64,0x5f,0x0d,0x7e,0xc9, -0xbe,0x00,0x1a,0x4e,0x98,0xcb,0xaa,0x78,0x86,0xfb,0x6c,0x9a,0xb6,0xb6,0xf1,0xed, -0x7b,0x99,0x00,0xe1,0x50,0x73,0xb2,0x35,0xe7,0x6a,0xe4,0xf5,0x24,0x92,0x6b,0xdd, -0x2f,0x6f,0x22,0xb0,0xb4,0x9e,0xe6,0x76,0xd9,0x0c,0x31,0xb4,0x8e,0xc7,0xb2,0x81, -0x92,0x7f,0x2a,0x87,0x24,0x95,0xd9,0x5b,0x23,0xe7,0x6f,0xda,0x2f,0xc4,0x7f,0xda, -0x1e,0x26,0xb5,0xd2,0xa3,0x6c,0xc7,0x61,0x16,0xe7,0x19,0xe3,0xcc,0x7c,0x1f,0xd1, -0x42,0xfe,0x75,0xe4,0x95,0xa1,0xe2,0x0d,0x62,0x4f,0x10,0x6b,0x97,0xfa,0x94,0xbf, -0x7e,0xea,0x66,0x97,0x1e,0x80,0x9e,0x07,0xe0,0x30,0x3f,0x0a,0xcf,0xaf,0xc4,0x31, -0xf8,0x87,0x8a,0xc5,0x4e,0xb7,0x77,0xf8,0x74,0x3e,0x4a,0xb5,0x4f,0x6b,0x51,0xcc, -0x28,0xa2,0xba,0x5f,0x87,0x1e,0x1f,0xff,0x00,0x84,0x9f,0xc6,0xba,0x5d,0x8b,0x2e, -0xe8,0x4c,0xa2,0x49,0x81,0xe9,0xb1,0x7e,0x66,0x07,0xeb,0x8c,0x7e,0x35,0xcb,0x46, -0x94,0xab,0x54,0x8d,0x28,0xef,0x27,0x6f,0xbc,0xce,0x31,0x73,0x92,0x8a,0xea,0x61, -0x49,0xa7,0xdd,0x43,0xfe,0xb2,0xda,0x64,0xff,0x00,0x7a,0x32,0x2a,0xb9,0x18,0x35, -0xf7,0x40,0x41,0x80,0x36,0x8c,0x56,0x37,0x88,0x3c,0x17,0xa3,0x78,0x9e,0xd9,0xe1, -0xd4,0x34,0xe8,0x27,0xdc,0x31,0xe6,0x6c,0x02,0x45,0xf7,0x0c,0x39,0x15,0xf7,0x15, -0x38,0x56,0x49,0x5e,0x9d,0x5b,0xbf,0x35,0xff,0x00,0x04,0xf5,0xe5,0x97,0x3b,0x7b, -0xb2,0x3e,0x30,0xa2,0xba,0x4f,0x88,0x3e,0x0e,0x97,0xc0,0xfe,0x26,0xb8,0xd3,0x5d, -0x8c,0x90,0xe0,0x4b,0x04,0xad,0xd5,0xe3,0x3d,0x09,0xf7,0x18,0x20,0xfb,0x8a,0xe6, -0xeb,0xe1,0xaa,0xd2,0x9d,0x1a,0x8e,0x9c,0xd5,0x9a,0xd0,0xf2,0x25,0x17,0x06,0xe2, -0xfa,0x05,0x74,0x7e,0x0d,0xf1,0xde,0xab,0xe0,0x9d,0x4a,0x3b,0x8b,0x2b,0x87,0x36, -0xfb,0x81,0x96,0xd5,0x98,0xf9,0x72,0xaf,0x70,0x47,0x63,0xef,0xd4,0x57,0x39,0x45, -0x14,0xaa,0xce,0x8c,0xd5,0x4a,0x6e,0xcd,0x04,0x64,0xe0,0xf9,0xa3,0xb9,0xf7,0x06, -0x95,0xa8,0xc3,0xab,0xe9,0xb6,0xd7,0xb6,0xed,0xba,0x0b,0x88,0xd6,0x54,0x3e,0xc4, -0x64,0x7f,0x3a,0xb7,0x5c,0x27,0xc1,0x2b,0xef,0xb7,0x7c,0x37,0xd2,0x49,0x39,0x68, -0x83,0xc2,0x7f,0xe0,0x2e,0x40,0xfd,0x31,0x5d,0xdd,0x7e,0xe5,0x86,0xab,0xed,0xe8, -0x42,0xaf,0x74,0x9f,0xde,0x8f,0xaf,0xa7,0x2e,0x78,0x29,0x77,0x0a,0x28,0xa2,0xba, -0x4d,0x02,0x8a,0x28,0xa0,0x04,0x27,0x00,0xd7,0xc7,0x1f,0x11,0x35,0xcf,0xf8,0x48, -0xbc,0x6d,0xac,0x5f,0x2b,0x07,0x8d,0xa7,0x64,0x8c,0x8e,0x85,0x17,0xe5,0x53,0xf8, -0x80,0x0f,0xe3,0x5f,0x54,0x78,0xf7,0x5d,0xff,0x00,0x84,0x73,0xc1,0xfa,0xb6,0xa0, -0xae,0x12,0x48,0xad,0xdb,0xcb,0x2d,0xd3,0x79,0x18,0x4f,0xfc,0x78,0x8a,0xf8,0xcc, -0x0c,0x0c,0x57,0xc0,0x71,0x4d,0x7d,0x29,0xd0,0x5e,0xaf,0xf2,0x5f,0xa9,0xe2,0xe6, -0x33,0xf8,0x60,0x2d,0x14,0x51,0x5f,0x9f,0x1e,0x20,0x57,0xd8,0xdf,0x0e,0xb4,0x4f, -0xec,0x0f,0x04,0xe8,0xf6,0x44,0x61,0xd6,0xdd,0x5d,0xc7,0xfb,0x4d,0xf3,0x37,0xea, -0xc6,0xbe,0x53,0xf0,0x5e,0x91,0xfd,0xbf,0xe2,0xcd,0x27,0x4f,0xc6,0x56,0x7b,0x94, -0x0e,0x3f,0xd9,0x07,0x2d,0xfa,0x03,0x5f,0x68,0x28,0x01,0x40,0x1c,0x01,0x5f,0x7f, -0xc2,0xd4,0x3f,0x89,0x5d,0xfa,0x7e,0xaf,0xf4,0x3d,0xac,0xba,0x1f,0x14,0xfe,0x41, -0x4b,0x45,0x15,0xfa,0x09,0xed,0x85,0x79,0xb7,0xc7,0xed,0x63,0xfb,0x2f,0xe1,0xfc, -0xf0,0xa9,0x2b,0x25,0xf4,0xc9,0x6e,0xa4,0x7a,0x67,0x73,0x7e,0x88,0x47,0xe3,0x5e, -0x93,0x5e,0x17,0xfb,0x4e,0x6a,0x0e,0xb1,0xe8,0x36,0x4a,0x7e,0x46,0x32,0xcc,0xc3, -0xdc,0x6d,0x03,0xf9,0xb5,0x78,0xd9,0xc5,0x57,0x47,0x01,0x56,0x4b,0xb5,0xbe,0xfd, -0x0e,0x5c,0x54,0xb9,0x28,0xc9,0x9e,0x11,0x45,0x14,0x57,0xe3,0x07,0xca,0x05,0x5e, -0xd0,0xb4,0xc6,0xd6,0xb5,0xab,0x0d,0x3d,0x0e,0x1a,0xea,0x74,0x87,0x3e,0x9b,0x88, -0x19,0xaa,0x35,0xda,0x7c,0x1b,0xb4,0x5b,0xdf,0x89,0x3a,0x2a,0x3f,0xdd,0x57,0x79, -0x3f,0x15,0x8d,0x88,0xfd,0x40,0xae,0xac,0x2d,0x3f,0x6d,0x5e,0x14,0xdf,0x56,0x97, -0xe2,0x69,0x4e,0x3c,0xd3,0x8c,0x7c,0xcf,0xac,0xad,0xa0,0x8e,0xd6,0xde,0x28,0x62, -0x50,0x91,0x46,0xa1,0x11,0x47,0x40,0x00,0xc0,0x02,0xa5,0xa4,0x14,0xb5,0xfb,0xaa, -0x49,0x2b,0x23,0xec,0x42,0x8a,0x28,0xa6,0x01,0x45,0x14,0x50,0x04,0x73,0x38,0x86, -0x27,0x76,0x38,0x55,0x04,0x93,0xf8,0x57,0xc3,0xd7,0x93,0x7d,0xa6,0xf2,0x79,0xbf, -0xe7,0xa4,0x8c,0xff,0x00,0x99,0xcd,0x7d,0x79,0xf1,0x37,0x5a,0x5d,0x07,0xc0,0xba, -0xc5,0xd1,0x38,0x73,0x01,0x8a,0x3c,0x1e,0x77,0x3f,0xca,0x3f,0x9e,0x7f,0x0a,0xf8, -0xf6,0xbf,0x3a,0xe2,0x9a,0xa9,0xce,0x95,0x25,0xd1,0x36,0x78,0x59,0x8c,0xb5,0x8c, -0x42,0x8a,0x28,0xaf,0x84,0x3c,0x70,0xaf,0xa1,0xff,0x00,0x66,0x98,0x36,0xf8,0x6b, -0x56,0x97,0x04,0x6f,0xbb,0x0b,0x9f,0xa2,0x0f,0xf1,0xaf,0x9e,0x3a,0xd7,0xd5,0x5f, -0x02,0xf4,0xa6,0xd3,0x3e,0x1d,0x58,0x3b,0xae,0xd9,0x2e,0x9d,0xee,0x08,0xf6,0x27, -0x0b,0xff,0x00,0x8e,0x81,0x5f,0x55,0xc3,0x74,0xdc,0xf1,0xdc,0xdd,0x93,0xff,0x00, -0x23,0xd1,0xc0,0x46,0xf5,0xaf,0xd9,0x1e,0x81,0x8e,0x2b,0xc3,0xbf,0x68,0x6f,0x02, -0xcd,0x71,0xe4,0xf8,0x8e,0xce,0x33,0x20,0x89,0x04,0x57,0x61,0x47,0x21,0x73,0xf2, -0xbf,0xe1,0x9c,0x1f,0xc3,0xde,0xbd,0xc4,0x53,0x66,0x85,0x27,0x8d,0xa3,0x91,0x16, -0x44,0x71,0xb5,0x95,0x86,0x41,0x1e,0x86,0xbf,0x46,0xc7,0x60,0xe1,0x8e,0xa1,0x2a, -0x33,0xeb,0xf8,0x33,0xdd,0xad,0x49,0x56,0x83,0x83,0x3e,0x17,0xa2,0xbd,0xc7,0xe2, -0x1f,0xec,0xff,0x00,0x20,0x96,0x5b,0xff,0x00,0x0d,0x60,0xa3,0x65,0x9b,0x4f,0x76, -0xc1,0x53,0xff,0x00,0x4c,0xd8,0xff,0x00,0x23,0xef,0xcf,0x41,0x5e,0x2d,0x7f,0xa7, -0x5d,0x69,0x57,0x2f,0x6f,0x79,0x6f,0x2d,0xac,0xe9,0xf7,0xa3,0x95,0x0a,0xb0,0xfc, -0x0d,0x7e,0x43,0x8c,0xcb,0xf1,0x18,0x19,0xb8,0xd5,0x8e,0x9d,0xfa,0x33,0xe6,0x2a, -0xd0,0x9d,0x17,0x69,0x22,0xbd,0x14,0x51,0x5e,0x69,0x80,0x52,0xab,0x14,0x60,0xca, -0x4a,0xb0,0x39,0x04,0x1c,0x11,0x49,0x45,0x34,0xed,0xaa,0x03,0xab,0xd1,0xbe,0x29, -0xf8,0xa7,0x41,0xda,0xb6,0xba,0xcd,0xc3,0x46,0x08,0xfd,0xdd,0xc1,0xf3,0x94,0x8f, -0x4f,0x9b,0x24,0x0f,0xa6,0x2b,0xd1,0x34,0x0f,0xda,0x56,0x65,0x65,0x4d,0x6b,0x4a, -0x57,0x52,0x79,0x9a,0xc9,0x88,0x20,0x7f,0xb8,0xc7,0x9f,0xfb,0xe8,0x57,0x88,0x51, -0x5e,0xae,0x1f,0x35,0xc6,0x61,0xbf,0x87,0x51,0xdb,0xb3,0xd5,0x7e,0x27,0x4c,0x31, -0x35,0x69,0xfc,0x32,0x3e,0xc3,0xf0,0xc7,0xc4,0x9f,0x0f,0xf8,0xb8,0x2a,0xe9,0xf7, -0xe8,0x6e,0x08,0xcf,0xd9,0xa5,0xf9,0x25,0x1f,0xf0,0x13,0xd7,0xf0,0xcd,0x74,0xf9, -0xaf,0x85,0x91,0xda,0x37,0x57,0x46,0x2a,0xca,0x72,0x18,0x1c,0x10,0x6b,0xd6,0x7e, -0x1c,0xfc,0x75,0xbe,0xd1,0x25,0x8a,0xc7,0x5e,0x77,0xbf,0xd3,0xce,0x14,0x5c,0x9e, -0x66,0x8b,0xeb,0xfd,0xe1,0xf5,0xe7,0xeb,0xd2,0xbe,0xcb,0x01,0xc4,0xb0,0xaa,0xd5, -0x3c,0x52,0xe5,0x7d,0xd6,0xdf,0x3e,0xc7,0xab,0x47,0x1e,0xa4,0xf9,0x6a,0x2b,0x1f, -0x48,0xd1,0x50,0x59,0x5e,0xc1,0xa8,0x5a,0xc5,0x73,0x6d,0x2a,0xcf,0x6f,0x2a,0x87, -0x8e,0x44,0x39,0x56,0x53,0xd0,0x83,0x53,0xd7,0xdb,0xa6,0x9a,0xba,0x3d,0x7d,0xc2, -0x8a,0x28,0xa6,0x01,0x5e,0x5f,0xf1,0xfa,0xf4,0xda,0xf8,0x48,0xa8,0xfe,0x2c,0xd7, -0xa8,0x57,0x8a,0xfe,0xd2,0xd7,0x5e,0x57,0x87,0xe3,0x4c,0xff,0x00,0x09,0x38,0xaf, -0x2f,0x33,0x97,0x2e,0x12,0xa3,0xf2,0x38,0xb1,0xb2,0xe5,0xc3,0xcd,0xf9,0x1f,0x18, -0x6b,0x32,0x65,0x65,0x6e,0xe4,0x93,0x55,0xff,0x00,0x62,0x7b,0x51,0xaa,0x7e,0xd9, -0x36,0xcf,0x8c,0x8b,0x2d,0x16,0xfa,0xe7,0xe8,0x49,0x8a,0x3c,0xff,0x00,0xe4,0x43, -0xf9,0xd1,0xad,0xbe,0xdb,0x69,0x0f,0xb1,0xad,0x6f,0xf8,0x27,0x95,0x9f,0xdb,0x3f, -0x6a,0x3f,0x15,0x5e,0xe3,0x22,0xd7,0xc3,0x72,0xc5,0xbb,0xd0,0xc9,0x73,0x01,0xff, -0x00,0xda,0x66,0xbe,0x63,0x21,0x8f,0xbd,0x73,0xf2,0xcc,0x8d,0x73,0xe7,0x09,0xf6, -0x4c,0xfd,0x29,0xdb,0x45,0x1c,0xd1,0x5f,0x79,0x73,0xf5,0xeb,0x21,0xd4,0x51,0x49, -0x48,0xa3,0xcd,0x3f,0x68,0x5f,0x18,0x9f,0x07,0xfc,0x31,0xd4,0xa4,0x85,0xf6,0x5d, -0xdf,0x62,0xc6,0x03,0xe8,0x5f,0x3b,0x8f,0xe0,0x81,0x8f,0xd4,0x0a,0xf8,0xeb,0xc0, -0x3e,0x1d,0x93,0xc5,0x3e,0x2c,0xd3,0x74,0xd8,0xd7,0x3e,0x6c,0xca,0x1b,0xd8,0x67, -0x9a,0xf5,0x7f,0xda,0xdb,0xc6,0x1f,0xda,0xbe,0x30,0xb2,0xd0,0x61,0x7c,0xc1,0xa6, -0xc3,0xe6,0x4a,0x01,0xe0,0xca,0xfe,0xbe,0xe1,0x40,0xff,0x00,0xbe,0xab,0x43,0xf6, -0x4b,0xf0,0x7f,0xda,0xb5,0x7b,0xdd,0x76,0x64,0xca,0x5b,0x2f,0x97,0x11,0x3f,0xde, -0x3d,0x6b,0xe0,0xb1,0xcd,0xe6,0x19,0x8c,0x68,0x2d,0x96,0x9f,0xe6,0x7c,0x06,0x2d, -0xbc,0xc7,0x35,0x54,0x57,0xc3,0x1d,0x3e,0xed,0x59,0xf5,0x0e,0x9f,0x65,0x1e,0x9d, -0x63,0x6f,0x6d,0x12,0x85,0x8e,0x14,0x08,0xa0,0x7a,0x01,0x8a,0xb3,0x48,0x3a,0x52, -0xd7,0xde,0x24,0x92,0xb2,0x3e,0xf9,0x2b,0x2b,0x20,0xa2,0x8a,0x29,0x8c,0x2b,0xf2, -0xdf,0xf6,0xd7,0xff,0x00,0x82,0x9b,0x78,0xf3,0xe1,0x1f,0xed,0x0d,0xa9,0xf8,0x43, -0xe1,0xcc,0x9a,0x4b,0xe8,0xfa,0x0c,0x49,0x69,0x7d,0xfd,0xa1,0x69,0xf6,0x81,0x3d, -0xe6,0x37,0x49,0x82,0x19,0x59,0x42,0x6e,0x09,0x80,0x7a,0xab,0x57,0xea,0x2c,0xb2, -0xa4,0x31,0xb3,0xc8,0xea,0x88,0xa0,0x96,0x66,0x38,0x00,0x7a,0x93,0x5f,0x84,0x3f, -0xf0,0x51,0x9f,0xd9,0xb7,0xc4,0x9f,0x0a,0xbe,0x3b,0xf8,0xa7,0xc5,0xe2,0xde,0x4d, -0x4b,0xc1,0xbe,0x27,0xd4,0x65,0xd4,0xad,0x75,0x8b,0x71,0xbe,0x28,0xe5,0x99,0x8b, -0xc9,0x04,0x84,0x67,0x63,0x2b,0xb3,0x63,0x38,0xdc,0xb8,0x23,0xb8,0x0d,0x09,0x9f, -0x6d,0x7e,0xc1,0xff,0x00,0xb5,0xcf,0xc4,0xef,0xdb,0x5b,0xc4,0xde,0x24,0xd0,0xbc, -0x73,0xe1,0x9f,0x07,0xcf,0xe0,0x9d,0x2e,0xc5,0x5f,0x51,0x78,0x74,0xf9,0x77,0x4d, -0x2c,0x84,0x88,0x62,0xdb,0x24,0xce,0x9c,0xec,0x91,0x89,0xdb,0xc0,0x4c,0x63,0x90, -0x47,0xb1,0xf8,0xbf,0xfe,0x09,0x9f,0xfb,0x3c,0xf8,0xc2,0xe9,0xae,0x64,0xf0,0x2a, -0xe9,0x13,0x39,0x25,0x8e,0x91,0x79,0x35,0xb2,0x1c,0xff,0x00,0xb0,0x1b,0x68,0xfc, -0x00,0xaf,0x84,0xbf,0xe0,0x93,0xbf,0xb5,0x1f,0x82,0x3e,0x09,0xea,0xfe,0x2e,0xf0, -0x97,0x8d,0xb5,0x2b,0x7f,0x0f,0x45,0xe2,0x09,0x2d,0xee,0x2c,0xb5,0x6b,0xaf,0x92, -0x01,0x24,0x61,0xd5,0xa2,0x96,0x4e,0x88,0x08,0x60,0x54,0x9e,0x33,0xbf,0x24,0x64, -0x67,0xf5,0xef,0x4a,0xf1,0x66,0x89,0xad,0xdb,0x47,0x71,0xa7,0xeb,0x36,0x17,0xf0, -0x48,0x01,0x49,0x6d,0xae,0x92,0x45,0x61,0xec,0x54,0x90,0x68,0x04,0x7c,0xe9,0xe1, -0x0f,0xf8,0x26,0x9f,0xec,0xf1,0xe0,0xeb,0x85,0xb8,0x8f,0xc0,0x51,0xea,0xf3,0x29, -0x05,0x5b,0x58,0xbc,0x9a,0xe5,0x47,0xfc,0x01,0x9f,0x69,0xfc,0x41,0xaf,0xa4,0x34, -0x2f,0x0f,0x69,0x7e,0x18,0xd2,0xe0,0xd3,0x74,0x7d,0x3a,0xd7,0x4a,0xd3,0xe0,0x1b, -0x62,0xb4,0xb2,0x85,0x61,0x89,0x07,0xa0,0x55,0x00,0x0a,0xd0,0x0c,0x18,0x02,0x08, -0x20,0xf7,0x14,0x64,0x1a,0x43,0x16,0xbc,0xdb,0xe3,0xcf,0x88,0xff,0x00,0xb1,0x3c, -0x0d,0x35,0xb4,0x6d,0x89,0xf5,0x17,0x16,0xeb,0x83,0xc8,0x5e,0xae,0x7e,0x98,0x18, -0xff,0x00,0x81,0x0a,0xf4,0x83,0xc0,0xaf,0x99,0x7f,0x68,0x4f,0x10,0x9d,0x5f,0xc6, -0x69,0xa7,0xa3,0x66,0x1d,0x3a,0x30,0x84,0x7f,0xd3,0x46,0xc3,0x37,0xe9,0xb4,0x7e, -0x15,0xe0,0xe7,0x78,0x9f,0xaa,0xe0,0xa6,0xd6,0xf2,0xd1,0x7c,0xff,0x00,0xe0,0x1c, -0x58,0xba,0x9e,0xce,0x93,0xf3,0x3c,0xbe,0x8a,0x28,0xaf,0xc7,0x4f,0x97,0x0a,0xf7, -0x2f,0xd9,0xaf,0xc3,0xd9,0x93,0x55,0xd6,0xa4,0x5c,0xe3,0x16,0xb1,0x1f,0xfc,0x79, -0xff,0x00,0xf6,0x5a,0xf0,0xda,0xfa,0xff,0x00,0xe1,0x77,0x87,0x8f,0x86,0x7c,0x0f, -0xa5,0x5a,0x32,0x14,0x99,0xa2,0x13,0x4c,0x0f,0x50,0xef,0xf3,0x10,0x7e,0x99,0xc7, -0xe1,0x5f,0x55,0xc3,0x98,0x6f,0x6d,0x8c,0xf6,0x8f,0x68,0x2b,0xfc,0xf6,0x47,0xa3, -0x80,0xa7,0xcf,0x57,0x9b,0xb1,0xd6,0x51,0x49,0x4b,0x5f,0xab,0x1f,0x48,0x78,0x4f, -0xed,0x35,0xa7,0x28,0x3a,0x1d,0xfa,0xaf,0xcc,0x7c,0xd8,0x5d,0xbd,0x7e,0xe9,0x5f, -0xfd,0x9b,0xf3,0xaf,0x0a,0xaf,0xa3,0xff,0x00,0x69,0x38,0x03,0xf8,0x3a,0xc2,0x5c, -0x72,0x97,0xca,0x33,0xec,0x63,0x7f,0xf0,0x15,0xf3,0x85,0x7e,0x47,0xc4,0x30,0x50, -0xcc,0x26,0xd7,0x54,0x9f,0xe0,0x7c,0xce,0x39,0x5a,0xbb,0x0a,0x28,0xa2,0xbe,0x6c, -0xe0,0x3e,0x92,0xfd,0x9b,0xef,0x84,0xfe,0x0c,0xbc,0xb6,0xce,0x5a,0x0b,0xc6,0xe3, -0xd1,0x59,0x54,0x8f,0xd7,0x35,0xeb,0x35,0xe1,0x1f,0xb3,0x1d,0xd0,0x0d,0xe2,0x0b, -0x62,0xdc,0x91,0x0c,0x8a,0xbf,0xf7,0xd8,0x27,0xf9,0x57,0xbb,0x66,0xbf,0x64,0xc9, -0x6a,0x7b,0x4c,0x05,0x27,0xd9,0x5b,0xee,0x76,0x3e,0xa7,0x09,0x2e,0x6a,0x11,0x16, -0x8a,0x28,0xaf,0x70,0xec,0x0a,0x28,0xa4,0x3d,0x28,0x03,0xc8,0x3f,0x69,0x0d,0x6f, -0xec,0x9e,0x19,0xb1,0xd3,0x11,0x80,0x7b,0xd9,0xf7,0xb0,0xf5,0x44,0xe7,0xff,0x00, -0x42,0x2b,0xf9,0x57,0xce,0x95,0xe9,0x7f,0xb4,0x06,0xb8,0x75,0x4f,0x1e,0x3d,0xa0, -0x20,0xc5,0x61,0x0a,0xc2,0x30,0x73,0xf3,0x1f,0x99,0xbf,0xf4,0x20,0x3f,0x0a,0xf3, -0x4a,0xfc,0x77,0x3b,0xaf,0xf5,0x8c,0x74,0xda,0xd9,0x69,0xf7,0x7f,0xc1,0x3e,0x5b, -0x19,0x3e,0x7a,0xcf,0xcb,0x40,0xa2,0x8a,0x2b,0xc1,0x38,0xcf,0x55,0xfd,0x9d,0x74, -0x53,0x7f,0xe3,0x2b,0x8b,0xf6,0x40,0x62,0xb1,0xb7,0x24,0x37,0xa3,0xb9,0xda,0x3f, -0x40,0xf5,0xf4,0xb5,0x79,0x2f,0xec,0xe7,0xa2,0x7d,0x87,0xc1,0xf7,0x3a,0x83,0xc6, -0x04,0x97,0xd7,0x07,0x6b,0xf7,0x31,0xa7,0xca,0x07,0xfd,0xf5,0xbf,0xf3,0xaf,0x5a, -0xaf,0xd8,0x32,0x2a,0x1e,0xc3,0x01,0x0b,0xef,0x2d,0x7e,0xff,0x00,0xf8,0x16,0x3e, -0xa3,0x07,0x0e,0x4a,0x2b,0xcf,0x50,0xa2,0x8a,0x2b,0xe8,0x0e,0xd0,0xaf,0x00,0xfd, -0xa6,0xc6,0x35,0x3d,0x04,0xf6,0x30,0xcb,0xfc,0xd6,0xbd,0xfe,0xbc,0x67,0xf6,0x97, -0xd2,0xbc,0xed,0x0f,0x49,0xd4,0x42,0x92,0x6d,0xe7,0x68,0x4e,0x07,0x00,0x3a,0xe7, -0x27,0xf1,0x41,0xf9,0xd7,0x81,0x9e,0xc1,0xcf,0x2f,0xa8,0x97,0x93,0xfc,0x4e,0x2c, -0x62,0xbd,0x09,0x1f,0x3d,0x51,0x45,0x15,0xf8,0xf1,0xf2,0xe1,0x5d,0xa7,0xc1,0xcb, -0xc4,0xb1,0xf8,0x93,0xa2,0xbb,0x9c,0x2b,0xc8,0xf1,0x7e,0x2c,0x8c,0xa3,0xf5,0x22, -0xb8,0xba,0xb1,0xa7,0xdf,0x4d,0xa5,0xdf,0xdb,0x5e,0x5b,0xb6,0xd9,0xed,0xe4,0x59, -0x50,0xfa,0x32,0x9c,0x8f,0xe5,0x5d,0x38,0x6a,0xbe,0xc2,0xbc,0x2a,0xbf,0xb2,0xd3, -0xfb,0x99,0x74,0xe5,0xc9,0x35,0x2e,0xcc,0xfb,0x88,0x52,0xd6,0x4f,0x86,0x3c,0x43, -0x6d,0xe2,0x9d,0x0e,0xcf,0x53,0xb4,0x6c,0xc5,0x70,0x81,0xb6,0xe7,0x25,0x1b,0xba, -0x9f,0x70,0x72,0x3f,0x0a,0xd6,0xaf,0xdd,0x21,0x38,0xce,0x2a,0x71,0x77,0x4c,0xfb, -0x14,0xd3,0x57,0x41,0x45,0x14,0x55,0x8c,0x28,0xa4,0xc8,0xae,0x4f,0xe2,0x2f,0x8f, -0xed,0x3c,0x07,0xa2,0xb5,0xcc,0x84,0x4b,0x7b,0x28,0x2b,0x6d,0x6d,0x9e,0x5d,0xbd, -0x4f,0xfb,0x23,0xb9,0xff,0x00,0x1a,0xc6,0xb5,0x68,0x50,0xa6,0xea,0xd4,0x76,0x48, -0x89,0x49,0x41,0x39,0x4b,0x63,0xcb,0x7f,0x68,0xdf,0x17,0x2d,0xc5,0xcd,0x9f,0x87, -0xad,0xdf,0x3e,0x41,0x17,0x37,0x38,0xec,0xc4,0x10,0x8b,0xf9,0x12,0x7f,0x11,0x5e, -0x27,0x56,0x75,0x2d,0x46,0xe3,0x56,0xbf,0x9e,0xf6,0xee,0x53,0x35,0xcc,0xee,0x64, -0x91,0xcf,0x72,0x6a,0xb5,0x7e,0x2d,0x98,0x62,0xde,0x3b,0x13,0x2a,0xcf,0xae,0xde, -0x9d,0x0f,0x94,0xaf,0x55,0xd6,0x9b,0x98,0x51,0x45,0x15,0xe7,0x18,0x16,0x74,0xcd, -0x3e,0x6d,0x5b,0x51,0xb5,0xb2,0xb6,0x5d,0xf7,0x17,0x32,0x2c,0x51,0xa9,0xe8,0x59, -0x8e,0x07,0xf3,0xaf,0xb5,0xb4,0x7d,0x3a,0x2d,0x1f,0x4a,0xb4,0xb1,0x80,0x62,0x1b, -0x68,0x96,0x14,0x1e,0xca,0x00,0x1f,0xca,0xbc,0x03,0xf6,0x78,0xf0,0x69,0xd4,0x75, -0xa9,0xb5,0xfb,0x84,0xff,0x00,0x47,0xb2,0x06,0x38,0x32,0x3e,0xf4,0xa4,0x72,0x7f, -0x05,0x3f,0x99,0xf6,0xaf,0xa2,0x87,0x4a,0xfd,0x3b,0x86,0xb0,0x8e,0x8d,0x09,0x62, -0x24,0xb5,0x9e,0xde,0x88,0xfa,0x0c,0xbe,0x97,0x2c,0x1c,0xdf,0x51,0x68,0xa4,0xcd, -0x2d,0x7d,0x91,0xea,0x88,0x46,0x6b,0x33,0x5b,0xf0,0xd6,0x97,0xe2,0x2b,0x63,0x06, -0xa5,0x61,0x05,0xec,0x7d,0x84,0xa8,0x09,0x1f,0x43,0xd4,0x7e,0x15,0xa9,0x45,0x4c, -0xa1,0x19,0xae,0x59,0x2b,0xa1,0x34,0x9a,0xb3,0x3c,0x7b,0x5f,0xfd,0x9b,0xf4,0x8b, -0xd6,0x32,0x69,0x57,0xd3,0xe9,0xac,0x4e,0x7c,0xb9,0x07,0x9d,0x18,0x1e,0x83,0x90, -0x47,0xe6,0x6b,0xce,0x35,0xdf,0x81,0x3e,0x2a,0xd1,0x81,0x78,0xad,0xa2,0xd4,0xe2, -0x19,0xf9,0xad,0x1f,0x2d,0x8e,0xdf,0x29,0xc1,0xfc,0xb3,0x5f,0x54,0x52,0x11,0x5f, -0x3d,0x88,0xc8,0x30,0x35,0xf5,0x51,0xe5,0x7e,0x5f,0xe5,0xb1,0xc3,0x3c,0x15,0x19, -0xf4,0xb7,0xa1,0xf0,0xe5,0xed,0x85,0xd6,0x9b,0x39,0x86,0xee,0xda,0x5b,0x59,0x87, -0x58,0xe6,0x42,0x8d,0xf9,0x1a,0x82,0xbe,0xdb,0xd5,0xf4,0x1d,0x3f,0x5d,0xb6,0x36, -0xfa,0x85,0x9c,0x37,0xb0,0x9f,0xe1,0x99,0x03,0x63,0xdc,0x7a,0x57,0x8b,0xfc,0x45, -0xf8,0x03,0x1d,0xbd,0xb4,0xda,0x8f,0x86,0xb7,0xe5,0x32,0xef,0x60,0xe7,0x76,0x47, -0x7d,0x84,0xf3,0x9f,0x63,0x9c,0xfa,0xf6,0xaf,0x91,0xc6,0xf0,0xe5,0x7a,0x11,0x75, -0x28,0x4b,0x9d,0x2e,0x9b,0x3f,0xf8,0x27,0x9b,0x57,0x01,0x38,0x2e,0x68,0x3b,0xa3, -0xc3,0x28,0xa0,0x8c,0x1c,0x74,0xa2,0xbe,0x40,0xf2,0xc2,0x8a,0x28,0xa0,0x0f,0x6f, -0xfd,0x9d,0xbc,0x6b,0x22,0xdc,0xcf,0xe1,0xcb,0x99,0x0b,0x46,0xca,0x67,0xb5,0xdc, -0x7e,0xe9,0x1f,0x79,0x07,0xb1,0xeb,0xf8,0x1a,0xf7,0xba,0xf8,0xf7,0xe1,0x7d,0xe3, -0xd8,0xfc,0x41,0xd0,0x64,0x8c,0xe0,0xb5,0xd2,0xc6,0x7e,0x8d,0xf2,0x9f,0xd1,0x8d, -0x7d,0x84,0x2b,0xf5,0x6e,0x1c,0xc4,0x4a,0xb6,0x13,0x92,0x6f,0xe1,0x76,0xf9,0x1f, -0x47,0x80,0xa8,0xe7,0x4a,0xcf,0xa0,0xb4,0x51,0x45,0x7d,0x51,0xe9,0x08,0x78,0xaf, -0x9f,0xbf,0x6a,0x3b,0xbd,0x96,0x51,0xc7,0x9e,0x89,0xd2,0xbe,0x81,0x35,0xf3,0x27, -0xed,0x4f,0x77,0xfe,0x90,0x23,0x07,0xf8,0x45,0x78,0x59,0xd4,0xb9,0x70,0x53,0x3c, -0xac,0xce,0x5c,0xb8,0x59,0xb3,0xe5,0x3f,0x11,0x3e,0xdb,0x19,0x4f,0xfb,0x26,0xbb, -0xef,0xf8,0x26,0x55,0x81,0xb9,0xf8,0x97,0xf1,0x53,0x53,0xed,0x0d,0xa5,0x8d,0xb0, -0x3f,0xef,0xbc,0xcd,0xff,0x00,0xb2,0x0a,0xf3,0x8f,0x16,0xc9,0xe5,0xe9,0xb3,0x9f, -0x45,0xaf,0x63,0xff,0x00,0x82,0x5b,0xdb,0x16,0xb7,0xf8,0xab,0x7d,0xb7,0x89,0x35, -0x1b,0x38,0x43,0x7a,0xec,0x8a,0x42,0x7f,0xf4,0x3a,0xf2,0xb2,0x28,0xe8,0xd9,0xf9, -0xdf,0x0d,0x47,0x9b,0x33,0x9c,0xbb,0x44,0xfb,0xb3,0x9a,0x29,0xd4,0x57,0xd9,0x1f, -0xac,0x85,0x52,0xd5,0xb5,0x28,0x74,0x9d,0x36,0xee,0xfa,0xe0,0xed,0x82,0xda,0x26, -0x99,0xcf,0xfb,0x2a,0x32,0x6a,0xed,0x78,0xaf,0xed,0x53,0xe3,0x0f,0xec,0x0f,0x87, -0xab,0xa5,0xc3,0x26,0xdb,0xad,0x5e,0x61,0x09,0x00,0xe0,0xf9,0x4b,0xf3,0x48,0x7e, -0x9f,0x75,0x7f,0xe0,0x55,0xcd,0x89,0xac,0xb0,0xf4,0x65,0x55,0xf4,0x47,0x26,0x2e, -0xba,0xc2,0xd0,0x9d,0x67,0xd1,0x1f,0x26,0x78,0x83,0x5a,0xb8,0xf1,0x6f,0x89,0x2f, -0xf5,0x4b,0x8c,0xb5,0xc5,0xf5,0xc3,0x4a,0x47,0xa6,0x4f,0x03,0xf0,0x18,0x1f,0x85, -0x7d,0xbd,0xf0,0x4b,0xc2,0x63,0xc2,0x3f,0x0f,0xf4,0xeb,0x76,0x4d,0xb3,0xcc,0x82, -0x69,0x78,0xc7,0x26,0xbe,0x43,0xf8,0x3b,0xe1,0x46,0xf1,0x77,0x8f,0x74,0xcb,0x3d, -0xbb,0xa1,0x59,0x04,0x92,0x9f,0x45,0x1c,0xd7,0xde,0xf0,0xc4,0xb0,0xc2,0x91,0xa0, -0xda,0xaa,0x00,0x03,0xda,0xbe,0x4f,0x21,0xa2,0xea,0x54,0xa9,0x89,0x9f,0xa7,0xdf, -0xab,0x3e,0x57,0x87,0xa8,0x39,0x73,0xe2,0xa7,0xbb,0xfe,0x99,0x25,0x14,0x56,0x47, -0x8b,0xfc,0x53,0xa7,0x78,0x1f,0xc2,0x9a,0xcf,0x88,0xb5,0x79,0xbe,0xcf,0xa5,0xe9, -0x36,0x73,0x5f,0x5d,0x4b,0x8c,0xec,0x8a,0x34,0x2e,0xe7,0x1d,0xf8,0x53,0x5f,0x6a, -0x7d,0xa9,0xaf,0x45,0x7e,0x2d,0xcd,0xff,0x00,0x05,0x91,0xf8,0xd2,0x35,0x2b,0x86, -0xb6,0xd1,0x7c,0x20,0xd6,0x2d,0x2b,0x18,0x22,0x9e,0xc2,0x7f,0x31,0x63,0x2c,0x76, -0xab,0x30,0x9c,0x02,0x40,0xc0,0xce,0x2b,0xf5,0x5f,0xf6,0x6a,0xf1,0xbf,0x8a,0xfe, -0x25,0x7c,0x0e,0xf0,0x8f,0x8a,0xfc,0x6b,0x65,0x63,0xa6,0xf8,0x83,0x5a,0xb3,0x5b, -0xf9,0x2d,0x34,0xe4,0x74,0x8a,0x38,0xa4,0x25,0xa1,0xe1,0xd9,0x8e,0x4c,0x65,0x09, -0xc9,0xea,0x48,0xa0,0x49,0xdc,0xf9,0xef,0xfe,0x0a,0xb9,0xf1,0xa3,0xfe,0x15,0x97, -0xec,0xc9,0x73,0xe1,0xfb,0x39,0x8c,0x7a,0xb7,0x8c,0x6e,0x06,0x96,0x81,0x7a,0x8b, -0x60,0x37,0xdc,0x1f,0xa1,0x50,0x13,0xfe,0xda,0x57,0xe2,0x00,0xd4,0x6e,0xc5,0xab, -0xdb,0x0b,0xa9,0x85,0xb3,0xfd,0xe8,0x44,0x87,0x63,0x73,0x9e,0x47,0x4e,0xa2,0xbf, -0xa2,0x9f,0x8f,0x5f,0xb2,0x2f,0xc3,0x3f,0xda,0x5e,0xfb,0x4b,0xbc,0xf1,0xf6,0x95, -0x77,0xaa,0xcd,0xa6,0x44,0xf0,0xda,0x79,0x3a,0x8c,0xd6,0xeb,0x12,0xb1,0xcb,0x7c, -0xa8,0xc0,0x12,0x48,0x19,0x24,0x67,0x81,0xe9,0x5e,0x33,0x7d,0xff,0x00,0x04,0x93, -0xfd,0x9e,0xae,0xff,0x00,0xd5,0x69,0x5a,0xed,0x97,0xfd,0x70,0xd6,0x24,0x3f,0xfa, -0x1e,0xea,0x62,0x6a,0xe7,0xe1,0xa7,0x34,0xf8,0x66,0x92,0xde,0x41,0x24,0x4e,0xd1, -0x48,0x3a,0x32,0x1c,0x11,0xf8,0xd7,0xed,0x36,0xa9,0xff,0x00,0x04,0x70,0xf8,0x23, -0x78,0xa7,0xec,0x9a,0xb7,0x8b,0xb4,0xf2,0x7b,0xa5,0xfc,0x2f,0x8f,0xfb,0xea,0x13, -0x5c,0x9d,0xff,0x00,0xfc,0x11,0x47,0xe1,0xf4,0xad,0xfe,0x85,0xf1,0x0f,0xc4,0xd6, -0xe3,0xd2,0xe2,0xde,0xde,0x5f,0xe4,0xab,0x4e,0xe2,0xb3,0x3f,0x28,0xad,0x3e,0x21, -0xf8,0xaa,0xc3,0x02,0xd7,0xc4,0xda,0xc5,0xb6,0x3a,0x08,0x6f,0xe5,0x4c,0x7e,0x4d, -0x5f,0xb1,0x9f,0xf0,0x49,0x2f,0x0c,0x78,0x9e,0x4f,0x82,0x3a,0xbf,0x8e,0x7c,0x53, -0xae,0xea,0xda,0xcc,0xbe,0x20,0xbe,0xf2,0x74,0xf4,0xd4,0xef,0x25,0x9c,0x43,0x6d, -0x06,0x54,0xb2,0x07,0x63,0x8d,0xf2,0x17,0xe9,0xd7,0x60,0xaf,0x36,0xbe,0xff,0x00, -0x82,0x23,0xe8,0x0e,0xa7,0xec,0x9f,0x15,0xb5,0x28,0x4f,0xfd,0x36,0xd1,0xa3,0x93, -0xf9,0x4c,0xb5,0xfa,0x0f,0xf0,0x97,0xe1,0xbe,0x9f,0xf0,0x87,0xe1,0x9f,0x86,0x7c, -0x19,0xa5,0xb6,0xfb,0x1d,0x12,0xc2,0x2b,0x28,0xe5,0x2b,0xb4,0xc9,0xb5,0x70,0xce, -0x47,0x38,0x2c,0xd9,0x63,0xcf,0x52,0x69,0x31,0xa4,0xce,0x8f,0x55,0xd4,0x62,0xd2, -0x74,0xdb,0xab,0xd9,0xdb,0x6c,0x36,0xf1,0x34,0xae,0x7d,0x94,0x64,0xd7,0xc5,0x5a, -0xb6,0xa5,0x2e,0xb1,0xaa,0x5d,0xdf,0x4e,0x73,0x35,0xcc,0xad,0x2b,0x7d,0x49,0xcd, -0x7d,0x6b,0xf1,0x2b,0xc3,0xba,0x97,0x8a,0xfc,0x29,0x73,0xa5,0x69,0x93,0x41,0x04, -0xd7,0x0c,0xa1,0xde,0x76,0x65,0x1b,0x01,0xc9,0x03,0x00,0xf2,0x70,0x07,0xd0,0x9a, -0xf1,0x39,0x7f,0x67,0x2f,0x13,0xa2,0x92,0xb7,0x3a,0x6c,0x87,0xd1,0x66,0x70,0x7f, -0x54,0xaf,0x85,0xe2,0x1a,0x18,0xbc,0x5c,0xe1,0x0a,0x34,0xdb,0x8a,0xd7,0x4e,0xe7, -0x93,0x8e,0x85,0x5a,0x8d,0x46,0x11,0xba,0x47,0x95,0xd1,0x5e,0x87,0x3f,0xc0,0x5f, -0x18,0xc2,0x7e,0x5b,0x18,0x26,0xf7,0x4b,0x84,0xfe,0xa4,0x55,0x39,0x3e,0x0a,0x78, -0xd2,0x3c,0x9f,0xec,0x46,0x61,0xfe,0xcd,0xc4,0x47,0xff,0x00,0x66,0xaf,0x89,0x79, -0x6e,0x36,0x3b,0xd2,0x97,0xdc,0xcf,0x25,0xd0,0xaa,0xbe,0xcb,0x32,0xfe,0x1d,0xf8, -0x7b,0xfe,0x12,0x8f,0x19,0xe9,0x76,0x0c,0x81,0xe1,0x69,0x44,0x92,0x83,0xd3,0xcb, -0x5f,0x99,0x87,0xe2,0x06,0x3f,0x1a,0xfb,0x1c,0x70,0x05,0x78,0xcf,0xc0,0xaf,0x87, -0x5a,0x9f,0x86,0x75,0x2d,0x47,0x51,0xd6,0x2c,0x9a,0xd2,0x7d,0x82,0x08,0x55,0xc8, -0x24,0x82,0x72,0xc7,0x82,0x7d,0x14,0x7e,0x75,0xec,0xd5,0xfa,0x37,0x0f,0x61,0x25, -0x86,0xc2,0xb9,0x54,0x56,0x94,0x9f,0xe5,0xa2,0x3d,0xdc,0x0d,0x27,0x4e,0x9d,0xda, -0xd5,0x8b,0x45,0x14,0x57,0xd4,0x9e,0x89,0xe6,0x1f,0xb4,0x3c,0x7e,0x67,0xc3,0xfc, -0xff,0x00,0x72,0xee,0x36,0xfd,0x18,0x7f,0x5a,0xf9,0x8e,0xbe,0xa7,0xf8,0xf7,0x1e, -0xff,0x00,0x86,0xb7,0xed,0xfd,0xc9,0x61,0x6f,0xfc,0x88,0x07,0xf5,0xaf,0x96,0x33, -0x5f,0x96,0x71,0x32,0xb6,0x35,0x3f,0xee,0xaf,0xcd,0x9f,0x3b,0x98,0x2f,0xde,0xdf, -0xc8,0x28,0xa2,0x8a,0xf9,0x23,0xcc,0x3d,0x5f,0xf6,0x6f,0xb9,0x31,0xf8,0xd6,0xf2, -0x1c,0xe1,0x64,0xb1,0x63,0x8f,0x52,0x1d,0x3f,0xc4,0xd7,0xd2,0x63,0xad,0x7c,0xa1, -0xf0,0x42,0xf1,0xad,0x3e,0x25,0x69,0x4a,0xa7,0x0b,0x30,0x96,0x26,0xfa,0x79,0x6c, -0x7f,0x98,0x15,0xf5,0x78,0xaf,0xd5,0x38,0x6a,0x7c,0xd8,0x2e,0x5e,0xcd,0xff,0x00, -0x99,0xf4,0x78,0x07,0x7a,0x36,0xec,0xc5,0xa2,0x8a,0x2b,0xeb,0x0f,0x48,0x2a,0x3b, -0x89,0xd2,0xda,0x09,0x25,0x91,0x82,0x47,0x1a,0x96,0x66,0x27,0x80,0x00,0xe4,0xd3, -0xcd,0x70,0xff,0x00,0x19,0xb5,0xcf,0xec,0x4f,0x87,0xba,0xa1,0x5c,0x79,0xb7,0x4a, -0x2d,0x14,0x1e,0xfb,0xf8,0x6f,0xfc,0x77,0x71,0xfc,0x2b,0x9f,0x11,0x59,0x50,0xa3, -0x3a,0xaf,0xa2,0x6c,0x89,0xcb,0x92,0x2e,0x5d,0x8f,0x96,0xb5,0xbd,0x56,0x4d,0x73, -0x59,0xbe,0xd4,0x65,0x1b,0x64,0xba,0x9d,0xe6,0x2b,0xfd,0xdd,0xc4,0x9c,0x7e,0x15, -0x4a,0x8a,0x2b,0xf0,0x99,0xc9,0xce,0x4e,0x4f,0x76,0x7c,0x73,0x77,0x77,0x61,0x40, -0x04,0x90,0x07,0x24,0xd1,0x5d,0x17,0xc3,0xcd,0x1b,0xfb,0x7f,0xc6,0xda,0x3d,0x91, -0x5d,0xc8,0xf7,0x0a,0xee,0x3d,0x51,0x7e,0x66,0xfd,0x14,0xd5,0xd1,0xa6,0xeb,0x54, -0x8d,0x35,0xbb,0x69,0x0e,0x31,0x72,0x92,0x8a,0xea,0x7d,0x59,0xe0,0x9d,0x10,0x78, -0x77,0xc2,0x7a,0x56,0x9e,0x17,0x6b,0x43,0x6e,0x81,0xc7,0xfb,0x64,0x65,0xbf,0x52, -0x6b,0x76,0x90,0x74,0x18,0xe9,0x4b,0x5f,0xbb,0xd3,0x82,0xa7,0x05,0x05,0xb2,0x56, -0x3e,0xc6,0x2b,0x95,0x24,0x82,0x8a,0x28,0xad,0x0a,0x0a,0xc0,0xf1,0xcf,0x86,0x93, -0xc5,0xde,0x16,0xd4,0x34,0xb6,0x21,0x5a,0x78,0xff,0x00,0x76,0xc7,0xa2,0xc8,0x0e, -0x54,0x9f,0x6c,0x81,0x5b,0xf4,0x86,0xb3,0xa9,0x08,0xd5,0x83,0x84,0xb6,0x7a,0x0a, -0x49,0x49,0x38,0xbe,0xa7,0xc3,0x57,0x56,0xb2,0xd9,0x5c,0xcb,0x6f,0x3c,0x6d,0x14, -0xd1,0x39,0x8d,0xd1,0x86,0x0a,0xb0,0x38,0x20,0xd4,0x55,0xf4,0x07,0xc6,0xef,0x85, -0x32,0xea,0x8c,0xfe,0x20,0xd1,0xe1,0x32,0x5d,0x01,0x9b,0xab,0x64,0x1c,0xc8,0x07, -0xf1,0xa8,0xee,0x40,0xea,0x3b,0x8f,0x7e,0xbf,0x3f,0xd7,0xe2,0xd9,0x86,0x06,0xa6, -0x02,0xb3,0xa7,0x3d,0xba,0x3e,0xeb,0xfa,0xdc,0xf9,0x3a,0xf4,0x65,0x46,0x7c,0xac, -0x28,0xa2,0x8a,0xf3,0x0e,0x73,0xb3,0xf8,0x73,0xf1,0x3a,0xfb,0xe1,0xf5,0xe3,0x04, -0x43,0x77,0xa7,0x4a,0x73,0x35,0xab,0x1c,0x73,0xfd,0xe5,0x3d,0x8f,0xf3,0xfc,0xb1, -0xf4,0x3f,0x86,0xbe,0x2b,0xf8,0x67,0xc4,0xd1,0x21,0x87,0x52,0x8a,0xd6,0x72,0x39, -0xb7,0xbb,0x61,0x13,0x83,0xe9,0xc9,0xc1,0xfc,0x09,0xaf,0x91,0x68,0xaf,0xa1,0xcb, -0xf3,0xbc,0x46,0x02,0x3e,0xcd,0x7b,0xd1,0xec,0xfa,0x7a,0x33,0xba,0x8e,0x2e,0xa5, -0x15,0xcb,0xba,0x3e,0xe7,0x8e,0xe2,0x29,0x90,0x3c,0x72,0x23,0xa1,0xe8,0xca,0xc0, -0x83,0x54,0xf5,0x0d,0x7f,0x4c,0xd2,0x50,0xb5,0xee,0xa1,0x6b,0x68,0xa3,0xbc,0xd3, -0x2a,0xff,0x00,0x33,0x5f,0x13,0x2c,0x8e,0x83,0x0a,0xcc,0xa3,0xd8,0xe2,0x9a,0x79, -0x39,0x27,0x27,0xde,0xbd,0xd7,0xc5,0x52,0xb7,0xbb,0x47,0x5f,0x5f,0xf8,0x07,0x67, -0xf6,0x93,0xe9,0x1f,0xc7,0xfe,0x01,0xf4,0x6f,0x8c,0x7f,0x68,0x5d,0x2b,0x4c,0x89, -0xe1,0xd0,0xe3,0x3a,0xa5,0xd9,0xc8,0x13,0x30,0x29,0x0a,0x7e,0x7c,0xb7,0xe1,0xc1, -0xf5,0xaf,0x03,0xd7,0xbc,0x41,0x7f,0xe2,0x6d,0x4a,0x5b,0xfd,0x46,0xe1,0xae,0x6e, -0x64,0xea,0xcd,0xd0,0x0e,0xc0,0x0e,0xc0,0x7a,0x0a,0xce,0xa2,0xbe,0x5f,0x1d,0x9a, -0x62,0x71,0xef,0xf7,0xaf,0x4e,0xcb,0x63,0xce,0xad,0x88,0xa9,0x5b,0xe2,0xd8,0x28, -0xa2,0x8a,0xf2,0x4e,0x60,0xad,0x8f,0x09,0xf8,0x5e,0xf7,0xc6,0x1a,0xe5,0xbe,0x9b, -0x62,0x84,0xc9,0x21,0xcb,0xc8,0x47,0xcb,0x1a,0x7f,0x13,0x1f,0x61,0xfa,0x9c,0x0e, -0xf4,0x78,0x5f,0xc2,0x9a,0x97,0x8c,0x35,0x44,0xb1,0xd3,0x60,0x32,0xc8,0x7e,0xfb, -0x9c,0x84,0x89,0x7f,0xbc,0xc7,0xb0,0xfd,0x7d,0x33,0x5f,0x54,0x7c,0x3e,0xf8,0x7f, -0x63,0xe0,0x2d,0x24,0x41,0x6e,0x04,0xd7,0x72,0x00,0x6e,0x2e,0x98,0x61,0xa4,0x3f, -0xd0,0x0e,0xc2,0xbe,0x8b,0x29,0xca,0x67,0x8f,0xa8,0xa7,0x35,0x6a,0x6b,0x77,0xdf, -0xc9,0x1d,0xb8,0x6c,0x34,0xab,0xca,0xef,0xe1,0x35,0xbc,0x35,0xe1,0xeb,0x5f,0x0b, -0x68,0xb6,0xba,0x65,0x92,0x95,0x82,0x04,0xda,0x09,0xea,0xc7,0xbb,0x1f,0x72,0x72, -0x7f,0x1a,0xd4,0x14,0x52,0xd7,0xeb,0x70,0x84,0x69,0xc5,0x46,0x2a,0xc9,0x1f,0x4e, -0x92,0x4a,0xc8,0xc7,0xf1,0x4f,0x8a,0x6c,0x7c,0x21,0xa5,0x9d,0x43,0x51,0x76,0x4b, -0x60,0xe9,0x19,0x28,0xbb,0x8e,0x58,0xe3,0xa7,0xb7,0x5e,0x39,0xc0,0xa9,0x74,0x3f, -0x12,0x69,0x9e,0x23,0xb5,0x17,0x1a,0x6d,0xf4,0x37,0x91,0x11,0x92,0x62,0x6c,0x95, -0xfa,0x8e,0xa0,0xfb,0x1a,0xf1,0xdf,0xda,0x5f,0x5d,0xf9,0x74,0x8d,0x1d,0x1b,0xae, -0xeb,0xa9,0x00,0x3f,0xf0,0x15,0xff,0x00,0xd9,0xab,0xc4,0x2c,0xaf,0xee,0x74,0xeb, -0x85,0x9e,0xd2,0xe2,0x5b,0x69,0xd7,0xee,0xc9,0x0b,0x94,0x61,0xf8,0x8a,0xf8,0xec, -0x77,0x10,0x3c,0x16,0x32,0x54,0x79,0x79,0xa2,0xad,0xeb,0x73,0xcb,0xad,0x8d,0xf6, -0x55,0x5c,0x6d,0x74,0x7d,0xc7,0x9a,0x5a,0xf9,0x63,0x44,0xf8,0xf1,0xe2,0xbd,0x1c, -0x2a,0x4d,0x71,0x16,0xa7,0x10,0xfe,0x1b,0xa8,0xf2,0xd8,0xff,0x00,0x79,0x70,0x7f, -0x3c,0xd7,0x6f,0xa6,0x7e,0xd3,0x36,0xcc,0x48,0xd4,0x34,0x39,0xa2,0x03,0xf8,0xad, -0xa6,0x0f,0x93,0xf4,0x60,0xbf,0xce,0xbb,0xe8,0xf1,0x0e,0x06,0xaa,0xf7,0xa4,0xe2, -0xfc,0xd7,0xf9,0x5c,0xda,0x18,0xea,0x32,0xdd,0xd8,0xf6,0xfc,0xd1,0x9a,0xf3,0x1b, -0x0f,0xda,0x1f,0xc2,0xb7,0x6a,0x0c,0xdf,0x6d,0xb1,0x3e,0x93,0x41,0x9f,0xfd,0x00, -0xb5,0x5f,0x5f,0x8e,0xbe,0x0b,0x23,0xfe,0x42,0xce,0x3e,0xb6,0xb2,0xff,0x00,0xf1, -0x35,0xe9,0x47,0x33,0xc1,0x4b,0x6a,0xb1,0xfb,0xcd,0xd6,0x22,0x93,0xda,0x48,0xef, -0xe9,0x1d,0x82,0xa1,0x24,0x80,0x31,0xce,0x6b,0xcd,0xaf,0xff,0x00,0x68,0x1f,0x09, -0x5a,0xc2,0xcd,0x0c,0xd7,0x37,0xcc,0x3f,0x82,0x1b,0x76,0x52,0x7f,0xef,0xbd,0xa3, -0xf5,0xaf,0x35,0xf1,0xe7,0xc7,0xab,0xef,0x12,0x5a,0x4d,0xa7,0xe9,0x36,0xe7,0x4c, -0xb2,0x94,0x15,0x92,0x56,0x6c,0xcc,0xeb,0xe9,0xc7,0x0b,0xef,0x8c,0xfd,0x6b,0x93, -0x13,0x9d,0xe0,0xa8,0x41,0xb5,0x35,0x27,0xd9,0x6a,0x67,0x53,0x17,0x4a,0x0a,0xf7, -0xb9,0xe7,0xbe,0x28,0x96,0x0b,0x8f,0x12,0xea,0xd2,0xda,0xe3,0xec,0xcf,0x77,0x2b, -0x45,0xb7,0xa6,0xd2,0xe4,0x8c,0x7e,0x15,0x97,0x45,0x15,0xf9,0x04,0xe5,0xcf,0x37, -0x2e,0xee,0xe7,0xcb,0xb7,0x77,0x70,0xa2,0x8a,0x2a,0x04,0x75,0xff,0x00,0x08,0xf4, -0xf6,0xd4,0xbe,0x22,0xe8,0x88,0x01,0xc4,0x73,0x79,0xc4,0x8e,0xc1,0x14,0xb7,0xf4, -0xaf,0xae,0xc7,0x4a,0xf0,0x7f,0xd9,0xbf,0xc2,0xac,0x64,0xbe,0xf1,0x04,0xc9,0x85, -0xdb,0xf6,0x6b,0x72,0x47,0x5e,0xee,0x7f,0x40,0x3f,0x3a,0xf7,0x81,0xd2,0xbf,0x57, -0xe1,0xcc,0x3b,0xa3,0x82,0xe7,0x97,0xda,0x77,0xf9,0x74,0x3e,0x93,0x03,0x07,0x1a, -0x57,0x7d,0x45,0xa2,0x8a,0x2b,0xea,0x4f,0x44,0x69,0xaf,0x92,0xff,0x00,0x69,0xfb, -0xbf,0x33,0x5a,0x74,0xce,0x70,0xd5,0xf5,0xab,0x74,0xaf,0x8c,0x7f,0x68,0xdb,0xbf, -0x3b,0xc4,0xb2,0x8c,0xff,0x00,0x19,0xaf,0x99,0xcf,0xdd,0xb0,0xb6,0xee,0xd1,0xe0, -0x67,0x72,0xe5,0xc2,0x48,0xf9,0xcb,0xc7,0x32,0xec,0xd2,0x67,0x3d,0x3e,0x5a,0xfa, -0x47,0xfe,0x09,0x79,0xa6,0x88,0x7e,0x0f,0xf8,0xbb,0x50,0xc7,0xcd,0x77,0xe2,0x39, -0x57,0x38,0xec,0x90,0x42,0x07,0xea,0x4d,0x7c,0xc3,0xf1,0x1e,0x5f,0x2f,0x46,0x9c, -0xe7,0xb1,0xfe,0x55,0xf5,0xff,0x00,0xfc,0x13,0x53,0x4f,0x36,0x9f,0xb3,0x2c,0x17, -0x24,0x63,0xed,0xda,0xcd,0xf5,0xc0,0x3e,0xb8,0x93,0xcb,0xff,0x00,0xda,0x75,0x9e, -0x47,0x1b,0x53,0xb9,0xf1,0xbc,0x27,0x1b,0xe2,0xeb,0xcf,0xc9,0x1f,0x55,0x51,0x45, -0x15,0xf5,0x47,0xea,0x21,0x5f,0x13,0x7e,0xd3,0x3e,0x2f,0x3e,0x27,0xf8,0x9b,0x71, -0x68,0x8e,0x4d,0xa6,0x92,0x9f,0x64,0x41,0xdb,0x7f,0x59,0x0f,0xe7,0x81,0xff,0x00, -0x01,0xaf,0xae,0xbc,0x73,0xe2,0x68,0x7c,0x1d,0xe1,0x2d,0x57,0x59,0x9b,0x1b,0x6c, -0xe0,0x69,0x14,0x1f,0xe2,0x7c,0x61,0x57,0xf1,0x62,0x07,0xe3,0x5f,0x9f,0x28,0x2e, -0x75,0xcd,0x57,0x74,0x8c,0xd3,0x5d,0x5d,0xcc,0x59,0x98,0xf2,0x59,0xd9,0xb2,0x4f, -0xe6,0x6b,0xe4,0xb8,0x83,0x11,0xcb,0x4e,0x34,0x23,0xbb,0xd7,0xfa,0xf9,0x9f,0x1b, -0xc4,0x58,0x87,0xc9,0x0c,0x34,0x77,0x93,0xbb,0xf4,0xff,0x00,0x87,0x3e,0x96,0xfd, -0x92,0x7c,0x1f,0xe4,0xd9,0xdf,0x6b,0xf2,0xa6,0x0c,0x87,0xc9,0x88,0x91,0xdb,0xb9, -0xaf,0xa3,0xeb,0x97,0xf8,0x6f,0xe1,0xa4,0xf0,0x97,0x83,0x74,0xcd,0x39,0x54,0x2b, -0x47,0x10,0x2f,0x8e,0xec,0x7a,0xd7,0x51,0x5e,0xde,0x5d,0x87,0xfa,0xb6,0x1a,0x14, -0xfa,0xf5,0xf5,0x3e,0x8f,0x03,0x87,0x58,0x5c,0x3c,0x29,0x76,0x41,0x5f,0x0c,0x7f, -0xc1,0x5c,0xbe,0x35,0x9f,0x87,0x7f,0xb3,0xbc,0x3e,0x0f,0xb2,0x9b,0xcb,0xd5,0x3c, -0x65,0x75,0xf6,0x56,0xda,0xd8,0x65,0xb4,0x88,0xac,0x93,0x1f,0x70,0xc7,0xcb,0x42, -0x3b,0x87,0x6f,0x4a,0xfb,0x9e,0xbf,0x23,0xff,0x00,0xe0,0xb6,0x56,0x5a,0x90,0xf8, -0x89,0xf0,0xd6,0xf2,0x48,0xdc,0xe9,0x07,0x4a,0xb9,0x8a,0x17,0xc7,0xc8,0x26,0x13, -0x29,0x90,0x7d,0x76,0x98,0xff,0x00,0x2a,0xf4,0xd1,0xdc,0xcf,0x86,0xbf,0x67,0xbf, -0x04,0xe9,0xbf,0x12,0x7e,0x39,0x78,0x17,0xc3,0x3a,0xcd,0xe4,0x76,0x1a,0x56,0xa9, -0xac,0x5b,0xdb,0x5d,0x4f,0x2b,0x05,0x51,0x19,0x71,0xb8,0x64,0xf7,0x61,0xf2,0x8f, -0x72,0x2b,0xfa,0x16,0xf8,0xcd,0xf1,0x1b,0x4e,0xf8,0x1d,0xf0,0x6f,0xc5,0x1e,0x2e, -0x9e,0x38,0xe3,0xb4,0xd0,0x34,0xc9,0x27,0x86,0xd9,0x70,0x81,0xdd,0x53,0x11,0x44, -0xbd,0x86,0xe6,0xda,0xa0,0x7b,0xd7,0xf3,0x4e,0xac,0x51,0x83,0x29,0x2a,0xc0,0xe4, -0x11,0xd4,0x57,0x5f,0xaa,0xfc,0x62,0xf1,0xde,0xbb,0xe1,0x97,0xf0,0xee,0xa7,0xe3, -0x2d,0x7b,0x51,0xd0,0x5f,0x6e,0xed,0x32,0xeb,0x52,0x9a,0x5b,0x73,0xb4,0x86,0x5c, -0xc6,0xcc,0x47,0x04,0x02,0x38,0xe3,0x14,0xc8,0x4e,0xc7,0x77,0xe1,0x9f,0xda,0x7f, -0xe3,0xb6,0xb5,0xe2,0xab,0x6b,0x5d,0x23,0xe2,0x6f,0x8b,0x5b,0x55,0xd5,0x2f,0x16, -0x28,0xa1,0x4d,0x5a,0x72,0xad,0x2c,0x8f,0x85,0x01,0x4b,0x60,0x0c,0xb7,0x40,0x31, -0x5f,0xd0,0x5f,0xc3,0xcd,0x07,0x50,0xf0,0xbf,0x81,0x74,0x0d,0x27,0x55,0xd4,0xae, -0x35,0x9d,0x52,0xce,0xc6,0x18,0x6f,0x35,0x0b,0xa9,0x0c,0x92,0x5c,0xcc,0x10,0x79, -0x92,0x33,0x1e,0x4e,0x5b,0x26,0xbf,0x99,0xff,0x00,0x09,0xf8,0xaf,0x55,0xf0,0x37, -0x89,0x34,0xed,0x7f,0x43,0xbc,0x6d,0x3f,0x58,0xd3,0xa7,0x5b,0x9b,0x5b,0xa4,0x55, -0x66,0x8a,0x45,0x39,0x56,0x01,0x81,0x19,0x1e,0xe2,0xbe,0x84,0xd3,0x3f,0xe0,0xa5, -0x1f,0xb4,0x76,0x95,0xf7,0x3e,0x24,0x5c,0x4e,0x3d,0x2e,0xb4,0xfb,0x49,0x7f,0xf4, -0x28,0x8d,0x0c,0x69,0x9f,0xbf,0xd4,0x57,0xe1,0x66,0x99,0xff,0x00,0x05,0x62,0xfd, -0xa1,0xec,0x17,0x12,0xeb,0xda,0x46,0xa1,0xef,0x73,0xa4,0x42,0x3f,0xf4,0x00,0xb5, -0xbf,0x63,0xff,0x00,0x05,0x87,0xf8,0xed,0x6b,0x81,0x35,0x9f,0x84,0xaf,0x3f,0xeb, -0xae,0x99,0x2a,0x9f,0xfc,0x76,0x61,0x4a,0xc5,0x5d,0x1f,0xb6,0x94,0x57,0x86,0xfe, -0xc6,0x7f,0x16,0x3c,0x69,0xf1,0xc7,0xe0,0x3e,0x8b,0xe3,0x8f,0x1c,0x58,0xe9,0xba, -0x6e,0xa3,0xac,0x49,0x2c,0xd6,0xb6,0xfa,0x64,0x4f,0x1c,0x7f,0x66,0x0d,0xb5,0x18, -0x87,0x76,0x39,0x62,0xac,0x7a,0xe3,0x05,0x7f,0x1f,0x4a,0xf8,0xa1,0xe3,0xfd,0x3f, -0xe1,0x67,0xc3,0xbf,0x12,0x78,0xbf,0x54,0x60,0x2c,0x34,0x4b,0x09,0xaf,0xa5,0x05, -0xb1,0xbf,0x62,0x92,0x14,0x7b,0xb1,0xc2,0x8f,0x72,0x29,0x0c,0xea,0x28,0xaf,0xcb, -0xad,0x3b,0xfe,0x0b,0x77,0x64,0x42,0x8b,0xef,0x84,0xd3,0xab,0x77,0xfb,0x3e,0xb8, -0x0f,0xf3,0x80,0x57,0x61,0xa5,0x7f,0xc1,0x6a,0xfe,0x1b,0xcb,0x1e,0x75,0x2f,0x00, -0x78,0xa6,0xd2,0x4f,0xee,0xda,0xbd,0xb4,0xe3,0xf3,0x69,0x13,0xf9,0x53,0xb0,0xae, -0x8f,0xd1,0x5a,0x2b,0xe0,0x5b,0x4f,0xf8,0x2c,0xef,0xc1,0x89,0xb1,0xe7,0x78,0x6b, -0xc6,0xb6,0xe7,0xd3,0xec,0x56,0xad,0xfc,0xae,0x2b,0xab,0xd1,0xbf,0xe0,0xad,0xdf, -0xb3,0xe6,0xa6,0xa0,0xdd,0x6a,0x9a,0xee,0x90,0x7d,0x2f,0x34,0x89,0x1b,0x1f,0xf7, -0xe8,0xbd,0x01,0x74,0x7d,0x9f,0x45,0x7c,0xa7,0x69,0xff,0x00,0x05,0x44,0xfd,0x9b, -0x6e,0x80,0x27,0xe2,0x04,0x90,0x67,0xfe,0x7a,0xe8,0xb7,0xe3,0xf9,0x42,0x6b,0xa6, -0xd2,0xff,0x00,0xe0,0xa0,0xbf,0xb3,0xce,0xae,0x14,0xc3,0xf1,0x4f,0x46,0x8b,0x77, -0x41,0x74,0xb3,0x40,0x7f,0xf1,0xf4,0x14,0x87,0x73,0xe8,0x6a,0x2b,0xc9,0xf4,0xff, -0x00,0xda,0xcb,0xe0,0xb6,0xa8,0xa1,0xad,0xfe,0x2b,0xf8,0x35,0x81,0xec,0xfa,0xe5, -0xba,0x1f,0xc9,0x9c,0x56,0xfd,0x97,0xc7,0x5f,0x86,0xda,0x96,0x3e,0xc9,0xf1,0x07, -0xc2,0xd7,0x39,0xe9,0xe5,0x6b,0x56,0xcd,0x9f,0xc9,0xe8,0x03,0xb4,0x9a,0x08,0xe7, -0x52,0x92,0x22,0xc8,0x87,0xaa,0xb0,0xc8,0x3f,0x85,0x50,0x9f,0xc3,0x3a,0x3d,0xcf, -0xfa,0xed,0x2e,0xce,0x5f,0xf7,0xed,0xd0,0xff,0x00,0x4a,0x76,0x9f,0xe2,0x4d,0x27, -0x56,0x8c,0x49,0x63,0xa9,0xd9,0x5e,0xc6,0x79,0x0d,0x6f,0x70,0x92,0x03,0xf9,0x13, -0x5a,0x0a,0xe1,0x86,0x41,0x04,0x7a,0x83,0x51,0x28,0x46,0x5f,0x12,0xb8,0x9a,0x4f, -0x74,0x73,0xf3,0x7c,0x3c,0xf0,0xc5,0xc7,0x32,0x78,0x7f,0x4e,0x3f,0xf6,0xea,0x83, -0xfa,0x55,0x49,0x7e,0x15,0x78,0x46,0x51,0xce,0x81,0x66,0xbf,0xee,0x47,0xb7,0xf9, -0x57,0x59,0x9a,0x5a,0xc2,0x58,0x5a,0x12,0xde,0x0b,0xee,0x44,0x3a,0x70,0x7b,0xc5, -0x1c,0x8e,0x9d,0xf0,0xaf,0xc2,0xfa,0x4e,0xa5,0x6f,0x7f,0x65,0xa5,0xad,0xbd,0xd4, -0x0d,0xba,0x37,0x49,0x5f,0x83,0xd3,0xa6,0x71,0x5d,0x68,0xeb,0x4b,0x45,0x69,0x4e, -0x8d,0x3a,0x2a,0xd4,0xe2,0x92,0xf2,0x2a,0x31,0x8c,0x34,0x8a,0xb0,0x51,0x45,0x15, -0xb1,0x42,0x1a,0xe2,0x7e,0x28,0x7c,0x3c,0x9b,0xe2,0x1d,0x85,0x9d,0xaa,0x6a,0x22, -0xc2,0x3b,0x79,0x0c,0xa5,0x4c,0x3e,0x66,0xf6,0xc6,0x07,0xf1,0x0c,0x63,0x27,0xd7, -0xad,0x76,0xf4,0x56,0x15,0xe8,0x43,0x13,0x4d,0xd2,0xa8,0xaf,0x17,0xb9,0x13,0x82, -0xa9,0x17,0x19,0x6c,0x7c,0xf5,0x37,0xec,0xcd,0xaa,0x2e,0x7c,0x9d,0x66,0xd1,0xff, -0x00,0xdf,0x8d,0x97,0xfc,0x6a,0x93,0xfe,0xcd,0xbe,0x23,0x19,0xd9,0x7d,0xa6,0xb7, -0xd6,0x49,0x07,0xfe,0xc9,0x5f,0x49,0x51,0x5e,0x0b,0xe1,0xdc,0xbd,0xfd,0x97,0xf7, -0xb3,0x8d,0xe0,0x68,0xbe,0x9f,0x89,0xf3,0x1c,0xff,0x00,0xb3,0xbf,0x8a,0xa2,0x52, -0x55,0xf4,0xf9,0x88,0xfe,0x14,0x9c,0x8f,0xe6,0xa2,0xbb,0x0f,0x83,0x7f,0x0a,0xb5, -0x8f,0x0a,0x78,0x9a,0x7d,0x4b,0x57,0x82,0x38,0x55,0x20,0x31,0xc3,0xb6,0x45,0x7d, -0xcc,0xc4,0x64,0xf0,0x78,0xc0,0x18,0xfc,0x6b,0xdb,0x28,0xaa,0xa1,0x90,0xe1,0x30, -0xd5,0x63,0x5a,0x17,0xbc,0x7c,0xc2,0x18,0x2a,0x54,0xe4,0xa4,0xaf,0xa0,0x51,0x45, -0x15,0xf4,0x67,0x78,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x87,0x9a,0xf2,0xef, -0x88,0x7f,0x03,0xac,0x3c,0x55,0x24,0x97,0xda,0x63,0xa6,0x9b,0xa9,0xb6,0x59,0xb8, -0xfd,0xd4,0xc7,0xd5,0x80,0xe8,0x7d,0xc7,0xe4,0x6b,0xd4,0xa8,0xae,0x4c,0x4e,0x16, -0x8e,0x2e,0x1e,0xce,0xb4,0x6e,0x8c,0xea,0x53,0x8d,0x55,0xcb,0x35,0x73,0xe3,0x1f, -0x13,0x78,0x1f,0x5b,0xf0,0x84,0xc5,0x35,0x4b,0x09,0x20,0x8f,0x38,0x13,0xaf,0xcd, -0x13,0x7d,0x18,0x71,0xf8,0x75,0xf6,0xac,0x2a,0xfb,0x9e,0x68,0x52,0x78,0xca,0x48, -0xaa,0xe8,0x78,0x2a,0xc3,0x20,0xd7,0x15,0xae,0x7c,0x18,0xf0,0x9e,0xb8,0x59,0xdf, -0x4d,0x5b,0x49,0x4f,0xfc,0xb4,0xb3,0x6f,0x2b,0xf4,0x1f,0x2f,0xe9,0x5f,0x0f,0x8a, -0xe1,0x79,0x5e,0xf8,0x69,0xfc,0x9f,0xf9,0xa3,0xc7,0xa9,0x97,0x3d,0xe9,0xbf,0xbc, -0xf9,0x36,0x8a,0xf7,0xed,0x43,0xf6,0x65,0xb2,0x91,0x89,0xb0,0xd6,0xe7,0x85,0x7b, -0x2d,0xc4,0x2b,0x27,0xea,0x0a,0xd6,0x0d,0xcf,0xec,0xd5,0xad,0x23,0x91,0x06,0xa9, -0x63,0x2a,0xf6,0x32,0x07,0x43,0xfa,0x03,0x5e,0x0c,0xf2,0x2c,0xc2,0x0f,0xf8,0x77, -0xf4,0x68,0xe3,0x78,0x3a,0xeb,0xec,0x9e,0x3f,0x45,0x7a,0xb1,0xfd,0x9b,0xfc,0x4b, -0xda,0xf7,0x4b,0x3f,0xf6,0xd6,0x4f,0xfe,0x22,0x9e,0x9f,0xb3,0x6f,0x88,0xc9,0xf9, -0xef,0xb4,0xd5,0x1e,0xd2,0x48,0x7f,0xf6,0x4a,0xc1,0x64,0xf8,0xf7,0xff,0x00,0x2e, -0x99,0x1f,0x55,0xad,0xfc,0xac,0xf2,0x6a,0x2b,0xdb,0x74,0xff,0x00,0xd9,0x9a,0xe9, -0xb9,0xbd,0xd7,0x22,0x8f,0xd5,0x60,0xb7,0x2f,0xfa,0x92,0x3f,0x95,0x75,0x9a,0x3f, -0xec,0xf3,0xe1,0x9b,0x0c,0x35,0xdb,0x5d,0x6a,0x4c,0x3b,0x4b,0x26,0xc4,0xfc,0x97, -0x07,0xf5,0xae,0xda,0x5c,0x3d,0x8f,0xa8,0xf5,0x8a,0x8f,0xab,0xff,0x00,0x2b,0x9a, -0xc7,0x03,0x5a,0x5b,0xab,0x1f,0x36,0x59,0xd9,0x5c,0x6a,0x17,0x09,0x05,0xac,0x12, -0xdc,0xcc,0xe7,0x0b,0x1c,0x28,0x59,0x8f,0xd0,0x0a,0xf5,0x5f,0x05,0xfe,0xcf,0x9a, -0x9e,0xaa,0xd1,0xdc,0xeb,0xb2,0x7f,0x66,0x5a,0x13,0x9f,0x21,0x08,0x69,0xd8,0x7e, -0xa1,0x7f,0x1c,0x9f,0x6a,0xf7,0xdd,0x1f,0xc3,0xba,0x6f,0x87,0xe1,0x31,0x69,0xd6, -0x36,0xf6,0x51,0x9e,0xa2,0x18,0xc2,0xe7,0xeb,0xeb,0x5a,0x75,0xf4,0xd8,0x3e,0x19, -0xa3,0x49,0xa9,0xe2,0x25,0xcc,0xfb,0x6c,0xbf,0xcd,0x9e,0x85,0x2c,0xbe,0x31,0xd6, -0xa3,0xb9,0x93,0xe1,0xdf,0x0c,0xe9,0xbe,0x15,0xd3,0xd6,0xcf,0x4c,0xb5,0x4b,0x58, -0x47,0x5d,0xbf,0x79,0xcf,0xab,0x1e,0xa4,0xfd,0x6b,0x54,0x74,0xa5,0xa2,0xbe,0xca, -0x10,0x8d,0x38,0xa8,0xc1,0x59,0x23,0xd5,0x49,0x45,0x59,0x05,0x35,0xba,0x73,0x4e, -0xa8,0x2f,0x56,0x66,0xb5,0x98,0x40,0x50,0x4f,0xb0,0xf9,0x65,0xfe,0xee,0xec,0x71, -0x9f,0x6c,0xd5,0x3d,0x15,0xc6,0x7c,0x99,0xf1,0x6f,0x5d,0xfe,0xdf,0xf1,0xfe,0xab, -0x32,0xb6,0xe8,0xa1,0x93,0xec,0xd1,0xf3,0x9e,0x13,0x83,0x8f,0xab,0x6e,0x3f,0x8d, -0x71,0xd5,0xdd,0x6b,0xff,0x00,0x06,0x7c,0x5b,0xa3,0xb4,0x92,0x35,0x81,0xd4,0x50, -0x1c,0x99,0xac,0xdb,0xcc,0x2d,0xef,0xb7,0xef,0x7e,0x95,0xc5,0xde,0xd9,0x5c,0x69, -0xb3,0x18,0x6e,0xed,0xe5,0xb5,0x98,0x75,0x8e,0x64,0x28,0xdf,0x91,0xe6,0xbf,0x11, -0xc6,0xd2,0xc4,0x2a,0xd3,0xa9,0x5e,0x0d,0x36,0xdb,0xd5,0x1f,0x23,0x5a,0x33,0xe7, -0x72,0x92,0xdc,0x86,0x8a,0x28,0xaf,0x38,0xc0,0x28,0xa2,0x8a,0x00,0x28,0xa2,0x8a, -0x00,0x28,0xa2,0xae,0xe9,0x5a,0x26,0xa1,0xae,0xcf,0xe4,0xe9,0xd6,0x53,0xde,0xcb, -0xdd,0x60,0x42,0xd8,0xf7,0x38,0xe9,0xf8,0xd5,0x46,0x32,0x9b,0xe5,0x8a,0xbb,0x1a, -0x4d,0xe8,0x8a,0x55,0xd4,0x78,0x03,0xc0,0x17,0xfe,0x3d,0xd5,0xd6,0xde,0xdd,0x5a, -0x2b,0x38,0xc8,0x37,0x17,0x44,0x7c,0xb1,0xaf,0xa0,0xf5,0x63,0xd8,0x7f,0x4a,0xef, -0xbc,0x1b,0xfb,0x3b,0xde,0xdd,0xba,0x5c,0x78,0x86,0x71,0x67,0x00,0xe4,0xda,0x40, -0xc1,0xa4,0x6f,0x62,0xc3,0x81,0xf8,0x67,0xf0,0xaf,0x76,0xd1,0x74,0x5b,0x1f,0x0f, -0xd8,0x47,0x65,0xa7,0xdb,0x25,0xad,0xb4,0x63,0xe5,0x44,0x1f,0xa9,0xf5,0x3e,0xe6, -0xbe,0xc3,0x2c,0xe1,0xfa,0xb5,0xa4,0xaa,0x62,0x97,0x2c,0x7b,0x75,0x7f,0xe4,0x7a, -0x98,0x7c,0x14,0xa4,0xd4,0xaa,0x68,0x83,0x45,0xd1,0xad,0x74,0x0d,0x32,0xdb,0x4f, -0xb2,0x8c,0x45,0x6d,0x02,0x04,0x45,0xf6,0xf5,0x3e,0xa4,0xfa,0xd5,0xe1,0x4b,0x45, -0x7e,0x99,0x18,0xa8,0x25,0x18,0xec,0x8f,0x7d,0x24,0x95,0x90,0x51,0x45,0x15,0x43, -0x1b,0x21,0xdb,0x1b,0x1f,0x40,0x4d,0x7c,0x35,0xf1,0xd6,0xeb,0xcf,0xf1,0x4c,0xbc, -0xe7,0xe6,0x26,0xbe,0xe0,0xbe,0x7f,0x2e,0xce,0x76,0x3d,0x90,0x9f,0xd2,0xbe,0x0b, -0xf8,0xbb,0x38,0x9f,0xc5,0x13,0xfd,0x4f,0xf3,0xaf,0x91,0xe2,0x19,0x5a,0x9d,0x38, -0xf7,0x67,0xcb,0x71,0x0c,0xad,0x86,0xb1,0xe0,0x5f,0x15,0xe7,0xf2,0xb4,0x59,0xb9, -0xec,0x7f,0x95,0x7d,0xeb,0xfb,0x03,0x69,0xbf,0xd9,0xdf,0xb2,0x7f,0x81,0x7d,0x6e, -0x23,0xb8,0xb9,0x38,0xff,0x00,0x6e,0xe2,0x53,0x5f,0x9f,0x7f,0x19,0x26,0x11,0xe8, -0x92,0xf3,0x8f,0x94,0xff,0x00,0x2a,0xfd,0x29,0xfd,0x90,0xec,0x06,0x9b,0xfb,0x31, -0x7c,0x33,0x84,0x2e,0xdc,0xe8,0x76,0xd2,0x90,0x7d,0x5d,0x77,0x9f,0xd5,0xab,0xb3, -0x26,0x56,0xa2,0x78,0x1c,0x1f,0x1b,0xfb,0x79,0xf9,0xa3,0xd7,0xa8,0xa2,0x8a,0xfa, -0x23,0xf4,0x83,0xe7,0x5f,0xda,0xf7,0xc6,0x0d,0x69,0xa2,0xe9,0x5e,0x1c,0x81,0xf0, -0x6f,0x64,0x37,0x37,0x00,0x7f,0x71,0x3e,0xe8,0x3f,0x56,0x39,0xff,0x00,0x80,0xd7, -0x94,0x7e,0xcf,0x3e,0x12,0xff,0x00,0x84,0xa3,0xe2,0x15,0xa3,0x3a,0x6e,0xb7,0xb3, -0xfd,0xfb,0xfa,0x71,0xd2,0xb2,0x7e,0x36,0xf8,0xb1,0xbc,0x65,0xf1,0x33,0x5a,0xbb, -0x0f,0xbe,0xda,0xde,0x53,0x67,0x6f,0xce,0x40,0x48,0xf2,0x38,0xfa,0xb6,0xe3,0xf8, -0xd7,0xd0,0x7f,0xb2,0xb7,0x84,0x46,0x93,0xe1,0x29,0xf5,0x79,0x53,0x13,0xde,0xbe, -0x14,0x91,0xfc,0x03,0xff,0x00,0xaf,0x5f,0x01,0xff,0x00,0x23,0x1c,0xd3,0xfb,0xa9, -0xfe,0x0b,0xfc,0xd9,0xf9,0xfd,0x2f,0xf8,0x52,0xcd,0x5c,0xf7,0x8c,0x7f,0x25,0xff, -0x00,0x04,0xf7,0x30,0x30,0x00,0xe9,0x4b,0x48,0x29,0x6b,0xef,0xcf,0xd0,0x02,0xbc, -0xff,0x00,0xe3,0x67,0xc0,0x9f,0x05,0xfe,0xd0,0x9e,0x0c,0x97,0xc3,0x1e,0x37,0xd1, -0xe3,0xd5,0xb4,0xd2,0xe2,0x58,0x9b,0x71,0x49,0xad,0xe5,0x00,0x81,0x24,0x4e,0x39, -0x46,0xc1,0x23,0x8e,0xa0,0x90,0x72,0x09,0x15,0xe8,0x14,0x50,0x07,0xe6,0x47,0x8d, -0x3f,0xe0,0x89,0xda,0x1d,0xc5,0xc3,0x4b,0xe1,0x5f,0x89,0xb7,0xfa,0x7c,0x1c,0x9f, -0x23,0x57,0xd3,0x92,0xe5,0x87,0xfd,0xb4,0x47,0x8f,0xff,0x00,0x41,0xaf,0xcb,0x8f, -0x1b,0x68,0x56,0x5e,0x17,0xf1,0x86,0xb5,0xa3,0xe9,0xda,0xb4,0x7a,0xf5,0x8e,0x9f, -0x79,0x2d,0xac,0x3a,0x9c,0x31,0x98,0xe3,0xba,0x54,0x72,0xa2,0x55,0x52,0x49,0x0a, -0xd8,0xc8,0xe7,0xa1,0xaf,0xe9,0x9b,0xc6,0x1a,0x1d,0xc7,0x89,0x7c,0x2b,0xac,0x69, -0x16,0x9a,0x94,0xba,0x35,0xcd,0xfd,0x9c,0xb6,0xb1,0xea,0x10,0x20,0x69,0x2d,0x99, -0xd0,0xa8,0x91,0x01,0xe0,0xb2,0xe7,0x23,0x3c,0x64,0x0a,0xfc,0xdd,0xd4,0x3f,0xe0, -0x89,0x1a,0x41,0x95,0x5a,0xc7,0xe2,0x9d,0xea,0xc6,0x18,0x12,0x97,0x3a,0x42,0x31, -0x23,0xb8,0xca,0xca,0x3f,0x95,0x3b,0x92,0xd1,0xf2,0x97,0xc2,0x7f,0xf8,0x26,0x5f, -0xc6,0x3f,0x8c,0xbf,0x0d,0x34,0x4f,0x1b,0xe8,0x03,0x41,0x87,0x4b,0xd5,0xe2,0x69, -0xad,0xed,0xf5,0x0b,0xd7,0x86,0xe3,0x60,0x76,0x50,0xc5,0x7c,0xb2,0x30,0xdb,0x77, -0x0e,0x79,0x04,0x1a,0xd3,0xbc,0xff,0x00,0x82,0x4e,0x7e,0xd1,0x16,0xa4,0x88,0xf4, -0x0d,0x1e,0xe8,0x0e,0xf0,0xeb,0x30,0x8c,0xff,0x00,0xdf,0x44,0x57,0xed,0xff,0x00, -0x85,0x7c,0x35,0x63,0xe0,0xdf,0x0c,0xe9,0x3a,0x06,0x99,0x17,0x91,0xa6,0xe9,0x76, -0x91,0x59,0x5a,0xc5,0x9c,0xec,0x8a,0x34,0x08,0x83,0xf2,0x51,0x5a,0xb4,0x5c,0x2c, -0x8f,0xc0,0x4d,0x47,0xfe,0x09,0xa7,0xfb,0x47,0x69,0xcc,0xc0,0xfc,0x38,0x9a,0xe5, -0x57,0xf8,0xad,0xb5,0x1b,0x47,0x07,0xe9,0xfb,0xdc,0x9a,0xc6,0xd1,0xbf,0x60,0x7f, -0x8e,0xf7,0xde,0x25,0xd3,0x34,0xbb,0xcf,0x86,0x7e,0x20,0xb0,0x86,0xea,0xee,0x2b, -0x79,0x6f,0x5e,0xd7,0x74,0x50,0x2b,0x38,0x53,0x23,0x32,0x92,0x02,0xa8,0x39,0x27, -0x3d,0x05,0x7f,0x42,0x78,0xa0,0x80,0x7b,0x51,0x70,0xe5,0x46,0x2f,0x82,0xfc,0x29, -0x63,0xe0,0x5f,0x07,0x68,0x9e,0x1c,0xd3,0x23,0x58,0xb4,0xfd,0x26,0xce,0x1b,0x28, -0x11,0x46,0x00,0x48,0xd0,0x28,0xfd,0x05,0x7c,0x4f,0xff,0x00,0x05,0x7d,0xf8,0xb1, -0x73,0xe1,0x4f,0x80,0x9a,0x6f,0x82,0x34,0xd5,0xb8,0x6b,0xef,0x15,0xde,0xff,0x00, -0xa4,0x98,0x63,0x2c,0xa2,0xce,0xdf,0x6b,0xb8,0x62,0x3a,0x66,0x46,0x84,0x0f,0x50, -0x1b,0xd2,0xbe,0xf3,0xa6,0xb2,0x2b,0x75,0x00,0xfd,0x45,0x22,0x8f,0xe5,0xad,0xa3, -0x64,0x24,0x32,0xb2,0xe3,0xfb,0xc3,0x14,0xd1,0xcf,0x4e,0x6b,0xfa,0x8b,0xbc,0xd1, -0x74,0xfd,0x42,0x33,0x1d,0xd5,0x85,0xb5,0xca,0x1e,0xab,0x34,0x2a,0xe0,0xfe,0x04, -0x57,0x2d,0xab,0xfc,0x11,0xf8,0x77,0xaf,0xa9,0x5d,0x4b,0xc0,0x7e,0x19,0xbf,0x53, -0xd4,0x5c,0xe9,0x16,0xf2,0x67,0xf3,0x4a,0x77,0x23,0x94,0xfe,0x67,0x71,0x9a,0x2b, -0xfa,0x3a,0xba,0xfd,0x90,0x3e,0x07,0x5e,0xe7,0xcd,0xf8,0x43,0xe0,0x9c,0x9e,0xa5, -0x34,0x1b,0x64,0x3f,0x98,0x41,0x5c,0xbe,0xad,0xff,0x00,0x04,0xfb,0xfd,0x9e,0xb5, -0x9c,0xf9,0xdf,0x0b,0x74,0x58,0x73,0xff,0x00,0x3e,0x7e,0x6d,0xbf,0xfe,0x8b,0x75, -0xc5,0x3b,0x87,0x29,0xfc,0xf6,0xd1,0x5f,0xbd,0x17,0x5f,0xf0,0x4b,0x8f,0xd9,0xb2, -0xe9,0xcb,0x0f,0x01,0xcd,0x01,0x3f,0xf3,0xcb,0x5b,0xbe,0x03,0xf2,0xf3,0xab,0x9f, -0xd5,0x3f,0xe0,0x92,0x1f,0xb3,0xed,0xfe,0xef,0xb3,0xe9,0xba,0xf6,0x9b,0x9e,0x9f, -0x66,0xd5,0xdd,0xb1,0xff,0x00,0x7f,0x03,0x51,0x70,0xe5,0x3f,0x0d,0xe8,0xaf,0xd9, -0xab,0xef,0xf8,0x23,0x0f,0xc1,0xdb,0x87,0x63,0x6d,0xe2,0x8f,0x19,0x5a,0x03,0xd1, -0x7e,0xd5,0x6c,0xe0,0x7e,0x70,0x56,0x05,0xff,0x00,0xfc,0x11,0x43,0xc0,0x32,0x03, -0xf6,0x2f,0x88,0x9e,0x24,0xb7,0x3d,0xbe,0xd1,0x6f,0x6f,0x2e,0x3f,0x25,0x5a,0x2e, -0x1c,0xac,0xfc,0x89,0x8a,0xee,0x68,0x71,0xe5,0xcd,0x24,0x78,0xfe,0xeb,0x11,0x5a, -0xf6,0x3e,0x3b,0xf1,0x2e,0x98,0x41,0xb3,0xf1,0x0e,0xab,0x69,0x8e,0x9e,0x45,0xec, -0xa9,0xfc,0x9a,0xbf,0x4c,0x35,0x5f,0xf8,0x22,0x28,0x24,0xff,0x00,0x66,0x7c,0x59, -0xd8,0x3b,0x0b,0xbd,0x13,0x71,0xff,0x00,0xc7,0x67,0x15,0xcd,0xde,0xff,0x00,0xc1, -0x12,0xbc,0x5d,0x19,0x3f,0x64,0xf8,0x9d,0xa2,0x4e,0x3b,0x79,0xda,0x6c,0xd1,0xff, -0x00,0x27,0x6a,0x05,0x66,0x7c,0x2f,0xa6,0xfe,0xd0,0x9f,0x14,0x34,0x62,0x0d,0x8f, -0xc4,0x5f,0x15,0x5a,0xe3,0xa7,0x95,0xac,0xdc,0x2f,0xfe,0xcf,0x5d,0x56,0x9f,0xfb, -0x6a,0xfc,0x77,0xd2,0xc0,0x16,0xff,0x00,0x15,0xfc,0x53,0x81,0xda,0x5d,0x45,0xe4, -0xff,0x00,0xd0,0xb3,0x5f,0x4c,0x6a,0xdf,0xf0,0x46,0x1f,0x8b,0x96,0xc7,0xfe,0x25, -0xfe,0x2c,0xf0,0x85,0xf0,0xff,0x00,0xa6,0xb3,0x5c,0xc2,0x7f,0xf4,0x4b,0x57,0x29, -0x7d,0xff,0x00,0x04,0x87,0xf8,0xfd,0x68,0x48,0x8a,0x1f,0x0d,0x5e,0x81,0xde,0x1d, -0x57,0x19,0xff,0x00,0xbe,0xd1,0x68,0x1d,0x99,0xe6,0x56,0x1f,0xf0,0x50,0xcf,0xda, -0x23,0x4f,0x60,0x53,0xe2,0x86,0xab,0x28,0x1d,0xae,0x22,0x82,0x5f,0xfd,0x0a,0x33, -0x5d,0x4e,0x9b,0xff,0x00,0x05,0x4c,0xfd,0xa3,0x34,0xec,0x67,0xc6,0x36,0x97,0x80, -0x76,0xb9,0xd2,0x2d,0x9b,0x3f,0x92,0x03,0x4b,0xa9,0xff,0x00,0xc1,0x2c,0x7f,0x68, -0xdd,0x3c,0x9d,0x9e,0x0d,0xb4,0xbd,0x03,0xbd,0xb6,0xb1,0x68,0x73,0xf8,0x34,0x8a, -0x6b,0x8d,0xbf,0xff,0x00,0x82,0x7f,0xfe,0xd0,0xba,0x73,0xb2,0xc9,0xf0,0xb3,0x5a, -0x93,0x6f,0x7b,0x7f,0x2a,0x50,0x7e,0x9b,0x5c,0xe6,0x8d,0x03,0x53,0xd5,0xac,0x7f, -0xe0,0xaf,0x7f,0x1f,0x6d,0x14,0x09,0x64,0xf0,0xcd,0xe7,0xfb,0x53,0x69,0x44,0x1f, -0xfc,0x72,0x45,0xae,0x9f,0x4b,0xff,0x00,0x82,0xce,0xfc,0x5e,0xb4,0x50,0x2f,0x7c, -0x2f,0xe1,0x1b,0xff,0x00,0x53,0xf6,0x7b,0x88,0xcf,0xe9,0x35,0x7c,0xc5,0x7b,0xfb, -0x1b,0xfc,0x73,0xd3,0xf7,0x79,0xff,0x00,0x09,0xbc,0x5c,0x02,0x8c,0x92,0x9a,0x4c, -0xce,0x07,0xe2,0xaa,0x6b,0x90,0xd4,0x7e,0x0a,0xfc,0x42,0xd1,0xd9,0x96,0xfb,0xc0, -0x9e,0x25,0xb4,0x2b,0xf7,0xbc,0xed,0x22,0xe1,0x71,0xf9,0xa5,0x1a,0x05,0xd9,0xf7, -0xa6,0x9f,0xff,0x00,0x05,0xb3,0xf1,0x7c,0x48,0x3e,0xdd,0xf0,0xcb,0x44,0xb8,0x7f, -0x5b,0x7d,0x46,0x68,0x87,0xe4,0x55,0xab,0x7f,0x4f,0xff,0x00,0x82,0xdd,0xce,0x31, -0xf6,0xef,0x84,0x91,0xb7,0xa9,0xb7,0xd7,0x88,0xfd,0x0c,0x06,0xbf,0x32,0xee,0x7c, -0x31,0xac,0x59,0x92,0x27,0xd2,0xaf,0x61,0x23,0xaf,0x99,0x6c,0xeb,0x8f,0xcc,0x56, -0x73,0xa1,0x8d,0xb6,0xb0,0x2a,0xde,0x87,0x8a,0x34,0x0b,0xb3,0xf5,0xc7,0x4a,0xff, -0x00,0x82,0xd8,0xf8,0x36,0x54,0xce,0xa5,0xf0,0xd7,0x5d,0xb6,0x6e,0xe2,0xd2,0xfa, -0x19,0x87,0xfe,0x3c,0x12,0xba,0x0b,0x2f,0xf8,0x2d,0x17,0xc2,0x59,0x71,0xf6,0x9f, -0x06,0xf8,0xc6,0xdc,0xfa,0xa4,0x36,0xae,0x3f,0xf4,0x78,0xaf,0xc6,0xdc,0xe7,0xbd, -0x18,0x34,0x58,0x2e,0xcf,0xdb,0xbd,0x37,0xfe,0x0a,0xfd,0xf0,0x16,0xf5,0x03,0x5c, -0x7f,0xc2,0x4d,0x60,0x4f,0x69,0xb4,0xb0,0xf8,0xff,0x00,0xbe,0x24,0x6a,0xe9,0xec, -0xbf,0xe0,0xaa,0x5f,0xb3,0x75,0xdc,0x41,0xe4,0xf1,0xb5,0xdd,0xa3,0x1f,0xe0,0x9b, -0x44,0xbd,0x24,0x7e,0x2b,0x11,0x1f,0xad,0x7e,0x0e,0xe2,0x8a,0x2c,0x1c,0xc7,0xf4, -0x01,0x63,0xff,0x00,0x05,0x23,0xfd,0x9c,0x6f,0xc0,0xd9,0xf1,0x32,0xce,0x2c,0xf6, -0x9e,0xc6,0xee,0x3f,0xfd,0x0a,0x21,0x5d,0x6e,0x99,0xfb,0x6a,0xfc,0x06,0xd5,0xe3, -0x0f,0x07,0xc5,0xcf,0x08,0xc6,0x0f,0x6b,0xad,0x56,0x2b,0x73,0xf9,0x48,0x54,0xd7, -0xf3,0xa5,0x9a,0x29,0x58,0x39,0x8f,0xe9,0x32,0xcf,0xf6,0x9c,0xf8,0x3f,0xa8,0x15, -0x16,0xdf,0x15,0x3c,0x17,0x39,0x6e,0x82,0x3f,0x10,0x5a,0x1c,0xff,0x00,0xe4,0x4a, -0xeb,0xb4,0xdf,0x1f,0x78,0x63,0x59,0x50,0xd6,0x1e,0x22,0xd2,0x6f,0x94,0xf2,0x0d, -0xb5,0xf4,0x52,0x03,0xf9,0x31,0xaf,0xe6,0x16,0x9c,0xb2,0x32,0x10,0x55,0x8a,0x91, -0xdc,0x1a,0x2c,0x1c,0xc7,0xf5,0x25,0x14,0xf1,0xcc,0x9b,0xe3,0x75,0x75,0xf5,0x52, -0x08,0xa7,0xe6,0xbf,0x97,0x8b,0x7f,0x10,0xea,0xb6,0x98,0xf2,0x35,0x3b,0xc8,0x71, -0xd3,0xcb,0xb8,0x75,0xc7,0xe4,0x6b,0x7b,0x4f,0xf8,0xc3,0xe3,0xcd,0x2b,0x1f,0x62, -0xf1,0xb7,0x88,0xad,0x31,0xd3,0xc9,0xd5,0x67,0x4c,0x7e,0x4f,0x45,0x87,0xcc,0x7f, -0x4d,0x39,0xa5,0xaf,0xe7,0x07,0x4e,0xfd,0xae,0x3e,0x35,0xe9,0x48,0xa9,0x69,0xf1, -0x5b,0xc5,0xf0,0xa2,0xf0,0x17,0xfb,0x66,0x72,0x3f,0x22,0xd5,0xd1,0xe9,0xff,0x00, -0xb7,0xbf,0xed,0x07,0xa6,0xe3,0xca,0xf8,0xab,0xaf,0xc9,0x8e,0xd7,0x12,0x24,0xdf, -0xfa,0x1a,0x9a,0x2c,0x1c,0xc8,0xfe,0x86,0xe8,0xaf,0xc0,0xed,0x33,0xfe,0x0a,0x75, -0xfb,0x46,0xe9,0x7d,0x3c,0x7c,0x2e,0x87,0xa5,0xd6,0x99,0x69,0x27,0xf3,0x8f,0x35, -0xd2,0xd9,0x7f,0xc1,0x5b,0x3f,0x68,0x4b,0x5c,0x79,0xba,0xae,0x85,0x79,0xff,0x00, -0x5d,0xb4,0x88,0xc6,0x7f,0xef,0x82,0xb4,0x58,0x77,0x47,0xee,0x65,0x15,0xf8,0xa9, -0xa6,0xff,0x00,0xc1,0x63,0xbe,0x37,0x5a,0x11,0xf6,0xad,0x2f,0xc2,0x77,0xc3,0xbe, -0xeb,0x09,0x90,0xff,0x00,0xe3,0xb3,0x0a,0xea,0xf4,0xff,0x00,0xf8,0x2d,0x67,0xc4, -0x28,0x71,0xf6,0xdf,0x87,0xfe,0x1b,0xb9,0xff,0x00,0xae,0x33,0xdc,0x45,0xfc,0xd9, -0xa8,0xb0,0x5d,0x1f,0xb0,0x14,0x57,0xe4,0xf5,0x8f,0xfc,0x16,0xe7,0x5b,0x56,0x1f, -0x6c,0xf8,0x51,0x60,0xeb,0xdc,0xc1,0xad,0x3a,0x9f,0xd6,0x13,0x5d,0x66,0x99,0xff, -0x00,0x05,0xb7,0xd0,0x5d,0x07,0xf6,0x8f,0xc2,0xdd,0x4a,0x27,0xef,0xf6,0x5d,0x56, -0x37,0x1f,0xf8,0xf4,0x62,0x8b,0x05,0xd1,0xfa,0x6b,0x45,0x7e,0x77,0xd8,0xff,0x00, -0xc1,0x6a,0x7e,0x18,0xc8,0x83,0xed,0x7e,0x06,0xf1,0x6c,0x12,0x1e,0xa2,0x1f,0xb2, -0xc8,0x07,0xe2,0x65,0x5f,0xe5,0x5d,0x16,0x9b,0xff,0x00,0x05,0x8e,0xf8,0x23,0x76, -0x07,0xda,0x74,0xaf,0x17,0x58,0x9e,0xfb,0xec,0x21,0x7c,0x7f,0xdf,0x33,0x1a,0x56, -0x0b,0xa3,0xee,0xea,0x2b,0xe3,0xdd,0x33,0xfe,0x0a,0xbd,0xfb,0x3a,0xdf,0x45,0xbe, -0x7f,0x12,0x6a,0xba,0x71,0xfe,0xe5,0xce,0x8d,0x72,0xc7,0xff,0x00,0x21,0xab,0x0a, -0xdd,0xb2,0xff,0x00,0x82,0x9c,0x7e,0xcd,0xd7,0xcc,0x14,0x7c,0x43,0x10,0x93,0xff, -0x00,0x3d,0xb4,0xab,0xd4,0xfe,0x70,0xd0,0x3b,0x9f,0x52,0xd1,0x5e,0x13,0xa6,0xfe, -0xdd,0x5f,0x00,0x35,0x58,0x95,0xe2,0xf8,0xb1,0xe1,0xa8,0x81,0xed,0x75,0x77,0xe4, -0x1f,0xc9,0xc0,0x35,0xbd,0x6b,0xfb,0x59,0x7c,0x14,0xbd,0x0a,0x61,0xf8,0xb5,0xe0, -0xa6,0xdd,0xd0,0x1d,0x7e,0xd4,0x13,0xf8,0x17,0xa0,0x0f,0x58,0xa2,0xb8,0xed,0x33, -0xe3,0x27,0x80,0xb5,0xa4,0x56,0xd3,0xfc,0x6d,0xe1,0xdb,0xd5,0x6e,0x86,0xdf,0x55, -0x81,0xf3,0xf9,0x3d,0x74,0xd6,0x9a,0xb5,0x8d,0xfc,0x61,0xed,0xaf,0x2d,0xee,0x10, -0xf4,0x68,0xa5,0x56,0x07,0xf1,0x06,0x80,0x2d,0xd4,0x17,0x56,0x70,0x5e,0x46,0x63, -0x9e,0x08,0xe7,0x8c,0xf5,0x59,0x14,0x30,0x3f,0x81,0xa9,0x43,0x82,0x32,0x0e,0x7e, -0x94,0xb9,0xa4,0xd2,0x6a,0xcc,0x37,0x39,0x4b,0xff,0x00,0x85,0x9e,0x14,0xd4,0x41, -0x12,0xe8,0x56,0x6a,0x4f,0x56,0x85,0x3c,0xa3,0xf9,0xae,0x2b,0x02,0xf3,0xf6,0x7d, -0xf0,0x95,0xc6,0x7c,0xb8,0x6e,0xad,0x73,0xff,0x00,0x3c,0xae,0x09,0xff,0x00,0xd0, -0xb3,0x5e,0x95,0x9a,0x2b,0x86,0xa6,0x5f,0x84,0xab,0xf1,0xd2,0x8b,0xf9,0x23,0x07, -0x42,0x9c,0xb7,0x8a,0x3c,0x7e,0x6f,0xd9,0xa7,0x44,0x63,0xfb,0xad,0x57,0x50,0x4f, -0xf7,0xbc,0xb6,0xff,0x00,0xd9,0x45,0x56,0x6f,0xd9,0x9b,0x4f,0xcf,0xcb,0xad,0x5c, -0x8f,0xac,0x4a,0x7f,0xad,0x7b,0x55,0x26,0x2b,0x8d,0xe4,0xb9,0x7b,0xff,0x00,0x97, -0x4b,0xf1,0xff,0x00,0x33,0x3f,0xaa,0x50,0xfe,0x53,0xc6,0x13,0xf6,0x66,0xd3,0x54, -0xfc,0xda,0xcd,0xd1,0xff,0x00,0x76,0x35,0x15,0x7e,0xd3,0xf6,0x70,0xf0,0xdc,0x0c, -0x0c,0xd7,0x7a,0x85,0xcf,0xb3,0x48,0x8a,0x3f,0x45,0xaf,0x58,0xc5,0x2d,0x38,0xe4, -0xd8,0x08,0xed,0x49,0x02,0xc2,0xd1,0x5f,0x64,0xe2,0x74,0xcf,0x83,0x7e,0x11,0xd2, -0x88,0x29,0xa3,0xc5,0x3b,0x7a,0xdc,0xb3,0x4b,0xfa,0x31,0x22,0xba,0xfb,0x4b,0x2b, -0x7b,0x08,0x56,0x1b,0x68,0x23,0x82,0x25,0xe0,0x24,0x48,0x14,0x0f,0xc0,0x54,0xf4, -0x57,0xa5,0x4b,0x0f,0x46,0x82,0xb5,0x28,0x25,0xe8,0x8e,0x88,0xc2,0x30,0xf8,0x55, -0x82,0x8a,0x28,0xae,0x82,0xc2,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x0c,0xef,0x10, -0xcb,0xe4,0xe8,0x97,0xaf,0xe9,0x13,0x7f,0x2a,0xf8,0x0b,0xe2,0x14,0xe6,0x7f,0x11, -0x5d,0x31,0xe7,0xe6,0x35,0xf7,0x7f,0x8e,0x66,0xf2,0x3c,0x2d,0xa8,0x36,0x71,0xfb, -0xb2,0x2b,0xe0,0x2f,0x18,0x4b,0xe6,0xeb,0x37,0x6d,0xfe,0xd1,0xaf,0x88,0xe2,0x29, -0x7b,0xf4,0xa3,0xea,0x7c,0x67,0x12,0x4a,0xd4,0xa2,0x8f,0x00,0xf8,0xed,0x75,0xe5, -0x68,0x93,0x8c,0xf4,0x42,0x7f,0x4a,0xfd,0x6a,0xf8,0x37,0xa6,0xff,0x00,0x63,0x7c, -0x24,0xf0,0x55,0x81,0x50,0x86,0xdb,0x45,0xb3,0x88,0xa8,0x18,0xc1,0x10,0xa0,0xaf, -0xc8,0x7f,0x8e,0xbf,0xe9,0x36,0x82,0xd8,0x13,0x99,0x59,0x63,0xe3,0xfd,0xa3,0x8f, -0xeb,0x5f,0xb3,0x7a,0x25,0xa8,0xb1,0xd1,0xec,0x6d,0x87,0x48,0x60,0x8e,0x31,0xf8, -0x28,0x1f,0xd2,0xbd,0xcc,0xa9,0x5a,0x82,0x38,0xf8,0x3e,0x3f,0xec,0xd5,0x27,0xde, -0x45,0xea,0x28,0xa2,0xbd,0xb3,0xef,0xcf,0xcd,0xfd,0x0b,0x4e,0x93,0xc4,0x1e,0x25, -0x8e,0xce,0x20,0x5a,0x4b,0x8b,0x92,0xbf,0x9b,0x1a,0xfd,0x0a,0xf0,0xbe,0x8b,0x17, -0x87,0xb4,0x1b,0x1d,0x3a,0x15,0xc2,0x41,0x12,0xa7,0xe3,0x8e,0x6b,0xe1,0x7f,0x80, -0x9a,0xce,0x9f,0xa2,0x7c,0x4f,0x67,0xd6,0x07,0x96,0x6c,0xae,0x65,0x88,0xa3,0x8e, -0x56,0x40,0xe4,0x73,0x9f,0xa5,0x7d,0xb5,0x6f,0xf1,0x0b,0x40,0xb8,0x50,0x57,0x51, -0x8b,0xf1,0x35,0xf2,0x19,0x34,0x29,0xd1,0x9d,0x59,0xce,0x49,0x4a,0xf6,0xf9,0x1f, -0x11,0xc3,0x2a,0x9a,0xc3,0xca,0xa4,0x9f,0xbc,0xdd,0xbe,0xe3,0xa4,0xa2,0xb1,0xe3, -0xf1,0x6e,0x91,0x2f,0xdd,0xbf,0x84,0xff,0x00,0xc0,0xaa,0xd2,0x6b,0x76,0x12,0x7d, -0xdb,0xc8,0x4f,0xfc,0x0c,0x57,0xd5,0xaa,0x90,0x7b,0x34,0x7d,0xaa,0x94,0x5f,0x52, -0xf5,0x23,0x67,0x1c,0x75,0xf7,0xa8,0x12,0xf6,0xde,0x5f,0xb9,0x3c,0x6d,0xf4,0x61, -0x52,0x89,0x50,0xf4,0x70,0x7f,0x1a,0xbb,0xa6,0x3b,0x8e,0x19,0xc0,0xc8,0xe6,0x8a, -0x40,0xd9,0x1d,0x69,0x73,0x4c,0x62,0xd1,0x49,0x45,0x00,0x2d,0x14,0x51,0x40,0x05, -0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x8a,0x5a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x92,0x96,0x8a,0x00,0x4c,0x0f,0x4a,0x31,0x4b,0x45,0x00, -0x25,0x2d,0x14,0x50,0x01,0x45,0x14,0x50,0x03,0x1e,0x24,0x91,0x4a,0xba,0x2b,0x29, -0xea,0x08,0xc8,0xac,0x4d,0x5b,0xc0,0x5e,0x19,0xd7,0xa2,0x31,0xea,0x7e,0x1d,0xd2, -0x75,0x18,0xcf,0x54,0xba,0xb1,0x8a,0x50,0x7f,0x06,0x53,0x5b,0xd4,0x50,0x07,0x98, -0xdf,0x7e,0xcb,0xdf,0x07,0x35,0x26,0x66,0xba,0xf8,0x51,0xe0,0xa9,0xd9,0xba,0xb3, -0xf8,0x7e,0xd0,0x93,0xf8,0xf9,0x75,0x85,0xa9,0xfe,0xc5,0x1f,0x01,0xb5,0x58,0xca, -0x4d,0xf0,0x8f,0xc2,0x31,0x8f,0x5b,0x6d,0x2a,0x28,0x0f,0xe7,0x18,0x53,0x5e,0xd7, -0x45,0x00,0x7c,0xcb,0xa9,0x7f,0xc1,0x35,0xff,0x00,0x67,0x0d,0x53,0x3e,0x67,0xc3, -0x4b,0x58,0x49,0xef,0x6d,0xa8,0x5d,0xc3,0xff,0x00,0xa0,0xca,0x2b,0x9e,0xbe,0xff, -0x00,0x82,0x54,0x7e,0xce,0x37,0x6b,0x88,0xbc,0x21,0x7f,0x64,0x7f,0xbd,0x06,0xb7, -0x78,0x4f,0xfe,0x3f,0x23,0x57,0xd7,0x74,0x50,0x16,0x3e,0x1b,0xd6,0x3f,0xe0,0x8f, -0x5f,0x02,0xb5,0x01,0xfe,0x89,0x71,0xe2,0x9d,0x2c,0xff,0x00,0xd3,0xbe,0xa4,0x8f, -0xff,0x00,0xa3,0x23,0x6a,0xe5,0xae,0xbf,0xe0,0x8a,0xff,0x00,0x0b,0x1c,0x9f,0xb3, -0xf8,0xe3,0xc6,0x10,0xe7,0xa7,0x98,0xd6,0xaf,0x8f,0xca,0x11,0x5f,0xa1,0xb4,0x50, -0x2b,0x23,0xf3,0x37,0x55,0xff,0x00,0x82,0x25,0x78,0x72,0x40,0xdf,0xd9,0x9f,0x14, -0x35,0x4b,0x73,0xdb,0xed,0x7a,0x5c,0x72,0xe3,0xfe,0xf9,0x75,0xae,0x4e,0xef,0xfe, -0x08,0x8b,0xab,0xab,0x1f,0xb2,0xfc,0x59,0xb1,0x91,0x7b,0x09,0xb4,0x37,0x53,0xf8, -0xe2,0x73,0x5f,0xab,0xd4,0x50,0x16,0x47,0xe4,0x0e,0xa5,0xff,0x00,0x04,0x51,0xf8, -0x81,0x10,0x3f,0x60,0xf8,0x85,0xe1,0xbb,0xa3,0xdb,0xcf,0xb7,0x9e,0x1c,0xfe,0x41, -0xab,0x8f,0xd4,0xff,0x00,0xe0,0x8e,0x7f,0x1c,0x2d,0x1b,0x16,0xba,0x97,0x84,0xaf, -0xc7,0xaa,0xea,0x12,0xa7,0xe8,0xd0,0xd7,0xed,0x6d,0x18,0xa7,0x70,0xb2,0x3f,0x0c, -0x35,0x0f,0xf8,0x24,0xc7,0xed,0x0d,0x65,0x9f,0x2b,0x45,0xd1,0x6f,0xb1,0xff,0x00, -0x3e,0xfa,0xc4,0x43,0x3f,0xf7,0xde,0xda,0xe5,0x35,0x6f,0xf8,0x26,0x9f,0xed,0x1d, -0xa4,0xb1,0x07,0xe1,0xcc,0xd7,0x60,0x75,0x6b,0x5d,0x42,0xd2,0x41,0xff,0x00,0xa3, -0x6b,0xf7,0xeb,0x14,0x62,0x8b,0x85,0x91,0xfc,0xf0,0x5e,0xfe,0xc2,0x3f,0xb4,0x05, -0x81,0x22,0x5f,0x85,0x1e,0x22,0x6c,0x7f,0xcf,0x1b,0x71,0x2f,0xfe,0x80,0x4d,0x72, -0xfa,0xa7,0xec,0xb7,0xf1,0x8b,0x46,0x62,0xb7,0x9f,0x0b,0x7c,0x5f,0x16,0x3a,0x91, -0xa2,0x5c,0x38,0x1f,0x8a,0xa1,0x15,0xfd,0x23,0xd1,0x8a,0x2e,0x2b,0x1f,0xcc,0x7d, -0xff,0x00,0xc2,0xef,0x19,0xe9,0x4c,0x56,0xf7,0xc2,0x5a,0xed,0x99,0x1d,0x44,0xfa, -0x6c,0xc9,0x8f,0xcd,0x6b,0x02,0xe7,0x4e,0xbb,0xb3,0x62,0xb3,0xda,0xcd,0x03,0x0e, -0xa2,0x48,0xca,0x91,0xf9,0x8a,0xfe,0xa3,0xf0,0x2a,0xbd,0xc6,0x99,0x67,0x76,0x8c, -0x93,0xda,0xc1,0x32,0xb7,0x05,0x64,0x8c,0x30,0x3f,0x98,0xa2,0xe1,0xca,0x7f,0x2e, -0x18,0xa2,0xbf,0xa6,0x6d,0x43,0xe0,0xc7,0xc3,0xed,0x58,0xb1,0xbe,0xf0,0x2f,0x86, -0xaf,0x0b,0x72,0xc6,0x7d,0x22,0xdd,0xc9,0xfa,0xe5,0x2b,0x9e,0xbd,0xfd,0x95,0xbe, -0x0c,0xea,0x0a,0xcb,0x3f,0xc2,0x8f,0x06,0x3e,0xee,0xa4,0x68,0x36,0xca,0x7f,0x30, -0x80,0xd1,0x71,0x72,0x9f,0xcd,0xd5,0x18,0x3d,0x6b,0xfa,0x1a,0xd5,0x7f,0x60,0x8f, -0xd9,0xf7,0x58,0x56,0x13,0xfc,0x29,0xd0,0x23,0xdd,0xd4,0xda,0xc4,0xd0,0x1f,0xcd, -0x18,0x57,0x23,0x77,0xff,0x00,0x04,0xbb,0xfd,0x9b,0x2e,0xd9,0x9b,0xfe,0x15,0xfc, -0x90,0x33,0x73,0x98,0x75,0xbb,0xf1,0xfa,0x79,0xf8,0x1f,0x95,0x3b,0x87,0x29,0xf8, -0x27,0x45,0x7e,0xe5,0xeb,0x3f,0xf0,0x49,0x4f,0xd9,0xef,0x53,0x8c,0xad,0xae,0x91, -0xad,0xe9,0x07,0xb3,0x5a,0x6b,0x12,0xb9,0x1f,0xf7,0xf7,0x7d,0x71,0xd7,0xbf,0xf0, -0x46,0x0f,0x83,0x73,0xb9,0x6b,0x7f,0x14,0xf8,0xd6,0xdb,0x3f,0xc3,0xf6,0xcb,0x47, -0x03,0xf3,0xb6,0xcf,0xeb,0x45,0xc3,0x94,0xfc,0x65,0xa2,0xbf,0x5f,0xb5,0x5f,0xf8, -0x22,0x97,0xc3,0xc9,0x50,0x0d,0x37,0xe2,0x0f,0x89,0xed,0x5f,0xd6,0xea,0x1b,0x79, -0xc7,0xe4,0xa8,0x95,0xc8,0xea,0x7f,0xf0,0x44,0x58,0x49,0x3f,0xd9,0xdf,0x16,0x9d, -0x7d,0x05,0xd6,0x85,0x9f,0xd5,0x67,0x14,0x5c,0x56,0x67,0xe5,0x7d,0x48,0x97,0x33, -0x45,0xf7,0x25,0x74,0xff,0x00,0x75,0x88,0xaf,0xd2,0x8b,0xef,0xf8,0x22,0x57,0x8a, -0x63,0xcf,0xd8,0xfe,0x28,0xe9,0x13,0xfa,0x79,0xfa,0x54,0xb1,0x67,0xf2,0x91,0xab, -0x95,0xd4,0xff,0x00,0xe0,0x8c,0x1f,0x16,0xad,0xc9,0xfb,0x0f,0x8b,0x3c,0x27,0x7a, -0x07,0x4f,0x32,0x6b,0x88,0x89,0xff,0x00,0xc8,0x46,0x80,0xb3,0x3e,0x19,0xd3,0xfc, -0x77,0xe2,0x5d,0x25,0x95,0xac,0x7c,0x43,0xaa,0xd9,0x95,0xe4,0x1b,0x7b,0xd9,0x13, -0x1f,0x93,0x57,0x63,0xa7,0x7e,0xd3,0xbf,0x17,0xf4,0x95,0x55,0xb3,0xf8,0xa1,0xe2, -0xfb,0x74,0x5e,0x8a,0x9a,0xdd,0xc8,0x03,0xf0,0xdf,0x5f,0x47,0x5e,0x7f,0xc1,0x20, -0x7e,0x3e,0x5b,0x13,0xe5,0x8f,0x0b,0xdd,0x81,0xd3,0xc9,0xd5,0x58,0x67,0xfe,0xfa, -0x8c,0x57,0x35,0xa9,0xff,0x00,0xc1,0x2b,0xff,0x00,0x68,0xcd,0x3c,0x31,0x8f,0xc2, -0x16,0x77,0xd8,0xff,0x00,0x9f,0x5d,0x5e,0xd8,0xe7,0xe9,0xb9,0xd6,0x80,0xd4,0xf3, -0x8b,0x4f,0xdb,0x7b,0xe3,0xdd,0x96,0x3c,0xaf,0x8b,0x3e,0x29,0x38,0xe9,0xe6,0xdf, -0xb4,0x9f,0xfa,0x16,0x6b,0xa5,0xd3,0x7f,0xe0,0xa3,0xbf,0xb4,0x5e,0x99,0x81,0x1f, -0xc4,0xbb,0xd9,0x80,0xed,0x73,0x69,0x6d,0x2e,0x7f,0xef,0xa8,0xcd,0x56,0xbf,0xff, -0x00,0x82,0x78,0x7e,0xd1,0x3a,0x71,0x3e,0x67,0xc2,0xed,0x52,0x4c,0x7f,0xcf,0x09, -0xed,0xe5,0xff,0x00,0xd0,0x64,0x35,0xcd,0x6a,0x5f,0xb1,0x97,0xc7,0x4d,0x28,0x91, -0x71,0xf0,0x9f,0xc5,0x9c,0x75,0x30,0xe9,0x92,0x4a,0x3f,0x34,0x06,0x80,0xd4,0xf5, -0x8b,0x2f,0xf8,0x2a,0xd7,0xed,0x17,0x68,0xa0,0x3f,0x8a,0x34,0xdb,0xac,0x77,0x9f, -0x46,0xb7,0xe7,0xfe,0xf9,0x51,0x5b,0xf6,0x1f,0xf0,0x57,0xff,0x00,0x8f,0x56,0xa4, -0x79,0xeb,0xe1,0x8b,0xc0,0x3a,0xf9,0xba,0x5b,0x29,0x3f,0xf7,0xcc,0x82,0xbe,0x5b, -0xd4,0xfe,0x04,0xfc,0x49,0xd1,0x5c,0xa5,0xf7,0xc3,0xff,0x00,0x14,0x5a,0x30,0xea, -0x25,0xd1,0xee,0x17,0xff,0x00,0x64,0xae,0x7e,0xf3,0xc1,0x5e,0x21,0xd3,0xce,0x2e, -0xb4,0x1d,0x4e,0xd8,0xff,0x00,0xd3,0x6b,0x39,0x13,0xf9,0xad,0x03,0xd4,0xfb,0xcb, -0x4d,0xff,0x00,0x82,0xd2,0xfc,0x51,0xb7,0x50,0x2f,0x7c,0x15,0xe1,0x5b,0xcf,0x52, -0x82,0xe2,0x23,0xff,0x00,0xa3,0x0d,0x74,0x56,0x5f,0xf0,0x5b,0x5f,0x14,0x2e,0x05, -0xdf,0xc3,0x0d,0x22,0x5f,0x53,0x06,0xa7,0x2a,0x7f,0x34,0x35,0xf9,0xab,0x34,0x12, -0xdb,0xb6,0xd9,0x63,0x78,0x9b,0xd1,0xd4,0x83,0x4c,0xa3,0x40,0xbb,0x3f,0x54,0x74, -0xbf,0xf8,0x2d,0xcd,0xbe,0x40,0xd4,0x7e,0x14,0x4a,0x07,0x73,0x6b,0xad,0x03,0xfa, -0x34,0x35,0xd4,0x58,0xff,0x00,0xc1,0x6b,0xfc,0x07,0x20,0x1f,0x6c,0xf8,0x77,0xe2, -0x38,0x0f,0xfd,0x30,0xb9,0xb7,0x93,0xf9,0x95,0xaf,0xc8,0x6c,0x51,0x45,0x85,0xcc, -0xcf,0xd9,0x9d,0x3b,0xfe,0x0b,0x39,0xf0,0x82,0xe4,0x81,0x77,0xe1,0x8f,0x17,0xd9, -0x67,0xf8,0xbe,0xcd,0x6f,0x20,0x1f,0x94,0xd5,0xd7,0x69,0xdf,0xf0,0x56,0xff,0x00, -0xd9,0xf6,0xf2,0x20,0xd7,0x1a,0x96,0xbd,0xa7,0xb1,0xfe,0x19,0xf4,0x99,0x18,0x8f, -0xfb,0xe0,0xb0,0xaf,0xc3,0x8a,0xb5,0xa4,0xd8,0xbe,0xa7,0xaa,0xd9,0xd9,0xc4,0xbb, -0xa5,0xb8,0x99,0x21,0x50,0x3b,0x96,0x60,0x07,0xf3,0xa2,0xc3,0xb9,0xfd,0x3f,0xe8, -0x3a,0xd5,0xb7,0x88,0xf4,0x4d,0x3f,0x56,0xb3,0x2e,0x6c,0xef,0xed,0xe3,0xba,0x84, -0xc8,0xa5,0x58,0xa3,0xa8,0x65,0xca,0x9e,0x41,0xc1,0x1c,0x1a,0xbf,0x55,0x34,0xab, -0x18,0xf4,0xcd,0x32,0xd2,0xce,0x14,0x11,0xc5,0x6f,0x0a,0x44,0x88,0x3a,0x28,0x55, -0x00,0x0f,0xd2,0xad,0xd4,0x96,0x14,0x51,0x45,0x00,0x72,0x3f,0x14,0xe7,0xfb,0x3f, -0x83,0x6f,0x4f,0xa8,0xc5,0x7c,0x0d,0xe2,0x29,0x37,0xdf,0xdd,0x37,0xab,0x9a,0xfb, -0x9b,0xe3,0x65,0xcf,0x91,0xe0,0xc9,0x87,0xf7,0x8e,0x3f,0x4a,0xf8,0x43,0x5a,0x7d, -0xd3,0x4e,0xde,0xac,0x6b,0xe0,0x33,0xe7,0x7c,0x54,0x23,0xd9,0x1f,0x01,0xc4,0xf3, -0xb2,0x48,0xf1,0x4f,0x1a,0x42,0x35,0x2f,0x88,0x9e,0x12,0xb1,0x64,0xf3,0x16,0xe7, -0x5a,0xb2,0x84,0xa6,0x33,0xb8,0x34,0xe8,0x08,0xfc,0x8d,0x7e,0xcc,0xa0,0x0a,0xa1, -0x40,0xc0,0x1c,0x57,0xe3,0xef,0x87,0xac,0x9f,0x5c,0xfd,0xa4,0xfe,0x19,0x59,0x2f, -0x3b,0xbc,0x47,0x67,0x26,0x3d,0x92,0x40,0xe7,0xff,0x00,0x40,0xaf,0xd8,0x31,0x5f, -0x57,0x97,0x46,0xd4,0x11,0xd7,0xc2,0x71,0xe5,0xcb,0xef,0xdd,0xb1,0x68,0xa2,0x8a, -0xf5,0x0f,0xb4,0x3f,0x3c,0xbf,0x6b,0x4f,0x07,0xde,0xfc,0x28,0xf8,0xc1,0x3e,0xbf, -0x6f,0x19,0x5d,0x0b,0xc4,0x4d,0xf6,0x95,0x78,0xc6,0x04,0x73,0x80,0x04,0xaa,0x7d, -0xc9,0xf9,0xff,0x00,0xe0,0x47,0xd2,0xb9,0x0d,0x2b,0xc6,0x12,0x5d,0xc4,0xaf,0x15, -0xeb,0xe0,0x8e,0xcf,0x5f,0xa1,0xbf,0x13,0xfe,0x1a,0x68,0xdf,0x15,0xfc,0x21,0x77, -0xe1,0xfd,0x6e,0x0f,0x36,0xda,0x61,0xba,0x39,0x57,0x1b,0xe0,0x90,0x0f,0x96,0x44, -0x3d,0x88,0xcf,0xe3,0xc8,0x3c,0x1a,0xfc,0xed,0xf8,0x9f,0xfb,0x2e,0xf8,0xe3,0xe1, -0x16,0xa9,0x33,0xdb,0xac,0x97,0xda,0x46,0xec,0xc3,0x7f,0x6e,0xa4,0xc6,0xc3,0x3c, -0x06,0x1f,0xc2,0x7d,0x8f,0xe1,0x9a,0xf9,0x3c,0xcb,0x2d,0x84,0xe4,0xea,0x6c,0x7e, -0x4f,0x9d,0xe5,0x78,0x9c,0x16,0x22,0x58,0xac,0x22,0x6e,0x13,0x77,0x69,0x74,0x66, -0xfc,0x3e,0x28,0xd4,0x23,0xe6,0x3b,0xf9,0x47,0xfc,0x0e,0xaf,0x43,0xe3,0x9d,0x6e, -0x1f,0xbb,0xa9,0x4b,0xf8,0xb5,0x78,0xb9,0xb9,0xf1,0x3e,0x9f,0xf2,0x4d,0x68,0x5c, -0x8e,0xf8,0xe4,0xd2,0x8f,0x15,0xeb,0x11,0x7d,0xfb,0x09,0x3f,0x23,0x5f,0x35,0xf5, -0x19,0xaf,0x86,0x4b,0xef,0x3c,0x48,0xe2,0x71,0xd1,0x5f,0x0c,0xbe,0xf3,0xdd,0x21, -0xf8,0x9f,0xe2,0x38,0x0f,0xcb,0xa8,0xb9,0xad,0x1b,0x7f,0x8c,0xfe,0x26,0xb7,0xe9, -0x7a,0xcd,0xf5,0xaf,0x9f,0x57,0xc7,0x97,0x91,0xfd,0xfb,0x49,0x57,0xf0,0x35,0x22, -0x7c,0x46,0x2b,0xf7,0xe2,0x90,0x1f,0x71,0x4d,0x61,0x71,0x31,0xf8,0x64,0xfe,0xf3, -0x55,0x99,0x63,0x61,0xba,0x91,0xf4,0x94,0x1f,0xb4,0x1f,0x8a,0x21,0xc7,0xef,0xf3, -0xf8,0xd6,0xa5,0xbf,0xed,0x33,0xe2,0x38,0xb1,0xbc,0x96,0xc7,0xbd,0x7c,0xc2,0x9f, -0x12,0x60,0xfe,0x2d,0xc3,0xf0,0xab,0x31,0xfc,0x44,0xb4,0x60,0x32,0xff,0x00,0xa5, -0x5a,0x58,0xf8,0xed,0x37,0xf7,0x9b,0x47,0x3c,0xc5,0x43,0x79,0x4b,0xee,0x3e,0xa8, -0xb5,0xfd,0xaa,0x75,0x98,0x88,0xf3,0x22,0xdc,0x3f,0x3a,0xd5,0xb7,0xfd,0xac,0xae, -0x86,0x3c,0xcb,0x6c,0xfa,0xfc,0xa2,0xbe,0x4c,0x8f,0xc7,0x96,0x4d,0xff,0x00,0x2d, -0x16,0xac,0xa7,0x8c,0xac,0x9f,0x1f,0xbd,0x43,0xf8,0xd5,0xac,0x46,0x63,0x0f,0xb4, -0xcd,0xe3,0xc4,0x98,0x88,0xef,0x3f,0xc0,0xfa,0xfe,0xd7,0xf6,0xb2,0x84,0xe3,0xce, -0xb6,0xff,0x00,0xc7,0x6b,0x52,0xdb,0xf6,0xab,0xd2,0xe4,0x23,0xcc,0x80,0x0f,0xc0, -0xd7,0xc6,0x69,0xe2,0x8b,0x37,0xe9,0x2a,0xfe,0x06,0xa7,0x4d,0x7a,0xd5,0xfa,0x38, -0x3f,0x8d,0x52,0xcc,0x73,0x18,0x6e,0xff,0x00,0x03,0xaa,0x3c,0x51,0x5b,0xf9,0x91, -0xf6,0xdd,0xbf,0xed,0x3b,0xe1,0xe9,0x00,0xde,0x30,0x4f,0xfb,0x55,0xa9,0x6d,0xfb, -0x43,0xf8,0x66,0x7c,0x66,0x5d,0xbf,0xf0,0x21,0x5f,0x0a,0xae,0xad,0x6e,0xdd,0x1c, -0x54,0x83,0x50,0x84,0xf4,0x93,0xf5,0xad,0x16,0x73,0x8f,0x8e,0xf6,0xfb,0x8e,0xb8, -0x71,0x45,0x4e,0xb6,0x3e,0xf8,0xb7,0xf8,0xdf,0xe1,0x99,0xc8,0xc5,0xd0,0x1f,0x88, -0xad,0x28,0x3e,0x2a,0xf8,0x72,0x71,0x91,0x7e,0xa3,0xf2,0xaf,0xcf,0xa5,0xbf,0x51, -0xf7,0x66,0x23,0xe8,0x6a,0x64,0xd4,0xe4,0x5f,0xbb,0x70,0xc3,0xfe,0x05,0x5a,0xac, -0xfb,0x14,0xbe,0x28,0x2f,0xc4,0xeb,0x8f,0x13,0xcb,0xac,0x51,0xfa,0x19,0x17,0x8f, -0xb4,0x29,0xbe,0xee,0xa1,0x1f,0xe7,0x57,0x23,0xf1,0x4e,0x95,0x2f,0xdd,0xbe,0x84, -0xff,0x00,0xc0,0xab,0xf3,0xbe,0x3d,0x6e,0xf1,0x3e,0xe5,0xe4,0xa3,0xe8,0xf5,0x66, -0x3f,0x15,0xea,0xb1,0x11,0xb7,0x50,0x9b,0xfe,0xfb,0x35,0xb2,0xe2,0x1a,0x8b,0xe2, -0xa7,0xf8,0x9d,0x51,0xe2,0x58,0x3d,0xe0,0x7e,0x88,0xa6,0xb1,0x63,0x27,0xdd,0xbb, -0x88,0xff,0x00,0xc0,0xc5,0x4a,0xb7,0x90,0x3f,0xdd,0x99,0x0f,0xd1,0x85,0x7e,0x7b, -0x43,0xe3,0xfd,0x7a,0x2f,0xbb,0xa8,0xcb,0xf9,0xd5,0xf8,0x3e,0x2b,0x78,0x8e,0x0c, -0x62,0xf9,0xcf,0xd4,0xd6,0xeb,0x88,0xa3,0xf6,0xa9,0xbf,0xbc,0xe8,0x8f,0x11,0xd0, -0x7b,0xc5,0x9f,0x7f,0x09,0x14,0xff,0x00,0x10,0xfc,0xe9,0x73,0xef,0x5f,0x08,0xc1, -0xf1,0xbf,0xc4,0xd0,0x7f,0xcb,0xd1,0x6f,0xc4,0xd6,0x9d,0xb7,0xed,0x11,0xe2,0x58, -0x3a,0xcb,0x9f,0xf8,0x11,0xad,0xe3,0xc4,0x34,0x1e,0xf0,0x67,0x44,0x78,0x83,0x0a, -0xf7,0xb9,0xf6,0xe0,0x34,0x66,0xbe,0x37,0xb6,0xfd,0xa7,0x35,0xf8,0x71,0xbf,0x2d, -0xf8,0xd6,0xad,0xbf,0xed,0x57,0xaa,0x2f,0xfa,0xc8,0x49,0x1f,0x85,0x6d,0x1c,0xfb, -0x08,0xf7,0xbf,0xdc,0x6f,0x1c,0xf3,0x06,0xfe,0xd1,0xf5,0x9e,0x68,0x07,0x35,0xf3, -0x0d,0xbf,0xed,0x65,0x28,0xff,0x00,0x59,0x6f,0x9f,0xf8,0x0e,0x6b,0x52,0xdb,0xf6, -0xb1,0xb5,0x38,0xf3,0x6d,0xc0,0xfc,0x2b,0xa2,0x39,0xd6,0x09,0xfd,0xaf,0xc0,0xe9, -0x8e,0x6d,0x83,0x97,0xdb,0x3e,0x8b,0xa2,0xbc,0x26,0x0f,0xda,0xa3,0x47,0x7c,0x07, -0x88,0x03,0xdf,0xad,0x6a,0x5b,0x7e,0xd2,0xde,0x1e,0x98,0x0d,0xe4,0x2f,0xfc,0x0a, -0xb7,0x8e,0x6b,0x83,0x97,0xfc,0xbc,0x46,0xf1,0xc7,0xe1,0xa5,0xb4,0xd1,0xec,0x54, -0x57,0x98,0xdb,0xfe,0xd0,0x3e,0x19,0x9f,0xfe,0x5b,0x05,0xff,0x00,0x81,0x56,0x9c, -0x1f,0x19,0xfc,0x35,0x36,0x3f,0xd3,0x00,0xfc,0x45,0x74,0x47,0x1d,0x86,0x96,0xd5, -0x17,0xde,0x6e,0xb1,0x34,0x65,0xb4,0xd1,0xdd,0xd1,0x5c,0xa4,0x1f,0x13,0xfc,0x3d, -0x38,0x18,0xbe,0x41,0xf5,0x35,0x76,0x2f,0x1c,0xe8,0x93,0x7d,0xdb,0xf8,0x8f,0xe3, -0x5b,0x2c,0x45,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0xb4,0xde,0xd2,0x46,0xf5,0x15,0x97, -0x1f,0x89,0x74,0xc9,0x47,0xcb,0x7d,0x09,0xff,0x00,0x81,0x55,0x94,0xd5,0xac,0xe4, -0xfb,0xb7,0x51,0x1f,0xf8,0x10,0xad,0x54,0xe2,0xf6,0x65,0xa9,0x27,0xb3,0x2d,0xd1, -0x51,0x0b,0xa8,0x5b,0xa4,0xa8,0x7f,0xe0,0x42,0x9e,0x1d,0x58,0x64,0x10,0x7e,0x86, -0xaa,0xe8,0xab,0x8e,0xa2,0x93,0x34,0x66,0x98,0x0b,0x45,0x26,0x45,0x19,0xa0,0x05, -0xa2,0x93,0x34,0xb4,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14, -0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14,0x00,0x51,0x45,0x14, -0x00,0x51,0x45,0x14,0x00,0x94,0x6d,0x06,0x96,0x8a,0x00,0x4c,0x51,0x8a,0x5a,0x28, -0x01,0x31,0x4d,0x31,0xa1,0x04,0x15,0x04,0x1e,0xb9,0x14,0xfa,0x28,0x03,0x1e,0xfb, -0xc1,0xba,0x06,0xa9,0x9f,0xb6,0x68,0x7a,0x6d,0xde,0x7a,0xf9,0xf6,0x91,0xbe,0x7f, -0x31,0x5c,0xe5,0xf7,0xc0,0x6f,0x86,0x7a,0x9e,0xef,0xb5,0xfc,0x3c,0xf0,0xad,0xc9, -0x6e,0xa6,0x5d,0x16,0xd9,0x89,0xfc,0x4a,0x57,0x77,0x45,0x00,0x78,0xd6,0xa9,0xfb, -0x1a,0x7c,0x0b,0xd6,0x15,0xc5,0xcf,0xc2,0x6f,0x09,0x12,0xfd,0x5a,0x2d,0x2a,0x28, -0x9b,0xfe,0xfa,0x40,0x08,0xae,0x2e,0xfb,0xfe,0x09,0xb1,0xfb,0x37,0x5f,0xbb,0xb4, -0x9f,0x0c,0xad,0x23,0x2d,0xd7,0xc8,0xd4,0x6f,0x22,0x03,0xe8,0x16,0x60,0x05,0x7d, -0x33,0x45,0x00,0x7c,0x97,0x7f,0xff,0x00,0x04,0xb0,0xfd,0x9b,0xaf,0x22,0x65,0x8f, -0xc1,0x17,0x56,0x6c,0x7f,0x8e,0x0d,0x6e,0xf4,0x91,0xff,0x00,0x7d,0x4a,0xc3,0xf4, -0xac,0x5d,0x0f,0xfe,0x09,0x3f,0xf0,0x43,0xc3,0x5e,0x2b,0xd2,0x3c,0x41,0xa7,0x37, -0x89,0x21,0xba,0xd2,0xef,0x61,0xbe,0x86,0x17,0xd4,0x52,0x48,0x59,0xe3,0x70,0xe1, -0x58,0x34,0x44,0x95,0x25,0x40,0x23,0x3d,0x3b,0xd7,0xd9,0xd4,0x50,0x2b,0x05,0x14, -0x51,0x40,0xc2,0x8a,0x28,0xa0,0x0f,0x29,0xfd,0xa1,0x2e,0x7c,0x9f,0x0a,0x05,0xce, -0x32,0x58,0xfe,0x95,0xf0,0xf6,0xaa,0xfc,0x48,0x7d,0xcd,0x7d,0x97,0xfb,0x4b,0xdc, -0xf9,0x7a,0x24,0x29,0x9f,0xe1,0x3c,0x57,0xc5,0xda,0xb3,0xe2,0x27,0x3f,0x5a,0xfc, -0xeb,0x38,0x7c,0xd8,0xfb,0x76,0x48,0xfc,0xd3,0x8a,0x27,0xef,0xdb,0xc8,0xe4,0x3e, -0x04,0xda,0x0d,0x63,0xf6,0xc8,0xf8,0x6d,0x01,0xc9,0xf2,0xaf,0xe6,0xb9,0xe3,0xfe, -0x99,0xdb,0xca,0xc3,0xf9,0x57,0xeb,0x58,0xaf,0xcb,0x1f,0xd8,0xe7,0x4f,0x6d,0x5f, -0xf6,0xce,0xd0,0xa5,0x03,0x29,0x61,0xa7,0xdf,0x5d,0x37,0xb0,0xf2,0xbc,0xb1,0xfa, -0xc8,0x2b,0xf5,0x38,0x77,0xaf,0xb7,0xc1,0xab,0x51,0x47,0xd1,0xf0,0xd4,0x39,0x32, -0xca,0x7e,0x62,0xd1,0x45,0x15,0xdc,0x7d,0x40,0x98,0xa6,0xc9,0x0a,0x4a,0xa5,0x5d, -0x43,0xa1,0xe0,0xab,0x0c,0x83,0x4f,0xa2,0x80,0x38,0xad,0x6b,0xe0,0xcf,0x83,0x35, -0xf9,0x1a,0x4b,0xbd,0x02,0xd7,0xcc,0x61,0x82,0xd0,0x83,0x17,0xe8,0xa4,0x0a,0xe5, -0xaf,0x7f,0x65,0x8f,0x01,0x5d,0x9c,0xad,0x95,0xc5,0xbf,0xb4,0x53,0x7f,0xf1,0x40, -0xd7,0xaf,0x51,0x5c,0xd2,0xc3,0x51,0x96,0xf0,0x47,0x24,0xb0,0x98,0x79,0xbb,0xca, -0x9a,0xfb,0x8f,0x09,0xba,0xfd,0x8f,0x3c,0x13,0x36,0x4a,0x4d,0xa8,0x46,0x7d,0xdd, -0x08,0xff,0x00,0xd0,0x2b,0x02,0xff,0x00,0xf6,0x26,0xd0,0x27,0xcf,0xd9,0xf5,0x69, -0x22,0x3f,0xf4,0xd2,0xdc,0x3f,0xf2,0x61,0x5f,0x4a,0x51,0xf8,0xd6,0x4f,0x03,0x87, -0x7f,0x60,0xe7,0x79,0x6e,0x16,0x5f,0x63,0xf3,0x3e,0x50,0xbc,0xfd,0x84,0xec,0x64, -0xe6,0x2d,0x6a,0x17,0x3f,0xed,0xda,0x95,0xff,0x00,0xd9,0x8d,0x73,0xd7,0xdf,0xb0, -0x65,0xd9,0x62,0x20,0xbb,0xd3,0x5c,0x76,0x2c,0x59,0x4f,0xfe,0x81,0x5f,0x68,0x62, -0x8c,0x56,0x4f,0x2e,0xa0,0xfa,0x3f,0xbd,0x98,0xbc,0xa7,0x0a,0xfe,0xcb,0xfb,0xd9, -0xf0,0x8d,0xe7,0xec,0x1d,0xae,0x2a,0xb1,0x8d,0x6c,0x65,0x3d,0x82,0x4d,0x8c,0xfe, -0x78,0xae,0x7a,0xfb,0xf6,0x20,0xf1,0x54,0x07,0xe4,0xd3,0x0b,0x0f,0xfa,0x67,0x70, -0x87,0xff,0x00,0x66,0xaf,0xd0,0xfc,0x51,0x8a,0x87,0x96,0xd3,0xe9,0x27,0xf7,0x9c, -0xf2,0xc8,0xf0,0xb2,0xef,0xf8,0x7f,0x91,0xf9,0xa7,0x7b,0xfb,0x1f,0x78,0xc6,0xd4, -0x90,0xba,0x46,0xa0,0x4f,0xfb,0x1f,0x30,0xfd,0x2b,0x0a,0xef,0xf6,0x69,0xf1,0x85, -0x91,0x3b,0xb4,0xed,0x4e,0x3c,0x7a,0xdb,0xb7,0xf8,0x57,0xea,0x4e,0x29,0x0a,0xe6, -0xa1,0xe5,0xab,0xa4,0xdf,0xe0,0x72,0xcb,0x87,0x70,0xd2,0xeb,0xf8,0x23,0xf2,0x7a, -0xef,0xe0,0xd7,0x8a,0x6c,0x72,0x59,0x6e,0xa3,0x03,0xfb,0xf1,0x11,0x59,0xef,0xe0, -0x3f,0x13,0xdb,0x74,0x91,0xce,0x3d,0x54,0xd7,0xeb,0x83,0x44,0xae,0x30,0xc0,0x11, -0xe8,0x45,0x55,0x9f,0x45,0xb0,0xba,0xff,0x00,0x5d,0x65,0x6f,0x30,0xff,0x00,0x6e, -0x25,0x3f,0xd2,0xb2,0x79,0x6c,0xba,0x4f,0xf0,0x38,0xe5,0xc2,0xf8,0x79,0x76,0xfb, -0xbf,0xe0,0x9f,0x92,0x6d,0xa0,0x78,0xaa,0xdf,0xdf,0xeb,0x9a,0x88,0xa7,0x8a,0x2d, -0xfe,0xf4,0x3b,0xbe,0x86,0xbf,0x57,0xee,0x3c,0x03,0xe1,0xbb,0xa0,0x7c,0xdd,0x07, -0x4d,0x7c,0xf7,0x36,0xa9,0xfe,0x15,0x97,0x73,0xf0,0x6f,0xc1,0x77,0x79,0xf3,0x3c, -0x3b,0x67,0xff,0x00,0x00,0x52,0x9f,0xc8,0x8a,0xc9,0xe5,0xb5,0x3b,0xa6,0x72,0x4b, -0x84,0xe9,0x74,0xb7,0xe2,0x8f,0xcb,0x31,0xaa,0xf8,0x8a,0x0f,0xbf,0x68,0xc6,0x94, -0x78,0xab,0x58,0x8b,0xef,0xd8,0xcb,0xc7,0xfb,0x26,0xbf,0x4d,0xae,0x7f,0x67,0x8f, -0x00,0xdd,0x67,0x3a,0x12,0x46,0x4f,0x74,0x99,0xff,0x00,0xf8,0xaa,0xc5,0xbb,0xfd, -0x94,0xfc,0x09,0x75,0x9d,0xb6,0xf7,0x70,0x67,0xfe,0x79,0xca,0xbf,0xd5,0x4d,0x63, -0x2c,0xb2,0xa7,0xf2,0xc5,0x9c,0xb2,0xe1,0x37,0xd3,0xff,0x00,0x4a,0x67,0xe7,0x32, -0xf8,0xee,0xf6,0x3f,0xbf,0x6b,0x28,0xfc,0x0d,0x4c,0x9f,0x11,0x4a,0x9f,0x9e,0x17, -0x1f,0x85,0x7d,0xf7,0x79,0xfb,0x1c,0x78,0x36,0x7f,0xf5,0x37,0x57,0xd1,0x1f,0xf6, -0x8a,0x37,0xfe,0xca,0x2b,0x02,0xf3,0xf6,0x22,0xd1,0x26,0x72,0x62,0xd6,0x9d,0x17, -0xd1,0xed,0x43,0x1f,0xcf,0x78,0xac,0x1e,0x59,0x3e,0xb4,0x97,0xde,0x73,0x4b,0x85, -0xab,0xaf,0x86,0xff,0x00,0x7a,0x3e,0x2b,0x4f,0x89,0x10,0xff,0x00,0x10,0x65,0xfa, -0x8a,0xb1,0x1f,0xc4,0x4b,0x46,0xea,0xf8,0xaf,0xac,0x2f,0x7f,0x61,0x2b,0x49,0x01, -0xf2,0x35,0x88,0x1d,0xbb,0x09,0x2d,0x8a,0xff,0x00,0x53,0x5c,0xf5,0xe7,0xec,0x19, -0xa8,0x1f,0xf5,0x77,0x5a,0x63,0x8f,0xf7,0x98,0x7f,0xec,0xb5,0x83,0xcb,0x5f,0x5a, -0x4c,0xe7,0x97,0x0e,0xe2,0xe3,0xb3,0x97,0xe0,0xcf,0x9e,0xa3,0xf1,0xed,0x9b,0xff, -0x00,0xcb,0x45,0x15,0x66,0x3f,0x19,0xd9,0x3f,0xfc,0xb5,0x4f,0xce,0xbd,0x7a,0xfb, -0xf6,0x11,0xd7,0xe3,0x62,0x23,0x86,0xce,0x61,0xeb,0x1c,0xc0,0x67,0xf3,0xc5,0x73, -0xf7,0x9f,0xb1,0x27,0x8b,0x21,0xdd,0xb3,0x4a,0x76,0x03,0xfe,0x79,0xdc,0x21,0xff, -0x00,0xd9,0xab,0x09,0x65,0xb1,0x5b,0xd3,0x92,0xf9,0x1c,0xd2,0xc9,0x31,0xd1,0xea, -0xff,0x00,0xf0,0x13,0x89,0x4f,0x14,0xd9,0xbf,0xfc,0xb5,0x4f,0xfb,0xea,0xa7,0x4d, -0x7e,0xd5,0xff,0x00,0x8d,0x4f,0xe2,0x2b,0x4a,0xf7,0xf6,0x43,0xf1,0x8d,0xa0,0x2d, -0xfd,0x8f,0xa8,0x81,0xe9,0x1a,0x16,0xfe,0x42,0xb0,0xef,0x7f,0x66,0xdf,0x17,0x58, -0xf2,0xda,0x76,0xa7,0x17,0xfb,0xf6,0xed,0xfe,0x15,0xcf,0x2c,0xbe,0x9a,0xee,0xbe, -0x47,0x3c,0xb2,0xdc,0x74,0x3a,0xfe,0x0c,0xbe,0xba,0xb5,0xbb,0x7f,0x18,0xa9,0x17, -0x51,0x80,0xff,0x00,0x18,0xae,0x46,0xe7,0xe1,0x07,0x89,0xac,0x8e,0x1b,0xed,0x28, -0x47,0x67,0x88,0xd5,0x17,0xf0,0x2f,0x89,0xad,0x8f,0x12,0x3f,0x1e,0xaa,0x6b,0x17, -0x81,0xa5,0xd2,0x46,0x2f,0x0d,0x8d,0x8f,0x63,0xd0,0x16,0xfa,0x23,0xd2,0x4f,0xd6, -0xa5,0x5b,0xdc,0x7d,0xd9,0x88,0xfc,0x6b,0xcc,0xdb,0x42,0xf1,0x4d,0xbe,0x79,0x27, -0xeb,0x9a,0x66,0xcf,0x13,0x41,0xf7,0xa2,0x2d,0x8f,0x43,0x51,0xfd,0x9f,0x17,0xb4, -0x85,0xc9,0x8d,0x8f,0xd8,0xfc,0x4f,0x55,0x4d,0x52,0x74,0xfb,0xb7,0x4e,0x3e,0x8d, -0x56,0x23,0xd7,0xef,0xe3,0xfb,0x97,0xb2,0x8f,0xa3,0x1a,0xf2,0x1f,0xed,0x5f,0x10, -0xc2,0x3e,0x6b,0x47,0x3f,0x4a,0x51,0xe2,0x9d,0x62,0x3f,0xbf,0x67,0x27,0xfd,0xf3, -0x51,0xfd,0x9d,0x2e,0x92,0x41,0xed,0x31,0xb0,0xde,0x9b,0xfb,0xcf,0x67,0x8f,0xc6, -0x1a,0xc4,0x5f,0x77,0x50,0x97,0xfe,0xfa,0xab,0xb0,0x7c,0x44,0xd7,0xe0,0xfb,0xba, -0x84,0x9f,0x8d,0x78,0x7a,0xf8,0xea,0xf2,0x3f,0xf5,0x96,0xb2,0x8f,0xf8,0x09,0xa9, -0x53,0xe2,0x29,0x5f,0xbf,0x14,0x8b,0xf5,0x14,0x96,0x06,0xbc,0x7e,0x17,0xf8,0x94, -0xb1,0xd8,0xb8,0x6f,0x19,0x23,0xde,0x60,0xf8,0xb7,0xe2,0x48,0x3f,0xe5,0xf4,0x9f, -0xad,0x69,0x43,0xf1,0xd7,0xc4,0xd0,0x81,0x8b,0x8c,0xe3,0xdc,0xd7,0xcf,0x91,0xfc, -0x48,0x87,0xb8,0x65,0xfc,0x2a,0xcc,0x7f,0x11,0x2d,0x5b,0xab,0xe3,0xea,0x2a,0x95, -0x0c,0x5c,0x7e,0x19,0x3f,0xbc,0xd5,0x67,0x18,0x98,0x6e,0xe4,0xbe,0x47,0xd1,0xb6, -0xbf,0xb4,0x67,0x88,0xe0,0x00,0x17,0xcf,0xd0,0xd6,0xa5,0xbf,0xed,0x3f,0xae,0x46, -0x7e,0x70,0xc7,0xf1,0xaf,0x99,0xe3,0xf1,0xed,0x9b,0x7f,0xcb,0x41,0xf8,0xd5,0x98, -0xfc,0x69,0x66,0xf8,0xfd,0xea,0x7e,0x75,0x4a,0x58,0xf8,0x6d,0x26,0x6f,0x1e,0x20, -0xaf,0x1f,0xb6,0xfe,0xe3,0xea,0x5b,0x7f,0xda,0xb3,0x50,0x4c,0x6f,0x84,0x93,0xf4, -0x15,0xa9,0x6b,0xfb,0x58,0x37,0x1e,0x6c,0x39,0xff,0x00,0x80,0xd7,0xc9,0xd1,0xf8, -0xae,0xd1,0xff,0x00,0xe5,0xa2,0x7e,0x75,0x3a,0x78,0x86,0xd5,0xfa,0x3a,0xfe,0x75, -0x6b,0x19,0x98,0xc3,0xed,0x33,0xa6,0x3c,0x4d,0x59,0x7f,0xcb,0xc4,0x7d,0x7f,0x6f, -0xfb,0x56,0xd9,0x39,0xc3,0xc2,0x07,0xd4,0x56,0xad,0xb7,0xed,0x45,0xa2,0xc9,0x8f, -0x31,0x00,0xfc,0x6b,0xe3,0x15,0xd6,0x2d,0xdb,0xf8,0x87,0xe7,0x52,0x2e,0xa5,0x03, -0x7f,0x1e,0x2b,0x45,0x9a,0xe6,0x11,0xdd,0xfe,0x07,0x5c,0x38,0x9a,0xb7,0xf3,0x26, -0x7d,0xbb,0x6d,0xfb,0x48,0x78,0x7a,0x7c,0x6e,0x60,0xbf,0xf0,0x2a,0xd4,0x83,0xe3, -0xdf,0x86,0x66,0xc7,0xef,0xc0,0xff,0x00,0x81,0x0a,0xf8,0x48,0x5f,0x44,0x7a,0x3f, -0xeb,0x4f,0x5b,0xc5,0xea,0x25,0xc7,0xe3,0x5a,0x2c,0xef,0x1b,0x1d,0xd2,0xfb,0x8e, -0xc8,0xf1,0x35,0x5e,0xa9,0x33,0xef,0xd8,0x3e,0x30,0xf8,0x6e,0x7c,0x62,0xec,0x0f, -0xc4,0x55,0xe8,0x7e,0x25,0x78,0x7e,0x7c,0x6d,0xbe,0x4f,0xc6,0xbf,0x3e,0x56,0xf9, -0x86,0x31,0x3b,0x7f,0xdf,0x55,0x3a,0x6a,0xd7,0x51,0xfd,0xcb,0xb9,0x07,0xd1,0xab, -0x65,0xc4,0x18,0x85,0xbc,0x11,0xd5,0x1e,0x25,0x7d,0x60,0x7e,0x86,0x47,0xe3,0x4d, -0x16,0x5c,0x62,0xfe,0x2f,0xc4,0xd5,0xa8,0xfc,0x45,0xa6,0xcb,0xf7,0x6f,0x61,0x3f, -0xf0,0x2a,0xfc,0xf1,0x8f,0xc4,0x7a,0x8c,0x7f,0x76,0xf6,0x51,0xff,0x00,0x02,0xab, -0x91,0x78,0xdf,0x5a,0x87,0xee,0xea,0x12,0x7e,0x75,0xb2,0xe2,0x29,0xaf,0x8a,0x9f, -0xe2,0x74,0x47,0x89,0x21,0xd6,0x07,0xe8,0x52,0xea,0x96,0x8f,0xf7,0x6e,0x62,0x3f, -0x46,0x15,0x2a,0xdc,0x44,0xdd,0x24,0x43,0xf4,0x22,0xbf,0x3f,0x20,0xf8,0x97,0xe2, -0x08,0x08,0xdb,0x7c,0xe7,0xeb,0x57,0xe1,0xf8,0xc5,0xe2,0x48,0x7f,0xe5,0xec,0x9a, -0xde,0x3c,0x45,0x0f,0xb5,0x4d,0x9d,0x31,0xe2,0x2c,0x3b,0xde,0x2c,0xfb,0xdc,0x3a, -0x9e,0x8c,0x0f,0xe3,0x4b,0x9a,0xf8,0x66,0xdf,0xe3,0xdf,0x89,0x2d,0xff,0x00,0xe5, -0xb6,0x7f,0x13,0x5a,0x96,0xdf,0xb4,0x87,0x88,0x21,0xc6,0xe6,0x2d,0xf8,0x9a,0xdd, -0x71,0x0e,0x1d,0xef,0x16,0x8d,0xe3,0x9f,0xe1,0x1e,0xec,0xfb,0x4b,0x38,0xa3,0x22, -0xbe,0x42,0xb7,0xfd,0xa8,0xb5,0x98,0xf1,0xb9,0x0f,0xe7,0x9a,0xd4,0xb5,0xfd,0xab, -0x2e,0xd7,0x1e,0x64,0x44,0xfe,0x15,0xba,0xcf,0xb0,0x8f,0x7b,0xfd,0xc7,0x44,0x73, -0xac,0x1c,0xbe,0xd1,0xf5,0x4e,0x45,0x15,0xf3,0x55,0xb7,0xed,0x5c,0xac,0x47,0x99, -0x00,0x03,0xfd,0xda,0xd5,0xb7,0xfd,0xaa,0x74,0xe6,0xc6,0xf8,0x97,0xf2,0x35,0xbc, -0x73,0x9c,0x14,0xbe,0xd9,0xd1,0x1c,0xd3,0x09,0x2d,0xa6,0x8f,0xa0,0x33,0x4b,0x5e, -0x25,0x6b,0xfb,0x4e,0x68,0xb2,0xfd,0xf0,0x8b,0xf8,0x9a,0xd5,0xb7,0xfd,0xa2,0xfc, -0x3b,0x36,0x01,0x60,0x0f,0xfb,0xd5,0xd1,0x1c,0xcf,0x07,0x2d,0xaa,0x23,0x75,0x8e, -0xc3,0xcb,0x69,0xa3,0xd6,0x28,0xaf,0x3a,0x83,0xe3,0x9f,0x86,0xe6,0xc7,0xfa,0x40, -0x5c,0xff,0x00,0xb4,0x2b,0x46,0xdf,0xe2,0xdf,0x87,0x6e,0x31,0x8b,0xb5,0x1f,0x52, -0x2b,0x75,0x8d,0xc3,0x4b,0x6a,0x8b,0xef,0x36,0x58,0x8a,0x2f,0x69,0x23,0xb4,0xa2, -0xb9,0xa8,0xfe,0x22,0xe8,0x12,0xfd,0xdb,0xf4,0xcd,0x5b,0x8b,0xc6,0x1a,0x44,0xdf, -0x76,0xfa,0x2f,0xc4,0xd6,0xca,0xbd,0x29,0x6d,0x25,0xf7,0x9a,0x2a,0x90,0x7b,0x33, -0x6a,0x8a,0xce,0x4f,0x10,0x69,0xd2,0x7d,0xdb,0xc8,0x5b,0xfe,0x05,0x56,0x13,0x51, -0xb6,0x7e,0x97,0x11,0x1f,0xf8,0x18,0xad,0x14,0xe2,0xf6,0x65,0x73,0x2e,0xe5,0x9a, -0x2a,0x35,0xb8,0x89,0xfe,0xec,0x88,0x7e,0x8d,0x4f,0xdc,0x3d,0x45,0x55,0xca,0x16, -0x8a,0x29,0x33,0x4c,0x05,0xa2,0x93,0x34,0x66,0x80,0x16,0x8a,0x4a,0x33,0x40,0x0b, -0x45,0x14,0x94,0x01,0xf3,0xdf,0xed,0x45,0x77,0xb6,0xde,0x38,0xf3,0xd2,0x3c,0x57, -0xc7,0x5e,0x24,0xbc,0x5b,0x7b,0x39,0x58,0x9c,0x61,0x4d,0x7d,0x53,0xfb,0x54,0x5f, -0x88,0xee,0x4a,0x93,0x8c,0x28,0x02,0xbe,0x1a,0xf8,0x97,0xe2,0x95,0xb6,0xb3,0x78, -0x95,0xf2,0xc4,0x73,0xcd,0x7e,0x79,0x88,0xa6,0xeb,0xe6,0x53,0xf2,0xb1,0xf9,0x1f, -0x13,0xd4,0x73,0xc4,0xaa,0x31,0xdd,0x9e,0xad,0xff,0x00,0x04,0xe8,0xd3,0xe6,0xd6, -0x3f,0x69,0x8f,0x14,0xea,0xe1,0x37,0xda,0x69,0xfe,0x1f,0x92,0x06,0x7c,0xfd,0xd9, -0x25,0xb8,0x8b,0x60,0xfc,0x44,0x4f,0xf9,0x57,0xe9,0x78,0xaf,0x87,0x7f,0xe0,0x96, -0xbe,0x07,0x96,0xcb,0xc1,0x1e,0x34,0xf1,0xa4,0xe0,0x8f,0xed,0xcd,0x42,0x3b,0x3b, -0x70,0xc3,0xac,0x56,0xca,0xd9,0x61,0xf5,0x69,0x98,0x7f,0xc0,0x2b,0xee,0x3a,0xfb, -0xba,0x11,0xe5,0xa6,0x91,0xfa,0x46,0x59,0x43,0xea,0xf8,0x3a,0x74,0xfb,0x20,0xa2, -0x8a,0x2b,0xa0,0xf5,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0, -0x02,0x8a,0x28,0xa0,0x02,0x8a,0x28,0xa0,0x02,0x93,0x14,0xb4,0x50,0x02,0x62,0x8c, -0x52,0xd1,0x40,0x0d,0x23,0xd2,0x94,0x0a,0x5a,0x28,0x01,0x31,0x46,0xd1,0x4b,0x45, -0x00,0x46,0xd0,0xa3,0x82,0x19,0x15,0x81,0xec,0x45,0x54,0x9b,0x40,0xd3,0x6e,0x46, -0x26,0xd3,0xed,0x65,0x1f,0xed,0xc2,0xa7,0xfa,0x55,0xfa,0x2a,0x5c,0x53,0xdd,0x12, -0xe2,0x9e,0xe8,0xe7,0x6e,0x7e,0x1e,0x78,0x62,0xf3,0xfd,0x76,0x81,0xa7,0x3f,0xfd, -0xbb,0x20,0xfe,0x42,0xb2,0xee,0x7e,0x0b,0xf8,0x26,0xef,0x3e,0x67,0x87,0x2c,0xc6, -0x7f,0xb8,0xa5,0x3f,0x91,0x15,0xdb,0x51,0x59,0xba,0x34,0x9e,0xf1,0x5f,0x71,0x93, -0xa1,0x4a,0x5b,0xc1,0x7d,0xc8,0xf3,0x2b,0xbf,0xd9,0xc7,0xc0,0x37,0x60,0x8f,0xec, -0x51,0x1f,0xba,0x4c,0xff,0x00,0xd4,0x9a,0xc7,0xba,0xfd,0x93,0xfc,0x09,0x70,0x72, -0xb0,0xdd,0xc3,0xec,0x92,0xaf,0xf5,0x53,0x5e,0xcb,0x45,0x64,0xf0,0x94,0x1f,0xd8, -0x46,0x0f,0x03,0x86,0x7b,0xd3,0x5f,0x71,0xe0,0x37,0xbf,0xb1,0xaf,0x84,0x27,0xcf, -0x91,0x77,0x79,0x11,0x3f,0xdf,0xd8,0xf8,0xfd,0x05,0x61,0x5d,0x7e,0xc3,0xba,0x2c, -0xb9,0xf2,0xf5,0xc6,0x5f,0x4d,0xd6,0x80,0xff,0x00,0xec,0xf5,0xf4,0xdd,0x15,0x9b, -0xc0,0xe1,0xdf,0xd9,0xfc,0xcc,0x9e,0x5b,0x84,0x7f,0x63,0xf3,0x3e,0x46,0xd4,0x3f, -0x61,0x38,0x98,0x9f,0xb3,0x6a,0xd6,0x92,0x0f,0xfa,0x69,0x01,0x4f,0xe5,0x9a,0xe7, -0xef,0x3f,0x60,0xcd,0x49,0x89,0xf2,0xee,0xb4,0xb7,0x1d,0xbe,0x77,0x07,0xff,0x00, -0x40,0xaf,0xb6,0x31,0x46,0x2b,0x37,0x97,0x50,0xe9,0x75,0xf3,0x31,0x79,0x46,0x15, -0xf4,0x7f,0x79,0xf0,0x45,0xff,0x00,0xec,0x29,0xe2,0x18,0x81,0x31,0x5b,0x5a,0x4d, -0x8e,0xd1,0xdc,0x00,0x4f,0xe7,0x8a,0xc0,0xba,0xfd,0x89,0xbc,0x5d,0x10,0x24,0x69, -0x12,0x71,0xfd,0xcb,0x84,0x3f,0xc9,0xab,0xf4,0x5b,0x14,0x98,0x35,0x1f,0xd9,0xb4, -0xfa,0x49,0x9c,0xf2,0xc8,0xf0,0xd2,0xea,0xff,0x00,0x0f,0xf2,0x3f,0x33,0x2f,0xbf, -0x64,0xaf,0x18,0x59,0x96,0x1f,0xd8,0xda,0x96,0x47,0xfc,0xf3,0x8d,0x98,0x7e,0x60, -0x56,0x15,0xdf,0xec,0xe7,0xe2,0xcb,0x30,0x49,0xd3,0xf5,0x38,0xc0,0xea,0x5a,0xdd, -0xb1,0xfc,0xab,0xf5,0x47,0x14,0x9b,0x73,0xd6,0xb3,0x79,0x6f,0x6a,0x8c,0xe5,0x97, -0x0e,0xe1,0xe5,0xd7,0xf0,0x47,0xe4,0xbd,0xcf,0xc2,0x3f,0x11,0xd9,0x83,0x93,0x70, -0x9f,0xef,0x46,0x45,0x51,0x93,0xc0,0xfe,0x25,0xb7,0xe9,0x23,0xf1,0xea,0xa6,0xbf, -0x5c,0xde,0xde,0x39,0x06,0x19,0x15,0x87,0xa3,0x0c,0xd5,0x3b,0x8f,0x0f,0x69,0x77, -0x9f,0xeb,0xf4,0xeb,0x49,0xbf,0xdf,0x81,0x5b,0xf9,0x8a,0xcd,0xe5,0xd3,0xe9,0x3f, -0xc0,0xe3,0x9f,0x0b,0xd0,0x97,0x6f,0xbb,0xfe,0x09,0xf9,0x24,0xda,0x1f,0x8a,0x2d, -0xfb,0x96,0xc7,0xd6,0xa3,0x2b,0xe2,0x58,0x3a,0xc5,0xbb,0xe8,0x6b,0xf5,0x7a,0xe3, -0xe1,0xb7,0x85,0x6e,0xb3,0xe6,0xf8,0x7b,0x4d,0x6c,0xf5,0x3f,0x66,0x40,0x7f,0x41, -0x59,0x57,0x5f,0x04,0x7c,0x0f,0x77,0xf7,0xfc,0x3b,0x68,0x3d,0x76,0xee,0x5f,0xe4, -0x6b,0x27,0x96,0xd5,0xee,0x99,0xc7,0x2e,0x14,0xa6,0xf6,0xb7,0xe2,0x7e,0x5a,0xff, -0x00,0x6a,0xf8,0x86,0x1f,0xbd,0x6a,0xc7,0x1e,0x94,0xe1,0xe2,0x9d,0x62,0x2f,0xbf, -0x67,0x27,0xfd,0xf3,0x5f,0xa6,0x37,0x7f,0xb3,0x5f,0x80,0x2e,0xff,0x00,0xe6,0x0c, -0x61,0xff,0x00,0xae,0x73,0x3f,0xf5,0x26,0xb1,0xee,0xbf,0x64,0xbf,0x01,0xdc,0x92, -0x56,0x1b,0xd8,0x7d,0x92,0x65,0xfe,0xaa,0x6b,0x17,0x96,0xd5,0xfe,0x58,0x9c,0xb2, -0xe1,0x3e,0xcb,0xf1,0x7f,0xe4,0x7e,0x74,0x8f,0x1c,0xde,0xc6,0x7e,0x7b,0x59,0x07, -0xe0,0x6a,0x54,0xf8,0x88,0xeb,0xf7,0xe2,0x71,0xf9,0xd7,0xde,0xd7,0xbf,0xb1,0x87, -0x85,0x27,0xcf,0x91,0x7f,0x79,0x0f,0xfb,0xea,0xaf,0xfe,0x15,0x89,0x75,0xfb,0x0e, -0x68,0xf2,0x92,0x63,0xd7,0x18,0x7b,0x35,0xa0,0x3f,0xfb,0x3d,0x61,0x2c,0xb6,0xa7, -0x5a,0x6b,0xef,0x39,0xa5,0xc2,0xd5,0x97,0xc3,0x7f,0xbd,0x1f,0x16,0xc7,0xf1,0x1e, -0x2e,0xe0,0x8a,0xb3,0x1f,0xc4,0x4b,0x66,0xea,0xf5,0xf5,0x5e,0xa1,0xfb,0x08,0x29, -0xcf,0xd9,0xb5,0x6b,0x39,0x07,0x6f,0x36,0x16,0x5f,0xe5,0x9a,0xe7,0xee,0xff,0x00, -0x60,0xbd,0x4c,0x82,0x52,0xe7,0x4a,0x7f,0x6d,0xce,0x3f,0xf6,0x4a,0xc2,0x59,0x6b, -0xeb,0x49,0x9c,0xd2,0xe1,0xcc,0x5c,0x76,0x72,0xfc,0x19,0xf3,0xec,0x7e,0x3d,0xb4, -0x7c,0x66,0x40,0x3e,0xb5,0x66,0x3f,0x1a,0xd9,0xbe,0x3f,0x7a,0xb5,0xea,0xfa,0x87, -0xec,0x2f,0xe2,0x58,0x58,0x88,0xac,0x6d,0xe7,0x03,0xbc,0x57,0x0a,0x07,0xea,0x45, -0x61,0x5e,0x7e,0xc5,0x3e,0x2f,0x81,0x49,0x1a,0x3c,0xa7,0x1f,0xf3,0xce,0x74,0x6f, -0xe4,0xd5,0x83,0xcb,0xa3,0xd6,0x9c,0x97,0xc8,0xe7,0x96,0x49,0x8e,0x8e,0xd2,0x7f, -0xf8,0x09,0xc6,0xc7,0xe2,0xcb,0x47,0xc7,0xef,0x53,0xf3,0xa9,0xd3,0xc4,0x76,0xaf, -0xd2,0x45,0x3f,0x8d,0x5d,0xbc,0xfd,0x93,0x7c,0x61,0x66,0x0b,0x7f,0x62,0xea,0x60, -0x7f,0xb1,0x13,0x37,0xf2,0x15,0x87,0x79,0xfb,0x3b,0xf8,0xb2,0xc7,0xef,0xe9,0xfa, -0x9c,0x5f,0xef,0xdb,0xb0,0xfe,0x95,0xce,0xf0,0x14,0x97,0x46,0xbe,0x47,0x3c,0xb2, -0xec,0x74,0x3e,0xd7,0xe0,0xcd,0x55,0xd6,0xad,0xdb,0xf8,0x87,0xe7,0x52,0x0d,0x4e, -0x06,0xfe,0x31,0x5c,0x6d,0xc7,0xc2,0x9f,0x10,0xda,0x31,0x52,0xd3,0xa1,0x07,0x18, -0x68,0xc8,0xaa,0x72,0x78,0x23,0xc4,0x96,0xfd,0x24,0x63,0x8f,0xf6,0x4d,0x66,0xf0, -0x34,0xba,0x48,0xc1,0xe1,0x71,0xb1,0xec,0xcf,0x41,0x17,0xf0,0xff,0x00,0x7a,0x9e, -0xb7,0x91,0xf6,0x7f,0xd6,0xbc,0xd1,0xb4,0x4f,0x13,0x41,0xdc,0x9f,0x6e,0x69,0xa4, -0x78,0x96,0x0e,0xb1,0x16,0xfc,0x6b,0x37,0x97,0xc5,0xed,0x22,0x7d,0x9e,0x35,0x7d, -0x84,0xfe,0x67,0xa8,0xad,0xe0,0x1d,0x25,0x23,0xf1,0xa9,0x93,0x50,0x95,0x7e,0xed, -0xc3,0x8f,0xa3,0x57,0x93,0xff,0x00,0x6a,0xf8,0x82,0x1f,0xbd,0x6a,0xc7,0x1e,0x94, -0xa3,0xc5,0x3a,0xbc,0x5f,0x7e,0xd2,0x4f,0xfb,0xe6,0xa1,0xe5,0xcf,0xa4,0x90,0x73, -0x62,0xe3,0xbd,0x37,0xf7,0x9e,0xbd,0x1e,0xb5,0x7b,0x11,0xf9,0x2e,0xe4,0x1f,0x47, -0x35,0x65,0x3c,0x55,0xaa,0xc7,0xf7,0x6f,0xa5,0xff,0x00,0xbe,0x8d,0x78,0xe0,0xf1, -0xcd,0xe4,0x7f,0x7e,0xda,0x41,0xff,0x00,0x01,0x35,0x2a,0x7c,0x44,0x61,0xf7,0xa2, -0x71,0x51,0xfd,0x9f,0x55,0x6c,0xff,0x00,0x11,0xac,0x5e,0x26,0x3b,0xc2,0x47,0xb4, -0xc3,0xe3,0xcd,0x72,0x0f,0xbb,0x7d,0x27,0xe2,0x6a,0xec,0x3f,0x14,0x7c,0x43,0x0e, -0x31,0x7a,0xe7,0xea,0x6b,0xc4,0x13,0xe2,0x3c,0x47,0x19,0xdd,0x56,0xa3,0xf8,0x89, -0x6c,0x71,0x97,0x22,0x8f,0xa9,0xe2,0x63,0xb5,0xfe,0xf3,0x45,0x9a,0x57,0x86,0xfc, -0xcb,0xef,0x3d,0xda,0xdf,0xe3,0x4f,0x89,0x20,0xc6,0x2e,0x4f,0xe6,0x6b,0x46,0xdb, -0xe3,0xff,0x00,0x88,0xa0,0xc6,0x64,0x2c,0x7d,0x77,0x57,0x81,0x47,0xe3,0xdb,0x46, -0xff,0x00,0x96,0x95,0x66,0x3f,0x1a,0xda,0x37,0xfc,0xb5,0x5a,0x7c,0x98,0xc8,0x6d, -0x27,0xf7,0x9b,0x47,0x3c,0xad,0x1f,0xb6,0xfe,0xe3,0xe8,0x8b,0x7f,0xda,0x53,0x5f, -0x8b,0x86,0x27,0x1e,0xcd,0x5a,0x96,0xdf,0xb5,0x26,0xab,0x10,0x1b,0xe3,0x63,0xf5, -0x35,0xf3,0x5c,0x7e,0x2d,0xb4,0x7e,0x92,0xaf,0xe7,0x53,0xaf,0x88,0xed,0x5f,0xa3, -0xaf,0xe7,0x56,0xab,0xe3,0xe1,0xb4,0xd9,0xd3,0x1e,0x22,0xac,0xbf,0xe5,0xe1,0xf5, -0x0d,0xb7,0xed,0x59,0x73,0x91,0xe6,0xa1,0xff,0x00,0xbe,0x45,0x6b,0x5b,0x7e,0xd5, -0xb0,0xb6,0x03,0xc2,0x3e,0xa4,0x57,0xc9,0xc9,0xad,0xdb,0xbf,0xf1,0x8f,0xce,0xa5, -0x5d,0x52,0x06,0xfe,0x2a,0xb5,0x98,0x66,0x10,0xfb,0x6f,0xee,0x3a,0xe1,0xc4,0x95, -0x97,0xdb,0x47,0xd8,0x16,0xbf,0xb5,0x26,0x9a,0xc3,0xf7,0xa8,0xbf,0x91,0xad,0x4b, -0x6f,0xda,0x5b,0x44,0x9b,0x19,0x0a,0x3f,0x1a,0xf8,0xb4,0x6a,0x30,0x9e,0x77,0x0a, -0x6b,0xea,0xb0,0x20,0x3f,0x3f,0xeb,0x5b,0x47,0x36,0xc7,0xad,0x2f,0x7f,0x91,0xd4, -0xb8,0x9e,0xac,0x77,0x68,0xfb,0xa2,0xdf,0xf6,0x84,0xf0,0xec,0xa0,0x66,0x50,0x0f, -0xb3,0x0a,0xb7,0x37,0xc7,0x8f,0x0d,0x43,0x6e,0x65,0x7b,0x8c,0x01,0xdb,0x70,0xcd, -0x7e,0x7b,0xdf,0xf8,0xce,0xd6,0xc9,0x09,0x33,0x85,0xc7,0xfb,0x55,0xc0,0x78,0x93, -0xe2,0xcc,0x80,0x34,0x76,0x92,0xb1,0x27,0xbe,0x6b,0xd5,0xa1,0x8f,0xcc,0x2a,0xbd, -0x52,0x17,0xfa,0xd9,0x56,0x4f,0x96,0x9d,0x3e,0x66,0x7b,0xb7,0xed,0x37,0xf1,0xc6, -0xcf,0x5f,0xd5,0xee,0xe4,0xb5,0x93,0x31,0x74,0x8c,0x1e,0xb5,0xf2,0xd7,0x87,0x3c, -0x2b,0xaf,0xfc,0x6d,0xf1,0xe6,0x9f,0xe1,0x8d,0x0a,0x16,0xb8,0xd4,0x35,0x09,0x76, -0x6e,0xfe,0x08,0x63,0xcf,0xcd,0x23,0x9e,0xca,0xa3,0x24,0x9f,0x6f,0x5a,0x93,0xc2, -0xbe,0x13,0xf1,0x57,0xc6,0x6f,0x16,0x41,0xa3,0x68,0x36,0x13,0x6a,0xba,0x95,0xc3, -0x70,0x89,0xf7,0x51,0x7b,0xbb,0xb1,0xe1,0x54,0x77,0x27,0xfa,0x8a,0xfd,0x46,0xfd, -0x97,0x3f,0x65,0xdd,0x1b,0xf6,0x79,0xf0,0xdb,0x39,0x31,0xea,0x5e,0x2b,0xbe,0x41, -0xfd,0xa1,0xa9,0xe3,0x8c,0x75,0xf2,0xa2,0xcf,0x21,0x01,0xfc,0x58,0xf2,0x7b,0x01, -0xe9,0x61,0x70,0xaf,0x99,0xce,0x5b,0xbd,0x5b,0x34,0xcb,0x30,0x15,0x73,0x1c,0x53, -0xc6,0x62,0x3f,0xe0,0x7a,0x23,0xd2,0xfe,0x17,0x7c,0x3e,0xd3,0x7e,0x15,0xf8,0x03, -0x44,0xf0,0xa6,0x92,0x81,0x6c,0x74,0xbb,0x65,0x81,0x5b,0x1c,0xbb,0x75,0x67,0x3e, -0xec,0xc4,0x93,0xf5,0xae,0xaa,0x90,0x0c,0x52,0xd7,0xd0,0x25,0x6d,0x0f,0xd2,0xd2, -0xb2,0xb2,0x0a,0x28,0xa2,0x81,0x85,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14,0x51,0x40,0x05,0x14, -0x51,0x40,0x05,0x14,0x51,0x40,0x09,0x46,0x29,0x68,0xa0,0x04,0xc5,0x18,0xa5,0xa2, -0x80,0x13,0x6d,0x26,0xda,0x75,0x14,0x01,0x13,0xda,0xc3,0x26,0x77,0xc4,0x8d,0x9e, -0xb9,0x50,0x6a,0x8d,0xc7,0x86,0xb4,0x9b,0xa0,0x44,0xda,0x5d,0x9c,0xca,0x7a,0x89, -0x20,0x43,0xfd,0x2b,0x4e,0x8a,0x97,0x18,0xbd,0xd1,0x2e,0x31,0x7b,0xa3,0x98,0xb9, -0xf8,0x65,0xe1,0x3b,0xb1,0xfb,0xdf,0x0e,0xe9,0xa7,0xe9,0x6c,0x8b,0xfc,0x85,0x65, -0xdd,0x7c,0x0e,0xf0,0x35,0xd9,0x26,0x4f,0x0e,0x5a,0x0f,0xf7,0x37,0x27,0xf2,0x22, -0xbb,0xba,0x2b,0x37,0x42,0x93,0xde,0x2b,0xee,0x31,0x78,0x7a,0x32,0xde,0x0b,0xee, -0x47,0x96,0x5d,0xfe,0xcc,0xfe,0x00,0xbb,0x24,0xff,0x00,0x64,0x34,0x24,0xff,0x00, -0xcf,0x39,0x9b,0x8f,0xcc,0x9a,0xc7,0xba,0xfd,0x91,0xfc,0x0b,0x71,0xf7,0x12,0xf6, -0x13,0xfe,0xcc,0xaa,0x7f,0x9a,0xd7,0xb5,0xd1,0x59,0x3c,0x25,0x07,0xf6,0x11,0x8b, -0xc0,0xe1,0x9f,0xfc,0xbb,0x47,0xcf,0x37,0xbf,0xb1,0x77,0x85,0x67,0x27,0xc8,0xd4, -0x2e,0xe1,0x1e,0x8e,0x88,0xff,0x00,0xcb,0x15,0x8b,0x75,0xfb,0x0d,0x69,0x12,0xe7, -0xcb,0xd7,0x58,0x7a,0x6f,0xb4,0x07,0xff,0x00,0x66,0xaf,0xa8,0x28,0xac,0xde,0x07, -0x0e,0xfe,0xcf,0xe6,0x64,0xf2,0xcc,0x2b,0xfb,0x1f,0x8b,0x3e,0x3e,0xbf,0xfd,0x84, -0x1c,0x93,0xf6,0x7d,0x56,0xc6,0x40,0x7f,0xe7,0xac,0x4c,0xbf,0xc8,0x1a,0xc1,0xbd, -0xfd,0x83,0x35,0x65,0xc9,0x8e,0xe7,0x4b,0x97,0xe8,0xee,0x0f,0xea,0xa2,0xbe,0xdf, -0xa4,0x6e,0x95,0x93,0xcb,0xa8,0x74,0xbf,0xde,0x60,0xf2,0x8c,0x2b,0xe8,0xfe,0xf3, -0xe0,0x0b,0xef,0xd8,0x67,0xc4,0xd1,0x93,0xe5,0xe9,0xf0,0x4c,0x3f,0xe9,0x95,0xc2, -0x0f,0xe6,0x45,0x61,0x5e,0x7e,0xc5,0x7e,0x30,0xb7,0x04,0x8d,0x16,0x63,0xff,0x00, -0x5c,0xe7,0x46,0xfe,0x4c,0x6b,0xf4,0x6c,0x75,0xa0,0x75,0xac,0xde,0x5d,0x4f,0xa4, -0x99,0xcf,0x2c,0x8f,0x0c,0xfa,0xbf,0xc3,0xfc,0x8f,0xcc,0x3b,0xcf,0xd9,0x53,0xc5, -0xd6,0x8c,0x41,0xd1,0x35,0x51,0x8f,0xee,0xc0,0xec,0x3f,0x30,0x2b,0x16,0xfb,0xf6, -0x7b,0xf1,0x56,0x9e,0xa5,0xa4,0xb1,0xd4,0xa1,0x03,0xbb,0xc0,0xc3,0xfa,0x57,0xea, -0xb8,0xe9,0x4d,0x3c,0xd4,0x3c,0xbb,0xb4,0xd9,0xcb,0x2e,0x1d,0xc3,0xbe,0xbf,0x82, -0x3f,0x24,0x67,0xf8,0x59,0xaf,0xda,0x9c,0x16,0x99,0x7f,0xde,0x42,0x2a,0xa3,0xf8, -0x2b,0xc4,0x50,0x1e,0x25,0x6f,0xc4,0x1a,0xfd,0x75,0x96,0xd6,0x19,0x57,0xe7,0x89, -0x1f,0xfd,0xe5,0x06,0xb3,0x2f,0x3c,0x37,0xa4,0x5d,0xff,0x00,0xaf,0xd2,0xec,0xa6, -0xff,0x00,0xae,0x96,0xe8,0xdf,0xcc,0x57,0x34,0xf0,0x72,0x8f,0xdb,0xfc,0x3f,0xe0, -0x9e,0x65,0x5e,0x1d,0xc3,0xc7,0xb7,0xdd,0xff,0x00,0x04,0xfc,0x94,0x9b,0x44,0xf1, -0x2c,0x2b,0xc3,0x13,0xf4,0xcd,0x64,0x5d,0xe8,0x9e,0x28,0x94,0x13,0x99,0x31,0xec, -0x09,0xaf,0xd4,0x6f,0x14,0x78,0x37,0x40,0x44,0x98,0xae,0x87,0xa6,0x83,0x8e,0xa2, -0xd2,0x3f,0xf0,0xac,0x0f,0x06,0xf8,0x4b,0x43,0x9e,0xf1,0xd6,0x5d,0x1b,0x4f,0x91, -0x72,0x38,0x7b,0x54,0x23,0xf9,0x57,0x1c,0x63,0x25,0x2b,0x2b,0x7d,0xc7,0x8f,0x2c, -0x97,0x0c,0xa5,0xca,0x92,0xfb,0x8f,0xcc,0x9b,0x2f,0x86,0x9e,0x2d,0xf1,0x2d,0xd8, -0xb7,0xb3,0xd3,0xef,0x75,0x19,0xd8,0xf1,0x15,0xbc,0x4c,0xed,0xcf,0xb0,0x15,0xf4, -0x27,0xc2,0x4f,0xf8,0x27,0x6f,0x8a,0x7c,0x4d,0x3c,0x37,0x7e,0x31,0xb9,0x5f,0x0d, -0xe9,0x99,0x05,0xa0,0x52,0x24,0xba,0x71,0xd7,0x85,0x1f,0x2a,0xfd,0x58,0xe4,0x7f, -0x76,0xbf,0x46,0x74,0xed,0x2e,0xcf,0x4c,0xb7,0x58,0xac,0xed,0x20,0xb4,0x8c,0x0e, -0x12,0x08,0xd5,0x00,0xfc,0x00,0xab,0x8b,0x5e,0xfd,0x1c,0x3d,0xd2,0x94,0xdd,0xcf, -0xa2,0xc0,0xf0,0xed,0x18,0x5a,0x75,0x26,0xe4,0xbb,0x5a,0xc8,0xe2,0x7e,0x16,0xfc, -0x1b,0xf0,0xa7,0xc1,0xcd,0x0c,0x69,0x9e,0x18,0xd2,0xe3,0xb3,0x46,0x03,0xce,0xb8, -0x6f,0x9a,0x79,0xc8,0xef,0x23,0xf5,0x3f,0x4e,0x83,0xb0,0x15,0xdb,0x8e,0x28,0x1d, -0x29,0x6b,0xd0,0x49,0x25,0x64,0x7d,0x8c,0x29,0xc6,0x9c,0x54,0x20,0xac,0x90,0x51, -0x45,0x14,0xcd,0x02,0x8a,0x28,0xa0,0x0f,0xff,0xd9,}; - -static const unsigned int dummy_align__runtime_shtml = 3; -static const unsigned char data__runtime_shtml[] = { -/* /runtime.shtml (15 chars) */ -0x2f,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x00,0x00, - -/* HTTP header */ -/* "HTTP/1.0 200 OK -" (17 bytes) */ -0x48,0x54,0x54,0x50,0x2f,0x31,0x2e,0x30,0x20,0x32,0x30,0x30,0x20,0x4f,0x4b,0x0d, -0x0a, -/* "Server: lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip) -" (63 bytes) */ -0x53,0x65,0x72,0x76,0x65,0x72,0x3a,0x20,0x6c,0x77,0x49,0x50,0x2f,0x31,0x2e,0x33, -0x2e,0x31,0x20,0x28,0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x73,0x61,0x76,0x61,0x6e, -0x6e,0x61,0x68,0x2e,0x6e,0x6f,0x6e,0x67,0x6e,0x75,0x2e,0x6f,0x72,0x67,0x2f,0x70, -0x72,0x6f,0x6a,0x65,0x63,0x74,0x73,0x2f,0x6c,0x77,0x69,0x70,0x29,0x0d,0x0a, -/* "Content-type: text/html -Expires: Fri, 10 Apr 2008 14:00:00 GMT -Pragma: no-cache - -" (85 bytes) */ -0x43,0x6f,0x6e,0x74,0x65,0x6e,0x74,0x2d,0x74,0x79,0x70,0x65,0x3a,0x20,0x74,0x65, -0x78,0x74,0x2f,0x68,0x74,0x6d,0x6c,0x0d,0x0a,0x45,0x78,0x70,0x69,0x72,0x65,0x73, -0x3a,0x20,0x46,0x72,0x69,0x2c,0x20,0x31,0x30,0x20,0x41,0x70,0x72,0x20,0x32,0x30, -0x30,0x38,0x20,0x31,0x34,0x3a,0x30,0x30,0x3a,0x30,0x30,0x20,0x47,0x4d,0x54,0x0d, -0x0a,0x50,0x72,0x61,0x67,0x6d,0x61,0x3a,0x20,0x6e,0x6f,0x2d,0x63,0x61,0x63,0x68, -0x65,0x0d,0x0a,0x0d,0x0a, -/* raw file data (758 bytes) */ -0x3c,0x21,0x44,0x4f,0x43,0x54,0x59,0x50,0x45,0x20,0x48,0x54,0x4d,0x4c,0x20,0x50, -0x55,0x42,0x4c,0x49,0x43,0x20,0x22,0x2d,0x2f,0x2f,0x57,0x33,0x43,0x2f,0x2f,0x44, -0x54,0x44,0x20,0x48,0x54,0x4d,0x4c,0x20,0x34,0x2e,0x30,0x31,0x20,0x54,0x72,0x61, -0x6e,0x73,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x2f,0x2f,0x45,0x4e,0x22,0x20,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x77,0x33,0x2e,0x6f,0x72, -0x67,0x2f,0x54,0x52,0x2f,0x68,0x74,0x6d,0x6c,0x34,0x2f,0x6c,0x6f,0x6f,0x73,0x65, -0x2e,0x64,0x74,0x64,0x22,0x3e,0x0d,0x0a,0x3c,0x68,0x74,0x6d,0x6c,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x20,0x20,0x3c,0x74, -0x69,0x74,0x6c,0x65,0x3e,0x46,0x72,0x65,0x65,0x52,0x54,0x4f,0x53,0x2e,0x6f,0x72, -0x67,0x20,0x6c,0x77,0x49,0x50,0x20,0x57,0x45,0x42,0x20,0x73,0x65,0x72,0x76,0x65, -0x72,0x20,0x64,0x65,0x6d,0x6f,0x3c,0x2f,0x74,0x69,0x74,0x6c,0x65,0x3e,0x0d,0x0a, -0x20,0x20,0x3c,0x2f,0x68,0x65,0x61,0x64,0x3e,0x0d,0x0a,0x20,0x20,0x3c,0x42,0x4f, -0x44,0x59,0x20,0x6f,0x6e,0x4c,0x6f,0x61,0x64,0x3d,0x22,0x77,0x69,0x6e,0x64,0x6f, -0x77,0x2e,0x73,0x65,0x74,0x54,0x69,0x6d,0x65,0x6f,0x75,0x74,0x28,0x26,0x71,0x75, -0x6f,0x74,0x3b,0x6c,0x6f,0x63,0x61,0x74,0x69,0x6f,0x6e,0x2e,0x68,0x72,0x65,0x66, -0x3d,0x27,0x72,0x75,0x6e,0x74,0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x27, -0x26,0x71,0x75,0x6f,0x74,0x3b,0x2c,0x32,0x30,0x30,0x30,0x29,0x22,0x3e,0x0d,0x0a, -0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65,0x3d,0x22,0x61,0x72,0x69,0x61, -0x6c,0x22,0x3e,0x0d,0x0a,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x69,0x6e, -0x64,0x65,0x78,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x54,0x61,0x73,0x6b,0x20, -0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62,0x3e,0x7c,0x3c,0x2f, -0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22,0x72,0x75,0x6e,0x74, -0x69,0x6d,0x65,0x2e,0x73,0x68,0x74,0x6d,0x6c,0x22,0x3e,0x52,0x75,0x6e,0x20,0x54, -0x69,0x6d,0x65,0x20,0x53,0x74,0x61,0x74,0x73,0x3c,0x2f,0x61,0x3e,0x20,0x3c,0x62, -0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66,0x3d,0x22, -0x68,0x74,0x74,0x70,0x3a,0x2f,0x2f,0x77,0x77,0x77,0x2e,0x66,0x72,0x65,0x65,0x72, -0x74,0x6f,0x73,0x2e,0x6f,0x72,0x67,0x2f,0x22,0x3e,0x46,0x72,0x65,0x65,0x52,0x54, -0x4f,0x53,0x20,0x48,0x6f,0x6d,0x65,0x70,0x61,0x67,0x65,0x3c,0x2f,0x61,0x3e,0x20, -0x3c,0x62,0x3e,0x7c,0x3c,0x2f,0x62,0x3e,0x20,0x3c,0x61,0x20,0x68,0x72,0x65,0x66, -0x3d,0x22,0x6c,0x6f,0x67,0x6f,0x2e,0x6a,0x70,0x67,0x22,0x3e,0x33,0x37,0x4b,0x20, -0x6a,0x70,0x67,0x3c,0x2f,0x61,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e, -0x0d,0x0a,0x3c,0x68,0x72,0x3e,0x0d,0x0a,0x3c,0x62,0x72,0x3e,0x3c,0x70,0x3e,0x0d, -0x0a,0x3c,0x68,0x32,0x3e,0x52,0x75,0x6e,0x2d,0x74,0x69,0x6d,0x65,0x20,0x73,0x74, -0x61,0x74,0x69,0x73,0x74,0x69,0x63,0x73,0x3c,0x2f,0x68,0x32,0x3e,0x0d,0x0a,0x50, -0x61,0x67,0x65,0x20,0x77,0x69,0x6c,0x6c,0x20,0x72,0x65,0x66,0x72,0x65,0x73,0x68, -0x20,0x65,0x76,0x65,0x72,0x79,0x20,0x32,0x20,0x73,0x65,0x63,0x6f,0x6e,0x64,0x73, -0x2e,0x3c,0x70,0x3e,0x0d,0x0a,0x3c,0x66,0x6f,0x6e,0x74,0x20,0x66,0x61,0x63,0x65, -0x3d,0x22,0x63,0x6f,0x75,0x72,0x69,0x65,0x72,0x22,0x3e,0x3c,0x70,0x72,0x65,0x3e, -0x54,0x61,0x73,0x6b,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20, -0x41,0x62,0x73,0x20,0x54,0x69,0x6d,0x65,0x20,0x20,0x20,0x20,0x20,0x20,0x25,0x20, -0x54,0x69,0x6d,0x65,0x3c,0x62,0x72,0x3e,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, -0x3c,0x62,0x72,0x3e,0x0d,0x0a,0x3c,0x21,0x2d,0x2d,0x23,0x72,0x75,0x6e,0x5f,0x73, -0x74,0x61,0x74,0x73,0x2d,0x2d,0x3e,0x0d,0x0d,0x0a,0x3c,0x2f,0x70,0x72,0x65,0x3e, -0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e,0x0d,0x0a,0x3c,0x2f,0x66,0x6f,0x6e,0x74,0x3e, -0x0d,0x0a,0x3c,0x2f,0x62,0x6f,0x64,0x79,0x3e,0x0d,0x0a,0x3c,0x2f,0x68,0x74,0x6d, -0x6c,0x3e,0x0d,0x0a,0x0d,0x0a,}; - - - -const struct fsdata_file file__404_html[] = { { -file_NULL, -data__404_html, -data__404_html + 12, -sizeof(data__404_html) - 12, -1, -}}; - -const struct fsdata_file file__index_shtml[] = { { -file__404_html, -data__index_shtml, -data__index_shtml + 16, -sizeof(data__index_shtml) - 16, -1, -}}; - -const struct fsdata_file file__logo_jpg[] = { { -file__index_shtml, -data__logo_jpg, -data__logo_jpg + 12, -sizeof(data__logo_jpg) - 12, -1, -}}; - -const struct fsdata_file file__runtime_shtml[] = { { -file__logo_jpg, -data__runtime_shtml, -data__runtime_shtml + 16, -sizeof(data__runtime_shtml) - 16, -1, -}}; - -#define FS_ROOT file__runtime_shtml -#define FS_NUMFILES 4 - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h deleted file mode 100644 index 6f6c557f3..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/fsdata.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __FSDATA_H__ -#define __FSDATA_H__ - -#include "lwip/opt.h" -#include "fs.h" - -struct fsdata_file { - const struct fsdata_file *next; - const unsigned char *name; - const unsigned char *data; - int len; - u8_t http_header_included; -#if HTTPD_PRECALCULATED_CHECKSUM - u16_t chksum_count; - const struct fsdata_chksum *chksum; -#endif /* HTTPD_PRECALCULATED_CHECKSUM */ -}; - -#endif /* __FSDATA_H__ */ diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c deleted file mode 100644 index 6f1132caf..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.c +++ /dev/null @@ -1,2184 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ - -/* This httpd supports for a - * rudimentary server-side-include facility which will replace tags of the form - * in any file whose extension is .shtml, .shtm or .ssi with - * strings provided by an include handler whose pointer is provided to the - * module via function http_set_ssi_handler(). - * Additionally, a simple common - * gateway interface (CGI) handling mechanism has been added to allow clients - * to hook functions to particular request URIs. - * - * To enable SSI support, define label LWIP_HTTPD_SSI in lwipopts.h. - * To enable CGI support, define label LWIP_HTTPD_CGI in lwipopts.h. - * - * By default, the server assumes that HTTP headers are already present in - * each file stored in the file system. By defining LWIP_HTTPD_DYNAMIC_HEADERS in - * lwipopts.h, this behavior can be changed such that the server inserts the - * headers automatically based on the extension of the file being served. If - * this mode is used, be careful to ensure that the file system image used - * does not already contain the header information. - * - * File system images without headers can be created using the makefsfile - * tool with the -h command line option. - * - * - * Notes about valid SSI tags - * -------------------------- - * - * The following assumptions are made about tags used in SSI markers: - * - * 1. No tag may contain '-' or whitespace characters within the tag name. - * 2. Whitespace is allowed between the tag leadin "". - * 3. The maximum tag name length is LWIP_HTTPD_MAX_TAG_NAME_LEN, currently 8 characters. - * - * Notes on CGI usage - * ------------------ - * - * The simple CGI support offered here works with GET method requests only - * and can handle up to 16 parameters encoded into the URI. The handler - * function may not write directly to the HTTP output but must return a - * filename that the HTTP server will send to the browser as a response to - * the incoming CGI request. - * - * @todo: - * - don't use mem_malloc() (for SSI/dynamic headers) - * - split too long functions into multiple smaller functions? - * - support more file types? - */ -#include "lwip/debug.h" -#include "lwip/stats.h" -#include "httpd.h" -#include "httpd_structs.h" -#include "lwip/tcp.h" -#include "fs.h" - -#include -#include - -#if LWIP_TCP - -#ifndef HTTPD_DEBUG -#define HTTPD_DEBUG LWIP_DBG_OFF -#endif - -/** Set this to 1 and add the next line to lwippools.h to use a memp pool - * for allocating struct http_state instead of the heap: - * - * LWIP_MEMPOOL(HTTPD_STATE, 20, 100, "HTTPD_STATE") - */ -#ifndef HTTPD_USE_MEM_POOL -#define HTTPD_USE_MEM_POOL 0 -#endif - -/** The server port for HTTPD to use */ -#ifndef HTTPD_SERVER_PORT -#define HTTPD_SERVER_PORT 80 -#endif - -/** Maximum retries before the connection is aborted/closed. - * - number of times pcb->poll is called -> default is 4*500ms = 2s; - * - reset when pcb->sent is called - */ -#ifndef HTTPD_MAX_RETRIES -#define HTTPD_MAX_RETRIES 4 -#endif - -/** The poll delay is X*500ms */ -#ifndef HTTPD_POLL_INTERVAL -#define HTTPD_POLL_INTERVAL 4 -#endif - -/** Priority for tcp pcbs created by HTTPD (very low by default). - * Lower priorities get killed first when running out of memroy. - */ -#ifndef HTTPD_TCP_PRIO -#define HTTPD_TCP_PRIO TCP_PRIO_MIN -#endif - -/** Set this to 1 to enabled timing each file sent */ -#ifndef LWIP_HTTPD_TIMING -#define LWIP_HTTPD_TIMING 0 -#endif -#ifndef HTTPD_DEBUG_TIMING -#define HTTPD_DEBUG_TIMING LWIP_DBG_OFF -#endif - -/** Set this to 1 on platforms where strnstr is not available */ -#ifndef LWIP_HTTPD_STRNSTR_PRIVATE -#define LWIP_HTTPD_STRNSTR_PRIVATE 1 -#endif - -/** Set this to one to show error pages when parsing a request fails instead - of simply closing the connection. */ -#ifndef LWIP_HTTPD_SUPPORT_EXTSTATUS -#define LWIP_HTTPD_SUPPORT_EXTSTATUS 0 -#endif - -/** Set this to 0 to drop support for HTTP/0.9 clients (to save some bytes) */ -#ifndef LWIP_HTTPD_SUPPORT_V09 -#define LWIP_HTTPD_SUPPORT_V09 1 -#endif - -/** Set this to 1 to support HTTP request coming in in multiple packets/pbufs */ -#ifndef LWIP_HTTPD_SUPPORT_REQUESTLIST -#define LWIP_HTTPD_SUPPORT_REQUESTLIST 0 -#endif - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST -/** Number of rx pbufs to enqueue to parse an incoming request (up to the first - newline) */ -#ifndef LWIP_HTTPD_REQ_QUEUELEN -#define LWIP_HTTPD_REQ_QUEUELEN 10 -#endif - -/** Number of (TCP payload-) bytes (in pbufs) to enqueue to parse and incoming - request (up to the first double-newline) */ -#ifndef LWIP_HTTPD_REQ_BUFSIZE -#define LWIP_HTTPD_REQ_BUFSIZE LWIP_HTTPD_MAX_REQ_LENGTH -#endif - -/** Defines the maximum length of a HTTP request line (up to the first CRLF, - copied from pbuf into this a global buffer when pbuf- or packet-queues - are received - otherwise the input pbuf is used directly) */ -#ifndef LWIP_HTTPD_MAX_REQ_LENGTH -#define LWIP_HTTPD_MAX_REQ_LENGTH 1023 -#endif -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - -/** Maximum length of the filename to send as response to a POST request, - * filled in by the application when a POST is finished. - */ -#ifndef LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN -#define LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN 63 -#endif - -/** Set this to 0 to not send the SSI tag (default is on, so the tag will - * be sent in the HTML page */ -#ifndef LWIP_HTTPD_SSI_INCLUDE_TAG -#define LWIP_HTTPD_SSI_INCLUDE_TAG 1 -#endif - -/** Set this to 1 to call tcp_abort when tcp_close fails with memory error. - * This can be used to prevent consuming all memory in situations where the - * HTTP server has low priority compared to other communication. */ -#ifndef LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR -#define LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR 0 -#endif - -#ifndef true -#define true ((u8_t)1) -#endif - -#ifndef false -#define false ((u8_t)0) -#endif - -/** Minimum length for a valid HTTP/0.9 request: "GET /\r\n" -> 7 bytes */ -#define MIN_REQ_LEN 7 - -#define CRLF "\r\n" - -/** These defines check whether tcp_write has to copy data or not */ - -/** This was TI's check whether to let TCP copy data or not -#define HTTP_IS_DATA_VOLATILE(hs) ((hs->file < (char *)0x20000000) ? 0 : TCP_WRITE_FLAG_COPY)*/ -#ifndef HTTP_IS_DATA_VOLATILE -#if LWIP_HTTPD_SSI -/* Copy for SSI files, no copy for non-SSI files */ -#define HTTP_IS_DATA_VOLATILE(hs) ((hs)->tag_check ? TCP_WRITE_FLAG_COPY : 0) -#else /* LWIP_HTTPD_SSI */ -/** Default: don't copy if the data is sent from file-system directly */ -#define HTTP_IS_DATA_VOLATILE(hs) (((hs->file != NULL) && (hs->handle != NULL) && (hs->file == \ - (char*)hs->handle->data + hs->handle->len - hs->left)) \ - ? 0 : TCP_WRITE_FLAG_COPY) -#endif /* LWIP_HTTPD_SSI */ -#endif - -/** Default: headers are sent from ROM */ -#ifndef HTTP_IS_HDR_VOLATILE -#define HTTP_IS_HDR_VOLATILE(hs, ptr) 0 -#endif - -#if LWIP_HTTPD_SSI -/** Default: Tags are sent from struct http_state and are therefore volatile */ -#ifndef HTTP_IS_TAG_VOLATILE -#define HTTP_IS_TAG_VOLATILE(ptr) TCP_WRITE_FLAG_COPY -#endif -#endif /* LWIP_HTTPD_SSI */ - -typedef struct -{ - const char *name; - u8_t shtml; -} default_filename; - -const default_filename g_psDefaultFilenames[] = { - {"/index.shtml", true }, - {"/index.ssi", true }, - {"/index.shtm", true }, - {"/index.html", false }, - {"/index.htm", false } -}; - -#define NUM_DEFAULT_FILENAMES (sizeof(g_psDefaultFilenames) / \ - sizeof(default_filename)) - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST -/** HTTP request is copied here from pbufs for simple parsing */ -static char httpd_req_buf[LWIP_HTTPD_MAX_REQ_LENGTH+1]; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - -#if LWIP_HTTPD_SUPPORT_POST -/** Filename for response file to send when POST is finished */ -static char http_post_response_filename[LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN+1]; -#endif /* LWIP_HTTPD_SUPPORT_POST */ - -#if LWIP_HTTPD_DYNAMIC_HEADERS -/* The number of individual strings that comprise the headers sent before each - * requested file. - */ -#define NUM_FILE_HDR_STRINGS 3 -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - -#if LWIP_HTTPD_SSI - -#define HTTPD_LAST_TAG_PART 0xFFFF - -const char * const g_pcSSIExtensions[] = { - ".shtml", ".shtm", ".ssi", ".xml" -}; - -#define NUM_SHTML_EXTENSIONS (sizeof(g_pcSSIExtensions) / sizeof(const char *)) - -enum tag_check_state { - TAG_NONE, /* Not processing an SSI tag */ - TAG_LEADIN, /* Tag lead in "" being processed */ - TAG_SENDING /* Sending tag replacement string */ -}; -#endif /* LWIP_HTTPD_SSI */ - -struct http_state { - struct fs_file *handle; - char *file; /* Pointer to first unsent byte in buf. */ - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - struct pbuf *req; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - char *buf; /* File read buffer. */ - int buf_len; /* Size of file read buffer, buf. */ -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - u32_t left; /* Number of unsent bytes in buf. */ - u8_t retries; -#if LWIP_HTTPD_SSI - const char *parsed; /* Pointer to the first unparsed byte in buf. */ -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - const char *tag_started;/* Poitner to the first opening '<' of the tag. */ -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */ - const char *tag_end; /* Pointer to char after the closing '>' of the tag. */ - u32_t parse_left; /* Number of unparsed bytes in buf. */ - u16_t tag_index; /* Counter used by tag parsing state machine */ - u16_t tag_insert_len; /* Length of insert in string tag_insert */ -#if LWIP_HTTPD_SSI_MULTIPART - u16_t tag_part; /* Counter passed to and changed by tag insertion function to insert multiple times */ -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - u8_t tag_check; /* true if we are processing a .shtml file else false */ - u8_t tag_name_len; /* Length of the tag name in string tag_name */ - char tag_name[LWIP_HTTPD_MAX_TAG_NAME_LEN + 1]; /* Last tag name extracted */ - char tag_insert[LWIP_HTTPD_MAX_TAG_INSERT_LEN + 1]; /* Insert string for tag_name */ - enum tag_check_state tag_state; /* State of the tag processor */ -#endif /* LWIP_HTTPD_SSI */ -#if LWIP_HTTPD_CGI - char *params[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Params extracted from the request URI */ - char *param_vals[LWIP_HTTPD_MAX_CGI_PARAMETERS]; /* Values for each extracted param */ -#endif /* LWIP_HTTPD_CGI */ -#if LWIP_HTTPD_DYNAMIC_HEADERS - const char *hdrs[NUM_FILE_HDR_STRINGS]; /* HTTP headers to be sent. */ - u16_t hdr_pos; /* The position of the first unsent header byte in the - current string */ - u16_t hdr_index; /* The index of the hdr string currently being sent. */ -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ -#if LWIP_HTTPD_TIMING - u32_t time_started; -#endif /* LWIP_HTTPD_TIMING */ -#if LWIP_HTTPD_SUPPORT_POST - u32_t post_content_len_left; -#if LWIP_HTTPD_POST_MANUAL_WND - u32_t unrecved_bytes; - struct tcp_pcb *pcb; - u8_t no_auto_wnd; -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ -#endif /* LWIP_HTTPD_SUPPORT_POST*/ -}; - -static err_t http_find_file(struct http_state *hs, const char *uri, int is_09); -static err_t http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri); -static err_t http_poll(void *arg, struct tcp_pcb *pcb); - -#if LWIP_HTTPD_SSI -/* SSI insert handler function pointer. */ -tSSIHandler g_pfnSSIHandler = NULL; -int g_iNumTags = 0; -const char **g_ppcTags = NULL; - -#define LEN_TAG_LEAD_IN 5 -const char * const g_pcTagLeadIn = ""; -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_CGI -/* CGI handler information */ -const tCGI *g_pCGIs; -int g_iNumCGIs; -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_STRNSTR_PRIVATE -/** Like strstr but does not need 'buffer' to be NULL-terminated */ -static char* -strnstr(const char* buffer, const char* token, size_t n) -{ - const char* p; - int tokenlen = (int)strlen(token); - if (tokenlen == 0) { - return (char *)buffer; - } - for (p = buffer; *p && (p + tokenlen <= buffer + n); p++) { - if ((*p == *token) && (strncmp(p, token, tokenlen) == 0)) { - return (char *)p; - } - } - return NULL; -} -#endif /* LWIP_HTTPD_STRNSTR_PRIVATE */ - -/** Allocate a struct http_state. */ -static struct http_state* -http_state_alloc(void) -{ - struct http_state *ret; -#if HTTPD_USE_MEM_POOL - ret = (struct http_state *)memp_malloc(MEMP_HTTPD_STATE); -#else /* HTTPD_USE_MEM_POOL */ - ret = (struct http_state *)mem_malloc(sizeof(struct http_state)); -#endif /* HTTPD_USE_MEM_POOL */ - if (ret != NULL) { - /* Initialize the structure. */ - memset(ret, 0, sizeof(struct http_state)); -#if LWIP_HTTPD_DYNAMIC_HEADERS - /* Indicate that the headers are not yet valid */ - ret->hdr_index = NUM_FILE_HDR_STRINGS; -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - } - return ret; -} - -/** Free a struct http_state. - * Also frees the file data if dynamic. - */ -static void -http_state_free(struct http_state *hs) -{ - if (hs != NULL) { - if(hs->handle) { -#if LWIP_HTTPD_TIMING - u32_t ms_needed = sys_now() - hs->time_started; - u32_t needed = LWIP_MAX(1, (ms_needed/100)); - LWIP_DEBUGF(HTTPD_DEBUG_TIMING, ("httpd: needed %"U32_F" ms to send file of %d bytes -> %"U32_F" bytes/sec\n", - ms_needed, hs->handle->len, ((((u32_t)hs->handle->len) * 10) / needed))); -#endif /* LWIP_HTTPD_TIMING */ - fs_close(hs->handle); - hs->handle = NULL; - } -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - if (hs->buf != NULL) { - mem_free(hs->buf); - hs->buf = NULL; - } -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ -#if HTTPD_USE_MEM_POOL - memp_free(MEMP_HTTPD_STATE, hs); -#else /* HTTPD_USE_MEM_POOL */ - mem_free(hs); -#endif /* HTTPD_USE_MEM_POOL */ - } -} - -/** Call tcp_write() in a loop trying smaller and smaller length - * - * @param pcb tcp_pcb to send - * @param ptr Data to send - * @param length Length of data to send (in/out: on return, contains the - * amount of data sent) - * @param apiflags directly passed to tcp_write - * @return the return value of tcp_write - */ -static err_t -http_write(struct tcp_pcb *pcb, const void* ptr, u16_t *length, u8_t apiflags) -{ - u16_t len; - err_t err; - LWIP_ASSERT("length != NULL", length != NULL); - len = *length; - do { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Trying go send %d bytes\n", len)); - err = tcp_write(pcb, ptr, len, apiflags); - if (err == ERR_MEM) { - if ((tcp_sndbuf(pcb) == 0) || - (tcp_sndqueuelen(pcb) >= TCP_SND_QUEUELEN)) { - /* no need to try smaller sizes */ - len = 1; - } else { - len /= 2; - } - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, - ("Send failed, trying less (%d bytes)\n", len)); - } - } while ((err == ERR_MEM) && (len > 1)); - - if (err == ERR_OK) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Sent %d bytes\n", len)); - } else { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Send failed with err %d (\"%s\")\n", err, lwip_strerr(err))); - } - - *length = len; - return err; -} - -/** - * The connection shall be actively closed. - * Reset the sent- and recv-callbacks. - * - * @param pcb the tcp pcb to reset callbacks - * @param hs connection state to free - */ -static err_t -http_close_conn(struct tcp_pcb *pcb, struct http_state *hs) -{ - err_t err; - LWIP_DEBUGF(HTTPD_DEBUG, ("Closing connection %p\n", (void*)pcb)); - -#if LWIP_HTTPD_SUPPORT_POST - if (hs != NULL) { - if ((hs->post_content_len_left != 0) -#if LWIP_HTTPD_POST_MANUAL_WND - || ((hs->no_auto_wnd != 0) && (hs->unrecved_bytes != 0)) -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - ) { - /* make sure the post code knows that the connection is closed */ - http_post_response_filename[0] = 0; - httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN); - } - } -#endif /* LWIP_HTTPD_SUPPORT_POST*/ - - - tcp_arg(pcb, NULL); - tcp_recv(pcb, NULL); - tcp_err(pcb, NULL); - tcp_poll(pcb, NULL, 0); - tcp_sent(pcb, NULL); - if(hs != NULL) { - http_state_free(hs); - } - - err = tcp_close(pcb); - if (err != ERR_OK) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Error %d closing %p\n", err, (void*)pcb)); - /* error closing, try again later in poll */ - tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL); - } - return err; -} -#if LWIP_HTTPD_CGI -/** - * Extract URI parameters from the parameter-part of an URI in the form - * "test.cgi?x=y" @todo: better explanation! - * Pointers to the parameters are stored in hs->param_vals. - * - * @param hs http connection state - * @param params pointer to the NULL-terminated parameter string from the URI - * @return number of parameters extracted - */ -static int -extract_uri_parameters(struct http_state *hs, char *params) -{ - char *pair; - char *equals; - int loop; - - /* If we have no parameters at all, return immediately. */ - if(!params || (params[0] == '\0')) { - return(0); - } - - /* Get a pointer to our first parameter */ - pair = params; - - /* Parse up to LWIP_HTTPD_MAX_CGI_PARAMETERS from the passed string and ignore the - * remainder (if any) */ - for(loop = 0; (loop < LWIP_HTTPD_MAX_CGI_PARAMETERS) && pair; loop++) { - - /* Save the name of the parameter */ - hs->params[loop] = pair; - - /* Remember the start of this name=value pair */ - equals = pair; - - /* Find the start of the next name=value pair and replace the delimiter - * with a 0 to terminate the previous pair string. */ - pair = strchr(pair, '&'); - if(pair) { - *pair = '\0'; - pair++; - } else { - /* We didn't find a new parameter so find the end of the URI and - * replace the space with a '\0' */ - pair = strchr(equals, ' '); - if(pair) { - *pair = '\0'; - } - - /* Revert to NULL so that we exit the loop as expected. */ - pair = NULL; - } - - /* Now find the '=' in the previous pair, replace it with '\0' and save - * the parameter value string. */ - equals = strchr(equals, '='); - if(equals) { - *equals = '\0'; - hs->param_vals[loop] = equals + 1; - } else { - hs->param_vals[loop] = NULL; - } - } - - return loop; -} -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_SSI -/** - * Insert a tag (found in an shtml in the form of "" into the file. - * The tag's name is stored in hs->tag_name (NULL-terminated), the replacement - * should be written to hs->tag_insert (up to a length of LWIP_HTTPD_MAX_TAG_INSERT_LEN). - * The amount of data written is stored to hs->tag_insert_len. - * - * @todo: return tag_insert_len - maybe it can be removed from struct http_state? - * - * @param hs http connection state - */ -static void -get_tag_insert(struct http_state *hs) -{ - int loop; - size_t len; -#if LWIP_HTTPD_SSI_MULTIPART - u16_t current_tag_part = hs->tag_part; - hs->tag_part = HTTPD_LAST_TAG_PART; -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - - if(g_pfnSSIHandler && g_ppcTags && g_iNumTags) { - - /* Find this tag in the list we have been provided. */ - for(loop = 0; loop < g_iNumTags; loop++) { - if(strcmp(hs->tag_name, g_ppcTags[loop]) == 0) { - hs->tag_insert_len = g_pfnSSIHandler(loop, hs->tag_insert, - LWIP_HTTPD_MAX_TAG_INSERT_LEN -#if LWIP_HTTPD_SSI_MULTIPART - , current_tag_part, &hs->tag_part -#endif /* LWIP_HTTPD_SSI_MULTIPART */ -#if LWIP_HTTPD_FILE_STATE - , hs->handle->state -#endif /* LWIP_HTTPD_FILE_STATE */ - ); - return; - } - } - } - - /* If we drop out, we were asked to serve a page which contains tags that - * we don't have a handler for. Merely echo back the tags with an error - * marker. */ -#define UNKNOWN_TAG1_TEXT "***UNKNOWN TAG " -#define UNKNOWN_TAG1_LEN 18 -#define UNKNOWN_TAG2_TEXT "***" -#define UNKNOWN_TAG2_LEN 7 - len = LWIP_MIN(strlen(hs->tag_name), - LWIP_HTTPD_MAX_TAG_INSERT_LEN - (UNKNOWN_TAG1_LEN + UNKNOWN_TAG2_LEN)); - MEMCPY(hs->tag_insert, UNKNOWN_TAG1_TEXT, UNKNOWN_TAG1_LEN); - MEMCPY(&hs->tag_insert[UNKNOWN_TAG1_LEN], hs->tag_name, len); - MEMCPY(&hs->tag_insert[UNKNOWN_TAG1_LEN + len], UNKNOWN_TAG2_TEXT, UNKNOWN_TAG2_LEN); - hs->tag_insert[UNKNOWN_TAG1_LEN + len + UNKNOWN_TAG2_LEN] = 0; - - len = strlen(hs->tag_insert); - LWIP_ASSERT("len <= 0xffff", len <= 0xffff); - hs->tag_insert_len = (u16_t)len; -} -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_DYNAMIC_HEADERS -/** - * Generate the relevant HTTP headers for the given filename and write - * them into the supplied buffer. - */ -static void -get_http_headers(struct http_state *pState, char *pszURI) -{ - unsigned int iLoop; - char *pszWork; - char *pszExt; - char *pszVars; - - /* Ensure that we initialize the loop counter. */ - iLoop = 0; - - /* In all cases, the second header we send is the server identification - so set it here. */ - pState->hdrs[1] = g_psHTTPHeaderStrings[HTTP_HDR_SERVER]; - - /* Is this a normal file or the special case we use to send back the - default "404: Page not found" response? */ - if (pszURI == NULL) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND]; - pState->hdrs[2] = g_psHTTPHeaderStrings[DEFAULT_404_HTML]; - - /* Set up to send the first header string. */ - pState->hdr_index = 0; - pState->hdr_pos = 0; - return; - } else { - /* We are dealing with a particular filename. Look for one other - special case. We assume that any filename with "404" in it must be - indicative of a 404 server error whereas all other files require - the 200 OK header. */ - if (strstr(pszURI, "404")) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_FOUND]; - } else if (strstr(pszURI, "400")) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_BAD_REQUEST]; - } else if (strstr(pszURI, "501")) { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_NOT_IMPL]; - } else { - pState->hdrs[0] = g_psHTTPHeaderStrings[HTTP_HDR_OK]; - } - - /* Determine if the URI has any variables and, if so, temporarily remove - them. */ - pszVars = strchr(pszURI, '?'); - if(pszVars) { - *pszVars = '\0'; - } - - /* Get a pointer to the file extension. We find this by looking for the - last occurrence of "." in the filename passed. */ - pszExt = NULL; - pszWork = strchr(pszURI, '.'); - while(pszWork) { - pszExt = pszWork + 1; - pszWork = strchr(pszExt, '.'); - } - - /* Now determine the content type and add the relevant header for that. */ - for(iLoop = 0; (iLoop < NUM_HTTP_HEADERS) && pszExt; iLoop++) { - /* Have we found a matching extension? */ - if(!strcmp(g_psHTTPHeaders[iLoop].extension, pszExt)) { - pState->hdrs[2] = - g_psHTTPHeaderStrings[g_psHTTPHeaders[iLoop].headerIndex]; - break; - } - } - - /* Reinstate the parameter marker if there was one in the original URI. */ - if(pszVars) { - *pszVars = '?'; - } - } - - /* Does the URL passed have any file extension? If not, we assume it - is a special-case URL used for control state notification and we do - not send any HTTP headers with the response. */ - if(!pszExt) { - /* Force the header index to a value indicating that all headers - have already been sent. */ - pState->hdr_index = NUM_FILE_HDR_STRINGS; - } else { - /* Did we find a matching extension? */ - if(iLoop == NUM_HTTP_HEADERS) { - /* No - use the default, plain text file type. */ - pState->hdrs[2] = g_psHTTPHeaderStrings[HTTP_HDR_DEFAULT_TYPE]; - } - - /* Set up to send the first header string. */ - pState->hdr_index = 0; - pState->hdr_pos = 0; - } -} -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - -/** - * Try to send more data on this pcb. - * - * @param pcb the pcb to send data - * @param hs connection state - */ -static u8_t -http_send_data(struct tcp_pcb *pcb, struct http_state *hs) -{ - err_t err; - u16_t len; - u16_t mss; - u8_t data_to_send = false; -#if LWIP_HTTPD_DYNAMIC_HEADERS - u16_t hdrlen, sendlen; -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_send_data: pcb=%p hs=%p left=%d\n", (void*)pcb, - (void*)hs, hs != NULL ? hs->left : 0)); - -#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND - if (hs->unrecved_bytes != 0) { - return 0; - } -#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ - -#if LWIP_HTTPD_DYNAMIC_HEADERS - /* If we were passed a NULL state structure pointer, ignore the call. */ - if (hs == NULL) { - return 0; - } - - /* Assume no error until we find otherwise */ - err = ERR_OK; - - /* Do we have any more header data to send for this file? */ - if(hs->hdr_index < NUM_FILE_HDR_STRINGS) { - /* How much data can we send? */ - len = tcp_sndbuf(pcb); - sendlen = len; - - while(len && (hs->hdr_index < NUM_FILE_HDR_STRINGS) && sendlen) { - const void *ptr; - u16_t old_sendlen; - /* How much do we have to send from the current header? */ - hdrlen = (u16_t)strlen(hs->hdrs[hs->hdr_index]); - - /* How much of this can we send? */ - sendlen = (len < (hdrlen - hs->hdr_pos)) ? len : (hdrlen - hs->hdr_pos); - - /* Send this amount of data or as much as we can given memory - * constraints. */ - ptr = (const void *)(hs->hdrs[hs->hdr_index] + hs->hdr_pos); - old_sendlen = sendlen; - err = http_write(pcb, ptr, &sendlen, HTTP_IS_HDR_VOLATILE(hs, ptr)); - if ((err == ERR_OK) && (old_sendlen != sendlen)) { - /* Remember that we added some more data to be transmitted. */ - data_to_send = true; - } else if (err != ERR_OK) { - /* special case: http_write does not try to send 1 byte */ - sendlen = 0; - } - - /* Fix up the header position for the next time round. */ - hs->hdr_pos += sendlen; - len -= sendlen; - - /* Have we finished sending this string? */ - if(hs->hdr_pos == hdrlen) { - /* Yes - move on to the next one */ - hs->hdr_index++; - hs->hdr_pos = 0; - } - } - - /* If we get here and there are still header bytes to send, we send - * the header information we just wrote immediately. If there are no - * more headers to send, but we do have file data to send, drop through - * to try to send some file data too. */ - if((hs->hdr_index < NUM_FILE_HDR_STRINGS) || !hs->file) { - LWIP_DEBUGF(HTTPD_DEBUG, ("tcp_output\n")); - return 1; - } - } -#else /* LWIP_HTTPD_DYNAMIC_HEADERS */ - /* Assume no error until we find otherwise */ - err = ERR_OK; -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - - /* Have we run out of file data to send? If so, we need to read the next - * block from the file. */ - if (hs->left == 0) { -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - int count; -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - - /* Do we have a valid file handle? */ - if (hs->handle == NULL) { - /* No - close the connection. */ - http_close_conn(pcb, hs); - return 0; - } - if (fs_bytes_left(hs->handle) <= 0) { - /* We reached the end of the file so this request is done. - * @todo: don't close here for HTTP/1.1? */ - LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); - http_close_conn(pcb, hs); - return 0; - } -#if LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS - /* Do we already have a send buffer allocated? */ - if(hs->buf) { - /* Yes - get the length of the buffer */ - count = hs->buf_len; - } else { - /* We don't have a send buffer so allocate one up to 2mss bytes long. */ - count = 2 * tcp_mss(pcb); - do { - hs->buf = (char*)mem_malloc((mem_size_t)count); - if (hs->buf != NULL) { - hs->buf_len = count; - break; - } - count = count / 2; - } while (count > 100); - - /* Did we get a send buffer? If not, return immediately. */ - if (hs->buf == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("No buff\n")); - return 0; - } - } - - /* Read a block of data from the file. */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Trying to read %d bytes.\n", count)); - - count = fs_read(hs->handle, hs->buf, count); - if(count < 0) { - /* We reached the end of the file so this request is done. - * @todo: don't close here for HTTP/1.1? */ - LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); - http_close_conn(pcb, hs); - return 1; - } - - /* Set up to send the block of data we just read */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Read %d bytes.\n", count)); - hs->left = count; - hs->file = hs->buf; -#if LWIP_HTTPD_SSI - hs->parse_left = count; - hs->parsed = hs->buf; -#endif /* LWIP_HTTPD_SSI */ -#else /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - LWIP_ASSERT("SSI and DYNAMIC_HEADERS turned off but eof not reached", 0); -#endif /* LWIP_HTTPD_SSI || LWIP_HTTPD_DYNAMIC_HEADERS */ - } - -#if LWIP_HTTPD_SSI - if(!hs->tag_check) { -#endif /* LWIP_HTTPD_SSI */ - /* We are not processing an SHTML file so no tag checking is necessary. - * Just send the data as we received it from the file. */ - - /* We cannot send more data than space available in the send - buffer. */ - if (tcp_sndbuf(pcb) < hs->left) { - len = tcp_sndbuf(pcb); - } else { - len = (u16_t)hs->left; - LWIP_ASSERT("hs->left did not fit into u16_t!", (len == hs->left)); - } - mss = tcp_mss(pcb); - if(len > (2 * mss)) { - len = 2 * mss; - } - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->file += len; - hs->left -= len; - } -#if LWIP_HTTPD_SSI - } else { - /* We are processing an SHTML file so need to scan for tags and replace - * them with insert strings. We need to be careful here since a tag may - * straddle the boundary of two blocks read from the file and we may also - * have to split the insert string between two tcp_write operations. */ - - /* How much data could we send? */ - len = tcp_sndbuf(pcb); - - /* Do we have remaining data to send before parsing more? */ - if(hs->parsed > hs->file) { - /* We cannot send more data than space available in the send - buffer. */ - if (tcp_sndbuf(pcb) < (hs->parsed - hs->file)) { - len = tcp_sndbuf(pcb); - } else { - LWIP_ASSERT("Data size does not fit into u16_t!", - (hs->parsed - hs->file) <= 0xffff); - len = (u16_t)(hs->parsed - hs->file); - } - mss = tcp_mss(pcb); - if(len > (2 * mss)) { - len = 2 * mss; - } - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->file += len; - hs->left -= len; - } - - /* If the send buffer is full, return now. */ - if(tcp_sndbuf(pcb) == 0) { - return data_to_send; - } - } - - LWIP_DEBUGF(HTTPD_DEBUG, ("State %d, %d left\n", hs->tag_state, hs->parse_left)); - - /* We have sent all the data that was already parsed so continue parsing - * the buffer contents looking for SSI tags. */ - while((hs->parse_left) && (err == ERR_OK)) { - /* @todo: somewhere in this loop, 'len' should grow again... */ - if (len == 0) { - return data_to_send; - } - switch(hs->tag_state) { - case TAG_NONE: - /* We are not currently processing an SSI tag so scan for the - * start of the lead-in marker. */ - if(*hs->parsed == g_pcTagLeadIn[0]) { - /* We found what could be the lead-in for a new tag so change - * state appropriately. */ - hs->tag_state = TAG_LEADIN; - hs->tag_index = 1; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - hs->tag_started = hs->parsed; -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG */ - } - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - break; - - case TAG_LEADIN: - /* We are processing the lead-in marker, looking for the start of - * the tag name. */ - - /* Have we reached the end of the leadin? */ - if(hs->tag_index == LEN_TAG_LEAD_IN) { - hs->tag_index = 0; - hs->tag_state = TAG_FOUND; - } else { - /* Have we found the next character we expect for the tag leadin? */ - if(*hs->parsed == g_pcTagLeadIn[hs->tag_index]) { - /* Yes - move to the next one unless we have found the complete - * leadin, in which case we start looking for the tag itself */ - hs->tag_index++; - } else { - /* We found an unexpected character so this is not a tag. Move - * back to idle state. */ - hs->tag_state = TAG_NONE; - } - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - } - break; - - case TAG_FOUND: - /* We are reading the tag name, looking for the start of the - * lead-out marker and removing any whitespace found. */ - - /* Remove leading whitespace between the tag leading and the first - * tag name character. */ - if((hs->tag_index == 0) && ((*hs->parsed == ' ') || - (*hs->parsed == '\t') || (*hs->parsed == '\n') || - (*hs->parsed == '\r'))) { - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - break; - } - - /* Have we found the end of the tag name? This is signalled by - * us finding the first leadout character or whitespace */ - if((*hs->parsed == g_pcTagLeadOut[0]) || - (*hs->parsed == ' ') || (*hs->parsed == '\t') || - (*hs->parsed == '\n') || (*hs->parsed == '\r')) { - - if(hs->tag_index == 0) { - /* We read a zero length tag so ignore it. */ - hs->tag_state = TAG_NONE; - } else { - /* We read a non-empty tag so go ahead and look for the - * leadout string. */ - hs->tag_state = TAG_LEADOUT; - LWIP_ASSERT("hs->tag_index <= 0xff", hs->tag_index <= 0xff); - hs->tag_name_len = (u8_t)hs->tag_index; - hs->tag_name[hs->tag_index] = '\0'; - if(*hs->parsed == g_pcTagLeadOut[0]) { - hs->tag_index = 1; - } else { - hs->tag_index = 0; - } - } - } else { - /* This character is part of the tag name so save it */ - if(hs->tag_index < LWIP_HTTPD_MAX_TAG_NAME_LEN) { - hs->tag_name[hs->tag_index++] = *hs->parsed; - } else { - /* The tag was too long so ignore it. */ - hs->tag_state = TAG_NONE; - } - } - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - - break; - - /* We are looking for the end of the lead-out marker. */ - case TAG_LEADOUT: - /* Remove leading whitespace between the tag leading and the first - * tag leadout character. */ - if((hs->tag_index == 0) && ((*hs->parsed == ' ') || - (*hs->parsed == '\t') || (*hs->parsed == '\n') || - (*hs->parsed == '\r'))) { - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - break; - } - - /* Have we found the next character we expect for the tag leadout? */ - if(*hs->parsed == g_pcTagLeadOut[hs->tag_index]) { - /* Yes - move to the next one unless we have found the complete - * leadout, in which case we need to call the client to process - * the tag. */ - - /* Move on to the next character in the buffer */ - hs->parse_left--; - hs->parsed++; - - if(hs->tag_index == (LEN_TAG_LEAD_OUT - 1)) { - /* Call the client to ask for the insert string for the - * tag we just found. */ -#if LWIP_HTTPD_SSI_MULTIPART - hs->tag_part = 0; /* start with tag part 0 */ -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - get_tag_insert(hs); - - /* Next time through, we are going to be sending data - * immediately, either the end of the block we start - * sending here or the insert string. */ - hs->tag_index = 0; - hs->tag_state = TAG_SENDING; - hs->tag_end = hs->parsed; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - hs->parsed = hs->tag_started; -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - - /* If there is any unsent data in the buffer prior to the - * tag, we need to send it now. */ - if (hs->tag_end > hs->file) { - /* How much of the data can we send? */ -#if LWIP_HTTPD_SSI_INCLUDE_TAG - if(len > hs->tag_end - hs->file) { - len = (u16_t)(hs->tag_end - hs->file); - } -#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - if(len > hs->tag_started - hs->file) { - /* we would include the tag in sending */ - len = (u16_t)(hs->tag_started - hs->file); - } -#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - if(hs->tag_started <= hs->file) { - /* pretend to have sent the tag, too */ - len += hs->tag_end - hs->tag_started; - } -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - hs->file += len; - hs->left -= len; - } - } - } else { - hs->tag_index++; - } - } else { - /* We found an unexpected character so this is not a tag. Move - * back to idle state. */ - hs->parse_left--; - hs->parsed++; - hs->tag_state = TAG_NONE; - } - break; - - /* - * We have found a valid tag and are in the process of sending - * data as a result of that discovery. We send either remaining data - * from the file prior to the insert point or the insert string itself. - */ - case TAG_SENDING: - /* Do we have any remaining file data to send from the buffer prior - * to the tag? */ - if(hs->tag_end > hs->file) { - /* How much of the data can we send? */ -#if LWIP_HTTPD_SSI_INCLUDE_TAG - if(len > hs->tag_end - hs->file) { - len = (u16_t)(hs->tag_end - hs->file); - } -#else /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - LWIP_ASSERT("hs->started >= hs->file", hs->tag_started >= hs->file); - if (len > hs->tag_started - hs->file) { - /* we would include the tag in sending */ - len = (u16_t)(hs->tag_started - hs->file); - } -#endif /* LWIP_HTTPD_SSI_INCLUDE_TAG*/ - if (len != 0) { - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - } else { - err = ERR_OK; - } - if (err == ERR_OK) { - data_to_send = true; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - if(hs->tag_started <= hs->file) { - /* pretend to have sent the tag, too */ - len += hs->tag_end - hs->tag_started; - } -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - hs->file += len; - hs->left -= len; - } - } else { -#if LWIP_HTTPD_SSI_MULTIPART - if(hs->tag_index >= hs->tag_insert_len) { - /* Did the last SSIHandler have more to send? */ - if (hs->tag_part != HTTPD_LAST_TAG_PART) { - /* If so, call it again */ - hs->tag_index = 0; - get_tag_insert(hs); - } - } -#endif /* LWIP_HTTPD_SSI_MULTIPART */ - - /* Do we still have insert data left to send? */ - if(hs->tag_index < hs->tag_insert_len) { - /* We are sending the insert string itself. How much of the - * insert can we send? */ - if(len > (hs->tag_insert_len - hs->tag_index)) { - len = (hs->tag_insert_len - hs->tag_index); - } - - /* Note that we set the copy flag here since we only have a - * single tag insert buffer per connection. If we don't do - * this, insert corruption can occur if more than one insert - * is processed before we call tcp_output. */ - err = http_write(pcb, &(hs->tag_insert[hs->tag_index]), &len, - HTTP_IS_TAG_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->tag_index += len; - /* Don't return here: keep on sending data */ - } - } else { - /* We have sent all the insert data so go back to looking for - * a new tag. */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Everything sent.\n")); - hs->tag_index = 0; - hs->tag_state = TAG_NONE; -#if !LWIP_HTTPD_SSI_INCLUDE_TAG - hs->parsed = hs->tag_end; -#endif /* !LWIP_HTTPD_SSI_INCLUDE_TAG*/ - } - break; - } - } - } - - /* If we drop out of the end of the for loop, this implies we must have - * file data to send so send it now. In TAG_SENDING state, we've already - * handled this so skip the send if that's the case. */ - if((hs->tag_state != TAG_SENDING) && (hs->parsed > hs->file)) { - /* We cannot send more data than space available in the send - buffer. */ - if (tcp_sndbuf(pcb) < (hs->parsed - hs->file)) { - len = tcp_sndbuf(pcb); - } else { - LWIP_ASSERT("Data size does not fit into u16_t!", - (hs->parsed - hs->file) <= 0xffff); - len = (u16_t)(hs->parsed - hs->file); - } - if(len > (2 * tcp_mss(pcb))) { - len = 2 * tcp_mss(pcb); - } - - err = http_write(pcb, hs->file, &len, HTTP_IS_DATA_VOLATILE(hs)); - if (err == ERR_OK) { - data_to_send = true; - hs->file += len; - hs->left -= len; - } - } - } -#endif /* LWIP_HTTPD_SSI */ - - if((hs->left == 0) && (fs_bytes_left(hs->handle) <= 0)) { - /* We reached the end of the file so this request is done. - * This adds the FIN flag right into the last data segment. - * @todo: don't close here for HTTP/1.1? */ - LWIP_DEBUGF(HTTPD_DEBUG, ("End of file.\n")); - http_close_conn(pcb, hs); - return 0; - } - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("send_data end.\n")); - return data_to_send; -} - -#if LWIP_HTTPD_SUPPORT_EXTSTATUS -/** Initialize a http connection with a file to send for an error message - * - * @param hs http connection state - * @param error_nr HTTP error number - * @return ERR_OK if file was found and hs has been initialized correctly - * another err_t otherwise - */ -static err_t -http_find_error_file(struct http_state *hs, u16_t error_nr) -{ - const char *uri1, *uri2, *uri3; - struct fs_file *file; - - if (error_nr == 501) { - uri1 = "/501.html"; - uri2 = "/501.htm"; - uri3 = "/501.shtml"; - } else { - /* 400 (bad request is the default) */ - uri1 = "/400.html"; - uri2 = "/400.htm"; - uri3 = "/400.shtml"; - } - file = fs_open(uri1); - if (file == NULL) { - file = fs_open(uri2); - if (file == NULL) { - file = fs_open(uri3); - if (file == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Error page for error %"U16_F" not found\n", - error_nr)); - return ERR_ARG; - } - } - } - return http_init_file(hs, file, 0, NULL); -} -#else /* LWIP_HTTPD_SUPPORT_EXTSTATUS */ -#define http_find_error_file(hs, error_nr) ERR_ARG -#endif /* LWIP_HTTPD_SUPPORT_EXTSTATUS */ - -/** - * Get the file struct for a 404 error page. - * Tries some file names and returns NULL if none found. - * - * @param uri pointer that receives the actual file name URI - * @return file struct for the error page or NULL no matching file was found - */ -static struct fs_file * -http_get_404_file(const char **uri) -{ - struct fs_file *file; - - *uri = "/404.html"; - file = fs_open(*uri); - if(file == NULL) { - /* 404.html doesn't exist. Try 404.htm instead. */ - *uri = "/404.htm"; - file = fs_open(*uri); - if(file == NULL) { - /* 404.htm doesn't exist either. Try 404.shtml instead. */ - *uri = "/404.shtml"; - file = fs_open(*uri); - if(file == NULL) { - /* 404.htm doesn't exist either. Indicate to the caller that it should - * send back a default 404 page. - */ - *uri = NULL; - } - } - } - - return file; -} - -#if LWIP_HTTPD_SUPPORT_POST -static err_t -http_handle_post_finished(struct http_state *hs) -{ - /* application error or POST finished */ - /* NULL-terminate the buffer */ - http_post_response_filename[0] = 0; - httpd_post_finished(hs, http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN); - return http_find_file(hs, http_post_response_filename, 0); -} - -/** Pass received POST body data to the application and correctly handle - * returning a response document or closing the connection. - * ATTENTION: The application is responsible for the pbuf now, so don't free it! - * - * @param hs http connection state - * @param p pbuf to pass to the application - * @return ERR_OK if passed successfully, another err_t if the response file - * hasn't been found (after POST finished) - */ -static err_t -http_post_rxpbuf(struct http_state *hs, struct pbuf *p) -{ - err_t err; - - /* adjust remaining Content-Length */ - if (hs->post_content_len_left < p->tot_len) { - hs->post_content_len_left = 0; - } else { - hs->post_content_len_left -= p->tot_len; - } - err = httpd_post_receive_data(hs, p); - if ((err != ERR_OK) || (hs->post_content_len_left == 0)) { -#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND - if (hs->unrecved_bytes != 0) { - return ERR_OK; - } -#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ - /* application error or POST finished */ - return http_handle_post_finished(hs); - } - - return ERR_OK; -} - -/** Handle a post request. Called from http_parse_request when method 'POST' - * is found. - * - * @param pcb The tcp_pcb which received this packet. - * @param p The input pbuf (containing the POST header and body). - * @param hs The http connection state. - * @param data HTTP request (header and part of body) from input pbuf(s). - * @param data_len Size of 'data'. - * @param uri The HTTP URI parsed from input pbuf(s). - * @param uri_end Pointer to the end of 'uri' (here, the rest of the HTTP - * header starts). - * @return ERR_OK: POST correctly parsed and accepted by the application. - * ERR_INPROGRESS: POST not completely parsed (no error yet) - * another err_t: Error parsing POST or denied by the application - */ -static err_t -http_post_request(struct tcp_pcb *pcb, struct pbuf **inp, struct http_state *hs, - char *data, u16_t data_len, char *uri, char *uri_end) -{ - err_t err; - /* search for end-of-header (first double-CRLF) */ - char* crlfcrlf = strnstr(uri_end + 1, CRLF CRLF, data_len - (uri_end + 1 - data)); - -#if LWIP_HTTPD_POST_MANUAL_WND - hs->pcb = pcb; -#else /* LWIP_HTTPD_POST_MANUAL_WND */ - LWIP_UNUSED_ARG(pcb); /* only used for LWIP_HTTPD_POST_MANUAL_WND */ -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - - if (crlfcrlf != NULL) { - /* search for "Content-Length: " */ -#define HTTP_HDR_CONTENT_LEN "Content-Length: " -#define HTTP_HDR_CONTENT_LEN_LEN 16 -#define HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN 10 - char *scontent_len = strnstr(uri_end + 1, HTTP_HDR_CONTENT_LEN, crlfcrlf - (uri_end + 1)); - if (scontent_len != NULL) { - char *scontent_len_end = strnstr(scontent_len + HTTP_HDR_CONTENT_LEN_LEN, CRLF, HTTP_HDR_CONTENT_LEN_DIGIT_MAX_LEN); - if (scontent_len_end != NULL) { - int content_len; - char *conten_len_num = scontent_len + HTTP_HDR_CONTENT_LEN_LEN; - *scontent_len_end = 0; - content_len = atoi(conten_len_num); - if (content_len > 0) { - /* adjust length of HTTP header passed to application */ - const char *hdr_start_after_uri = uri_end + 1; - u16_t hdr_len = LWIP_MIN(data_len, crlfcrlf + 4 - data); - u16_t hdr_data_len = LWIP_MIN(data_len, crlfcrlf + 4 - hdr_start_after_uri); - u8_t post_auto_wnd = 1; - http_post_response_filename[0] = 0; - err = httpd_post_begin(hs, uri, hdr_start_after_uri, hdr_data_len, content_len, - http_post_response_filename, LWIP_HTTPD_POST_MAX_RESPONSE_URI_LEN, &post_auto_wnd); - if (err == ERR_OK) { - /* try to pass in data of the first pbuf(s) */ - struct pbuf *q = *inp; - u16_t start_offset = hdr_len; -#if LWIP_HTTPD_POST_MANUAL_WND - hs->no_auto_wnd = !post_auto_wnd; -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - /* set the Content-Length to be received for this POST */ - hs->post_content_len_left = (u32_t)content_len; - - /* get to the pbuf where the body starts */ - while((q != NULL) && (q->len <= start_offset)) { - struct pbuf *head = q; - start_offset -= q->len; - q = q->next; - /* free the head pbuf */ - head->next = NULL; - pbuf_free(head); - } - *inp = NULL; - if (q != NULL) { - /* hide the remaining HTTP header */ - pbuf_header(q, -(s16_t)start_offset); -#if LWIP_HTTPD_POST_MANUAL_WND - if (!post_auto_wnd) { - /* already tcp_recved() this data... */ - hs->unrecved_bytes = q->tot_len; - } -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - return http_post_rxpbuf(hs, q); - } else { - return ERR_OK; - } - } else { - /* return file passed from application */ - return http_find_file(hs, http_post_response_filename, 0); - } - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("POST received invalid Content-Length: %s\n", - conten_len_num)); - return ERR_ARG; - } - } - } - } - /* if we come here, the POST is incomplete */ -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - return ERR_INPROGRESS; -#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - return ERR_ARG; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ -} - -#if LWIP_HTTPD_POST_MANUAL_WND -/** A POST implementation can call this function to update the TCP window. - * This can be used to throttle data reception (e.g. when received data is - * programmed to flash and data is received faster than programmed). - * - * @param connection A connection handle passed to httpd_post_begin for which - * httpd_post_finished has *NOT* been called yet! - * @param recved_len Length of data received (for window update) - */ -void httpd_post_data_recved(void *connection, u16_t recved_len) -{ - struct http_state *hs = (struct http_state*)connection; - if (hs != NULL) { - if (hs->no_auto_wnd) { - u16_t len = recved_len; - if (hs->unrecved_bytes >= recved_len) { - hs->unrecved_bytes -= recved_len; - } else { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_LEVEL_WARNING, ("httpd_post_data_recved: recved_len too big\n")); - len = (u16_t)hs->unrecved_bytes; - hs->unrecved_bytes = 0; - } - if (hs->pcb != NULL) { - if (len != 0) { - tcp_recved(hs->pcb, len); - } - if ((hs->post_content_len_left == 0) && (hs->unrecved_bytes == 0)) { - /* finished handling POST */ - http_handle_post_finished(hs); - http_send_data(hs->pcb, hs); - } - } - } - } -} -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - -#endif /* LWIP_HTTPD_SUPPORT_POST */ - -/** - * When data has been received in the correct state, try to parse it - * as a HTTP request. - * - * @param p the received pbuf - * @param hs the connection state - * @param pcb the tcp_pcb which received this packet - * @return ERR_OK if request was OK and hs has been initialized correctly - * ERR_INPROGRESS if request was OK so far but not fully received - * another err_t otherwise - */ -static err_t -http_parse_request(struct pbuf **inp, struct http_state *hs, struct tcp_pcb *pcb) -{ - char *data; - char *crlf; - u16_t data_len; - struct pbuf *p = *inp; -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - u16_t clen; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ -#if LWIP_HTTPD_SUPPORT_POST - err_t err; -#endif /* LWIP_HTTPD_SUPPORT_POST */ - - LWIP_UNUSED_ARG(pcb); /* only used for post */ - LWIP_ASSERT("p != NULL", p != NULL); - LWIP_ASSERT("hs != NULL", hs != NULL); - - if ((hs->handle != NULL) || (hs->file != NULL)) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Received data while sending a file\n")); - /* already sending a file */ - /* @todo: abort? */ - return ERR_USE; - } - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - - LWIP_DEBUGF(HTTPD_DEBUG, ("Received %"U16_F" bytes\n", p->tot_len)); - - /* first check allowed characters in this pbuf? */ - - /* enqueue the pbuf */ - if (hs->req == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("First pbuf\n")); - hs->req = p; - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("pbuf enqueued\n")); - pbuf_cat(hs->req, p); - } - - if (hs->req->next != NULL) { - data_len = LWIP_MIN(hs->req->tot_len, LWIP_HTTPD_MAX_REQ_LENGTH); - pbuf_copy_partial(hs->req, httpd_req_buf, data_len, 0); - data = httpd_req_buf; - } else -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - { - data = (char *)p->payload; - data_len = p->len; - if (p->len != p->tot_len) { - LWIP_DEBUGF(HTTPD_DEBUG, ("Warning: incomplete header due to chained pbufs\n")); - } - } - - /* received enough data for minimal request? */ - if (data_len >= MIN_REQ_LEN) { - /* wait for CRLF before parsing anything */ - crlf = strnstr(data, CRLF, data_len); - if (crlf != NULL) { -#if LWIP_HTTPD_SUPPORT_POST - int is_post = 0; -#endif /* LWIP_HTTPD_SUPPORT_POST */ - int is_09 = 0; - char *sp1, *sp2; - u16_t left_len, uri_len; - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("CRLF received, parsing request\n")); - /* parse method */ - if (!strncmp(data, "GET ", 4)) { - sp1 = data + 3; - /* received GET request */ - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received GET request\"\n")); -#if LWIP_HTTPD_SUPPORT_POST - } else if (!strncmp(data, "POST ", 5)) { - /* store request type */ - is_post = 1; - sp1 = data + 4; - /* received GET request */ - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Received POST request\n")); -#endif /* LWIP_HTTPD_SUPPORT_POST */ - } else { - /* null-terminate the METHOD (pbuf is freed anyway wen returning) */ - data[4] = 0; - /* unsupported method! */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Unsupported request method (not implemented): \"%s\"\n", - data)); - return http_find_error_file(hs, 501); - } - /* if we come here, method is OK, parse URI */ - left_len = data_len - ((sp1 +1) - data); - sp2 = strnstr(sp1 + 1, " ", left_len); -#if LWIP_HTTPD_SUPPORT_V09 - if (sp2 == NULL) { - /* HTTP 0.9: respond with correct protocol version */ - sp2 = strnstr(sp1 + 1, CRLF, left_len); - is_09 = 1; -#if LWIP_HTTPD_SUPPORT_POST - if (is_post) { - /* HTTP/0.9 does not support POST */ - goto badrequest; - } -#endif /* LWIP_HTTPD_SUPPORT_POST */ - } -#endif /* LWIP_HTTPD_SUPPORT_V09 */ - uri_len = sp2 - (sp1 + 1); - if ((sp2 != 0) && (sp2 > sp1)) { - char *uri = sp1 + 1; - /* null-terminate the METHOD (pbuf is freed anyway wen returning) */ - *sp1 = 0; - uri[uri_len] = 0; - LWIP_DEBUGF(HTTPD_DEBUG, ("Received \"%s\" request for URI: \"%s\"\n", - data, uri)); -#if LWIP_HTTPD_SUPPORT_POST - if (is_post) { -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - struct pbuf **q = &hs->req; -#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - struct pbuf **q = inp; -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - err = http_post_request(pcb, q, hs, data, data_len, uri, sp2); - if (err != ERR_OK) { - /* restore header for next try */ - *sp1 = ' '; - *sp2 = ' '; - uri[uri_len] = ' '; - } - if (err == ERR_ARG) { - goto badrequest; - } - return err; - } else -#endif /* LWIP_HTTPD_SUPPORT_POST */ - { - return http_find_file(hs, uri, is_09); - } - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("invalid URI\n")); - } - } - } - -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - clen = pbuf_clen(hs->req); - if ((hs->req->tot_len <= LWIP_HTTPD_REQ_BUFSIZE) && - (clen <= LWIP_HTTPD_REQ_QUEUELEN)) { - /* request not fully received (too short or CRLF is missing) */ - return ERR_INPROGRESS; - } else -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - { -#if LWIP_HTTPD_SUPPORT_POST -badrequest: -#endif /* LWIP_HTTPD_SUPPORT_POST */ - LWIP_DEBUGF(HTTPD_DEBUG, ("bad request\n")); - /* could not parse request */ - return http_find_error_file(hs, 400); - } -} - -/** Try to find the file specified by uri and, if found, initialize hs - * accordingly. - * - * @param hs the connection state - * @param uri the HTTP header URI - * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response) - * @return ERR_OK if file was found and hs has been initialized correctly - * another err_t otherwise - */ -static err_t -http_find_file(struct http_state *hs, const char *uri, int is_09) -{ - size_t loop; - struct fs_file *file = NULL; - char *params; -#if LWIP_HTTPD_CGI - int i; - int count; -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_SSI - /* - * By default, assume we will not be processing server-side-includes - * tags - */ - hs->tag_check = false; -#endif /* LWIP_HTTPD_SSI */ - - /* Have we been asked for the default root file? */ - if((uri[0] == '/') && (uri[1] == 0)) { - /* Try each of the configured default filenames until we find one - that exists. */ - for (loop = 0; loop < NUM_DEFAULT_FILENAMES; loop++) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Looking for %s...\n", g_psDefaultFilenames[loop].name)); - file = fs_open((char *)g_psDefaultFilenames[loop].name); - uri = (char *)g_psDefaultFilenames[loop].name; - if(file != NULL) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opened.\n")); -#if LWIP_HTTPD_SSI - hs->tag_check = g_psDefaultFilenames[loop].shtml; -#endif /* LWIP_HTTPD_SSI */ - break; - } - } - if (file == NULL) { - /* None of the default filenames exist so send back a 404 page */ - file = http_get_404_file(&uri); -#if LWIP_HTTPD_SSI - hs->tag_check = false; -#endif /* LWIP_HTTPD_SSI */ - } - } else { - /* No - we've been asked for a specific file. */ - /* First, isolate the base URI (without any parameters) */ - params = (char *)strchr(uri, '?'); - if (params != NULL) { - /* URI contains parameters. NULL-terminate the base URI */ - *params = '\0'; - params++; - } - -#if LWIP_HTTPD_CGI - /* Does the base URI we have isolated correspond to a CGI handler? */ - if (g_iNumCGIs && g_pCGIs) { - for (i = 0; i < g_iNumCGIs; i++) { - if (strcmp(uri, g_pCGIs[i].pcCGIName) == 0) { - /* - * We found a CGI that handles this URI so extract the - * parameters and call the handler. - */ - count = extract_uri_parameters(hs, params); - uri = g_pCGIs[i].pfnCGIHandler(i, count, hs->params, - hs->param_vals); - break; - } - } - } -#endif /* LWIP_HTTPD_CGI */ - - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("Opening %s\n", uri)); - - file = fs_open(uri); - if (file == NULL) { - file = http_get_404_file(&uri); - } -#if LWIP_HTTPD_SSI - if (file != NULL) { - /* - * See if we have been asked for an shtml file and, if so, - * enable tag checking. - */ - hs->tag_check = false; - for (loop = 0; loop < NUM_SHTML_EXTENSIONS; loop++) { - if (strstr(uri, g_pcSSIExtensions[loop])) { - hs->tag_check = true; - break; - } - } - } -#endif /* LWIP_HTTPD_SSI */ - } - return http_init_file(hs, file, is_09, uri); -} - -/** Initialize a http connection with a file to send (if found). - * Called by http_find_file and http_find_error_file. - * - * @param hs http connection state - * @param file file structure to send (or NULL if not found) - * @param is_09 1 if the request is HTTP/0.9 (no HTTP headers in response) - * @param uri the HTTP header URI - * @return ERR_OK if file was found and hs has been initialized correctly - * another err_t otherwise - */ -static err_t -http_init_file(struct http_state *hs, struct fs_file *file, int is_09, const char *uri) -{ - if (file != NULL) { - /* file opened, initialise struct http_state */ -#if LWIP_HTTPD_SSI - hs->tag_index = 0; - hs->tag_state = TAG_NONE; - hs->parsed = file->data; - hs->parse_left = file->len; - hs->tag_end = file->data; -#endif /* LWIP_HTTPD_SSI */ - hs->handle = file; - hs->file = (char*)file->data; - LWIP_ASSERT("File length must be positive!", (file->len >= 0)); - hs->left = file->len; - hs->retries = 0; -#if LWIP_HTTPD_TIMING - hs->time_started = sys_now(); -#endif /* LWIP_HTTPD_TIMING */ -#if !LWIP_HTTPD_DYNAMIC_HEADERS - LWIP_ASSERT("HTTP headers not included in file system", hs->handle->http_header_included); -#endif /* !LWIP_HTTPD_DYNAMIC_HEADERS */ -#if LWIP_HTTPD_SUPPORT_V09 - if (hs->handle->http_header_included && is_09) { - /* HTTP/0.9 responses are sent without HTTP header, - search for the end of the header. */ - char *file_start = strnstr(hs->file, CRLF CRLF, hs->left); - if (file_start != NULL) { - size_t diff = file_start + 4 - hs->file; - hs->file += diff; - hs->left -= (u32_t)diff; - } - } -#endif /* LWIP_HTTPD_SUPPORT_V09*/ - } else { - hs->handle = NULL; - hs->file = NULL; - hs->left = 0; - hs->retries = 0; - } -#if LWIP_HTTPD_DYNAMIC_HEADERS - /* Determine the HTTP headers to send based on the file extension of - * the requested URI. */ - if ((hs->handle == NULL) || !hs->handle->http_header_included) { - get_http_headers(hs, (char*)uri); - } -#else /* LWIP_HTTPD_DYNAMIC_HEADERS */ - LWIP_UNUSED_ARG(uri); -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - return ERR_OK; -} - -/** - * The pcb had an error and is already deallocated. - * The argument might still be valid (if != NULL). - */ -static void -http_err(void *arg, err_t err) -{ - struct http_state *hs = (struct http_state *)arg; - LWIP_UNUSED_ARG(err); - - LWIP_DEBUGF(HTTPD_DEBUG, ("http_err: %s", lwip_strerr(err))); - - if (hs != NULL) { - http_state_free(hs); - } -} - -/** - * Data has been sent and acknowledged by the remote host. - * This means that more data can be sent. - */ -static err_t -http_sent(void *arg, struct tcp_pcb *pcb, u16_t len) -{ - struct http_state *hs = (struct http_state *)arg; - - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_sent %p\n", (void*)pcb)); - - LWIP_UNUSED_ARG(len); - - if (hs == NULL) { - return ERR_OK; - } - - hs->retries = 0; - - http_send_data(pcb, hs); - - return ERR_OK; -} - -/** - * The poll function is called every 2nd second. - * If there has been no data sent (which resets the retries) in 8 seconds, close. - * If the last portion of a file has not been sent in 2 seconds, close. - * - * This could be increased, but we don't want to waste resources for bad connections. - */ -static err_t -http_poll(void *arg, struct tcp_pcb *pcb) -{ - struct http_state *hs = (struct http_state *)arg; - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: pcb=%p hs=%p pcb_state=%s\n", - (void*)pcb, (void*)hs, tcp_debug_state_str(pcb->state))); - - if (hs == NULL) { - err_t closed; - /* arg is null, close. */ - LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: arg is NULL, close\n")); - closed = http_close_conn(pcb, hs); - LWIP_UNUSED_ARG(closed); -#if LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR - if (closed == ERR_MEM) { - tcp_abort(pcb); - return ERR_ABRT; - } -#endif /* LWIP_HTTPD_ABORT_ON_CLOSE_MEM_ERROR */ - return ERR_OK; - } else { - hs->retries++; - if (hs->retries == HTTPD_MAX_RETRIES) { - LWIP_DEBUGF(HTTPD_DEBUG, ("http_poll: too many retries, close\n")); - http_close_conn(pcb, hs); - return ERR_OK; - } - - /* If this connection has a file open, try to send some more data. If - * it has not yet received a GET request, don't do this since it will - * cause the connection to close immediately. */ - if(hs && (hs->handle)) { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_poll: try to send more data\n")); - if(http_send_data(pcb, hs)) { - /* If we wrote anything to be sent, go ahead and send it now. */ - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("tcp_output\n")); - tcp_output(pcb); - } - } - } - - return ERR_OK; -} - -/** - * Data has been received on this pcb. - * For HTTP 1.0, this should normally only happen once (if the request fits in one packet). - */ -static err_t -http_recv(void *arg, struct tcp_pcb *pcb, struct pbuf *p, err_t err) -{ - err_t parsed = ERR_ABRT; - struct http_state *hs = (struct http_state *)arg; - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: pcb=%p pbuf=%p err=%s\n", (void*)pcb, - (void*)p, lwip_strerr(err))); - - if ((err != ERR_OK) || (p == NULL) || (hs == NULL)) { - /* error or closed by other side? */ - if (p != NULL) { - /* Inform TCP that we have taken the data. */ - tcp_recved(pcb, p->tot_len); - pbuf_free(p); - } - if (hs == NULL) { - /* this should not happen, only to be robust */ - LWIP_DEBUGF(HTTPD_DEBUG, ("Error, http_recv: hs is NULL, close\n")); - } - http_close_conn(pcb, hs); - return ERR_OK; - } - -#if LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND - if (hs->no_auto_wnd) { - hs->unrecved_bytes += p->tot_len; - } else -#endif /* LWIP_HTTPD_SUPPORT_POST && LWIP_HTTPD_POST_MANUAL_WND */ - { - /* Inform TCP that we have taken the data. */ - tcp_recved(pcb, p->tot_len); - } - -#if LWIP_HTTPD_SUPPORT_POST - if (hs->post_content_len_left > 0) { - /* reset idle counter when POST data is received */ - hs->retries = 0; - /* this is data for a POST, pass the complete pbuf to the application */ - http_post_rxpbuf(hs, p); - /* pbuf is passed to the application, don't free it! */ - if (hs->post_content_len_left == 0) { - /* all data received, send response or close connection */ - http_send_data(pcb, hs); - } - return ERR_OK; - } else -#endif /* LWIP_HTTPD_SUPPORT_POST */ - { - if (hs->handle == NULL) { - parsed = http_parse_request(&p, hs, pcb); - LWIP_ASSERT("http_parse_request: unexpected return value", parsed == ERR_OK - || parsed == ERR_INPROGRESS ||parsed == ERR_ARG || parsed == ERR_USE); - } else { - LWIP_DEBUGF(HTTPD_DEBUG, ("http_recv: already sending data\n")); - } -#if LWIP_HTTPD_SUPPORT_REQUESTLIST - if (parsed != ERR_INPROGRESS) { - /* request fully parsed or error */ - if (hs->req != NULL) { - pbuf_free(hs->req); - hs->req = NULL; - } - } -#else /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - if (p != NULL) { - /* pbuf not passed to application, free it now */ - pbuf_free(p); - } -#endif /* LWIP_HTTPD_SUPPORT_REQUESTLIST */ - if (parsed == ERR_OK) { -#if LWIP_HTTPD_SUPPORT_POST - if (hs->post_content_len_left == 0) -#endif /* LWIP_HTTPD_SUPPORT_POST */ - { - LWIP_DEBUGF(HTTPD_DEBUG | LWIP_DBG_TRACE, ("http_recv: data %p len %"S32_F"\n", hs->file, hs->left)); - http_send_data(pcb, hs); - } - } else if (parsed == ERR_ARG) { - /* @todo: close on ERR_USE? */ - http_close_conn(pcb, hs); - } - } - return ERR_OK; -} - -/** - * A new incoming connection has been accepted. - */ -static err_t -http_accept(void *arg, struct tcp_pcb *pcb, err_t err) -{ - struct http_state *hs; - struct tcp_pcb_listen *lpcb = (struct tcp_pcb_listen*)arg; - LWIP_UNUSED_ARG(err); - LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept %p / %p\n", (void*)pcb, arg)); - - /* Decrease the listen backlog counter */ - tcp_accepted(lpcb); - /* Set priority */ - tcp_setprio(pcb, HTTPD_TCP_PRIO); - - /* Allocate memory for the structure that holds the state of the - connection - initialized by that function. */ - hs = http_state_alloc(); - if (hs == NULL) { - LWIP_DEBUGF(HTTPD_DEBUG, ("http_accept: Out of memory, RST\n")); - return ERR_MEM; - } - - /* Tell TCP that this is the structure we wish to be passed for our - callbacks. */ - tcp_arg(pcb, hs); - - /* Set up the various callback functions */ - tcp_recv(pcb, http_recv); - tcp_err(pcb, http_err); - tcp_poll(pcb, http_poll, HTTPD_POLL_INTERVAL); - tcp_sent(pcb, http_sent); - - return ERR_OK; -} - -/** - * Initialize the httpd with the specified local address. - */ -static void -httpd_init_addr(ip_addr_t *local_addr) -{ - struct tcp_pcb *pcb; - err_t err; - - pcb = tcp_new(); - LWIP_ASSERT("httpd_init: tcp_new failed", pcb != NULL); - tcp_setprio(pcb, HTTPD_TCP_PRIO); - /* set SOF_REUSEADDR here to explicitly bind httpd to multiple interfaces */ - err = tcp_bind(pcb, local_addr, HTTPD_SERVER_PORT); - LWIP_ASSERT("httpd_init: tcp_bind failed", err == ERR_OK); - pcb = tcp_listen(pcb); - LWIP_ASSERT("httpd_init: tcp_listen failed", pcb != NULL); - /* initialize callback arg and accept callback */ - tcp_arg(pcb, pcb); - tcp_accept(pcb, http_accept); -} - -/** - * Initialize the httpd: set up a listening PCB and bind it to the defined port - */ -void -httpd_init(void) -{ -#if HTTPD_USE_MEM_POOL - LWIP_ASSERT("memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state)", - memp_sizes[MEMP_HTTPD_STATE] >= sizeof(http_state)); -#endif - LWIP_DEBUGF(HTTPD_DEBUG, ("httpd_init\n")); - - httpd_init_addr(IP_ADDR_ANY); -} - -#if LWIP_HTTPD_SSI -/** - * Set the SSI handler function. - * - * @param ssi_handler the SSI handler function - * @param tags an array of SSI tag strings to search for in SSI-enabled files - * @param num_tags number of tags in the 'tags' array - */ -void -http_set_ssi_handler(tSSIHandler ssi_handler, const char **tags, int num_tags) -{ - LWIP_DEBUGF(HTTPD_DEBUG, ("http_set_ssi_handler\n")); - - LWIP_ASSERT("no ssi_handler given", ssi_handler != NULL); - LWIP_ASSERT("no tags given", tags != NULL); - LWIP_ASSERT("invalid number of tags", num_tags > 0); - - g_pfnSSIHandler = ssi_handler; - g_ppcTags = tags; - g_iNumTags = num_tags; -} -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_CGI -/** - * Set an array of CGI filenames/handler functions - * - * @param cgis an array of CGI filenames/handler functions - * @param num_handlers number of elements in the 'cgis' array - */ -void -http_set_cgi_handlers(const tCGI *cgis, int num_handlers) -{ - LWIP_ASSERT("no cgis given", cgis != NULL); - LWIP_ASSERT("invalid number of handlers", num_handlers > 0); - - g_pCGIs = cgis; - g_iNumCGIs = num_handlers; -} -#endif /* LWIP_HTTPD_CGI */ - -#endif /* LWIP_TCP */ diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h deleted file mode 100644 index 8c3c03d47..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd.h +++ /dev/null @@ -1,236 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - * This version of the file has been modified by Texas Instruments to offer - * simple server-side-include (SSI) and Common Gateway Interface (CGI) - * capability. - */ - -#ifndef __HTTPD_H__ -#define __HTTPD_H__ - -#include "lwip/opt.h" -#include "lwip/err.h" -#include "lwip/pbuf.h" - - -/** Set this to 1 to support CGI */ -#ifndef LWIP_HTTPD_CGI -#define LWIP_HTTPD_CGI 0 -#endif - -/** Set this to 1 to support SSI (Server-Side-Includes) */ -#ifndef LWIP_HTTPD_SSI -#define LWIP_HTTPD_SSI 1 -#endif - -/** Set this to 1 to support HTTP POST */ -#ifndef LWIP_HTTPD_SUPPORT_POST -#define LWIP_HTTPD_SUPPORT_POST 0 -#endif - - -#if LWIP_HTTPD_CGI - -/* - * Function pointer for a CGI script handler. - * - * This function is called each time the HTTPD server is asked for a file - * whose name was previously registered as a CGI function using a call to - * http_set_cgi_handler. The iIndex parameter provides the index of the - * CGI within the ppcURLs array passed to http_set_cgi_handler. Parameters - * pcParam and pcValue provide access to the parameters provided along with - * the URI. iNumParams provides a count of the entries in the pcParam and - * pcValue arrays. Each entry in the pcParam array contains the name of a - * parameter with the corresponding entry in the pcValue array containing the - * value for that parameter. Note that pcParam may contain multiple elements - * with the same name if, for example, a multi-selection list control is used - * in the form generating the data. - * - * The function should return a pointer to a character string which is the - * path and filename of the response that is to be sent to the connected - * browser, for example "/thanks.htm" or "/response/error.ssi". - * - * The maximum number of parameters that will be passed to this function via - * iNumParams is defined by LWIP_HTTPD_MAX_CGI_PARAMETERS. Any parameters in the incoming - * HTTP request above this number will be discarded. - * - * Requests intended for use by this CGI mechanism must be sent using the GET - * method (which encodes all parameters within the URI rather than in a block - * later in the request). Attempts to use the POST method will result in the - * request being ignored. - * - */ -typedef const char *(*tCGIHandler)(int iIndex, int iNumParams, char *pcParam[], - char *pcValue[]); - -/* - * Structure defining the base filename (URL) of a CGI and the associated - * function which is to be called when that URL is requested. - */ -typedef struct -{ - const char *pcCGIName; - tCGIHandler pfnCGIHandler; -} tCGI; - -void http_set_cgi_handlers(const tCGI *pCGIs, int iNumHandlers); - - -/* The maximum number of parameters that the CGI handler can be sent. */ -#ifndef LWIP_HTTPD_MAX_CGI_PARAMETERS -#define LWIP_HTTPD_MAX_CGI_PARAMETERS 16 -#endif - -#endif /* LWIP_HTTPD_CGI */ - -#if LWIP_HTTPD_SSI - -/** LWIP_HTTPD_SSI_MULTIPART==1: SSI handler function is called with 2 more - * arguments indicating a counter for insert string that are too long to be - * inserted at once: the SSI handler function must then set 'next_tag_part' - * which will be passed back to it in the next call. */ -#ifndef LWIP_HTTPD_SSI_MULTIPART -#define LWIP_HTTPD_SSI_MULTIPART 0 -#endif - -/* - * Function pointer for the SSI tag handler callback. - * - * This function will be called each time the HTTPD server detects a tag of the - * form in a .shtml, .ssi or .shtm file where "name" appears as - * one of the tags supplied to http_set_ssi_handler in the ppcTags array. The - * returned insert string, which will be appended after the the string - * "" in file sent back to the client,should be written to pointer - * pcInsert. iInsertLen contains the size of the buffer pointed to by - * pcInsert. The iIndex parameter provides the zero-based index of the tag as - * found in the ppcTags array and identifies the tag that is to be processed. - * - * The handler returns the number of characters written to pcInsert excluding - * any terminating NULL or a negative number to indicate a failure (tag not - * recognized, for example). - * - * Note that the behavior of this SSI mechanism is somewhat different from the - * "normal" SSI processing as found in, for example, the Apache web server. In - * this case, the inserted text is appended following the SSI tag rather than - * replacing the tag entirely. This allows for an implementation that does not - * require significant additional buffering of output data yet which will still - * offer usable SSI functionality. One downside to this approach is when - * attempting to use SSI within JavaScript. The SSI tag is structured to - * resemble an HTML comment but this syntax does not constitute a comment - * within JavaScript and, hence, leaving the tag in place will result in - * problems in these cases. To work around this, any SSI tag which needs to - * output JavaScript code must do so in an encapsulated way, sending the whole - * HTML section as a single include. - */ -typedef u16_t (*tSSIHandler)(int iIndex, char *pcInsert, int iInsertLen -#if LWIP_HTTPD_SSI_MULTIPART - , u16_t current_tag_part, u16_t *next_tag_part -#endif /* LWIP_HTTPD_SSI_MULTIPART */ -#if LWIP_HTTPD_FILE_STATE - , void *connection_state -#endif /* LWIP_HTTPD_FILE_STATE */ - ); - -void http_set_ssi_handler(tSSIHandler pfnSSIHandler, - const char **ppcTags, int iNumTags); - -/* The maximum length of the string comprising the tag name */ -#ifndef LWIP_HTTPD_MAX_TAG_NAME_LEN -#define LWIP_HTTPD_MAX_TAG_NAME_LEN 8 -#endif - -/* The maximum length of string that can be returned to replace any given tag */ -#ifndef LWIP_HTTPD_MAX_TAG_INSERT_LEN -#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 192 -#endif - -#endif /* LWIP_HTTPD_SSI */ - -#if LWIP_HTTPD_SUPPORT_POST - -/* These functions must be implemented by the application */ - -/** Called when a POST request has been received. The application can decide - * whether to accept it or not. - * - * @param connection Unique connection identifier, valid until httpd_post_end - * is called. - * @param uri The HTTP header URI receiving the POST request. - * @param http_request The raw HTTP request (the first packet, normally). - * @param http_request_len Size of 'http_request'. - * @param content_len Content-Length from HTTP header. - * @param response_uri Filename of response file, to be filled when denying the - * request - * @param response_uri_len Size of the 'response_uri' buffer. - * @param post_auto_wnd Set this to 0 to let the callback code handle window - * updates by calling 'httpd_post_data_recved' (to throttle rx speed) - * default is 1 (httpd handles window updates automatically) - * @return ERR_OK: Accept the POST request, data may be passed in - * another err_t: Deny the POST request, send back 'bad request'. - */ -err_t httpd_post_begin(void *connection, const char *uri, const char *http_request, - u16_t http_request_len, int content_len, char *response_uri, - u16_t response_uri_len, u8_t *post_auto_wnd); - -/** Called for each pbuf of data that has been received for a POST. - * ATTENTION: The application is responsible for freeing the pbufs passed in! - * - * @param connection Unique connection identifier. - * @param p Received data. - * @return ERR_OK: Data accepted. - * another err_t: Data denied, http_post_get_response_uri will be called. - */ -err_t httpd_post_receive_data(void *connection, struct pbuf *p); - -/** Called when all data is received or when the connection is closed. - * The application must return the filename/URI of a file to send in response - * to this POST request. If the response_uri buffer is untouched, a 404 - * response is returned. - * - * @param connection Unique connection identifier. - * @param response_uri Filename of response file, to be filled when denying the request - * @param response_uri_len Size of the 'response_uri' buffer. - */ -void httpd_post_finished(void *connection, char *response_uri, u16_t response_uri_len); - -#ifndef LWIP_HTTPD_POST_MANUAL_WND -#define LWIP_HTTPD_POST_MANUAL_WND 0 -#endif - -#if LWIP_HTTPD_POST_MANUAL_WND -void httpd_post_data_recved(void *connection, u16_t recved_len); -#endif /* LWIP_HTTPD_POST_MANUAL_WND */ - -#endif /* LWIP_HTTPD_SUPPORT_POST */ - -void httpd_init(void); - -#endif /* __HTTPD_H__ */ diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h deleted file mode 100644 index 1080a5597..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/httpd_structs.h +++ /dev/null @@ -1,115 +0,0 @@ -#ifndef __HTTPD_STRUCTS_H__ -#define __HTTPD_STRUCTS_H__ - -#include "httpd.h" - -/** This string is passed in the HTTP header as "Server: " */ -#ifndef HTTPD_SERVER_AGENT -#define HTTPD_SERVER_AGENT "lwIP/1.3.1 (http://savannah.nongnu.org/projects/lwip)" -#endif - -/** Set this to 1 if you want to include code that creates HTTP headers - * at runtime. Default is off: HTTP headers are then created statically - * by the makefsdata tool. Static headers mean smaller code size, but - * the (readonly) fsdata will grow a bit as every file includes the HTTP - * header. */ -#ifndef LWIP_HTTPD_DYNAMIC_HEADERS -#define LWIP_HTTPD_DYNAMIC_HEADERS 0 -#endif - - -#if LWIP_HTTPD_DYNAMIC_HEADERS -/** This struct is used for a list of HTTP header strings for various - * filename extensions. */ -typedef struct -{ - const char *extension; - int headerIndex; -} tHTTPHeader; - -/** A list of strings used in HTTP headers */ -static const char * const g_psHTTPHeaderStrings[] = -{ - "Content-type: text/html\r\n\r\n", - "Content-type: text/html\r\nExpires: Fri, 10 Apr 2008 14:00:00 GMT\r\nPragma: no-cache\r\n\r\n", - "Content-type: image/gif\r\n\r\n", - "Content-type: image/png\r\n\r\n", - "Content-type: image/jpeg\r\n\r\n", - "Content-type: image/bmp\r\n\r\n", - "Content-type: image/x-icon\r\n\r\n", - "Content-type: application/octet-stream\r\n\r\n", - "Content-type: application/x-javascript\r\n\r\n", - "Content-type: application/x-javascript\r\n\r\n", - "Content-type: text/css\r\n\r\n", - "Content-type: application/x-shockwave-flash\r\n\r\n", - "Content-type: text/xml\r\n\r\n", - "Content-type: text/plain\r\n\r\n", - "HTTP/1.0 200 OK\r\n", - "HTTP/1.0 404 File not found\r\n", - "HTTP/1.0 400 Bad Request\r\n", - "HTTP/1.0 501 Not Implemented\r\n", - "HTTP/1.1 200 OK\r\n", - "HTTP/1.1 404 File not found\r\n", - "HTTP/1.1 400 Bad Request\r\n", - "HTTP/1.1 501 Not Implemented\r\n", - "Content-Length: ", - "Connection: Close\r\n", - "Server: "HTTPD_SERVER_AGENT"\r\n", - "\r\n

    404: The requested file cannot be found.

    \r\n" -}; - -/* Indexes into the g_psHTTPHeaderStrings array */ -#define HTTP_HDR_HTML 0 /* text/html */ -#define HTTP_HDR_SSI 1 /* text/html Expires... */ -#define HTTP_HDR_GIF 2 /* image/gif */ -#define HTTP_HDR_PNG 3 /* image/png */ -#define HTTP_HDR_JPG 4 /* image/jpeg */ -#define HTTP_HDR_BMP 5 /* image/bmp */ -#define HTTP_HDR_ICO 6 /* image/x-icon */ -#define HTTP_HDR_APP 7 /* application/octet-stream */ -#define HTTP_HDR_JS 8 /* application/x-javascript */ -#define HTTP_HDR_RA 9 /* application/x-javascript */ -#define HTTP_HDR_CSS 10 /* text/css */ -#define HTTP_HDR_SWF 11 /* application/x-shockwave-flash */ -#define HTTP_HDR_XML 12 /* text/xml */ -#define HTTP_HDR_DEFAULT_TYPE 13 /* text/plain */ -#define HTTP_HDR_OK 14 /* 200 OK */ -#define HTTP_HDR_NOT_FOUND 15 /* 404 File not found */ -#define HTTP_HDR_BAD_REQUEST 16 /* 400 Bad request */ -#define HTTP_HDR_NOT_IMPL 17 /* 501 Not Implemented */ -#define HTTP_HDR_OK_11 18 /* 200 OK */ -#define HTTP_HDR_NOT_FOUND_11 19 /* 404 File not found */ -#define HTTP_HDR_BAD_REQUEST_11 20 /* 400 Bad request */ -#define HTTP_HDR_NOT_IMPL_11 21 /* 501 Not Implemented */ -#define HTTP_HDR_CONTENT_LENGTH 22 /* Content-Length: (HTTP 1.1)*/ -#define HTTP_HDR_CONN_CLOSE 23 /* Connection: Close (HTTP 1.1) */ -#define HTTP_HDR_SERVER 24 /* Server: HTTPD_SERVER_AGENT */ -#define DEFAULT_404_HTML 25 /* default 404 body */ - -/** A list of extension-to-HTTP header strings */ -const static tHTTPHeader g_psHTTPHeaders[] = -{ - { "html", HTTP_HDR_HTML}, - { "htm", HTTP_HDR_HTML}, - { "shtml",HTTP_HDR_SSI}, - { "shtm", HTTP_HDR_SSI}, - { "ssi", HTTP_HDR_SSI}, - { "gif", HTTP_HDR_GIF}, - { "png", HTTP_HDR_PNG}, - { "jpg", HTTP_HDR_JPG}, - { "bmp", HTTP_HDR_BMP}, - { "ico", HTTP_HDR_ICO}, - { "class",HTTP_HDR_APP}, - { "cls", HTTP_HDR_APP}, - { "js", HTTP_HDR_JS}, - { "ram", HTTP_HDR_RA}, - { "css", HTTP_HDR_CSS}, - { "swf", HTTP_HDR_SWF}, - { "xml", HTTP_HDR_XML} -}; - -#define NUM_HTTP_HEADERS (sizeof(g_psHTTPHeaders) / sizeof(tHTTPHeader)) - -#endif /* LWIP_HTTPD_DYNAMIC_HEADERS */ - -#endif /* __HTTPD_STRUCTS_H__ */ diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html deleted file mode 100644 index 40b343a91..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/404.html +++ /dev/null @@ -1,21 +0,0 @@ - -lwIP - A Lightweight TCP/IP Stack - - - - -
    - SICS logo - -

    lwIP - A Lightweight TCP/IP Stack

    -

    404 - Page not found

    -

    - Sorry, the page you are requesting was not found on this - server. -

    -
    -   -
    - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml deleted file mode 100644 index 90358d158..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/index.shtml +++ /dev/null @@ -1,20 +0,0 @@ - - - - FreeRTOS.org lwIP WEB server demo - - - -Task Stats | Run Time Stats | FreeRTOS Homepage | 37K jpg -

    -


    -

    -

    Task statistics

    -Page will refresh every 2 seconds.

    -

    Task          State  Priority  Stack	#
    ************************************************
    - -
    -
    - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/logo.jpg deleted file mode 100644 index d3670e4f0c726e023b83ad4b1a3e6bb6b2c2446a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28602 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 diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml deleted file mode 100644 index e66202b9d..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/fs/runtime.shtml +++ /dev/null @@ -1,20 +0,0 @@ - - - - FreeRTOS.org lwIP WEB server demo - - - -Task Stats | Run Time Stats | FreeRTOS Homepage | 37K jpg -

    -


    -

    -

    Run-time statistics

    -Page will refresh every 2 seconds.

    -

    Task            Abs Time      % Time
    ****************************************
    - -
    -
    - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file deleted file mode 100644 index b065caa08..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.c-source-file +++ /dev/null @@ -1,610 +0,0 @@ -/** - * makefsdata: Converts a directory structure for use with the lwIP httpd. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Jim Pettinato - * Simon Goldschmidt - * - * @todo: - * - take TCP_MSS, LWIP_TCP_TIMESTAMPS and - * PAYLOAD_ALIGN_TYPE/PAYLOAD_ALIGNMENT as arguments - */ - -#include -#include -#ifdef WIN32 -#define WIN32_LEAN_AND_MEAN -#include "windows.h" -#else -#include -#endif -#include -#include - -/* Compatibility defines Win32 vs. DOS */ -#ifdef WIN32 - -#define FIND_T WIN32_FIND_DATAA -#define FIND_T_FILENAME(fInfo) (fInfo.cFileName) -#define FIND_T_IS_DIR(fInfo) ((fInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) -#define FIND_T_IS_FILE(fInfo) ((fInfo.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) -#define FIND_RET_T HANDLE -#define FINDFIRST_FILE(path, result) FindFirstFileA(path, result) -#define FINDFIRST_DIR(path, result) FindFirstFileA(path, result) -#define FINDNEXT(ff_res, result) FindNextFileA(ff_res, result) -#define FINDFIRST_SUCCEEDED(ret) (ret != INVALID_HANDLE_VALUE) -#define FINDNEXT_SUCCEEDED(ret) (ret == TRUE) - -#define GETCWD(path, len) GetCurrentDirectoryA(len, path) -#define CHDIR(path) SetCurrentDirectoryA(path) - -#define NEWLINE "\r\n" -#define NEWLINE_LEN 2 - -#else - -#define FIND_T struct fflbk -#define FIND_T_FILENAME(fInfo) (fInfo.ff_name) -#define FIND_T_IS_DIR(fInfo) ((fInfo.ff_attrib & FA_DIREC) == FA_DIREC) -#define FIND_T_IS_FILE(fInfo) (1) -#define FIND_RET_T int -#define FINDFIRST_FILE(path, result) findfirst(path, result, FA_ARCH) -#define FINDFIRST_DIR(path, result) findfirst(path, result, FA_DIREC) -#define FINDNEXT(ff_res, result) FindNextFileA(ff_res, result) -#define FINDFIRST_SUCCEEDED(ret) (ret == 0) -#define FINDNEXT_SUCCEEDED(ret) (ret == 0) - -#define GETCWD(path, len) getcwd(path, len) -#define CHDIR(path) chdir(path) - -#endif - -/* define this to get the header variables we use to build HTTP headers */ -#define LWIP_HTTPD_DYNAMIC_HEADERS 1 -#include "../httpd_structs.h" - -#include "../../../lwip-1.4.0/src/core/ipv4/inet_chksum.c" -#include "../../../lwip-1.4.0/src/core/def.c" - -/** (Your server name here) */ -const char *serverID = "Server: "HTTPD_SERVER_AGENT"\r\n"; - -/* change this to suit your MEM_ALIGNMENT */ -#define PAYLOAD_ALIGNMENT 4 -/* set this to 0 to prevent aligning payload */ -#define ALIGN_PAYLOAD 1 -/* define this to a type that has the required alignment */ -#define PAYLOAD_ALIGN_TYPE "unsigned int" -static int payload_alingment_dummy_counter = 0; - -#define HEX_BYTES_PER_LINE 16 - -#define MAX_PATH_LEN 256 - -#define COPY_BUFSIZE 10240 - -int process_sub(FILE *data_file, FILE *struct_file); -int process_file(FILE *data_file, FILE *struct_file, const char *filename); -int file_write_http_header(FILE *data_file, const char *filename, int file_size, - u16_t *http_hdr_len, u16_t *http_hdr_chksum); -int file_put_ascii(FILE *file, const char *ascii_string, int len, int *i); -int s_put_ascii(char *buf, const char *ascii_string, int len, int *i); -void concat_files(const char *file1, const char *file2, const char *targetfile); - -static unsigned char file_buffer_raw[COPY_BUFSIZE]; -/* 5 bytes per char + 3 bytes per line */ -static char file_buffer_c[COPY_BUFSIZE * 5 + ((COPY_BUFSIZE / HEX_BYTES_PER_LINE) * 3)]; - -char curSubdir[MAX_PATH_LEN]; -char lastFileVar[MAX_PATH_LEN]; -char hdr_buf[4096]; - -unsigned char processSubs = 1; -unsigned char includeHttpHeader = 1; -unsigned char useHttp11 = 0; -unsigned char precalcChksum = 0; - -int main(int argc, char *argv[]) -{ - FIND_T fInfo; - FIND_RET_T fret; - char path[MAX_PATH_LEN]; - char appPath[MAX_PATH_LEN]; - FILE *data_file; - FILE *struct_file; - int filesProcessed; - int i; - char targetfile[MAX_PATH_LEN]; - strcpy(targetfile, "fsdata.c"); - - memset(path, 0, sizeof(path)); - memset(appPath, 0, sizeof(appPath)); - - printf(NEWLINE " makefsdata - HTML to C source converter" NEWLINE); - printf(" by Jim Pettinato - circa 2003 " NEWLINE); - printf(" extended by Simon Goldschmidt - 2009 " NEWLINE NEWLINE); - - strcpy(path, "fs"); - for(i = 1; i < argc; i++) { - if (argv[i][0] == '-') { - if (strstr(argv[i], "-s")) { - processSubs = 0; - } else if (strstr(argv[i], "-e")) { - includeHttpHeader = 0; - } else if (strstr(argv[i], "-11")) { - useHttp11 = 1; - } else if (strstr(argv[i], "-c")) { - precalcChksum = 1; - } else if((argv[i][1] == 'f') && (argv[i][2] == ':')) { - strcpy(targetfile, &argv[i][3]); - printf("Writing to file \"%s\"\n", targetfile); - } - } else { - strcpy(path, argv[i]); - } - } - - /* if command line param or subdir named 'fs' not found spout usage verbiage */ - fret = FINDFIRST_DIR(path, &fInfo); - if (!FINDFIRST_SUCCEEDED(fret)) { - /* if no subdir named 'fs' (or the one which was given) exists, spout usage verbiage */ - printf(" Failed to open directory \"%s\"." NEWLINE NEWLINE, path); - printf(" Usage: htmlgen [targetdir] [-s] [-i] [-f:]" NEWLINE NEWLINE); - printf(" targetdir: relative or absolute path to files to convert" NEWLINE); - printf(" switch -s: toggle processing of subdirectories (default is on)" NEWLINE); - printf(" switch -e: exclude HTTP header from file (header is created at runtime, default is off)" NEWLINE); - printf(" switch -11: include HTTP 1.1 header (1.0 is default)" NEWLINE); - printf(" switch -c: precalculate checksums for all pages (default is off)" NEWLINE); - printf(" switch -f: target filename (default is \"fsdata.c\")" NEWLINE); - printf(" if targetdir not specified, htmlgen will attempt to" NEWLINE); - printf(" process files in subdirectory 'fs'" NEWLINE); - exit(-1); - } - - printf("HTTP %sheader will %s statically included." NEWLINE, - (includeHttpHeader ? (useHttp11 ? "1.1 " : "1.0 ") : ""), - (includeHttpHeader ? "be" : "not be")); - - sprintf(curSubdir, ""); /* start off in web page's root directory - relative paths */ - printf(" Processing all files in directory %s", path); - if (processSubs) { - printf(" and subdirectories..." NEWLINE NEWLINE); - } else { - printf("..." NEWLINE NEWLINE); - } - - GETCWD(appPath, MAX_PATH_LEN); - data_file = fopen("fsdata.tmp", "wb"); - if (data_file == NULL) { - printf("Failed to create file \"fsdata.tmp\"\n"); - exit(-1); - } - struct_file = fopen("fshdr.tmp", "wb"); - if (struct_file == NULL) { - printf("Failed to create file \"fshdr.tmp\"\n"); - exit(-1); - } - - CHDIR(path); - - fprintf(data_file, "#include \"fs.h\"" NEWLINE); - fprintf(data_file, "#include \"lwip/def.h\"" NEWLINE); - fprintf(data_file, "#include \"fsdata.h\"" NEWLINE NEWLINE NEWLINE); - - fprintf(data_file, "#define file_NULL (struct fsdata_file *) NULL" NEWLINE NEWLINE NEWLINE); - - sprintf(lastFileVar, "NULL"); - - filesProcessed = process_sub(data_file, struct_file); - - /* data_file now contains all of the raw data.. now append linked list of - * file header structs to allow embedded app to search for a file name */ - fprintf(data_file, NEWLINE NEWLINE); - fprintf(struct_file, "#define FS_ROOT file_%s" NEWLINE, lastFileVar); - fprintf(struct_file, "#define FS_NUMFILES %d" NEWLINE NEWLINE, filesProcessed); - - fclose(data_file); - fclose(struct_file); - - CHDIR(appPath); - /* append struct_file to data_file */ - printf(NEWLINE "Creating target file..." NEWLINE NEWLINE); - concat_files("fsdata.tmp", "fshdr.tmp", targetfile); - - /* if succeeded, delete the temporary files */ - remove("fsdata.tmp"); - remove("fshdr.tmp"); - - printf(NEWLINE "Processed %d files - done." NEWLINE NEWLINE, filesProcessed); - - return 0; -} - -static void copy_file(const char *filename_in, FILE *fout) -{ - FILE *fin; - size_t len; - fin = fopen(filename_in, "rb"); - if (fin == NULL) { - printf("Failed to open file \"%s\"\n", filename_in); - exit(-1); - } - - while((len = fread(file_buffer_raw, 1, COPY_BUFSIZE, fin)) > 0) - { - fwrite(file_buffer_raw, 1, len, fout); - } - fclose(fin); -} - -void concat_files(const char *file1, const char *file2, const char *targetfile) -{ - FILE *fout; - fout = fopen(targetfile, "wb"); - if (fout == NULL) { - printf("Failed to open file \"%s\"\n", targetfile); - exit(-1); - } - copy_file(file1, fout); - copy_file(file2, fout); - fclose(fout); -} - -int process_sub(FILE *data_file, FILE *struct_file) -{ - FIND_T fInfo; - FIND_RET_T fret; - int filesProcessed = 0; - char oldSubdir[MAX_PATH_LEN]; - - if (processSubs) { - /* process subs recursively */ - strcpy(oldSubdir, curSubdir); - fret = FINDFIRST_DIR("*", &fInfo); - if (FINDFIRST_SUCCEEDED(fret)) { - do { - const char *curName = FIND_T_FILENAME(fInfo); - if (curName == NULL) continue; - if (curName[0] == '.') continue; - if (strcmp(curName, "CVS") == 0) continue; - if (!FIND_T_IS_DIR(fInfo)) continue; - CHDIR(curName); - strcat(curSubdir, "/"); - strcat(curSubdir, curName); - printf(NEWLINE "processing subdirectory %s/..." NEWLINE, curSubdir); - filesProcessed += process_sub(data_file, struct_file); - CHDIR(".."); - strcpy(curSubdir, oldSubdir); - } while (FINDNEXT_SUCCEEDED(FINDNEXT(fret, &fInfo))); - } - } - - fret = FINDFIRST_FILE("*.*", &fInfo); - if (FINDFIRST_SUCCEEDED(fret)) { - /* at least one file in directory */ - do { - if (FIND_T_IS_FILE(fInfo)) { - const char *curName = FIND_T_FILENAME(fInfo); - printf("processing %s/%s..." NEWLINE, curSubdir, curName); - if (process_file(data_file, struct_file, curName) < 0) { - printf(NEWLINE "Error... aborting" NEWLINE); - return -1; - } - filesProcessed++; - } - } while (FINDNEXT_SUCCEEDED(FINDNEXT(fret, &fInfo))); - } - return filesProcessed; -} - -int get_file_size(const char* filename) -{ - FILE *inFile; - int file_size = -1; - inFile = fopen(filename, "rb"); - if (inFile == NULL) { - printf("Failed to open file \"%s\"\n", filename); - exit(-1); - } - fseek(inFile, 0, SEEK_END); - file_size = ftell(inFile); - fclose(inFile); - return file_size; -} - -void process_file_data(const char *filename, FILE *data_file) -{ - FILE *source_file; - size_t len, written, i, src_off=0; - - source_file = fopen(filename, "rb"); - - do { - size_t off = 0; - len = fread(file_buffer_raw, 1, COPY_BUFSIZE, source_file); - if (len > 0) { - for (i = 0; i < len; i++) { - sprintf(&file_buffer_c[off], "0x%02.2x,", file_buffer_raw[i]); - off += 5; - if ((++src_off % HEX_BYTES_PER_LINE) == 0) { - memcpy(&file_buffer_c[off], NEWLINE, NEWLINE_LEN); - off += NEWLINE_LEN; - } - } - written = fwrite(file_buffer_c, 1, off, data_file); - } - } while(len > 0); - fclose(source_file); -} - -int write_checksums(FILE *struct_file, const char *filename, const char *varname, - u16_t hdr_len, u16_t hdr_chksum) -{ - int chunk_size = TCP_MSS; - int offset; - size_t len; - int i = 0; - FILE *f; -#if LWIP_TCP_TIMESTAMPS - /* when timestamps are used, usable space is 12 bytes less per segment */ - chunk_size -= 12; -#endif - - fprintf(struct_file, "#if HTTPD_PRECALCULATED_CHECKSUM" NEWLINE); - fprintf(struct_file, "const struct fsdata_chksum chksums_%s[] = {" NEWLINE, varname); - - memset(file_buffer_raw, 0xab, sizeof(file_buffer_raw)); - f = fopen(filename, "rb"); - if (f == INVALID_HANDLE_VALUE) { - printf("Failed to open file \"%s\"\n", filename); - exit(-1); - } - if (hdr_len > 0) { - /* add checksum for HTTP header */ - fprintf(struct_file, "{%d, 0x%04x, %d}," NEWLINE, 0, hdr_chksum, hdr_len); - i++; - } - for (offset = hdr_len; ; offset += len) { - unsigned short chksum; - len = fread(file_buffer_raw, 1, chunk_size, f); - if (len == 0) { - break; - } - chksum = ~inet_chksum(file_buffer_raw, (u16_t)len); - /* add checksum for data */ - fprintf(struct_file, "{%d, 0x%04x, %d}," NEWLINE, offset, chksum, len); - i++; - } - fclose(f); - fprintf(struct_file, "};" NEWLINE); - fprintf(struct_file, "#endif /* HTTPD_PRECALCULATED_CHECKSUM */" NEWLINE); - return i; -} - -int process_file(FILE *data_file, FILE *struct_file, const char *filename) -{ - char *pch; - char varname[MAX_PATH_LEN]; - int i = 0; - char qualifiedName[MAX_PATH_LEN]; - int file_size; - u16_t http_hdr_chksum = 0; - u16_t http_hdr_len = 0; - int chksum_count = 0; - - /* create qualified name (TODO: prepend slash or not?) */ - sprintf(qualifiedName,"%s/%s", curSubdir, filename); - /* create C variable name */ - strcpy(varname, qualifiedName); - /* convert slashes & dots to underscores */ - while ((pch = strpbrk(varname, "./\\")) != NULL) { - *pch = '_'; - } -#if ALIGN_PAYLOAD - /* to force even alignment of array */ - fprintf(data_file, "static const " PAYLOAD_ALIGN_TYPE " dummy_align_%s = %d;" NEWLINE, varname, payload_alingment_dummy_counter++); -#endif /* ALIGN_PAYLOAD */ - fprintf(data_file, "static const unsigned char data_%s[] = {" NEWLINE, varname); - /* encode source file name (used by file system, not returned to browser) */ - fprintf(data_file, "/* %s (%d chars) */" NEWLINE, qualifiedName, strlen(qualifiedName)+1); - file_put_ascii(data_file, qualifiedName, strlen(qualifiedName)+1, &i); -#if ALIGN_PAYLOAD - /* pad to even number of bytes to assure payload is on aligned boundary */ - while(i % PAYLOAD_ALIGNMENT != 0) { - fprintf(data_file, "0x%02.2x,", 0); - i++; - } -#endif /* ALIGN_PAYLOAD */ - fprintf(data_file, NEWLINE); - - file_size = get_file_size(filename); - if (includeHttpHeader) { - file_write_http_header(data_file, filename, file_size, &http_hdr_len, &http_hdr_chksum); - } - if (precalcChksum) { - chksum_count = write_checksums(struct_file, filename, varname, http_hdr_len, http_hdr_chksum); - } - - /* build declaration of struct fsdata_file in temp file */ - fprintf(struct_file, "const struct fsdata_file file_%s[] = { {" NEWLINE, varname); - fprintf(struct_file, "file_%s," NEWLINE, lastFileVar); - fprintf(struct_file, "data_%s," NEWLINE, varname); - fprintf(struct_file, "data_%s + %d," NEWLINE, varname, i); - fprintf(struct_file, "sizeof(data_%s) - %d," NEWLINE, varname, i); - fprintf(struct_file, "%d," NEWLINE, includeHttpHeader); - if (precalcChksum) { - fprintf(struct_file, "#if HTTPD_PRECALCULATED_CHECKSUM" NEWLINE); - fprintf(struct_file, "%d, chksums_%s," NEWLINE, chksum_count, varname); - fprintf(struct_file, "#endif /* HTTPD_PRECALCULATED_CHECKSUM */" NEWLINE); - } - fprintf(struct_file, "}};" NEWLINE NEWLINE); - strcpy(lastFileVar, varname); - - /* write actual file contents */ - i = 0; - fprintf(data_file, NEWLINE "/* raw file data (%d bytes) */" NEWLINE, file_size); - process_file_data(filename, data_file); - fprintf(data_file, "};" NEWLINE NEWLINE); - - return 0; -} - -int file_write_http_header(FILE *data_file, const char *filename, int file_size, - u16_t *http_hdr_len, u16_t *http_hdr_chksum) -{ - int i = 0; - int response_type = HTTP_HDR_OK; - int file_type = HTTP_HDR_DEFAULT_TYPE; - const char *cur_string; - size_t cur_len; - int written = 0; - size_t hdr_len = 0; - u16_t acc; - const char *file_ext; - int j; - - memset(hdr_buf, 0, sizeof(hdr_buf)); - - if (useHttp11) { - response_type = HTTP_HDR_OK_11; - } - - fprintf(data_file, NEWLINE "/* HTTP header */"); - if (strstr(filename, "404") == filename) { - response_type = HTTP_HDR_NOT_FOUND; - if (useHttp11) { - response_type = HTTP_HDR_NOT_FOUND_11; - } - } else if (strstr(filename, "400") == filename) { - response_type = HTTP_HDR_BAD_REQUEST; - if (useHttp11) { - response_type = HTTP_HDR_BAD_REQUEST_11; - } - } else if (strstr(filename, "501") == filename) { - response_type = HTTP_HDR_NOT_IMPL; - if (useHttp11) { - response_type = HTTP_HDR_NOT_IMPL_11; - } - } - cur_string = g_psHTTPHeaderStrings[response_type]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - - cur_string = serverID; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - - file_ext = filename; - while(strstr(file_ext, ".") != NULL) { - file_ext = strstr(file_ext, "."); - file_ext++; - } - if((file_ext == NULL) || (*file_ext == 0)) { - printf("failed to get extension for file \"%s\", using default.\n", filename); - } else { - for(j = 0; j < NUM_HTTP_HEADERS; j++) { - if(!strcmp(file_ext, g_psHTTPHeaders[j].extension)) { - file_type = g_psHTTPHeaders[j].headerIndex; - break; - } - } - if (j >= NUM_HTTP_HEADERS) { - printf("failed to get file type for extension \"%s\", using default.\n", file_ext); - file_type = HTTP_HDR_DEFAULT_TYPE; - } - } - - if (useHttp11) { - char intbuf[MAX_PATH_LEN]; - memset(intbuf, 0, sizeof(intbuf)); - - cur_string = g_psHTTPHeaderStrings[HTTP_HDR_CONTENT_LENGTH]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s%d\r\n\" (%d+ bytes) */" NEWLINE, cur_string, file_size, cur_len+2); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - - _itoa(file_size, intbuf, 10); - strcat(intbuf, "\r\n"); - cur_len = strlen(intbuf); - written += file_put_ascii(data_file, intbuf, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], intbuf, cur_len); - hdr_len += cur_len; - } - - cur_string = g_psHTTPHeaderStrings[HTTP_HDR_CONN_CLOSE]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - } - } - - cur_string = g_psHTTPHeaderStrings[file_type]; - cur_len = strlen(cur_string); - fprintf(data_file, NEWLINE "/* \"%s\" (%d bytes) */" NEWLINE, cur_string, cur_len); - written += file_put_ascii(data_file, cur_string, cur_len, &i); - i = 0; - if (precalcChksum) { - memcpy(&hdr_buf[hdr_len], cur_string, cur_len); - hdr_len += cur_len; - - LWIP_ASSERT("hdr_len <= 0xffff", hdr_len <= 0xffff); - LWIP_ASSERT("strlen(hdr_buf) == hdr_len", strlen(hdr_buf) == hdr_len); - acc = ~inet_chksum(hdr_buf, (u16_t)hdr_len); - *http_hdr_len = (u16_t)hdr_len; - *http_hdr_chksum = acc; - } - - return written; -} - -int file_put_ascii(FILE *file, const char* ascii_string, int len, int *i) -{ - int x; - for(x = 0; x < len; x++) { - unsigned char cur = ascii_string[x]; - fprintf(file, "0x%02.2x,", cur); - if ((++(*i) % HEX_BYTES_PER_LINE) == 0) { - fprintf(file, NEWLINE); - } - } - return len; -} - -int s_put_ascii(char *buf, const char *ascii_string, int len, int *i) -{ - int x; - int idx = 0; - for(x = 0; x < len; x++) { - unsigned char cur = ascii_string[x]; - sprintf(&buf[idx], "0x%02.2x,", cur); - idx += 5; - if ((++(*i) % HEX_BYTES_PER_LINE) == 0) { - sprintf(&buf[idx], NEWLINE); - idx += NEWLINE_LEN; - } - } - return len; -} diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/apps/httpserver_raw/makefsdata/makefsdata.exe deleted file mode 100644 index 7d4271d0aa18c7f8eeb905dee82a49bce8ba89ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46592 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 MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* Standard includes. */ -#include - -/* FreeRTOS includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "semphr.h" - -/* lwIP core includes */ -#include "lwip/opt.h" -#include "lwip/tcpip.h" - -/* lwIP netif includes */ -#include "netif/etharp.h" - -/* applications includes */ -#include "apps/httpserver_raw/httpd.h" - -/* The constants that define the IP address, net mask, gateway address and MAC -address are located at the bottom of FreeRTOSConfig.h. */ -#define LWIP_PORT_INIT_IPADDR(addr) IP4_ADDR((addr), configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 ) -#define LWIP_PORT_INIT_GW(addr) IP4_ADDR((addr), configGW_IP_ADDR0, configGW_IP_ADDR1, configGW_IP_ADDR2, configGW_IP_ADDR3 ) -#define LWIP_PORT_INIT_NETMASK(addr) IP4_ADDR((addr), configNET_MASK0,configNET_MASK1,configNET_MASK2,configNET_MASK3) -#define LWIP_MAC_ADDR_BASE { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 } - -/* Definitions of the various SSI callback functions within the pccSSITags -array. If pccSSITags is updated, then these definitions must also be updated. */ -#define ssiTASK_STATS_INDEX 0 -#define ssiRUN_TIME_STATS_INDEX 1 - -/* - * The SSI handler callback function passed to lwIP. - */ -static unsigned short uslwIPAppsSSIHandler( int iIndex, char *pcBuffer, int iBufferLength ); - -/*-----------------------------------------------------------*/ - -/* The SSI strings that are embedded in the served html files. If this array -is changed, then the index position defined by the #defines such as -ssiTASK_STATS_INDEX above must also be updated. */ -static const char *pccSSITags[] = -{ - "rtos_stats", - "run_stats" -}; - -/*-----------------------------------------------------------*/ - -/* Called from the TCP/IP thread. */ -void lwIPAppsInit( void *pvArgument ) -{ -ip_addr_t xIPAddr, xNetMask, xGateway; -extern err_t ethernetif_init( struct netif *xNetIf ); -static struct netif xNetIf; - - ( void ) pvArgument; - - /* Set up the network interface. */ - ip_addr_set_zero( &xGateway ); - ip_addr_set_zero( &xIPAddr ); - ip_addr_set_zero( &xNetMask ); - - LWIP_PORT_INIT_GW(&xGateway); - LWIP_PORT_INIT_IPADDR(&xIPAddr); - LWIP_PORT_INIT_NETMASK(&xNetMask); - - netif_set_default( netif_add( &xNetIf, &xIPAddr, &xNetMask, &xGateway, NULL, ethernetif_init, tcpip_input ) ); - netif_set_up( &xNetIf ); - - /* Initialise the raw http server. */ - httpd_init(); - - /* Install the server side include handler. */ - http_set_ssi_handler( uslwIPAppsSSIHandler, pccSSITags, sizeof( pccSSITags ) / sizeof( char * ) ); -} -/*-----------------------------------------------------------*/ - -static unsigned short uslwIPAppsSSIHandler( int iIndex, char *pcBuffer, int iBufferLength ) -{ -static unsigned int uiUpdateCount = 0; -static char cUpdateString[ 200 ]; -extern char *pcMainGetTaskStatusMessage( void ); - - /* Unused parameter. */ - ( void ) iBufferLength; - - /* The SSI handler function that generates text depending on the index of - the SSI tag encountered. */ - - switch( iIndex ) - { - case ssiTASK_STATS_INDEX : - vTaskList( pcBuffer ); - break; - - case ssiRUN_TIME_STATS_INDEX : - vTaskGetRunTimeStats( pcBuffer ); - break; - } - - /* Include a count of the number of times an SSI function has been executed - in the returned string. */ - uiUpdateCount++; - sprintf( cUpdateString, "\r\n\r\n%u\r\nStatus - %s", uiUpdateCount, pcMainGetTaskStatusMessage() ); - strcat( pcBuffer, cUpdateString ); - return strlen( pcBuffer ); -} - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h deleted file mode 100644 index f7109fad1..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipcfg_MicroBlaze.h +++ /dev/null @@ -1,15 +0,0 @@ - -#define LWIP_PORT_INIT_IPADDR(addr) IP4_ADDR((addr), configIP_ADDR0, configIP_ADDR1, configIP_ADDR2, configIP_ADDR3 ) -#define LWIP_PORT_INIT_GW(addr) IP4_ADDR((addr), configGW_IP_ADDR0, configGW_IP_ADDR1, configGW_IP_ADDR2, configGW_IP_ADDR3 ) -#define LWIP_PORT_INIT_NETMASK(addr) IP4_ADDR((addr), configNET_MASK0,configNET_MASK1,configNET_MASK2,configNET_MASK3) - -/* remember to change this MAC address to suit your needs! - the last octet will be increased by netif->num for each netif */ -#define LWIP_MAC_ADDR_BASE { configMAC_ADDR0, configMAC_ADDR1, configMAC_ADDR2, configMAC_ADDR3, configMAC_ADDR4, configMAC_ADDR5 } - -/* configuration for applications */ - -#define LWIP_CHARGEN_APP 0 -#define LWIP_DNS_APP 0 -#define LWIP_HTTPD_APP 1 - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h deleted file mode 100644 index 2ec734ae7..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/lwIP/lwIP_Apps/lwipopts.h +++ /dev/null @@ -1,317 +0,0 @@ -/* - * Copyright (c) 2001-2003 Swedish Institute of Computer Science. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * 3. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT - * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT - * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING - * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY - * OF SUCH DAMAGE. - * - * This file is part of the lwIP TCP/IP stack. - * - * Author: Adam Dunkels - * - */ -#ifndef __LWIPOPTS_H__ -#define __LWIPOPTS_H__ - -#include "xparameters.h" - -/* Define platform endianness (might already be defined) */ -#ifndef BYTE_ORDER - #if XPAR_MICROBLAZE_0_ENDIANNESS == 1 - #define BYTE_ORDER LITTLE_ENDIAN - #else - #define BYTE_ORDER BIG_ENDIAN - #endif -#endif /* BYTE_ORDER */ - -/* Using the Lite Ethernet IP. */ -#define XLWIP_CONFIG_INCLUDE_EMACLITE 1 - -/* SSI options. */ -#define TCPIP_THREAD_NAME "tcpip" -#define LWIP_HTTPD_MAX_TAG_NAME_LEN 20 -#define LWIP_HTTPD_MAX_TAG_INSERT_LEN 1500 -#define TCPIP_THREAD_PRIO configLWIP_TASK_PRIORITY -#define TCPIP_THREAD_STACKSIZE configMINIMAL_STACK_SIZE * 3 - -/* MBox sizes cannot be zer, which is their default. */ -#define DEFAULT_TCP_RECVMBOX_SIZE 5 -#define DEFAULT_ACCEPTMBOX_SIZE 5 -#define TCPIP_MBOX_SIZE 10 - -/* FreeRTOS is used. */ -#define NO_SYS 0 - -/* In this example, sockets are not used, only the raw API. */ -#define LWIP_SOCKET 0 - -/* In this example, only the raw API is used. */ -#define LWIP_NETCONN 0 - -/* SNMP and IGMP are not required by this simple demo. ICMP is always useful -though. */ -#define LWIP_SNMP 0 -#define LWIP_IGMP 0 -#define LWIP_ICMP 1 - -/* DNS is not going to be used as this is a simple local example. */ -#define LWIP_DNS 0 - -#define LWIP_HAVE_LOOPIF 0 -#define TCP_LISTEN_BACKLOG 0 -#define LWIP_SO_RCVTIMEO 1 -#define LWIP_SO_RCVBUF 1 - -#ifdef LWIP_DEBUG - #define LWIP_DBG_MIN_LEVEL 0 - #define PPP_DEBUG LWIP_DBG_OFF - #define MEM_DEBUG LWIP_DBG_ON - #define MEMP_DEBUG LWIP_DBG_ON - #define PBUF_DEBUG LWIP_DBG_ON - #define API_LIB_DEBUG LWIP_DBG_OFF - #define API_MSG_DEBUG LWIP_DBG_OFF - #define TCPIP_DEBUG LWIP_DBG_OFF - #define NETIF_DEBUG LWIP_DBG_OFF - #define SOCKETS_DEBUG LWIP_DBG_OFF - #define DNS_DEBUG LWIP_DBG_OFF - #define AUTOIP_DEBUG LWIP_DBG_OFF - #define DHCP_DEBUG LWIP_DBG_OFF - #define IP_DEBUG LWIP_DBG_OFF - #define IP_REASS_DEBUG LWIP_DBG_OFF - #define ICMP_DEBUG LWIP_DBG_OFF - #define IGMP_DEBUG LWIP_DBG_OFF - #define UDP_DEBUG LWIP_DBG_OFF - #define TCP_DEBUG LWIP_DBG_OFF - #define TCP_INPUT_DEBUG LWIP_DBG_OFF - #define TCP_OUTPUT_DEBUG LWIP_DBG_OFF - #define TCP_RTO_DEBUG LWIP_DBG_OFF - #define TCP_CWND_DEBUG LWIP_DBG_OFF - #define TCP_WND_DEBUG LWIP_DBG_OFF - #define TCP_FR_DEBUG LWIP_DBG_OFF - #define TCP_QLEN_DEBUG LWIP_DBG_OFF - #define TCP_RST_DEBUG LWIP_DBG_OFF -#endif - -#define LWIP_DBG_TYPES_ON (LWIP_DBG_ON|LWIP_DBG_TRACE|LWIP_DBG_STATE|LWIP_DBG_FRESH|LWIP_DBG_HALT) - - - -/* ---------- Memory options ---------- */ -/* MEM_ALIGNMENT: should be set to the alignment of the CPU for which - lwIP is compiled. 4 byte alignment -> define MEM_ALIGNMENT to 4, 2 - byte alignment -> define MEM_ALIGNMENT to 2. */ -/* MSVC port: intel processors don't need 4-byte alignment, - but are faster that way! */ -#define MEM_ALIGNMENT 4 - -/* MEM_SIZE: the size of the heap memory. If the application will send -a lot of data that needs to be copied, this should be set high. */ -#define MEM_SIZE 10240 - -/* MEMP_NUM_PBUF: the number of memp struct pbufs. If the application - sends a lot of data out of ROM (or other static memory), this - should be set high. */ -#define MEMP_NUM_PBUF 10 - -/* MEMP_NUM_RAW_PCB: the number of UDP protocol control blocks. One - per active RAW "connection". */ -#define LWIP_RAW 0 -#define MEMP_NUM_RAW_PCB 0 - -/* MEMP_NUM_UDP_PCB: the number of UDP protocol control blocks. One - per active UDP "connection". */ -#define MEMP_NUM_UDP_PCB 2 - -/* MEMP_NUM_TCP_PCB: the number of simulatenously active TCP - connections. */ -#define MEMP_NUM_TCP_PCB 40 - -/* MEMP_NUM_TCP_PCB_LISTEN: the number of listening TCP - connections. */ -#define MEMP_NUM_TCP_PCB_LISTEN 2 - -/* MEMP_NUM_TCP_SEG: the number of simultaneously queued TCP - segments. */ -#define MEMP_NUM_TCP_SEG 10 - -/* MEMP_NUM_SYS_TIMEOUT: the number of simulateously active - timeouts. */ -#define MEMP_NUM_SYS_TIMEOUT 15 - -/* The following four are used only with the sequential API and can be - set to 0 if the application only will use the raw API. */ -/* MEMP_NUM_NETBUF: the number of struct netbufs. */ -#define MEMP_NUM_NETBUF 0 - -/* MEMP_NUM_NETCONN: the number of struct netconns. */ -#define MEMP_NUM_NETCONN 0 - -/* MEMP_NUM_TCPIP_MSG_*: the number of struct tcpip_msg, which is used - for sequential API communication and incoming packets. Used in - src/api/tcpip.c. */ -#define MEMP_NUM_TCPIP_MSG_API 4 -#define MEMP_NUM_TCPIP_MSG_INPKT 4 - -#define MEMP_NUM_ARP_QUEUE 5 - -/* ---------- Pbuf options ---------- */ -/* PBUF_POOL_SIZE: the number of buffers in the pbuf pool. */ -#define PBUF_POOL_SIZE 10 - -/* PBUF_POOL_BUFSIZE: the size of each pbuf in the pbuf pool. */ -#define PBUF_POOL_BUFSIZE 375 - -/* PBUF_LINK_HLEN: the number of bytes that should be allocated for a - link level header. */ -#define PBUF_LINK_HLEN 16 - -/** SYS_LIGHTWEIGHT_PROT - * define SYS_LIGHTWEIGHT_PROT in lwipopts.h if you want inter-task protection - * for certain critical regions during buffer allocation, deallocation and memory - * allocation and deallocation. - */ -#define SYS_LIGHTWEIGHT_PROT (NO_SYS==0) - - -/* ---------- TCP options ---------- */ -#define LWIP_TCP 1 -#define TCP_TTL 255 - -/* Controls if TCP should queue segments that arrive out of - order. Define to 0 if your device is low on memory. */ -#define TCP_QUEUE_OOSEQ 1 - -/* TCP Maximum segment size. */ -#define TCP_MSS 1460 - -/* TCP sender buffer space (bytes). */ -#define TCP_SND_BUF ( TCP_MSS * 2 ) - -/* TCP sender buffer space (pbufs). This must be at least = 2 * - TCP_SND_BUF/TCP_MSS for things to work. */ -#define TCP_SND_QUEUELEN (4 * TCP_SND_BUF/TCP_MSS) - -/* TCP writable space (bytes). This must be less than or equal - to TCP_SND_BUF. It is the amount of space which must be - available in the tcp snd_buf for select to return writable */ -#define TCP_SNDLOWAT (TCP_SND_BUF/2) - -/* TCP receive window. */ -#define TCP_WND ( PBUF_POOL_SIZE * PBUF_POOL_BUFSIZE ) - -/* Maximum number of retransmissions of data segments. */ -#define TCP_MAXRTX 12 - -/* Maximum number of retransmissions of SYN segments. */ -#define TCP_SYNMAXRTX 4 - - -/* ---------- ARP options ---------- */ -#define LWIP_ARP 1 -#define ARP_TABLE_SIZE 10 -#define ARP_QUEUEING 1 - - -/* ---------- IP options ---------- */ -/* Define IP_FORWARD to 1 if you wish to have the ability to forward - IP packets across network interfaces. If you are going to run lwIP - on a device with only one network interface, define this to 0. */ -#define IP_FORWARD 0 - -/* IP reassembly and segmentation.These are orthogonal even - * if they both deal with IP fragments */ -#define IP_REASSEMBLY 0 -#define IP_REASS_MAX_PBUFS 10 -#define MEMP_NUM_REASSDATA 10 -#define IP_FRAG 0 - - -/* ---------- ICMP options ---------- */ -#define ICMP_TTL 255 - - -/* ---------- DHCP options ---------- */ -/* Define LWIP_DHCP to 1 if you want DHCP configuration of - interfaces. */ -#define LWIP_DHCP 0 - -/* 1 if you want to do an ARP check on the offered address - (recommended). */ -#define DHCP_DOES_ARP_CHECK (LWIP_DHCP) - - -/* ---------- AUTOIP options ------- */ -#define LWIP_AUTOIP 0 -#define LWIP_DHCP_AUTOIP_COOP (LWIP_DHCP && LWIP_AUTOIP) - - -/* ---------- UDP options ---------- */ -#define LWIP_UDP 1 -#define LWIP_UDPLITE 1 -#define UDP_TTL 255 - - -/* ---------- Statistics options ---------- */ - -#define LWIP_STATS 1 -#define LWIP_STATS_DISPLAY 0 - -#if LWIP_STATS - #define LINK_STATS 1 - #define IP_STATS 1 - #define ICMP_STATS 0 - #define IGMP_STATS 0 - #define IPFRAG_STATS 0 - #define UDP_STATS 1 - #define TCP_STATS 1 - #define MEM_STATS 1 - #define MEMP_STATS 1 - #define PBUF_STATS 1 - #define SYS_STATS 1 -#endif /* LWIP_STATS */ - - -/* ---------- PPP options ---------- */ - -#define PPP_SUPPORT 0 /* Set > 0 for PPP */ - -#if PPP_SUPPORT - - #define NUM_PPP 1 /* Max PPP sessions. */ - - /* Select modules to enable. Ideally these would be set in the makefile but - * we're limited by the command line length so you need to modify the settings - * in this file. - */ - #define PPPOE_SUPPORT 1 - #define PPPOS_SUPPORT 1 - #define PAP_SUPPORT 1 /* Set > 0 for PAP. */ - #define CHAP_SUPPORT 1 /* Set > 0 for CHAP. */ - #define MSCHAP_SUPPORT 0 /* Set > 0 for MSCHAP (NOT FUNCTIONAL!) */ - #define CBCP_SUPPORT 0 /* Set > 0 for CBCP (NOT FUNCTIONAL!) */ - #define CCP_SUPPORT 0 /* Set > 0 for CCP (NOT FUNCTIONAL!) */ - #define VJ_SUPPORT 1 /* Set > 0 for VJ header compression. */ - #define MD5_SUPPORT 1 /* Set > 0 for MD5 (see also CHAP) */ - -#endif /* PPP_SUPPORT */ - -#endif /* __LWIPOPTS_H__ */ diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c deleted file mode 100644 index e93a8a093..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-blinky.c +++ /dev/null @@ -1,546 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* - * main-blinky.c is included when the "Blinky" build configuration is used. - * main-full.c is included when the "Full" build configuration is used. - * - * main-blinky.c (this file) defines a very simple demo that creates two tasks, - * one queue, and one timer. It also demonstrates how MicroBlaze interrupts - * can interact with FreeRTOS tasks/timers. - * - * This simple demo project was developed and tested on the Spartan-6 SP605 - * development board, using the hardware configuration found in the hardware - * project that is already included in the Eclipse project. - * - * The idle hook function: - * The idle hook function demonstrates how to query the amount of FreeRTOS heap - * space that is remaining (see vApplicationIdleHook() defined in this file). - * - * The main() Function: - * main() creates one software timer, one queue, and two tasks. It then starts - * the scheduler. - * - * The Queue Send Task: - * The queue send task is implemented by the prvQueueSendTask() function in - * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly - * block for 200 milliseconds, before sending the value 100 to the queue that - * was created within main(). Once the value is sent, the task loops back - * around to block for another 200 milliseconds. - * - * The Queue Receive Task: - * The queue receive task is implemented by the prvQueueReceiveTask() function - * in this file. prvQueueReceiveTask() sits in a loop that causes it to - * repeatedly attempt to read data from the queue that was created within - * main(). When data is received, the task checks the value of the data, and - * if the value equals the expected 100, toggles an LED. The 'block time' - * parameter passed to the queue receive function specifies that the task - * should be held in the Blocked state indefinitely to wait for data to be - * available on the queue. The queue receive task will only leave the Blocked - * state when the queue send task writes to the queue. As the queue send task - * writes to the queue every 200 milliseconds, the queue receive task leaves - * the Blocked state every 200 milliseconds, and therefore toggles the LED - * every 200 milliseconds. - * - * The LED Software Timer and the Button Interrupt: - * The user buttons are configured to generate an interrupt each time one is - * pressed. The interrupt service routine switches an LED on, and resets the - * LED software timer. The LED timer has a 5000 millisecond (5 second) period, - * and uses a callback function that is defined to just turn the LED off again. - * Therefore, pressing the user button will turn the LED on, and the LED will - * remain on until a full five seconds pass without the button being pressed. - */ - -/* Kernel includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "queue.h" -#include "timers.h" - -/* BSP includes. */ -#include "xtmrctr.h" -#include "xgpio.h" - -/* Priorities at which the tasks are created. */ -#define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) - -/* The rate at which data is sent to the queue, specified in milliseconds, and -converted to ticks using the portTICK_PERIOD_MS constant. */ -#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS ) - -/* The number of items the queue can hold. This is 1 as the receive task -will remove items as they are added because it has the higher priority, meaning -the send task should always find the queue empty. */ -#define mainQUEUE_LENGTH ( 1 ) - -/* The LED toggled by the queue receive task. */ -#define mainTASK_CONTROLLED_LED 0x01UL - -/* The LED turned on by the button interrupt, and turned off by the LED timer. */ -#define mainTIMER_CONTROLLED_LED 0x02UL - -/* A block time of 0 simply means, "don't block". */ -#define mainDONT_BLOCK ( TickType_t ) 0 - -/*-----------------------------------------------------------*/ - -/* - * Setup the NVIC, LED outputs, and button inputs. - */ -static void prvSetupHardware( void ); - -/* - * The tasks as described in the comments at the top of this file. - */ -static void prvQueueReceiveTask( void *pvParameters ); -static void prvQueueSendTask( void *pvParameters ); - -/* - * The LED timer callback function. This does nothing but switch off the - * LED defined by the mainTIMER_CONTROLLED_LED constant. - */ -static void vLEDTimerCallback( TimerHandle_t xTimer ); - -/* - * The handler executed each time a button interrupt is generated. This ensures - * the LED defined by mainTIMER_CONTROLLED_LED is on, and resets the timer so - * the timer will not turn the LED off for a full 5 seconds after the button - * interrupt occurred. - */ -static void prvButtonInputInterruptHandler( void *pvUnused ); - -/*-----------------------------------------------------------*/ - -/* The queue used by the queue send and queue receive tasks. */ -static QueueHandle_t xQueue = NULL; - -/* The LED software timer. This uses vLEDTimerCallback() as its callback -function. */ -static TimerHandle_t xLEDTimer = NULL; - -/* Maintains the current LED output state. */ -static volatile unsigned char ucGPIOState = 0U; - -/*-----------------------------------------------------------*/ - -/* Structures that hold the state of the various peripherals used by this demo. -These are used by the Xilinx peripheral driver API functions. */ -static XTmrCtr xTimer0Instance; -static XGpio xOutputGPIOInstance, xInputGPIOInstance; - -/* Constants required by the Xilinx peripheral driver API functions that are -relevant to the particular hardware set up. */ -static const unsigned long ulGPIOOutputChannel = 1UL, ulGPIOInputChannel = 1UL; - -/*-----------------------------------------------------------*/ - -int main( void ) -{ - /* ************************************************************************* - This is a very simple project suitable for getting started with FreeRTOS. - If you would prefer a more complex project that demonstrates a lot more - features and tests, then select the 'Full' build configuration within the - SDK Eclipse IDE. - ***************************************************************************/ - - /* Configure the interrupt controller, LED outputs and button inputs. */ - prvSetupHardware(); - - /* Create the queue used by the queue send and queue receive tasks as - described in the comments at the top of this file. */ - xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); - - /* Sanity check that the queue was created. */ - configASSERT( xQueue ); - - /* Start the two tasks as described in the comments at the top of this - file. */ - xTaskCreate( prvQueueReceiveTask, "Rx", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_RECEIVE_TASK_PRIORITY, NULL ); - xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL ); - - /* Create the software timer that is responsible for turning off the LED - if the button is not pushed within 5000ms, as described at the top of - this file. The timer is not actually started until a button interrupt is - pushed, as it is not until that point that the LED is turned on. */ - xLEDTimer = xTimerCreate( "LEDTimer", /* A text name, purely to help debugging. */ - ( 5000 / portTICK_PERIOD_MS ),/* The timer period, in this case 5000ms (5s). */ - pdFALSE, /* This is a one shot timer, so xAutoReload is set to pdFALSE. */ - ( void * ) 0, /* The ID is not used, so can be set to anything. */ - vLEDTimerCallback /* The callback function that switches the LED off. */ - ); - - /* Start the tasks and timer running. */ - vTaskStartScheduler(); - - /* If all is well, the scheduler will now be running, and the following line - will never be reached. If the following line does execute, then there was - insufficient FreeRTOS heap memory available for the idle and/or timer tasks - to be created. See the memory management section on the FreeRTOS web site - for more details. */ - for( ;; ); -} -/*-----------------------------------------------------------*/ - -/* The callback is executed when the LED timer expires. */ -static void vLEDTimerCallback( TimerHandle_t xTimer ) -{ - /* The timer has expired - so no button pushes have occurred in the last - five seconds - turn the LED off. NOTE - accessing the LED port should use - a critical section because it is accessed from multiple tasks, and the - button interrupt - in this trivial case, for simplicity, the critical - section is omitted. */ - ucGPIOState &= ~mainTIMER_CONTROLLED_LED; - XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState ); -} -/*-----------------------------------------------------------*/ - -/* The ISR is executed when the user button is pushed. */ -static void prvButtonInputInterruptHandler( void *pvUnused ) -{ -long lHigherPriorityTaskWoken = pdFALSE; - - /* The button was pushed, so ensure the LED is on before resetting the - LED timer. The LED timer will turn the LED off if the button is not - pushed within 5000ms. */ - ucGPIOState |= mainTIMER_CONTROLLED_LED; - XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState ); - - /* Ensure only the ISR safe reset API function is used, as this is executed - in an interrupt context. */ - xTimerResetFromISR( xLEDTimer, &lHigherPriorityTaskWoken ); - - /* Clear the interrupt before leaving. */ - XGpio_InterruptClear( &xInputGPIOInstance, ulGPIOInputChannel ); - - /* If calling xTimerResetFromISR() caused a task (in this case the timer - service/daemon task) to unblock, and the unblocked task has a priority - higher than or equal to the task that was interrupted, then - lHigherPriorityTaskWoken will now be set to pdTRUE, and calling - portEND_SWITCHING_ISR() will ensure the unblocked task runs next. */ - portYIELD_FROM_ISR( lHigherPriorityTaskWoken ); -} -/*-----------------------------------------------------------*/ - -static void prvQueueSendTask( void *pvParameters ) -{ -TickType_t xNextWakeTime; -const unsigned long ulValueToSend = 100UL; - - /* Initialise xNextWakeTime - this only needs to be done once. */ - xNextWakeTime = xTaskGetTickCount(); - - for( ;; ) - { - /* Place this task in the blocked state until it is time to run again. - The block time is specified in ticks, the constant used converts ticks - to ms. While in the Blocked state this task will not consume any CPU - time. */ - vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS ); - - /* Send to the queue - causing the queue receive task to unblock and - toggle an LED. 0 is used as the block time so the sending operation - will not block - it shouldn't need to block as the queue should always - be empty at this point in the code. */ - xQueueSend( xQueue, &ulValueToSend, mainDONT_BLOCK ); - } -} -/*-----------------------------------------------------------*/ - -static void prvQueueReceiveTask( void *pvParameters ) -{ -unsigned long ulReceivedValue; - - for( ;; ) - { - /* Wait until something arrives in the queue - this task will block - indefinitely provided INCLUDE_vTaskSuspend is set to 1 in - FreeRTOSConfig.h. */ - xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); - - /* To get here something must have been received from the queue, but - is it the expected value? If it is, toggle the green LED. */ - if( ulReceivedValue == 100UL ) - { - /* NOTE - accessing the LED port should use a critical section - because it is accessed from multiple tasks, and the button interrupt - - in this trivial case, for simplicity, the critical section is - omitted. */ - if( ( ucGPIOState & mainTASK_CONTROLLED_LED ) != 0 ) - { - ucGPIOState &= ~mainTASK_CONTROLLED_LED; - } - else - { - ucGPIOState |= mainTASK_CONTROLLED_LED; - } - - XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState ); - } - } -} -/*-----------------------------------------------------------*/ - -static void prvSetupHardware( void ) -{ -portBASE_TYPE xStatus; -const unsigned char ucSetToOutput = 0U; - - /* Initialize the GPIO for the LEDs. */ - xStatus = XGpio_Initialize( &xOutputGPIOInstance, XPAR_LEDS_4BITS_DEVICE_ID ); - if( xStatus == XST_SUCCESS ) - { - /* All bits on this channel are going to be outputs (LEDs). */ - XGpio_SetDataDirection( &xOutputGPIOInstance, ulGPIOOutputChannel, ucSetToOutput ); - - /* Start with all LEDs off. */ - ucGPIOState = 0U; - XGpio_DiscreteWrite( &xOutputGPIOInstance, ulGPIOOutputChannel, ucGPIOState ); - } - - /* Initialise the GPIO for the button inputs. */ - if( xStatus == XST_SUCCESS ) - { - xStatus = XGpio_Initialize( &xInputGPIOInstance, XPAR_PUSH_BUTTONS_4BITS_DEVICE_ID ); - } - - if( xStatus == XST_SUCCESS ) - { - /* Install the handler defined in this task for the button input. - *NOTE* The FreeRTOS defined xPortInstallInterruptHandler() API function - must be used for this purpose. */ - xStatus = xPortInstallInterruptHandler( XPAR_MICROBLAZE_0_INTC_PUSH_BUTTONS_4BITS_IP2INTC_IRPT_INTR, prvButtonInputInterruptHandler, NULL ); - - if( xStatus == pdPASS ) - { - /* Set buttons to input. */ - XGpio_SetDataDirection( &xInputGPIOInstance, ulGPIOInputChannel, ~( ucSetToOutput ) ); - - /* Enable the button input interrupts in the interrupt controller. - *NOTE* The vPortEnableInterrupt() API function must be used for this - purpose. */ - vPortEnableInterrupt( XPAR_MICROBLAZE_0_INTC_PUSH_BUTTONS_4BITS_IP2INTC_IRPT_INTR ); - - /* Enable GPIO channel interrupts. */ - XGpio_InterruptEnable( &xInputGPIOInstance, ulGPIOInputChannel ); - XGpio_InterruptGlobalEnable( &xInputGPIOInstance ); - } - } - - configASSERT( ( xStatus == pdPASS ) ); -} -/*-----------------------------------------------------------*/ - -void vApplicationMallocFailedHook( void ) -{ - /* vApplicationMallocFailedHook() will only be called if - configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook - function that will get called if a call to pvPortMalloc() fails. - pvPortMalloc() is called internally by the kernel whenever a task, queue or - semaphore is created. It is also called by various parts of the demo - application. If heap_1.c or heap_2.c are used, then the size of the heap - available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in - FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used - to query the size of free heap space that remains (although it does not - provide information on how the remaining heap might be fragmented). */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ) -{ - ( void ) pcTaskName; - ( void ) pxTask; - - /* vApplicationStackOverflowHook() will only be called if - configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2. The handle and name - of the offending task will be passed into the hook function via its - parameters. However, when a stack has overflowed, it is possible that the - parameters will have been corrupted, in which case the pxCurrentTCB variable - can be inspected directly. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationIdleHook( void ) -{ -#ifdef EXAMPLE_CODE_ONLY - - The following code can only be included if heap_1.c or heap_2.c is used in - the project. By default, heap_3.c is used, so the example code is - excluded. See http://www.freertos.org/a00111.html for more information on - memory management options. - - volatile size_t xFreeHeapSpace; - - /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set - to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle - task. It is essential that code added to this hook function never attempts - to block in any way (for example, call xQueueReceive() with a block time - specified, or call vTaskDelay()). If the application makes use of the - vTaskDelete() API function (as this demo application does) then it is also - important that vApplicationIdleHook() is permitted to return to its calling - function, because it is the responsibility of the idle task to clean up - memory allocated by the kernel to any task that has since been deleted. */ - - /* This implementation of vApplicationIdleHook() simply demonstrates how - the xPortGetFreeHeapSize() function can be used. */ - xFreeHeapSpace = xPortGetFreeHeapSize(); - - if( xFreeHeapSpace > 100 ) - { - /* By now, the kernel has allocated everything it is going to, so - if there is a lot of heap remaining unallocated then - the value of configTOTAL_HEAP_SIZE in FreeRTOSConfig.h can be - reduced accordingly. */ - } -#endif -} -/*-----------------------------------------------------------*/ - -/* This is an application defined callback function used to install the tick -interrupt handler. It is provided as an application callback because the kernel -will run on lots of different MicroBlaze and FPGA configurations - not all of -which will have the same timer peripherals defined or available. This example -uses the AXI Timer 0. If that is available on your hardware platform then this -example callback implementation should not require modification. The name of -the interrupt handler that should be installed is vPortTickISR(), which the -function below declares as an extern. */ -void vApplicationSetupTimerInterrupt( void ) -{ -portBASE_TYPE xStatus; -const unsigned char ucTimerCounterNumber = ( unsigned char ) 0U; -const unsigned long ulCounterValue = ( ( XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ / configTICK_RATE_HZ ) - 1UL ); -extern void vPortTickISR( void *pvUnused ); - - /* Initialise the timer/counter. */ - xStatus = XTmrCtr_Initialize( &xTimer0Instance, XPAR_AXI_TIMER_0_DEVICE_ID ); - - if( xStatus == XST_SUCCESS ) - { - /* Install the tick interrupt handler as the timer ISR. - *NOTE* The xPortInstallInterruptHandler() API function must be used for - this purpose. */ - xStatus = xPortInstallInterruptHandler( XPAR_INTC_0_TMRCTR_0_VEC_ID, vPortTickISR, NULL ); - } - - if( xStatus == pdPASS ) - { - /* Enable the timer interrupt in the interrupt controller. - *NOTE* The vPortEnableInterrupt() API function must be used for this - purpose. */ - vPortEnableInterrupt( XPAR_INTC_0_TMRCTR_0_VEC_ID ); - - /* Configure the timer interrupt handler. */ - XTmrCtr_SetHandler( &xTimer0Instance, ( void * ) vPortTickISR, NULL ); - - /* Set the correct period for the timer. */ - XTmrCtr_SetResetValue( &xTimer0Instance, ucTimerCounterNumber, ulCounterValue ); - - /* Enable the interrupts. Auto-reload mode is used to generate a - periodic tick. Note that interrupts are disabled when this function is - called, so interrupts will not start to be processed until the first - task has started to run. */ - XTmrCtr_SetOptions( &xTimer0Instance, ucTimerCounterNumber, ( XTC_INT_MODE_OPTION | XTC_AUTO_RELOAD_OPTION | XTC_DOWN_COUNT_OPTION ) ); - - /* Start the timer. */ - XTmrCtr_Start( &xTimer0Instance, ucTimerCounterNumber ); - } - - /* Sanity check that the function executed as expected. */ - configASSERT( ( xStatus == pdPASS ) ); -} -/*-----------------------------------------------------------*/ - -/* This is an application defined callback function used to clear whichever -interrupt was installed by the the vApplicationSetupTimerInterrupt() callback -function - in this case the interrupt generated by the AXI timer. It is -provided as an application callback because the kernel will run on lots of -different MicroBlaze and FPGA configurations - not all of which will have the -same timer peripherals defined or available. This example uses the AXI Timer 0. -If that is available on your hardware platform then this example callback -implementation should not require modification provided the example definition -of vApplicationSetupTimerInterrupt() is also not modified. */ -void vApplicationClearTimerInterrupt( void ) -{ -unsigned long ulCSR; - - /* Clear the timer interrupt */ - ulCSR = XTmrCtr_GetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0 ); - XTmrCtr_SetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0, ulCSR ); -} -/*-----------------------------------------------------------*/ - -/* These functions are not used by the Blinky build configuration. However, -they need to be defined because the Blinky and Full build configurations share -a FreeRTOSConifg.h configuration file. */ -void vMainConfigureTimerForRunTimeStats( void ) {} -unsigned long ulMainGetRunTimeCounterValue( void ) { return 1; } diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c deleted file mode 100644 index b1e23af56..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/main-full.c +++ /dev/null @@ -1,685 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* **************************************************************************** - * main-blinky.c is included when the "Blinky" build configuration is used. - * main-full.c is included when the "Full" build configuration is used. - * - * main-full.c creates a lot of demo and test tasks and timers, and is - * therefore very comprehensive but also complex. If you would prefer a much - * simpler project to get started with, then select the 'Blinky' build - * configuration within the SDK Eclipse IDE. See the documentation page for - * this demo on the http://www.FreeRTOS.org web site for more information. - * **************************************************************************** - * - * main() creates all the demo application tasks and timers, then starts the - * scheduler. The web documentation provides more details of the standard demo - * application tasks, which provide no particular functionality, but do provide - * a good example of how to use the FreeRTOS API. - * - * In addition to the standard demo tasks, the following tasks and tests are - * defined and/or created within this file: - * - * TCP/IP ("lwIP") task - lwIP is used to create a basic web server. The web - * server uses server side includes (SSI) to generate tables of task statistics, - * and run time statistics (run time statistics show how much processing time - * each task has consumed). See - * http://www.FreeRTOS.org/Free-RTOS-for-Xilinx-MicroBlaze-on-Spartan-6-FPGA.html - * for details on setting up and using the embedded web server. - * - * "Reg test" tasks - These test the task context switch mechanism by first - * filling the MicroBlaze registers with known values, before checking that each - * register maintains the value that was written to it as the tasks are switched - * in and out. The two register test tasks do not use the same values, and - * execute at a very low priority, to ensure they are pre-empted regularly. - * - * "Check" timer - The check timer period is initially set to five seconds. - * The check timer callback function checks that all the standard demo tasks, - * and the register check tasks, are not only still executing, but are executing - * without reporting any errors. If the check timer discovers that a task has - * either stalled, or reported an error, then it changes its own period from - * the initial five seconds, to just 200ms. The check timer callback function - * also toggles an LED each time it is called. This provides a visual - * indication of the system status: If the LED toggles every five seconds then - * no issues have been discovered. If the LED toggles every 200ms then an issue - * has been discovered with at least one task. The last reported issue is - * latched into the pcStatusMessage variable, and can also be viewed at the - * bottom of the pages served by the embedded web server. - * - * ***NOTE*** This demo uses the standard comtest tasks, which has special - * hardware requirements. See - * http://www.FreeRTOS.org/Free-RTOS-for-Xilinx-MicroBlaze-on-Spartan-6-FPGA.html - * for more information. - * - * This file also includes example implementations of the - * vApplicationIdleHook(), vApplicationStackOverflowHook(), - * vApplicationMallocFailedHook(), vApplicationClearTimerInterrupt(), and - * vApplicationSetupTimerInterrupt() callback (hook) functions. - */ - -/* Standard includes. */ -#include -#include - -/* BSP includes. */ -#include "xtmrctr.h" -#include "microblaze_exceptions_g.h" - -/* Kernel includes. */ -#include "FreeRTOS.h" -#include "task.h" -#include "timers.h" - -/* Standard demo includes. */ -#include "partest.h" -#include "flash.h" -#include "BlockQ.h" -#include "death.h" -#include "blocktim.h" -#include "semtest.h" -#include "PollQ.h" -#include "GenQTest.h" -#include "QPeek.h" -#include "recmutex.h" -#include "flop.h" -#include "dynamic.h" -#include "comtest_strings.h" -#include "TimerDemo.h" - -/* lwIP includes. */ -#include "lwip/tcpip.h" - - -/* Priorities at which the various tasks are created. */ -#define mainQUEUE_POLL_PRIORITY ( tskIDLE_PRIORITY + 1 ) -#define mainSEM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainBLOCK_Q_PRIORITY ( tskIDLE_PRIORITY + 1 ) -#define mainCREATOR_TASK_PRIORITY ( tskIDLE_PRIORITY + 3 ) -#define mainFLASH_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) -#define mainCOM_TEST_PRIORITY ( tskIDLE_PRIORITY + 2 ) -#define mainINTEGER_TASK_PRIORITY ( tskIDLE_PRIORITY ) -#define mainGEN_QUEUE_TASK_PRIORITY ( tskIDLE_PRIORITY ) -#define mainFLOP_TASK_PRIORITY ( tskIDLE_PRIORITY ) - -/* The LED toggled by the check task. */ -#define mainCHECK_LED ( 3 ) - -/* The rate at which mainCHECK_LED will toggle when all the tasks are running -without error. See the description of the check timer in the comments at the -top of this file. */ -#define mainNO_ERROR_CHECK_TIMER_PERIOD ( 5000 / portTICK_PERIOD_MS ) - -/* The rate at which mainCHECK_LED will toggle when an error has been reported -by at least one task. See the description of the check timer in the comments at -the top of this file. */ -#define mainERROR_CHECK_TIMER_PERIOD ( 200 / portTICK_PERIOD_MS ) - -/* A block time of zero simply means "don't block". */ -#define mainDONT_BLOCK ( ( TickType_t ) 0 ) - -/* The LED used by the comtest tasks. See the comtest_strings.c file for more -information. In this case an invalid LED number is provided as all four -available LEDs (LEDs 0 to 3) are already in use. */ -#define mainCOM_TEST_LED ( 4 ) - -/* Baud rate used by the comtest tasks. The baud rate used is actually fixed in -UARTLite IP when the hardware was built, but the standard serial init function -required a baud rate parameter to be provided - in this case it is just -ignored. */ -#define mainCOM_TEST_BAUD_RATE ( XPAR_RS232_UART_1_BAUDRATE ) - -/* The timer test task generates a lot of timers that all use a different -period that is a multiple of the mainTIMER_TEST_PERIOD definition. */ -#define mainTIMER_TEST_PERIOD ( 20 ) - -/*-----------------------------------------------------------*/ - -/* - * The register test tasks as described in the comments at the top of this file. - * The nature of the register test tasks means they have to be implemented in - * assembler. - */ -extern void vRegisterTest1( void *pvParameters ); -extern void vRegisterTest2( void *pvParameters ); - -/* - * Defines the 'check' timer functionality as described at the top of this file. - * This function is the callback function associated with the 'check' timer. - */ -static void vCheckTimerCallback( TimerHandle_t xTimer ); - -/* - * Configure the interrupt controller, LED outputs and button inputs. - */ -static void prvSetupHardware( void ); - -/* Defined in lwIPApps.c. */ -extern void lwIPAppsInit( void *pvArguments ); - -/*-----------------------------------------------------------*/ - -/* The check timer callback function sets pcStatusMessage to a string that -indicates the last reported error that it discovered. */ -static const char *pcStatusMessage = NULL; - -/* Structures that hold the state of the various peripherals used by this demo. -These are used by the Xilinx peripheral driver API functions. In this case, -only the timer/counter is used directly within this file. */ -static XTmrCtr xTimer0Instance; - -/* The 'check' timer, as described at the top of this file. */ -static TimerHandle_t xCheckTimer = NULL; - -/* Used in the run time stats calculations. */ -static unsigned long ulClocksPer10thOfAMilliSecond = 0UL; - -/* Constants used to set up the AXI timer to generate ticks. */ -static const unsigned char ucTimerCounterNumber = ( unsigned char ) 0U; -static const unsigned long ulCounterReloadValue = ( ( XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ / configTICK_RATE_HZ ) - 1UL ); - -/*-----------------------------------------------------------*/ - -int main( void ) -{ - /*************************************************************************** - This project includes a lot of demo and test tasks and timers, and is - therefore comprehensive, but complex. If you would prefer a much simpler - project to get started with, then select the 'Blinky' build configuration - within the SDK Eclipse IDE. - ***************************************************************************/ - - /* Configure the interrupt controller, LED outputs and button inputs. */ - prvSetupHardware(); - - /* This call creates the TCP/IP thread. */ - tcpip_init( lwIPAppsInit, NULL ); - - /* Start the reg test tasks, as described in the comments at the top of this - file. */ - xTaskCreate( vRegisterTest1, "RegTst1", configMINIMAL_STACK_SIZE, ( void * ) 0, tskIDLE_PRIORITY, NULL ); - xTaskCreate( vRegisterTest2, "RegTst2", configMINIMAL_STACK_SIZE, ( void * ) 0, tskIDLE_PRIORITY, NULL ); - - /* Create the standard demo tasks. */ - vStartBlockingQueueTasks( mainBLOCK_Q_PRIORITY ); - vCreateBlockTimeTasks(); - vStartSemaphoreTasks( mainSEM_TEST_PRIORITY ); - vStartPolledQueueTasks( mainQUEUE_POLL_PRIORITY ); - vStartGenericQueueTasks( mainGEN_QUEUE_TASK_PRIORITY ); - vStartLEDFlashTasks( mainFLASH_TASK_PRIORITY ); - vStartQueuePeekTasks(); - vStartRecursiveMutexTasks(); - vStartComTestStringsTasks( mainCOM_TEST_PRIORITY, mainCOM_TEST_BAUD_RATE, mainCOM_TEST_LED ); - vStartDynamicPriorityTasks(); - vStartTimerDemoTask( mainTIMER_TEST_PERIOD ); - - /* Note - the set of standard demo tasks contains two versions of - vStartMathTasks.c. One is defined in flop.c, and uses double precision - floating point numbers and variables. The other is defined in sp_flop.c, - and uses single precision floating point numbers and variables. The - MicroBlaze floating point unit only handles single precision floating. - Therefore, to test the floating point hardware, sp_flop.c should be included - in this project. */ - vStartMathTasks( mainFLOP_TASK_PRIORITY ); - - /* The suicide tasks must be created last as they need to know how many - tasks were running prior to their creation. This then allows them to - ascertain whether or not the correct/expected number of tasks are running at - any given time. */ - vCreateSuicidalTasks( mainCREATOR_TASK_PRIORITY ); - - /* Create the 'check' timer - the timer that periodically calls the - check function as described in the comments at the top of this file. Note - that, for reasons stated in the comments within vApplicationIdleHook() - (defined in this file), the check timer is not actually started until after - the scheduler has been started. */ - xCheckTimer = xTimerCreate( "Check timer", mainNO_ERROR_CHECK_TIMER_PERIOD, pdTRUE, ( void * ) 0, vCheckTimerCallback ); - - /* Start the scheduler running. From this point on, only tasks and - interrupts will be executing. */ - vTaskStartScheduler(); - - /* If all is well then the following line will never be reached. If - execution does reach here, then it is highly probably that the heap size - is too small for the idle and/or timer tasks to be created within - vTaskStartScheduler(). */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -static void vCheckTimerCallback( TimerHandle_t xTimer ) -{ -extern unsigned long ulRegTest1CycleCount, ulRegTest2CycleCount; -static volatile unsigned long ulLastRegTest1CycleCount = 0UL, ulLastRegTest2CycleCount = 0UL; -static long lErrorAlreadyLatched = pdFALSE; -TickType_t xExecutionRate = mainNO_ERROR_CHECK_TIMER_PERIOD; - - /* This is the callback function used by the 'check' timer, as described - in the comments at the top of this file. */ - - /* Don't overwrite any errors that have already been latched. */ - if( pcStatusMessage == NULL ) - { - /* Check the standard demo tasks are running without error. */ - if( xAreGenericQueueTasksStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: GenQueue"; - } - else if( xAreQueuePeekTasksStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: QueuePeek\r\n"; - } - else if( xAreBlockingQueuesStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: BlockQueue\r\n"; - } - else if( xAreBlockTimeTestTasksStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: BlockTime\r\n"; - } - else if( xAreSemaphoreTasksStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: SemTest\r\n"; - } - else if( xArePollingQueuesStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: PollQueue\r\n"; - } - else if( xIsCreateTaskStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: Death\r\n"; - } - else if( xAreRecursiveMutexTasksStillRunning() != pdTRUE ) - { - pcStatusMessage = "Error: RecMutex\r\n"; - } - else if( xAreMathsTaskStillRunning() != pdPASS ) - { - pcStatusMessage = "Error: Flop\r\n"; - } - else if( xAreComTestTasksStillRunning() != pdPASS ) - { - pcStatusMessage = "Error: Comtest\r\n"; - } - else if( xAreDynamicPriorityTasksStillRunning() != pdPASS ) - { - pcStatusMessage = "Error: Dynamic\r\n"; - } - else if( xAreTimerDemoTasksStillRunning( xExecutionRate ) != pdTRUE ) - { - pcStatusMessage = "Error: TimerDemo"; - } - else if( ulRegTest1CycleCount == ulLastRegTest1CycleCount ) - { - /* Check the reg test tasks are still cycling. They will stop - incrementing their loop counters if they encounter an error. */ - pcStatusMessage = "Error: RegTest1\r\n"; - } - else if( ulRegTest2CycleCount == ulLastRegTest2CycleCount ) - { - pcStatusMessage = "Error: RegTest2\r\n"; - } - } - - /* Store a local copy of the current reg test loop counters. If these have - not incremented the next time this callback function is executed then the - reg test tasks have either stalled or discovered an error. */ - ulLastRegTest1CycleCount = ulRegTest1CycleCount; - ulLastRegTest2CycleCount = ulRegTest2CycleCount; - - /* Toggle the check LED to give an indication of the system status. If - the LED toggles every 5 seconds then everything is ok. A faster toggle - indicates an error. */ - vParTestToggleLED( mainCHECK_LED ); - - if( pcStatusMessage != NULL ) - { - if( lErrorAlreadyLatched == pdFALSE ) - { - /* An error has occurred, so change the period of the timer that - calls this callback function. This results in the LED toggling at - a faster rate - giving the user visual feedback that something is not - as it should be. This function is called from the context of the - timer service task so must ***not*** attempt to block while calling - this function. */ - if( xTimerChangePeriod( xTimer, mainERROR_CHECK_TIMER_PERIOD, mainDONT_BLOCK ) == pdPASS ) - { - /* If the command to change the timer period was sent to the - timer command queue successfully, then latch the fact that the - timer period has already been changed. This is just done to - prevent xTimerChangePeriod() being called on every execution of - this function once an error has been discovered. */ - lErrorAlreadyLatched = pdTRUE; - } - - /* Update the xExecutionRate variable too as the rate at which this - callback is executed has to be passed into the - xAreTimerDemoTasksStillRunning() function. */ - xExecutionRate = mainERROR_CHECK_TIMER_PERIOD; - } - } -} -/*-----------------------------------------------------------*/ - -/* This is an application defined callback function used to install the tick -interrupt handler. It is provided as an application callback because the kernel -will run on lots of different MicroBlaze and FPGA configurations - not all of -which will have the same timer peripherals defined or available. This example -uses the AXI Timer 0. If that is available on your hardware platform then this -example callback implementation should not require modification. The name of -the interrupt handler that should be installed is vPortTickISR(), which the -function below declares as an extern. */ -void vApplicationSetupTimerInterrupt( void ) -{ -portBASE_TYPE xStatus; -extern void vPortTickISR( void *pvUnused ); - - /* Initialise the timer/counter. */ - xStatus = XTmrCtr_Initialize( &xTimer0Instance, XPAR_AXI_TIMER_0_DEVICE_ID ); - - if( xStatus == XST_SUCCESS ) - { - /* Install the tick interrupt handler as the timer ISR. - *NOTE* The xPortInstallInterruptHandler() API function must be used for - this purpose. */ - xStatus = xPortInstallInterruptHandler( XPAR_INTC_0_TMRCTR_0_VEC_ID, vPortTickISR, NULL ); - } - - if( xStatus == pdPASS ) - { - /* Enable the timer interrupt in the interrupt controller. - *NOTE* The vPortEnableInterrupt() API function must be used for this - purpose. */ - vPortEnableInterrupt( XPAR_INTC_0_TMRCTR_0_VEC_ID ); - - /* Configure the timer interrupt handler. */ - XTmrCtr_SetHandler( &xTimer0Instance, ( void * ) vPortTickISR, NULL ); - - /* Set the correct period for the timer. */ - XTmrCtr_SetResetValue( &xTimer0Instance, ucTimerCounterNumber, ulCounterReloadValue ); - - /* Enable the interrupts. Auto-reload mode is used to generate a - periodic tick. Note that interrupts are disabled when this function is - called, so interrupts will not start to be processed until the first - task has started to run. */ - XTmrCtr_SetOptions( &xTimer0Instance, ucTimerCounterNumber, ( XTC_INT_MODE_OPTION | XTC_AUTO_RELOAD_OPTION | XTC_DOWN_COUNT_OPTION ) ); - - /* Start the timer. */ - XTmrCtr_Start( &xTimer0Instance, ucTimerCounterNumber ); - } - - /* Sanity check that the function executed as expected. */ - configASSERT( ( xStatus == pdPASS ) ); -} -/*-----------------------------------------------------------*/ - -/* This is an application defined callback function used to clear whichever -interrupt was installed by the the vApplicationSetupTimerInterrupt() callback -function - in this case the interrupt generated by the AXI timer. It is -provided as an application callback because the kernel will run on lots of -different MicroBlaze and FPGA configurations - not all of which will have the -same timer peripherals defined or available. This example uses the AXI Timer 0. -If that is available on your hardware platform then this example callback -implementation should not require modification provided the example definition -of vApplicationSetupTimerInterrupt() is also not modified. */ -void vApplicationClearTimerInterrupt( void ) -{ -unsigned long ulCSR; - - /* Clear the timer interrupt */ - ulCSR = XTmrCtr_GetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0 ); - XTmrCtr_SetControlStatusReg( XPAR_AXI_TIMER_0_BASEADDR, 0, ulCSR ); -} -/*-----------------------------------------------------------*/ - -void vApplicationMallocFailedHook( void ) -{ - /* vApplicationMallocFailedHook() will only be called if - configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook - function that will get called if a call to pvPortMalloc() fails. - pvPortMalloc() is called internally by the kernel whenever a task, queue or - semaphore is created. It is also called by various parts of the demo - application. If heap_1.c or heap_2.c are used, then the size of the heap - available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in - FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used - to query the size of free heap space that remains (although it does not - provide information on how the remaining heap might be fragmented). */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ) -{ - ( void ) pcTaskName; - ( void ) pxTask; - - /* vApplicationStackOverflowHook() will only be called if - configCHECK_FOR_STACK_OVERFLOW is set to either 1 or 2. The handle and name - of the offending task will be passed into the hook function via its - parameters. However, when a stack has overflowed, it is possible that the - parameters will have been corrupted, in which case the pxCurrentTCB variable - can be inspected directly. */ - taskDISABLE_INTERRUPTS(); - for( ;; ); -} -/*-----------------------------------------------------------*/ - -void vApplicationIdleHook( void ) -{ -static long lCheckTimerStarted = pdFALSE; - - /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set - to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle - task. It is essential that code added to this hook function never attempts - to block in any way (for example, call xQueueReceive() with a block time - specified, or call vTaskDelay()). If the application makes use of the - vTaskDelete() API function (as this demo application does) then it is also - important that vApplicationIdleHook() is permitted to return to its calling - function, because it is the responsibility of the idle task to clean up - memory allocated by the kernel to any task that has since been deleted. */ - - /* If the check timer has not already been started, then start it now. - Normally, the xTimerStart() API function can be called immediately after the - timer is created - how this demo application includes the timer demo tasks. - The timer demo tasks, as part of their test function, deliberately fill up - the timer command queue - meaning the check timer cannot be started until - after the scheduler has been started - at which point the timer command - queue will have been drained. */ - if( lCheckTimerStarted == pdFALSE ) - { - xTimerStart( xCheckTimer, mainDONT_BLOCK ); - lCheckTimerStarted = pdTRUE; - } -} -/*-----------------------------------------------------------*/ - -void vApplicationExceptionRegisterDump( xPortRegisterDump *xRegisterDump ) -{ - ( void ) xRegisterDump; - - /* If configINSTALL_EXCEPTION_HANDLERS is set to 1 in FreeRTOSConfig.h, then - the kernel will automatically install its own exception handlers before the - kernel is started, if the application writer has not already caused them to - be installed by calling either of the vPortExceptionsInstallHandlers() - or xPortInstallInterruptHandler() API functions before that time. The - kernels exception handler populates an xPortRegisterDump structure with - the processor state at the point that the exception was triggered - and also - includes a strings that say what the exception cause was and which task was - running at the time. The exception handler then passes the populated - xPortRegisterDump structure into vApplicationExceptionRegisterDump() to - allow the application writer to perform any debugging that may be necessary. - However, defining vApplicationExceptionRegisterDump() within the application - itself is optional. The kernel will use a default implementation if the - application writer chooses not to provide their own. */ - for( ;; ) - { - portNOP(); - } -} -/*-----------------------------------------------------------*/ - -static void prvSetupHardware( void ) -{ - taskDISABLE_INTERRUPTS(); - - /* Configure the LED outputs. */ - vParTestInitialise(); - - /* Tasks inherit the exception and cache configuration of the MicroBlaze - at the point that they are created. */ - #if MICROBLAZE_EXCEPTIONS_ENABLED == 1 - microblaze_enable_exceptions(); - #endif - - #if XPAR_MICROBLAZE_USE_ICACHE == 1 - microblaze_invalidate_icache(); - microblaze_enable_icache(); - #endif - - #if XPAR_MICROBLAZE_USE_DCACHE == 1 - microblaze_invalidate_dcache(); - microblaze_enable_dcache(); - #endif - -} -/*-----------------------------------------------------------*/ - -void vMainConfigureTimerForRunTimeStats( void ) -{ - /* How many times does the counter counter increment in 10ms? */ - ulClocksPer10thOfAMilliSecond = XPAR_AXI_TIMER_0_CLOCK_FREQ_HZ / 10000UL; -} -/*-----------------------------------------------------------*/ - -unsigned long ulMainGetRunTimeCounterValue( void ) -{ -unsigned long ulTimerCounts1, ulTimerCounts2, ulTickCount, ulReturn; - - /* NOTE: This can get called from a yield, in which case interrupts are - disabled, or from a tick ISR, in which case the effect is the same as if - interrupts were disabled. In either case, it is going to run atomically. */ - - /* The timer is in down count mode. How many clocks have passed since it - was last reloaded? */ - ulTimerCounts1 = ulCounterReloadValue - XTmrCtr_GetValue( &xTimer0Instance, ucTimerCounterNumber ); - - /* How many times has it overflowed? */ - ulTickCount = xTaskGetTickCountFromISR(); - - /* If this is being called from a yield, has the counter overflowed since - it was read? If that is the case then ulTickCounts will need incrementing - again as it will not yet have been incremented from the tick interrupt. */ - ulTimerCounts2 = ulCounterReloadValue - XTmrCtr_GetValue( &xTimer0Instance, ucTimerCounterNumber ); - if( ulTimerCounts2 < ulTimerCounts1 ) - { - /* There is a tick interrupt pending but the tick count not yet - incremented. */ - ulTickCount++; - - /* Use the second timer reading. */ - ulTimerCounts1 = ulTimerCounts2; - } - - /* Convert the tick count into tenths of a millisecond. THIS ASSUMES - configTICK_RATE_HZ is 1000! */ - ulReturn = ( ulTickCount * 10UL ); - - /* Add on the number of tenths of a millisecond that have passed since the - tick count last got updated. */ - ulReturn += ( ulTimerCounts1 / ulClocksPer10thOfAMilliSecond ); - - /* Some crude rounding. */ - if( ( ulTimerCounts1 % ulClocksPer10thOfAMilliSecond ) > ( ulClocksPer10thOfAMilliSecond >> 1UL ) ) - { - ulReturn++; - } - - return ulReturn; -} -/*-----------------------------------------------------------*/ - -char *pcMainGetTaskStatusMessage( void ) -{ -char * pcReturn; - - if( pcStatusMessage == NULL ) - { - pcReturn = ( char * ) "OK"; - } - else - { - pcReturn = ( char * ) pcStatusMessage; - } - - return pcReturn; -} - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c deleted file mode 100644 index e93d97b39..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/printf-stdarg.c +++ /dev/null @@ -1,282 +0,0 @@ -/* - Copyright 2001, 2002 Georges Menie (www.menie.org) - stdarg version contributed by Christian Ettinger - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -/* - putchar is the only external dependency for this file, - if you have a working putchar, leave it commented out. - If not, uncomment the define below and - replace outbyte(c) by your own function call. - -#define putchar(c) outbyte(c) -*/ - -#include - -static void printchar(char **str, int c) -{ - extern int putchar(int c); - - if (str) { - **str = c; - ++(*str); - } - else (void)putchar(c); -} - -#define PAD_RIGHT 1 -#define PAD_ZERO 2 - -static int prints(char **out, const char *string, int width, int pad) -{ - register int pc = 0, padchar = ' '; - - if (width > 0) { - register int len = 0; - register const char *ptr; - for (ptr = string; *ptr; ++ptr) ++len; - if (len >= width) width = 0; - else width -= len; - if (pad & PAD_ZERO) padchar = '0'; - } - if (!(pad & PAD_RIGHT)) { - for ( ; width > 0; --width) { - printchar (out, padchar); - ++pc; - } - } - for ( ; *string ; ++string) { - printchar (out, *string); - ++pc; - } - for ( ; width > 0; --width) { - printchar (out, padchar); - ++pc; - } - - return pc; -} - -/* the following should be enough for 32 bit int */ -#define PRINT_BUF_LEN 12 - -static int printi(char **out, int i, int b, int sg, int width, int pad, int letbase) -{ - char print_buf[PRINT_BUF_LEN]; - register char *s; - register int t, neg = 0, pc = 0; - register unsigned int u = i; - - if (i == 0) { - print_buf[0] = '0'; - print_buf[1] = '\0'; - return prints (out, print_buf, width, pad); - } - - if (sg && b == 10 && i < 0) { - neg = 1; - u = -i; - } - - s = print_buf + PRINT_BUF_LEN-1; - *s = '\0'; - - while (u) { - t = u % b; - if( t >= 10 ) - t += letbase - '0' - 10; - *--s = t + '0'; - u /= b; - } - - if (neg) { - if( width && (pad & PAD_ZERO) ) { - printchar (out, '-'); - ++pc; - --width; - } - else { - *--s = '-'; - } - } - - return pc + prints (out, s, width, pad); -} - -static int print( char **out, const char *format, va_list args ) -{ - register int width, pad; - register int pc = 0; - char scr[2]; - - for (; *format != 0; ++format) { - if (*format == '%') { - ++format; - width = pad = 0; - if (*format == '\0') break; - if (*format == '%') goto out; - if (*format == '-') { - ++format; - pad = PAD_RIGHT; - } - while (*format == '0') { - ++format; - pad |= PAD_ZERO; - } - for ( ; *format >= '0' && *format <= '9'; ++format) { - width *= 10; - width += *format - '0'; - } - if( *format == 's' ) { - register char *s = (char *)va_arg( args, int ); - pc += prints (out, s?s:"(null)", width, pad); - continue; - } - if( *format == 'd' ) { - pc += printi (out, va_arg( args, int ), 10, 1, width, pad, 'a'); - continue; - } - if( *format == 'x' ) { - pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'a'); - continue; - } - if( *format == 'X' ) { - pc += printi (out, va_arg( args, int ), 16, 0, width, pad, 'A'); - continue; - } - if( *format == 'u' ) { - pc += printi (out, va_arg( args, int ), 10, 0, width, pad, 'a'); - continue; - } - if( *format == 'c' ) { - /* char are converted to int then pushed on the stack */ - scr[0] = (char)va_arg( args, int ); - scr[1] = '\0'; - pc += prints (out, scr, width, pad); - continue; - } - } - else { - out: - printchar (out, *format); - ++pc; - } - } - if (out) **out = '\0'; - va_end( args ); - return pc; -} - -int printf(const char *format, ...) -{ - va_list args; - - va_start( args, format ); - return print( 0, format, args ); -} - -int sprintf(char *out, const char *format, ...) -{ - va_list args; - - va_start( args, format ); - return print( &out, format, args ); -} - - -int snprintf( char *buf, unsigned int count, const char *format, ... ) -{ - va_list args; - - ( void ) count; - - va_start( args, format ); - return print( &buf, format, args ); -} - - -#ifdef TEST_PRINTF -int main(void) -{ - char *ptr = "Hello world!"; - char *np = 0; - int i = 5; - unsigned int bs = sizeof(int)*8; - int mi; - char buf[80]; - - mi = (1 << (bs-1)) + 1; - printf("%s\n", ptr); - printf("printf test\n"); - printf("%s is null pointer\n", np); - printf("%d = 5\n", i); - printf("%d = - max int\n", mi); - printf("char %c = 'a'\n", 'a'); - printf("hex %x = ff\n", 0xff); - printf("hex %02x = 00\n", 0); - printf("signed %d = unsigned %u = hex %x\n", -3, -3, -3); - printf("%d %s(s)%", 0, "message"); - printf("\n"); - printf("%d %s(s) with %%\n", 0, "message"); - sprintf(buf, "justif: \"%-10s\"\n", "left"); printf("%s", buf); - sprintf(buf, "justif: \"%10s\"\n", "right"); printf("%s", buf); - sprintf(buf, " 3: %04d zero padded\n", 3); printf("%s", buf); - sprintf(buf, " 3: %-4d left justif.\n", 3); printf("%s", buf); - sprintf(buf, " 3: %4d right justif.\n", 3); printf("%s", buf); - sprintf(buf, "-3: %04d zero padded\n", -3); printf("%s", buf); - sprintf(buf, "-3: %-4d left justif.\n", -3); printf("%s", buf); - sprintf(buf, "-3: %4d right justif.\n", -3); printf("%s", buf); - - return 0; -} - -/* - * if you compile this file with - * gcc -Wall $(YOUR_C_OPTIONS) -DTEST_PRINTF -c printf.c - * you will get a normal warning: - * printf.c:214: warning: spurious trailing `%' in format - * this line is testing an invalid % at the end of the format string. - * - * this should display (on 32bit int machine) : - * - * Hello world! - * printf test - * (null) is null pointer - * 5 = 5 - * -2147483647 = - max int - * char a = 'a' - * hex ff = ff - * hex 00 = 00 - * signed -3 = unsigned 4294967293 = hex fffffffd - * 0 message(s) - * 0 message(s) with % - * justif: "left " - * justif: " right" - * 3: 0003 zero padded - * 3: 3 left justif. - * 3: 3 right justif. - * -3: -003 zero padded - * -3: -3 left justif. - * -3: -3 right justif. - */ - -#endif - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c deleted file mode 100644 index 5202cf23a..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/serial.c +++ /dev/null @@ -1,225 +0,0 @@ -/* - FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - All rights reserved - - VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - - This file is part of the FreeRTOS distribution. - - FreeRTOS is free software; you can redistribute it and/or modify it under - the terms of the GNU General Public License (version 2) as published by the - Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception. - - *************************************************************************** - >>! NOTE: The modification to the GPL is included to allow you to !<< - >>! distribute a combined work that includes FreeRTOS without being !<< - >>! obliged to provide the source code for proprietary components !<< - >>! outside of the FreeRTOS kernel. !<< - *************************************************************************** - - FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - FOR A PARTICULAR PURPOSE. Full license text is available on the following - link: http://www.freertos.org/a00114.html - - *************************************************************************** - * * - * FreeRTOS provides completely free yet professionally developed, * - * robust, strictly quality controlled, supported, and cross * - * platform software that is more than just the market leader, it * - * is the industry's de facto standard. * - * * - * Help yourself get started quickly while simultaneously helping * - * to support the FreeRTOS project by purchasing a FreeRTOS * - * tutorial book, reference manual, or both: * - * http://www.FreeRTOS.org/Documentation * - * * - *************************************************************************** - - http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - the FAQ page "My application does not run, what could be wrong?". Have you - defined configASSERT()? - - http://www.FreeRTOS.org/support - In return for receiving this top quality - embedded software for free we request you assist our global community by - participating in the support forum. - - http://www.FreeRTOS.org/training - Investing in training allows your team to - be as productive as possible as early as possible. Now you can receive - FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - Ltd, and the world's leading authority on the world's leading RTOS. - - http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - including FreeRTOS+Trace - an indispensable productivity tool, a DOS - compatible FAT file system, and our tiny thread aware UDP/IP stack. - - http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - - http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - licenses offer ticketed support, indemnification and commercial middleware. - - http://www.SafeRTOS.com - High Integrity Systems also provide a safety - engineered and independently SIL3 certified version for use in safety and - mission critical applications that require provable dependability. - - 1 tab == 4 spaces! -*/ - -/* - BASIC INTERRUPT DRIVEN SERIAL PORT DRIVER FOR a UARTLite peripheral. -*/ - -/* Scheduler includes. */ -#include "FreeRTOS.h" -#include "queue.h" -#include "comtest_strings.h" - -/* Library includes. */ -#include "xuartlite.h" -#include "xuartlite_l.h" - -/* Demo application includes. */ -#include "serial.h" - -/*-----------------------------------------------------------*/ - -/* Functions that are installed as the handler for interrupts that are caused by -Rx and Tx events respectively. */ -static void prvRxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount ); -static void prvTxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount ); - -/* Structure that hold the state of the UARTLite peripheral used by this demo. -This is used by the Xilinx peripheral driver API functions. */ -static XUartLite xUartLiteInstance; - -/* The queue used to hold received characters. */ -static QueueHandle_t xRxedChars; - -/*-----------------------------------------------------------*/ - -xComPortHandle xSerialPortInitMinimal( unsigned long ulWantedBaud, unsigned portBASE_TYPE uxQueueLength ) -{ -portBASE_TYPE xStatus; - - /* The standard demo header file requires a baud rate to be passed into this - function. However, in this case the baud rate is configured when the - hardware is generated, leaving the ulWantedBaud parameter redundant. */ - ( void ) ulWantedBaud; - - /* Create the queue used to hold Rx characters. */ - xRxedChars = xQueueCreate( uxQueueLength, ( unsigned portBASE_TYPE ) sizeof( signed char ) ); - - /* If the queue was created correctly, then setup the serial port - hardware. */ - if( xRxedChars != NULL ) - { - xStatus = XUartLite_Initialize( &xUartLiteInstance, XPAR_UARTLITE_1_DEVICE_ID ); - - if( xStatus == XST_SUCCESS ) - { - /* Complete initialisation of the UART and its associated - interrupts. */ - XUartLite_ResetFifos( &xUartLiteInstance ); - - /* Install the handlers that the standard Xilinx library interrupt - service routine will call when Rx and Tx events occur - respectively. */ - XUartLite_SetRecvHandler( &xUartLiteInstance, ( XUartLite_Handler ) prvRxHandler, NULL ); - XUartLite_SetSendHandler( &xUartLiteInstance, ( XUartLite_Handler ) prvTxHandler, NULL ); - - /* Install the standard Xilinx library interrupt handler itself. - *NOTE* The xPortInstallInterruptHandler() API function must be used - for this purpose. */ - xStatus = xPortInstallInterruptHandler( XPAR_INTC_0_UARTLITE_1_VEC_ID, ( XInterruptHandler ) XUartLite_InterruptHandler, &xUartLiteInstance ); - - /* Enable the interrupt in the peripheral. */ - XUartLite_EnableIntr( xUartLiteInstance.RegBaseAddress ); - - /* Enable the interrupt in the interrupt controller. - *NOTE* The vPortEnableInterrupt() API function must be used for this - purpose. */ - vPortEnableInterrupt( XPAR_INTC_0_UARTLITE_1_VEC_ID ); - } - - configASSERT( xStatus == pdPASS ); - } - - /* This demo file only supports a single port but something must be - returned to comply with the standard demo header file. */ - return ( xComPortHandle ) 0; -} -/*-----------------------------------------------------------*/ - -portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed char *pcRxedChar, TickType_t xBlockTime ) -{ - /* The port handle is not required as this driver only supports one port. */ - ( void ) pxPort; - - /* Get the next character from the receive queue. Return false if no - characters are available, or arrive before xBlockTime expires. */ - if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) ) - { - return pdTRUE; - } - else - { - return pdFALSE; - } -} -/*-----------------------------------------------------------*/ - -void vSerialPutString( xComPortHandle pxPort, const signed char * const pcString, unsigned short usStringLength ) -{ - ( void ) pxPort; - - /* Output uxStringLength bytes starting from pcString. */ - XUartLite_Send( &xUartLiteInstance, ( unsigned char * ) pcString, usStringLength ); -} -/*-----------------------------------------------------------*/ - -static void prvRxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount ) -{ -signed char cRxedChar; -portBASE_TYPE xHigherPriorityTaskWoken = pdFALSE; - - ( void ) pvUnused; - ( void ) uxByteCount; - - /* Place any received characters into the receive queue. */ - while( XUartLite_IsReceiveEmpty( xUartLiteInstance.RegBaseAddress ) == pdFALSE ) - { - cRxedChar = XUartLite_ReadReg( xUartLiteInstance.RegBaseAddress, XUL_RX_FIFO_OFFSET); - xQueueSendFromISR( xRxedChars, &cRxedChar, &xHigherPriorityTaskWoken ); - } - - /* If calling xQueueSendFromISR() caused a task to unblock, and the task - that unblocked has a priority equal to or greater than the task currently - in the Running state (the task that was interrupted), then - xHigherPriorityTaskWoken will have been set to pdTRUE internally within the - xQueueSendFromISR() API function. If xHigherPriorityTaskWoken is equal to - pdTRUE then a context switch should be requested to ensure that the - interrupt returns to the highest priority task that is able to run. */ - portYIELD_FROM_ISR( xHigherPriorityTaskWoken ); -} -/*-----------------------------------------------------------*/ - -static void prvTxHandler( void *pvUnused, unsigned portBASE_TYPE uxByteCount ) -{ - ( void ) pvUnused; - ( void ) uxByteCount; - - /* Nothing to do here. The Xilinx library function takes care of the - transmission. */ - portNOP(); -} - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld deleted file mode 100644 index 76fb76b28..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/RTOSDemo/src/lscript.ld +++ /dev/null @@ -1,213 +0,0 @@ -/*******************************************************************/ -/* */ -/* This file is automatically generated by linker script generator.*/ -/* */ -/* Version: Xilinx EDK 13.1 EDK_O.40d */ -/* */ -/* Copyright (c) 2010 Xilinx, Inc. All rights reserved. */ -/* */ -/* Description : MicroBlaze Linker Script */ -/* */ -/*******************************************************************/ - -_STACK_SIZE = DEFINED(_STACK_SIZE) ? _STACK_SIZE : 0x400; -_HEAP_SIZE = DEFINED(_HEAP_SIZE) ? _HEAP_SIZE : 0x10400; - -/* Define Memories in the system */ - -MEMORY -{ - microblaze_0_i_bram_ctrl_microblaze_0_d_bram_ctrl : ORIGIN = 0x00000050, LENGTH = 0x00001FB0 - MCB_DDR3_S0_AXI_BASEADDR : ORIGIN = 0xC0000000, LENGTH = 0x08000000 -} - -/* Specify the default entry point to the program */ - -ENTRY(_start) - -/* Define the sections, and where they are mapped in memory */ - -SECTIONS -{ -.vectors.reset 0x00000000 : { - *(.vectors.reset) -} - -.vectors.sw_exception 0x00000008 : { - *(.vectors.sw_exception) -} - -.vectors.interrupt 0x00000010 : { - *(.vectors.interrupt) -} - -.vectors.hw_exception 0x00000020 : { - *(.vectors.hw_exception) -} - -.text : { - *(.text) - *(.text.*) - *(.gnu.linkonce.t.*) -} > MCB_DDR3_S0_AXI_BASEADDR - -.init : { - KEEP (*(.init)) -} > MCB_DDR3_S0_AXI_BASEADDR - -.fini : { - KEEP (*(.fini)) -} > MCB_DDR3_S0_AXI_BASEADDR - -.rodata : { - __rodata_start = .; - *(.rodata) - *(.rodata.*) - *(.gnu.linkonce.r.*) - __rodata_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.sdata2 : { - . = ALIGN(8); - __sdata2_start = .; - *(.sdata2) - *(.sdata2.*) - *(.gnu.linkonce.s2.*) - . = ALIGN(8); - __sdata2_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.sbss2 : { - __sbss2_start = .; - *(.sbss2) - *(.sbss2.*) - *(.gnu.linkonce.sb2.*) - __sbss2_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.data : { - . = ALIGN(4); - __data_start = .; - *(.data) - *(.data.*) - *(.gnu.linkonce.d.*) - __data_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.got : { - *(.got) -} > MCB_DDR3_S0_AXI_BASEADDR - -.got1 : { - *(.got1) -} > MCB_DDR3_S0_AXI_BASEADDR - -.got2 : { - *(.got2) -} > MCB_DDR3_S0_AXI_BASEADDR - -.ctors : { - __CTOR_LIST__ = .; - ___CTORS_LIST___ = .; - KEEP (*crtbegin.o(.ctors)) - KEEP (*(EXCLUDE_FILE(*crtend.o) .ctors)) - KEEP (*(SORT(.ctors.*))) - KEEP (*(.ctors)) - __CTOR_END__ = .; - ___CTORS_END___ = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.dtors : { - __DTOR_LIST__ = .; - ___DTORS_LIST___ = .; - KEEP (*crtbegin.o(.dtors)) - KEEP (*(EXCLUDE_FILE(*crtend.o) .dtors)) - KEEP (*(SORT(.dtors.*))) - KEEP (*(.dtors)) - __DTOR_END__ = .; - ___DTORS_END___ = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.eh_frame : { - *(.eh_frame) -} > MCB_DDR3_S0_AXI_BASEADDR - -.jcr : { - *(.jcr) -} > MCB_DDR3_S0_AXI_BASEADDR - -.gcc_except_table : { - *(.gcc_except_table) -} > MCB_DDR3_S0_AXI_BASEADDR - -.sdata : { - . = ALIGN(8); - __sdata_start = .; - *(.sdata) - *(.sdata.*) - *(.gnu.linkonce.s.*) - __sdata_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.sbss : { - . = ALIGN(4); - __sbss_start = .; - *(.sbss) - *(.sbss.*) - *(.gnu.linkonce.sb.*) - . = ALIGN(8); - __sbss_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.tdata : { - __tdata_start = .; - *(.tdata) - *(.tdata.*) - *(.gnu.linkonce.td.*) - __tdata_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.tbss : { - __tbss_start = .; - *(.tbss) - *(.tbss.*) - *(.gnu.linkonce.tb.*) - __tbss_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.bss : { - . = ALIGN(4); - __bss_start = .; - *(.bss) - *(.bss.*) - *(.gnu.linkonce.b.*) - *(COMMON) - . = ALIGN(4); - __bss_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -_SDA_BASE_ = __sdata_start + ((__sbss_end - __sdata_start) / 2 ); - -_SDA2_BASE_ = __sdata2_start + ((__sbss2_end - __sdata2_start) / 2 ); - -/* Generate Stack and Heap definitions */ - -.heap : { - . = ALIGN(8); - _heap = .; - _heap_start = .; - . += _HEAP_SIZE; - _heap_end = .; -} > MCB_DDR3_S0_AXI_BASEADDR - -.stack : { - _stack_end = .; - . += _STACK_SIZE; - . = ALIGN(8); - _stack = .; - __stack = _stack; -} > MCB_DDR3_S0_AXI_BASEADDR - -_end = .; -} - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject deleted file mode 100644 index 8acd705e8..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.cproject +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project deleted file mode 100644 index d2726ccb2..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.project +++ /dev/null @@ -1,77 +0,0 @@ - - - StandAloneBSP - - - HardwareWithEthernetLite - - - - org.eclipse.cdt.make.core.makeBuilder - clean,full,incremental, - - - org.eclipse.cdt.core.errorOutputParser - org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.GmakeErrorParser;org.eclipse.cdt.core.VCErrorParser;org.eclipse.cdt.core.CWDLocator;org.eclipse.cdt.core.MakeErrorParser; - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.build.arguments - - - - org.eclipse.cdt.make.core.build.command - make - - - org.eclipse.cdt.make.core.build.target.auto - all - - - org.eclipse.cdt.make.core.build.target.clean - clean - - - org.eclipse.cdt.make.core.build.target.inc - all - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.enabledIncrementalBuild - true - - - org.eclipse.cdt.make.core.environment - - - - org.eclipse.cdt.make.core.stopOnError - false - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - - com.xilinx.sdk.sw.SwProjectNature - org.eclipse.cdt.core.cnature - org.eclipse.cdt.make.core.makeNature - - diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject deleted file mode 100644 index d75738c3f..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/.sdkproject +++ /dev/null @@ -1,3 +0,0 @@ -THIRPARTY=false -PROCESSOR=microblaze_0 -MSS_FILE=system.mss diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile deleted file mode 100644 index fe2a0efc7..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/Makefile +++ /dev/null @@ -1,21 +0,0 @@ -# Makefile generated by Xilinx SDK. - --include libgen.options - -LIBRARIES = ${PROCESSOR}/lib/libxil.a -MSS = system.mss - -all: libs - @echo 'Finished building libraries' - -libs: $(LIBRARIES) - -$(LIBRARIES): $(MSS) - libgen -hw ${HWSPEC}\ - ${REPOSITORIES}\ - -pe ${PROCESSOR} \ - -log libgen.log \ - $(MSS) - -clean: - rm -rf ${PROCESSOR} diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options deleted file mode 100644 index 175ad2d35..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/libgen.options +++ /dev/null @@ -1,3 +0,0 @@ -PROCESSOR=microblaze_0 -REPOSITORIES=-lp ../../KernelAwareBSPRepository -HWSPEC=../HardwareWithEthernetLite/system.xml diff --git a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss b/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss deleted file mode 100644 index 2369c83b3..000000000 --- a/FreeRTOS/Demo/MicroBlaze_Spartan-6_EthernetLite/SDKProjects/StandAloneBSP/system.mss +++ /dev/null @@ -1,81 +0,0 @@ - - PARAMETER VERSION = 2.2.0 - - -BEGIN OS - PARAMETER OS_NAME = standalone - PARAMETER OS_VER = 3.01.a - PARAMETER PROC_INSTANCE = microblaze_0 - PARAMETER STDIN = RS232_Uart_1 - PARAMETER STDOUT = RS232_Uart_1 -END - - -BEGIN PROCESSOR - PARAMETER DRIVER_NAME = cpu - PARAMETER DRIVER_VER = 1.13.a - PARAMETER HW_INSTANCE = microblaze_0 -END - - -BEGIN DRIVER - PARAMETER DRIVER_NAME = emaclite - PARAMETER DRIVER_VER = 3.01.a - PARAMETER HW_INSTANCE = Ethernet_Lite -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = gpio - PARAMETER DRIVER_VER = 3.00.a - PARAMETER HW_INSTANCE = LEDs_4Bits -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = s6_ddrx - PARAMETER DRIVER_VER = 1.00.a - PARAMETER HW_INSTANCE = MCB_DDR3 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = gpio - PARAMETER DRIVER_VER = 3.00.a - PARAMETER HW_INSTANCE = Push_Buttons_4Bits -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = uartlite - PARAMETER DRIVER_VER = 2.00.a - PARAMETER HW_INSTANCE = RS232_Uart_1 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = tmrctr - PARAMETER DRIVER_VER = 2.03.a - PARAMETER HW_INSTANCE = axi_timer_0 -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = uartlite - PARAMETER DRIVER_VER = 2.00.a - PARAMETER HW_INSTANCE = debug_module -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = bram - PARAMETER DRIVER_VER = 3.00.a - PARAMETER HW_INSTANCE = microblaze_0_d_bram_ctrl -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = bram - PARAMETER DRIVER_VER = 3.00.a - PARAMETER HW_INSTANCE = microblaze_0_i_bram_ctrl -END - -BEGIN DRIVER - PARAMETER DRIVER_NAME = intc - PARAMETER DRIVER_VER = 2.02.a - PARAMETER HW_INSTANCE = microblaze_0_intc -END - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log deleted file mode 100644 index d87a2c505..000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log +++ /dev/null @@ -1,15 +0,0 @@ - The following files will be modified: - system.mhs - system.mss - --------------------------------------- - The following changes will be made: - Core ppc440mc_ddr2 2.00.a will be replaced by 2.00.b - Core clock_generator 3.00.a will be replaced by 3.01.a - - Driver cpu_ppc440 1.00.b will be replaced by 1.01.a - Driver iic 1.14.a will be replaced by 1.15.a --------------------------------------- - The following changes need to be made manually by the user: - Core xps_ethernetlite 2.01.a needs to be replaced by 3.00.a - Core plbv46_pcie 3.00.b needs to be replaced by 4.01.a diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log deleted file mode 100644 index 10014fec9..000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.log +++ /dev/null @@ -1,7514 +0,0 @@ -No logfile was found. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -The project file (XMP) has changed on disk. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -At Local date and time: Tue Jun 30 18:36:00 2009 - make -f system.make netlistclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm - - -Done! - -At Local date and time: Tue Jun 30 18:36:05 2009 - make -f system.make bitsclean started... - -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed - - -Done! - -At Local date and time: Tue Jun 30 18:36:10 2009 - make -f system.make hwclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed -rm -rf implementation synthesis xst hdl -rm -rf xst.srp system.srp -rm -f __xps/ise/_xmsgs/bitinit.xmsgs - - -Done! - -At Local date and time: Tue Jun 30 18:36:16 2009 - make -f system.make libsclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs - - -Done! - -At Local date and time: Tue Jun 30 18:36:20 2009 - make -f system.make programclean started... - -rm -f RTOSDemo/executable.elf - - -Done! - -At Local date and time: Tue Jun 30 18:36:25 2009 - make -f system.make swclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs -rm -f RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Tue Jun 30 22:00:27 2009 - make -f system.make bits started... - -**************************************************** -Creating system netlist for hardware specification.. -**************************************************** -platgen -p xc5vfx70tff1136-1 -lang vhdl -msg __xps/ise/xmsgprops.lst system.mhs - -Release 11.2 - platgen Xilinx EDK 11.2 Build EDK_LS3.47 - (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - - -Command Line: platgen -p xc5vfx70tff1136-1 -lang vhdl -msg -__xps/ise/xmsgprops.lst system.mhs - -Parse -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.mhs -... - -Read MPD definitions ... -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! - -Overriding IP level properties ... - -Performing IP level DRCs on properties... - -Running DRC Tcl procedures for OPTION IPLEVEL_DRC_PROC... -Address Map for Processor ppc440_0 - (0b0000000000-0b0011111111) ppc440_0 - (0000000000-0x0fffffff) DDR2_SDRAM ppc440_0_PPC440MC - (0x81000000-0x8100ffff) Ethernet_MAC plb_v46_0 - (0x81400000-0x8140ffff) Push_Buttons_5Bit plb_v46_0 - (0x81420000-0x8142ffff) LEDs_Positions plb_v46_0 - (0x81440000-0x8144ffff) LEDs_8Bit plb_v46_0 - (0x81460000-0x8146ffff) DIP_Switches_8Bit plb_v46_0 - (0x81600000-0x8160ffff) IIC_EEPROM plb_v46_0 - (0x81800000-0x8180ffff) xps_intc_0 plb_v46_0 - (0x83600000-0x8360ffff) SysACE_CompactFlash plb_v46_0 - (0x84000000-0x8400ffff) RS232_Uart_1 plb_v46_0 - (0x85c00000-0x85c0ffff) PCIe_Bridge plb_v46_0 - (0xc0000000-0xdfffffff) PCIe_Bridge plb_v46_0 - (0xe0000000-0xefffffff) PCIe_Bridge plb_v46_0 - (0xf8000000-0xf80fffff) SRAM plb_v46_0 - (0xffffe000-0xffffffff) xps_bram_if_cntlr_1 plb_v46_0 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 175 - tool is overriding PARAMETER - C_SPLB0_P2P value to 0 - -Computing clock values... -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 12 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 76 - tool is overriding - PARAMETER C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 80 - tool is overriding - PARAMETER C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 69 - tool is overriding PARAMETER C_MEMSIZE - value to 0x2000 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PORT_DWIDTH value to 64 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_NUM_WE - value to 8 -INFO:EDK:1560 - IPNAME:xps_uartlite INSTANCE:RS232_Uart_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_uartlite_v1_01 - _a\data\xps_uartlite_v2_1_0.mpd line 73 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_Positions - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:Push_Buttons_5Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:DIP_Switches_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_iic INSTANCE:IIC_EEPROM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_iic_v2_01_a\da - ta\xps_iic_v2_1_0.mpd line 79 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 82 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 84 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 86 - tool is overriding PARAMETER - C_MPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 87 - tool is overriding PARAMETER - C_MPLB_SMALLEST_SLAVE value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 89 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 90 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 91 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 95 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_ethernetlite_v - 2_01_a\data\xps_ethernetlite_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 74 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 75 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 - -Checking platform address map ... - -Checking platform configuration ... -INFO:EDK:1563 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - This design requires design constraints to guarantee - performance. - Please refer to the xps_ethernetlite_v2_00_a data sheet for details. - The PLB clock frequency must be greater than or equal to 50 MHz for 100 Mbs - Ethernet operation and greater than or equal to 5.0 MHz for 10 Mbs Ethernet - operation. -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 109 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 290 - 1 master(s) : 1 slave(s) -IPNAME:fcb_v20 INSTANCE:ppc440_0_fcb_v20 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 394 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 461 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 124 - tcl is overriding PARAMETER - C_PPC440MC_ADDR_BASE value to 0x00000000 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 125 - tcl is overriding PARAMETER - C_PPC440MC_ADDR_HIGH value to 0x0fffffff -INFO:EDK:1560 - IPNAME:jtagppc_cntlr INSTANCE:jtagppc_cntlr_inst - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\jtagppc_cntlr_v2_0 - 1_c\data\jtagppc_cntlr_v2_1_0.mpd line 70 - tcl is overriding PARAMETER - C_NUM_PPC_USED value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 79 - tcl is overriding PARAMETER C_KIND_OF_INTR - value to 0b00000000000000000000000000000001 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 80 - tcl is overriding PARAMETER C_KIND_OF_EDGE - value to 0b00000000000000000000000000000001 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 81 - tcl is overriding PARAMETER C_KIND_OF_LVL - value to 0b00000000000000000000000000000000 - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... - -Running UPDATE Tcl procedures for OPTION PLATGEN_SYSLEVEL_UPDATE_PROC... -INFO: The PCIe_Bridge core has constraints automatically generated by XPS in -implementation/pcie_bridge_wrapper/pcie_bridge_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - -INFO: The Ethernet_MAC core has constraints automatically generated by XPS in -implementation/ethernet_mac_wrapper/ethernet_mac_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - -INFO: The DDR2_SDRAM core has constraints automatically generated by XPS in -implementation/ddr2_sdram_wrapper/ddr2_sdram_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - - -Modify defaults ... - -Creating stub ... - -Processing licensed instances ... -Completion time: 0.00 seconds - -Creating hardware output directories ... - -Managing hardware (BBD-specified) netlist files ... -IPNAME:plbv46_pcie INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 253 - Copying (BBD-specified) netlist files. -IPNAME:xps_ethernetlite INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 298 - Copying (BBD-specified) netlist files. -IPNAME:apu_fpu_virtex5 INSTANCE:ppc440_0_apu_fpu_virtex5 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 401 - Copying (BBD-specified) netlist files. - -Managing cache ... - -Elaborating instances ... -IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 131 - elaborating IP - -Writing HDL for elaborated instances ... - -Inserting wrapper level ... -Completion time: 0.00 seconds - -Constructing platform-level connectivity ... -Completion time: 1.00 seconds - -Writing (top-level) BMM ... - -Writing (top-level and wrappers) HDL ... - -Generating synthesis project file ... - -Running XST synthesis ... - -INFO:EDK:2502 - The following instances are synthesized with XST. The MPD option - IMP_NETLIST=TRUE indicates that a NGC file is to be produced using XST - synthesis. IMP_NETLIST=FALSE (default) instances are not synthesized. -INSTANCE:ppc440_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 78 - Running XST synthesis -INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 109 - Running XST synthesis -INSTANCE:xps_bram_if_cntlr_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 118 - Running XST synthesis -INSTANCE:xps_bram_if_cntlr_1_bram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 131 - Running XST synthesis -INSTANCE:rs232_uart_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 138 - Running XST synthesis -INSTANCE:leds_8bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 154 - Running XST synthesis -INSTANCE:leds_positions - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 168 - Running XST synthesis -INSTANCE:push_buttons_5bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 182 - Running XST synthesis -INSTANCE:dip_switches_8bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 196 - Running XST synthesis -INSTANCE:iic_eeprom - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 210 - Running XST synthesis -INSTANCE:sram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 223 - Running XST synthesis -INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 253 - Running XST synthesis -INSTANCE:ppc440_0_splb0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 290 - Running XST synthesis -INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 298 - Running XST synthesis -INSTANCE:ddr2_sdram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 317 - Running XST synthesis -INSTANCE:sysace_compactflash - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 377 - Running XST synthesis -INSTANCE:ppc440_0_fcb_v20 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 394 - Running XST synthesis -INSTANCE:ppc440_0_apu_fpu_virtex5 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 401 - Running XST synthesis -INSTANCE:clock_generator_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 407 - Running XST synthesis -INSTANCE:jtagppc_cntlr_inst - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 446 - Running XST synthesis -INSTANCE:proc_sys_reset_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 452 - Running XST synthesis -INSTANCE:xps_intc_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 464 - Running XST synthesis - -Running NGCBUILD ... -IPNAME:ppc440_0_wrapper INSTANCE:ppc440_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 78 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ppc440_0_wrapper.ucf -sd .. -ppc440_0_wrapper.ngc ../ppc440_0_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ppc440_0_wrapper/ppc440_0_wrapper.ngc" ... - -Applying constraints in "ppc440_0_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ppc440_0_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 6 sec -Total CPU time to NGCBUILD completion: 6 sec - -Writing NGCBUILD log file "../ppc440_0_wrapper.blc"... - -NGCBUILD done. -IPNAME:rs232_uart_1_wrapper INSTANCE:rs232_uart_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 138 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -sd .. rs232_uart_1_wrapper.ngc -../rs232_uart_1_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/rs232_uart_1_wrapper/rs232_uart_1_wrapper.ngc" ... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../rs232_uart_1_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 2 sec -Total CPU time to NGCBUILD completion: 2 sec - -Writing NGCBUILD log file "../rs232_uart_1_wrapper.blc"... - -NGCBUILD done. -IPNAME:pcie_bridge_wrapper INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 253 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc pcie_bridge_wrapper.ucf -sd .. -pcie_bridge_wrapper.ngc ../pcie_bridge_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/pcie_bridge_wrapper/pcie_bridge_wrapper.ngc" ... -Executing edif2ngd -noa -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper_fifo_generator_v4_3.edn" -"pcie_bridge_wrapper_fifo_generator_v4_3.ngo" -Release 11.2 - edif2ngd L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -INFO:NgdBuild - Release 11.2 edif2ngd L.46 (nt) -INFO:NgdBuild - Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file -with local file -Writing module to "pcie_bridge_wrapper_fifo_generator_v4_3.ngo"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper\pcie_bridge_wrapper_fifo_generator_v4_3.ngo"... -Loading design module -"../pcie_bridge_wrapper_fifo_generator_v4_3_fifo_generator_v4_3_xst_1.ngc"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper/dpram_70_512.ngc"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper/fifo_71x512.ngc"... - -Applying constraints in "pcie_bridge_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../pcie_bridge_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 13 sec -Total CPU time to NGCBUILD completion: 9 sec - -Writing NGCBUILD log file "../pcie_bridge_wrapper.blc"... - -NGCBUILD done. -IPNAME:ethernet_mac_wrapper INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 298 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ethernet_mac_wrapper.ucf -sd .. -ethernet_mac_wrapper.ngc ../ethernet_mac_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ethernet_mac_wrapper/ethernet_mac_wrapper.ngc" ... -Executing edif2ngd -noa "ethernetlite_v1_01_b_dmem_v2.edn" -"ethernetlite_v1_01_b_dmem_v2.ngo" -Release 11.2 - edif2ngd L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -INFO:NgdBuild - Release 11.2 edif2ngd L.46 (nt) -INFO:NgdBuild - Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file -with local file -Writing module to "ethernetlite_v1_01_b_dmem_v2.ngo"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\implementa -tion\ethernet_mac_wrapper\ethernetlite_v1_01_b_dmem_v2.ngo"... - -Applying constraints in "ethernet_mac_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ethernet_mac_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 9 sec -Total CPU time to NGCBUILD completion: 6 sec - -Writing NGCBUILD log file "../ethernet_mac_wrapper.blc"... - -NGCBUILD done. -IPNAME:ddr2_sdram_wrapper INSTANCE:ddr2_sdram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 317 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ddr2_sdram_wrapper.ucf -sd .. -ddr2_sdram_wrapper.ngc ../ddr2_sdram_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ddr2_sdram_wrapper/ddr2_sdram_wrapper.ngc" ... - -Applying constraints in "ddr2_sdram_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ddr2_sdram_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 7 sec -Total CPU time to NGCBUILD completion: 7 sec - -Writing NGCBUILD log file "../ddr2_sdram_wrapper.blc"... - -NGCBUILD done. -IPNAME:ppc440_0_apu_fpu_virtex5_wrapper INSTANCE:ppc440_0_apu_fpu_virtex5 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 401 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ppc440_0_apu_fpu_virtex5_wrapper.ucf -sd -.. ppc440_0_apu_fpu_virtex5_wrapper.ngc ../ppc440_0_apu_fpu_virtex5_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ppc440_0_apu_fpu_virtex5_wrapper/ppc440_0_apu_fpu_virtex5_wrapper.ngc" ... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\implementa -tion\ppc440_0_apu_fpu_virtex5_wrapper/apu_fpu_dp_lo.ngc"... - -Applying constraints in "ppc440_0_apu_fpu_virtex5_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ppc440_0_apu_fpu_virtex5_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 7 sec -Total CPU time to NGCBUILD completion: 7 sec - -Writing NGCBUILD log file "../ppc440_0_apu_fpu_virtex5_wrapper.blc"... - -NGCBUILD done. -IPNAME:xps_intc_0_wrapper INSTANCE:xps_intc_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 464 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -sd .. xps_intc_0_wrapper.ngc -../xps_intc_0_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/xps_intc_0_wrapper/xps_intc_0_wrapper.ngc" ... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../xps_intc_0_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 2 sec -Total CPU time to NGCBUILD completion: 2 sec - -Writing NGCBUILD log file "../xps_intc_0_wrapper.blc"... - -NGCBUILD done. - -Rebuilding cache ... - -Total run time: 1120.00 seconds -Running synthesis... -bash -c "cd synthesis; ./synthesis.sh" -xst -ifn system_xst.scr -intstyle silent -Running XST synthesis ... -XST completed -Release 11.2 - ngcbuild L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Overriding Xilinx file with local file - - -Command Line: c:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -./system.ngc ../implementation/system.ngc -sd ../implementation -i -ise -../__xps/ise/system.ise - -Reading NGO file -"c:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/synthesis/ -system.ngc" ... -Loading design module "../implementation/ppc440_0_wrapper.ngc"... -Loading design module "../implementation/plb_v46_0_wrapper.ngc"... -Loading design module "../implementation/xps_bram_if_cntlr_1_wrapper.ngc"... -Loading design module -"../implementation/xps_bram_if_cntlr_1_bram_wrapper.ngc"... -Loading design module "../implementation/rs232_uart_1_wrapper.ngc"... -Loading design module "../implementation/leds_8bit_wrapper.ngc"... -Loading design module "../implementation/leds_positions_wrapper.ngc"... -Loading design module "../implementation/push_buttons_5bit_wrapper.ngc"... -Loading design module "../implementation/dip_switches_8bit_wrapper.ngc"... -Loading design module "../implementation/iic_eeprom_wrapper.ngc"... -Loading design module "../implementation/sram_wrapper.ngc"... -Loading design module "../implementation/pcie_bridge_wrapper.ngc"... -Loading design module "../implementation/ppc440_0_splb0_wrapper.ngc"... -Loading design module "../implementation/ethernet_mac_wrapper.ngc"... -Loading design module "../implementation/ddr2_sdram_wrapper.ngc"... -Loading design module "../implementation/sysace_compactflash_wrapper.ngc"... -Loading design module "../implementation/ppc440_0_fcb_v20_wrapper.ngc"... -Loading design module -"../implementation/ppc440_0_apu_fpu_virtex5_wrapper.ngc"... -Loading design module "../implementation/clock_generator_0_wrapper.ngc"... -Loading design module "../implementation/jtagppc_cntlr_inst_wrapper.ngc"... -Loading design module "../implementation/proc_sys_reset_0_wrapper.ngc"... -Loading design module "../implementation/xps_intc_0_wrapper.ngc"... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../implementation/system.ngc" ... -Total REAL time to NGCBUILD completion: 12 sec -Total CPU time to NGCBUILD completion: 11 sec - -Writing NGCBUILD log file "../implementation/system.blc"... - -NGCBUILD done. -********************************************* -Running Xilinx Implementation tools.. -********************************************* -xflow -wd implementation -p xc5vfx70tff1136-1 -implement xflow.opt -ise ../__xps/ise/system.ise system.ngc -Release 11.2 - Xflow L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -xflow.exe -wd implementation -p xc5vfx70tff1136-1 -implement xflow.opt -ise -../__xps/ise/system.ise system.ngc -PMSPEC -- Overriding Xilinx file - with local file - -.... Copying flowfile c:/devtools/Xilinx/11.1/ISE/xilinx/data/fpga.flw into -working directory -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementat -ion - -Using Flow File: -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementat -ion/fpga.flw -Using Option File(s): - C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/xflow.opt - -Creating Script File ... - -#----------------------------------------------# -# Starting program ngdbuild -# ngdbuild -ise ../__xps/ise/system.ise -p xc5vfx70tff1136-1 -nt timestamp -bm -system.bmm -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/system.ngc" -uc system.ucf system.ngd -#----------------------------------------------# -Release 11.2 - ngdbuild L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: ngdbuild -ise ../__xps/ise/system.ise -p xc5vfx70tff1136-1 -nt -timestamp -bm system.bmm -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementat -ion/system.ngc -uc system.ucf system.ngd - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/implementa -tion/system.ngc" ... -Gathering constraint information from source properties... -Done. - -Applying constraints in "system.ucf" to the design... -WARNING:NgdBuild:931 - The value of SIM_DEVICE on instance - 'clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ - ADV.DCM_ADV_INST' of type DCM_ADV has been changed from 'VIRTEX4' to - 'VIRTEX5' to correct post-ngdbuild and timing simulation for this primitive. - In order for functional simulation to be correct, the value of SIM_DEVICE - should be changed in this same manner in the source netlist or constraint - file. -Resolving constraint associations... -Checking Constraint Associations... -WARNING:ConstraintSystem:3 - Constraint [system.ucf(264)]: This constraint will be ignored because the relative - clock constraint named 'TS_clk_div_slow_0_clk_div_slow_0_DDR2_CLK_i' was not - found. - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT0: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT1: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT2: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT3: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT4: - -Done... -Checking Partitions ... - -Processing BMM file ... - -WARNING:NgdBuild:1212 - User specified non-default attribute value - (8.0000000000000000) was detected for the CLKIN_PERIOD attribute on DCM - "clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ADV.DCM_ADV_INST". - This does not match the PERIOD constraint value (5 ns.). The uncertainty - calculation will use the non-default attribute value. This could result in - incorrect uncertainty calculated for DCM output clocks. -Checking expanded design ... -WARNING:NgdBuild:443 - SFF primitive - 'xps_bram_if_cntlr_1/xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ - ATTACH/I_DBEAT_CONTROL/I_DBEAT_CNTR/STRUCTURAL_A_GEN.I_ADDSUB_GEN[4].FDRE_I' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/EMC_CTRL_I/MEM_STEER_I/SYNC_MEM_DQT.REG_DQT_GEN[2].DQT_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/EMC_CTRL_I/MEM_STEER_I/GSYNC_MEM_RDACK_GEN.ADDR_ALIGN_PIPE_GEN[3]. - ALIGN_PIPE' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_WRCE_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_RDCE_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BURST_SUPPORT/RESPONSE_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FD - RE_I' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BURST_SUPPORT/CONTROL_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FDR - E_I' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG - ' has unconnected output pin -WARNING:NgdBuild:486 - Attribute "CLK_FEEDBACK" is not allowed on symbol - "PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.pll_ad - v_i" of type "PLL_ADV". This attribute will be ignored. -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[7].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[6].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[5].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[4].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_S - _H_ADDR_REG[6].I_ADDR_S_H_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_S - _H_ADDR_REG[7].I_ADDR_S_H_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[32].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[33].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[34].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[35].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[36].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[37].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[38].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[39].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[40].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[41].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[42].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[43].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[56].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[57].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[58].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[59].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[60].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[65].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[67].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[72].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[73].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[75].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_CE_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_RDCE_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG0' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG1' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG2' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_master/I_RD_CONTROL/I_RD_ABORT_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/COLLISION_SYNC' has unconnected - output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU10' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU15' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU20' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU25' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU30' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU35' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU130' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU237' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU10' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU15' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU20' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU25' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU30' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU35' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU130' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU237' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[1].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[2].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[3].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[4].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[5].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[6].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[7].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'ppc440_0_apu_fpu_virtex5/ppc440_0_apu_fpu_virtex5/gen_apu_fpu_dp_lo.netlist/ - fpu_is_full.sqrt_sqrt_flt_pt_op_sqrt_op.spd.op_round_logic.rnd2_carrys_q_del. - no_rlocs.fast_del.carry_fd' has unconnected output pin -WARNING:NgdBuild:486 - Attribute "CLK_FEEDBACK" is not allowed on symbol - "clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst" - of type "PLL_ADV". This attribute will be ignored. -WARNING:NgdBuild:452 - logical net 'N194' has no driver -WARNING:NgdBuild:452 - logical net 'N195' has no driver -WARNING:NgdBuild:452 - logical net 'N196' has no driver -WARNING:NgdBuild:452 - logical net 'N197' has no driver -WARNING:NgdBuild:452 - logical net 'N198' has no driver -WARNING:NgdBuild:452 - logical net 'N199' has no driver -WARNING:NgdBuild:452 - logical net 'N200' has no driver -WARNING:NgdBuild:452 - logical net 'N201' has no driver -WARNING:NgdBuild:452 - logical net 'N202' has no driver -WARNING:NgdBuild:452 - logical net 'N203' has no driver -WARNING:NgdBuild:452 - logical net 'N204' has no driver -WARNING:NgdBuild:452 - logical net 'N205' has no driver -WARNING:NgdBuild:452 - logical net 'N206' has no driver -WARNING:NgdBuild:452 - logical net 'N207' has no driver -WARNING:NgdBuild:452 - logical net 'N208' has no driver -WARNING:NgdBuild:452 - logical net 'N209' has no driver -WARNING:NgdBuild:452 - logical net 'N210' has no driver -WARNING:NgdBuild:452 - logical net 'N211' has no driver -WARNING:NgdBuild:452 - logical net 'N212' has no driver -WARNING:NgdBuild:452 - logical net 'N213' has no driver -WARNING:NgdBuild:452 - logical net 'N214' has no driver -WARNING:NgdBuild:452 - logical net 'N215' has no driver -WARNING:NgdBuild:452 - logical net 'N216' has no driver -WARNING:NgdBuild:452 - logical net 'N217' has no driver -WARNING:NgdBuild:452 - logical net 'N218' has no driver -WARNING:NgdBuild:452 - logical net 'N219' has no driver -WARNING:NgdBuild:452 - logical net 'N220' has no driver -WARNING:NgdBuild:452 - logical net 'N221' has no driver -WARNING:NgdBuild:452 - logical net 'N222' has no driver -WARNING:NgdBuild:452 - logical net 'N223' has no driver -WARNING:NgdBuild:452 - logical net 'N224' has no driver -WARNING:NgdBuild:452 - logical net 'N225' has no driver -WARNING:NgdBuild:452 - logical net 'N226' has no driver -WARNING:NgdBuild:452 - logical net 'N227' has no driver -WARNING:NgdBuild:452 - logical net 'N228' has no driver -WARNING:NgdBuild:452 - logical net 'N229' has no driver -WARNING:NgdBuild:452 - logical net 'N230' has no driver -WARNING:NgdBuild:452 - logical net 'N231' has no driver -WARNING:NgdBuild:452 - logical net 'N232' has no driver -WARNING:NgdBuild:452 - logical net 'N233' has no driver -WARNING:NgdBuild:452 - logical net 'N234' has no driver -WARNING:NgdBuild:452 - logical net 'N235' has no driver -WARNING:NgdBuild:452 - logical net 'N236' has no driver -WARNING:NgdBuild:452 - logical net 'N237' has no driver -WARNING:NgdBuild:452 - logical net 'N238' has no driver -WARNING:NgdBuild:452 - logical net 'N239' has no driver -WARNING:NgdBuild:452 - logical net 'N240' has no driver -WARNING:NgdBuild:452 - logical net 'N241' has no driver -WARNING:NgdBuild:452 - logical net 'N242' has no driver -WARNING:NgdBuild:452 - logical net 'N243' has no driver -WARNING:NgdBuild:452 - logical net 'N244' has no driver -WARNING:NgdBuild:452 - logical net 'N245' has no driver -WARNING:NgdBuild:452 - logical net 'N246' has no driver -WARNING:NgdBuild:452 - logical net 'N247' has no driver -WARNING:NgdBuild:452 - logical net 'N248' has no driver -WARNING:NgdBuild:452 - logical net 'N249' has no driver -WARNING:NgdBuild:452 - logical net 'N250' has no driver -WARNING:NgdBuild:452 - logical net 'N251' has no driver -WARNING:NgdBuild:452 - logical net 'N252' has no driver -WARNING:NgdBuild:452 - logical net 'N253' has no driver -WARNING:NgdBuild:452 - logical net 'N254' has no driver -WARNING:NgdBuild:452 - logical net 'N255' has no driver -WARNING:NgdBuild:452 - logical net 'N256' has no driver -WARNING:NgdBuild:452 - logical net 'N257' has no driver -WARNING:NgdBuild:452 - logical net 'N266' has no driver -WARNING:NgdBuild:452 - logical net 'N267' has no driver -WARNING:NgdBuild:452 - logical net 'N268' has no driver -WARNING:NgdBuild:452 - logical net 'N269' has no driver -WARNING:NgdBuild:452 - logical net 'N270' has no driver -WARNING:NgdBuild:452 - logical net 'N271' has no driver -WARNING:NgdBuild:452 - logical net 'N272' has no driver -WARNING:NgdBuild:452 - logical net 'N273' has no driver -WARNING:NgdBuild:452 - logical net 'N306' has no driver -WARNING:NgdBuild:452 - logical net 'N307' has no driver -WARNING:NgdBuild:452 - logical net 'N308' has no driver -WARNING:NgdBuild:452 - logical net 'N309' has no driver -WARNING:NgdBuild:452 - logical net 'N310' has no driver -WARNING:NgdBuild:452 - logical net 'N311' has no driver -WARNING:NgdBuild:452 - logical net 'N312' has no driver -WARNING:NgdBuild:452 - logical net 'N313' has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_terrfwd_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_rerrfwd_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tsrc_dsc_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tbuf_av<3>' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_trem_n<4>' - has no driver - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGDBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 349 - -Writing NGD file "system.ngd" ... -Total REAL time to NGDBUILD completion: 2 min 20 sec -Total CPU time to NGDBUILD completion: 1 min 50 sec - -Writing NGDBUILD log file "system.bld"... - -NGDBUILD done. - - - -#----------------------------------------------# -# Starting program map -# map -ise ../__xps/ise/system.ise -o system_map.ncd -w -pr b -ol high -timing -system.ngd system.pcf -#----------------------------------------------# -Release 11.2 - Map L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - -Using target part "5vfx70tff1136-1". -WARNING:LIT:243 - Logical network N194 has no load. -WARNING:LIT:395 - The above warning message is repeated 1028 more times for the - following (max. 5 shown): - N195, - N196, - N197, - N198, - N199 - To see the details of these warning messages, please use the -detail switch. -Mapping design into LUTs... -WARNING:MapLib:701 - Signal fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin - connected to top level port fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin has - been removed. -WARNING:MapLib:701 - Signal fpga_0_Ethernet_MAC_PHY_col_pin connected to top - level port fpga_0_Ethernet_MAC_PHY_col_pin has been removed. -WARNING:MapLib:41 - All members of TNM group "ppc440_0_PPCS0PLBMBUSY" have been - optimized out of the design. -Writing file system_map.ngm... -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0 - of frag REGCLKAU connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0 - of frag REGCLKAL connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1 - of frag REGCLKAU connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1 - of frag REGCLKAL connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst - of frag REGCLKAU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst - of frag REGCLKAL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst - of frag REGCLKAU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst - of frag REGCLKAL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP_RDRCLKL_tiesig -Running directed packing... -Running delay-based LUT packing... -Updating timing models... -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM - TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP "TNM_CLK0" TS_MC_CLK * 4 ignored during - timing analysis. -INFO:Map:215 - The Interim Design Summary has been generated in the MAP Report - (.mrp). -Running timing-driven placement... -Total REAL time at the beginning of Placer: 2 mins 24 secs -Total CPU time at the beginning of Placer: 2 mins 19 secs - -Phase 1.1 Initial Placement Analysis -Phase 1.1 Initial Placement Analysis (Checksum:3a0b7697) REAL time: 2 mins 44 secs - -Phase 2.7 Design Feasibility Check -WARNING:Place:838 - An IO Bus with more than one IO standard is found. - Components associated with this bus are as follows: - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<7> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<6> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<5> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<4> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS18 - - -WARNING:Place:838 - An IO Bus with more than one IO standard is found. - Components associated with this bus are as follows: - Comp: fpga_0_SRAM_Mem_DQ_pin<31> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<30> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<29> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<28> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<27> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<26> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<25> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<24> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<23> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<22> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<21> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<20> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<19> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<18> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<17> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<16> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<15> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<14> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<13> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<12> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<11> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<10> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<9> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<8> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<7> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<6> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<5> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<4> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<3> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<2> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<1> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<0> IOSTANDARD = LVCMOS33 - - -Phase 2.7 Design Feasibility Check (Checksum:3a0b7697) REAL time: 2 mins 45 secs - -Phase 3.31 Local Placement Optimization -Phase 3.31 Local Placement Optimization (Checksum:c9fd22c3) REAL time: 2 mins 45 secs - -Phase 4.37 Local Placement Optimization -Phase 4.37 Local Placement Optimization (Checksum:c9fd22c3) REAL time: 2 mins 45 secs - -Phase 5.33 Local Placement Optimization -Phase 5.33 Local Placement Optimization (Checksum:c9fd22c3) REAL time: 10 mins 47 secs - -Phase 6.32 Local Placement Optimization -Phase 6.32 Local Placement Optimization (Checksum:c9fd22c3) REAL time: 10 mins 52 secs - -Phase 7.2 Initial Clock and IO Placement - - - -There are 16 clock regions on the target FPGA device: -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y7: | CLOCKREGION_X1Y7: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 4 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y6: | CLOCKREGION_X1Y6: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 3 in use | 4 edge BUFIOs available, 0 in use | -| 0 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y5: | CLOCKREGION_X1Y5: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y4: | CLOCKREGION_X1Y4: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y3: | CLOCKREGION_X1Y3: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y2: | CLOCKREGION_X1Y2: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 3 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y1: | CLOCKREGION_X1Y1: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use - | -| 4 edge BUFIOs available, 2 in use | 4 edge BUFIOs available, 0 in use | -| 0 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y0: | CLOCKREGION_X1Y0: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 4 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 2/4; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 0 | 0 | 80 | 80 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 3/4; center-bufios - 0/2; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 8 | 0 | 0 | 60 | 60 | 1280 | 640 | 1920 | 0 | 0 | 1 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|------- --|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 3/4; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 24 | 0 | 0 | 80 | 80 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | - 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - - - -###################################################################################### -# REGIONAL CLOCKING RESOURCE DISTRIBUTION UCF REPORT: -# -# Number of Regional Clocking Regions in the device: 16 (4 clock spines in each) -# Number of Regional Clock Networks used in this design: 8 (each network can be -# composed of up to 3 clock spines and cover up to 3 regional clock regions) -# -###################################################################################### - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" driven by "BUFIO_X0Y27" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[7].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y27" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" driven by "BUFIO_X0Y9" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[0].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y9" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" RANGE = -CLOCKREGION_X0Y2; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" driven by "BUFIO_X0Y11" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[4].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y11" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" RANGE = -CLOCKREGION_X0Y2; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" driven by "BUFIO_X0Y4" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[1].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y4" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" RANGE = -CLOCKREGION_X0Y1; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" driven by "BUFIO_X0Y25" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[5].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y25" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" driven by "BUFIO_X0Y7" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[2].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y7" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" RANGE = -CLOCKREGION_X0Y1; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" driven by "BUFIO_X0Y26" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[6].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y26" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" driven by "BUFIO_X0Y10" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[3].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y10" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" RANGE = -CLOCKREGION_X0Y2; - - -Phase 7.2 Initial Clock and IO Placement (Checksum:b5943100) REAL time: 11 mins 10 secs - -Phase 8.36 Local Placement Optimization -Phase 8.36 Local Placement Optimization (Checksum:b5943100) REAL time: 11 mins 10 secs - -......... -.............. -....... -.... -...... -...... -...... -...... -...... -....... -....... -...... -........ -...... -........ -....... -........ -........ -...... -Phase 9.30 Global Clock Region Assignment - - -###################################################################################### -# GLOBAL CLOCK NET DISTRIBUTION UCF REPORT: -# -# Number of Global Clock Regions : 16 -# Number of Global Clock Networks: 15 -# -# Clock Region Assignment: SUCCESSFUL - -# Location of Clock Components -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT1.CLKOUT1_BUFG_INST" LOC = "BUFGCTRL_X0Y1" ; -INST "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y30" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.gtxclk_pll_bufg" LOC = "BUFGCTRL_X0Y29" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.coreclk_pll_bufg" LOC = "BUFGCTRL_X0Y27" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT2.CLKOUT2_BUFG_INST" LOC = "BUFGCTRL_X0Y2" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_BUFG_for_CLKFBOUT.CLKFB_BUFG_INST" LOC = "BUFGCTRL_X0Y3" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/notsame.usrclk_pll_bufg" LOC = "BUFGCTRL_X0Y28" ; -INST "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y8" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.clkfbin_pll_bufg" LOC = "BUFGCTRL_X0Y26" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT3.CLKOUT3_BUFG_INST" LOC = "BUFGCTRL_X0Y4" ; -INST "clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/Using_BUFG_for_CLK0.CLK0_BUFG_INST" LOC = "BUFGCTRL_X0Y7" ; -INST "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y31" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT0.CLKOUT0_BUFG_INST" LOC = "BUFGCTRL_X0Y5" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT4.CLKOUT4_BUFG_INST" LOC = "BUFGCTRL_X0Y6" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/bufg2" LOC = "BUFGCTRL_X0Y0" ; -INST "clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ADV.DCM_ADV_INST" LOC = "DCM_ADV_X0Y0" ; -INST "fpga_0_SRAM_ZBT_CLK_FB_pin" LOC = "IOB_X1Y111" ; -INST "fpga_0_clk_1_sys_clk_pin" LOC = "IOB_X1Y109" ; -INST "fpga_0_Ethernet_MAC_PHY_rx_clk_pin" LOC = "IOB_X1Y219" ; -INST "fpga_0_Ethernet_MAC_PHY_tx_clk_pin" LOC = "IOB_X1Y217" ; -INST "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin" LOC = "IOB_X1Y105" ; -INST "fpga_0_PCIe_Bridge_RXN_pin" LOC = "IPAD_X1Y12" ; -INST "fpga_0_PCIe_Bridge_RXP_pin" LOC = "IPAD_X1Y13" ; -INST "fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin" LOC = "IPAD_X1Y16" ; -INST "fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin" LOC = "IPAD_X1Y17" ; -INST "fpga_0_PCIe_Bridge_TXN_pin" LOC = "OPAD_X0Y8" ; -INST "fpga_0_PCIe_Bridge_TXP_pin" LOC = "OPAD_X0Y9" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.pll_adv_i" LOC = "PLL_ADV_X0Y5" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst" LOC = "PLL_ADV_X0Y0" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" LOC = "GTX_DUAL_X0Y2" ; -INST "ibufgds_76" LOC = "BUFDS_X0Y2" ; - -# clk_125_0000MHzPLL0 driven by BUFGCTRL_X0Y1 -NET "clk_125_0000MHzPLL0" TNM_NET = "TN_clk_125_0000MHzPLL0" ; -TIMEGRP "TN_clk_125_0000MHzPLL0" AREA_GROUP = "CLKAG_clk_125_0000MHzPLL0" ; -AREA_GROUP "CLKAG_clk_125_0000MHzPLL0" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP driven by BUFGCTRL_X0Y30 -NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" TNM_NET = "TN_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk driven by BUFGCTRL_X0Y29 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk driven by BUFGCTRL_X0Y27 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clk_125_0000MHzPLL0_ADJUST driven by BUFGCTRL_X0Y2 -NET "clk_125_0000MHzPLL0_ADJUST" TNM_NET = "TN_clk_125_0000MHzPLL0_ADJUST" ; -TIMEGRP "TN_clk_125_0000MHzPLL0_ADJUST" AREA_GROUP = "CLKAG_clk_125_0000MHzPLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_125_0000MHzPLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6> driven by BUFGCTRL_X0Y3 -NET "clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" TNM_NET = "TN_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" ; -TIMEGRP "TN_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" AREA_GROUP = "CLKAG_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" ; -AREA_GROUP "CLKAG_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X0Y1, CLOCKREGION_X0Y2, CLOCKREGION_X0Y3 ; - -# PCIe_Bridge/Bridge_Clk driven by BUFGCTRL_X0Y28 -NET "PCIe_Bridge/Bridge_Clk" TNM_NET = "TN_PCIe_Bridge/Bridge_Clk" ; -TIMEGRP "TN_PCIe_Bridge/Bridge_Clk" AREA_GROUP = "CLKAG_PCIe_Bridge/Bridge_Clk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/Bridge_Clk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP driven by BUFGCTRL_X0Y8 -NET "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" TNM_NET = "TN_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" RANGE = CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin driven by BUFGCTRL_X0Y26 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" RANGE = CLOCKREGION_X0Y6, CLOCKREGION_X0Y7 ; - -# clk_200_0000MHz driven by BUFGCTRL_X0Y4 -NET "clk_200_0000MHz" TNM_NET = "TN_clk_200_0000MHz" ; -TIMEGRP "TN_clk_200_0000MHz" AREA_GROUP = "CLKAG_clk_200_0000MHz" ; -AREA_GROUP "CLKAG_clk_200_0000MHz" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF driven by BUFGCTRL_X0Y7 -NET "fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" TNM_NET = "TN_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" ; -TIMEGRP "TN_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" AREA_GROUP = "CLKAG_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" ; -AREA_GROUP "CLKAG_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" RANGE = CLOCKREGION_X1Y6, CLOCKREGION_X1Y7 ; - -# fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP driven by BUFGCTRL_X0Y31 -NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" TNM_NET = "TN_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" RANGE = CLOCKREGION_X1Y0, CLOCKREGION_X1Y1, CLOCKREGION_X1Y2, CLOCKREGION_X1Y3, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5 ; - -# clk_125_0000MHz90PLL0_ADJUST driven by BUFGCTRL_X0Y5 -NET "clk_125_0000MHz90PLL0_ADJUST" TNM_NET = "TN_clk_125_0000MHz90PLL0_ADJUST" ; -TIMEGRP "TN_clk_125_0000MHz90PLL0_ADJUST" AREA_GROUP = "CLKAG_clk_125_0000MHz90PLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_125_0000MHz90PLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clk_62_5000MHzPLL0_ADJUST driven by BUFGCTRL_X0Y6 -NET "clk_62_5000MHzPLL0_ADJUST" TNM_NET = "TN_clk_62_5000MHzPLL0_ADJUST" ; -TIMEGRP "TN_clk_62_5000MHzPLL0_ADJUST" AREA_GROUP = "CLKAG_clk_62_5000MHzPLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_62_5000MHzPLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg driven by BUFGCTRL_X0Y0 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" RANGE = CLOCKREGION_X0Y6, CLOCKREGION_X0Y7 ; - -# NOTE: -# This report is provided to help reproduce successful clock-region -# assignments. The report provides range constraints for all global -# clock networks, in a format that is directly usable in ucf files. -# -#END of Global Clock Net Distribution UCF Constraints -###################################################################################### - - -###################################################################################### -GLOBAL CLOCK NET LOADS DISTRIBUTION REPORT: - -Number of Global Clock Regions : 16 -Number of Global Clock Networks: 15 - -Clock Region Assignment: SUCCESSFUL - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 0 | 0 | 0 | 80 | 80 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 38 | 676 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 329 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 40 | 1005 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 55 | 1130 |PCIe_Bridge/Bridge_Clk - 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 24 | 52 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 29 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 79 | 1211 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 6/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 4 | 2 | 0 | 40 | 40 | 0 | 0 | 0 | 0 | 1 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 18 | 164 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |clk_125_0000MHz90PLL0_ADJUST - 2 | 1 | 0 | 0 | 0 | 17 | 0 | 0 | 0 | 0 | 0 | 0 | 33 | 942 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6> ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 1 | 1 | 0 | 0 | 35 | 0 | 0 | 0 | 0 | 1 | 0 | 51 | 1110 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 104 | 750 |PCIe_Bridge/Bridge_Clk - 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 15 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 312 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 1 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 104 | 1077 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 5/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 2 | 1 | 0 | 60 | 60 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 4 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20 |clk_125_0000MHz90PLL0_ADJUST - 3 | 0 | 0 | 0 | 9 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 41 | 1074 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 109 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 3 | 0 | 0 | 0 | 9 | 42 | 0 | 0 | 0 | 0 | 1 | 0 | 47 | 1207 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 150 | 685 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 59 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk - 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 28 | 407 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 1 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 178 | 1153 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 60 | 60 | 0 | 0 | 1 | 0 | 2 | 16 | 640 | 1280 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 79 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 8 | 17 | 0 | 0 | 1 | 0 | 0 | 0 | 20 | 286 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 79 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 8 | 17 | 0 | 0 | 1 | 0 | 0 | 0 | 20 | 447 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 126 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 27 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 6 | 0 | 0 | 0 | 0 | 0 | 13 | 0 | 0 | 0 | 0 | 0 | 116 | 933 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 0 | 0 | 13 | 0 | 0 | 0 | 0 | 0 | 116 | 1086 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 60 | 60 | 0 | 0 | 1 | 0 | 2 | 16 | 640 | 1280 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 33 |clk_125_0000MHz90PLL0_ADJUST - 4 | 0 | 0 | 0 | 1 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 51 | 262 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 34 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 6 | 0 | 0 | 0 | 7 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 51 | 329 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 10 | 0 | 0 | 0 | 40 | 40 | 16 | 1 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20 |PCIe_Bridge/Bridge_Clk - 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 76 | 1046 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 16 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 23 |fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 3 | 0 | 0 | 0 | 16 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 76 | 1089 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 2 | 1 | 0 | 60 | 60 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 49 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 72 | 601 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 99 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 72 | 749 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 10 | 0 | 0 | 0 | 40 | 40 | 16 | 1 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 28 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 126 | 746 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 14 |fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 126 | 789 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 7/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 4 | 2 | 0 | 40 | 40 | 0 | 0 | 0 | 0 | 1 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 8 | 0 | 0 | 0 | 0 | 0 | 0 | 91 | 751 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 249 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 15 | 8 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 2 | 0 | 0 | 35 | 0 | 0 | 0 | 0 | 1 | 0 | 106 | 1010 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 19 | 23 | 0 | 0 | 0 | 0 | 0 | 0 | 97 | 796 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 19 | 23 | 0 | 0 | 0 | 0 | 0 | 0 | 97 | 800 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 0 | 0 | 0 | 80 | 80 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 106 | 471 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 310 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 116 | 782 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 1/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 146 | 674 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 146 | 674 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - -NOTE: -The above detailed report is the initial placement of the logic after the clock region assignment. The final placement -may be significantly different because of the various optimization steps which will follow. Specifically, logic blocks -maybe moved to adjacent clock-regions as long as the "number of clocks per region" constraint is not violated. - - -# END of Global Clock Net Loads Distribution Report: -###################################################################################### - - -Phase 9.30 Global Clock Region Assignment (Checksum:b5943100) REAL time: 12 mins 45 secs - -Phase 10.3 Local Placement Optimization -Phase 10.3 Local Placement Optimization (Checksum:b5943100) REAL time: 12 mins 46 secs - -Phase 11.5 Local Placement Optimization -Phase 11.5 Local Placement Optimization (Checksum:b5943100) REAL time: 12 mins 47 secs - -Phase 12.8 Global Placement -.. -........... -........... -......... -...... -.... -..... -..... -..... -..... -..... -..... -.... -..... -..... -..... -.... -...... -..... -...... -....... -...... -....... -....... -....... -........ -... -. -..... -..... -..... -..... -...... -...... -...... -...... -...... -..... -..... -.... -..... -.... -.... -.... -.... -... -... -.... -... -... -.. -. -... -... -... -.. -... -. -. -... -.. -... -.. -... -... -... -.... -... -.... -... -. -... -... -... -.. -.... -.. -... -.. -... -.... -. -. -. -.. -... -. -.. -.. -... -... -... -. -... -... -.. -... -... -... -... -. -. -. -.. -... -.. -. -.... -.... -.... -. -.. -..... -. -... -.... -... -....... -..... -. -.... -.... -.... -..... -...... -..... -.... -.... -.... -.... -Phase 12.8 Global Placement (Checksum:64c223c7) REAL time: 20 mins 44 secs - -Phase 13.29 Local Placement Optimization -Phase 13.29 Local Placement Optimization (Checksum:64c223c7) REAL time: 20 mins 44 secs - -Phase 14.5 Local Placement Optimization -Phase 14.5 Local Placement Optimization (Checksum:64c223c7) REAL time: 20 mins 49 secs - -Phase 15.18 Placement Optimization -Phase 15.18 Placement Optimization (Checksum:d0a37aa3) REAL time: 23 mins 25 secs - -Phase 16.5 Local Placement Optimization -Phase 16.5 Local Placement Optimization (Checksum:d0a37aa3) REAL time: 23 mins 28 secs - -Phase 17.34 Placement Validation -Phase 17.34 Placement Validation (Checksum:d0a37aa3) REAL time: 23 mins 30 secs - -Total REAL time to Placer completion: 23 mins 34 secs -Total CPU time to Placer completion: 22 mins 30 secs -Running post-placement packing... -Writing output files... - -Design Summary: -Number of errors: 0 -Number of warnings: 52 -Slice Logic Utilization: - Number of Slice Registers: 14,755 out of 44,800 32% - Number used as Flip Flops: 14,754 - Number used as Latches: 1 - Number of Slice LUTs: 16,419 out of 44,800 36% - Number used as logic: 15,565 out of 44,800 34% - Number using O6 output only: 14,103 - Number using O5 output only: 371 - Number using O5 and O6: 1,091 - Number used as Memory: 724 out of 13,120 5% - Number used as Dual Port RAM: 228 - Number using O6 output only: 12 - Number using O5 output only: 32 - Number using O5 and O6: 184 - Number used as Single Port RAM: 4 - Number using O6 output only: 4 - Number used as Shift Register: 492 - Number using O6 output only: 492 - Number used as exclusive route-thru: 130 - Number of route-thrus: 581 - Number using O6 output only: 490 - Number using O5 output only: 81 - Number using O5 and O6: 10 - -Slice Logic Distribution: - Number of occupied Slices: 7,735 out of 11,200 69% - Number of LUT Flip Flop pairs used: 21,404 - Number with an unused Flip Flop: 6,649 out of 21,404 31% - Number with an unused LUT: 4,985 out of 21,404 23% - Number of fully used LUT-FF pairs: 9,770 out of 21,404 45% - Number of unique control sets: 1,397 - Number of slice register sites lost - to control set restrictions: 3,281 out of 44,800 7% - - A LUT Flip Flop pair for this architecture represents one LUT paired with - one Flip Flop within a slice. A control set is a unique combination of - clock, reset, set, and enable signals for a registered element. - The Slice Logic Distribution report is not meaningful if the design is - over-mapped for a non-slice resource or if Placement fails. - OVERMAPPING of BRAM resources should be ignored if the design is - over-mapped for a non-BRAM resource or if placement fails. - -IO Utilization: - Number of bonded IOBs: 255 out of 640 39% - Number of LOCed IOBs: 255 out of 255 100% - IOB Flip Flops: 494 - Number of bonded IPADs: 4 out of 50 8% - Number of bonded OPADs: 2 out of 32 6% - -Specific Feature Utilization: - Number of BlockRAM/FIFO: 22 out of 148 14% - Number using BlockRAM only: 20 - Number using FIFO only: 2 - Total primitives used: - Number of 36k BlockRAM used: 16 - Number of 18k BlockRAM used: 6 - Number of 36k FIFO used: 2 - Total Memory used (KB): 756 out of 5,328 14% - Number of BUFG/BUFGCTRLs: 15 out of 32 46% - Number used as BUFGs: 15 - Number of IDELAYCTRLs: 3 out of 22 13% - Number of BUFDSs: 1 out of 8 12% - Number of BUFIOs: 8 out of 80 10% - Number of DCM_ADVs: 1 out of 12 8% - Number of DSP48Es: 13 out of 128 10% - Number of GTX_DUALs: 1 out of 8 12% - Number of PCIEs: 1 out of 3 33% - Number of LOCed PCIEs: 1 out of 1 100% - Number of PLL_ADVs: 2 out of 6 33% - Number of PPC440s: 1 out of 1 100% - - Number of RPM macros: 64 -Average Fanout of Non-Clock Nets: 3.80 - -Peak Memory Usage: 888 MB -Total REAL time to MAP completion: 24 mins 23 secs -Total CPU time to MAP completion: 23 mins 18 secs - -Mapping completed. -See MAP report file "system_map.mrp" for details. - - - -#----------------------------------------------# -# Starting program par -# par -ise ../__xps/ise/system.ise -w -ol high system_map.ncd system.ncd -system.pcf -#----------------------------------------------# -Release 11.2 - par L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file with local file - - - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 - -Constraints file: system.pcf. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -WARNING:ConstraintSystem:65 - Constraint [system.pcf(90242)] - overrides constraint [system.pcf(90241)]. - - -Initializing temperature to 85.000 Celsius. (default - Range: 0.000 to 85.000 Celsius) -Initializing voltage to 0.950 Volts. (default - Range: 0.950 to 1.050 Volts) - -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP - "TNM_CLK0" TS_MC_CLK * 4; ignored during timing analysis. -INFO:Timing:3386 - Intersecting Constraints found and resolved. For more information, see the TSI report. Please - consult the Xilinx Command Line Tools User Guide for information on generating a TSI report. - -Device speed data version: "PRODUCTION 1.65 2009-06-01". - - - -Device Utilization Summary: - - Number of BUFDSs 1 out of 8 12% - Number of BUFGs 15 out of 32 46% - Number of BUFIOs 8 out of 80 10% - Number of DCM_ADVs 1 out of 12 8% - Number of DSP48Es 13 out of 128 10% - Number of FIFO36_72_EXPs 2 out of 148 1% - Number of LOCed FIFO36_72_EXPs 2 out of 2 100% - - Number of GTX_DUALs 1 out of 8 12% - Number of IDELAYCTRLs 3 out of 22 13% - Number of LOCed IDELAYCTRLs 3 out of 3 100% - - Number of ILOGICs 131 out of 800 16% - Number of LOCed ILOGICs 8 out of 131 6% - - Number of External IOBs 255 out of 640 39% - Number of LOCed IOBs 255 out of 255 100% - - Number of IODELAYs 80 out of 800 10% - Number of LOCed IODELAYs 8 out of 80 10% - - Number of External IPADs 4 out of 690 1% - Number of LOCed IPADs 4 out of 4 100% - - Number of JTAGPPCs 1 out of 1 100% - Number of OLOGICs 236 out of 800 29% - Number of External OPADs 2 out of 32 6% - Number of LOCed OPADs 2 out of 2 100% - - Number of PCIEs 1 out of 3 33% - Number of LOCed PCIEs 1 out of 1 100% - - Number of PLL_ADVs 2 out of 6 33% - Number of PPC440s 1 out of 1 100% - Number of RAMB18X2SDPs 4 out of 148 2% - Number of RAMB36SDP_EXPs 6 out of 148 4% - Number of LOCed RAMB36SDP_EXPs 1 out of 6 16% - - Number of RAMB36_EXPs 10 out of 148 6% - Number of LOCed RAMB36_EXPs 6 out of 10 60% - - Number of Slice Registers 14755 out of 44800 32% - Number used as Flip Flops 14754 - Number used as Latches 1 - Number used as LatchThrus 0 - - Number of Slice LUTS 16419 out of 44800 36% - Number of Slice LUT-Flip Flop pairs 21404 out of 44800 47% - - -Overall effort level (-ol): High -Router effort level (-rl): High - -Starting initial Timing Analysis. REAL time: 1 mins 25 secs -Finished initial Timing Analysis. REAL time: 1 mins 27 secs - -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_sb_txrem_n<0> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_MB_TxREMn<0> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal xps_bram_if_cntlr_1_port_BRAM_Addr<31> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal xps_bram_if_cntlr_1_port_BRAM_Addr<30> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_MB_RxFull has no load. PAR will not attempt to route this - signal. -Starting Router - -INFO:Route:501 - One or more directed routing (DIRT) constraints generated for a specific device have been found. Note - that DIRT strings are guaranteed to work only on the same device they were created for. If the DIRT constraints fail, - verify that the same connectivity is available in the target device for this implementation. - -Phase 1 : 106522 unrouted; REAL time: 1 mins 45 secs - -Phase 2 : 93293 unrouted; REAL time: 2 mins - -Phase 3 : 39046 unrouted; REAL time: 4 mins 11 secs - -Phase 4 : 39025 unrouted; (Setup:0, Hold:89741, Component Switching Limit:0) REAL time: 4 mins 40 secs - -Updating file: system.ncd with current fully routed design. - -Phase 5 : 0 unrouted; (Setup:0, Hold:90756, Component Switching Limit:0) REAL time: 6 mins 33 secs - -Phase 6 : 0 unrouted; (Setup:0, Hold:90756, Component Switching Limit:0) REAL time: 6 mins 33 secs - -Phase 7 : 0 unrouted; (Setup:0, Hold:90756, Component Switching Limit:0) REAL time: 6 mins 33 secs - -Phase 8 : 0 unrouted; (Setup:0, Hold:90756, Component Switching Limit:0) REAL time: 6 mins 33 secs - -Phase 9 : 0 unrouted; (Setup:0, Hold:0, Component Switching Limit:0) REAL time: 8 mins 30 secs - -Phase 10 : 0 unrouted; (Setup:0, Hold:0, Component Switching Limit:0) REAL time: 9 mins 7 secs -Total REAL time to Router completion: 9 mins 7 secs -Total CPU time to Router completion: 8 mins 54 secs - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -Generating "PAR" statistics. - -************************** -Generating Clock Report -************************** - -+---------------------+--------------+------+------+------------+-------------+ -| Clock Net | Resource |Locked|Fanout|Net Skew(ns)|Max Delay(ns)| -+---------------------+--------------+------+------+------------+-------------+ -|clk_125_0000MHzPLL0_ | | | | | | -| ADJUST | BUFGCTRL_X0Y2| No | 4263 | 0.532 | 2.076 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/Bridge_C | | | | | | -| lk |BUFGCTRL_X0Y28| No | 1472 | 0.444 | 2.085 | -+---------------------+--------------+------+------+------------+-------------+ -|clk_62_5000MHzPLL0_A | | | | | | -| DJUST | BUFGCTRL_X0Y6| No | 490 | 0.318 | 2.057 | -+---------------------+--------------+------+------+------------+-------------+ -|clk_125_0000MHz90PLL | | | | | | -| 0_ADJUST | BUFGCTRL_X0Y5| No | 162 | 0.254 | 2.028 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_SysACE_Compac | | | | | | -|tFlash_SysACE_CLK_pi | | | | | | -| n_BUFGP | BUFGCTRL_X0Y8| No | 55 | 0.150 | 1.770 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/core_c | | | | | | -| lk |BUFGCTRL_X0Y27| No | 94 | 0.260 | 2.085 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_Ethernet_MAC_ | | | | | | -|PHY_rx_clk_pin_BUFGP | | | | | | -| |BUFGCTRL_X0Y30| No | 12 | 0.093 | 1.934 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<0> | IO Clk| No | 18 | 0.095 | 0.419 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<1> | IO Clk| No | 18 | 0.083 | 0.380 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<2> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<3> | IO Clk| No | 18 | 0.107 | 0.404 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | - | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<5> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<4> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<6> | IO Clk| No | 18 | 0.096 | 0.393 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<7> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_Ethernet_MAC_ | | | | | | -|PHY_tx_clk_pin_BUFGP | | | | | | -| |BUFGCTRL_X0Y31| No | 6 | 0.004 | 1.941 | -+---------------------+--------------+------+------+------------+-------------+ -| clk_125_0000MHzPLL0 | BUFGCTRL_X0Y1| No | 2 | 0.000 | 1.739 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/pcie_b | | | | | | -| lk/gt_usrclk |BUFGCTRL_X0Y29| No | 6 | 0.096 | 1.916 | -+---------------------+--------------+------+------+------------+-------------+ -| clk_200_0000MHz | BUFGCTRL_X0Y4| No | 4 | 0.128 | 1.879 | -+---------------------+--------------+------+------+------------+-------------+ -|RS232_Uart_1_Interru | | | | | | -| pt | Local| | 1 | 0.000 | 1.071 | -+---------------------+--------------+------+------+------------+-------------+ -|Ethernet_MAC/Etherne | | | | | | -| t_MAC/phy_tx_clk_i | Local| | 9 | 2.410 | 3.454 | -+---------------------+--------------+------+------+------------+-------------+ -|ppc440_0_jtagppc_bus | | | | | | -| _JTGC405TCK | Local| | 1 | 0.000 | 1.678 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/pcie_b | | | | | | -|lk/SIO/.pcie_gt_wrap | | | | | | -| per_i/icdrreset<0> | Local| | 1 | 0.000 | 0.590 | -+---------------------+--------------+------+------+------------+-------------+ - -* Net Skew is the difference between the minimum and maximum routing -only delays for the net. Note this is different from Clock Skew which -is reported in TRCE timing report. Clock Skew is the difference between -the minimum and maximum path delays which includes logic delays. - -Timing Score: 0 (Setup: 0, Hold: 0, Component Switching Limit: 0) - -Number of Timing Constraints that were not applied: 5 - -Asterisk (*) preceding a constraint indicates it was not met. - This may be due to a setup or hold violation. - ----------------------------------------------------------------------------------------------------------- - Constraint | Check | Worst Case | Best Case | Timing | Timing - | | Slack | Achievable | Errors | Score ----------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 n | SETUP | 0.030ns| 7.970ns| 0| 0 - s HIGH 50% | HOLD | 0.030ns| | 0| 0 - | MINPERIOD | 0.000ns| 8.000ns| 0| 0 ------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/PCIe_Bridge/comp_block_p | SETUP | 0.075ns| 3.925ns| 0| 0 - lus/comp_endpoint/core_clk" PERIOD = | HOLD | 0.366ns| | 0| 0 - 4 ns HIGH 50% | MINPERIOD | 0.000ns| 4.000ns| 0| 0 ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.012ns| 0.838ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[2].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_DQ_CE = MAXDELAY FROM TIMEGRP "TNM_DQ_ | SETUP | 0.021ns| 1.879ns| 0| 0 - CE_IDDR" TO TIMEGRP "TNM_DQS_FLOPS" | HOLD | 1.026ns| | 0| 0 - 1.9 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 0.026ns| 7.974ns| 0| 0 - L0_CLK_OUT_2_ = PERIOD TIMEGRP "c | HOLD | 0.079ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_2_" TS_sys_clk_pin * 1.25 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[0].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[1].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[5].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[3].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[4].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[6].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[7].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.068ns| 0.532ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<0>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<1>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<2>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<3>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<4>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<5>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<6>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<7>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_PLB_PCIe = MAXDELAY FROM TIMEGRP "SPLB | SETUP | 0.449ns| 7.551ns| 0| 0 - _Clk" TO TIMEGRP "Bridge_Clk" 8 ns | HOLD | 0.456ns| | 0| 0 - DATAPATHONLY | | | | | ------------------------------------------------------------------------------------------------------- - TS_PCIe_PLB = MAXDELAY FROM TIMEGRP "Brid | SETUP | 0.639ns| 7.361ns| 0| 0 - ge_Clk" TO TIMEGRP "SPLB_Clk" 8 ns | HOLD | 0.465ns| | 0| 0 - DATAPATHONLY | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_CLK = PERIOD TIMEGRP "mc_clk" 5 ns | MINPERIOD | 1.010ns| 3.990ns| 0| 0 - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TSRXIN_Ethernet_MAC = MAXDELAY FROM TIMEG | MAXDELAY | 1.640ns| 4.360ns| 0| 0 - RP "PADS" TO TIMEGRP "RXCLK_GRP_E | HOLD | 1.060ns| | 0| 0 - thernet_MAC" 6 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 2.000ns| 4.973ns| 0| 0 - L0_CLK_OUT_0_ = PERIOD TIMEGRP "c | HOLD | 0.476ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_0_" TS_sys_clk_pin * 1.25 | | | | | - PHASE 2 ns HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_sys_clk_pin = PERIOD TIMEGRP "sys_clk_ | MINLOWPULSE | 6.000ns| 4.000ns| 0| 0 - pin" 100 MHz HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 3.644ns| 1.356ns| 0| 0 - L0_CLK_OUT_3_ = PERIOD TIMEGRP "c | HOLD | 0.476ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_3_" TS_sys_clk_pin * 2 HIG | | | | | - H 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 4.149ns| 8.008ns| 0| 0 - L0_CLK_OUT_4_ = PERIOD TIMEGRP "c | HOLD | 0.172ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_4_" TS_sys_clk_pin * 0.625 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_B | NETSKEW | 4.422ns| 0.578ns| 0| 0 - UFGP" MAXSKEW = 5 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_B | NETSKEW | 4.778ns| 0.222ns| 0| 0 - UFGP" MAXSKEW = 5 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | MINPERIOD | 4.900ns| 3.100ns| 0| 0 - L0_CLK_OUT_1_ = PERIOD TIMEGRP "c | | | | | - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_1_" TS_sys_clk_pin * 1.25 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TSTXOUT_Ethernet_MAC = MAXDELAY FROM TIME | MAXDELAY | 7.423ns| 2.577ns| 0| 0 - GRP "TXCLK_GRP_Ethernet_MAC" TO T | | | | | - IMEGRP "PADS" 10 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_B | SETUP | 9.210ns| 13.685ns| 0| 0 - UFGP" PERIOD = 40 ns HIGH 14 ns | HOLD | 0.479ns| | 0| 0 ------------------------------------------------------------------------------------------------------- - TS_MC_PHY_INIT_DATA_SEL_90 = MAXDELAY FRO | SETUP | 13.663ns| 6.337ns| 0| 0 - M TIMEGRP "TNM_PHY_INIT_DATA_SEL" TO | HOLD | 0.290ns| | 0| 0 - TIMEGRP "TNM_CLK90" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_PHY_INIT_DATA_SEL_0 = MAXDELAY FROM | SETUP | 15.735ns| 4.265ns| 0| 0 - TIMEGRP "TNM_PHY_INIT_DATA_SEL" TO | HOLD | 0.915ns| | 0| 0 - TIMEGRP "TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_GATE_DLY = MAXDELAY FROM TIMEGRP "T | SETUP | 17.698ns| 2.302ns| 0| 0 - NM_GATE_DLY" TO TIMEGRP "TNM_CLK0" | HOLD | 0.003ns| | 0| 0 - TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_CAL_RDEN_DLY = MAXDELAY FROM TIMEGR | SETUP | 18.121ns| 1.879ns| 0| 0 - P "TNM_CAL_RDEN_DLY" TO TIMEGRP " | HOLD | 0.001ns| | 0| 0 - TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_RDEN_DLY = MAXDELAY FROM TIMEGRP "T | SETUP | 18.132ns| 1.868ns| 0| 0 - NM_RDEN_DLY" TO TIMEGRP "TNM_CLK0" | HOLD | 0.023ns| | 0| 0 - TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_SysACE_CompactFlash_SysACE_CL | SETUP | 26.579ns| 3.421ns| 0| 0 - K_pin_BUFGP/IBUFG" PERIOD = 30 ns | HOLD | 0.465ns| | 0| 0 - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_B | SETUP | 32.855ns| 7.145ns| 0| 0 - UFGP" PERIOD = 40 ns HIGH 14 ns | HOLD | 0.357ns| | 0| 0 ------------------------------------------------------------------------------------------------------- - Pin to Pin Skew Constraint | MAXDELAY | 2106523.523ns| 2106523.837ns| 0| 0 ------------------------------------------------------------------------------------------------------- - TS_MC_RDEN_SEL_MUX = MAXDELAY FROM TIMEGR | N/A | N/A| N/A| N/A| N/A - P "TNM_RDEN_SEL_MUX" TO TIMEGRP " | | | | | - TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 n | N/A | N/A| N/A| N/A| N/A - s HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - - -Derived Constraint Report -Derived Constraints for TS_MC_CLK -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -| | Period | Actual Period | Timing Errors | Paths Analyzed | -| Constraint | Requirement |-------------+-------------|-------------+-------------|-------------+-------------| -| | | Direct | Derivative | Direct | Derivative | Direct | Derivative | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -|TS_MC_CLK | 5.000ns| 3.990ns| 1.584ns| 0| 0| 0| 345| -| TS_MC_PHY_INIT_DATA_SEL_0 | 20.000ns| 4.265ns| N/A| 0| 0| 21| 0| -| TS_MC_PHY_INIT_DATA_SEL_90 | 20.000ns| 6.337ns| N/A| 0| 0| 274| 0| -| TS_MC_GATE_DLY | 20.000ns| 2.302ns| N/A| 0| 0| 40| 0| -| TS_MC_RDEN_DLY | 20.000ns| 1.868ns| N/A| 0| 0| 5| 0| -| TS_MC_CAL_RDEN_DLY | 20.000ns| 1.879ns| N/A| 0| 0| 5| 0| -| TS_MC_RDEN_SEL_MUX | 20.000ns| N/A| N/A| 0| 0| 0| 0| -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ - -Derived Constraints for TS_sys_clk_pin -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -| | Period | Actual Period | Timing Errors | Paths Analyzed | -| Constraint | Requirement |-------------+-------------|-------------+-------------|-------------+-------------| -| | | Direct | Derivative | Direct | Derivative | Direct | Derivative | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -|TS_sys_clk_pin | 10.000ns| 4.000ns| 9.967ns| 0| 0| 0| 4043451| -| TS_clock_generator_0_clock_gen| 8.000ns| 4.973ns| N/A| 0| 0| 626| 0| -| erator_0_PLL0_CLK_OUT_0_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 8.000ns| 3.100ns| N/A| 0| 0| 0| 0| -| erator_0_PLL0_CLK_OUT_1_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 8.000ns| 7.974ns| N/A| 0| 0| 4031781| 0| -| erator_0_PLL0_CLK_OUT_2_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 5.000ns| 1.356ns| N/A| 0| 0| 2| 0| -| erator_0_PLL0_CLK_OUT_3_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 16.000ns| 8.008ns| N/A| 0| 0| 11042| 0| -| erator_0_PLL0_CLK_OUT_4_ | | | | | | | | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ - -All constraints were met. -INFO:Timing:2761 - N/A entries in the Constraints list may indicate that the - constraint does not cover any paths or that it has no requested value. - - -Generating Pad Report. - -All signals are completely routed. - -WARNING:Par:283 - There are 5 loadless signals in this design. This design will cause Bitgen to issue DRC warnings. - -Loading device for application Rf_Device from file '5vlx50t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. -INFO:ParHelpers:197 - Number of "Exact" mode Directed Routing Constraints: 128 -INFO:ParHelpers:199 - All "EXACT" mode Directed Routing constrained nets successfully routed. The number of constraints - found: 128, number successful: 128 -Total REAL time to PAR completion: 10 mins 4 secs -Total CPU time to PAR completion: 9 mins 36 secs - -Peak Memory Usage: 754 MB - -Placer: Placement generated during map. -Routing: Completed - No errors found. -Timing: Completed - No errors found. - -Number of error messages: 0 -Number of warning messages: 9 -Number of info messages: 4 - -Writing design to file system.ncd - - - -PAR done! - - - -#----------------------------------------------# -# Starting program post_par_trce -# trce -ise ../__xps/ise/system.ise -e 3 -xml system.twx system.ncd system.pcf -#----------------------------------------------# -Release 11.2 - Trace (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - - -PMSPEC -- Overriding Xilinx file - with local file - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -WARNING:ConstraintSystem:65 - Constraint [system.pcf(90242)] overrides constraint [system.pcf(90241)]. - -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM - TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP "TNM_CLK0" TS_MC_CLK * 4; - ignored during timing analysis. -INFO:Timing:3386 - Intersecting Constraints found and resolved. For more - information, see the TSI report. Please consult the Xilinx Command Line - Tools User Guide for information on generating a TSI report. --------------------------------------------------------------------------------- -Release 11.2 Trace (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -trce -ise ../__xps/ise/system.ise -e 3 -xml system.twx system.ncd system.pcf - - -Design file: system.ncd -Physical constraint file: system.pcf -Device,speed: xc5vfx70t,-1 (PRODUCTION 1.65 2009-06-01, STEPPING -level 0) -Report level: error report --------------------------------------------------------------------------------- - -INFO:Timing:2752 - To get complete path coverage, use the unconstrained paths - option. All paths that are not constrained will be reported in the - unconstrained paths section(s) of the report. -INFO:Timing:3339 - The clock-to-out numbers in this timing report are based on a - 50 Ohm transmission line loading model. For the details of this model, and - for more information on accounting for different loading conditions, please - see the device datasheet. - - -Timing summary: ---------------- - -Timing errors: 0 Score: 0 (Setup/Max: 0, Hold: 0) - -Constraints cover 4233435 paths, 18 nets, and 96471 connections - -Design statistics: - Minimum period: 13.685ns (Maximum frequency: 73.073MHz) - Maximum path delay from/to any node: 7.551ns - Maximum net delay: 0.838ns - Maximum net skew: 0.578ns - - -Analysis completed Tue Jun 30 23:01:07 2009 --------------------------------------------------------------------------------- - -Generating Report ... - -Number of warnings: 2 -Number of info messages: 3 -Total time: 1 mins 41 secs - - -xflow done! -touch __xps/system_routed -xilperl C:/devtools/Xilinx/11.1/EDK/data/fpga_impl/observe_par.pl -error yes implementation/system.par -Analyzing implementation/system.par -********************************************* -Running Bitgen.. -********************************************* -cd implementation; bitgen -w -f bitgen.ut system; cd .. -Release 11.2 - Bitgen L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -Opened constraints file system.pcf. - -Tue Jun 30 23:01:40 2009 - -Running DRC. -WARNING:PhysDesignRules:1842 - One or more GTXs are being used in this design. - Evaluate the SelectIO-To-GTX Crosstalk section of the Virtex-5 RocketIO GTX - Transceiver User Guide to ensure that the design SelectIO usage meets the - guidelines to minimize the impact on GTX performance. -WARNING:PhysDesignRules:372 - Gated clock. Clock net - Ethernet_MAC/Ethernet_MAC/phy_tx_clk_i is sourced by a combinatorial pin. - This is not good design practice. Use the CE pin to control the loading of - data into the flip-flop. -WARNING:PhysDesignRules:372 - Gated clock. Clock net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_w - rapper_i/icdrreset<0> is sourced by a combinatorial pin. This is not good - design practice. Use the CE pin to control the loading of data into the - flip-flop. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does - not drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - is incomplete. The signal does not drive any load pins in the design. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:367 - The signal - is incomplete. The signal does not drive any load pins - in the design. -WARNING:PhysDesignRules:367 - The signal - is incomplete. The signal does not drive any load pins - in the design. -DRC detected 0 errors and 26 warnings. Please see the previously displayed -individual error or warning messages for more details. -Creating bit map... -Saving bit stream in "system.bit". -Bitstream generation is complete. - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Wed Jul 01 10:06:56 2009 - make -f system.make download started... - -cp -f /cygdrive/c/devtools/Xilinx/11.1/EDK/sw/lib/ppc440/ppc440_bootloop.elf bootloops/ppc440_0.elf -********************************************* -Initializing BRAM contents of the bitstream -********************************************* -bitinit -p xc5vfx70tff1136-1 system.mhs -pe ppc440_0 bootloops/ppc440_0.elf \ --bt implementation/system.bit -o implementation/download.bit - -bitinit version Xilinx EDK 11.2 Build EDK_LS3.47 -Copyright (c) Xilinx Inc. 2002. - -Parsing MHS File system.mhs... -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! - -Overriding IP level properties ... - -Performing IP level DRCs on properties... - -Running DRC Tcl procedures for OPTION IPLEVEL_DRC_PROC... -Address Map for Processor ppc440_0 - (0b0000000000-0b0011111111) ppc440_0 - (0000000000-0x0fffffff) DDR2_SDRAM ppc440_0_PPC440MC - (0x81000000-0x8100ffff) Ethernet_MAC plb_v46_0 - (0x81400000-0x8140ffff) Push_Buttons_5Bit plb_v46_0 - (0x81420000-0x8142ffff) LEDs_Positions plb_v46_0 - (0x81440000-0x8144ffff) LEDs_8Bit plb_v46_0 - (0x81460000-0x8146ffff) DIP_Switches_8Bit plb_v46_0 - (0x81600000-0x8160ffff) IIC_EEPROM plb_v46_0 - (0x81800000-0x8180ffff) xps_intc_0 plb_v46_0 - (0x83600000-0x8360ffff) SysACE_CompactFlash plb_v46_0 - (0x84000000-0x8400ffff) RS232_Uart_1 plb_v46_0 - (0x85c00000-0x85c0ffff) PCIe_Bridge plb_v46_0 - (0xc0000000-0xdfffffff) PCIe_Bridge plb_v46_0 - (0xe0000000-0xefffffff) PCIe_Bridge plb_v46_0 - (0xf8000000-0xf80fffff) SRAM plb_v46_0 - (0xffffe000-0xffffffff) xps_bram_if_cntlr_1 plb_v46_0 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 175 - tool is overriding PARAMETER - C_SPLB0_P2P value to 0 - -Computing clock values... -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 12 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 76 - tool is overriding - PARAMETER C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 80 - tool is overriding - PARAMETER C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 69 - tool is overriding PARAMETER C_MEMSIZE - value to 0x2000 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PORT_DWIDTH value to 64 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_NUM_WE - value to 8 -INFO:EDK:1560 - IPNAME:xps_uartlite INSTANCE:RS232_Uart_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_uartlite_v1_01 - _a\data\xps_uartlite_v2_1_0.mpd line 73 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_Positions - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:Push_Buttons_5Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:DIP_Switches_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_iic INSTANCE:IIC_EEPROM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_iic_v2_01_a\da - ta\xps_iic_v2_1_0.mpd line 79 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 82 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 84 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 86 - tool is overriding PARAMETER - C_MPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 87 - tool is overriding PARAMETER - C_MPLB_SMALLEST_SLAVE value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 89 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 90 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 91 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 95 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_ethernetlite_v - 2_01_a\data\xps_ethernetlite_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 74 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 75 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 - -Checking platform address map ... - -Initializing Memory... -Running Data2Mem with the following command: -data2mem -bm "implementation/system_bd" -bt "implementation/system.bit" -bd -"bootloops/ppc440_0.elf" tag ppc440_0 -o b implementation/download.bit -Memory Initialization completed successfully. - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. -write (count, cmdBuffer, dataBuffer) failed C0000004. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2301. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -Downloading c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex. -Downloaded firmware version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 1 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -5: Device Temperature: Current Reading: 41.02 C, Min. Reading: 27.73 C, Max. -Reading: 41.02 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.502 V, Max. -Reading: 2.508 V -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -At Local date and time: Wed Jul 01 10:07:40 2009 - make -f system.make program started... - -********************************************* -Creating software libraries... -********************************************* -libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg __xps/ise/xmsgprops.lst system.mss -libgen -Xilinx EDK 11.2 Build EDK_LS3.47 -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -Command Line: libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg -__xps/ise/xmsgprops.lst system.mss - -Release 11.2 - psf2Edward EDK_LS3.47 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! - -Checking platform configuration ... -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 109 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 290 - 1 master(s) : 1 slave(s) -IPNAME:fcb_v20 INSTANCE:ppc440_0_fcb_v20 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 394 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 461 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... -WARNING:EDK:411 - pcie - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - ss line 77 - deprecated driver! -WARNING:EDK:411 - emaclite - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.m - ss line 83 - deprecated driver! -INFO:EDK:1740 - List of peripherals connected to processor instance ppc440_0: - - DDR2_SDRAM - - DIP_Switches_8Bit - - Ethernet_MAC - - IIC_EEPROM - - LEDs_8Bit - - LEDs_Positions - - PCIe_Bridge - - Push_Buttons_5Bit - - RS232_Uart_1 - - SRAM - - SysACE_CompactFlash - - ppc440_0_apu_fpu_virtex5 - - xps_bram_if_cntlr_1 - - xps_intc_0 - --- Generating libraries for processor: ppc440_0 -- - - -Staging source files. -Running DRCs. -Running generate. -Running post_generate. -Running include - 'make -s include "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mfpu=dp_full -mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. - -Running libs - 'make -s libs "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mfpu=dp_full -mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. -Compiling common -powerpc-eabi-ar: creating ../../../lib/libxil.a - -Compiling lldma -Compiling standalone -Compiling gpio -Compiling emaclite -Compiling iic -Compiling pci -Compiling uartlite -Compiling sysace -Compiling intc -Compiling cpu_ppc440 -Running execs_generate. -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51202 372 87844 139418 2209a RTOSDemo/executable.elf - - -Done! - -At Local date and time: Wed Jul 01 11:26:01 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 1 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 33.15 C, Min. Reading: 30.69 C, Max. -Reading: 33.64 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.502 V, Max. -Reading: 2.508 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -Done. - -Done. - -Done. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -Done. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -Done. - -Done. - -Done. - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Wed Jul 01 17:11:24 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 150 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 3 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 42.99 C, Min. Reading: 34.13 C, Max. -Reading: 42.99 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.502 V, Max. -Reading: 2.505 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 12 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -At Local date and time: Wed Jul 01 17:17:34 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 150 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 0 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 62.68 C, Min. Reading: 62.68 C, Max. -Reading: 66.13 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.996 V, Max. -Reading: 0.999 V -5: VCCAUX Supply: Current Reading: 2.502 V, Min. Reading: 2.502 V, Max. -Reading: 2.505 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -Done. - -Done. - -Done. - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -At Local date and time: Wed Jul 01 18:45:58 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 3 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 42.99 C, Min. Reading: 37.58 C, Max. -Reading: 42.99 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 0.999 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.502 V, Max. -Reading: 2.505 V -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Thu Jul 02 09:58:07 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51202 372 87844 139418 2209a RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 09:58:40 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. -write (count, cmdBuffer, dataBuffer) failed C0000004. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2301. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -Downloading c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex. -Downloaded firmware version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 2 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 32.16 C, Min. Reading: 30.20 C, Max. -Reading: 32.66 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.505 V, Max. -Reading: 2.508 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -At Local date and time: Thu Jul 02 10:23:31 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50962 372 87844 139178 21faa RTOSDemo/executable.elf - - -Done! - -Done. - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -At Local date and time: Thu Jul 02 10:27:44 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 1 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 41.02 C, Min. Reading: 36.10 C, Max. -Reading: 41.02 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.502 V, Min. Reading: 2.502 V, Max. -Reading: 2.505 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -At Local date and time: Thu Jul 02 11:09:53 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51014 372 87852 139238 21fe6 RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 11:19:46 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50970 372 87852 139194 21fba RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 11:36:56 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50962 372 87844 139178 21faa RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 11:45:58 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51002 372 87852 139226 21fda RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 11:50:02 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51010 372 87860 139242 21fea RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 11:55:33 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51006 372 87860 139238 21fe6 RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 13:28:01 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51250 372 87860 139482 220da RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 13:29:26 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51242 372 87852 139466 220ca RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 13:31:57 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 1 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 74.00 C, Min. Reading: 41.02 C, Max. -Reading: 74.49 C -5: VCCINT Supply: Current Reading: 0.993 V, Min. Reading: 0.993 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.496 V, Min. Reading: 2.493 V, Max. -Reading: 2.505 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -At Local date and time: Thu Jul 02 13:35:43 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 1 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 73.02 C, Min. Reading: 70.06 C, Max. -Reading: 74.00 C -5: VCCINT Supply: Current Reading: 0.993 V, Min. Reading: 0.993 V, Max. -Reading: 0.999 V -5: VCCAUX Supply: Current Reading: 2.496 V, Min. Reading: 2.493 V, Max. -Reading: 2.502 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 12 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -At Local date and time: Thu Jul 02 13:38:54 2009 - make -f system.make program started... - -make: Nothing to be done for `program'. - - -Done! - -At Local date and time: Thu Jul 02 13:39:15 2009 - make -f system.make programclean started... - -rm -f RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 13:39:21 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50774 372 87852 138998 21ef6 RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 13:52:39 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50566 372 87852 138790 21e26 RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 13:53:08 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50542 372 87860 138774 21e16 RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 14:02:13 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50222 372 87860 138454 21cd6 RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 14:20:50 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50298 372 87852 138522 21d1a RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 15:31:05 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c: In function 'vSecondaryBlockTimeTestTask': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c:426: error: 'tskTCB' has no member named 'xEventTaskList' - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSwitchContext': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1542: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1543: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGiveMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:348: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueTakeMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:394: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGenericReceive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:839: warning: assignment from incompatible pointer type - -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 15:31:42 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c: In function 'vSecondaryBlockTimeTestTask': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c:426: error: 'tskTCB' has no member named 'xEventList' - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSwitchContext': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1542: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1543: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGiveMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:348: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueTakeMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:394: warning: comparison of distinct pointer types lacks a cast - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGenericReceive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:839: warning: assignment from incompatible pointer type - -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 15:32:24 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSwitchContext': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1542: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1543: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGiveMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:348: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueTakeMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:394: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGenericReceive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:839: warning: assignment from incompatible pointer type - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51246 372 87844 139462 220c6 RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 15:38:48 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSwitchContext': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1548: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1549: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskPlaceOnEventList': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1591: error: 'xSecondary' undeclared (first use in this function) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1591: error: (Each undeclared identifier is reported only once -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1591: error: for each function it appears in.) - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGiveMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:348: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueTakeMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:394: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGenericReceive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:839: warning: assignment from incompatible pointer type - -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 15:46:20 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSwitchContext': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1548: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1549: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskPlaceOnEventList': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1591: error: 'xSecondary' undeclared (first use in this function) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1591: error: (Each undeclared identifier is reported only once -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1591: error: for each function it appears in.) - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGiveMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:348: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueTakeMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:394: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGenericReceive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:839: warning: assignment from incompatible pointer type - -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 15:47:05 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSwitchContext': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1550: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1551: warning: passing argument 1 of 'vApplicationStackOverflowHook' from incompatible pointer type - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGiveMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:348: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueTakeMutexRecursive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:394: warning: comparison of distinct pointer types lacks a cast -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c: In function 'xQueueGenericReceive': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c:839: warning: assignment from incompatible pointer type - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51334 372 87852 139558 22126 RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 15:48:10 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 0 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 69.08 C, Min. Reading: 66.62 C, Max. -Reading: 75.48 C -5: VCCINT Supply: Current Reading: 0.993 V, Min. Reading: 0.990 V, Max. -Reading: 0.999 V -5: VCCAUX Supply: Current Reading: 2.496 V, Min. Reading: 2.493 V, Max. -Reading: 2.505 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -At Local date and time: Thu Jul 02 15:52:34 2009 - make -f system.make program started... - -make: Nothing to be done for `program'. - - -Done! - -At Local date and time: Thu Jul 02 15:54:04 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c: In function 'vSecondaryBlockTimeTestTask': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c:426: warning: dereferencing 'void *' pointer -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c:426: error: request for member 'xEventListItem' in something not a structure or union - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSuspend': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:844: warning: dereferencing 'void *' pointer -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:844: error: request for member 'xEventListItem' in something not a structure or union - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskPlaceOnEventList': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1593: error: invalid operands to binary == - -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 15:55:43 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskSuspend': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:844: warning: dereferencing 'void *' pointer -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:844: error: request for member 'xEventListItem' in something not a structure or union - -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskPlaceOnEventList': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1593: error: invalid operands to binary == - -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 15:57:13 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c: In function 'vTaskPlaceOnEventList': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1593: error: cannot convert to a pointer type - -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 15:58:01 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51338 372 87852 139562 2212a RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 16:00:52 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51338 372 87852 139562 2212a RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 16:32:08 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51878 372 87852 140102 22346 RTOSDemo/executable.elf - - -Done! - -Done. - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Thu Jul 02 17:37:11 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51910 372 87852 140134 22366 RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 17:37:43 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. -write (count, cmdBuffer, dataBuffer) failed C0000004. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2301. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -Downloading c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex. -Downloaded firmware version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 2 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 42.99 C, Min. Reading: 37.58 C, Max. -Reading: 44.47 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.502 V, Max. -Reading: 2.508 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -At Local date and time: Thu Jul 02 18:25:53 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 51950 372 87844 140166 22386 RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 20:25:21 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'xTaskCheckForTimeOut': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:71: error: 'xNumOfOverflows' undeclared (first use in this function) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:71: error: (Each undeclared identifier is reported only once -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:71: error: for each function it appears in.) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:77: error: 'pdTRUE' undeclared (first use in this function) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:84: error: 'pdFALSE' undeclared (first use in this function) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: At top level: -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:96: warning: conflicting types for 'vTaskSetTimeOutState' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:83: warning: previous implicit declaration of 'vTaskSetTimeOutState' was here -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'vTaskSetTimeOutState': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:97: error: 'xNumOfOverflows' undeclared (first use in this function) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:109: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:111: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:116: error: expected expression before 'xTimeOutType' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:132: error: 'pdTRUE' undeclared (first use in this function) -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:134: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:142: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:150: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:103: warning: return type of 'main' is not 'int' -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 20:27:35 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:53:19: error: conio.h: No such file or directory -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:113: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:115: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:184: warning: incompatible implicit declaration of built-in function 'exit' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:107: warning: return type of 'main' is not 'int' -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 20:28:16 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:111: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:113: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:136: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:144: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:152: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:157: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:176: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:181: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:182: warning: incompatible implicit declaration of built-in function 'exit' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:105: warning: return type of 'main' is not 'int' - -/ -cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccpw6KfT.o: In function `vTaskSetTimeOutState': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:71: multiple definition of `vTaskSetTimeOutState' -/cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccwVIJA2.o:/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1697: first defined here -/cygdrive/c/devtools/Xilinx/11.1/EDK/gnu/powerpc-eabi/nt/bin/../lib/gcc/powerpc-eabi/4.1.1/../../../../powerpc-eabi/bin/ld: Warning: size of symbol `vTaskSetTimeOutState' changed from 68 in /cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccwVIJA2.o to 72 in /cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccpw6KfT.o -/cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccpw6KfT.o: In function `xTaskCheckForTimeOut': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:77: multiple definition of `xTaskCheckForTimeOut' -/cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccwVIJA2.o:/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1704: first defined here -/cygdrive/c/devtools/Xilinx/11.1/EDK/gnu/powerpc-eabi/nt/bin/../lib/gcc/powerpc-eabi/4.1.1/../../../../powerpc-eabi/bin/ld: Warning: size of symbol `xTaskCheckForTimeOut' changed from 388 in /cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccwVIJA2.o to 276 in /cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccpw6KfT.o -/cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccwVIJA2.o: In function `vTaskSwitchContext': -tasks.c:(.text+0x1798): undefined reference to `vApplicationStackOverflowHook' -tasks.c:(.text+0x17e8): undefined reference to `vApplicationStackOverflowHook' -/cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccpw6KfT.o: In function `main': -main.c:(.text+0x2f4): undefined reference to `kbhit' -main.c:(.text+0x304): undefined reference to `getch' -collect2: ld returned 1 exit status -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 20:31:20 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:117: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:143: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:105: warning: return type of 'main' is not 'int' - -/cygdrive/c/DOCUME~1/RICHAR~1.DOM/LOCALS~1/Temp/ccZOTZW1.o: In function `vTaskSwitchContext': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1556: undefined reference to `vApplicationStackOverflowHook' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c:1557: undefined reference to `vApplicationStackOverflowHook' -collect2: ld returned 1 exit status -make: *** [RTOSDemo/executable.elf] Error 1 - - - -Done! - -At Local date and time: Thu Jul 02 20:31:50 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:123: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:146: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50578 368 87832 138778 21e1a RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 20:32:59 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:123: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:148: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50706 368 87832 138906 21e9a RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 20:38:30 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:123: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:148: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50706 368 87832 138906 21e9a RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 20:40:24 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:122: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:151: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50730 368 87840 138938 21eba RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 20:43:10 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:122: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:151: warning: incompatible implicit declaration of built-in function 'printf' -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50730 368 87840 138938 21eba RTOSDemo/executable.elf - - -Done! - -At Local date and time: Thu Jul 02 20:46:15 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:122: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50694 368 87840 138902 21e96 RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 20:49:41 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:122: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50730 368 87840 138938 21eba RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 20:54:28 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:122: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50802 368 87832 139002 21efa RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 20:58:12 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:120: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:122: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50846 368 87832 139046 21f26 RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 20:59:39 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c: In function 'main': -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:122: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:124: warning: comparison is always true due to limited range of data type -/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c:108: warning: return type of 'main' is not 'int' - -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50866 368 87832 139066 21f3a RTOSDemo/executable.elf - - -Done! - -Done. - -At Local date and time: Thu Jul 02 21:29:34 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50622 372 87856 138850 21e62 RTOSDemo/executable.elf - - -Done! - -Done. - -Done. - -At Local date and time: Fri Jul 03 02:08:31 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 1 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 38.07 C, Min. Reading: 35.12 C, Max. -Reading: 38.56 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.502 V, Max. -Reading: 2.505 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Done. - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Fri Jul 03 18:19:28 2009 - make -f system.make download started... - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 5 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 59.23 C, Min. Reading: 38.07 C, Max. -Reading: 74.99 C -5: VCCINT Supply: Current Reading: 0.996 V, Min. Reading: 0.993 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.496 V, Min. Reading: 2.493 V, Max. -Reading: 2.505 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -At Local date and time: Fri Jul 03 18:20:05 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O3 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=dp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D USE_DP_FPU -D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 44758 372 87852 132982 20776 RTOSDemo/executable.elf - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/; exit;" - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Sun Jul 05 09:36:55 2009 - make -f system.make hwclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed -rm -rf implementation synthesis xst hdl -rm -rf xst.srp system.srp -rm -f __xps/ise/_xmsgs/bitinit.xmsgs - - -Done! - -At Local date and time: Sun Jul 05 09:37:10 2009 - make -f system.make swclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs -rm -f RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log deleted file mode 100644 index 817aa9bbd..000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/Version_Changes.log +++ /dev/null @@ -1,15 +0,0 @@ - The following files will be modified: - system.mhs - system.mss - --------------------------------------- - The following changes will be made: - Core ppc440mc_ddr2 2.00.a will be replaced by 2.00.b - Core clock_generator 3.00.a will be replaced by 3.01.a - - Driver iic 1.14.a will be replaced by 1.15.a - Driver cpu_ppc440 1.00.b will be replaced by 1.01.a --------------------------------------- - The following changes need to be made manually by the user: - Core plbv46_pcie 3.00.b needs to be replaced by 4.01.a - Core xps_ethernetlite 2.01.a needs to be replaced by 3.00.a diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log deleted file mode 100644 index 9f6181529..000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.log +++ /dev/null @@ -1,4454 +0,0 @@ -No logfile was found. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -The project file (XMP) has changed on disk. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs line 253 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs line 298 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -At Local date and time: Tue Jun 30 18:34:41 2009 - make -f system.make hwclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed -rm -rf implementation synthesis xst hdl -rm -rf xst.srp system.srp -rm -f __xps/ise/_xmsgs/bitinit.xmsgs - - -Done! - -At Local date and time: Tue Jun 30 18:34:46 2009 - make -f system.make bitsclean started... - -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed - - -Done! - -At Local date and time: Tue Jun 30 18:34:52 2009 - make -f system.make netlistclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm - - -Done! - -At Local date and time: Tue Jun 30 18:34:57 2009 - make -f system.make libsclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs - - -Done! - -At Local date and time: Tue Jun 30 18:35:02 2009 - make -f system.make programclean started... - -rm -f RTOSDemo/executable.elf - - -Done! - -At Local date and time: Tue Jun 30 18:35:08 2009 - make -f system.make swclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs -rm -f RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Fri Jul 03 21:23:32 2009 - make -f system.make bits started... - -**************************************************** -Creating system netlist for hardware specification.. -**************************************************** -platgen -p xc5vfx70tff1136-1 -lang vhdl -msg __xps/ise/xmsgprops.lst system.mhs - -Release 11.2 - platgen Xilinx EDK 11.2 Build EDK_LS3.47 - (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - - -Command Line: platgen -p xc5vfx70tff1136-1 -lang vhdl -msg -__xps/ise/xmsgprops.lst system.mhs - -Parse -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.mhs -... - -Read MPD definitions ... -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! - -Overriding IP level properties ... - -Performing IP level DRCs on properties... - -Running DRC Tcl procedures for OPTION IPLEVEL_DRC_PROC... -Address Map for Processor ppc440_0 - (0b0000000000-0b0011111111) ppc440_0 - (0000000000-0x0fffffff) DDR2_SDRAM ppc440_0_PPC440MC - (0x81000000-0x8100ffff) Ethernet_MAC plb_v46_0 - (0x81400000-0x8140ffff) Push_Buttons_5Bit plb_v46_0 - (0x81420000-0x8142ffff) LEDs_Positions plb_v46_0 - (0x81440000-0x8144ffff) LEDs_8Bit plb_v46_0 - (0x81460000-0x8146ffff) DIP_Switches_8Bit plb_v46_0 - (0x81600000-0x8160ffff) IIC_EEPROM plb_v46_0 - (0x81800000-0x8180ffff) xps_intc_0 plb_v46_0 - (0x83600000-0x8360ffff) SysACE_CompactFlash plb_v46_0 - (0x84000000-0x8400ffff) RS232_Uart_1 plb_v46_0 - (0x85c00000-0x85c0ffff) PCIe_Bridge plb_v46_0 - (0xc0000000-0xdfffffff) PCIe_Bridge plb_v46_0 - (0xe0000000-0xefffffff) PCIe_Bridge plb_v46_0 - (0xf8000000-0xf80fffff) SRAM plb_v46_0 - (0xffffe000-0xffffffff) xps_bram_if_cntlr_1 plb_v46_0 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 175 - tool is overriding PARAMETER - C_SPLB0_P2P value to 0 - -Computing clock values... -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 12 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 76 - tool is overriding - PARAMETER C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 80 - tool is overriding - PARAMETER C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 69 - tool is overriding PARAMETER C_MEMSIZE - value to 0x2000 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PORT_DWIDTH value to 64 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_NUM_WE - value to 8 -INFO:EDK:1560 - IPNAME:xps_uartlite INSTANCE:RS232_Uart_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_uartlite_v1_01 - _a\data\xps_uartlite_v2_1_0.mpd line 73 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_Positions - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:Push_Buttons_5Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:DIP_Switches_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_iic INSTANCE:IIC_EEPROM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_iic_v2_01_a\da - ta\xps_iic_v2_1_0.mpd line 79 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 82 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 84 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 86 - tool is overriding PARAMETER - C_MPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 87 - tool is overriding PARAMETER - C_MPLB_SMALLEST_SLAVE value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 89 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 90 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 91 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 95 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_ethernetlite_v - 2_01_a\data\xps_ethernetlite_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 74 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 75 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 - -Checking platform address map ... - -Checking platform configuration ... -INFO:EDK:1563 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - This design requires design constraints to guarantee - performance. - Please refer to the xps_ethernetlite_v2_00_a data sheet for details. - The PLB clock frequency must be greater than or equal to 50 MHz for 100 Mbs - Ethernet operation and greater than or equal to 5.0 MHz for 10 Mbs Ethernet - operation. -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 109 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 290 - 1 master(s) : 1 slave(s) -IPNAME:fcb_v20 INSTANCE:ppc440_0_fcb_v20 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 394 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 462 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 124 - tcl is overriding PARAMETER - C_PPC440MC_ADDR_BASE value to 0x00000000 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 125 - tcl is overriding PARAMETER - C_PPC440MC_ADDR_HIGH value to 0x0fffffff -INFO:EDK:1560 - IPNAME:jtagppc_cntlr INSTANCE:jtagppc_cntlr_inst - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\jtagppc_cntlr_v2_0 - 1_c\data\jtagppc_cntlr_v2_1_0.mpd line 70 - tcl is overriding PARAMETER - C_NUM_PPC_USED value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 79 - tcl is overriding PARAMETER C_KIND_OF_INTR - value to 0b00000000000000000000000000000001 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 80 - tcl is overriding PARAMETER C_KIND_OF_EDGE - value to 0b00000000000000000000000000000001 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 81 - tcl is overriding PARAMETER C_KIND_OF_LVL - value to 0b00000000000000000000000000000000 - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... - -Running UPDATE Tcl procedures for OPTION PLATGEN_SYSLEVEL_UPDATE_PROC... -INFO: The PCIe_Bridge core has constraints automatically generated by XPS in -implementation/pcie_bridge_wrapper/pcie_bridge_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - -INFO: The Ethernet_MAC core has constraints automatically generated by XPS in -implementation/ethernet_mac_wrapper/ethernet_mac_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - -INFO: The DDR2_SDRAM core has constraints automatically generated by XPS in -implementation/ddr2_sdram_wrapper/ddr2_sdram_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - - -Modify defaults ... - -Creating stub ... - -Processing licensed instances ... -Completion time: 0.00 seconds - -Creating hardware output directories ... - -Managing hardware (BBD-specified) netlist files ... -IPNAME:plbv46_pcie INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 253 - Copying (BBD-specified) netlist files. -IPNAME:xps_ethernetlite INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 298 - Copying (BBD-specified) netlist files. -IPNAME:apu_fpu_virtex5 INSTANCE:ppc440_0_apu_fpu_virtex5 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 401 - Copying (BBD-specified) netlist files. - -Managing cache ... - -Elaborating instances ... -IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 131 - elaborating IP - -Writing HDL for elaborated instances ... - -Inserting wrapper level ... -Completion time: 2.00 seconds - -Constructing platform-level connectivity ... -Completion time: 1.00 seconds - -Writing (top-level) BMM ... - -Writing (top-level and wrappers) HDL ... - -Generating synthesis project file ... - -Running XST synthesis ... - -INFO:EDK:2502 - The following instances are synthesized with XST. The MPD option - IMP_NETLIST=TRUE indicates that a NGC file is to be produced using XST - synthesis. IMP_NETLIST=FALSE (default) instances are not synthesized. -INSTANCE:ppc440_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 78 - Running XST synthesis -INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 109 - Running XST synthesis -INSTANCE:xps_bram_if_cntlr_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 118 - Running XST synthesis -INSTANCE:xps_bram_if_cntlr_1_bram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 131 - Running XST synthesis -INSTANCE:rs232_uart_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 138 - Running XST synthesis -INSTANCE:leds_8bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 154 - Running XST synthesis -INSTANCE:leds_positions - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 168 - Running XST synthesis -INSTANCE:push_buttons_5bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 182 - Running XST synthesis -INSTANCE:dip_switches_8bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 196 - Running XST synthesis -INSTANCE:iic_eeprom - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 210 - Running XST synthesis -INSTANCE:sram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 223 - Running XST synthesis -INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 253 - Running XST synthesis -INSTANCE:ppc440_0_splb0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 290 - Running XST synthesis -INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 298 - Running XST synthesis -INSTANCE:ddr2_sdram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 317 - Running XST synthesis -INSTANCE:sysace_compactflash - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 377 - Running XST synthesis -INSTANCE:ppc440_0_fcb_v20 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 394 - Running XST synthesis -INSTANCE:ppc440_0_apu_fpu_virtex5 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 401 - Running XST synthesis -INSTANCE:clock_generator_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 408 - Running XST synthesis -INSTANCE:jtagppc_cntlr_inst - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 447 - Running XST synthesis -INSTANCE:proc_sys_reset_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 453 - Running XST synthesis -INSTANCE:xps_intc_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 465 - Running XST synthesis - -Running NGCBUILD ... -IPNAME:ppc440_0_wrapper INSTANCE:ppc440_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 78 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ppc440_0_wrapper.ucf -sd .. -ppc440_0_wrapper.ngc ../ppc440_0_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ppc440_0_wrapper/ppc440_0_wrapper.ngc" ... - -Applying constraints in "ppc440_0_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ppc440_0_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 7 sec -Total CPU time to NGCBUILD completion: 5 sec - -Writing NGCBUILD log file "../ppc440_0_wrapper.blc"... - -NGCBUILD done. -IPNAME:rs232_uart_1_wrapper INSTANCE:rs232_uart_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 138 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -sd .. rs232_uart_1_wrapper.ngc -../rs232_uart_1_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/rs232_uart_1_wrapper/rs232_uart_1_wrapper.ngc" ... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../rs232_uart_1_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 2 sec -Total CPU time to NGCBUILD completion: 1 sec - -Writing NGCBUILD log file "../rs232_uart_1_wrapper.blc"... - -NGCBUILD done. -IPNAME:pcie_bridge_wrapper INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 253 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc pcie_bridge_wrapper.ucf -sd .. -pcie_bridge_wrapper.ngc ../pcie_bridge_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/pcie_bridge_wrapper/pcie_bridge_wrapper.ngc" ... -Executing edif2ngd -noa -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper_fifo_generator_v4_3.edn" -"pcie_bridge_wrapper_fifo_generator_v4_3.ngo" -Release 11.2 - edif2ngd L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -INFO:NgdBuild - Release 11.2 edif2ngd L.46 (nt) -INFO:NgdBuild - Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file -with local file -Writing module to "pcie_bridge_wrapper_fifo_generator_v4_3.ngo"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper\pcie_bridge_wrapper_fifo_generator_v4_3.ngo"... -Loading design module -"../pcie_bridge_wrapper_fifo_generator_v4_3_fifo_generator_v4_3_xst_1.ngc"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper/dpram_70_512.ngc"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\implementa -tion\pcie_bridge_wrapper/fifo_71x512.ngc"... - -Applying constraints in "pcie_bridge_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../pcie_bridge_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 13 sec -Total CPU time to NGCBUILD completion: 7 sec - -Writing NGCBUILD log file "../pcie_bridge_wrapper.blc"... - -NGCBUILD done. -IPNAME:ethernet_mac_wrapper INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 298 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ethernet_mac_wrapper.ucf -sd .. -ethernet_mac_wrapper.ngc ../ethernet_mac_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ethernet_mac_wrapper/ethernet_mac_wrapper.ngc" ... -Executing edif2ngd -noa "ethernetlite_v1_01_b_dmem_v2.edn" -"ethernetlite_v1_01_b_dmem_v2.ngo" -Release 11.2 - edif2ngd L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -INFO:NgdBuild - Release 11.2 edif2ngd L.46 (nt) -INFO:NgdBuild - Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file -with local file -Writing module to "ethernetlite_v1_01_b_dmem_v2.ngo"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\implementa -tion\ethernet_mac_wrapper\ethernetlite_v1_01_b_dmem_v2.ngo"... - -Applying constraints in "ethernet_mac_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ethernet_mac_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 8 sec -Total CPU time to NGCBUILD completion: 5 sec - -Writing NGCBUILD log file "../ethernet_mac_wrapper.blc"... - -NGCBUILD done. -IPNAME:ddr2_sdram_wrapper INSTANCE:ddr2_sdram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 317 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ddr2_sdram_wrapper.ucf -sd .. -ddr2_sdram_wrapper.ngc ../ddr2_sdram_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ddr2_sdram_wrapper/ddr2_sdram_wrapper.ngc" ... - -Applying constraints in "ddr2_sdram_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ddr2_sdram_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 6 sec -Total CPU time to NGCBUILD completion: 5 sec - -Writing NGCBUILD log file "../ddr2_sdram_wrapper.blc"... - -NGCBUILD done. -IPNAME:ppc440_0_apu_fpu_virtex5_wrapper INSTANCE:ppc440_0_apu_fpu_virtex5 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 401 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ppc440_0_apu_fpu_virtex5_wrapper.ucf -sd -.. ppc440_0_apu_fpu_virtex5_wrapper.ngc ../ppc440_0_apu_fpu_virtex5_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/ppc440_0_apu_fpu_virtex5_wrapper/ppc440_0_apu_fpu_virtex5_wrapper.ngc" ... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\implementa -tion\ppc440_0_apu_fpu_virtex5_wrapper/apu_fpu_sp_lo.ngc"... - -Applying constraints in "ppc440_0_apu_fpu_virtex5_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ppc440_0_apu_fpu_virtex5_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 6 sec -Total CPU time to NGCBUILD completion: 5 sec - -Writing NGCBUILD log file "../ppc440_0_apu_fpu_virtex5_wrapper.blc"... - -NGCBUILD done. -IPNAME:xps_intc_0_wrapper INSTANCE:xps_intc_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 465 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -sd .. xps_intc_0_wrapper.ngc -../xps_intc_0_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/xps_intc_0_wrapper/xps_intc_0_wrapper.ngc" ... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../xps_intc_0_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 2 sec -Total CPU time to NGCBUILD completion: 1 sec - -Writing NGCBUILD log file "../xps_intc_0_wrapper.blc"... - -NGCBUILD done. - -Rebuilding cache ... - -Total run time: 1330.00 seconds -Running synthesis... -bash -c "cd synthesis; ./synthesis.sh" -xst -ifn system_xst.scr -intstyle silent -Running XST synthesis ... -XST completed -Release 11.2 - ngcbuild L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Overriding Xilinx file with local file - - -Command Line: c:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -./system.ngc ../implementation/system.ngc -sd ../implementation -i -ise -../__xps/ise/system.ise - -Reading NGO file -"c:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/synthesis/ -system.ngc" ... -Loading design module "../implementation/ppc440_0_wrapper.ngc"... -Loading design module "../implementation/plb_v46_0_wrapper.ngc"... -Loading design module "../implementation/xps_bram_if_cntlr_1_wrapper.ngc"... -Loading design module -"../implementation/xps_bram_if_cntlr_1_bram_wrapper.ngc"... -Loading design module "../implementation/rs232_uart_1_wrapper.ngc"... -Loading design module "../implementation/leds_8bit_wrapper.ngc"... -Loading design module "../implementation/leds_positions_wrapper.ngc"... -Loading design module "../implementation/push_buttons_5bit_wrapper.ngc"... -Loading design module "../implementation/dip_switches_8bit_wrapper.ngc"... -Loading design module "../implementation/iic_eeprom_wrapper.ngc"... -Loading design module "../implementation/sram_wrapper.ngc"... -Loading design module "../implementation/pcie_bridge_wrapper.ngc"... -Loading design module "../implementation/ppc440_0_splb0_wrapper.ngc"... -Loading design module "../implementation/ethernet_mac_wrapper.ngc"... -Loading design module "../implementation/ddr2_sdram_wrapper.ngc"... -Loading design module "../implementation/sysace_compactflash_wrapper.ngc"... -Loading design module "../implementation/ppc440_0_fcb_v20_wrapper.ngc"... -Loading design module -"../implementation/ppc440_0_apu_fpu_virtex5_wrapper.ngc"... -Loading design module "../implementation/clock_generator_0_wrapper.ngc"... -Loading design module "../implementation/jtagppc_cntlr_inst_wrapper.ngc"... -Loading design module "../implementation/proc_sys_reset_0_wrapper.ngc"... -Loading design module "../implementation/xps_intc_0_wrapper.ngc"... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../implementation/system.ngc" ... -Total REAL time to NGCBUILD completion: 15 sec -Total CPU time to NGCBUILD completion: 11 sec - -Writing NGCBUILD log file "../implementation/system.blc"... - -NGCBUILD done. -********************************************* -Running Xilinx Implementation tools.. -********************************************* -xflow -wd implementation -p xc5vfx70tff1136-1 -implement xflow.opt -ise ../__xps/ise/system.ise system.ngc -Release 11.2 - Xflow L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -xflow.exe -wd implementation -p xc5vfx70tff1136-1 -implement xflow.opt -ise -../__xps/ise/system.ise system.ngc -PMSPEC -- Overriding Xilinx file - with local file - -.... Copying flowfile c:/devtools/Xilinx/11.1/ISE/xilinx/data/fpga.flw into -working directory -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementat -ion - -Using Flow File: -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementat -ion/fpga.flw -Using Option File(s): - C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/xflow.opt - -Creating Script File ... - -#----------------------------------------------# -# Starting program ngdbuild -# ngdbuild -ise ../__xps/ise/system.ise -p xc5vfx70tff1136-1 -nt timestamp -bm -system.bmm -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/system.ngc" -uc system.ucf system.ngd -#----------------------------------------------# -Release 11.2 - ngdbuild L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: ngdbuild -ise ../__xps/ise/system.ise -p xc5vfx70tff1136-1 -nt -timestamp -bm system.bmm -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementat -ion/system.ngc -uc system.ucf system.ngd - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/implementa -tion/system.ngc" ... -Gathering constraint information from source properties... -Done. - -Applying constraints in "system.ucf" to the design... -WARNING:NgdBuild:931 - The value of SIM_DEVICE on instance - 'clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ - ADV.DCM_ADV_INST' of type DCM_ADV has been changed from 'VIRTEX4' to - 'VIRTEX5' to correct post-ngdbuild and timing simulation for this primitive. - In order for functional simulation to be correct, the value of SIM_DEVICE - should be changed in this same manner in the source netlist or constraint - file. -Resolving constraint associations... -Checking Constraint Associations... -WARNING:ConstraintSystem:3 - Constraint [system.ucf(264)]: This constraint will be ignored because the relative - clock constraint named 'TS_clk_div_slow_0_clk_div_slow_0_DDR2_CLK_i' was not - found. - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT0: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT1: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT2: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT3: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT4: - -Done... -Checking Partitions ... - -Processing BMM file ... - -WARNING:NgdBuild:1212 - User specified non-default attribute value - (8.0000000000000000) was detected for the CLKIN_PERIOD attribute on DCM - "clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ADV.DCM_ADV_INST". - This does not match the PERIOD constraint value (5 ns.). The uncertainty - calculation will use the non-default attribute value. This could result in - incorrect uncertainty calculated for DCM output clocks. -Checking expanded design ... -WARNING:NgdBuild:443 - SFF primitive - 'xps_bram_if_cntlr_1/xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ - ATTACH/I_DBEAT_CONTROL/I_DBEAT_CNTR/STRUCTURAL_A_GEN.I_ADDSUB_GEN[4].FDRE_I' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/EMC_CTRL_I/MEM_STEER_I/SYNC_MEM_DQT.REG_DQT_GEN[2].DQT_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/EMC_CTRL_I/MEM_STEER_I/GSYNC_MEM_RDACK_GEN.ADDR_ALIGN_PIPE_GEN[3]. - ALIGN_PIPE' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_WRCE_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_RDCE_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BURST_SUPPORT/RESPONSE_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FD - RE_I' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BURST_SUPPORT/CONTROL_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FDR - E_I' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG - ' has unconnected output pin -WARNING:NgdBuild:486 - Attribute "CLK_FEEDBACK" is not allowed on symbol - "PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.pll_ad - v_i" of type "PLL_ADV". This attribute will be ignored. -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[7].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[6].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[5].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[4].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_S - _H_ADDR_REG[6].I_ADDR_S_H_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_S - _H_ADDR_REG[7].I_ADDR_S_H_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[32].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[33].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[34].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[35].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[36].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[37].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[38].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[39].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[40].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[41].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[42].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[43].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[56].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[57].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[58].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[59].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[60].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[65].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[67].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[72].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[73].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[75].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_CE_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_RDCE_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG0' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG1' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG2' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_master/I_RD_CONTROL/I_RD_ABORT_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/COLLISION_SYNC' has unconnected - output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU10' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU15' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU20' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU25' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU30' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU35' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU130' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU237' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU10' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU15' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU20' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU25' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU30' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU35' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU130' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU237' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[1].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[2].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[3].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[4].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[5].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[6].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[7].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:486 - Attribute "CLK_FEEDBACK" is not allowed on symbol - "clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst" - of type "PLL_ADV". This attribute will be ignored. -WARNING:NgdBuild:452 - logical net 'N194' has no driver -WARNING:NgdBuild:452 - logical net 'N195' has no driver -WARNING:NgdBuild:452 - logical net 'N196' has no driver -WARNING:NgdBuild:452 - logical net 'N197' has no driver -WARNING:NgdBuild:452 - logical net 'N198' has no driver -WARNING:NgdBuild:452 - logical net 'N199' has no driver -WARNING:NgdBuild:452 - logical net 'N200' has no driver -WARNING:NgdBuild:452 - logical net 'N201' has no driver -WARNING:NgdBuild:452 - logical net 'N202' has no driver -WARNING:NgdBuild:452 - logical net 'N203' has no driver -WARNING:NgdBuild:452 - logical net 'N204' has no driver -WARNING:NgdBuild:452 - logical net 'N205' has no driver -WARNING:NgdBuild:452 - logical net 'N206' has no driver -WARNING:NgdBuild:452 - logical net 'N207' has no driver -WARNING:NgdBuild:452 - logical net 'N208' has no driver -WARNING:NgdBuild:452 - logical net 'N209' has no driver -WARNING:NgdBuild:452 - logical net 'N210' has no driver -WARNING:NgdBuild:452 - logical net 'N211' has no driver -WARNING:NgdBuild:452 - logical net 'N212' has no driver -WARNING:NgdBuild:452 - logical net 'N213' has no driver -WARNING:NgdBuild:452 - logical net 'N214' has no driver -WARNING:NgdBuild:452 - logical net 'N215' has no driver -WARNING:NgdBuild:452 - logical net 'N216' has no driver -WARNING:NgdBuild:452 - logical net 'N217' has no driver -WARNING:NgdBuild:452 - logical net 'N218' has no driver -WARNING:NgdBuild:452 - logical net 'N219' has no driver -WARNING:NgdBuild:452 - logical net 'N220' has no driver -WARNING:NgdBuild:452 - logical net 'N221' has no driver -WARNING:NgdBuild:452 - logical net 'N222' has no driver -WARNING:NgdBuild:452 - logical net 'N223' has no driver -WARNING:NgdBuild:452 - logical net 'N224' has no driver -WARNING:NgdBuild:452 - logical net 'N225' has no driver -WARNING:NgdBuild:452 - logical net 'N226' has no driver -WARNING:NgdBuild:452 - logical net 'N227' has no driver -WARNING:NgdBuild:452 - logical net 'N228' has no driver -WARNING:NgdBuild:452 - logical net 'N229' has no driver -WARNING:NgdBuild:452 - logical net 'N230' has no driver -WARNING:NgdBuild:452 - logical net 'N231' has no driver -WARNING:NgdBuild:452 - logical net 'N232' has no driver -WARNING:NgdBuild:452 - logical net 'N233' has no driver -WARNING:NgdBuild:452 - logical net 'N234' has no driver -WARNING:NgdBuild:452 - logical net 'N235' has no driver -WARNING:NgdBuild:452 - logical net 'N236' has no driver -WARNING:NgdBuild:452 - logical net 'N237' has no driver -WARNING:NgdBuild:452 - logical net 'N238' has no driver -WARNING:NgdBuild:452 - logical net 'N239' has no driver -WARNING:NgdBuild:452 - logical net 'N240' has no driver -WARNING:NgdBuild:452 - logical net 'N241' has no driver -WARNING:NgdBuild:452 - logical net 'N242' has no driver -WARNING:NgdBuild:452 - logical net 'N243' has no driver -WARNING:NgdBuild:452 - logical net 'N244' has no driver -WARNING:NgdBuild:452 - logical net 'N245' has no driver -WARNING:NgdBuild:452 - logical net 'N246' has no driver -WARNING:NgdBuild:452 - logical net 'N247' has no driver -WARNING:NgdBuild:452 - logical net 'N248' has no driver -WARNING:NgdBuild:452 - logical net 'N249' has no driver -WARNING:NgdBuild:452 - logical net 'N250' has no driver -WARNING:NgdBuild:452 - logical net 'N251' has no driver -WARNING:NgdBuild:452 - logical net 'N252' has no driver -WARNING:NgdBuild:452 - logical net 'N253' has no driver -WARNING:NgdBuild:452 - logical net 'N254' has no driver -WARNING:NgdBuild:452 - logical net 'N255' has no driver -WARNING:NgdBuild:452 - logical net 'N256' has no driver -WARNING:NgdBuild:452 - logical net 'N257' has no driver -WARNING:NgdBuild:452 - logical net 'N266' has no driver -WARNING:NgdBuild:452 - logical net 'N267' has no driver -WARNING:NgdBuild:452 - logical net 'N268' has no driver -WARNING:NgdBuild:452 - logical net 'N269' has no driver -WARNING:NgdBuild:452 - logical net 'N270' has no driver -WARNING:NgdBuild:452 - logical net 'N271' has no driver -WARNING:NgdBuild:452 - logical net 'N272' has no driver -WARNING:NgdBuild:452 - logical net 'N273' has no driver -WARNING:NgdBuild:452 - logical net 'N306' has no driver -WARNING:NgdBuild:452 - logical net 'N307' has no driver -WARNING:NgdBuild:452 - logical net 'N308' has no driver -WARNING:NgdBuild:452 - logical net 'N309' has no driver -WARNING:NgdBuild:452 - logical net 'N310' has no driver -WARNING:NgdBuild:452 - logical net 'N311' has no driver -WARNING:NgdBuild:452 - logical net 'N312' has no driver -WARNING:NgdBuild:452 - logical net 'N313' has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_terrfwd_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_rerrfwd_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tsrc_dsc_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tbuf_av<3>' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_trem_n<4>' - has no driver - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGDBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 348 - -Writing NGD file "system.ngd" ... -Total REAL time to NGDBUILD completion: 2 min 3 sec -Total CPU time to NGDBUILD completion: 1 min 21 sec - -Writing NGDBUILD log file "system.bld"... - -NGDBUILD done. - - - -#----------------------------------------------# -# Starting program map -# map -ise ../__xps/ise/system.ise -o system_map.ncd -w -pr b -ol high -timing -system.ngd system.pcf -#----------------------------------------------# -Release 11.2 - Map L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - -Using target part "5vfx70tff1136-1". -WARNING:LIT:243 - Logical network N194 has no load. -WARNING:LIT:395 - The above warning message is repeated 1028 more times for the - following (max. 5 shown): - N195, - N196, - N197, - N198, - N199 - To see the details of these warning messages, please use the -detail switch. -Mapping design into LUTs... -WARNING:MapLib:701 - Signal fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin - connected to top level port fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin has - been removed. -WARNING:MapLib:701 - Signal fpga_0_Ethernet_MAC_PHY_col_pin connected to top - level port fpga_0_Ethernet_MAC_PHY_col_pin has been removed. -WARNING:MapLib:41 - All members of TNM group "ppc440_0_PPCS0PLBMBUSY" have been - optimized out of the design. -Writing file system_map.ngm... -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0 - of frag REGCLKAU connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0 - of frag REGCLKAL connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1 - of frag REGCLKAU connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1 - of frag REGCLKAL connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst - of frag REGCLKAU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst - of frag REGCLKAL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst - of frag REGCLKAU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst - of frag REGCLKAL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP_RDRCLKL_tiesig -Running directed packing... -Running delay-based LUT packing... -Updating timing models... -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM - TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP "TNM_CLK0" TS_MC_CLK * 4 ignored during - timing analysis. -INFO:Map:215 - The Interim Design Summary has been generated in the MAP Report - (.mrp). -Running timing-driven placement... -Total REAL time at the beginning of Placer: 2 mins 41 secs -Total CPU time at the beginning of Placer: 2 mins 8 secs - -Phase 1.1 Initial Placement Analysis -Phase 1.1 Initial Placement Analysis (Checksum:9d0c7baf) REAL time: 3 mins 15 secs - -Phase 2.7 Design Feasibility Check -WARNING:Place:838 - An IO Bus with more than one IO standard is found. - Components associated with this bus are as follows: - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<7> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<6> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<5> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<4> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS18 - - -WARNING:Place:838 - An IO Bus with more than one IO standard is found. - Components associated with this bus are as follows: - Comp: fpga_0_SRAM_Mem_DQ_pin<31> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<30> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<29> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<28> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<27> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<26> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<25> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<24> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<23> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<22> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<21> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<20> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<19> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<18> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<17> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<16> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<15> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<14> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<13> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<12> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<11> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<10> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<9> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<8> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<7> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<6> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<5> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<4> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<3> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<2> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<1> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<0> IOSTANDARD = LVCMOS33 - - -Phase 2.7 Design Feasibility Check (Checksum:9d0c7baf) REAL time: 3 mins 16 secs - -Phase 3.31 Local Placement Optimization -Phase 3.31 Local Placement Optimization (Checksum:dec56134) REAL time: 3 mins 16 secs - -Phase 4.37 Local Placement Optimization -Phase 4.37 Local Placement Optimization (Checksum:dec56134) REAL time: 3 mins 16 secs - -Phase 5.33 Local Placement Optimization -Phase 5.33 Local Placement Optimization (Checksum:dec56134) REAL time: 13 mins - -Phase 6.32 Local Placement Optimization -Phase 6.32 Local Placement Optimization (Checksum:dec56134) REAL time: 13 mins 5 secs - -Phase 7.2 Initial Clock and IO Placement - - - -There are 16 clock regions on the target FPGA device: -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y7: | CLOCKREGION_X1Y7: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 4 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y6: | CLOCKREGION_X1Y6: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 3 in use | 4 edge BUFIOs available, 0 in use | -| 0 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y5: | CLOCKREGION_X1Y5: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y4: | CLOCKREGION_X1Y4: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y3: | CLOCKREGION_X1Y3: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y2: | CLOCKREGION_X1Y2: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 3 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y1: | CLOCKREGION_X1Y1: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use - | -| 4 edge BUFIOs available, 2 in use | 4 edge BUFIOs available, 0 in use | -| 0 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y0: | CLOCKREGION_X1Y0: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 4 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 2/4; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 0 | 0 | 80 | 80 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 3/4; center-bufios - 0/2; bufrs - 0/2; regional-clock-spines - 0/4 -|------------------------------------------------------------------------------------------------------------------------------------------------------- ----- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 8 | 0 | 0 | 60 | 60 | 1280 | 640 | 1920 | 0 | 0 | 1 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|------- --|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 3/4; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 24 | 0 | 0 | 80 | 80 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | - 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - - - -###################################################################################### -# REGIONAL CLOCKING RESOURCE DISTRIBUTION UCF REPORT: -# -# Number of Regional Clocking Regions in the device: 16 (4 clock spines in each) -# Number of Regional Clock Networks used in this design: 8 (each network can be -# composed of up to 3 clock spines and cover up to 3 regional clock regions) -# -###################################################################################### - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" driven by "BUFIO_X0Y27" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[7].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y27" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" driven by "BUFIO_X0Y9" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[0].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y9" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" RANGE = -CLOCKREGION_X0Y2; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" driven by "BUFIO_X0Y11" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[4].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y11" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" RANGE = -CLOCKREGION_X0Y2; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" driven by "BUFIO_X0Y4" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[1].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y4" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" RANGE = -CLOCKREGION_X0Y1; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" driven by "BUFIO_X0Y25" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[5].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y25" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" driven by "BUFIO_X0Y7" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[2].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y7" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" RANGE = -CLOCKREGION_X0Y1; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" driven by "BUFIO_X0Y26" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[6].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y26" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" driven by "BUFIO_X0Y10" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[3].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y10" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" RANGE = -CLOCKREGION_X0Y2; - - -Phase 7.2 Initial Clock and IO Placement (Checksum:e5ad4bb9) REAL time: 13 mins 24 secs - -Phase 8.36 Local Placement Optimization -Phase 8.36 Local Placement Optimization (Checksum:e5ad4bb9) REAL time: 13 mins 24 secs - -......................... -. -. -...... -..... -..... -..... -..... -...... -...... -....... -...... -....... -....... -........ -......... -........ -.. -Phase 9.30 Global Clock Region Assignment - - -###################################################################################### -# GLOBAL CLOCK NET DISTRIBUTION UCF REPORT: -# -# Number of Global Clock Regions : 16 -# Number of Global Clock Networks: 15 -# -# Clock Region Assignment: SUCCESSFUL - -# Location of Clock Components -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT1.CLKOUT1_BUFG_INST" LOC = "BUFGCTRL_X0Y1" ; -INST "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y30" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.gtxclk_pll_bufg" LOC = "BUFGCTRL_X0Y29" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.coreclk_pll_bufg" LOC = "BUFGCTRL_X0Y27" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT2.CLKOUT2_BUFG_INST" LOC = "BUFGCTRL_X0Y2" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_BUFG_for_CLKFBOUT.CLKFB_BUFG_INST" LOC = "BUFGCTRL_X0Y3" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/notsame.usrclk_pll_bufg" LOC = "BUFGCTRL_X0Y28" ; -INST "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y8" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.clkfbin_pll_bufg" LOC = "BUFGCTRL_X0Y26" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT3.CLKOUT3_BUFG_INST" LOC = "BUFGCTRL_X0Y4" ; -INST "clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/Using_BUFG_for_CLK0.CLK0_BUFG_INST" LOC = "BUFGCTRL_X0Y7" ; -INST "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y31" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT0.CLKOUT0_BUFG_INST" LOC = "BUFGCTRL_X0Y5" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT4.CLKOUT4_BUFG_INST" LOC = "BUFGCTRL_X0Y6" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/bufg2" LOC = "BUFGCTRL_X0Y0" ; -INST "clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ADV.DCM_ADV_INST" LOC = "DCM_ADV_X0Y0" ; -INST "fpga_0_SRAM_ZBT_CLK_FB_pin" LOC = "IOB_X1Y111" ; -INST "fpga_0_clk_1_sys_clk_pin" LOC = "IOB_X1Y109" ; -INST "fpga_0_Ethernet_MAC_PHY_rx_clk_pin" LOC = "IOB_X1Y219" ; -INST "fpga_0_Ethernet_MAC_PHY_tx_clk_pin" LOC = "IOB_X1Y217" ; -INST "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin" LOC = "IOB_X1Y105" ; -INST "fpga_0_PCIe_Bridge_RXN_pin" LOC = "IPAD_X1Y12" ; -INST "fpga_0_PCIe_Bridge_RXP_pin" LOC = "IPAD_X1Y13" ; -INST "fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin" LOC = "IPAD_X1Y16" ; -INST "fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin" LOC = "IPAD_X1Y17" ; -INST "fpga_0_PCIe_Bridge_TXN_pin" LOC = "OPAD_X0Y8" ; -INST "fpga_0_PCIe_Bridge_TXP_pin" LOC = "OPAD_X0Y9" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.pll_adv_i" LOC = "PLL_ADV_X0Y5" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst" LOC = "PLL_ADV_X0Y0" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" LOC = "GTX_DUAL_X0Y2" ; -INST "ibufgds_76" LOC = "BUFDS_X0Y2" ; - -# clk_125_0000MHzPLL0 driven by BUFGCTRL_X0Y1 -NET "clk_125_0000MHzPLL0" TNM_NET = "TN_clk_125_0000MHzPLL0" ; -TIMEGRP "TN_clk_125_0000MHzPLL0" AREA_GROUP = "CLKAG_clk_125_0000MHzPLL0" ; -AREA_GROUP "CLKAG_clk_125_0000MHzPLL0" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP driven by BUFGCTRL_X0Y30 -NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" TNM_NET = "TN_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X0Y1, CLOCKREGION_X0Y2, CLOCKREGION_X0Y3, CLOCKREGION_X0Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk driven by BUFGCTRL_X0Y29 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk driven by BUFGCTRL_X0Y27 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clk_125_0000MHzPLL0_ADJUST driven by BUFGCTRL_X0Y2 -NET "clk_125_0000MHzPLL0_ADJUST" TNM_NET = "TN_clk_125_0000MHzPLL0_ADJUST" ; -TIMEGRP "TN_clk_125_0000MHzPLL0_ADJUST" AREA_GROUP = "CLKAG_clk_125_0000MHzPLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_125_0000MHzPLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6> driven by BUFGCTRL_X0Y3 -NET "clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" TNM_NET = "TN_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" ; -TIMEGRP "TN_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" AREA_GROUP = "CLKAG_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" ; -AREA_GROUP "CLKAG_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X0Y1 ; - -# PCIe_Bridge/Bridge_Clk driven by BUFGCTRL_X0Y28 -NET "PCIe_Bridge/Bridge_Clk" TNM_NET = "TN_PCIe_Bridge/Bridge_Clk" ; -TIMEGRP "TN_PCIe_Bridge/Bridge_Clk" AREA_GROUP = "CLKAG_PCIe_Bridge/Bridge_Clk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/Bridge_Clk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP driven by BUFGCTRL_X0Y8 -NET "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" TNM_NET = "TN_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" RANGE = CLOCKREGION_X1Y0, CLOCKREGION_X1Y1, CLOCKREGION_X1Y2, CLOCKREGION_X1Y3, CLOCKREGION_X1Y4 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin driven by BUFGCTRL_X0Y26 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" RANGE = CLOCKREGION_X0Y6, CLOCKREGION_X0Y7 ; - -# clk_200_0000MHz driven by BUFGCTRL_X0Y4 -NET "clk_200_0000MHz" TNM_NET = "TN_clk_200_0000MHz" ; -TIMEGRP "TN_clk_200_0000MHz" AREA_GROUP = "CLKAG_clk_200_0000MHz" ; -AREA_GROUP "CLKAG_clk_200_0000MHz" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF driven by BUFGCTRL_X0Y7 -NET "fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" TNM_NET = "TN_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" ; -TIMEGRP "TN_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" AREA_GROUP = "CLKAG_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" ; -AREA_GROUP "CLKAG_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" RANGE = CLOCKREGION_X1Y6, CLOCKREGION_X1Y7 ; - -# fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP driven by BUFGCTRL_X0Y31 -NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" TNM_NET = "TN_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" RANGE = CLOCKREGION_X1Y0, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X1Y6, CLOCKREGION_X1Y7 ; - -# clk_125_0000MHz90PLL0_ADJUST driven by BUFGCTRL_X0Y5 -NET "clk_125_0000MHz90PLL0_ADJUST" TNM_NET = "TN_clk_125_0000MHz90PLL0_ADJUST" ; -TIMEGRP "TN_clk_125_0000MHz90PLL0_ADJUST" AREA_GROUP = "CLKAG_clk_125_0000MHz90PLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_125_0000MHz90PLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clk_62_5000MHzPLL0_ADJUST driven by BUFGCTRL_X0Y6 -NET "clk_62_5000MHzPLL0_ADJUST" TNM_NET = "TN_clk_62_5000MHzPLL0_ADJUST" ; -TIMEGRP "TN_clk_62_5000MHzPLL0_ADJUST" AREA_GROUP = "CLKAG_clk_62_5000MHzPLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_62_5000MHzPLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg driven by BUFGCTRL_X0Y0 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" RANGE = CLOCKREGION_X0Y6, CLOCKREGION_X0Y7 ; - -# NOTE: -# This report is provided to help reproduce successful clock-region -# assignments. The report provides range constraints for all global -# clock networks, in a format that is directly usable in ucf files. -# -#END of Global Clock Net Distribution UCF Constraints -###################################################################################### - - -###################################################################################### -GLOBAL CLOCK NET LOADS DISTRIBUTION REPORT: - -Number of Global Clock Regions : 16 -Number of Global Clock Networks: 15 - -Clock Region Assignment: SUCCESSFUL - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 0 | 0 | 0 | 80 | 80 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 17 | 656 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 255 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 19 | 911 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 80 | 1263 |PCIe_Bridge/Bridge_Clk - 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 24 | 52 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 104 | 1315 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 6/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 4 | 2 | 0 | 40 | 40 | 0 | 0 | 0 | 0 | 1 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 156 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |clk_125_0000MHz90PLL0_ADJUST - 2 | 1 | 0 | 0 | 0 | 17 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 991 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6> ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 1 | 1 | 0 | 0 | 35 | 0 | 0 | 0 | 0 | 1 | 0 | 16 | 1155 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 240 | 1088 |PCIe_Bridge/Bridge_Clk - 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 11 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 104 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 240 | 1203 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 2 | 1 | 0 | 60 | 60 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 12 |clk_125_0000MHz90PLL0_ADJUST - 5 | 0 | 0 | 0 | 9 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 24 | 1156 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 99 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 5 | 0 | 0 | 0 | 9 | 42 | 0 | 0 | 0 | 0 | 1 | 0 | 24 | 1267 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 28 | 382 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 90 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk - 3 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 48 | 725 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 5 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 76 | 1199 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 60 | 60 | 0 | 0 | 1 | 0 | 2 | 16 | 640 | 1280 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 86 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 8 | 17 | 0 | 0 | 1 | 0 | 0 | 0 | 12 | 281 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 210 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 8 | 17 | 0 | 0 | 1 | 0 | 0 | 0 | 12 | 580 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 43 |PCIe_Bridge/Bridge_Clk - 4 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 99 | 1148 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 0 | 0 | 3 | 0 | 0 | 0 | 0 | 0 | 99 | 1191 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 60 | 60 | 0 | 0 | 1 | 0 | 2 | 16 | 640 | 1280 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 36 |clk_125_0000MHz90PLL0_ADJUST - 4 | 0 | 0 | 0 | 1 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 37 | 263 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 219 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 6 | 0 | 0 | 0 | 7 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 37 | 518 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 10 | 0 | 0 | 0 | 40 | 40 | 16 | 1 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 83 | 834 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP - 0 | 0 | 0 | 0 | 16 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 37 |fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 16 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 83 | 892 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 2 | 1 | 0 | 60 | 60 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 48 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 74 | 579 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 227 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 15 | 4 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 97 | 858 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 1/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 10 | 0 | 0 | 0 | 40 | 40 | 16 | 1 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 64 | 646 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 64 | 646 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 7/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 4 | 2 | 0 | 40 | 40 | 0 | 0 | 0 | 0 | 1 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 8 | 0 | 0 | 0 | 0 | 0 | 0 | 65 | 555 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 100 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 9 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 2 | 0 | 0 | 35 | 0 | 0 | 0 | 0 | 1 | 0 | 67 | 666 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 1/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 19 | 23 | 0 | 0 | 0 | 0 | 0 | 0 | 63 | 449 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 19 | 23 | 0 | 0 | 0 | 0 | 0 | 0 | 63 | 449 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 0 | 0 | 0 | 80 | 80 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 327 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 347 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 1/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 34 | 208 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 34 | 208 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - -NOTE: -The above detailed report is the initial placement of the logic after the clock region assignment. The final placement -may be significantly different because of the various optimization steps which will follow. Specifically, logic blocks -maybe moved to adjacent clock-regions as long as the "number of clocks per region" constraint is not violated. - - -# END of Global Clock Net Loads Distribution Report: -###################################################################################### - - -Phase 9.30 Global Clock Region Assignment (Checksum:e5ad4bb9) REAL time: 14 mins 49 secs - -Phase 10.3 Local Placement Optimization -Phase 10.3 Local Placement Optimization (Checksum:e5ad4bb9) REAL time: 14 mins 49 secs - -Phase 11.5 Local Placement Optimization -Phase 11.5 Local Placement Optimization (Checksum:e5ad4bb9) REAL time: 14 mins 50 secs - -Phase 12.8 Global Placement -.... -............................ -..... -....... -........ -....... -....... -...... -....... -....... -...... -....... -....... -....... -...... -........ -....... -......... -......... -......... -......... -......... -.... -. -....... -........ -......... -.. -..... -....... -....... -...... -....... -....... -. -.... -...... -...... -..... -..... -..... -.... -.. -...... -..... -...... -.. -... -...... -...... -........ -...... -...... -.. -. -.. -.... -.... -..... -...... -... -...... -...... -....... -.... -.... -... -.... -..... -.... -. -.. -..... -..... -..... -.. -. -..... -.. -. -...... -...... -. -... -..... -. -..... -..... -..... -...... -...... -...... -Phase 12.8 Global Placement (Checksum:651fc219) REAL time: 20 mins 14 secs - -Phase 13.29 Local Placement Optimization -Phase 13.29 Local Placement Optimization (Checksum:651fc219) REAL time: 20 mins 14 secs - -Phase 14.5 Local Placement Optimization -Phase 14.5 Local Placement Optimization (Checksum:651fc219) REAL time: 20 mins 19 secs - -Phase 15.18 Placement Optimization -Phase 15.18 Placement Optimization (Checksum:11e1af7) REAL time: 23 mins 42 secs - -Phase 16.5 Local Placement Optimization -Phase 16.5 Local Placement Optimization (Checksum:11e1af7) REAL time: 23 mins 46 secs - -Phase 17.34 Placement Validation -Phase 17.34 Placement Validation (Checksum:11e1af7) REAL time: 23 mins 47 secs - -Total REAL time to Placer completion: 23 mins 51 secs -Total CPU time to Placer completion: 21 mins -Running post-placement packing... -Writing output files... - -Design Summary: -Number of errors: 0 -Number of warnings: 50 -Slice Logic Utilization: - Number of Slice Registers: 13,531 out of 44,800 30% - Number used as Flip Flops: 13,529 - Number used as Latches: 1 - Number used as Latch-thrus: 1 - Number of Slice LUTs: 14,602 out of 44,800 32% - Number used as logic: 13,948 out of 44,800 31% - Number using O6 output only: 12,711 - Number using O5 output only: 318 - Number using O5 and O6: 919 - Number used as Memory: 541 out of 13,120 4% - Number used as Dual Port RAM: 164 - Number using O6 output only: 12 - Number using O5 output only: 32 - Number using O5 and O6: 120 - Number used as Single Port RAM: 4 - Number using O6 output only: 4 - Number used as Shift Register: 373 - Number using O6 output only: 373 - Number used as exclusive route-thru: 113 - Number of route-thrus: 497 - Number using O6 output only: 417 - Number using O5 output only: 70 - Number using O5 and O6: 10 - -Slice Logic Distribution: - Number of occupied Slices: 7,119 out of 11,200 63% - Number of LUT Flip Flop pairs used: 19,423 - Number with an unused Flip Flop: 5,892 out of 19,423 30% - Number with an unused LUT: 4,821 out of 19,423 24% - Number of fully used LUT-FF pairs: 8,710 out of 19,423 44% - Number of unique control sets: 1,396 - Number of slice register sites lost - to control set restrictions: 3,277 out of 44,800 7% - - A LUT Flip Flop pair for this architecture represents one LUT paired with - one Flip Flop within a slice. A control set is a unique combination of - clock, reset, set, and enable signals for a registered element. - The Slice Logic Distribution report is not meaningful if the design is - over-mapped for a non-slice resource or if Placement fails. - OVERMAPPING of BRAM resources should be ignored if the design is - over-mapped for a non-BRAM resource or if placement fails. - -IO Utilization: - Number of bonded IOBs: 255 out of 640 39% - Number of LOCed IOBs: 255 out of 255 100% - IOB Flip Flops: 494 - Number of bonded IPADs: 4 out of 50 8% - Number of bonded OPADs: 2 out of 32 6% - -Specific Feature Utilization: - Number of BlockRAM/FIFO: 22 out of 148 14% - Number using BlockRAM only: 20 - Number using FIFO only: 2 - Total primitives used: - Number of 36k BlockRAM used: 16 - Number of 18k BlockRAM used: 6 - Number of 36k FIFO used: 2 - Total Memory used (KB): 756 out of 5,328 14% - Number of BUFG/BUFGCTRLs: 15 out of 32 46% - Number used as BUFGs: 15 - Number of IDELAYCTRLs: 3 out of 22 13% - Number of BUFDSs: 1 out of 8 12% - Number of BUFIOs: 8 out of 80 10% - Number of DCM_ADVs: 1 out of 12 8% - Number of DSP48Es: 3 out of 128 2% - Number of GTX_DUALs: 1 out of 8 12% - Number of PCIEs: 1 out of 3 33% - Number of LOCed PCIEs: 1 out of 1 100% - Number of PLL_ADVs: 2 out of 6 33% - Number of PPC440s: 1 out of 1 100% - - Number of RPM macros: 64 -Average Fanout of Non-Clock Nets: 3.81 - -Peak Memory Usage: 789 MB -Total REAL time to MAP completion: 24 mins 34 secs -Total CPU time to MAP completion: 21 mins 42 secs - -Mapping completed. -See MAP report file "system_map.mrp" for details. - - - -#----------------------------------------------# -# Starting program par -# par -ise ../__xps/ise/system.ise -w -ol high system_map.ncd system.ncd -system.pcf -#----------------------------------------------# -Release 11.2 - par L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file with local file - - - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 - -Constraints file: system.pcf. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -WARNING:ConstraintSystem:65 - Constraint [system.pcf(78662)] - overrides constraint [system.pcf(78661)]. - - -Initializing temperature to 85.000 Celsius. (default - Range: 0.000 to 85.000 Celsius) -Initializing voltage to 0.950 Volts. (default - Range: 0.950 to 1.050 Volts) - -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP - "TNM_CLK0" TS_MC_CLK * 4; ignored during timing analysis. -INFO:Timing:3386 - Intersecting Constraints found and resolved. For more information, see the TSI report. Please - consult the Xilinx Command Line Tools User Guide for information on generating a TSI report. - -Device speed data version: "PRODUCTION 1.65 2009-06-01". - - - -Device Utilization Summary: - - Number of BUFDSs 1 out of 8 12% - Number of BUFGs 15 out of 32 46% - Number of BUFIOs 8 out of 80 10% - Number of DCM_ADVs 1 out of 12 8% - Number of DSP48Es 3 out of 128 2% - Number of FIFO36_72_EXPs 2 out of 148 1% - Number of LOCed FIFO36_72_EXPs 2 out of 2 100% - - Number of GTX_DUALs 1 out of 8 12% - Number of IDELAYCTRLs 3 out of 22 13% - Number of LOCed IDELAYCTRLs 3 out of 3 100% - - Number of ILOGICs 131 out of 800 16% - Number of LOCed ILOGICs 8 out of 131 6% - - Number of External IOBs 255 out of 640 39% - Number of LOCed IOBs 255 out of 255 100% - - Number of IODELAYs 80 out of 800 10% - Number of LOCed IODELAYs 8 out of 80 10% - - Number of External IPADs 4 out of 690 1% - Number of LOCed IPADs 4 out of 4 100% - - Number of JTAGPPCs 1 out of 1 100% - Number of OLOGICs 236 out of 800 29% - Number of External OPADs 2 out of 32 6% - Number of LOCed OPADs 2 out of 2 100% - - Number of PCIEs 1 out of 3 33% - Number of LOCed PCIEs 1 out of 1 100% - - Number of PLL_ADVs 2 out of 6 33% - Number of PPC440s 1 out of 1 100% - Number of RAMB18X2SDPs 4 out of 148 2% - Number of RAMB36SDP_EXPs 6 out of 148 4% - Number of LOCed RAMB36SDP_EXPs 1 out of 6 16% - - Number of RAMB36_EXPs 10 out of 148 6% - Number of LOCed RAMB36_EXPs 6 out of 10 60% - - Number of Slice Registers 13531 out of 44800 30% - Number used as Flip Flops 13529 - Number used as Latches 1 - Number used as LatchThrus 1 - - Number of Slice LUTS 14602 out of 44800 32% - Number of Slice LUT-Flip Flop pairs 19423 out of 44800 43% - - -Overall effort level (-ol): High -Router effort level (-rl): High - -Starting initial Timing Analysis. REAL time: 1 mins 3 secs -Finished initial Timing Analysis. REAL time: 1 mins 5 secs - -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_sb_txrem_n<0> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_MB_TxREMn<0> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal xps_bram_if_cntlr_1_port_BRAM_Addr<31> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal xps_bram_if_cntlr_1_port_BRAM_Addr<30> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_MB_RxFull has no load. PAR will not attempt to route this - signal. -Starting Router - -INFO:Route:501 - One or more directed routing (DIRT) constraints generated for a specific device have been found. Note - that DIRT strings are guaranteed to work only on the same device they were created for. If the DIRT constraints fail, - verify that the same connectivity is available in the target device for this implementation. - -Phase 1 : 95521 unrouted; REAL time: 1 mins 22 secs - -Phase 2 : 84728 unrouted; REAL time: 1 mins 35 secs - -Phase 3 : 34551 unrouted; REAL time: 3 mins 59 secs - -Phase 4 : 34616 unrouted; (Setup:0, Hold:93713, Component Switching Limit:0) REAL time: 4 mins 32 secs - -Updating file: system.ncd with current fully routed design. - -Phase 5 : 0 unrouted; (Setup:0, Hold:92310, Component Switching Limit:0) REAL time: 5 mins 40 secs - -Phase 6 : 0 unrouted; (Setup:0, Hold:92310, Component Switching Limit:0) REAL time: 5 mins 40 secs - -Phase 7 : 0 unrouted; (Setup:0, Hold:92310, Component Switching Limit:0) REAL time: 5 mins 40 secs - -Phase 8 : 0 unrouted; (Setup:0, Hold:92310, Component Switching Limit:0) REAL time: 5 mins 40 secs - -Phase 9 : 0 unrouted; (Setup:0, Hold:0, Component Switching Limit:0) REAL time: 6 mins 40 secs - -Phase 10 : 0 unrouted; (Setup:0, Hold:0, Component Switching Limit:0) REAL time: 6 mins 55 secs -Total REAL time to Router completion: 6 mins 55 secs -Total CPU time to Router completion: 6 mins 44 secs - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -Generating "PAR" statistics. - -************************** -Generating Clock Report -************************** - -+---------------------+--------------+------+------+------------+-------------+ -| Clock Net | Resource |Locked|Fanout|Net Skew(ns)|Max Delay(ns)| -+---------------------+--------------+------+------+------------+-------------+ -|clk_125_0000MHzPLL0_ | | | | | | -| ADJUST | BUFGCTRL_X0Y2| No | 3788 | 0.520 | 2.062 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/Bridge_C | | | | | | -| lk |BUFGCTRL_X0Y28| No | 1452 | 0.412 | 2.085 | -+---------------------+--------------+------+------+------------+-------------+ -|clk_62_5000MHzPLL0_A | | | | | | -| DJUST | BUFGCTRL_X0Y6| No | 504 | 0.299 | 2.065 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/core_c | | | | | | -| lk |BUFGCTRL_X0Y27| No | 93 | 0.266 | 2.085 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_SysACE_Compac | | | | | | -|tFlash_SysACE_CLK_pi | | | | | | -| n_BUFGP | BUFGCTRL_X0Y8| No | 55 | 0.163 | 1.770 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_Ethernet_MAC_ | | | | | | -|PHY_rx_clk_pin_BUFGP | | | | | | -| |BUFGCTRL_X0Y30| No | 12 | 0.038 | 1.879 | -+---------------------+--------------+------+------+------------+-------------+ -|clk_125_0000MHz90PLL | | | | | | -| 0_ADJUST | BUFGCTRL_X0Y5| No | 167 | 0.285 | 2.028 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/pcie_b | | | | | | -| lk/gt_usrclk |BUFGCTRL_X0Y29| No | 6 | 0.058 | 1.886 | -+---------------------+--------------+------+------+------------+-------------+ -| clk_200_0000MHz | BUFGCTRL_X0Y4| No | 4 | 0.100 | 1.879 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<0> | IO Clk| No | 18 | 0.095 | 0.419 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<1> | IO Clk| No | 18 | 0.083 | 0.380 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_Ethernet_MAC_ | | | | | | -|PHY_tx_clk_pin_BUFGP | | | | | | -| |BUFGCTRL_X0Y31| No | 6 | 0.004 | 1.941 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | - | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<2> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<3> | IO Clk| No | 18 | 0.107 | 0.404 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<5> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<4> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<6> | IO Clk| No | 18 | 0.096 | 0.393 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<7> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -| clk_125_0000MHzPLL0 | BUFGCTRL_X0Y1| No | 2 | 0.000 | 1.739 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/pcie_b | | | | | | -|lk/SIO/.pcie_gt_wrap | | | | | | -| per_i/icdrreset<0> | Local| | 1 | 0.000 | 0.585 | -+---------------------+--------------+------+------+------------+-------------+ -|Ethernet_MAC/Etherne | | | | | | -| t_MAC/phy_tx_clk_i | Local| | 9 | 2.887 | 3.720 | -+---------------------+--------------+------+------+------------+-------------+ -|RS232_Uart_1_Interru | | | | | | -| pt | Local| | 1 | 0.000 | 0.743 | -+---------------------+--------------+------+------+------------+-------------+ -|ppc440_0_jtagppc_bus | | | | | | -| _JTGC405TCK | Local| | 1 | 0.000 | 1.526 | -+---------------------+--------------+------+------+------------+-------------+ - -* Net Skew is the difference between the minimum and maximum routing -only delays for the net. Note this is different from Clock Skew which -is reported in TRCE timing report. Clock Skew is the difference between -the minimum and maximum path delays which includes logic delays. - -Timing Score: 0 (Setup: 0, Hold: 0, Component Switching Limit: 0) - -Number of Timing Constraints that were not applied: 5 - -Asterisk (*) preceding a constraint indicates it was not met. - This may be due to a setup or hold violation. - ----------------------------------------------------------------------------------------------------------- - Constraint | Check | Worst Case | Best Case | Timing | Timing - | | Slack | Achievable | Errors | Score ----------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 n | SETUP | 0.067ns| 7.933ns| 0| 0 - s HIGH 50% | HOLD | 0.035ns| | 0| 0 - | MINPERIOD | 0.000ns| 8.000ns| 0| 0 ------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/PCIe_Bridge/comp_block_p | SETUP | 0.051ns| 3.949ns| 0| 0 - lus/comp_endpoint/core_clk" PERIOD = | HOLD | 0.349ns| | 0| 0 - 4 ns HIGH 50% | MINPERIOD | 0.000ns| 4.000ns| 0| 0 ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 0.028ns| 7.972ns| 0| 0 - L0_CLK_OUT_2_ = PERIOD TIMEGRP "c | HOLD | 0.021ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_2_" TS_sys_clk_pin * 1.25 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_DQ_CE = MAXDELAY FROM TIMEGRP "TNM_DQ_ | SETUP | 0.030ns| 1.870ns| 0| 0 - CE_IDDR" TO TIMEGRP "TNM_DQS_FLOPS" | HOLD | 1.027ns| | 0| 0 - 1.9 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[0].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[1].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[5].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[2].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[3].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[4].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[6].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[7].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<0>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<1>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<2>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<3>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<4>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<5>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<6>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<7>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_PCIe_PLB = MAXDELAY FROM TIMEGRP "Brid | SETUP | 0.187ns| 7.813ns| 0| 0 - ge_Clk" TO TIMEGRP "SPLB_Clk" 8 ns | HOLD | 0.502ns| | 0| 0 - DATAPATHONLY | | | | | ------------------------------------------------------------------------------------------------------- - TS_PLB_PCIe = MAXDELAY FROM TIMEGRP "SPLB | SETUP | 0.510ns| 7.490ns| 0| 0 - _Clk" TO TIMEGRP "Bridge_Clk" 8 ns | HOLD | 0.456ns| | 0| 0 - DATAPATHONLY | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_CLK = PERIOD TIMEGRP "mc_clk" 5 ns | MINPERIOD | 1.010ns| 3.990ns| 0| 0 - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TSRXIN_Ethernet_MAC = MAXDELAY FROM TIMEG | MAXDELAY | 1.695ns| 4.305ns| 0| 0 - RP "PADS" TO TIMEGRP "RXCLK_GRP_E | HOLD | 1.060ns| | 0| 0 - thernet_MAC" 6 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 2.151ns| 4.917ns| 0| 0 - L0_CLK_OUT_0_ = PERIOD TIMEGRP "c | HOLD | 0.404ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_0_" TS_sys_clk_pin * 1.25 | | | | | - PHASE 2 ns HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_sys_clk_pin = PERIOD TIMEGRP "sys_clk_ | MINLOWPULSE | 6.000ns| 4.000ns| 0| 0 - pin" 100 MHz HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 3.664ns| 1.336ns| 0| 0 - L0_CLK_OUT_3_ = PERIOD TIMEGRP "c | HOLD | 0.465ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_3_" TS_sys_clk_pin * 2 HIG | | | | | - H 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 3.842ns| 8.316ns| 0| 0 - L0_CLK_OUT_4_ = PERIOD TIMEGRP "c | HOLD | 0.116ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_4_" TS_sys_clk_pin * 0.625 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_B | NETSKEW | 4.455ns| 0.545ns| 0| 0 - UFGP" MAXSKEW = 5 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_B | NETSKEW | 4.833ns| 0.167ns| 0| 0 - UFGP" MAXSKEW = 5 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | MINPERIOD | 4.900ns| 3.100ns| 0| 0 - L0_CLK_OUT_1_ = PERIOD TIMEGRP "c | | | | | - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_1_" TS_sys_clk_pin * 1.25 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TSTXOUT_Ethernet_MAC = MAXDELAY FROM TIME | MAXDELAY | 7.423ns| 2.577ns| 0| 0 - GRP "TXCLK_GRP_Ethernet_MAC" TO T | | | | | - IMEGRP "PADS" 10 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_B | SETUP | 9.363ns| 13.248ns| 0| 0 - UFGP" PERIOD = 40 ns HIGH 14 ns | HOLD | 0.458ns| | 0| 0 ------------------------------------------------------------------------------------------------------- - TS_MC_PHY_INIT_DATA_SEL_0 = MAXDELAY FROM | SETUP | 13.905ns| 6.095ns| 0| 0 - TIMEGRP "TNM_PHY_INIT_DATA_SEL" TO | HOLD | 0.812ns| | 0| 0 - TIMEGRP "TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_PHY_INIT_DATA_SEL_90 = MAXDELAY FRO | SETUP | 14.527ns| 5.473ns| 0| 0 - M TIMEGRP "TNM_PHY_INIT_DATA_SEL" TO | HOLD | 0.262ns| | 0| 0 - TIMEGRP "TNM_CLK90" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_GATE_DLY = MAXDELAY FROM TIMEGRP "T | SETUP | 17.706ns| 2.294ns| 0| 0 - NM_GATE_DLY" TO TIMEGRP "TNM_CLK0" | HOLD | 0.056ns| | 0| 0 - TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_CAL_RDEN_DLY = MAXDELAY FROM TIMEGR | SETUP | 18.115ns| 1.885ns| 0| 0 - P "TNM_CAL_RDEN_DLY" TO TIMEGRP " | HOLD | 0.231ns| | 0| 0 - TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_RDEN_DLY = MAXDELAY FROM TIMEGRP "T | SETUP | 18.117ns| 1.883ns| 0| 0 - NM_RDEN_DLY" TO TIMEGRP "TNM_CLK0" | HOLD | 0.020ns| | 0| 0 - TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_SysACE_CompactFlash_SysACE_CL | SETUP | 26.887ns| 3.113ns| 0| 0 - K_pin_BUFGP/IBUFG" PERIOD = 30 ns | HOLD | 0.468ns| | 0| 0 - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_B | SETUP | 32.341ns| 7.659ns| 0| 0 - UFGP" PERIOD = 40 ns HIGH 14 ns | HOLD | 0.314ns| | 0| 0 ------------------------------------------------------------------------------------------------------- - Pin to Pin Skew Constraint | MAXDELAY | 2106523.523ns| 2106523.837ns| 0| 0 ------------------------------------------------------------------------------------------------------- - TS_MC_RDEN_SEL_MUX = MAXDELAY FROM TIMEGR | N/A | N/A| N/A| N/A| N/A - P "TNM_RDEN_SEL_MUX" TO TIMEGRP " | | | | | - TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 n | N/A | N/A| N/A| N/A| N/A - s HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - - -Derived Constraint Report -Derived Constraints for TS_MC_CLK -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -| | Period | Actual Period | Timing Errors | Paths Analyzed | -| Constraint | Requirement |-------------+-------------|-------------+-------------|-------------+-------------| -| | | Direct | Derivative | Direct | Derivative | Direct | Derivative | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -|TS_MC_CLK | 5.000ns| 3.990ns| 1.524ns| 0| 0| 0| 345| -| TS_MC_PHY_INIT_DATA_SEL_0 | 20.000ns| 6.095ns| N/A| 0| 0| 21| 0| -| TS_MC_PHY_INIT_DATA_SEL_90 | 20.000ns| 5.473ns| N/A| 0| 0| 274| 0| -| TS_MC_GATE_DLY | 20.000ns| 2.294ns| N/A| 0| 0| 40| 0| -| TS_MC_RDEN_DLY | 20.000ns| 1.883ns| N/A| 0| 0| 5| 0| -| TS_MC_CAL_RDEN_DLY | 20.000ns| 1.885ns| N/A| 0| 0| 5| 0| -| TS_MC_RDEN_SEL_MUX | 20.000ns| N/A| N/A| 0| 0| 0| 0| -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ - -Derived Constraints for TS_sys_clk_pin -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -| | Period | Actual Period | Timing Errors | Paths Analyzed | -| Constraint | Requirement |-------------+-------------|-------------+-------------|-------------+-------------| -| | | Direct | Derivative | Direct | Derivative | Direct | Derivative | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -|TS_sys_clk_pin | 10.000ns| 4.000ns| 9.965ns| 0| 0| 0| 1090426| -| TS_clock_generator_0_clock_gen| 8.000ns| 4.917ns| N/A| 0| 0| 626| 0| -| erator_0_PLL0_CLK_OUT_0_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 8.000ns| 3.100ns| N/A| 0| 0| 0| 0| -| erator_0_PLL0_CLK_OUT_1_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 8.000ns| 7.972ns| N/A| 0| 0| 1078756| 0| -| erator_0_PLL0_CLK_OUT_2_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 5.000ns| 1.336ns| N/A| 0| 0| 2| 0| -| erator_0_PLL0_CLK_OUT_3_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 16.000ns| 8.316ns| N/A| 0| 0| 11042| 0| -| erator_0_PLL0_CLK_OUT_4_ | | | | | | | | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ - -All constraints were met. -INFO:Timing:2761 - N/A entries in the Constraints list may indicate that the - constraint does not cover any paths or that it has no requested value. - - -Generating Pad Report. - -All signals are completely routed. - -WARNING:Par:283 - There are 5 loadless signals in this design. This design will cause Bitgen to issue DRC warnings. - -Loading device for application Rf_Device from file '5vlx50t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. -INFO:ParHelpers:197 - Number of "Exact" mode Directed Routing Constraints: 128 -INFO:ParHelpers:199 - All "EXACT" mode Directed Routing constrained nets successfully routed. The number of constraints - found: 128, number successful: 128 -Total REAL time to PAR completion: 7 mins 33 secs -Total CPU time to PAR completion: 7 mins 9 secs - -Peak Memory Usage: 705 MB - -Placer: Placement generated during map. -Routing: Completed - No errors found. -Timing: Completed - No errors found. - -Number of error messages: 0 -Number of warning messages: 9 -Number of info messages: 4 - -Writing design to file system.ncd - - - -PAR done! - - - -#----------------------------------------------# -# Starting program post_par_trce -# trce -ise ../__xps/ise/system.ise -e 3 -xml system.twx system.ncd system.pcf -#----------------------------------------------# -Release 11.2 - Trace (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - - -PMSPEC -- Overriding Xilinx file - with local file - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -WARNING:ConstraintSystem:65 - Constraint [system.pcf(78662)] overrides constraint [system.pcf(78661)]. - -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM - TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP "TNM_CLK0" TS_MC_CLK * 4; - ignored during timing analysis. -INFO:Timing:3386 - Intersecting Constraints found and resolved. For more - information, see the TSI report. Please consult the Xilinx Command Line - Tools User Guide for information on generating a TSI report. --------------------------------------------------------------------------------- -Release 11.2 Trace (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -trce -ise ../__xps/ise/system.ise -e 3 -xml system.twx system.ncd system.pcf - - -Design file: system.ncd -Physical constraint file: system.pcf -Device,speed: xc5vfx70t,-1 (PRODUCTION 1.65 2009-06-01, STEPPING -level 0) -Report level: error report --------------------------------------------------------------------------------- - -INFO:Timing:2752 - To get complete path coverage, use the unconstrained paths - option. All paths that are not constrained will be reported in the - unconstrained paths section(s) of the report. -INFO:Timing:3339 - The clock-to-out numbers in this timing report are based on a - 50 Ohm transmission line loading model. For the details of this model, and - for more information on accounting for different loading conditions, please - see the device datasheet. - - -Timing summary: ---------------- - -Timing errors: 0 Score: 0 (Setup/Max: 0, Hold: 0) - -Constraints cover 1280410 paths, 18 nets, and 87141 connections - -Design statistics: - Minimum period: 13.248ns (Maximum frequency: 75.483MHz) - Maximum path delay from/to any node: 7.813ns - Maximum net delay: 0.805ns - Maximum net skew: 0.545ns - - -Analysis completed Fri Jul 03 22:25:44 2009 --------------------------------------------------------------------------------- - -Generating Report ... - -Number of warnings: 2 -Number of info messages: 3 -Total time: 1 mins 34 secs - - -xflow done! -touch __xps/system_routed -xilperl C:/devtools/Xilinx/11.1/EDK/data/fpga_impl/observe_par.pl -error yes implementation/system.par -Analyzing implementation/system.par -********************************************* -Running Bitgen.. -********************************************* -cd implementation; bitgen -w -f bitgen.ut system; cd .. -Release 11.2 - Bitgen L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -Opened constraints file system.pcf. - -Fri Jul 03 22:26:27 2009 - -Running DRC. -WARNING:PhysDesignRules:1842 - One or more GTXs are being used in this design. - Evaluate the SelectIO-To-GTX Crosstalk section of the Virtex-5 RocketIO GTX - Transceiver User Guide to ensure that the design SelectIO usage meets the - guidelines to minimize the impact on GTX performance. -WARNING:PhysDesignRules:372 - Gated clock. Clock net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_w - rapper_i/icdrreset<0> is sourced by a combinatorial pin. This is not good - design practice. Use the CE pin to control the loading of data into the - flip-flop. -WARNING:PhysDesignRules:372 - Gated clock. Clock net - Ethernet_MAC/Ethernet_MAC/phy_tx_clk_i is sourced by a combinatorial pin. - This is not good design practice. Use the CE pin to control the loading of - data into the flip-flop. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does - not drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - is incomplete. The signal does not drive any load pins in the design. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -DRC detected 0 errors and 24 warnings. Please see the previously displayed -individual error or warning messages for more details. -Creating bit map... -Saving bit stream in "system.bit". -Bitstream generation is complete. - - -Done! - -At Local date and time: Sat Jul 04 08:21:51 2009 - make -f system.make download started... - -cp -f /cygdrive/c/devtools/Xilinx/11.1/EDK/sw/lib/ppc440/ppc440_bootloop.elf bootloops/ppc440_0.elf -********************************************* -Initializing BRAM contents of the bitstream -********************************************* -bitinit -p xc5vfx70tff1136-1 system.mhs -pe ppc440_0 bootloops/ppc440_0.elf \ --bt implementation/system.bit -o implementation/download.bit - -bitinit version Xilinx EDK 11.2 Build EDK_LS3.47 -Copyright (c) Xilinx Inc. 2002. - -Parsing MHS File system.mhs... -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! - -Overriding IP level properties ... - -Performing IP level DRCs on properties... - -Running DRC Tcl procedures for OPTION IPLEVEL_DRC_PROC... -Address Map for Processor ppc440_0 - (0b0000000000-0b0011111111) ppc440_0 - (0000000000-0x0fffffff) DDR2_SDRAM ppc440_0_PPC440MC - (0x81000000-0x8100ffff) Ethernet_MAC plb_v46_0 - (0x81400000-0x8140ffff) Push_Buttons_5Bit plb_v46_0 - (0x81420000-0x8142ffff) LEDs_Positions plb_v46_0 - (0x81440000-0x8144ffff) LEDs_8Bit plb_v46_0 - (0x81460000-0x8146ffff) DIP_Switches_8Bit plb_v46_0 - (0x81600000-0x8160ffff) IIC_EEPROM plb_v46_0 - (0x81800000-0x8180ffff) xps_intc_0 plb_v46_0 - (0x83600000-0x8360ffff) SysACE_CompactFlash plb_v46_0 - (0x84000000-0x8400ffff) RS232_Uart_1 plb_v46_0 - (0x85c00000-0x85c0ffff) PCIe_Bridge plb_v46_0 - (0xc0000000-0xdfffffff) PCIe_Bridge plb_v46_0 - (0xe0000000-0xefffffff) PCIe_Bridge plb_v46_0 - (0xf8000000-0xf80fffff) SRAM plb_v46_0 - (0xffffe000-0xffffffff) xps_bram_if_cntlr_1 plb_v46_0 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 175 - tool is overriding PARAMETER - C_SPLB0_P2P value to 0 - -Computing clock values... -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 12 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 76 - tool is overriding - PARAMETER C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 80 - tool is overriding - PARAMETER C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 69 - tool is overriding PARAMETER C_MEMSIZE - value to 0x2000 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PORT_DWIDTH value to 64 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_NUM_WE - value to 8 -INFO:EDK:1560 - IPNAME:xps_uartlite INSTANCE:RS232_Uart_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_uartlite_v1_01 - _a\data\xps_uartlite_v2_1_0.mpd line 73 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_Positions - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:Push_Buttons_5Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:DIP_Switches_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_iic INSTANCE:IIC_EEPROM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_iic_v2_01_a\da - ta\xps_iic_v2_1_0.mpd line 79 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 82 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 84 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 86 - tool is overriding PARAMETER - C_MPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 87 - tool is overriding PARAMETER - C_MPLB_SMALLEST_SLAVE value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 89 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 90 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 91 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 95 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_ethernetlite_v - 2_01_a\data\xps_ethernetlite_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 74 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 75 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 - -Checking platform address map ... - -Initializing Memory... -Running Data2Mem with the following command: -data2mem -bm "implementation/system_bd" -bt "implementation/system.bit" -bd -"bootloops/ppc440_0.elf" tag ppc440_0 -o b implementation/download.bit -Memory Initialization completed successfully. - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. -write (count, cmdBuffer, dataBuffer) failed C0000004. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2301. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -Downloading c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex. -Downloaded firmware version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -Elapsed time = 2 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 30.69 C, Min. Reading: 27.24 C, Max. -Reading: 30.69 C -5: VCCINT Supply: Current Reading: 0.999 V, Min. Reading: 0.999 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.505 V, Min. Reading: 2.505 V, Max. -Reading: 2.508 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 10 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -At Local date and time: Sat Jul 04 08:22:29 2009 - make -f system.make program started... - -********************************************* -Creating software libraries... -********************************************* -libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg __xps/ise/xmsgprops.lst system.mss -libgen -Xilinx EDK 11.2 Build EDK_LS3.47 -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -Command Line: libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg -__xps/ise/xmsgprops.lst system.mss - -Release 11.2 - psf2Edward EDK_LS3.47 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 253 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 298 - deprecated core for architecture 'virtex5fx'! - -Checking platform configuration ... -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 109 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 290 - 1 master(s) : 1 slave(s) -IPNAME:fcb_v20 INSTANCE:ppc440_0_fcb_v20 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -line 394 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - hs line 462 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... -WARNING:EDK:411 - pcie - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - ss line 77 - deprecated driver! -WARNING:EDK:411 - emaclite - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.m - ss line 83 - deprecated driver! -INFO:EDK:1740 - List of peripherals connected to processor instance ppc440_0: - - DDR2_SDRAM - - DIP_Switches_8Bit - - Ethernet_MAC - - IIC_EEPROM - - LEDs_8Bit - - LEDs_Positions - - PCIe_Bridge - - Push_Buttons_5Bit - - RS232_Uart_1 - - SRAM - - SysACE_CompactFlash - - ppc440_0_apu_fpu_virtex5 - - xps_bram_if_cntlr_1 - - xps_intc_0 - --- Generating libraries for processor: ppc440_0 -- - - -Staging source files. -Running DRCs. -Running generate. -Running post_generate. -Running include - 'make -s include "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mfpu=sp_full -mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. - -Running libs - 'make -s libs "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mfpu=sp_full -mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. -Compiling common -powerpc-eabi-ar: creating ../../../lib/libxil.a - -Compiling lldma -Compiling standalone -Compiling gpio -Compiling emaclite -Compiling iic -Compiling pci -Compiling uartlite -Compiling sysace -Compiling intc -Compiling cpu_ppc440 -Running execs_generate. -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mfpu=sp_full -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 50674 372 86528 137574 21966 RTOSDemo/executable.elf - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/; exit;" - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 239 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 284 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Sun Jul 05 09:36:10 2009 - make -f system.make hwclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed -rm -rf implementation synthesis xst hdl -rm -rf xst.srp system.srp -rm -f __xps/ise/_xmsgs/bitinit.xmsgs - - -Done! - -At Local date and time: Sun Jul 05 09:36:23 2009 - make -f system.make swclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs -rm -f RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\__xps\system.gui - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log deleted file mode 100644 index bcb2b8bc6..000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/Version_Changes.log +++ /dev/null @@ -1,15 +0,0 @@ - The following files will be modified: - system.mhs - system.mss - --------------------------------------- - The following changes will be made: - Core ppc440mc_ddr2 2.00.a will be replaced by 2.00.b - Core clock_generator 3.00.a will be replaced by 3.01.a - - Driver cpu_ppc440 1.00.b will be replaced by 1.01.a - Driver iic 1.14.a will be replaced by 1.15.a --------------------------------------- - The following changes need to be made manually by the user: - Core plbv46_pcie 3.00.b needs to be replaced by 4.01.a - Core xps_ethernetlite 2.01.a needs to be replaced by 3.00.a diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log deleted file mode 100644 index 276d7d645..000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/psf2Edward.log +++ /dev/null @@ -1,41 +0,0 @@ -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - deprecated core for architecture 'virtex5fx'! - -Checking platform configuration ... -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -107 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -288 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 446 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.log deleted file mode 100644 index 179be9a5f..000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.log +++ /dev/null @@ -1,4571 +0,0 @@ -No logfile was found. - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line 251 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line 296 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Mon Jun 29 21:01:23 2009 - make -f system.make program started... - -********************************************* -Creating software libraries... -********************************************* -libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg __xps/ise/xmsgprops.lst system.mss -libgen -Xilinx EDK 11.2 Build EDK_LS3.47 -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -Command Line: libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg -__xps/ise/xmsgprops.lst system.mss - -Release 11.2 - psf2Edward EDK_LS3.47 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\syste - m.mhs line 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\syste - m.mhs line 296 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\syste - m.mhs line 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\syste - m.mhs line 296 - deprecated core for architecture 'virtex5fx'! - -Checking platform configuration ... -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\system.m -hs line 107 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\system.m -hs line 288 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\syste - m.mhs line 446 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... -WARNING:EDK:494 - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\synth - esis\ not found. -WARNING:EDK:2530 - Timing and Resource utilization information not added -WARNING:EDK:411 - pcie - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\syste - m.mss line 77 - deprecated driver! -WARNING:EDK:411 - emaclite - - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\syste - m.mss line 83 - deprecated driver! -INFO:EDK:1740 - List of peripherals connected to processor instance ppc440_0: - - DDR2_SDRAM - - DIP_Switches_8Bit - - Ethernet_MAC - - IIC_EEPROM - - LEDs_8Bit - - LEDs_Positions - - PCIe_Bridge - - Push_Buttons_5Bit - - RS232_Uart_1 - - SRAM - - SysACE_CompactFlash - - xps_bram_if_cntlr_1 - - xps_intc_0 - --- Generating libraries for processor: ppc440_0 -- - - -Staging source files. -Running DRCs. -Running generate. -Running post_generate. -Running include - 'make -s include "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. - -Running libs - 'make -s libs "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. -Compiling common -powerpc-eabi-ar: creating ../../../lib/libxil.a - -Compiling lldma -Compiling standalone -Compiling gpio -Compiling emaclite -Compiling iic -Compiling pci -Compiling uartlite -Compiling sysace -Compiling intc -Compiling cpu_ppc440 -Running execs_generate. -powerpc-eabi-gcc -O0 /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mcpu=440 -Wl,-T -Wl,/cygdrive/c/Temp/WA00101_002/WA00101_002/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 53754 372 86524 140650 2256a RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\Temp\WA00101_002\WA00101_002\FreeRTOS\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 237 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 282 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Tue Jun 30 18:32:58 2009 - make -f system.make hwclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed -rm -rf implementation synthesis xst hdl -rm -rf xst.srp system.srp -rm -f __xps/ise/_xmsgs/bitinit.xmsgs - - -Done! - -At Local date and time: Tue Jun 30 18:33:07 2009 - make -f system.make netlistclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm - - -Done! - -At Local date and time: Tue Jun 30 18:33:13 2009 - make -f system.make bitsclean started... - -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed - - -Done! - -At Local date and time: Tue Jun 30 18:33:24 2009 - make -f system.make libsclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs - - -Done! - -At Local date and time: Tue Jun 30 18:33:31 2009 - make -f system.make programclean started... - -rm -f RTOSDemo/executable.elf - - -Done! - -At Local date and time: Tue Jun 30 18:33:37 2009 - make -f system.make swclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs -rm -f RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 237 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 282 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Tue Jun 30 20:53:14 2009 - make -f system.make program started... - -********************************************* -Creating software libraries... -********************************************* -libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg __xps/ise/xmsgprops.lst system.mss -libgen -Xilinx EDK 11.2 Build EDK_LS3.47 -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -Command Line: libgen -mhs system.mhs -p xc5vfx70tff1136-1 -msg -__xps/ise/xmsgprops.lst system.mss - -Release 11.2 - psf2Edward EDK_LS3.47 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - deprecated core for architecture 'virtex5fx'! - -Checking platform configuration ... -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -107 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -288 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 446 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... -WARNING:EDK:494 - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\synthesis\ not - found. -WARNING:EDK:2530 - Timing and Resource utilization information not added -WARNING:EDK:411 - pcie - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mss line - 77 - deprecated driver! -WARNING:EDK:411 - emaclite - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mss line - 83 - deprecated driver! -INFO:EDK:1740 - List of peripherals connected to processor instance ppc440_0: - - DDR2_SDRAM - - DIP_Switches_8Bit - - Ethernet_MAC - - IIC_EEPROM - - LEDs_8Bit - - LEDs_Positions - - PCIe_Bridge - - Push_Buttons_5Bit - - RS232_Uart_1 - - SRAM - - SysACE_CompactFlash - - xps_bram_if_cntlr_1 - - xps_intc_0 - --- Generating libraries for processor: ppc440_0 -- - - -Staging source files. -Running DRCs. -Running generate. -Running post_generate. -Running include - 'make -s include "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. - -Running libs - 'make -s libs "COMPILER=powerpc-eabi-gcc" -"ARCHIVER=powerpc-eabi-ar" "COMPILER_FLAGS=-mcpu=440 -O2 -c" -"EXTRA_COMPILER_FLAGS=-g"'. -Compiling common -powerpc-eabi-ar: creating ../../../lib/libxil.a - -Compiling lldma -Compiling standalone -Compiling gpio -Compiling emaclite -Compiling iic -Compiling pci -Compiling uartlite -Compiling sysace -Compiling intc -Compiling cpu_ppc440 -Running execs_generate. -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 53754 372 86524 140650 2256a RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 237 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 282 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Tue Jun 30 21:05:40 2009 - make -f system.make bits started... - -**************************************************** -Creating system netlist for hardware specification.. -**************************************************** -platgen -p xc5vfx70tff1136-1 -lang vhdl -msg __xps/ise/xmsgprops.lst system.mhs - -Release 11.2 - platgen Xilinx EDK 11.2 Build EDK_LS3.47 - (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - - -Command Line: platgen -p xc5vfx70tff1136-1 -lang vhdl -msg -__xps/ise/xmsgprops.lst system.mhs - -Parse C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/system.mhs -... - -Read MPD definitions ... -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - deprecated core for architecture 'virtex5fx'! - -Overriding IP level properties ... - -Performing IP level DRCs on properties... - -Running DRC Tcl procedures for OPTION IPLEVEL_DRC_PROC... -Address Map for Processor ppc440_0 - (0b0000000000-0b0011111111) ppc440_0 - (0000000000-0x0fffffff) DDR2_SDRAM ppc440_0_PPC440MC - (0x81000000-0x8100ffff) Ethernet_MAC plb_v46_0 - (0x81400000-0x8140ffff) Push_Buttons_5Bit plb_v46_0 - (0x81420000-0x8142ffff) LEDs_Positions plb_v46_0 - (0x81440000-0x8144ffff) LEDs_8Bit plb_v46_0 - (0x81460000-0x8146ffff) DIP_Switches_8Bit plb_v46_0 - (0x81600000-0x8160ffff) IIC_EEPROM plb_v46_0 - (0x81800000-0x8180ffff) xps_intc_0 plb_v46_0 - (0x83600000-0x8360ffff) SysACE_CompactFlash plb_v46_0 - (0x84000000-0x8400ffff) RS232_Uart_1 plb_v46_0 - (0x85c00000-0x85c0ffff) PCIe_Bridge plb_v46_0 - (0xc0000000-0xdfffffff) PCIe_Bridge plb_v46_0 - (0xe0000000-0xefffffff) PCIe_Bridge plb_v46_0 - (0xf8000000-0xf80fffff) SRAM plb_v46_0 - (0xffffe000-0xffffffff) xps_bram_if_cntlr_1 plb_v46_0 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 175 - tool is overriding PARAMETER - C_SPLB0_P2P value to 0 - -Computing clock values... -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 12 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 76 - tool is overriding - PARAMETER C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 80 - tool is overriding - PARAMETER C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 69 - tool is overriding PARAMETER C_MEMSIZE - value to 0x2000 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PORT_DWIDTH value to 64 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_NUM_WE - value to 8 -INFO:EDK:1560 - IPNAME:xps_uartlite INSTANCE:RS232_Uart_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_uartlite_v1_01 - _a\data\xps_uartlite_v2_1_0.mpd line 73 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_Positions - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:Push_Buttons_5Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:DIP_Switches_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_iic INSTANCE:IIC_EEPROM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_iic_v2_01_a\da - ta\xps_iic_v2_1_0.mpd line 79 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 82 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 84 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 86 - tool is overriding PARAMETER - C_MPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 87 - tool is overriding PARAMETER - C_MPLB_SMALLEST_SLAVE value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 89 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 90 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 91 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 95 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_ethernetlite_v - 2_01_a\data\xps_ethernetlite_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 74 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 75 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 - -Checking platform address map ... - -Checking platform configuration ... -INFO:EDK:1563 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - This design requires design constraints to guarantee performance. - Please refer to the xps_ethernetlite_v2_00_a data sheet for details. - The PLB clock frequency must be greater than or equal to 50 MHz for 100 Mbs - Ethernet operation and greater than or equal to 5.0 MHz for 10 Mbs Ethernet - operation. -IPNAME:plb_v46 INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -107 - 1 master(s) : 12 slave(s) -IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -288 - 1 master(s) : 1 slave(s) - -Checking port drivers... -WARNING:EDK:2099 - PORT:Peripheral_Reset CONNECTOR:sys_periph_reset - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 446 - floating connection! - -Performing Clock DRCs... - -Performing Reset DRCs... - -Overriding system level properties... -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 124 - tcl is overriding PARAMETER - C_PPC440MC_ADDR_BASE value to 0x00000000 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 125 - tcl is overriding PARAMETER - C_PPC440MC_ADDR_HIGH value to 0x0fffffff -INFO:EDK:1560 - IPNAME:jtagppc_cntlr INSTANCE:jtagppc_cntlr_inst - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\jtagppc_cntlr_v2_0 - 1_c\data\jtagppc_cntlr_v2_1_0.mpd line 70 - tcl is overriding PARAMETER - C_NUM_PPC_USED value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 79 - tcl is overriding PARAMETER C_KIND_OF_INTR - value to 0b00000000000000000000000000000001 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 80 - tcl is overriding PARAMETER C_KIND_OF_EDGE - value to 0b00000000000000000000000000000001 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 81 - tcl is overriding PARAMETER C_KIND_OF_LVL - value to 0b00000000000000000000000000000000 - -Running system level update procedures... - -Running UPDATE Tcl procedures for OPTION SYSLEVEL_UPDATE_PROC... - -Running system level DRCs... - -Performing System level DRCs on properties... - -Running DRC Tcl procedures for OPTION SYSLEVEL_DRC_PROC... - -Running UPDATE Tcl procedures for OPTION PLATGEN_SYSLEVEL_UPDATE_PROC... -INFO: The PCIe_Bridge core has constraints automatically generated by XPS in -implementation/pcie_bridge_wrapper/pcie_bridge_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - -INFO: The Ethernet_MAC core has constraints automatically generated by XPS in -implementation/ethernet_mac_wrapper/ethernet_mac_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - -INFO: The DDR2_SDRAM core has constraints automatically generated by XPS in -implementation/ddr2_sdram_wrapper/ddr2_sdram_wrapper.ucf. -It can be overridden by constraints placed in the system.ucf file. - - - - -Modify defaults ... - -Creating stub ... - -Processing licensed instances ... -Completion time: 0.00 seconds - -Creating hardware output directories ... - -Managing hardware (BBD-specified) netlist files ... -IPNAME:plbv46_pcie INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -251 - Copying (BBD-specified) netlist files. -IPNAME:xps_ethernetlite INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -296 - Copying (BBD-specified) netlist files. - -Managing cache ... - -Elaborating instances ... -IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -129 - elaborating IP - -Writing HDL for elaborated instances ... - -Inserting wrapper level ... -Completion time: 1.00 seconds - -Constructing platform-level connectivity ... -Completion time: 1.00 seconds - -Writing (top-level) BMM ... - -Writing (top-level and wrappers) HDL ... - -Generating synthesis project file ... - -Running XST synthesis ... - -INFO:EDK:2502 - The following instances are synthesized with XST. The MPD option - IMP_NETLIST=TRUE indicates that a NGC file is to be produced using XST - synthesis. IMP_NETLIST=FALSE (default) instances are not synthesized. -INSTANCE:ppc440_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line 78 -- Running XST synthesis -INSTANCE:plb_v46_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -107 - Running XST synthesis -INSTANCE:xps_bram_if_cntlr_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -116 - Running XST synthesis -INSTANCE:xps_bram_if_cntlr_1_bram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -129 - Running XST synthesis -INSTANCE:rs232_uart_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -136 - Running XST synthesis -INSTANCE:leds_8bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -152 - Running XST synthesis -INSTANCE:leds_positions - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -166 - Running XST synthesis -INSTANCE:push_buttons_5bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -180 - Running XST synthesis -INSTANCE:dip_switches_8bit - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -194 - Running XST synthesis -INSTANCE:iic_eeprom - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -208 - Running XST synthesis -INSTANCE:sram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -221 - Running XST synthesis -INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -251 - Running XST synthesis -INSTANCE:ppc440_0_splb0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -288 - Running XST synthesis -INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -296 - Running XST synthesis -INSTANCE:ddr2_sdram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -315 - Running XST synthesis -INSTANCE:sysace_compactflash - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -375 - Running XST synthesis -INSTANCE:clock_generator_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -392 - Running XST synthesis -INSTANCE:jtagppc_cntlr_inst - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -431 - Running XST synthesis -INSTANCE:proc_sys_reset_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -437 - Running XST synthesis -INSTANCE:xps_intc_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -449 - Running XST synthesis - -Running NGCBUILD ... -IPNAME:ppc440_0_wrapper INSTANCE:ppc440_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line 78 -- Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ppc440_0_wrapper.ucf -sd .. -ppc440_0_wrapper.ngc ../ppc440_0_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/pp -c440_0_wrapper/ppc440_0_wrapper.ngc" ... - -Applying constraints in "ppc440_0_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ppc440_0_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 7 sec -Total CPU time to NGCBUILD completion: 6 sec - -Writing NGCBUILD log file "../ppc440_0_wrapper.blc"... - -NGCBUILD done. -IPNAME:rs232_uart_1_wrapper INSTANCE:rs232_uart_1 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -136 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -sd .. rs232_uart_1_wrapper.ngc -../rs232_uart_1_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/rs -232_uart_1_wrapper/rs232_uart_1_wrapper.ngc" ... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../rs232_uart_1_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 8 sec -Total CPU time to NGCBUILD completion: 2 sec - -Writing NGCBUILD log file "../rs232_uart_1_wrapper.blc"... - -NGCBUILD done. -IPNAME:pcie_bridge_wrapper INSTANCE:pcie_bridge - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -251 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc pcie_bridge_wrapper.ucf -sd .. -pcie_bridge_wrapper.ngc ../pcie_bridge_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/pc -ie_bridge_wrapper/pcie_bridge_wrapper.ngc" ... -Executing edif2ngd -noa -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\implementation\pc -ie_bridge_wrapper_fifo_generator_v4_3.edn" -"pcie_bridge_wrapper_fifo_generator_v4_3.ngo" -Release 11.2 - edif2ngd L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -INFO:NgdBuild - Release 11.2 edif2ngd L.46 (nt) -INFO:NgdBuild - Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file -with local file -Writing module to "pcie_bridge_wrapper_fifo_generator_v4_3.ngo"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\implementation\pc -ie_bridge_wrapper\pcie_bridge_wrapper_fifo_generator_v4_3.ngo"... -Loading design module -"../pcie_bridge_wrapper_fifo_generator_v4_3_fifo_generator_v4_3_xst_1.ngc"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\implementation\pc -ie_bridge_wrapper/dpram_70_512.ngc"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\implementation\pc -ie_bridge_wrapper/fifo_71x512.ngc"... - -Applying constraints in "pcie_bridge_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../pcie_bridge_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 13 sec -Total CPU time to NGCBUILD completion: 9 sec - -Writing NGCBUILD log file "../pcie_bridge_wrapper.blc"... - -NGCBUILD done. -IPNAME:ethernet_mac_wrapper INSTANCE:ethernet_mac - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -296 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ethernet_mac_wrapper.ucf -sd .. -ethernet_mac_wrapper.ngc ../ethernet_mac_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/et -hernet_mac_wrapper/ethernet_mac_wrapper.ngc" ... -Executing edif2ngd -noa "ethernetlite_v1_01_b_dmem_v2.edn" -"ethernetlite_v1_01_b_dmem_v2.ngo" -Release 11.2 - edif2ngd L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -INFO:NgdBuild - Release 11.2 edif2ngd L.46 (nt) -INFO:NgdBuild - Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file -with local file -Writing module to "ethernetlite_v1_01_b_dmem_v2.ngo"... -Loading design module -"C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\implementation\et -hernet_mac_wrapper\ethernetlite_v1_01_b_dmem_v2.ngo"... - -Applying constraints in "ethernet_mac_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ethernet_mac_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 9 sec -Total CPU time to NGCBUILD completion: 6 sec - -Writing NGCBUILD log file "../ethernet_mac_wrapper.blc"... - -NGCBUILD done. -IPNAME:ddr2_sdram_wrapper INSTANCE:ddr2_sdram - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -315 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -uc ddr2_sdram_wrapper.ucf -sd .. -ddr2_sdram_wrapper.ngc ../ddr2_sdram_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/dd -r2_sdram_wrapper/ddr2_sdram_wrapper.ngc" ... - -Applying constraints in "ddr2_sdram_wrapper.ucf" to the design... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../ddr2_sdram_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 7 sec -Total CPU time to NGCBUILD completion: 7 sec - -Writing NGCBUILD log file "../ddr2_sdram_wrapper.blc"... - -NGCBUILD done. -IPNAME:xps_intc_0_wrapper INSTANCE:xps_intc_0 - -C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line -449 - Running NGCBUILD -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: C:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -p -xc5vfx70tff1136-1 -intstyle silent -sd .. xps_intc_0_wrapper.ngc -../xps_intc_0_wrapper.ngc - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/xp -s_intc_0_wrapper/xps_intc_0_wrapper.ngc" ... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../xps_intc_0_wrapper.ngc" ... -Total REAL time to NGCBUILD completion: 1 sec -Total CPU time to NGCBUILD completion: 1 sec - -Writing NGCBUILD log file "../xps_intc_0_wrapper.blc"... - -NGCBUILD done. - -Rebuilding cache ... - -Total run time: 1039.00 seconds -Running synthesis... -bash -c "cd synthesis; ./synthesis.sh" -xst -ifn system_xst.scr -intstyle silent -Running XST synthesis ... -XST completed -Release 11.2 - ngcbuild L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Overriding Xilinx file with local file - - -Command Line: c:\devtools\Xilinx\11.1\ISE\bin\nt\unwrapped\ngcbuild.exe -./system.ngc ../implementation/system.ngc -sd ../implementation -i -ise -../__xps/ise/system.ise - -Reading NGO file -"c:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/synthesis/system. -ngc" ... -Loading design module "../implementation/ppc440_0_wrapper.ngc"... -Loading design module "../implementation/plb_v46_0_wrapper.ngc"... -Loading design module "../implementation/xps_bram_if_cntlr_1_wrapper.ngc"... -Loading design module -"../implementation/xps_bram_if_cntlr_1_bram_wrapper.ngc"... -Loading design module "../implementation/rs232_uart_1_wrapper.ngc"... -Loading design module "../implementation/leds_8bit_wrapper.ngc"... -Loading design module "../implementation/leds_positions_wrapper.ngc"... -Loading design module "../implementation/push_buttons_5bit_wrapper.ngc"... -Loading design module "../implementation/dip_switches_8bit_wrapper.ngc"... -Loading design module "../implementation/iic_eeprom_wrapper.ngc"... -Loading design module "../implementation/sram_wrapper.ngc"... -Loading design module "../implementation/pcie_bridge_wrapper.ngc"... -Loading design module "../implementation/ppc440_0_splb0_wrapper.ngc"... -Loading design module "../implementation/ethernet_mac_wrapper.ngc"... -Loading design module "../implementation/ddr2_sdram_wrapper.ngc"... -Loading design module "../implementation/sysace_compactflash_wrapper.ngc"... -Loading design module "../implementation/clock_generator_0_wrapper.ngc"... -Loading design module "../implementation/jtagppc_cntlr_inst_wrapper.ngc"... -Loading design module "../implementation/proc_sys_reset_0_wrapper.ngc"... -Loading design module "../implementation/xps_intc_0_wrapper.ngc"... - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGCBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 0 - -Writing NGC file "../implementation/system.ngc" ... -Total REAL time to NGCBUILD completion: 10 sec -Total CPU time to NGCBUILD completion: 9 sec - -Writing NGCBUILD log file "../implementation/system.blc"... - -NGCBUILD done. -********************************************* -Running Xilinx Implementation tools.. -********************************************* -xflow -wd implementation -p xc5vfx70tff1136-1 -implement xflow.opt -ise ../__xps/ise/system.ise system.ngc -Release 11.2 - Xflow L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -xflow.exe -wd implementation -p xc5vfx70tff1136-1 -implement xflow.opt -ise -../__xps/ise/system.ise system.ngc -PMSPEC -- Overriding Xilinx file - with local file - -.... Copying flowfile c:/devtools/Xilinx/11.1/ISE/xilinx/data/fpga.flw into -working directory -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation - -Using Flow File: -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/fpg -a.flw -Using Option File(s): - C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/xf -low.opt - -Creating Script File ... - -#----------------------------------------------# -# Starting program ngdbuild -# ngdbuild -ise ../__xps/ise/system.ise -p xc5vfx70tff1136-1 -nt timestamp -bm -system.bmm -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/sy -stem.ngc" -uc system.ucf system.ngd -#----------------------------------------------# -Release 11.2 - ngdbuild L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - - -Command Line: ngdbuild -ise ../__xps/ise/system.ise -p xc5vfx70tff1136-1 -nt -timestamp -bm system.bmm -C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/sys -tem.ngc -uc system.ucf system.ngd - -Reading NGO file -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/implementation/sy -stem.ngc" ... -Gathering constraint information from source properties... -Done. - -Applying constraints in "system.ucf" to the design... -WARNING:NgdBuild:931 - The value of SIM_DEVICE on instance - 'clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ - ADV.DCM_ADV_INST' of type DCM_ADV has been changed from 'VIRTEX4' to - 'VIRTEX5' to correct post-ngdbuild and timing simulation for this primitive. - In order for functional simulation to be correct, the value of SIM_DEVICE - should be changed in this same manner in the source netlist or constraint - file. -Resolving constraint associations... -Checking Constraint Associations... -WARNING:ConstraintSystem:3 - Constraint [system.ucf(264)]: This constraint will be ignored because the relative - clock constraint named 'TS_clk_div_slow_0_clk_div_slow_0_DDR2_CLK_i' was not - found. - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT0: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT1: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT2: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT3: - -INFO:ConstraintSystem:178 - TNM 'sys_clk_pin', used in period specification - 'TS_sys_clk_pin', was traced into PLL_ADV instance - clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst. - The following new TNM groups and period specifications were generated at the - PLL_ADV output(s): - CLKOUT4: - -Done... -Checking Partitions ... - -Processing BMM file ... - -WARNING:NgdBuild:1212 - User specified non-default attribute value - (8.0000000000000000) was detected for the CLKIN_PERIOD attribute on DCM - "clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ADV.DCM_ADV_INST". - This does not match the PERIOD constraint value (5 ns.). The uncertainty - calculation will use the non-default attribute value. This could result in - incorrect uncertainty calculated for DCM output clocks. -Checking expanded design ... -WARNING:NgdBuild:443 - SFF primitive - 'xps_bram_if_cntlr_1/xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ - ATTACH/I_DBEAT_CONTROL/I_DBEAT_CNTR/STRUCTURAL_A_GEN.I_ADDSUB_GEN[4].FDRE_I' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/EMC_CTRL_I/MEM_STEER_I/SYNC_MEM_DQT.REG_DQT_GEN[2].DQT_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/EMC_CTRL_I/MEM_STEER_I/GSYNC_MEM_RDACK_GEN.ADDR_ALIGN_PIPE_GEN[3]. - ALIGN_PIPE' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_WRCE_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_RDCE_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BURST_SUPPORT/RESPONSE_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FD - RE_I' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BURST_SUPPORT/CONTROL_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FDR - E_I' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_BE0to3 - ' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' - has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHM - ENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG - ' has unconnected output pin -WARNING:NgdBuild:486 - Attribute "CLK_FEEDBACK" is not allowed on symbol - "PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.pll_ad - v_i" of type "PLL_ADV". This attribute will be ignored. -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[7].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[6].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[5].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE - _4to7[4].I_FDRSE_BE4to7' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_B - URSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_B - E0to3' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_S - _H_ADDR_REG[6].I_ADDR_S_H_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_S - _H_ADDR_REG[7].I_ADDR_S_H_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_RDCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_WRCE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[32].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[33].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[34].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[35].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[36].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[37].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[38].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[39].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[40].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[41].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[42].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[43].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[56].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[57].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[58].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[59].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[60].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[65].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[67].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[72].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[73].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[75].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_CE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_CE_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_RDCE_REG' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_CE_REG' has unconnected - output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_RDCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_C - E_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_WRCE_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG0' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG1' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_ - SIZE2_REG2' has unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_master/I_RD_CONTROL/I_RD_ABORT_REG' has - unconnected output pin -WARNING:NgdBuild:443 - SFF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/COLLISION_SYNC' has unconnected - output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU10' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU15' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU20' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU25' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU30' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU35' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU130' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU237' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU10' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU15' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU20' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU25' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU30' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU35' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU130' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU237' - has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[1].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[2].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[3].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[4].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[5].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[6].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:440 - FF primitive - 'DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib - /gen_rden[7].u_calib_rden_r' has unconnected output pin -WARNING:NgdBuild:486 - Attribute "CLK_FEEDBACK" is not allowed on symbol - "clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst" - of type "PLL_ADV". This attribute will be ignored. -WARNING:NgdBuild:452 - logical net 'N194' has no driver -WARNING:NgdBuild:452 - logical net 'N195' has no driver -WARNING:NgdBuild:452 - logical net 'N196' has no driver -WARNING:NgdBuild:452 - logical net 'N197' has no driver -WARNING:NgdBuild:452 - logical net 'N198' has no driver -WARNING:NgdBuild:452 - logical net 'N199' has no driver -WARNING:NgdBuild:452 - logical net 'N200' has no driver -WARNING:NgdBuild:452 - logical net 'N201' has no driver -WARNING:NgdBuild:452 - logical net 'N202' has no driver -WARNING:NgdBuild:452 - logical net 'N203' has no driver -WARNING:NgdBuild:452 - logical net 'N204' has no driver -WARNING:NgdBuild:452 - logical net 'N205' has no driver -WARNING:NgdBuild:452 - logical net 'N206' has no driver -WARNING:NgdBuild:452 - logical net 'N207' has no driver -WARNING:NgdBuild:452 - logical net 'N208' has no driver -WARNING:NgdBuild:452 - logical net 'N209' has no driver -WARNING:NgdBuild:452 - logical net 'N210' has no driver -WARNING:NgdBuild:452 - logical net 'N211' has no driver -WARNING:NgdBuild:452 - logical net 'N212' has no driver -WARNING:NgdBuild:452 - logical net 'N213' has no driver -WARNING:NgdBuild:452 - logical net 'N214' has no driver -WARNING:NgdBuild:452 - logical net 'N215' has no driver -WARNING:NgdBuild:452 - logical net 'N216' has no driver -WARNING:NgdBuild:452 - logical net 'N217' has no driver -WARNING:NgdBuild:452 - logical net 'N218' has no driver -WARNING:NgdBuild:452 - logical net 'N219' has no driver -WARNING:NgdBuild:452 - logical net 'N220' has no driver -WARNING:NgdBuild:452 - logical net 'N221' has no driver -WARNING:NgdBuild:452 - logical net 'N222' has no driver -WARNING:NgdBuild:452 - logical net 'N223' has no driver -WARNING:NgdBuild:452 - logical net 'N224' has no driver -WARNING:NgdBuild:452 - logical net 'N225' has no driver -WARNING:NgdBuild:452 - logical net 'N226' has no driver -WARNING:NgdBuild:452 - logical net 'N227' has no driver -WARNING:NgdBuild:452 - logical net 'N228' has no driver -WARNING:NgdBuild:452 - logical net 'N229' has no driver -WARNING:NgdBuild:452 - logical net 'N230' has no driver -WARNING:NgdBuild:452 - logical net 'N231' has no driver -WARNING:NgdBuild:452 - logical net 'N232' has no driver -WARNING:NgdBuild:452 - logical net 'N233' has no driver -WARNING:NgdBuild:452 - logical net 'N234' has no driver -WARNING:NgdBuild:452 - logical net 'N235' has no driver -WARNING:NgdBuild:452 - logical net 'N236' has no driver -WARNING:NgdBuild:452 - logical net 'N237' has no driver -WARNING:NgdBuild:452 - logical net 'N238' has no driver -WARNING:NgdBuild:452 - logical net 'N239' has no driver -WARNING:NgdBuild:452 - logical net 'N240' has no driver -WARNING:NgdBuild:452 - logical net 'N241' has no driver -WARNING:NgdBuild:452 - logical net 'N242' has no driver -WARNING:NgdBuild:452 - logical net 'N243' has no driver -WARNING:NgdBuild:452 - logical net 'N244' has no driver -WARNING:NgdBuild:452 - logical net 'N245' has no driver -WARNING:NgdBuild:452 - logical net 'N246' has no driver -WARNING:NgdBuild:452 - logical net 'N247' has no driver -WARNING:NgdBuild:452 - logical net 'N248' has no driver -WARNING:NgdBuild:452 - logical net 'N249' has no driver -WARNING:NgdBuild:452 - logical net 'N250' has no driver -WARNING:NgdBuild:452 - logical net 'N251' has no driver -WARNING:NgdBuild:452 - logical net 'N252' has no driver -WARNING:NgdBuild:452 - logical net 'N253' has no driver -WARNING:NgdBuild:452 - logical net 'N254' has no driver -WARNING:NgdBuild:452 - logical net 'N255' has no driver -WARNING:NgdBuild:452 - logical net 'N256' has no driver -WARNING:NgdBuild:452 - logical net 'N257' has no driver -WARNING:NgdBuild:452 - logical net 'N266' has no driver -WARNING:NgdBuild:452 - logical net 'N267' has no driver -WARNING:NgdBuild:452 - logical net 'N268' has no driver -WARNING:NgdBuild:452 - logical net 'N269' has no driver -WARNING:NgdBuild:452 - logical net 'N270' has no driver -WARNING:NgdBuild:452 - logical net 'N271' has no driver -WARNING:NgdBuild:452 - logical net 'N272' has no driver -WARNING:NgdBuild:452 - logical net 'N273' has no driver -WARNING:NgdBuild:452 - logical net 'N306' has no driver -WARNING:NgdBuild:452 - logical net 'N307' has no driver -WARNING:NgdBuild:452 - logical net 'N308' has no driver -WARNING:NgdBuild:452 - logical net 'N309' has no driver -WARNING:NgdBuild:452 - logical net 'N310' has no driver -WARNING:NgdBuild:452 - logical net 'N311' has no driver -WARNING:NgdBuild:452 - logical net 'N312' has no driver -WARNING:NgdBuild:452 - logical net 'N313' has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_terrfwd_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_rerrfwd_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tsrc_dsc_n' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tbuf_av<3>' - has no driver -WARNING:NgdBuild:452 - logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_trem_n<4>' - has no driver - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -NGDBUILD Design Results Summary: - Number of errors: 0 - Number of warnings: 348 - -Writing NGD file "system.ngd" ... -Total REAL time to NGDBUILD completion: 1 min 58 sec -Total CPU time to NGDBUILD completion: 1 min 28 sec - -Writing NGDBUILD log file "system.bld"... - -NGDBUILD done. - - - -#----------------------------------------------# -# Starting program map -# map -ise ../__xps/ise/system.ise -o system_map.ncd -w -pr b -ol high -timing -system.ngd system.pcf -#----------------------------------------------# -Release 11.2 - Map L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - -Using target part "5vfx70tff1136-1". -WARNING:LIT:243 - Logical network N194 has no load. -WARNING:LIT:395 - The above warning message is repeated 1200 more times for the - following (max. 5 shown): - N195, - N196, - N197, - N198, - N199 - To see the details of these warning messages, please use the -detail switch. -Mapping design into LUTs... -WARNING:MapLib:701 - Signal fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin - connected to top level port fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin has - been removed. -WARNING:MapLib:701 - Signal fpga_0_Ethernet_MAC_PHY_col_pin connected to top - level port fpga_0_Ethernet_MAC_PHY_col_pin has been removed. -WARNING:MapLib:41 - All members of TNM group "ppc440_0_PPCS0PLBMBUSY" have been - optimized out of the design. -Writing file system_map.ngm... -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0 - of frag REGCLKAU connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0 - of frag REGCLKAL connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_0_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1 - of frag REGCLKAU connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1 - of frag REGCLKAL connected to power/ground net - xps_bram_if_cntlr_1_bram/xps_bram_if_cntlr_1_bram/ramb36_1_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst - of frag REGCLKAU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst - of frag REGCLKAL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst - of frag REGCLKAU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst - of frag REGCLKAL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapp - er_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/r - x_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/Comp_FIFO/CompFIFO_64.dpram/BU2/U0 - /blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36. - noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/m - em/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5. - ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COM - P_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noi - nit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP - of frag RDRCLKU connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP_RDRCLKU_tiesig -WARNING:Pack:2874 - Trimming timing constraints from pin - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP - of frag RDRCLKL connected to power/ground net - PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/comp_rx_fifo/GEN_64.COMP_RX_RAM/BU2 - /U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM - 36.noeccerr.SDP_RDRCLKL_tiesig -Running directed packing... -Running delay-based LUT packing... -Updating timing models... -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM - TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP "TNM_CLK0" TS_MC_CLK * 4 ignored during - timing analysis. -INFO:Map:215 - The Interim Design Summary has been generated in the MAP Report - (.mrp). -Running timing-driven placement... -Total REAL time at the beginning of Placer: 1 mins 55 secs -Total CPU time at the beginning of Placer: 1 mins 43 secs - -Phase 1.1 Initial Placement Analysis -Phase 1.1 Initial Placement Analysis (Checksum:150b88e2) REAL time: 2 mins 13 secs - -Phase 2.7 Design Feasibility Check -WARNING:Place:838 - An IO Bus with more than one IO standard is found. - Components associated with this bus are as follows: - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<7> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<6> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<5> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<4> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<3> IOSTANDARD = LVCMOS25 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<2> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<1> IOSTANDARD = LVCMOS18 - Comp: fpga_0_LEDs_8Bit_GPIO_IO_pin<0> IOSTANDARD = LVCMOS18 - - -WARNING:Place:838 - An IO Bus with more than one IO standard is found. - Components associated with this bus are as follows: - Comp: fpga_0_SRAM_Mem_DQ_pin<31> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<30> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<29> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<28> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<27> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<26> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<25> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<24> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<23> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<22> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<21> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<20> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<19> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<18> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<17> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<16> IOSTANDARD = LVDCI_33 - Comp: fpga_0_SRAM_Mem_DQ_pin<15> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<14> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<13> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<12> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<11> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<10> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<9> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<8> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<7> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<6> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<5> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<4> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<3> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<2> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<1> IOSTANDARD = LVCMOS33 - Comp: fpga_0_SRAM_Mem_DQ_pin<0> IOSTANDARD = LVCMOS33 - - -Phase 2.7 Design Feasibility Check (Checksum:150b88e2) REAL time: 2 mins 14 secs - -Phase 3.31 Local Placement Optimization -Phase 3.31 Local Placement Optimization (Checksum:f23945c2) REAL time: 2 mins 14 secs - -Phase 4.37 Local Placement Optimization -Phase 4.37 Local Placement Optimization (Checksum:f23945c2) REAL time: 2 mins 14 secs - -Phase 5.33 Local Placement Optimization -Phase 5.33 Local Placement Optimization (Checksum:f23945c2) REAL time: 8 mins 58 secs - -Phase 6.32 Local Placement Optimization -Phase 6.32 Local Placement Optimization (Checksum:f23945c2) REAL time: 9 mins 1 secs - -Phase 7.2 Initial Clock and IO Placement - - - -There are 16 clock regions on the target FPGA device: -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y7: | CLOCKREGION_X1Y7: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 4 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y6: | CLOCKREGION_X1Y6: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 3 in use | 4 edge BUFIOs available, 0 in use | -| 0 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y5: | CLOCKREGION_X1Y5: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y4: | CLOCKREGION_X1Y4: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y3: | CLOCKREGION_X1Y3: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y2: | CLOCKREGION_X1Y2: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 3 in use | 4 edge BUFIOs available, 0 in use | -| 2 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y1: | CLOCKREGION_X1Y1: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use - | -| 4 edge BUFIOs available, 2 in use | 4 edge BUFIOs available, 0 in use | -| 0 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| -| CLOCKREGION_X0Y0: | CLOCKREGION_X1Y0: | -| 2 BUFRs available, 0 in use | 2 BUFRs available, 0 in use | -| 4 Regional Clock Spines, 0 in use | 4 Regional Clock Spines, 0 in use | -| 4 edge BUFIOs available, 0 in use | 4 edge BUFIOs available, 0 in use | -| 4 center BUFIOs available, 0 in use | | -| | | -|------------------------------------------|------------------------------------------| - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 2/4; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 0 | 0 | 80 | 80 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 3/4; center-bufios - 0/2; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 8 | 0 | 0 | 60 | 60 | 1280 | 640 | 1920 | 0 | 0 | 1 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|------- --|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): edge-bufios - 3/4; bufrs - 0/2; regional-clock-spines - 0/4 -|----------------------------------------------------------------------------------------------------------------------------------------------------------- -| | clock | BRAM | | | | | | | | | | | | -| | region | FIFO | DCM | GT | ILOGIC | OLOGIC | FF | LUTM | LUTL | MULT | EMAC | PPC | PCIe | <- (Types of Resources in Clock Region) -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Upper Region| 24 | 0 | 0 | 80 | 80 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the upper region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| |CurrentRegion| 24 | 4 | 0 | 40 | 40 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the current region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| | Lower Region| 24 | 2 | 0 | 60 | 60 | 3200 | 1600 | 4800 | 0 | 0 | 0 | 0 | <- Available resources in the lower region -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| clock | region | ----------------------------------------------- -| type | expansion | | -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | - 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- -| BUFIO | | 0 | 0 | 0 | 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" -|-------|-------------|------|-----|----|--------|--------|-------|-------|-------|------|------|-----|------|---------------------------------------------- - - - - -###################################################################################### -# REGIONAL CLOCKING RESOURCE DISTRIBUTION UCF REPORT: -# -# Number of Regional Clocking Regions in the device: 16 (4 clock spines in each) -# Number of Regional Clock Networks used in this design: 8 (each network can be -# composed of up to 3 clock spines and cover up to 3 regional clock regions) -# -###################################################################################### - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" driven by "BUFIO_X0Y27" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[7].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y27" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<7>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" driven by "BUFIO_X0Y9" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[0].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y9" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<0>" RANGE = -CLOCKREGION_X0Y2; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" driven by "BUFIO_X0Y11" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[4].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y11" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<4>" RANGE = -CLOCKREGION_X0Y2; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" driven by "BUFIO_X0Y4" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[1].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y4" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<1>" RANGE = -CLOCKREGION_X0Y1; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" driven by "BUFIO_X0Y25" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[5].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y25" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<5>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" driven by "BUFIO_X0Y7" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[2].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y7" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<2>" RANGE = -CLOCKREGION_X0Y1; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" driven by "BUFIO_X0Y26" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[6].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y26" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<6>" RANGE = -CLOCKREGION_X0Y6; - - -# IO-Clock "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" driven by "BUFIO_X0Y10" -INST "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[3].u_iob_dqs/u_bufio_dqs" LOC = -"BUFIO_X0Y10" ; -NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" TNM_NET = -"TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" ; -TIMEGRP "TN_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" AREA_GROUP = -"CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" ; -AREA_GROUP "CLKAG_DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/delayed_dqs<3>" RANGE = -CLOCKREGION_X0Y2; - - -Phase 7.2 Initial Clock and IO Placement (Checksum:7e049af9) REAL time: 9 mins 19 secs - -Phase 8.36 Local Placement Optimization -Phase 8.36 Local Placement Optimization (Checksum:7e049af9) REAL time: 9 mins 19 secs - -.................... -................. -..... -...... -..... -...... -..... -..... -...... -...... -....... -...... -....... -....... -....... -.. -Phase 9.30 Global Clock Region Assignment - - -###################################################################################### -# GLOBAL CLOCK NET DISTRIBUTION UCF REPORT: -# -# Number of Global Clock Regions : 16 -# Number of Global Clock Networks: 15 -# -# Clock Region Assignment: SUCCESSFUL - -# Location of Clock Components -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT1.CLKOUT1_BUFG_INST" LOC = "BUFGCTRL_X0Y1" ; -INST "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y30" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.gtxclk_pll_bufg" LOC = "BUFGCTRL_X0Y29" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.coreclk_pll_bufg" LOC = "BUFGCTRL_X0Y27" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT2.CLKOUT2_BUFG_INST" LOC = "BUFGCTRL_X0Y2" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_BUFG_for_CLKFBOUT.CLKFB_BUFG_INST" LOC = "BUFGCTRL_X0Y3" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/notsame.usrclk_pll_bufg" LOC = "BUFGCTRL_X0Y28" ; -INST "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y8" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.clkfbin_pll_bufg" LOC = "BUFGCTRL_X0Y26" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT3.CLKOUT3_BUFG_INST" LOC = "BUFGCTRL_X0Y4" ; -INST "clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/Using_BUFG_for_CLK0.CLK0_BUFG_INST" LOC = "BUFGCTRL_X0Y7" ; -INST "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP/BUFG" LOC = "BUFGCTRL_X0Y31" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT0.CLKOUT0_BUFG_INST" LOC = "BUFGCTRL_X0Y5" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/Using_BUFG_for_CLKOUT4.CLKOUT4_BUFG_INST" LOC = "BUFGCTRL_X0Y6" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/bufg2" LOC = "BUFGCTRL_X0Y0" ; -INST "clock_generator_0/clock_generator_0/Using_DCM0.DCM0_INST/DCM_INST/Using_DCM_ADV.DCM_ADV_INST" LOC = "DCM_ADV_X0Y0" ; -INST "fpga_0_SRAM_ZBT_CLK_FB_pin" LOC = "IOB_X1Y111" ; -INST "fpga_0_clk_1_sys_clk_pin" LOC = "IOB_X1Y109" ; -INST "fpga_0_Ethernet_MAC_PHY_rx_clk_pin" LOC = "IOB_X1Y219" ; -INST "fpga_0_Ethernet_MAC_PHY_tx_clk_pin" LOC = "IOB_X1Y217" ; -INST "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin" LOC = "IOB_X1Y105" ; -INST "fpga_0_PCIe_Bridge_RXN_pin" LOC = "IPAD_X1Y12" ; -INST "fpga_0_PCIe_Bridge_RXP_pin" LOC = "IPAD_X1Y13" ; -INST "fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin" LOC = "IPAD_X1Y16" ; -INST "fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin" LOC = "IPAD_X1Y17" ; -INST "fpga_0_PCIe_Bridge_TXN_pin" LOC = "OPAD_X0Y8" ; -INST "fpga_0_PCIe_Bridge_TXP_pin" LOC = "OPAD_X0Y9" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.pll_adv_i" LOC = "PLL_ADV_X0Y5" ; -INST "clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst" LOC = "PLL_ADV_X0Y0" ; -INST "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/GTD[0].GT_i" LOC = "GTX_DUAL_X0Y2" ; -INST "ibufgds_76" LOC = "BUFDS_X0Y2" ; - -# clk_125_0000MHzPLL0 driven by BUFGCTRL_X0Y1 -NET "clk_125_0000MHzPLL0" TNM_NET = "TN_clk_125_0000MHzPLL0" ; -TIMEGRP "TN_clk_125_0000MHzPLL0" AREA_GROUP = "CLKAG_clk_125_0000MHzPLL0" ; -AREA_GROUP "CLKAG_clk_125_0000MHzPLL0" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP driven by BUFGCTRL_X0Y30 -NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" TNM_NET = "TN_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP" RANGE = CLOCKREGION_X0Y2, CLOCKREGION_X0Y3, CLOCKREGION_X0Y4, CLOCKREGION_X0Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk driven by BUFGCTRL_X0Y29 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk driven by BUFGCTRL_X0Y27 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clk_125_0000MHzPLL0_ADJUST driven by BUFGCTRL_X0Y2 -NET "clk_125_0000MHzPLL0_ADJUST" TNM_NET = "TN_clk_125_0000MHzPLL0_ADJUST" ; -TIMEGRP "TN_clk_125_0000MHzPLL0_ADJUST" AREA_GROUP = "CLKAG_clk_125_0000MHzPLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_125_0000MHzPLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6> driven by BUFGCTRL_X0Y3 -NET "clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" TNM_NET = "TN_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" ; -TIMEGRP "TN_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" AREA_GROUP = "CLKAG_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" ; -AREA_GROUP "CLKAG_clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6>" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X0Y1 ; - -# PCIe_Bridge/Bridge_Clk driven by BUFGCTRL_X0Y28 -NET "PCIe_Bridge/Bridge_Clk" TNM_NET = "TN_PCIe_Bridge/Bridge_Clk" ; -TIMEGRP "TN_PCIe_Bridge/Bridge_Clk" AREA_GROUP = "CLKAG_PCIe_Bridge/Bridge_Clk" ; -AREA_GROUP "CLKAG_PCIe_Bridge/Bridge_Clk" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP driven by BUFGCTRL_X0Y8 -NET "fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" TNM_NET = "TN_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP" RANGE = CLOCKREGION_X1Y0, CLOCKREGION_X1Y1, CLOCKREGION_X1Y2, CLOCKREGION_X1Y3, CLOCKREGION_X1Y4, CLOCKREGION_X1Y5, CLOCKREGION_X1Y6, CLOCKREGION_X1Y7 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin driven by BUFGCTRL_X0Y26 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin" RANGE = CLOCKREGION_X0Y6, CLOCKREGION_X0Y7 ; - -# clk_200_0000MHz driven by BUFGCTRL_X0Y4 -NET "clk_200_0000MHz" TNM_NET = "TN_clk_200_0000MHz" ; -TIMEGRP "TN_clk_200_0000MHz" AREA_GROUP = "CLKAG_clk_200_0000MHz" ; -AREA_GROUP "CLKAG_clk_200_0000MHz" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF driven by BUFGCTRL_X0Y7 -NET "fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" TNM_NET = "TN_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" ; -TIMEGRP "TN_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" AREA_GROUP = "CLKAG_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" ; -AREA_GROUP "CLKAG_fpga_0_SRAM_ZBT_CLK_OUT_pin_OBUF" RANGE = CLOCKREGION_X1Y6, CLOCKREGION_X1Y7 ; - -# fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP driven by BUFGCTRL_X0Y31 -NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" TNM_NET = "TN_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" ; -TIMEGRP "TN_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" AREA_GROUP = "CLKAG_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" ; -AREA_GROUP "CLKAG_fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5 ; - -# clk_125_0000MHz90PLL0_ADJUST driven by BUFGCTRL_X0Y5 -NET "clk_125_0000MHz90PLL0_ADJUST" TNM_NET = "TN_clk_125_0000MHz90PLL0_ADJUST" ; -TIMEGRP "TN_clk_125_0000MHz90PLL0_ADJUST" AREA_GROUP = "CLKAG_clk_125_0000MHz90PLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_125_0000MHz90PLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# clk_62_5000MHzPLL0_ADJUST driven by BUFGCTRL_X0Y6 -NET "clk_62_5000MHzPLL0_ADJUST" TNM_NET = "TN_clk_62_5000MHzPLL0_ADJUST" ; -TIMEGRP "TN_clk_62_5000MHzPLL0_ADJUST" AREA_GROUP = "CLKAG_clk_62_5000MHzPLL0_ADJUST" ; -AREA_GROUP "CLKAG_clk_62_5000MHzPLL0_ADJUST" RANGE = CLOCKREGION_X0Y0, CLOCKREGION_X1Y0, CLOCKREGION_X0Y1, CLOCKREGION_X1Y1, CLOCKREGION_X0Y2, CLOCKREGION_X1Y2, CLOCKREGION_X0Y3, CLOCKREGION_X1Y3, CLOCKREGION_X0Y4, CLOCKREGION_X1Y4, CLOCKREGION_X0Y5, CLOCKREGION_X1Y5, CLOCKREGION_X0Y6, CLOCKREGION_X1Y6, CLOCKREGION_X0Y7, CLOCKREGION_X1Y7 ; - -# PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg driven by BUFGCTRL_X0Y0 -NET "PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" TNM_NET = "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" ; -TIMEGRP "TN_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" AREA_GROUP = "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" ; -AREA_GROUP "CLKAG_PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg" RANGE = CLOCKREGION_X0Y6, CLOCKREGION_X0Y7 ; - -# NOTE: -# This report is provided to help reproduce successful clock-region -# assignments. The report provides range constraints for all global -# clock networks, in a format that is directly usable in ucf files. -# -#END of Global Clock Net Distribution UCF Constraints -###################################################################################### - - -###################################################################################### -GLOBAL CLOCK NET LOADS DISTRIBUTION REPORT: - -Number of Global Clock Regions : 16 -Number of Global Clock Networks: 15 - -Clock Region Assignment: SUCCESSFUL - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 0 | 0 | 0 | 80 | 80 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 44 | 548 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 202 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 46 | 750 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 38 | 934 |PCIe_Bridge/Bridge_Clk - 4 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 24 | 52 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 62 | 986 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 6/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 4 | 2 | 0 | 40 | 40 | 0 | 0 | 0 | 0 | 1 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 13 | 195 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 18 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |clk_125_0000MHz90PLL0_ADJUST - 0 | 1 | 0 | 0 | 0 | 17 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 719 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |clock_generator_0/clock_generator_0/PLL0_CLK_OUT<6> ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 1 | 1 | 0 | 0 | 35 | 0 | 0 | 0 | 0 | 1 | 0 | 17 | 918 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 6 | 500 |PCIe_Bridge/Bridge_Clk - 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 11 | 364 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 1 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 17 | 884 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 5/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 2 | 1 | 0 | 60 | 60 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 17 |clk_125_0000MHz90PLL0_ADJUST - 5 | 0 | 0 | 0 | 9 | 15 | 0 | 0 | 0 | 0 | 0 | 0 | 58 | 913 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 142 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 7 | 0 | 0 | 0 | 9 | 42 | 0 | 0 | 0 | 0 | 1 | 0 | 58 | 1072 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 94 | 387 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 81 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/core_clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/gt_usrclk - 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 36 | 500 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 5 | 0 | 0 | 0 | 0 | 0 | 0 | 130 | 970 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 60 | 60 | 0 | 0 | 1 | 0 | 2 | 16 | 640 | 1280 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 83 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 8 | 17 | 0 | 0 | 1 | 0 | 0 | 0 | 36 | 272 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 3 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 154 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 8 | 17 | 0 | 0 | 1 | 0 | 0 | 0 | 36 | 512 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 44 | 290 |PCIe_Bridge/Bridge_Clk - 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 22 | 659 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |fpga_0_Ethernet_MAC_PHY_tx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 9 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 66 | 950 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 5/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 4 | 0 | 0 | 0 | 60 | 60 | 0 | 0 | 1 | 0 | 2 | 16 | 640 | 1280 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 1 |PCIe_Bridge/Bridge_Clk - 2 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 34 |clk_125_0000MHz90PLL0_ADJUST - 4 | 0 | 0 | 0 | 1 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 16 | 231 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 200 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 6 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 6 | 0 | 0 | 0 | 7 | 20 | 0 | 0 | 0 | 0 | 0 | 0 | 18 | 466 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 10 | 0 | 0 | 0 | 40 | 40 | 16 | 1 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 54 | 367 |PCIe_Bridge/Bridge_Clk - 3 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 20 | 602 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 16 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 16 |fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 3 | 0 | 0 | 0 | 16 | 26 | 0 | 0 | 0 | 0 | 0 | 0 | 74 | 985 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 4/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 2 | 1 | 0 | 60 | 60 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 2 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 48 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 16 | 517 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 8 | 206 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 28 | 773 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 3/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 10 | 0 | 0 | 0 | 40 | 40 | 16 | 1 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 68 | 285 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 50 | 333 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 21 |fpga_0_SysACE_CompactFlash_SysACE_CLK_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 118 | 639 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 7/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 4 | 2 | 0 | 40 | 40 | 0 | 0 | 0 | 0 | 1 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/REFCLKOUT_bufg - 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/clkfbin - 0 | 0 | 0 | 0 | 0 | 27 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 |clk_125_0000MHz90PLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 8 | 0 | 0 | 0 | 0 | 0 | 0 | 10 | 605 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |clk_200_0000MHz - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 2 | 158 |clk_62_5000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 15 | 12 |fpga_0_Ethernet_MAC_PHY_rx_clk_pin_BUFGP ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 2 | 0 | 0 | 35 | 0 | 0 | 0 | 0 | 1 | 0 | 27 | 777 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 1 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 103 |PCIe_Bridge/Bridge_Clk - 0 | 0 | 0 | 0 | 19 | 23 | 0 | 0 | 0 | 0 | 0 | 0 | 22 | 413 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 19 | 23 | 0 | 0 | 0 | 0 | 0 | 0 | 26 | 516 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 2/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 12 | 0 | 0 | 0 | 80 | 80 | 0 | 0 | 0 | 0 | 2 | 0 | 1600 | 3200 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 16 | 495 |clk_125_0000MHzPLL0_ADJUST - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 19 |clk_62_5000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 16 | 514 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - - -Clock-Region: - key resource utilizations (used/available): global-clocks - 1/10 ; ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - BRAM | DCM | PLL | GT | ILOGIC | OLOGIC | MULT | TEMAC | PPC | PCIE | IDLYCT | BUFGCT | LUT | FF | <- (Types of Resources in this Region) - FIFO | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 8 | 0 | 0 | 0 | 40 | 40 | 16 | 0 | 0 | 0 | 1 | 0 | 1920 | 2880 | <- (Available Resources in this Region) ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - | | | | | | | | | | | | | | ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 46 | 327 |clk_125_0000MHzPLL0_ADJUST ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 46 | 327 | Total ---------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+--------+---------------------------------------- - -NOTE: -The above detailed report is the initial placement of the logic after the clock region assignment. The final placement -may be significantly different because of the various optimization steps which will follow. Specifically, logic blocks -maybe moved to adjacent clock-regions as long as the "number of clocks per region" constraint is not violated. - - -# END of Global Clock Net Loads Distribution Report: -###################################################################################### - - -Phase 9.30 Global Clock Region Assignment (Checksum:7e049af9) REAL time: 10 mins 42 secs - -Phase 10.3 Local Placement Optimization -Phase 10.3 Local Placement Optimization (Checksum:7e049af9) REAL time: 10 mins 43 secs - -Phase 11.5 Local Placement Optimization -Phase 11.5 Local Placement Optimization (Checksum:7e049af9) REAL time: 10 mins 45 secs - -Phase 12.8 Global Placement -............................. -.... -. -....... -..... -....... -....... -....... -...... -........ -........ -........ -......... -......... -......... -. -....... -...... -........ -....... -......... -........ -......... -....... -. -....... -..... -....... -. -.... -... -... -...... -...... -...... -.... -....... -...... -.... -. -...... -...... -...... -.... -...... -. -.... -... -.... -....... -...... -.... -... -....... -......... -.. -. -..... -.. -... -....... -...... -..... -...... -..... -...... -...... -...... -..... -. -..... -.. -..... -... -.. -...... -....... -....... -........ -... -Phase 12.8 Global Placement (Checksum:4ba01660) REAL time: 15 mins 18 secs - -Phase 13.29 Local Placement Optimization -Phase 13.29 Local Placement Optimization (Checksum:4ba01660) REAL time: 15 mins 18 secs - -Phase 14.5 Local Placement Optimization -Phase 14.5 Local Placement Optimization (Checksum:4ba01660) REAL time: 15 mins 22 secs - -Phase 15.18 Placement Optimization -Phase 15.18 Placement Optimization (Checksum:f81b02a1) REAL time: 18 mins 1 secs - -Phase 16.5 Local Placement Optimization -Phase 16.5 Local Placement Optimization (Checksum:f81b02a1) REAL time: 18 mins 3 secs - -Phase 17.34 Placement Validation -Phase 17.34 Placement Validation (Checksum:f81b02a1) REAL time: 18 mins 5 secs - -Total REAL time to Placer completion: 18 mins 7 secs -Total CPU time to Placer completion: 17 mins 4 secs -Running post-placement packing... -Writing output files... - -Design Summary: -Number of errors: 0 -Number of warnings: 50 -Slice Logic Utilization: - Number of Slice Registers: 12,128 out of 44,800 27% - Number used as Flip Flops: 12,127 - Number used as Latches: 1 - Number of Slice LUTs: 12,266 out of 44,800 27% - Number used as logic: 11,767 out of 44,800 26% - Number using O6 output only: 10,791 - Number using O5 output only: 282 - Number using O5 and O6: 694 - Number used as Memory: 392 out of 13,120 2% - Number used as Dual Port RAM: 56 - Number using O6 output only: 12 - Number using O5 and O6: 44 - Number used as Single Port RAM: 4 - Number using O6 output only: 4 - Number used as Shift Register: 332 - Number using O6 output only: 332 - Number used as exclusive route-thru: 107 - Number of route-thrus: 438 - Number using O6 output only: 382 - Number using O5 output only: 51 - Number using O5 and O6: 5 - -Slice Logic Distribution: - Number of occupied Slices: 6,488 out of 11,200 57% - Number of LUT Flip Flop pairs used: 17,046 - Number with an unused Flip Flop: 4,918 out of 17,046 28% - Number with an unused LUT: 4,780 out of 17,046 28% - Number of fully used LUT-FF pairs: 7,348 out of 17,046 43% - Number of unique control sets: 1,288 - Number of slice register sites lost - to control set restrictions: 3,000 out of 44,800 6% - - A LUT Flip Flop pair for this architecture represents one LUT paired with - one Flip Flop within a slice. A control set is a unique combination of - clock, reset, set, and enable signals for a registered element. - The Slice Logic Distribution report is not meaningful if the design is - over-mapped for a non-slice resource or if Placement fails. - OVERMAPPING of BRAM resources should be ignored if the design is - over-mapped for a non-BRAM resource or if placement fails. - -IO Utilization: - Number of bonded IOBs: 255 out of 640 39% - Number of LOCed IOBs: 255 out of 255 100% - IOB Flip Flops: 494 - Number of bonded IPADs: 4 out of 50 8% - Number of bonded OPADs: 2 out of 32 6% - -Specific Feature Utilization: - Number of BlockRAM/FIFO: 23 out of 148 15% - Number using BlockRAM only: 21 - Number using FIFO only: 2 - Total primitives used: - Number of 36k BlockRAM used: 16 - Number of 18k BlockRAM used: 6 - Number of 36k FIFO used: 2 - Total Memory used (KB): 756 out of 5,328 14% - Number of BUFG/BUFGCTRLs: 15 out of 32 46% - Number used as BUFGs: 15 - Number of IDELAYCTRLs: 3 out of 22 13% - Number of BUFDSs: 1 out of 8 12% - Number of BUFIOs: 8 out of 80 10% - Number of DCM_ADVs: 1 out of 12 8% - Number of GTX_DUALs: 1 out of 8 12% - Number of PCIEs: 1 out of 3 33% - Number of LOCed PCIEs: 1 out of 1 100% - Number of PLL_ADVs: 2 out of 6 33% - Number of PPC440s: 1 out of 1 100% - - Number of RPM macros: 64 -Average Fanout of Non-Clock Nets: 3.76 - -Peak Memory Usage: 701 MB -Total REAL time to MAP completion: 18 mins 45 secs -Total CPU time to MAP completion: 17 mins 40 secs - -Mapping completed. -See MAP report file "system_map.mrp" for details. - - - -#----------------------------------------------# -# Starting program par -# par -ise ../__xps/ise/system.ise -w -ol high system_map.ncd system.ncd -system.pcf -#----------------------------------------------# -Release 11.2 - par L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file with local file - - - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 - -Constraints file: system.pcf. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -WARNING:ConstraintSystem:65 - Constraint [system.pcf(65973)] - overrides constraint [system.pcf(65972)]. - - -Initializing temperature to 85.000 Celsius. (default - Range: 0.000 to 85.000 Celsius) -Initializing voltage to 0.950 Volts. (default - Range: 0.950 to 1.050 Volts) - -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP - "TNM_CLK0" TS_MC_CLK * 4; ignored during timing analysis. -INFO:Timing:3386 - Intersecting Constraints found and resolved. For more information, see the TSI report. Please - consult the Xilinx Command Line Tools User Guide for information on generating a TSI report. - -Device speed data version: "PRODUCTION 1.65 2009-06-01". - - - -Device Utilization Summary: - - Number of BUFDSs 1 out of 8 12% - Number of BUFGs 15 out of 32 46% - Number of BUFIOs 8 out of 80 10% - Number of DCM_ADVs 1 out of 12 8% - Number of FIFO36_72_EXPs 2 out of 148 1% - Number of LOCed FIFO36_72_EXPs 2 out of 2 100% - - Number of GTX_DUALs 1 out of 8 12% - Number of IDELAYCTRLs 3 out of 22 13% - Number of LOCed IDELAYCTRLs 3 out of 3 100% - - Number of ILOGICs 131 out of 800 16% - Number of LOCed ILOGICs 8 out of 131 6% - - Number of External IOBs 255 out of 640 39% - Number of LOCed IOBs 255 out of 255 100% - - Number of IODELAYs 80 out of 800 10% - Number of LOCed IODELAYs 8 out of 80 10% - - Number of External IPADs 4 out of 690 1% - Number of LOCed IPADs 4 out of 4 100% - - Number of JTAGPPCs 1 out of 1 100% - Number of OLOGICs 236 out of 800 29% - Number of External OPADs 2 out of 32 6% - Number of LOCed OPADs 2 out of 2 100% - - Number of PCIEs 1 out of 3 33% - Number of LOCed PCIEs 1 out of 1 100% - - Number of PLL_ADVs 2 out of 6 33% - Number of PPC440s 1 out of 1 100% - Number of RAMB18X2SDPs 5 out of 148 3% - Number of RAMB36SDP_EXPs 6 out of 148 4% - Number of LOCed RAMB36SDP_EXPs 1 out of 6 16% - - Number of RAMB36_EXPs 10 out of 148 6% - Number of LOCed RAMB36_EXPs 6 out of 10 60% - - Number of Slice Registers 12128 out of 44800 27% - Number used as Flip Flops 12127 - Number used as Latches 1 - Number used as LatchThrus 0 - - Number of Slice LUTS 12266 out of 44800 27% - Number of Slice LUT-Flip Flop pairs 17046 out of 44800 38% - - -Overall effort level (-ol): High -Router effort level (-rl): High - -Starting initial Timing Analysis. REAL time: 51 secs -Finished initial Timing Analysis. REAL time: 52 secs - -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_sb_txrem_n<0> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_MB_TxREMn<0> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal xps_bram_if_cntlr_1_port_BRAM_Addr<30> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal xps_bram_if_cntlr_1_port_BRAM_Addr<31> has no load. PAR will not attempt to route this - signal. -WARNING:Par:288 - The signal PCIe_Bridge/PCIe_Bridge/sig_MB_RxFull has no load. PAR will not attempt to route this - signal. -Starting Router - -INFO:Route:501 - One or more directed routing (DIRT) constraints generated for a specific device have been found. Note - that DIRT strings are guaranteed to work only on the same device they were created for. If the DIRT constraints fail, - verify that the same connectivity is available in the target device for this implementation. - -Phase 1 : 82160 unrouted; REAL time: 1 mins 9 secs - -Phase 2 : 72970 unrouted; REAL time: 1 mins 22 secs - -Phase 3 : 28783 unrouted; REAL time: 3 mins 31 secs - -Phase 4 : 28815 unrouted; (Setup:0, Hold:103206, Component Switching Limit:0) REAL time: 3 mins 57 secs - -Updating file: system.ncd with current fully routed design. - -Phase 5 : 0 unrouted; (Setup:0, Hold:103693, Component Switching Limit:0) REAL time: 5 mins 9 secs - -Phase 6 : 0 unrouted; (Setup:0, Hold:103693, Component Switching Limit:0) REAL time: 5 mins 9 secs - -Phase 7 : 0 unrouted; (Setup:0, Hold:103693, Component Switching Limit:0) REAL time: 5 mins 9 secs - -Phase 8 : 0 unrouted; (Setup:0, Hold:103693, Component Switching Limit:0) REAL time: 5 mins 9 secs - -Phase 9 : 0 unrouted; (Setup:0, Hold:0, Component Switching Limit:0) REAL time: 7 mins 25 secs - -Phase 10 : 0 unrouted; (Setup:0, Hold:0, Component Switching Limit:0) REAL time: 7 mins 57 secs -Total REAL time to Router completion: 7 mins 57 secs -Total CPU time to Router completion: 7 mins 31 secs - -Partition Implementation Status -------------------------------- - - No Partitions were found in this design. - -------------------------------- - -Generating "PAR" statistics. - -************************** -Generating Clock Report -************************** - -+---------------------+--------------+------+------+------------+-------------+ -| Clock Net | Resource |Locked|Fanout|Net Skew(ns)|Max Delay(ns)| -+---------------------+--------------+------+------+------------+-------------+ -|clk_125_0000MHzPLL0_ | | | | | | -| ADJUST | BUFGCTRL_X0Y2| No | 3176 | 0.533 | 2.076 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/Bridge_C | | | | | | -| lk |BUFGCTRL_X0Y28| No | 1481 | 0.519 | 2.085 | -+---------------------+--------------+------+------+------------+-------------+ -|clk_62_5000MHzPLL0_A | | | | | | -| DJUST | BUFGCTRL_X0Y6| No | 501 | 0.313 | 2.062 | -+---------------------+--------------+------+------+------------+-------------+ -|clk_125_0000MHz90PLL | | | | | | -| 0_ADJUST | BUFGCTRL_X0Y5| No | 165 | 0.262 | 2.028 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/core_c | | | | | | -| lk |BUFGCTRL_X0Y27| No | 92 | 0.338 | 2.085 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_SysACE_Compac | | | | | | -|tFlash_SysACE_CLK_pi | | | | | | -| n_BUFGP | BUFGCTRL_X0Y8| No | 55 | 0.171 | 1.797 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/pcie_b | | | | | | -| lk/gt_usrclk |BUFGCTRL_X0Y29| No | 6 | 0.065 | 1.886 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_Ethernet_MAC_ | | | | | | -|PHY_rx_clk_pin_BUFGP | | | | | | -| |BUFGCTRL_X0Y30| No | 12 | 0.086 | 1.874 | -+---------------------+--------------+------+------+------------+-------------+ -|fpga_0_Ethernet_MAC_ | | | | | | -|PHY_tx_clk_pin_BUFGP | | | | | | -| |BUFGCTRL_X0Y31| No | 6 | 0.004 | 1.941 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<0> | IO Clk| No | 18 | 0.095 | 0.419 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<1> | IO Clk| No | 18 | 0.083 | 0.380 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | - | | | -| y_io/delayed_dqs<2> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<3> | IO Clk| No | 18 | 0.107 | 0.404 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<5> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<4> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<6> | IO Clk| No | 18 | 0.096 | 0.393 | -+---------------------+--------------+------+------+------------+-------------+ -|DDR2_SDRAM/DDR2_SDRA | | | | | | -|M/u_ddr2_top/u_mem_i | | | | | | -|f_top/u_phy_top/u_ph | | | | | | -| y_io/delayed_dqs<7> | IO Clk| No | 18 | 0.101 | 0.425 | -+---------------------+--------------+------+------+------------+-------------+ -| clk_125_0000MHzPLL0 | BUFGCTRL_X0Y1| No | 2 | 0.000 | 1.739 | -+---------------------+--------------+------+------+------------+-------------+ -| clk_200_0000MHz | BUFGCTRL_X0Y4| No | 4 | 0.100 | 1.879 | -+---------------------+--------------+------+------+------------+-------------+ -|RS232_Uart_1_Interru | | | | | | -| pt | Local| | 1 | 0.000 | 0.625 | -+---------------------+--------------+------+------+------------+-------------+ -|PCIe_Bridge/PCIe_Bri | | | | | | -|dge/comp_block_plus/ | | | | | | -|comp_endpoint/pcie_b | | | | | | -|lk/SIO/.pcie_gt_wrap | | | | | | -| per_i/icdrreset<0> | Local| | 1 | 0.000 | 0.590 | -+---------------------+--------------+------+------+------------+-------------+ -|Ethernet_MAC/Etherne | | | | | | -| t_MAC/phy_tx_clk_i | Local| | 9 | 3.273 | 3.994 | -+---------------------+--------------+------+------+------------+-------------+ -|ppc440_0_jtagppc_bus | | | | | | -| _JTGC405TCK | Local| | 1 | 0.000 | 1.699 | -+---------------------+--------------+------+------+------------+-------------+ - -* Net Skew is the difference between the minimum and maximum routing -only delays for the net. Note this is different from Clock Skew which -is reported in TRCE timing report. Clock Skew is the difference between -the minimum and maximum path delays which includes logic delays. - -Timing Score: 0 (Setup: 0, Hold: 0, Component Switching Limit: 0) - -Number of Timing Constraints that were not applied: 5 - -Asterisk (*) preceding a constraint indicates it was not met. - This may be due to a setup or hold violation. - ----------------------------------------------------------------------------------------------------------- - Constraint | Check | Worst Case | Best Case | Timing | Timing - | | Slack | Achievable | Errors | Score ----------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 n | SETUP | 0.026ns| 7.974ns| 0| 0 - s HIGH 50% | HOLD | 0.030ns| | 0| 0 - | MINPERIOD | 0.000ns| 8.000ns| 0| 0 ------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/PCIe_Bridge/comp_block_p | SETUP | 0.026ns| 3.974ns| 0| 0 - lus/comp_endpoint/core_clk" PERIOD = | HOLD | 0.315ns| | 0| 0 - 4 ns HIGH 50% | MINPERIOD | 0.000ns| 4.000ns| 0| 0 ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.012ns| 0.838ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[7].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.015ns| 0.835ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[0].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_DQ_CE = MAXDELAY FROM TIMEGRP "TNM_DQ_ | SETUP | 0.021ns| 1.879ns| 0| 0 - CE_IDDR" TO TIMEGRP "TNM_DQS_FLOPS" | HOLD | 1.026ns| | 0| 0 - 1.9 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 0.027ns| 7.973ns| 0| 0 - L0_CLK_OUT_2_ = PERIOD TIMEGRP "c | HOLD | 0.021ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_2_" TS_sys_clk_pin * 1.25 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[1].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.045ns| 0.805ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[5].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[2].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[3].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[4].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.047ns| 0.803ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/gen_ | | | | | - dqs[6].u_iob_dqs/en_dqs_sync" MAX | | | | | - DELAY = 0.85 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.068ns| 0.532ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<1>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<0>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<2>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<3>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<4>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<5>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<6>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "DDR2_SDRAM/DDR2_SDRAM/u_ddr2 | MAXDELAY | 0.071ns| 0.529ns| 0| 0 - _top/u_mem_if_top/u_phy_top/u_phy_io/en_d | | | | | - qs<7>" MAXDELAY = 0.6 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_PCIe_PLB = MAXDELAY FROM TIMEGRP "Brid | SETUP | 0.188ns| 7.812ns| 0| 0 - ge_Clk" TO TIMEGRP "SPLB_Clk" 8 ns | HOLD | 0.516ns| | 0| 0 - DATAPATHONLY | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_CLK = PERIOD TIMEGRP "mc_clk" 5 ns | MINPERIOD | 1.010ns| 3.990ns| 0| 0 - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_PLB_PCIe = MAXDELAY FROM TIMEGRP "SPLB | SETUP | 1.252ns| 6.748ns| 0| 0 - _Clk" TO TIMEGRP "Bridge_Clk" 8 ns | HOLD | 0.451ns| | 0| 0 - DATAPATHONLY | | | | | ------------------------------------------------------------------------------------------------------- - TSRXIN_Ethernet_MAC = MAXDELAY FROM TIMEG | MAXDELAY | 1.700ns| 4.300ns| 0| 0 - RP "PADS" TO TIMEGRP "RXCLK_GRP_E | HOLD | 1.060ns| | 0| 0 - thernet_MAC" 6 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 2.073ns| 5.466ns| 0| 0 - L0_CLK_OUT_0_ = PERIOD TIMEGRP "c | HOLD | 0.307ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_0_" TS_sys_clk_pin * 1.25 | | | | | - PHASE 2 ns HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_sys_clk_pin = PERIOD TIMEGRP "sys_clk_ | MINLOWPULSE | 6.000ns| 4.000ns| 0| 0 - pin" 100 MHz HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 3.700ns| 8.600ns| 0| 0 - L0_CLK_OUT_4_ = PERIOD TIMEGRP "c | HOLD | 0.153ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_4_" TS_sys_clk_pin * 0.625 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | SETUP | 3.950ns| 1.050ns| 0| 0 - L0_CLK_OUT_3_ = PERIOD TIMEGRP "c | HOLD | 0.465ns| | 0| 0 - lock_generator_0_clock_generator_0_PLL0_C | MINLOWPULSE | 3.946ns| 1.054ns| 0| 0 - LK_OUT_3_" TS_sys_clk_pin * 2 HIG | | | | | - H 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_B | NETSKEW | 4.392ns| 0.608ns| 0| 0 - UFGP" MAXSKEW = 5 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_B | NETSKEW | 4.789ns| 0.211ns| 0| 0 - UFGP" MAXSKEW = 5 ns | | | | | ------------------------------------------------------------------------------------------------------- - TS_clock_generator_0_clock_generator_0_PL | MINPERIOD | 4.900ns| 3.100ns| 0| 0 - L0_CLK_OUT_1_ = PERIOD TIMEGRP "c | | | | | - lock_generator_0_clock_generator_0_PLL0_C | | | | | - LK_OUT_1_" TS_sys_clk_pin * 1.25 | | | | | - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - TSTXOUT_Ethernet_MAC = MAXDELAY FROM TIME | MAXDELAY | 7.423ns| 2.577ns| 0| 0 - GRP "TXCLK_GRP_Ethernet_MAC" TO T | | | | | - IMEGRP "PADS" 10 ns | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_rx_clk_pin_B | SETUP | 10.092ns| 11.165ns| 0| 0 - UFGP" PERIOD = 40 ns HIGH 14 ns | HOLD | 0.473ns| | 0| 0 ------------------------------------------------------------------------------------------------------- - TS_MC_PHY_INIT_DATA_SEL_90 = MAXDELAY FRO | SETUP | 13.832ns| 6.168ns| 0| 0 - M TIMEGRP "TNM_PHY_INIT_DATA_SEL" TO | HOLD | 0.471ns| | 0| 0 - TIMEGRP "TNM_CLK90" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_PHY_INIT_DATA_SEL_0 = MAXDELAY FROM | SETUP | 16.202ns| 3.798ns| 0| 0 - TIMEGRP "TNM_PHY_INIT_DATA_SEL" TO | HOLD | 0.049ns| | 0| 0 - TIMEGRP "TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_RDEN_DLY = MAXDELAY FROM TIMEGRP "T | SETUP | 17.943ns| 2.057ns| 0| 0 - NM_RDEN_DLY" TO TIMEGRP "TNM_CLK0" | HOLD | 0.295ns| | 0| 0 - TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_GATE_DLY = MAXDELAY FROM TIMEGRP "T | SETUP | 17.975ns| 2.025ns| 0| 0 - NM_GATE_DLY" TO TIMEGRP "TNM_CLK0" | HOLD | 0.030ns| | 0| 0 - TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - TS_MC_CAL_RDEN_DLY = MAXDELAY FROM TIMEGR | SETUP | 18.085ns| 1.915ns| 0| 0 - P "TNM_CAL_RDEN_DLY" TO TIMEGRP " | HOLD | 0.096ns| | 0| 0 - TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_SysACE_CompactFlash_SysACE_CL | SETUP | 26.710ns| 3.290ns| 0| 0 - K_pin_BUFGP/IBUFG" PERIOD = 30 ns | HOLD | 0.465ns| | 0| 0 - HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - NET "fpga_0_Ethernet_MAC_PHY_tx_clk_pin_B | SETUP | 32.431ns| 7.569ns| 0| 0 - UFGP" PERIOD = 40 ns HIGH 14 ns | HOLD | 0.351ns| | 0| 0 ------------------------------------------------------------------------------------------------------- - Pin to Pin Skew Constraint | MAXDELAY | 2106523.523ns| 2106523.837ns| 0| 0 ------------------------------------------------------------------------------------------------------- - TS_MC_RDEN_SEL_MUX = MAXDELAY FROM TIMEGR | N/A | N/A| N/A| N/A| N/A - P "TNM_RDEN_SEL_MUX" TO TIMEGRP " | | | | | - TNM_CLK0" TS_MC_CLK * 4 | | | | | ------------------------------------------------------------------------------------------------------- - NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 n | N/A | N/A| N/A| N/A| N/A - s HIGH 50% | | | | | ------------------------------------------------------------------------------------------------------- - - -Derived Constraint Report -Derived Constraints for TS_MC_CLK -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -| | Period | Actual Period | Timing Errors | Paths Analyzed | -| Constraint | Requirement |-------------+-------------|-------------+-------------|-------------+-------------| -| | | Direct | Derivative | Direct | Derivative | Direct | Derivative | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -|TS_MC_CLK | 5.000ns| 3.990ns| 1.542ns| 0| 0| 0| 345| -| TS_MC_PHY_INIT_DATA_SEL_0 | 20.000ns| 3.798ns| N/A| 0| 0| 21| 0| -| TS_MC_PHY_INIT_DATA_SEL_90 | 20.000ns| 6.168ns| N/A| 0| 0| 274| 0| -| TS_MC_GATE_DLY | 20.000ns| 2.025ns| N/A| 0| 0| 40| 0| -| TS_MC_RDEN_DLY | 20.000ns| 2.057ns| N/A| 0| 0| 5| 0| -| TS_MC_CAL_RDEN_DLY | 20.000ns| 1.915ns| N/A| 0| 0| 5| 0| -| TS_MC_RDEN_SEL_MUX | 20.000ns| N/A| N/A| 0| 0| 0| 0| -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ - -Derived Constraints for TS_sys_clk_pin -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -| | Period | Actual Period | Timing Errors | Paths Analyzed | -| Constraint | Requirement |-------------+-------------|-------------+-------------|-------------+-------------| -| | | Direct | Derivative | Direct | Derivative | Direct | Derivative | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ -|TS_sys_clk_pin | 10.000ns| 4.000ns| 9.966ns| 0| 0| 0| 636358| -| TS_clock_generator_0_clock_gen| 8.000ns| 5.466ns| N/A| 0| 0| 626| 0| -| erator_0_PLL0_CLK_OUT_0_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 8.000ns| 3.100ns| N/A| 0| 0| 0| 0| -| erator_0_PLL0_CLK_OUT_1_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 8.000ns| 7.973ns| N/A| 0| 0| 624688| 0| -| erator_0_PLL0_CLK_OUT_2_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 5.000ns| 1.054ns| N/A| 0| 0| 2| 0| -| erator_0_PLL0_CLK_OUT_3_ | | | | | | | | -| TS_clock_generator_0_clock_gen| 16.000ns| 8.600ns| N/A| 0| 0| 11042| 0| -| erator_0_PLL0_CLK_OUT_4_ | | | | | | | | -+-------------------------------+-------------+-------------+-------------+-------------+-------------+-------------+-------------+ - -All constraints were met. -INFO:Timing:2761 - N/A entries in the Constraints list may indicate that the - constraint does not cover any paths or that it has no requested value. - - -Generating Pad Report. - -All signals are completely routed. - -WARNING:Par:283 - There are 5 loadless signals in this design. This design will cause Bitgen to issue DRC warnings. - -Loading device for application Rf_Device from file '5vlx50t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. -INFO:ParHelpers:197 - Number of "Exact" mode Directed Routing Constraints: 128 -INFO:ParHelpers:199 - All "EXACT" mode Directed Routing constrained nets successfully routed. The number of constraints - found: 128, number successful: 128 -Total REAL time to PAR completion: 9 mins 1 secs -Total CPU time to PAR completion: 8 mins 19 secs - -Peak Memory Usage: 653 MB - -Placer: Placement generated during map. -Routing: Completed - No errors found. -Timing: Completed - No errors found. - -Number of error messages: 0 -Number of warning messages: 9 -Number of info messages: 4 - -Writing design to file system.ncd - - - -PAR done! - - - -#----------------------------------------------# -# Starting program post_par_trce -# trce -ise ../__xps/ise/system.ise -e 3 -xml system.twx system.ncd system.pcf -#----------------------------------------------# -Release 11.2 - Trace (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - - -PMSPEC -- Overriding Xilinx file - with local file - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -WARNING:ConstraintSystem:65 - Constraint [system.pcf(65973)] overrides constraint [system.pcf(65972)]. - -WARNING:Timing:3223 - Timing constraint TS_MC_RDEN_SEL_MUX = MAXDELAY FROM - TIMEGRP "TNM_RDEN_SEL_MUX" TO TIMEGRP "TNM_CLK0" TS_MC_CLK * 4; - ignored during timing analysis. -INFO:Timing:3386 - Intersecting Constraints found and resolved. For more - information, see the TSI report. Please consult the Xilinx Command Line - Tools User Guide for information on generating a TSI report. --------------------------------------------------------------------------------- -Release 11.2 Trace (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -trce -ise ../__xps/ise/system.ise -e 3 -xml system.twx system.ncd system.pcf - - -Design file: system.ncd -Physical constraint file: system.pcf -Device,speed: xc5vfx70t,-1 (PRODUCTION 1.65 2009-06-01, STEPPING -level 0) -Report level: error report --------------------------------------------------------------------------------- - -INFO:Timing:2752 - To get complete path coverage, use the unconstrained paths - option. All paths that are not constrained will be reported in the - unconstrained paths section(s) of the report. -INFO:Timing:3339 - The clock-to-out numbers in this timing report are based on a - 50 Ohm transmission line loading model. For the details of this model, and - for more information on accounting for different loading conditions, please - see the device datasheet. - - -Timing summary: ---------------- - -Timing errors: 0 Score: 0 (Setup/Max: 0, Hold: 0) - -Constraints cover 826342 paths, 18 nets, and 74598 connections - -Design statistics: - Minimum period: 11.165ns (Maximum frequency: 89.566MHz) - Maximum path delay from/to any node: 7.812ns - Maximum net delay: 0.838ns - Maximum net skew: 0.608ns - - -Analysis completed Tue Jun 30 21:57:31 2009 --------------------------------------------------------------------------------- - -Generating Report ... - -Number of warnings: 2 -Number of info messages: 3 -Total time: 1 mins 36 secs - - -xflow done! -touch __xps/system_routed -xilperl C:/devtools/Xilinx/11.1/EDK/data/fpga_impl/observe_par.pl -error yes implementation/system.par -Analyzing implementation/system.par -********************************************* -Running Bitgen.. -********************************************* -cd implementation; bitgen -w -f bitgen.ut system; cd .. -Release 11.2 - Bitgen L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -PMSPEC -- Overriding Xilinx file - with local file - -Loading device for application Rf_Device from file '5vfx70t.nph' in environment -c:\devtools\Xilinx\11.1\ISE;C:\devtools\Xilinx\11.1\EDK. - "system" is an NCD, version 3.2, device xc5vfx70t, package ff1136, speed -1 -Opened constraints file system.pcf. - -Tue Jun 30 21:58:01 2009 - -Running DRC. -WARNING:PhysDesignRules:1842 - One or more GTXs are being used in this design. - Evaluate the SelectIO-To-GTX Crosstalk section of the Virtex-5 RocketIO GTX - Transceiver User Guide to ensure that the design SelectIO usage meets the - guidelines to minimize the impact on GTX performance. -WARNING:PhysDesignRules:372 - Gated clock. Clock net - PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_w - rapper_i/icdrreset<0> is sourced by a combinatorial pin. This is not good - design practice. Use the CE pin to control the loading of data into the - flip-flop. -WARNING:PhysDesignRules:372 - Gated clock. Clock net - Ethernet_MAC/Ethernet_MAC/phy_tx_clk_i is sourced by a combinatorial pin. - This is not good design practice. Use the CE pin to control the loading of - data into the flip-flop. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does - not drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - > is incomplete. The signal does not - drive any load pins in the design. -WARNING:PhysDesignRules:367 - The signal - is incomplete. The signal does not drive any load pins in the design. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -WARNING:PhysDesignRules:1269 - Dangling pins on - block::. The Q1 output pin of IFF is not - used. -WARNING:PhysDesignRules:1273 - Dangling pins on - block::. The SR pin is used for the IFF - Flip-flop but the SRVAL_Q1 set/reset value is not configured. -DRC detected 0 errors and 24 warnings. Please see the previously displayed -individual error or warning messages for more details. -Creating bit map... -Saving bit stream in "system.bit". -Bitstream generation is complete. - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.gui - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 237 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 282 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Sat Jul 04 20:43:06 2009 - make -f system.make download started... - -cp -f /cygdrive/c/devtools/Xilinx/11.1/EDK/sw/lib/ppc440/ppc440_bootloop.elf bootloops/ppc440_0.elf -********************************************* -Initializing BRAM contents of the bitstream -********************************************* -bitinit -p xc5vfx70tff1136-1 system.mhs -pe ppc440_0 bootloops/ppc440_0.elf \ --bt implementation/system.bit -o implementation/download.bit - -bitinit version Xilinx EDK 11.2 Build EDK_LS3.47 -Copyright (c) Xilinx Inc. 2002. - -Parsing MHS File system.mhs... -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 251 - deprecated core for architecture 'virtex5fx'! -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs line - 296 - deprecated core for architecture 'virtex5fx'! - -Overriding IP level properties ... - -Performing IP level DRCs on properties... - -Running DRC Tcl procedures for OPTION IPLEVEL_DRC_PROC... -Address Map for Processor ppc440_0 - (0b0000000000-0b0011111111) ppc440_0 - (0000000000-0x0fffffff) DDR2_SDRAM ppc440_0_PPC440MC - (0x81000000-0x8100ffff) Ethernet_MAC plb_v46_0 - (0x81400000-0x8140ffff) Push_Buttons_5Bit plb_v46_0 - (0x81420000-0x8142ffff) LEDs_Positions plb_v46_0 - (0x81440000-0x8144ffff) LEDs_8Bit plb_v46_0 - (0x81460000-0x8146ffff) DIP_Switches_8Bit plb_v46_0 - (0x81600000-0x8160ffff) IIC_EEPROM plb_v46_0 - (0x81800000-0x8180ffff) xps_intc_0 plb_v46_0 - (0x83600000-0x8360ffff) SysACE_CompactFlash plb_v46_0 - (0x84000000-0x8400ffff) RS232_Uart_1 plb_v46_0 - (0x85c00000-0x85c0ffff) PCIe_Bridge plb_v46_0 - (0xc0000000-0xdfffffff) PCIe_Bridge plb_v46_0 - (0xe0000000-0xefffffff) PCIe_Bridge plb_v46_0 - (0xf8000000-0xf80fffff) SRAM plb_v46_0 - (0xffffe000-0xffffffff) xps_bram_if_cntlr_1 plb_v46_0 -INFO:EDK:1560 - IPNAME:ppc440_virtex5 INSTANCE:ppc440_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\ppc440_virtex5_v1_ - 01_a\data\ppc440_virtex5_v2_1_0.mpd line 175 - tool is overriding PARAMETER - C_SPLB0_P2P value to 0 - -Computing clock values... -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_P_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1432 - Frequency for Top-Level Input Clock - 'fpga_0_PCIe_Diff_Clk_IBUF_DS_N_pin' is not specified. Clock DRCs will not be - performed for IPs connected to that clock port, unless they are connected - through the clock generator IP. - -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 12 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:plb_v46_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 76 - tool is overriding - PARAMETER C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_bram_if_cntlr INSTANCE:xps_bram_if_cntlr_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_bram_if_cntlr_ - v1_00_b\data\xps_bram_if_cntlr_v2_1_0.mpd line 80 - tool is overriding - PARAMETER C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 69 - tool is overriding PARAMETER C_MEMSIZE - value to 0x2000 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PORT_DWIDTH value to 64 -INFO:EDK:1560 - IPNAME:bram_block INSTANCE:xps_bram_if_cntlr_1_bram - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\bram_block_v1_00_a - \data\bram_block_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_NUM_WE - value to 8 -INFO:EDK:1560 - IPNAME:xps_uartlite INSTANCE:RS232_Uart_1 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_uartlite_v1_01 - _a\data\xps_uartlite_v2_1_0.mpd line 73 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:LEDs_Positions - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:Push_Buttons_5Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_gpio INSTANCE:DIP_Switches_8Bit - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_gpio_v2_00_a\d - ata\xps_gpio_v2_1_0.mpd line 71 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_iic INSTANCE:IIC_EEPROM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_iic_v2_01_a\da - ta\xps_iic_v2_1_0.mpd line 79 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 82 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_mch_emc INSTANCE:SRAM - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_mch_emc_v3_00_ - a\data\xps_mch_emc_v2_1_0.mpd line 84 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 86 - tool is overriding PARAMETER - C_MPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 87 - tool is overriding PARAMETER - C_MPLB_SMALLEST_SLAVE value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 89 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 90 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 91 - tool is overriding PARAMETER - C_SPLB_SMALLEST_MASTER value to 128 -INFO:EDK:1560 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plbv46_pcie_v3_00_ - b\data\plbv46_pcie_v2_1_0.mpd line 95 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 70 - tool is overriding PARAMETER - C_PLBV46_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 71 - tool is overriding PARAMETER - C_PLBV46_NUM_SLAVES value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_PLBV46_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:plb_v46 INSTANCE:ppc440_0_SPLB0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\plb_v46_v1_04_a\da - ta\plb_v46_v2_1_0.mpd line 74 - tool is overriding PARAMETER C_PLBV46_DWIDTH - value to 128 -INFO:EDK:1560 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_ethernetlite_v - 2_01_a\data\xps_ethernetlite_v2_1_0.mpd line 75 - tool is overriding - PARAMETER C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 72 - tool is overriding PARAMETER - C_SPLB_DWIDTH value to 128 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 74 - tool is overriding PARAMETER - C_SPLB_MID_WIDTH value to 1 -INFO:EDK:1560 - IPNAME:xps_sysace INSTANCE:SysACE_CompactFlash - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_sysace_v1_01_a - \data\xps_sysace_v2_1_0.mpd line 75 - tool is overriding PARAMETER - C_SPLB_NUM_MASTERS value to 1 -INFO:EDK:1560 - IPNAME:xps_intc INSTANCE:xps_intc_0 - - C:\devtools\Xilinx\11.1\EDK\hw\XilinxProcessorIPLib\pcores\xps_intc_v2_00_a\d - ata\xps_intc_v2_1_0.mpd line 72 - tool is overriding PARAMETER C_SPLB_DWIDTH - value to 128 - -Checking platform address map ... - -Initializing Memory... -Running Data2Mem with the following command: -data2mem -bm "implementation/system_bd" -bt "implementation/system.bit" -bd -"bootloops/ppc440_0.elf" tag ppc440_0 -o b implementation/download.bit -Memory Initialization completed successfully. - -********************************************* -Downloading Bitstream onto the target board -********************************************* -impact -batch etc/download.cmd -Release 11.2 - iMPACT L.46 (nt) -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. -Preference Table -Name Setting -StartupClock Auto_Correction -AutoSignature False -KeepSVF False -ConcurrentMode False -UseHighz False -ConfigOnFailure Stop -UserLevel Novice -MessageLevel Detailed -svfUseTime false -SpiByteSwap Auto_Correction -AutoDetecting cable. Please wait. -Connecting to cable (Usb Port - USB21). -Checking cable driver. - Driver file xusb_xp2.sys found. - Driver version: src=2301, dest=2301. - Driver windrvr6.sys version = 9.0.0.0. WinDriver v9.00 Jungo (c) 1997 - 2007 Build Date: Mar 27 2007 X86 32bit SYS -13:58:07, version = 900. - Cable PID = 0008. - Max current requested during enumeration is 300 mA. -Type = 0x0005. - Cable Type = 3, Revision = 0. - Setting cable speed to 6 MHz. -Cable connection established. -Firmware version = 2401. -File version of c:/devtools/Xilinx/11.1/ISE/data/xusb_xp2.hex = 2401. -Firmware hex file version = 2401. -PLD file version = 200Dh. - PLD version = 200Dh. -Identifying chain contents...'0': : Manufacturer's ID = Xilinx xc5vfx70t, Version : 6 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/virtex5/data/xc5vfx70t.bsd... - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'1': : Manufacturer's ID = Xilinx xccace, Version : 0 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'2': : Manufacturer's ID = Xilinx xc95144xl, Version : 5 -INFO:iMPACT:501 - '1': Added Device xc5vfx70t successfully. -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/acecf/data/xccace.bsd... -INFO:iMPACT:501 - '1': Added Device xccace successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'3': : Manufacturer's ID = Xilinx xcf32p, Version : 15 -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xc9500xl/data/xc95144xl.bsd... -INFO:iMPACT:501 - '1': Added Device xc95144xl successfully. - ----------------------------------------------------------------------- ----------------------------------------------------------------------- -'4': : Manufacturer's ID = Xilinx xcf32p, Version : 15 ----------------------------------------------------------------------- ----------------------------------------------------------------------- -done. -Elapsed time = 0 sec. -Elapsed time = 0 sec. -'5': Loading file 'implementation/download.bit' ... -INFO:iMPACT:1777 - - Reading c:/devtools/Xilinx/11.1/ISE/xcfp/data/xcf32p.bsd... -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. -INFO:iMPACT:501 - '1': Added Device xcf32p successfully. - -done. -UserID read from the bitstream file = 0xFFFFFFFF. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -Maximum TCK operating frequency for this device chain: 10000000. -Validating chain... -Boundary-scan chain validated successfully. -5: Device Temperature: Current Reading: 72.52 C, Min. Reading: 30.69 C, Max. -Reading: 74.49 C -5: VCCINT Supply: Current Reading: 0.993 V, Min. Reading: 0.993 V, Max. -Reading: 1.002 V -5: VCCAUX Supply: Current Reading: 2.496 V, Min. Reading: 2.493 V, Max. -Reading: 2.508 V -INFO:iMPACT:501 - '5': Added Device xc5vfx70t successfully. - -'5': Programming device... - Match_cycle = 2. -done. -'5': Reading status register contents... -CRC error : 0 -Decryptor security set : 0 -DCM locked : 1 -DCI matched : 1 -End of startup signal from Startup block : 1 -status of GTS_CFG_B : 1 -status of GWE : 1 -status of GHIGH : 1 -value of MODE pin M0 : 1 -value of MODE pin M1 : 0 -Value of MODE pin M2 : 1 -Internal signal indicates when housecleaning is completed: 1 -Value driver in from INIT pad : 1 -Internal signal indicates that chip is configured : 1 -Value of DONE pin : 1 -Indicates when ID value written does not match chip ID: 0 -Decryptor error Signal : 0 -System Monitor Over-Temperature Alarm : 0 -startup_state[18] CFG startup state machine : 0 -startup_state[19] CFG startup state machine : 0 -startup_state[20] CFG startup state machine : 1 -E-fuse program voltage available : 0 -SPI Flash Type[22] Select : 1 -SPI Flash Type[23] Select : 1 -SPI Flash Type[24] Select : 1 -CFG bus width auto detection result : 0 -CFG bus width auto detection result : 0 -Reserved : 0 -BPI address wrap around error : 0 -IPROG pulsed : 0 -read back crc error : 0 -Indicates that efuse logic is busy : 0 - Match_cycle = 2. -'5': Programmed successfully. -Elapsed time = 11 sec. ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- ----------------------------------------------------------------------- -INFO:iMPACT:2219 - Status register values: -INFO:iMPACT - 0011 1111 1011 1110 0000 1011 1000 0000 -INFO:iMPACT:579 - '5': Completed downloading bit file to device. -INFO:iMPACT - '5': Programing completed successfully. -INFO:iMPACT - '5': Checking done pin....done. - - - -Done! - -At Local date and time: Sat Jul 04 20:43:42 2009 - make -f system.make program started... - -powerpc-eabi-gcc -O0 /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/BlockQ.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/blocktim.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/comtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/countsem.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/death.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/dynamic.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/flash.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/GenQTest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/integer.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/QPeek.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/recmutex.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../Common/Minimal/semtest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/tasks.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/list.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/queue.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/croutine.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/portasm.S /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/GCC/PPC440_Xilinx/port.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/../../../Source/portable/MemMang/heap_2.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop-reg-test.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/flop/flop.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/partest/partest.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/serial/serial.c /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/main.c -o RTOSDemo/executable.elf \ - -mcpu=440 -Wl,-T -Wl,/cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -g -I./ppc440_0/include/ -I../../Source/include -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -L./ppc440_0/lib/ \ --D GCC_PPC440 -mregnames -powerpc-eabi-size RTOSDemo/executable.elf - text data bss dec hex filename - 53174 372 86528 140074 2232a RTOSDemo/executable.elf - - -Done! - -start xbash -noblock -q -c "cd /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/; xmd -xmp system.xmp -opt etc/xmd_ppc440_0.opt -lp /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/; exit;" - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.gui - -Xilinx Platform Studio (XPS) -Xilinx EDK 11.2 Build EDK_LS3.47 - -Copyright (c) 1995-2009 Xilinx, Inc. All rights reserved. - -WARNING:EDK:1582 - IPNAME:plbv46_pcie INSTANCE:PCIe_Bridge - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 237 - deprecated core for architecture 'virtex5fx'! - -WARNING:EDK:1582 - IPNAME:xps_ethernetlite INSTANCE:Ethernet_MAC - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\_xps_tempmhsfilename.mhs line 282 - deprecated core for architecture 'virtex5fx'! - -Generating Block Diagram to Buffer - -Generated Block Diagram SVG - -At Local date and time: Sun Jul 05 09:35:22 2009 - make -f system.make hwclean started... - -rm -f implementation/system.ngc -rm -f platgen.log -rm -f __xps/ise/_xmsgs/platgen.xmsgs -rm -f implementation/system.bmm -rm -f implementation/system.bit -rm -f implementation/system.ncd -rm -f implementation/system_bd.bmm -rm -f implementation/system_map.ncd -rm -f __xps/system_routed -rm -rf implementation synthesis xst hdl -rm -rf xst.srp system.srp -rm -f __xps/ise/_xmsgs/bitinit.xmsgs - - -Done! - -At Local date and time: Sun Jul 05 09:35:36 2009 - make -f system.make swclean started... - -rm -rf ppc440_0/ -rm -f libgen.log -rm -f __xps/ise/_xmsgs/libgen.xmsgs -rm -f RTOSDemo/executable.elf - - -Done! - -Writing filter settings.... - -Done writing filter settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.filters - -Done writing Tab View settings to: - C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\__xps\system.gui - diff --git a/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg b/FreeRTOS/Demo/RX600_RX62N-RDK_GNURX/RTOSDemo/webserver/httpd-fs/logo.jpg deleted file mode 100644 index 46d756892a1480937294d92a3b1e2fd53ddc46b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32592 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⁢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⁢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⁢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⁢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⁢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⁢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⁢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⁢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 A0{{R3 diff --git a/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg b/FreeRTOS/Demo/WIN32-MSVC-lwIP/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/fs/logo.jpg deleted file mode 100644 index d3670e4f0c726e023b83ad4b1a3e6bb6b2c2446a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 28602 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 diff --git a/FreeRTOS/Demo/WIN32-MSVC/main_blinky.c b/FreeRTOS/Demo/WIN32-MSVC/main_blinky.c index f6291913c..d2048f446 100644 --- a/FreeRTOS/Demo/WIN32-MSVC/main_blinky.c +++ b/FreeRTOS/Demo/WIN32-MSVC/main_blinky.c @@ -68,15 +68,12 @@ */ /****************************************************************************** - * NOTE 1: The Win32 port is a simulation (or is that emulation?) only! Do not - * expect to get real time behaviour from the Win32 port or this demo - * application. It is provided as a convenient development and demonstration - * test bed only. This was tested using Windows XP on a dual core laptop. - * - * Windows will not be running the FreeRTOS simulator threads continuously, so - * the timing information in the FreeRTOS+Trace logs have no meaningful units. - * See the documentation page for the Windows simulator for an explanation of - * the slow timing: + * NOTE 1: Do not expect to get real time behaviour from the Win32 port or this + * demo application. It is provided as a convenient development and + * demonstration test bed only. Windows will not be running the FreeRTOS + * threads continuously, so the timing information in the FreeRTOS+Trace logs + * have no meaningful units. See the documentation page for the Windows + * simulator for further explanation: * http://www.freertos.org/FreeRTOS-Windows-Simulator-Emulator-for-Visual-Studio-and-Eclipse-MingW.html * - READ THE WEB DOCUMENTATION FOR THIS PORT FOR MORE INFORMATION ON USING IT - * @@ -91,59 +88,65 @@ * in main.c. ****************************************************************************** * - * main_blinky() creates one queue, and two tasks. It then starts the - * scheduler. + * main_blinky() creates one queue, one software timer, and two tasks. It then + * starts the scheduler. * * The Queue Send Task: * The queue send task is implemented by the prvQueueSendTask() function in - * this file. prvQueueSendTask() sits in a loop that causes it to repeatedly - * block for 200 (simulated as far as the scheduler is concerned, but in - * reality much longer - see notes above) milliseconds, before sending the - * value 100 to the queue that was created within main_blinky(). Once the - * value is sent, the task loops back around to block for another 200 - * (simulated) milliseconds. + * this file. It uses vTaskDelayUntil() to create a period task that sends the + * value 100 to the queue every 200 milliseconds (please read the notes above + * regarding the accuracy of timing under Windows). + * + * The Queue Send Software Timer: + * The timer is a one-shot timer that is reset by a key press. The timer's + * period is set to two seconds - if the timer expires then its callback + * function writes the value 200 to the queue. The callback function is + * implemented by prvQueueSendTimerCallback() within this file. * * The Queue Receive Task: * The queue receive task is implemented by the prvQueueReceiveTask() function - * in this file. prvQueueReceiveTask() sits in a loop where it repeatedly - * blocks on attempts to read data from the queue that was created within - * main_blinky(). When data is received, the task checks the value of the - * data, and if the value equals the expected 100, outputs a message. The - * 'block time' parameter passed to the queue receive function specifies that - * the task should be held in the Blocked state indefinitely to wait for data - * to be available on the queue. The queue receive task will only leave the - * Blocked state when the queue send task writes to the queue. As the queue - * send task writes to the queue every 200 (simulated - see notes above) - * milliseconds, the queue receive task leaves the Blocked state every 200 - * milliseconds, and therefore outputs a message every 200 milliseconds. + * in this file. prvQueueReceiveTask() waits for data to arrive on the queue. + * When data is received, the task checks the value of the data, then outputs a + * message to indicate if the data came from the queue send task or the queue + * send software timer. As the queue send task writes to the queue every 200ms, + * the queue receive task will print a message indicating that it received data + * from the queue send task every 200ms. The queue receive task will print a + * message indicating that it received data from the queue send software timer + * 2 seconds after a key was last pressed. */ /* Standard includes. */ #include +#include /* Kernel includes. */ #include "FreeRTOS.h" #include "task.h" +#include "timers.h" #include "semphr.h" /* Priorities at which the tasks are created. */ #define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) #define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) -/* The rate at which data is sent to the queue. The 200ms value is converted -to ticks using the portTICK_PERIOD_MS constant. */ -#define mainQUEUE_SEND_FREQUENCY_MS ( 200 / portTICK_PERIOD_MS ) +/* The rate at which data is sent to the queue. The times are converted from +milliseconds to ticks by the pdMS_TO_TICKS() macro where they are used. */ +#define mainTASK_SEND_FREQUENCY_MS 200 +#define mainTIMER_SEND_FREQUENCY_MS 2000 -/* The number of items the queue can hold. This is 1 as the receive task -will remove items as they are added, meaning the send task should always find -the queue empty. */ -#define mainQUEUE_LENGTH ( 1 ) +/* The number of items the queue can hold. */ +#define mainQUEUE_LENGTH ( 2 ) /* Values passed to the two tasks just to check the task parameter functionality. */ #define mainQUEUE_SEND_PARAMETER ( 0x1111UL ) #define mainQUEUE_RECEIVE_PARAMETER ( 0x22UL ) +/* The values sent to the queue receive task from the queue send task and the +queue send software timer respectively. */ +#define mainVALUE_SENT_FROM_TASK ( 100UL ) +#define mainVALUE_SENT_FROM_TIMER ( 200UL ) + /*-----------------------------------------------------------*/ /* @@ -152,15 +155,25 @@ functionality. */ static void prvQueueReceiveTask( void *pvParameters ); static void prvQueueSendTask( void *pvParameters ); +/* + * The callback function executed when the software timer expires. + */ +static void prvQueueSendTimerCallback( TimerHandle_t xTimerHandle ); + /*-----------------------------------------------------------*/ /* The queue used by both tasks. */ static QueueHandle_t xQueue = NULL; +/* A software timer that is started from the tick hook. */ +static TimerHandle_t xTimer = NULL; + /*-----------------------------------------------------------*/ void main_blinky( void ) { +const TickType_t xTimerPeriod = pdMS_TO_TICKS( mainTIMER_SEND_FREQUENCY_MS ); + /* Create the queue. */ xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); @@ -177,6 +190,13 @@ void main_blinky( void ) xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, ( void * ) mainQUEUE_SEND_PARAMETER, mainQUEUE_SEND_TASK_PRIORITY, NULL ); + /* Create the software timer, but don't start it yet. */ + xTimer = xTimerCreate( "Timer", /* The text name assigned to the software timer - for debug only as it is not used by the kernel. */ + xTimerPeriod, /* The period of the software timer in ticks. */ + pdFALSE, /* xAutoReload is set to pdFALSE, so this is a one shot timer. */ + NULL, /* The timer's ID is not used. */ + prvQueueSendTimerCallback );/* The function executed when the timer expires. */ + /* Start the tasks and timer running. */ vTaskStartScheduler(); } @@ -193,8 +213,8 @@ void main_blinky( void ) static void prvQueueSendTask( void *pvParameters ) { TickType_t xNextWakeTime; -const unsigned long ulValueToSend = 100UL; -const TickType_t xBlockTime = pdMS_TO_TICKS( mainQUEUE_SEND_FREQUENCY_MS ); +const TickType_t xBlockTime = pdMS_TO_TICKS( mainTASK_SEND_FREQUENCY_MS ); +const uint32_t ulValueToSend = mainVALUE_SENT_FROM_TASK; /* Remove compiler warning in the case that configASSERT() is not defined. */ @@ -217,12 +237,26 @@ const TickType_t xBlockTime = pdMS_TO_TICKS( mainQUEUE_SEND_FREQUENCY_MS ); /* Send to the queue - causing the queue receive task to unblock and toggle the LED. 0 is used as the block time so the sending operation will not block - it shouldn't need to block as the queue should always - be empty at this point in the code. */ + have at least one space at this point in the code. */ xQueueSend( xQueue, &ulValueToSend, 0U ); } } /*-----------------------------------------------------------*/ +static void prvQueueSendTimerCallback( TimerHandle_t xTimerHandle ) +{ +const uint32_t ulValueToSend = mainVALUE_SENT_FROM_TIMER; + + /* Avoid compiler warnings resulting from the unused parameter. */ + ( void ) xTimerHandle; + + /* Send to the queue - causing the queue receive task to unblock and + write out a message. This function is called from the timer/daemon task, so + must not block. Hence the block time is set to 0. */ + xQueueSend( xQueue, &ulValueToSend, 0U ); +} +/*-----------------------------------------------------------*/ + static void prvQueueReceiveTask( void *pvParameters ) { unsigned long ulReceivedValue; @@ -242,16 +276,34 @@ unsigned long ulReceivedValue; xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); /* To get here something must have been received from the queue, but - is it the expected value? If it is, toggle the LED. */ - if( ulReceivedValue == 100UL ) + is it the expected value? Normally calling printf() from a task is not + a good idea. Here there is lots of stack space and only one task is + using console IO so it is ok. */ + if( ulReceivedValue == mainVALUE_SENT_FROM_TASK ) + { + printf( "Message received from task\r\n" ); + } + else if( ulReceivedValue == mainVALUE_SENT_FROM_TIMER ) + { + printf( "Message received from software timer\r\n" ); + } + else + { + printf( "Unexpected message\r\n" ); + } + + /* Reset the timer if a key has been pressed. The timer will write + mainVALUE_SENT_FROM_TIMER to the queue when it expires. */ + if( _kbhit() != 0 ) { - /* Normally calling printf() from a task is not a good idea. Here - there is lots of stack space and only one task is using console IO - so it is ok. */ - printf( "Message received\r\n" ); - ulReceivedValue = 0U; + /* Remove the key from the input buffer. */ + ( void ) _getch(); + + /* Reset the software timer. */ + xTimerReset( xTimer, portMAX_DELAY ); } } } /*-----------------------------------------------------------*/ + diff --git a/FreeRTOS/Source/portable/CCS/MSP430X/portext.asm b/FreeRTOS/Source/portable/CCS/MSP430X/portext.asm index d9887effe..f61344f52 100644 --- a/FreeRTOS/Source/portable/CCS/MSP430X/portext.asm +++ b/FreeRTOS/Source/portable/CCS/MSP430X/portext.asm @@ -89,7 +89,9 @@ portRESTORE_CONTEXT .macro pop_x r15 mov.w r15, &usCriticalNesting popm_x #12, r15 + nop pop.w sr + nop ret_x .endm ;----------------------------------------------------------- diff --git a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port.c b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port.c index 74e206fe1..83fe8ab9f 100644 --- a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port.c +++ b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port.c @@ -89,8 +89,10 @@ the scheduler being commenced interrupts should not be enabled, so the critical nesting variable is initialised to a non-zero value. */ #define portINITIAL_NESTING_VALUE ( 0xff ) -/* The bit within the MSR register that enabled/disables interrupts. */ +/* The bit within the MSR register that enabled/disables interrupts and +exceptions respectively. */ #define portMSR_IE ( 0x02U ) +#define portMSR_EE ( 0x100U ) /* If the floating point unit is included in the MicroBlaze build, then the FSR register is saved as part of the task context. portINITIAL_FSR is the value @@ -159,7 +161,7 @@ const uint32_t ulR13 = ( uint32_t ) &_SDA_BASE_; *pxTopOfStack = ( StackType_t ) 0x00000000; pxTopOfStack--; - #if XPAR_MICROBLAZE_0_USE_FPU != 0 + #if( XPAR_MICROBLAZE_USE_FPU != 0 ) /* The FSR value placed in the initial task context is just 0. */ *pxTopOfStack = portINITIAL_FSR; pxTopOfStack--; @@ -169,6 +171,14 @@ const uint32_t ulR13 = ( uint32_t ) &_SDA_BASE_; disabled. Each task will enable interrupts automatically when it enters the running state for the first time. */ *pxTopOfStack = mfmsr() & ~portMSR_IE; + + #if( MICROBLAZE_EXCEPTIONS_ENABLED == 1 ) + { + /* Ensure exceptions are enabled for the task. */ + *pxTopOfStack |= portMSR_EE; + } + #endif + pxTopOfStack--; /* First stack an initial value for the critical section nesting. This diff --git a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port_exceptions.c b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port_exceptions.c index 06c5ae5c3..69d1fc724 100644 --- a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port_exceptions.c +++ b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/port_exceptions.c @@ -200,7 +200,7 @@ extern void *pxCurrentTCB; exception. */ xRegisterDump.ulPC = xRegisterDump.ulR17_return_address_from_exceptions - portexINSTRUCTION_SIZE; - #if XPAR_MICROBLAZE_0_USE_FPU != 0 + #if( XPAR_MICROBLAZE_USE_FPU != 0 ) { xRegisterDump.ulFSR = mffsr(); } @@ -243,13 +243,13 @@ extern void *pxCurrentTCB; xRegisterDump.pcExceptionCause = ( int8_t * const ) "XEXC_ID_STACK_VIOLATION or XEXC_ID_MMU"; break; - #if XPAR_MICROBLAZE_0_USE_FPU != 0 + #if( XPAR_MICROBLAZE_USE_FPU != 0 ) case XEXC_ID_FPU : xRegisterDump.pcExceptionCause = ( int8_t * const ) "XEXC_ID_FPU see ulFSR value"; break; - #endif /* XPAR_MICROBLAZE_0_USE_FPU */ + #endif /* XPAR_MICROBLAZE_USE_FPU */ } /* vApplicationExceptionRegisterDump() is a callback function that the @@ -275,41 +275,43 @@ static uint32_t ulHandlersAlreadyInstalled = pdFALSE; { ulHandlersAlreadyInstalled = pdTRUE; - #if XPAR_MICROBLAZE_0_UNALIGNED_EXCEPTIONS == 1 + #if XPAR_MICROBLAZE_UNALIGNED_EXCEPTIONS == 1 microblaze_register_exception_handler( XEXC_ID_UNALIGNED_ACCESS, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_UNALIGNED_ACCESS ); - #endif /* XPAR_MICROBLAZE_0_UNALIGNED_EXCEPTIONS*/ + #endif /* XPAR_MICROBLAZE_UNALIGNED_EXCEPTIONS*/ - #if XPAR_MICROBLAZE_0_ILL_OPCODE_EXCEPTION == 1 + #if XPAR_MICROBLAZE_ILL_OPCODE_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_ILLEGAL_OPCODE, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_ILLEGAL_OPCODE ); - #endif /* XPAR_MICROBLAZE_0_ILL_OPCODE_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_ILL_OPCODE_EXCEPTION */ - #if XPAR_MICROBLAZE_0_M_AXI_I_BUS_EXCEPTION == 1 + #if XPAR_MICROBLAZE_M_AXI_I_BUS_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_M_AXI_I_EXCEPTION, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_M_AXI_I_EXCEPTION ); - #endif /* XPAR_MICROBLAZE_0_M_AXI_I_BUS_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_M_AXI_I_BUS_EXCEPTION */ - #if XPAR_MICROBLAZE_0_M_AXI_D_BUS_EXCEPTION == 1 + #if XPAR_MICROBLAZE_M_AXI_D_BUS_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_M_AXI_D_EXCEPTION, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_M_AXI_D_EXCEPTION ); - #endif /* XPAR_MICROBLAZE_0_M_AXI_D_BUS_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_M_AXI_D_BUS_EXCEPTION */ - #if XPAR_MICROBLAZE_0_IPLB_BUS_EXCEPTION == 1 + #if XPAR_MICROBLAZE_IPLB_BUS_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_IPLB_EXCEPTION, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_IPLB_EXCEPTION ); - #endif /* XPAR_MICROBLAZE_0_IPLB_BUS_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_IPLB_BUS_EXCEPTION */ - #if XPAR_MICROBLAZE_0_DPLB_BUS_EXCEPTION == 1 + #if XPAR_MICROBLAZE_DPLB_BUS_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_DPLB_EXCEPTION, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_DPLB_EXCEPTION ); - #endif /* XPAR_MICROBLAZE_0_DPLB_BUS_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_DPLB_BUS_EXCEPTION */ - #if XPAR_MICROBLAZE_0_DIV_ZERO_EXCEPTION == 1 + #if XPAR_MICROBLAZE_DIV_ZERO_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_DIV_BY_ZERO, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_DIV_BY_ZERO ); - #endif /* XPAR_MICROBLAZE_0_DIV_ZERO_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_DIV_ZERO_EXCEPTION */ - #if XPAR_MICROBLAZE_0_FPU_EXCEPTION == 1 + #if XPAR_MICROBLAZE_FPU_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_FPU, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_FPU ); - #endif /* XPAR_MICROBLAZE_0_FPU_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_FPU_EXCEPTION */ - #if XPAR_MICROBLAZE_0_FSL_EXCEPTION == 1 + #if XPAR_MICROBLAZE_FSL_EXCEPTION == 1 microblaze_register_exception_handler( XEXC_ID_FSL, vPortExceptionHandlerEntry, ( void * ) XEXC_ID_FSL ); - #endif /* XPAR_MICROBLAZE_0_FSL_EXCEPTION*/ + #endif /* XPAR_MICROBLAZE_FSL_EXCEPTION */ + + microblaze_enable_exceptions(); } } diff --git a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S index 9c6bef073..33211e713 100644 --- a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S +++ b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portasm.S @@ -76,7 +76,7 @@ /* The context is oversized to allow functions called from the ISR to write back into the caller stack. */ -#if XPAR_MICROBLAZE_0_USE_FPU != 0 +#if( XPAR_MICROBLAZE_USE_FPU != 0 ) #define portCONTEXT_SIZE 136 #define portMINUS_CONTEXT_SIZE -136 #else @@ -179,7 +179,7 @@ back into the caller stack. */ mfs r18, rmsr swi r18, r1, portMSR_OFFSET - #if XPAR_MICROBLAZE_0_USE_FPU != 0 + #if( XPAR_MICROBLAZE_USE_FPU != 0 ) /* Stack FSR. */ mfs r18, rfsr swi r18, r1, portFSR_OFFSET @@ -232,7 +232,7 @@ back into the caller stack. */ lwi r18, r1, portMSR_OFFSET mts rmsr, r18 - #if XPAR_MICROBLAZE_0_USE_FPU != 0 + #if( XPAR_MICROBLAZE_USE_FPU != 0 ) /* Reload the FSR from the stack. */ lwi r18, r1, portFSR_OFFSET mts rfsr, r18 diff --git a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h index 18ae63017..fb7b87b7f 100644 --- a/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h +++ b/FreeRTOS/Source/portable/GCC/MicroBlazeV8/portmacro.h @@ -156,7 +156,7 @@ context, if the flag is not false. This is done to prevent multiple calls to vTaskSwitchContext() being made from a single interrupt, as a single interrupt can result in multiple peripherals being serviced. */ extern volatile uint32_t ulTaskSwitchRequested; -#define portYIELD_FROM_ISR( x ) if( x != pdFALSE ) ulTaskSwitchRequested = 1 +#define portYIELD_FROM_ISR( x ) if( ( x ) != pdFALSE ) ulTaskSwitchRequested = 1 #if( configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 ) diff --git a/FreeRTOS/Source/portable/MSVC-MingW/portmacro.h b/FreeRTOS/Source/portable/MSVC-MingW/portmacro.h index 4ba729183..6ed948d73 100644 --- a/FreeRTOS/Source/portable/MSVC-MingW/portmacro.h +++ b/FreeRTOS/Source/portable/MSVC-MingW/portmacro.h @@ -152,11 +152,9 @@ void vPortExitCritical( void ); /*-----------------------------------------------------------*/ #ifdef __GNUC__ - #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) \ - __asm volatile( "mov %0, %%eax \n\t" \ - "bsr %%eax, %%eax \n\t" \ - "mov %%eax, %1 \n\t" \ - :"=r"(uxTopPriority) : "r"(uxReadyPriorities) : "eax" ) + #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) \ + __asm volatile( "bsr %1, %0\n\t" \ + :"=r"(uxTopPriority) : "rm"(uxReadyPriorities) : "cc" ) #else /* BitScanReverse returns the bit position of the most significant '1' in the word. */ diff --git a/FreeRTOS/Source/queue.c b/FreeRTOS/Source/queue.c index aa3a6103c..c35e00626 100644 --- a/FreeRTOS/Source/queue.c +++ b/FreeRTOS/Source/queue.c @@ -315,7 +315,6 @@ QueueHandle_t xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseT Queue_t *pxNewQueue; size_t xQueueSizeInBytes; QueueHandle_t xReturn = NULL; -int8_t *pcAllocatedBuffer; /* Remove compiler warnings about unused parameters should configUSE_TRACE_FACILITY not be set to 1. */ @@ -336,12 +335,10 @@ int8_t *pcAllocatedBuffer; } /* Allocate the new queue structure and storage area. */ - pcAllocatedBuffer = ( int8_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes ); + pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes ); - if( pcAllocatedBuffer != NULL ) + if( pxNewQueue != NULL ) { - pxNewQueue = ( Queue_t * ) pcAllocatedBuffer; /*lint !e826 MISRA The buffer cannot be too small because it was dimensioned by sizeof( Queue_t ) + xQueueSizeInBytes. */ - if( uxItemSize == ( UBaseType_t ) 0 ) { /* No RAM was allocated for the queue storage area, but PC head @@ -353,8 +350,8 @@ int8_t *pcAllocatedBuffer; else { /* Jump past the queue structure to find the location of the queue - storage area - adding the padding bytes to get a better alignment. */ - pxNewQueue->pcHead = pcAllocatedBuffer + sizeof( Queue_t ); + storage area. */ + pxNewQueue->pcHead = ( ( int8_t * ) pxNewQueue ) + sizeof( Queue_t ); } /* Initialise the queue members as described above where the queue type -- 2.39.5