From eb7fd55a49799ba9cee971b48c69ab337b101d80 Mon Sep 17 00:00:00 2001 From: Paul Bartell Date: Fri, 18 Nov 2022 23:42:38 -0800 Subject: [PATCH] Remove binary and generated files from Kernel Demos (#876) * T-HEAD_CB2201_CDK: Remove temporary IDE files * Remove Ateml Studio temporary / user files * Remove visual studio .vcxproj.user and .suo files * Remove png file (from atmel libraries) * Convert .doc files to .md * Remove .exe files * Remove CodeWarrior temporary files * CORTEX_MB9XXXX_IAR_Keil: Remove .out binary files * Renesas: Remove autogenerated .nav files * NiosII_CycloneIII_DBC3C40_GCC: Remove generated hex file * Update gitignore to exclude unwanted binary or auto-generated files * Xilinx: Remove temporary / generated files * PIC32MEC14xx_MPLAB: remove disassembly file --- .gitignore | 31 + .../USBDCallbackInvocationFlowchart.png | Bin 11380 -> 0 bytes .../usb/device/USBDeviceStateDiagram.png | Bin 8827 -> 0 bytes .../usb/device/cdc-serial/CDCarchitecture.png | Bin 28223 -> 0 bytes .../device/cdc-serial/USB-SerialConverter.png | Bin 10177 -> 0 bytes .../USBDCallbackInvocationFlowchart.png | Bin 11380 -> 0 bytes .../usb/device/USBDeviceStateDiagram.png | Bin 8827 -> 0 bytes .../usb/device/cdc-serial/CDCarchitecture.png | Bin 28223 -> 0 bytes .../device/cdc-serial/USB-SerialConverter.png | Bin 10177 -> 0 bytes .../makefsdata/MakeFSData_proj.suo | Bin 11264 -> 0 bytes .../makefsdata/MakeFSData_proj.vcxproj.user | 3 - .../makefsdata/makefsdata.exe | Bin 46592 -> 0 bytes .../RTOSDemo.atsuo | Bin 16896 -> 0 bytes .../RTOSDemo.atsuo | Bin 27136 -> 0 bytes .../RTOSDemo.atsuo | Bin 73216 -> 0 bytes .../RTOSDemo.atsuo | Bin 64000 -> 0 bytes .../.vs/RTOSDemo/v14/.atsuo | Bin 74752 -> 0 bytes .../RTOSDemo.atsuo | Bin 24576 -> 0 bytes .../config/flashloader/FlashMB9A310.out | Bin 32524 -> 0 bytes .../config/flashloader/FlashMB9BF506.out | Bin 33072 -> 0 bytes .../Libraries/CMSIS/License.doc | Bin 39936 -> 0 bytes .../Libraries/CMSIS/License.md | 128 + .../system_and_ST_code/CMSIS/License.doc | Bin 39936 -> 0 bytes .../system_and_ST_code/CMSIS/License.md | 128 + .../RTOSDemo_Data/CWSettingsWindows.stg | Bin 4647 -> 0 bytes .../INTERNAL_FLASH/TargetDataWindows.tdt | Bin 88642 -> 0 bytes .../RTOSDemo_Data/CWSettingsWindows.stg | Bin 6583 -> 0 bytes .../INTERNAL_FLASH/TargetDataWindows.tdt | Bin 165865 -> 0 bytes .../RTOSDemo_Data/CWSettingsWindows.stg | Bin 4565 -> 0 bytes .../P&E_ICD/TargetDataWindows.tdt | Bin 78723 -> 0 bytes .../Simulator/TargetDataWindows.tdt | Bin 71209 -> 0 bytes .../RTOSDemo_Data/CWSettingsWindows.stg | Bin 4553 -> 0 bytes .../Simulator/TargetDataWindows.tdt | Bin 73064 -> 0 bytes .../SofTec/TargetDataWindows.tdt | Bin 71603 -> 0 bytes .../makefsdata/MakeFSData_proj.suo | Bin 11264 -> 0 bytes .../makefsdata/MakeFSData_proj.vcxproj.user | 3 - .../makefsdata/makefsdata.exe | Bin 46592 -> 0 bytes .../onchip_memory.hex | 258 - .../disassembly/listing.disasm | 31294 ---------------- .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 173 - .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 134 - .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 46 - .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 580 - .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 2757 -- .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 534 - .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 1110 - .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 115 - .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 490 - .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 1549 - .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 1582 - .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 462 - .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 241 - .../__xps/.dswkshop/svg10.dtd | 1704 - .../__xps/bitinit.opt | 1 - .../__xps/ise/system.gise | 26 - .../__xps/ise/system.ise | Bin 170265 -> 0 bytes .../__xps/ise/system.xise | 42 - .../__xps/ise/system_xdb/tmp/ise.lock | Bin 240 -> 0 bytes .../HierarchicalDesign/HDProject/HDProject | Bin 201 -> 0 bytes .../HDProject/HDProject_StrTbl | Bin 17 -> 0 bytes .../__stored_object_table__ | Bin 60 -> 0 bytes .../PnAutoRun/Scripts/RunOnce_tcl | Bin 27 -> 0 bytes .../PnAutoRun/Scripts/RunOnce_tcl_StrTbl | Bin 3817 -> 0 bytes .../dpm_project_main/dpm_project_main | Bin 25 -> 0 bytes .../dpm_project_main/dpm_project_main_StrTbl | Bin 10 -> 0 bytes .../xreport/Gc_RvReportViewer-Current-Module | Bin 27 -> 0 bytes .../Gc_RvReportViewer-Current-Module_StrTbl | Bin 18 -> 0 bytes .../Gc_RvReportViewer-Module-Data-system | Bin 381 -> 0 bytes ...c_RvReportViewer-Module-Data-system_StrTbl | Bin 23174 -> 0 bytes ..._RvReportViewer-Module-DataFactory-Default | Bin 387 -> 0 bytes ...rtViewer-Module-DataFactory-Default_StrTbl | Bin 15712 -> 0 bytes .../tmp/ise/__REGISTRY__/Autonym/regkeys | 0 .../HierarchicalDesign/HDProject/regkeys | 24 - .../ise/__REGISTRY__/ProjectNavigator/regkeys | 3 - .../__REGISTRY__/ProjectNavigator11/regkeys | 6 - .../tmp/ise/__REGISTRY__/XSLTProcess/regkeys | 3 - .../__REGISTRY__/_ProjRepoInternal_/regkeys | 21 - .../tmp/ise/__REGISTRY__/bitgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/bitinit/regkeys | 3 - .../tmp/ise/__REGISTRY__/common/regkeys | 12 - .../tmp/ise/__REGISTRY__/cpldfit/regkeys | 3 - .../tmp/ise/__REGISTRY__/dumpngdio/regkeys | 3 - .../tmp/ise/__REGISTRY__/fuse/regkeys | 3 - .../tmp/ise/__REGISTRY__/hprep6/regkeys | 3 - .../tmp/ise/__REGISTRY__/idem/regkeys | 3 - .../tmp/ise/__REGISTRY__/libgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/map/regkeys | 3 - .../tmp/ise/__REGISTRY__/netgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngc2edif/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngcbuild/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngdbuild/regkeys | 3 - .../tmp/ise/__REGISTRY__/par/regkeys | 3 - .../tmp/ise/__REGISTRY__/platgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/runner/regkeys | 3 - .../tmp/ise/__REGISTRY__/simgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/taengine/regkeys | 3 - .../tmp/ise/__REGISTRY__/trce/regkeys | 3 - .../tmp/ise/__REGISTRY__/tsim/regkeys | 3 - .../tmp/ise/__REGISTRY__/vhpcomp/regkeys | 3 - .../tmp/ise/__REGISTRY__/vlogcomp/regkeys | 3 - .../tmp/ise/__REGISTRY__/xpwr/regkeys | 3 - .../tmp/ise/__REGISTRY__/xreport/regkeys | 0 .../tmp/ise/__REGISTRY__/xst/regkeys | 3 - .../__xps/ise/system_xdb/tmp/ise/version | 10 - .../__xps/ise/xmsgprops.lst | 0 .../__xps/libgen.opt | 1 - .../__xps/platgen.opt | 2 - .../__xps/rtosdemo_compiler.opt | 20 - .../__xps/simgen.opt | 1 - .../__xps/system.filters | 121 - .../__xps/system.gui | 110 - .../__xps/xplorer.opt | 1 - .../__xps/xpsxflow.opt | 1 - .../blockdiagram/svg10.dtd | 1704 - .../blockdiagram/system.css | 446 - .../blockdiagram/system.svg | 1113 - .../system.make | 278 - .../system_incl.make | 153 - .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 173 - .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 134 - .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 46 - .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 580 - .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 2757 -- .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 534 - .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 1110 - .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 115 - .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 490 - .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 1549 - .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 1582 - .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 462 - .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 241 - .../__xps/.dswkshop/svg10.dtd | 1704 - .../__xps/bitinit.opt | 1 - .../__xps/ise/system.gise | 26 - .../__xps/ise/system.ise | Bin 170265 -> 0 bytes .../__xps/ise/system.xise | 42 - .../__xps/ise/system_xdb/tmp/ise.lock | Bin 240 -> 0 bytes .../HierarchicalDesign/HDProject/HDProject | Bin 201 -> 0 bytes .../HDProject/HDProject_StrTbl | Bin 17 -> 0 bytes .../__stored_object_table__ | Bin 60 -> 0 bytes .../PnAutoRun/Scripts/RunOnce_tcl | Bin 27 -> 0 bytes .../PnAutoRun/Scripts/RunOnce_tcl_StrTbl | Bin 3817 -> 0 bytes .../dpm_project_main/dpm_project_main | Bin 25 -> 0 bytes .../dpm_project_main/dpm_project_main_StrTbl | Bin 10 -> 0 bytes .../xreport/Gc_RvReportViewer-Current-Module | Bin 27 -> 0 bytes .../Gc_RvReportViewer-Current-Module_StrTbl | Bin 18 -> 0 bytes .../Gc_RvReportViewer-Module-Data-system | Bin 381 -> 0 bytes ...c_RvReportViewer-Module-Data-system_StrTbl | Bin 23174 -> 0 bytes ..._RvReportViewer-Module-DataFactory-Default | Bin 387 -> 0 bytes ...rtViewer-Module-DataFactory-Default_StrTbl | Bin 15712 -> 0 bytes .../tmp/ise/__REGISTRY__/Autonym/regkeys | 0 .../HierarchicalDesign/HDProject/regkeys | 24 - .../ise/__REGISTRY__/ProjectNavigator/regkeys | 3 - .../__REGISTRY__/ProjectNavigator11/regkeys | 6 - .../tmp/ise/__REGISTRY__/XSLTProcess/regkeys | 3 - .../__REGISTRY__/_ProjRepoInternal_/regkeys | 21 - .../tmp/ise/__REGISTRY__/bitgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/bitinit/regkeys | 3 - .../tmp/ise/__REGISTRY__/common/regkeys | 12 - .../tmp/ise/__REGISTRY__/cpldfit/regkeys | 3 - .../tmp/ise/__REGISTRY__/dumpngdio/regkeys | 3 - .../tmp/ise/__REGISTRY__/fuse/regkeys | 3 - .../tmp/ise/__REGISTRY__/hprep6/regkeys | 3 - .../tmp/ise/__REGISTRY__/idem/regkeys | 3 - .../tmp/ise/__REGISTRY__/libgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/map/regkeys | 3 - .../tmp/ise/__REGISTRY__/netgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngc2edif/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngcbuild/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngdbuild/regkeys | 3 - .../tmp/ise/__REGISTRY__/par/regkeys | 3 - .../tmp/ise/__REGISTRY__/platgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/runner/regkeys | 3 - .../tmp/ise/__REGISTRY__/simgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/taengine/regkeys | 3 - .../tmp/ise/__REGISTRY__/trce/regkeys | 3 - .../tmp/ise/__REGISTRY__/tsim/regkeys | 3 - .../tmp/ise/__REGISTRY__/vhpcomp/regkeys | 3 - .../tmp/ise/__REGISTRY__/vlogcomp/regkeys | 3 - .../tmp/ise/__REGISTRY__/xpwr/regkeys | 3 - .../tmp/ise/__REGISTRY__/xreport/regkeys | 0 .../tmp/ise/__REGISTRY__/xst/regkeys | 3 - .../__xps/ise/system_xdb/tmp/ise/version | 10 - .../__xps/ise/xmsgprops.lst | 0 .../__xps/libgen.opt | 1 - .../__xps/platgen.opt | 2 - .../__xps/rtosdemo_compiler.opt | 20 - .../__xps/simgen.opt | 1 - .../__xps/system.filters | 121 - .../__xps/system.gui | 103 - .../__xps/xplorer.opt | 1 - .../__xps/xpsxflow.opt | 1 - .../blockdiagram/svg10.dtd | 1704 - .../blockdiagram/system.css | 446 - .../blockdiagram/system.svg | 1113 - .../system.make | 278 - .../system_incl.make | 153 - .../__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl | 173 - .../__xps/.dswkshop/MdtSvgDiag_Colors.xsl | 134 - .../__xps/.dswkshop/MdtSvgDiag_Globals.xsl | 46 - .../__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl | 580 - .../MdtTinySvgBLKD_BusLaneSpaces.xsl | 2757 -- .../__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl | 534 - .../.dswkshop/MdtTinySvgBLKD_Functions.xsl | 1110 - .../.dswkshop/MdtTinySvgBLKD_Globals.xsl | 115 - .../.dswkshop/MdtTinySvgBLKD_IOPorts.xsl | 490 - .../__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl | 1549 - .../.dswkshop/MdtTinySvgBLKD_Peripherals.xsl | 1582 - .../.dswkshop/MdtTinySvgBLKD_Processors.xsl | 462 - .../.dswkshop/MdtTinySvgDiag_BifShapes.xsl | 241 - .../__xps/.dswkshop/svg10.dtd | 1704 - .../__xps/bitinit.opt | 1 - .../__xps/ise/_xmsgs/map.xmsgs | 254 - .../__xps/ise/_xmsgs/ngcbuild.xmsgs | 9 - .../__xps/ise/_xmsgs/ngdbuild.xmsgs | 1073 - .../__xps/ise/_xmsgs/par.xmsgs | 52 - .../__xps/ise/_xmsgs/trce.xmsgs | 20 - .../__xps/ise/_xmsgs/xst.xmsgs | 1041 - .../__xps/ise/system.gise | 26 - .../__xps/ise/system.ise | Bin 169389 -> 0 bytes .../__xps/ise/system.ntrc_log | 8 - .../__xps/ise/system.xise | 42 - .../__xps/ise/system_xdb/cst.xbcd | Bin 896378 -> 0 bytes .../__xps/ise/system_xdb/tmp/ise.lock | Bin 216 -> 0 bytes .../HierarchicalDesign/HDProject/HDProject | Bin 321 -> 0 bytes .../HDProject/HDProject_StrTbl | Bin 17 -> 0 bytes .../__stored_object_table__ | Bin 60 -> 0 bytes .../PnAutoRun/Scripts/RunOnce_tcl | Bin 27 -> 0 bytes .../PnAutoRun/Scripts/RunOnce_tcl_StrTbl | Bin 3817 -> 0 bytes .../dpm_project_main/dpm_project_main | Bin 25 -> 0 bytes .../dpm_project_main/dpm_project_main_StrTbl | Bin 10 -> 0 bytes .../xreport/Gc_RvReportViewer-Current-Module | Bin 27 -> 0 bytes .../Gc_RvReportViewer-Current-Module_StrTbl | Bin 18 -> 0 bytes .../Gc_RvReportViewer-Module-Data-system | Bin 381 -> 0 bytes ...c_RvReportViewer-Module-Data-system_StrTbl | Bin 22889 -> 0 bytes ..._RvReportViewer-Module-DataFactory-Default | Bin 387 -> 0 bytes ...rtViewer-Module-DataFactory-Default_StrTbl | Bin 15712 -> 0 bytes .../tmp/ise/__REGISTRY__/Autonym/regkeys | 0 .../HierarchicalDesign/HDProject/regkeys | 24 - .../__REGISTRY__/HierarchicalDesign/regkeys | 0 .../ise/__REGISTRY__/ProjectNavigator/regkeys | 3 - .../__REGISTRY__/ProjectNavigator11/regkeys | 6 - .../tmp/ise/__REGISTRY__/XSLTProcess/regkeys | 3 - .../__REGISTRY__/_ProjRepoInternal_/regkeys | 21 - .../tmp/ise/__REGISTRY__/bitgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/bitinit/regkeys | 3 - .../tmp/ise/__REGISTRY__/common/regkeys | 12 - .../tmp/ise/__REGISTRY__/cpldfit/regkeys | 3 - .../tmp/ise/__REGISTRY__/dumpngdio/regkeys | 3 - .../tmp/ise/__REGISTRY__/fuse/regkeys | 3 - .../tmp/ise/__REGISTRY__/hprep6/regkeys | 3 - .../tmp/ise/__REGISTRY__/idem/regkeys | 3 - .../tmp/ise/__REGISTRY__/libgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/map/regkeys | 3 - .../tmp/ise/__REGISTRY__/netgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngc2edif/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngcbuild/regkeys | 3 - .../tmp/ise/__REGISTRY__/ngdbuild/regkeys | 3 - .../tmp/ise/__REGISTRY__/par/regkeys | 3 - .../tmp/ise/__REGISTRY__/platgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/runner/regkeys | 3 - .../tmp/ise/__REGISTRY__/simgen/regkeys | 3 - .../tmp/ise/__REGISTRY__/taengine/regkeys | 3 - .../tmp/ise/__REGISTRY__/trce/regkeys | 3 - .../tmp/ise/__REGISTRY__/tsim/regkeys | 3 - .../tmp/ise/__REGISTRY__/vhpcomp/regkeys | 3 - .../tmp/ise/__REGISTRY__/vlogcomp/regkeys | 3 - .../tmp/ise/__REGISTRY__/xpwr/regkeys | 3 - .../tmp/ise/__REGISTRY__/xreport/regkeys | 0 .../tmp/ise/__REGISTRY__/xst/regkeys | 3 - .../__xps/ise/system_xdb/tmp/ise/version | 10 - .../__xps/ise/xmsgprops.lst | 0 .../__xps/libgen.opt | 1 - .../__xps/platgen.opt | 2 - .../__xps/rtosdemo_compiler.opt | 20 - .../__xps/simgen.opt | 1 - .../__xps/system.filters | 121 - .../__xps/system.gui | 101 - .../__xps/system.xml | 4197 --- .../__xps/xplorer.opt | 1 - .../__xps/xpsxflow.opt | 1 - .../blockdiagram/svg10.dtd | 1704 - .../blockdiagram/system.css | 446 - .../blockdiagram/system.svg | 1078 - .../PPC440_Xilinx_Virtex5_GCC/platgen.opt | 7 - .../PPC440_Xilinx_Virtex5_GCC/system.make | 278 - .../system_incl.make | 151 - .../RTOSDemo/RTOSDemo.nav | Bin 277050 -> 0 bytes .../RTOSDemo/RTOSDemo.nav | Bin 209985 -> 0 bytes .../RTOSDemo_CDK/.cdk/RTOSDemo_CDK.cdkws.cxx | 6 - .../RTOSDemo_CDK/.cdk/RTOSDemo_CDK.session | 45 - .../RTOSDemo_CDK/.cdk/RTOSDemo_CDK.tags | Bin 2965504 -> 0 bytes .../RTOSDemo_CDK/.cdk/compilation.db | Bin 7168 -> 0 bytes .../RTOSDemo_CDK/.cdk/refactoring.db | Bin 1321984 -> 0 bytes .../RTOSDemo/.cdk/RTOSDemo.session | 59 - .../RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.tags | Bin 1015808 -> 0 bytes .../RTOSDemo_CDK/RTOSDemo/.cdk/compilation.db | Bin 7168 -> 0 bytes .../RTOSDemo_CDK/RTOSDemo/.cdk/refactoring.db | Bin 10240 -> 0 bytes 298 files changed, 287 insertions(+), 85220 deletions(-) delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/USBDCallbackInvocationFlowchart.png delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/USBDeviceStateDiagram.png delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/cdc-serial/CDCarchitecture.png delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/cdc-serial/USB-SerialConverter.png delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/USBDCallbackInvocationFlowchart.png delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/USBDeviceStateDiagram.png delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/cdc-serial/CDCarchitecture.png delete mode 100644 FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/cdc-serial/USB-SerialConverter.png delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user delete mode 100644 FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe delete mode 100644 FreeRTOS/Demo/CORTEX_ATSAM3S-EK2_Atmel_Studio/RTOSDemo.atsuo delete mode 100644 FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/RTOSDemo.atsuo delete mode 100644 FreeRTOS/Demo/CORTEX_M0+_Atmel_SAMD20_XPlained/RTOSDemo.atsuo delete mode 100644 FreeRTOS/Demo/CORTEX_M4_ATSAM4S_Atmel_Studio/RTOSDemo.atsuo delete mode 100644 FreeRTOS/Demo/CORTEX_M7_SAME70_Xplained_AtmelStudio/.vs/RTOSDemo/v14/.atsuo delete mode 100644 FreeRTOS/Demo/CORTEX_M7_SAMV71_Xplained_AtmelStudio/RTOSDemo.atsuo delete mode 100644 FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out delete mode 100644 FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out delete mode 100644 FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc create mode 100644 FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.md delete mode 100644 FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc create mode 100644 FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.md delete mode 100644 FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg delete mode 100644 FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt delete mode 100644 FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg delete mode 100644 FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt delete mode 100644 FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg delete mode 100644 FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt delete mode 100644 FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/Simulator/TargetDataWindows.tdt delete mode 100644 FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg delete mode 100644 FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt delete mode 100644 FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt delete mode 100644 FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo delete mode 100644 FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user delete mode 100644 FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe delete mode 100644 FreeRTOS/Demo/NiosII_CycloneIII_DBC3C40_GCC/onchip_memory.hex delete mode 100644 FreeRTOS/Demo/PIC32MEC14xx_MPLAB/PIC32MEC14xx_RTOSDemo.X/disassembly/listing.disasm delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make delete mode 100644 FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make delete mode 100644 FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/__stored_object_table__ delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/PnAutoRun/Scripts/RunOnce_tcl_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default_StrTbl delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.make delete mode 100644 FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make delete mode 100644 FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav delete mode 100644 FreeRTOS/Demo/RX600_RX630-RSK_Renesas/RTOSDemo/RTOSDemo.nav delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.cdkws.cxx delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.session delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.tags delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/compilation.db delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/refactoring.db delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.session delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.tags delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/compilation.db delete mode 100644 FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/refactoring.db diff --git a/.gitignore b/.gitignore index 8e3eecece7c..932984c1cf1 100644 --- a/.gitignore +++ b/.gitignore @@ -11,9 +11,29 @@ [Ll]og/ [Ll]ogs/ +# CodeWarrior temporary files +*.tdt +CWSettingsWindows.stg + +# Executable Files +*.exe +*.hex +*.bin +*.elf +*.out +*.rom + +# MS Word Files +*.doc +*.docx + # Visual Studio cache/options directory .vs/ +# Visual Studio Solution / project User Option files +*.suo +*.vcxproj.user + # Python Tools for Visual Studio (PTVS) __pycache__/ *.pyc @@ -21,3 +41,14 @@ __pycache__/ # Ignore certificate files. *.pem *.crt + +# Atmel Studio user files +*.atsuo + +# Image Files +*.png +*.jpg +*.jpeg + +# Renesas IDE temporary files +*.nav diff --git a/FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/USBDCallbackInvocationFlowchart.png b/FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/USBDCallbackInvocationFlowchart.png deleted file mode 100644 index af8028e16a1e8fb8e10b4984637cb78b5fa63a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11380 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 mpq5VXObV8>NC)C(~^*oFc=!>n3Ir@5=cnM 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 Dlo^QX diff --git a/FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/cdc-serial/USB-SerialConverter.png b/FreeRTOS/Demo/CORTEX_A5_SAMA5D3x_Xplained_IAR/AtmelFiles/usb/device/cdc-serial/USB-SerialConverter.png deleted file mode 100644 index bc05c1fcbb4a974b916f5226a5c002c47501674f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10177 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 diff --git a/FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/USBDCallbackInvocationFlowchart.png b/FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/USBDCallbackInvocationFlowchart.png deleted file mode 100644 index af8028e16a1e8fb8e10b4984637cb78b5fa63a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11380 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 mpq5VXObV8>NC)C(~^*oFc=!>n3Ir@5=cnM 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 Dlo^QX diff --git a/FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/cdc-serial/USB-SerialConverter.png b/FreeRTOS/Demo/CORTEX_A5_SAMA5D4x_EK_IAR/AtmelFiles/usb/device/cdc-serial/USB-SerialConverter.png deleted file mode 100644 index bc05c1fcbb4a974b916f5226a5c002c47501674f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10177 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 diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.suo deleted file mode 100644 index 3b44ee3bfe3a05655a2381dadd8c56495d4aaac3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11264 zcmeHNTWlOx89vUXP1-_}20{oWT|$6ByxZAbUuq`~*=rLT*IRpIBN!2lcW3R1C%dbe zSvw}SgoMNkQl-8lRPuuQLe(c;Kp^pe5S7}82o+x1z93$ZP$gbKjrqPabL{ncFJo^~ z8tA|J=bSln=KSaU=f9rWx8FMY-p}4R`Mzj@i(P$A9u7>48h)OLh@7aRbi^ulGCUj?2RC(|a?%YV>AxTQAou3LessF@S-)oi6l>y! zxB}`G)NrL)`RLzFx81`VK(3rQa(hKHlv9@GZC+4+eWw@k9zqBx$^4$TXfSh)sh2-WNNl;mbiN) zd4MdEhUYNN%@JM*j4k#GY7_f;|F3vCBgTae@1w&Cm|_`a9$vu2ZyI_%C1%i4M2iJ~ zVWXach4yf_j2=7to_Yi~PImc$c1+ zvzQkR%xpo9F(-SM#3Jr``92O9f&ZcW(*Cmyh;%Ku-}DuPR{Cko%9OLOV|L`3*L5Ce z;r|)0k~TpO+T+4F_Jg2LD}BZv^u2Y^wJ?KfSL#B173-%a(+Y;A&)7rx|5o~Wx#lvY zpoU#>dd2~yPr4j0EPci+#{rojTTm}ajTiW2D4!O3l7D}88tl(J$ za?Y5mf!(%oH-okYq?KHcz^`i}2Gpg-+?1M9g;&?1D_N^zCqr#LO*RBEA0E7!g_S?XQfiD=`je0xT1Dm| zbAc|@VADF;qCv<%V^+qbVd*noW~@eNrQhEEG|$9;PhE#VpD{0OT3Grg&{yd{?Tv>u zJFqm=1M0txdl$aL&x}mSwI{WJwvf3&vqc==1OGn{`hNow0yE&>?BQCHev>}X*LfX! z==)7-1hrj9x#c$vxfz@c3sD^qe;mk;YxvzxCGxq^p z!>f+r%32P7Hw{VfYeU$B1n#2ZIXsEuj!!f4ZUh!*46Pd88$ruDY*ZQ2N!ztWcS?GX zW~w|f+1^LZ&EH-2Jp^AO#QmJxd6{)}A2EwPDuG)!1IcQZ^n%Z2KpS2K0Pe`X8S`wYh(S&+cQ4nNrZ)Xi2j$}#g7Aa z(q;?nkEBc5g!a9*w|)V)?*;3hf{nca30?p#pZ1oH&qBg_!D+0YvdtVkEd8&buksJO zmG)`K3GEY4O-!*C*l5PCF>oy{`Nilljb3HY+0r~_-rZ$!w{zLD-Mg8`keo*fGtNVk zM`01D<e<%R#EBZ}i$*j0#WP$o5sxL(l3lIE1WFM1|4dx_ySVE=I zDhs&*>0vx~E67T2fUn9kahE&iW9aqRsbjCjPyISN_3|^ndU@fe`xo)Dg!jFBcQU_x z`{*xDidX;eSk7eu$#of2&?X&*w{K;SsY0F)ijhWchRxgC% zy8zC=1^pS%d&BylX8)_=AjZLUDNp3E6GTh&h24SY?>tv#OdFOyaTiMWVw zuRedd&USvzy|`8y*G;`_F6$M?G##(z>Igv$TQ_jN?p0ii1y3UIqokVerU9}mp zm9Tq^KY8L*h2&jDjaFTGY0~Zld&&RLVK9|{Z`U`Tur?rp9!`1u?}3h#%g!-4@{hjs zk7uos7On5J)^_dq{y0F*U``*_{zTE&2?m>zxrYraP?fmQWcjjaQT>AMI||xA(p9jd zLz{+Y(I!8$pbQtZGKMY37T4BpXEh|_!+hdZ^!B^lTf)7NIy#H_rR2W0%AWS?a)Y}aB8PY(q>y6GQd66O6m4M_dt zdHy57u=I22dznT9FpCuyv10msp0?hC{?qd>L-)h{2Y~rMPnQ%AQ*VyhU?P=f~dfKK1-}iickroqYA@-+d?k?;kQ+Rr6J4k12P2TuLUQ&y|caP72G3 z=vY!q;G}RkIW(+ESkL}XnV(iRoDlr@6#SJ24^RA-vF+AWwHudmzlukI^t r|Fqxuw_pDCvVV#8)81^|i~SwP+yB}eq5q275tjXrw)+ttX8QjDH|eFb diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user deleted file mode 100644 index 695b5c78b91..00000000000 --- a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe deleted file mode 100644 index 7d4271d0aa18c7f8eeb905dee82a49bce8ba89ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46592 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 F`ycU*U;_XE diff --git a/FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/RTOSDemo.atsuo b/FreeRTOS/Demo/CORTEX_ATSAM3X_Atmel_Studio/RTOSDemo.atsuo deleted file mode 100644 index 5d7bf938cd0fff1a2904bd46bc6ea64d10e9bb74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27136 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 diff --git a/FreeRTOS/Demo/CORTEX_M7_SAME70_Xplained_AtmelStudio/.vs/RTOSDemo/v14/.atsuo b/FreeRTOS/Demo/CORTEX_M7_SAME70_Xplained_AtmelStudio/.vs/RTOSDemo/v14/.atsuo deleted file mode 100644 index 777c177f03318c601454d1a52b0474900f159059..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 74752 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 F{|{gv8vXzP diff --git a/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out b/FreeRTOS/Demo/CORTEX_MB9A310_IAR_Keil/config/flashloader/FlashMB9A310.out deleted file mode 100644 index 92789e67d9db68d01534f13b37a8bead2fe338c9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32524 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 diff --git a/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out b/FreeRTOS/Demo/CORTEX_MB9B500_IAR_Keil/config/flashloader/FlashMB9BF506.out deleted file mode 100644 index 8a2771a9288fbeb1cfc53efa98bacf7af23f24d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33072 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 diff --git a/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.doc deleted file mode 100644 index b6b8acecc137bca709444106cba045d3d01daedd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39936 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 diff --git a/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.md b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.md new file mode 100644 index 00000000000..11c8e416c97 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_STM32F100_Atollic/Libraries/CMSIS/License.md @@ -0,0 +1,128 @@ +**Your Licence to Use the Source Code and Specification for the Cortex +Microcontroller Software Interface Standard**: + +THIS END USER LICENCE AGREEMENT IS A LEGAL AGREEMENT ("LICENCE") BETWEEN +YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND ARM LIMITED +(\"ARM\") FOR THE USE OF THE SOURCE CODE AND SPECIFICATION ACCOMPANYING +THIS LICENCE. ARM IS ONLY WILLING TO LICENSE THE SOURCE CODE AND +SPECIFICATION TO YOU ON CONDITION THAT YOU ACCEPT ALL OF THE TERMS IN +THIS LICENCE. BY CLICKING "I AGREE" OR BY INSTALLING OR OTHERWISE USING +OR COPYING EITHER OR BOTH THE SOURCE CODE AND SPECIFICATION YOU INDICATE +THAT YOU AGREE TO BE BOUND BY ALL THE TERMS OF THIS LICENCE. IF YOU DO +NOT AGREE TO THE TERMS OF THIS LICENCE, ARM IS UNWILLING TO LICENSE THE +SOURCE CODE AND SPECIFICATION TO YOU AND YOU MAY NOT INSTALL, USE OR +COPY THE SOURCE CODE OR SPECIFICATION, BUT YOU SHOULD PROMPTLY RETURN +THE SOURCE CODE AND SPECIFICATION TO ARM. + +"Source Code" means the source code for the Cortex Microcontroller +Software Interface Standard. + +"Specification" means the specification for the Cortex Microcontroller +Software Interface Standard. Notwithstanding the foregoing, +"Specification" shall not include (i) the implementation of other +published specifications referenced in the Specification; (ii) any +enabling technologies that may be necessary to make or use any product +or portion thereof that complies with the Specification, but are not +themselves expressly set forth in this Specification (e.g. compiler +front ends, code generators, back ends, libraries or other compiler, +assembler or linker technologies; validation or debug software or +hardware; applications, operating system or driver software; RISC +architecture; processor microarchitecture); (iii) maskworks and physical +layouts of integrated circuit designs; or (iv) RTL or other high level +representations of integrated circuit designs. + +LICENCE GRANTS + +1\. Subject to the provisions of Clauses 2, 3, 4 and 5, ARM hereby +grants to you under any intellectual property that is (a) owned or +freely licensable by ARM without payment to unaffiliated third parties +and (b) either embodied in either or both the Source Code and +Specification, as applicable, or Necessary (defined in Clause 4 below) +to copy or implement an applications binary interface compliant with the +Specification, a perpetual, non-exclusive, non-transferable, royalty +free, worldwide licence to: + +\(i\) use and copy the Specification for the purpose of developing, +having developed, manufacturing, having manufactured, offering to sell, +selling, supplying or otherwise distributing products which comply with +the Specification; + +(ii)       use, copy, modify and sublicence the Source Code (in source +or object code form) solely for the purpose of developing, having +developed, manufacturing, having manufactured, offering to sell, +selling, supplying or otherwise distributing products which comply with +the Specification, provided that you preserve all copyright notices +included in the Source Code. + +2\. The Source Code and Specification are owned by ARM or its licensors +and are protected by copyright laws and international copyright treaties +as well as other intellectual property laws and treaties. The Source +Code and Specification are licensed not sold. + +Except as specifically licensed in accordance with Clause 1, you acquire +no right, title or interest in the Source Code and Specification or any +intellectual property embodied therein. In no event shall the licences +granted in accordance with Clause 1 be construed as granting you, +expressly or by implication, estoppel or otherwise, a licence to use any +ARM technology except the Source Code and Specification. + +Except as provided in Clause 1, no right is granted to you to sublicense +the rights granted to you under this Licence. + +3\. THE SOURCE CODE AND SPECIFICATION ARE PROVIDED \"AS IS\". ARM +PROVIDES NO WARRANTIES EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT +LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY +QUALITY, NONINFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE. THE SOURCE +CODE AND SPECIFICATION MAY INCLUDE ERRORS. ARM RESERVES THE RIGHT TO +INCORPORATE MODIFICATIONS TO THE SOURCE CODE IN LATER REVISIONS OF IT, +AND TO MAKE IMPROVEMENTS OR CHANGES IN THE SPECIFICATION OR THE PRODUCTS +OR TECHNOLOGIES DESCRIBED THEREIN AT ANY TIME. + +4\. This Licence shall immediately terminate and shall be unavailable to +you if you or any party affiliated to you asserts any patents against +ARM, ARM affiliates, third parties who have a valid licence from ARM for +either or both the Source Code and the Specification, or any customers +or distributors of any of them based upon a claim that your (or your +affiliate) patent is Necessary to implement the Specification. In this +Licence; (i) \"affiliate\" means any entity controlling, controlled by +or under common control with a party (in fact or in law, via voting +securities, management control or otherwise) and \"affiliated\" shall be +construed accordingly; (ii) \"assert\" means to allege infringement in +legal or administrative proceedings, or proceedings before any other +competent trade, arbitral or international authority; (iii) "Necessary" +means with respect to any claims of any patent, those claims which, +without the appropriate permission of the patent owner, will be +infringed when implementing the Specification because no alternative, +commercially reasonable, non-infringing way of implementing the +Specification is known; and (iv) English law and the jurisdiction of the +English courts shall apply to all aspects of this Licence, its +interpretation and enforcement. + +5\. No licence, express, implied or otherwise, is granted to you, under +the provisions of Clause 1, to use the ARM tradename, in connection with +either or both the Source Code and the Specification or any products +based thereon. Nothing in Clause 1 shall be construed as authority for +you to make any representations on behalf of ARM in respect either or +both the Source Code and Specification. + +6\. The total liability of ARM and any of its suppliers and licensors +under or in relation to this Licence shall be limited to the greater of +the amount actually paid by you for the Source Code and Specification or +US\$10.00. The limitations, exclusions and disclaimers in this Licence +shall apply to the maximum extent allowed by applicable law. + +7\. The Source Code and Specification provided under this Licence is +subject to U.S. export control laws, including the U.S. Export +Administration Act and its associated regulations, and may be subject to +export or import regulations in other countries. You agree to comply +fully with all laws and regulations of the United States and other +countries (\"Export Laws\") to assure that the Source Code and +Specification, are not (1) exported, directly or indirectly, in +violation of Export Laws, either to any countries that are subject to +U.S.A. export restrictions or to any end user who has been prohibited +from participating in the U.S.A. export transactions by any federal +agency of the U.S.A. government; or (2) intended to be used for any +purpose prohibited by Export Laws, including, without limitation, +nuclear, chemical, or biological weapons proliferation. + +ARM contract reference number LEC-PRE-00425-V2.0 NM/HB diff --git a/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.doc deleted file mode 100644 index b6b8acecc137bca709444106cba045d3d01daedd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 39936 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 diff --git a/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.md b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.md new file mode 100644 index 00000000000..11c8e416c97 --- /dev/null +++ b/FreeRTOS/Demo/CORTEX_STM32L152_IAR/system_and_ST_code/CMSIS/License.md @@ -0,0 +1,128 @@ +**Your Licence to Use the Source Code and Specification for the Cortex +Microcontroller Software Interface Standard**: + +THIS END USER LICENCE AGREEMENT IS A LEGAL AGREEMENT ("LICENCE") BETWEEN +YOU (EITHER A SINGLE INDIVIDUAL, OR SINGLE LEGAL ENTITY) AND ARM LIMITED +(\"ARM\") FOR THE USE OF THE SOURCE CODE AND SPECIFICATION ACCOMPANYING +THIS LICENCE. ARM IS ONLY WILLING TO LICENSE THE SOURCE CODE AND +SPECIFICATION TO YOU ON CONDITION THAT YOU ACCEPT ALL OF THE TERMS IN +THIS LICENCE. BY CLICKING "I AGREE" OR BY INSTALLING OR OTHERWISE USING +OR COPYING EITHER OR BOTH THE SOURCE CODE AND SPECIFICATION YOU INDICATE +THAT YOU AGREE TO BE BOUND BY ALL THE TERMS OF THIS LICENCE. IF YOU DO +NOT AGREE TO THE TERMS OF THIS LICENCE, ARM IS UNWILLING TO LICENSE THE +SOURCE CODE AND SPECIFICATION TO YOU AND YOU MAY NOT INSTALL, USE OR +COPY THE SOURCE CODE OR SPECIFICATION, BUT YOU SHOULD PROMPTLY RETURN +THE SOURCE CODE AND SPECIFICATION TO ARM. + +"Source Code" means the source code for the Cortex Microcontroller +Software Interface Standard. + +"Specification" means the specification for the Cortex Microcontroller +Software Interface Standard. Notwithstanding the foregoing, +"Specification" shall not include (i) the implementation of other +published specifications referenced in the Specification; (ii) any +enabling technologies that may be necessary to make or use any product +or portion thereof that complies with the Specification, but are not +themselves expressly set forth in this Specification (e.g. compiler +front ends, code generators, back ends, libraries or other compiler, +assembler or linker technologies; validation or debug software or +hardware; applications, operating system or driver software; RISC +architecture; processor microarchitecture); (iii) maskworks and physical +layouts of integrated circuit designs; or (iv) RTL or other high level +representations of integrated circuit designs. + +LICENCE GRANTS + +1\. Subject to the provisions of Clauses 2, 3, 4 and 5, ARM hereby +grants to you under any intellectual property that is (a) owned or +freely licensable by ARM without payment to unaffiliated third parties +and (b) either embodied in either or both the Source Code and +Specification, as applicable, or Necessary (defined in Clause 4 below) +to copy or implement an applications binary interface compliant with the +Specification, a perpetual, non-exclusive, non-transferable, royalty +free, worldwide licence to: + +\(i\) use and copy the Specification for the purpose of developing, +having developed, manufacturing, having manufactured, offering to sell, +selling, supplying or otherwise distributing products which comply with +the Specification; + +(ii)       use, copy, modify and sublicence the Source Code (in source +or object code form) solely for the purpose of developing, having +developed, manufacturing, having manufactured, offering to sell, +selling, supplying or otherwise distributing products which comply with +the Specification, provided that you preserve all copyright notices +included in the Source Code. + +2\. The Source Code and Specification are owned by ARM or its licensors +and are protected by copyright laws and international copyright treaties +as well as other intellectual property laws and treaties. The Source +Code and Specification are licensed not sold. + +Except as specifically licensed in accordance with Clause 1, you acquire +no right, title or interest in the Source Code and Specification or any +intellectual property embodied therein. In no event shall the licences +granted in accordance with Clause 1 be construed as granting you, +expressly or by implication, estoppel or otherwise, a licence to use any +ARM technology except the Source Code and Specification. + +Except as provided in Clause 1, no right is granted to you to sublicense +the rights granted to you under this Licence. + +3\. THE SOURCE CODE AND SPECIFICATION ARE PROVIDED \"AS IS\". ARM +PROVIDES NO WARRANTIES EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT +LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY +QUALITY, NONINFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE. THE SOURCE +CODE AND SPECIFICATION MAY INCLUDE ERRORS. ARM RESERVES THE RIGHT TO +INCORPORATE MODIFICATIONS TO THE SOURCE CODE IN LATER REVISIONS OF IT, +AND TO MAKE IMPROVEMENTS OR CHANGES IN THE SPECIFICATION OR THE PRODUCTS +OR TECHNOLOGIES DESCRIBED THEREIN AT ANY TIME. + +4\. This Licence shall immediately terminate and shall be unavailable to +you if you or any party affiliated to you asserts any patents against +ARM, ARM affiliates, third parties who have a valid licence from ARM for +either or both the Source Code and the Specification, or any customers +or distributors of any of them based upon a claim that your (or your +affiliate) patent is Necessary to implement the Specification. In this +Licence; (i) \"affiliate\" means any entity controlling, controlled by +or under common control with a party (in fact or in law, via voting +securities, management control or otherwise) and \"affiliated\" shall be +construed accordingly; (ii) \"assert\" means to allege infringement in +legal or administrative proceedings, or proceedings before any other +competent trade, arbitral or international authority; (iii) "Necessary" +means with respect to any claims of any patent, those claims which, +without the appropriate permission of the patent owner, will be +infringed when implementing the Specification because no alternative, +commercially reasonable, non-infringing way of implementing the +Specification is known; and (iv) English law and the jurisdiction of the +English courts shall apply to all aspects of this Licence, its +interpretation and enforcement. + +5\. No licence, express, implied or otherwise, is granted to you, under +the provisions of Clause 1, to use the ARM tradename, in connection with +either or both the Source Code and the Specification or any products +based thereon. Nothing in Clause 1 shall be construed as authority for +you to make any representations on behalf of ARM in respect either or +both the Source Code and Specification. + +6\. The total liability of ARM and any of its suppliers and licensors +under or in relation to this Licence shall be limited to the greater of +the amount actually paid by you for the Source Code and Specification or +US\$10.00. The limitations, exclusions and disclaimers in this Licence +shall apply to the maximum extent allowed by applicable law. + +7\. The Source Code and Specification provided under this Licence is +subject to U.S. export control laws, including the U.S. Export +Administration Act and its associated regulations, and may be subject to +export or import regulations in other countries. You agree to comply +fully with all laws and regulations of the United States and other +countries (\"Export Laws\") to assure that the Source Code and +Specification, are not (1) exported, directly or indirectly, in +violation of Export Laws, either to any countries that are subject to +U.S.A. export restrictions or to any end user who has been prohibited +from participating in the U.S.A. export transactions by any federal +agency of the U.S.A. government; or (2) intended to be used for any +purpose prohibited by Export Laws, including, without limitation, +nuclear, chemical, or biological weapons proliferation. + +ARM contract reference number LEC-PRE-00425-V2.0 NM/HB diff --git a/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg deleted file mode 100644 index 175e7ab04ce1535d53b51b2e5980820fd851fbc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4647 zcmeHL&x_MQ6n;r-UDjVk^dNeOu)=zh?uu7!yWQ?WTS}5v6hUG;{UL2q(}Z0_v52Av z4`mMvUcLBV_$SDo1i?Q*ym|4e-%B$g6xYLoP&5xF^X8k$doy1qnU4${r}VOSl3EhRc+_FQ4LH5qLYsY&LPFz{b6fX{zm=W$g-|0-%eC)kQ8@?_BA zA7c=94{RpIsvG-scnb{ezz-JxmjilxS~8)pQ_901I+y=4D**e zi|EoPZ)%S2P!ql=k*hD8aV?rgs!XANL&J6~1kZ0LbcRx^6Our(!x(cE1_S7vBV zFEoG5BoM!fFHuH#1X-2|NacFtA-u@4&tcS)b zTK&24)7bc!QlWzw9{*%yp>r=IPDi+-^1c}fo+|K@A^y2)MzZ=k@CzaSJ(l1O@bwU{ zzHLO(I|rQear`H*8ca!GZ-Bo*gYi#~8<8Z>o+3JjxQxHsYeW)j1;2V!tby@w(?%rK QZ{WYrqcDE@ixSE9U&BV!Z diff --git a/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt b/FreeRTOS/Demo/ColdFire_MCF52221_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt deleted file mode 100644 index 40b17e5f1a1b990916bcf4f72fcd5b4debe1f721..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 88642 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 BZ(RTY diff --git a/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/CWSettingsWindows.stg deleted file mode 100644 index be222cc81102ba2a9d0175f2f6046179d1104665..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6583 zcmeHMZERCj7=CZtjq%}DyMcm(bOe)$WNek0XfQCkFL0Zr-5Aj&qqKKhW$mrET`9?& zi@|_KaZ8Np4}=*_MB@)IBtk;Seh@zr1cYf&_~8$g8A(J%GkzF+p4;B-W;%Xg)J6L) zZ_hc;`<`>&_c^D%_nh@=TF@>c<%-BNi$vbKOT=jtK~-#a2R<{>9*%~zopJYOU3*du zCft5CkqAe-n*0?Se3q(U|$lai8eKEr* z=0>R1f_)J+YVr2=={kYTP}16?tAUW)^ph=KKX*@GOd>nITm0_LfvDOmeyvXrs{TNi ziY=yg%|>c+G36NeUoe12fgua=iARAU_u-Sz35pkLJ{f$d=MjW#hvpkKkzSN@vh@_o z+4_5z4RO{KglrvIi^Vo|pO|81Uue)2-vp?rk#sx6e z1cPcEF9m@_Puys_5}3M zh8aC_h8zPq267DC9s}mX`1X3|di_@zc-2e<&m~1xtTvmu@|Fx(UMz0uHKu4EQY(0%*pnzPK1}6d|4t3Tvh+j%gsy~|7$oIq8uc}MY6cSaLc{Nc*M|G&;%9gK{-kmh zI(Trk(zt4|96RnY>XY`hutP`D|1vahzIVX19WG5ON1@E80Xlv>-x>PcC8elO!1pxb zGJOwulFGYK`j$Y&wxW%(vLA*0VmFia$_p-8G;g?{Z>4P0JJ#HmHy3Tkm`hd_4EGbe z8|`uUJ|f5i^<(f2RV0-WqYtkAfYEnIDG}<$XvLfq#`y^4NPbdz6DsnX{o1;uLObg` z)^SeqLaetasc@bYu$LXR1C@Jg1}ZVeN|aks(&ytHbpwo#u`q5v$=GI$^kHl#vT+}R zKl_ZJ&DDd+IEIoJ&d(Uj(PyiX1N=~uFV4waM$wnbv6(mH<$TPQanko9>|8JU^kbe9 zL{fh3>YQuW?asYucfBu8)`@YX(WMUOe&8pMiSt7!+Z^W*uoG3GHu{}Ly<%ae-ma)^ z#Y^bB%Gfxz592s!$QbbHjC=)*jL^?>#|!0bexsr!h$Sb9X(d^si)pSmQz zKVvV)m(T&_Cd~K`%F%sU+wgL6!xkG_ZrqW>#Spf6#7&{>fSvQP{oeek!>F-nSGZ`M zN!*{~m@OXsZBn)y$6{+X#+cJScqPx2^+Y^kH93*cAlAKi8a{;eAB1Cc8qRC}^}yqO zi3sqsaJv(Y6CPkL|?MF6ZR6 z(oWzHWbp&P6d602{!ZW=m;TKdhx|}Z0e=c5@#nrPn!FOJ#(M3B6Y-YnlF1YL@jI~3 z5jgRtOU0AdDWBkK!-gD)ANiqp@_OnWjK3s1{*RV~C-8%@9yob3V?k3YE&e}Q{NKQ1 uqznn@v6M)) diff --git a/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt b/FreeRTOS/Demo/ColdFire_MCF52259_CodeWarrior/RTOSDemo_Data/INTERNAL_FLASH/TargetDataWindows.tdt deleted file mode 100644 index ad578b419804185d6f6ed8d562c9d89113a5f16c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165865 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 diff --git a/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/CWSettingsWindows.stg deleted file mode 100644 index f3d72ee0a4cb684f2ee0fc2d39f4ec13c28fe238..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4565 zcmeHLO>5LZ7=Dx8Y6H3!)Qc4wM5Lb7>dk|d>{3M!p((9M5n^_>o02akiS2O@{s2Mo z?$wLGK!3yj2E7O#^z22ScXnqR_OQspUTR*L%*-?Id_6PFJeep>g9Z_;8$_K8MDYqy zA891XY&7v5*c9~Ipn9>2FD+#t zJijNfB}8u#Q>ojm8K@bUg8>}h$}Zz;j?*_0^EuDvAn22Q8|ftmVfzSYR0?+h;zgZN z<1S8R#2hpK%qerP`P6&^TBtQtukQBN4zHejqhmjI+Nwv!ETp_JE+fB4r9$<%c+BS! zS_=L5&k`LP&&@C9*TxVX{()g@=?zG9^*c8;c<}ZF!T=4;%B+5tWf=5**?l?7sV=J- zs2Qjkn1ca*8_rR+u5yYPc(3PzE6Skjw{-UZj7{1%J{sT5R`VPPco+mC$4|ds^z%3i zBO&cxD(y$kosCL~N$<>0#%l9oa}{;e|Dkeo(y2N_Rsm2PvdH5qy+f#_0m`B&+=ZkV zz%iM^`LSXXcwQDUH>r&uF4mC=r~Kbk{IwwFIxJakBkl>A{di`b=$7SC`;33SZz)N| z{+qz>j{RReu_l5#2hPU{`>$QIc#6ti0e_7Q<9ln?L}>p8x0f&w#s_F$%b^xtT}+IX d@elW`i2!foQHBLP<3B4CSOI=zjQ^_Oe*r#^l+FME diff --git a/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt b/FreeRTOS/Demo/HCS12_CodeWarrior_banked/RTOSDemo_Data/P&E_ICD/TargetDataWindows.tdt deleted file mode 100644 index 8ab9f814db87a4d018ef5ab2736415ba93261596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 78723 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

khqRJFYg#>R&1ig9<8vx6g*6`6 zxT*1k%B^P%xU>2u@Yj_hl@64-{4RccLZd`9E58lO{nDXj6h z#!ZbURBpXsCxJ^ft|X{*M5UuDwWc*bqw!gd&#Al=)_7dwrp6O0w@!$A@5|y)Da)m> z%B>d}Di9eIf%%8eVCzfb7}>!?kbi{lOFRZ6T)V3H4y)99nP&qLE_77_Str5HD33!H z)_JM)SzZ;9_8h>$Ra|GtD@n9ovqN#o*A;4x+!g9|JJdln)GWCx)Ef-7q$jO}>Lqmr zno)Tvta57_!B?NI4yW}Udw}d3qP^)1$mVqe7nTv_ahNrO6rF$CQuKzre`m<=-B7@q z{VivWoU-sRMc+Y+jG#5m;exA-&T9Nk1`Alz$JJnSpr<@+?;e|fUanSMk<67R~4kdvjj|9f!%#(68g z!b7=-u~MboD(z8euS)w=8d2%6N=H;Ws#5Ei#*b@!TH`YspVj!B%1dF5M>QVTxT*1k z#@T5x&R_9W)tD;nR%wq)dsW(}(uhijRXU>5QI%T9G=5y;CpA8;@fnTJYJ5)RrLe}M z8jow-)ObSUDO&Y{6@RE0_bipJRB5+LdsN!1(ms_&R64BE5tWXr)HT$2<0myf zt??O+&uV;5<)yI3qZ*HE+|+nN9J9H9n{EQdr|rjmI@^YCNIw46V9)#Ve|DRobo69+md0v`?iGl@6

wh_(_dVYkWrIvl^dMc`2;%sK(vO*K@U+!gA6JJh$;PziEZC{g$r^4;i` zitUq~xb>je*iRG?uM62|3Al}xNz^G`B%9T_B)SM<7+;2nZ9U?( z8E%ZXUy>0!cEqbN0rBzdlSnm(&m>gyUXWj{xPxdd7wc-p(9y!Um$WeM&KAbK zw1sh>(ZaZwwJ`3k7RG&M3**iq?%mM|GbK9M)oW3s^R?>ETAo0)&ld}6cg$e@^q?`{%ZQT=S2tv|lJcVCHk1%u0z^`w7GN#g%yB8UF8F z-Q~=u8#{aP8VhVe|IekmMDLRc+rJ+DN!Wt^FYM?lx17Iw171iC+5UGSe)j+99+|)k zvgpV${A(M#M4y!YscQ`*gmlvX#_PL8pO*fw-UGcd{_8*0C0>H3|9;#*TWN+ja6d4u zaL4d=?Go5W#B*tvcv+q&#t@z_w9{w4jt|FO#boc~~# z=qJ)y2J+q=zkIN3rQ2<3rH7= zws30^&sw0QR&GN-w?9ab)XLkxApVCKexj(9^L~WC5rrdJQ2j$Nh!el9(f*tIE5rB^ pP9$<-r%?ISJIk=UA1oFxrvKhmUw+mVFz#N47x|;+WH~Uv{|CNwW48bR diff --git a/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/CWSettingsWindows.stg deleted file mode 100644 index 34ba6fcbe5bfa32cea0f03cbb04899af615c658d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4553 zcmeHLzi-qq82ysFLW!u#00Iey41n6H0+urMq!h})aJrlhgkT6crwvNt$Vt?WCzX)_ zsZvM8#9zS9$iQ-c0231%tW4#7={ZC<9O$H5NG4EelC69O>xlWBXLAtr$=*YHi9y(NgmYyIcL3r= zol%o6&Sb3PU2 z2+Igu@n3C;zR?B^%umJ`yX6Fiou&65(T(ri&}i%E4}|fVnv_|+EUVDp^VIO=ET^Wd zVW454VPFmh^kq0l)uzfBV&GWM1y__oH#cWtSzPCI4CygKSu}-rp(93cOr~&tpy&Y4iah2f zwee%c8ZzOO|J$0s7QtMHbqX(XAXIwwja7-26X2Z*e)P;LWfZcs1xa*of*sS3{Yxr-SDU#j* diff --git a/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/Simulator/TargetDataWindows.tdt deleted file mode 100644 index 9085342096cfc4883e9eaec93250ef02e270d3f6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73064 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 diff --git a/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt b/FreeRTOS/Demo/HCS12_CodeWarrior_small/RTOSDemo_Data/SofTec/TargetDataWindows.tdt deleted file mode 100644 index f3e53147f4893a51fc552d1c723c3a1c408be22e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71603 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 diff --git a/FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user b/FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user deleted file mode 100644 index 695b5c78b91..00000000000 --- a/FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/MakeFSData_proj.vcxproj.user +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe b/FreeRTOS/Demo/MicroBlaze_Kintex7_EthernetLite/RTOSDemo/src/lwIP_Demo/lwIP_Apps/apps/httpserver_raw_from_lwIP_download/makefsdata/makefsdata.exe deleted file mode 100644 index 7d4271d0aa18c7f8eeb905dee82a49bce8ba89ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46592 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 AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: /* Standard includes. */ -71: #include -72: -73: /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -74: all the API functions to use the MPU wrappers. That should only be done when -75: task.h is included from an application file. */ -76: #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE -77: -78: #include "FreeRTOS.h" -79: #include "task.h" -80: #include "queue.h" -81: #include "timers.h" -82: -83: #if ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 0 ) -84: #error configUSE_TIMERS must be set to 1 to make the xTimerPendFunctionCall() function available. -85: #endif -86: -87: /* Lint e961 and e750 are suppressed as a MISRA exception justified because the -88: MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -89: header files above, but not in this file, in order to generate the correct -90: privileged Vs unprivileged linkage and placement. */ -91: #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ -92: -93: -94: /* This entire source file will be skipped if the application is not configured -95: to include software timer functionality. This #if is closed at the very bottom -96: of this file. If you want to include software timer functionality then ensure -97: configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ -98: #if ( configUSE_TIMERS == 1 ) -99: -100: /* Misc definitions. */ -101: #define tmrNO_DELAY ( TickType_t ) 0U -102: -103: /* The definition of the timers themselves. */ -104: typedef struct tmrTimerControl -105: { -106: const char *pcTimerName; /*<< Text name. This is not used by the kernel, it is included simply to make debugging easier. */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -107: ListItem_t xTimerListItem; /*<< Standard linked list item as used by all kernel features for event management. */ -108: TickType_t xTimerPeriodInTicks;/*<< How quickly and often the timer expires. */ -109: UBaseType_t uxAutoReload; /*<< Set to pdTRUE if the timer should be automatically restarted once expired. Set to pdFALSE if the timer is, in effect, a one-shot timer. */ -110: void *pvTimerID; /*<< An ID to identify the timer. This allows the timer to be identified when the same callback is used for multiple timers. */ -111: TimerCallbackFunction_t pxCallbackFunction; /*<< The function that will be called when the timer expires. */ -112: #if( configUSE_TRACE_FACILITY == 1 ) -113: UBaseType_t uxTimerNumber; /*<< An ID assigned by trace tools such as FreeRTOS+Trace */ -114: #endif -115: } xTIMER; -116: -117: /* The old xTIMER name is maintained above then typedefed to the new Timer_t -118: name below to enable the use of older kernel aware debuggers. */ -119: typedef xTIMER Timer_t; -120: -121: /* The definition of messages that can be sent and received on the timer queue. -122: Two types of message can be queued - messages that manipulate a software timer, -123: and messages that request the execution of a non-timer related callback. The -124: two message types are defined in two separate structures, xTimerParametersType -125: and xCallbackParametersType respectively. */ -126: typedef struct tmrTimerParameters -127: { -128: TickType_t xMessageValue; /*<< An optional value used by a subset of commands, for example, when changing the period of a timer. */ -129: Timer_t * pxTimer; /*<< The timer to which the command will be applied. */ -130: } TimerParameter_t; -131: -132: -133: typedef struct tmrCallbackParameters -134: { -135: PendedFunction_t pxCallbackFunction; /* << The callback function to execute. */ -136: void *pvParameter1; /* << The value that will be used as the callback functions first parameter. */ -137: uint32_t ulParameter2; /* << The value that will be used as the callback functions second parameter. */ -138: } CallbackParameters_t; -139: -140: /* The structure that contains the two message types, along with an identifier -141: that is used to determine which message type is valid. */ -142: typedef struct tmrTimerQueueMessage -143: { -144: BaseType_t xMessageID; /*<< The command being sent to the timer service task. */ -145: union -146: { -147: TimerParameter_t xTimerParameters; -148: -149: /* Don't include xCallbackParameters if it is not going to be used as -150: it makes the structure (and therefore the timer queue) larger. */ -151: #if ( INCLUDE_xTimerPendFunctionCall == 1 ) -152: CallbackParameters_t xCallbackParameters; -153: #endif /* INCLUDE_xTimerPendFunctionCall */ -154: } u; -155: } DaemonTaskMessage_t; -156: -157: /*lint -e956 A manual analysis and inspection has been used to determine which -158: static variables must be declared volatile. */ -159: -160: /* The list in which active timers are stored. Timers are referenced in expire -161: time order, with the nearest expiry time at the front of the list. Only the -162: timer service task is allowed to access these lists. */ -163: PRIVILEGED_DATA static List_t xActiveTimerList1; -164: PRIVILEGED_DATA static List_t xActiveTimerList2; -165: PRIVILEGED_DATA static List_t *pxCurrentTimerList; -166: PRIVILEGED_DATA static List_t *pxOverflowTimerList; -167: -168: /* A queue that is used to send commands to the timer service task. */ -169: PRIVILEGED_DATA static QueueHandle_t xTimerQueue = NULL; -170: -171: #if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 ) -172: -173: PRIVILEGED_DATA static TaskHandle_t xTimerTaskHandle = NULL; -174: -175: #endif -176: -177: /*lint +e956 */ -178: -179: /*-----------------------------------------------------------*/ -180: -181: /* -182: * Initialise the infrastructure used by the timer service task if it has not -183: * been initialised already. -184: */ -185: static void prvCheckForValidListAndQueue( void ) PRIVILEGED_FUNCTION; -186: -187: /* -188: * The timer service task (daemon). Timer functionality is controlled by this -189: * task. Other tasks communicate with the timer service task using the -190: * xTimerQueue queue. -191: */ -192: static void prvTimerTask( void *pvParameters ) PRIVILEGED_FUNCTION; -193: -194: /* -195: * Called by the timer service task to interpret and process a command it -196: * received on the timer queue. -197: */ -198: static void prvProcessReceivedCommands( void ) PRIVILEGED_FUNCTION; -199: -200: /* -201: * Insert the timer into either xActiveTimerList1, or xActiveTimerList2, -202: * depending on if the expire time causes a timer counter overflow. -203: */ -204: static BaseType_t prvInsertTimerInActiveList( Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime ) PRIVILEGED_FUNCTION; -205: -206: /* -207: * An active timer has reached its expire time. Reload the timer if it is an -208: * auto reload timer, then call its callback. -209: */ -210: static void prvProcessExpiredTimer( const TickType_t xNextExpireTime, const TickType_t xTimeNow ) PRIVILEGED_FUNCTION; -211: -212: /* -213: * The tick count has overflowed. Switch the timer lists after ensuring the -214: * current timer list does not still reference some timers. -215: */ -216: static void prvSwitchTimerLists( void ) PRIVILEGED_FUNCTION; -217: -218: /* -219: * Obtain the current tick count, setting *pxTimerListsWereSwitched to pdTRUE -220: * if a tick count overflow occurred since prvSampleTimeNow() was last called. -221: */ -222: static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched ) PRIVILEGED_FUNCTION; -223: -224: /* -225: * If the timer list contains any active timers then return the expire time of -226: * the timer that will expire first and set *pxListWasEmpty to false. If the -227: * timer list does not contain any timers then return 0 and set *pxListWasEmpty -228: * to pdTRUE. -229: */ -230: static TickType_t prvGetNextExpireTime( BaseType_t * const pxListWasEmpty ) PRIVILEGED_FUNCTION; -231: -232: /* -233: * If a timer has expired, process it. Otherwise, block the timer service task -234: * until either a timer does expire or a command is received. -235: */ -236: static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, const BaseType_t xListWasEmpty ) PRIVILEGED_FUNCTION; -237: -238: /*-----------------------------------------------------------*/ -239: -240: BaseType_t xTimerCreateTimerTask( void ) -241: { -BFD07A6C 4FE9 ADDIU SP, SP, -48 -BFD07A6E CBEB SW RA, 44(SP) -BFD07A70 CBCA SW S8, 40(SP) -BFD07A72 0FDD MOVE S8, SP -242: BaseType_t xReturn = pdFAIL; -BFD07A74 0020F81E SW ZERO, 32(S8) -243: -244: /* This function is called when the scheduler is started if -245: configUSE_TIMERS is set to 1. Check that the infrastructure used by the -246: timer service task has been created/initialised. If timers have already -247: been created then the initialisation will already have been performed. */ -248: prvCheckForValidListAndQueue(); -BFD07A78 35F477E8 JALS prvCheckForValidListAndQueue -BFD07A7A 0C0035F4 LHU T7, 3072(S4) -BFD07A7C 0C00 NOP -249: -250: if( xTimerQueue != NULL ) -BFD07A7E 8068FC5C LW V0, -32664(GP) -BFD07A82 001540E2 BEQZC V0, 0xBFD07AB0 -251: { -252: #if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 ) -253: { -254: /* Create the timer task, storing its handle in xTimerTaskHandle so -255: it can be returned by the xTimerGetTimerDaemonTaskHandle() function. */ -256: xReturn = xTaskCreate( prvTimerTask, "Tmr Svc", ( uint16_t ) configTIMER_TASK_STACK_DEPTH, NULL, ( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, &xTimerTaskHandle ); -257: } -258: #else -259: { -260: /* Create the timer task without storing its handle. */ -261: xReturn = xTaskCreate( prvTimerTask, "Tmr Svc", ( uint16_t ) configTIMER_TASK_STACK_DEPTH, NULL, ( ( UBaseType_t ) configTIMER_TASK_PRIORITY ) | portPRIVILEGE_BIT, NULL); -BFD07A86 ED02 LI V0, 2 -BFD07A88 C844 SW V0, 16(SP) -BFD07A8A C805 SW ZERO, 20(SP) -BFD07A8C C806 SW ZERO, 24(SP) -BFD07A8E C807 SW ZERO, 28(SP) -BFD07A90 BFD141A2 LUI V0, 0xBFD1 -BFD07A92 3082BFD1 LDC1 F30, 12418(S1) -BFD07A94 97393082 ADDIU A0, V0, -26823 -BFD07A96 41A29739 BEQ T9, T9, 0xBFD0FDDE -BFD07A98 BFD141A2 LUI V0, 0xBFD1 -BFD07A9A 30A2BFD1 LDC1 F30, 12450(S1) -BFD07A9C 9AE030A2 ADDIU A1, V0, -25888 -BFD07A9E 30C09AE0 SWC1 F23, 12480(ZERO) -BFD07AA0 017C30C0 ADDIU A2, ZERO, 380 -BFD07AA4 0CE0 MOVE A3, ZERO -BFD07AA6 0A9A77E8 JALS xTaskGenericCreate -BFD07AA8 0A9A LBU A1, 10(S1) -BFD07AAA 0C00 NOP -BFD07AAC 0020F85E SW V0, 32(S8) -262: } -263: #endif -264: } -265: else -266: { -267: mtCOVERAGE_TEST_MARKER(); -268: } -269: -270: configASSERT( xReturn ); -BFD07AB0 0020FC5E LW V0, 32(S8) -BFD07AB4 000940A2 BNEZC V0, 0xBFD07ACA -BFD07AB8 BFD141A2 LUI V0, 0xBFD1 -BFD07ABA 3082BFD1 LDC1 F30, 12418(S1) -BFD07ABC 9AE83082 ADDIU A0, V0, -25880 -BFD07ABE 30A09AE8 SWC1 F23, 12448(T0) -BFD07AC0 010E30A0 ADDIU A1, ZERO, 270 -BFD07AC4 4B7E77E8 JALS vAssertCalled -BFD07AC6 4B7E LW K1, 120(SP) -BFD07AC8 0C00 NOP -271: return xReturn; -BFD07ACA 0020FC5E LW V0, 32(S8) -272: } -BFD07ACE 0FBE MOVE SP, S8 -BFD07AD0 4BEB LW RA, 44(SP) -BFD07AD2 4BCA LW S8, 40(SP) -BFD07AD4 4C19 ADDIU SP, SP, 48 -BFD07AD6 459F JR16 RA -BFD07AD8 0C00 NOP -273: /*-----------------------------------------------------------*/ -274: -275: TimerHandle_t xTimerCreate( const char * const pcTimerName, const TickType_t xTimerPeriodInTicks, const UBaseType_t uxAutoReload, void * const pvTimerID, TimerCallbackFunction_t pxCallbackFunction ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -276: { -BFD061D8 4FF1 ADDIU SP, SP, -32 -BFD061DA CBE7 SW RA, 28(SP) -BFD061DC CBC6 SW S8, 24(SP) -BFD061DE 0FDD MOVE S8, SP -BFD061E0 0020F89E SW A0, 32(S8) -BFD061E4 0024F8BE SW A1, 36(S8) -BFD061E8 0028F8DE SW A2, 40(S8) -BFD061EC 002CF8FE SW A3, 44(S8) -277: Timer_t *pxNewTimer; -278: -279: /* Allocate the timer structure. */ -280: if( xTimerPeriodInTicks == ( TickType_t ) 0U ) -BFD061F0 0024FC5E LW V0, 36(S8) -BFD061F4 000440A2 BNEZC V0, 0xBFD06200 -281: { -282: pxNewTimer = NULL; -BFD061F8 0010F81E SW ZERO, 16(S8) -BFD061FC CC2E B 0xBFD0625A -BFD061FE 0C00 NOP -283: } -284: else -285: { -286: pxNewTimer = ( Timer_t * ) pvPortMalloc( sizeof( Timer_t ) ); -BFD06200 EE28 LI A0, 40 -BFD06202 111677E8 JALS pvPortMalloc -BFD06204 0C001116 ADDI T0, S6, 3072 -BFD06206 0C00 NOP -BFD06208 0010F85E SW V0, 16(S8) -287: if( pxNewTimer != NULL ) -BFD0620C 0010FC5E LW V0, 16(S8) -BFD06210 002340E2 BEQZC V0, 0xBFD0625A -288: { -289: /* Ensure the infrastructure used by the timer service task has been -290: created/initialised. */ -291: prvCheckForValidListAndQueue(); -BFD06214 35F477E8 JALS prvCheckForValidListAndQueue -BFD06216 0C0035F4 LHU T7, 3072(S4) -BFD06218 0C00 NOP -292: -293: /* Initialise the timer structure members using the function parameters. */ -294: pxNewTimer->pcTimerName = pcTimerName; -BFD0621A 0010FC5E LW V0, 16(S8) -BFD0621E 0020FC7E LW V1, 32(S8) -BFD06222 E9A0 SW V1, 0(V0) -295: pxNewTimer->xTimerPeriodInTicks = xTimerPeriodInTicks; -BFD06224 0010FC5E LW V0, 16(S8) -BFD06228 0024FC7E LW V1, 36(S8) -BFD0622C E9A6 SW V1, 24(V0) -296: pxNewTimer->uxAutoReload = uxAutoReload; -BFD0622E 0010FC5E LW V0, 16(S8) -BFD06232 0028FC7E LW V1, 40(S8) -BFD06236 E9A7 SW V1, 28(V0) -297: pxNewTimer->pvTimerID = pvTimerID; -BFD06238 0010FC5E LW V0, 16(S8) -BFD0623C 002CFC7E LW V1, 44(S8) -BFD06240 E9A8 SW V1, 32(V0) -298: pxNewTimer->pxCallbackFunction = pxCallbackFunction; -BFD06242 0010FC5E LW V0, 16(S8) -BFD06246 0030FC7E LW V1, 48(S8) -BFD0624A E9A9 SW V1, 36(V0) -299: vListInitialiseItem( &( pxNewTimer->xTimerListItem ) ); -BFD0624C 0010FC5E LW V0, 16(S8) -BFD06250 6D22 ADDIU V0, V0, 4 -BFD06252 0C82 MOVE A0, V0 -BFD06254 4EE677E8 JALS vListInitialiseItem -BFD06256 4EE6 ADDIU S7, S7, 3 -BFD06258 0C00 NOP -300: -301: traceTIMER_CREATE( pxNewTimer ); -302: } -303: else -304: { -305: traceTIMER_CREATE_FAILED(); -306: } -307: } -308: -309: /* 0 is not a valid value for xTimerPeriodInTicks. */ -310: configASSERT( ( xTimerPeriodInTicks > 0 ) ); -BFD0625A 0024FC5E LW V0, 36(S8) -BFD0625E 000940A2 BNEZC V0, 0xBFD06274 -BFD06262 BFD141A2 LUI V0, 0xBFD1 -BFD06264 3082BFD1 LDC1 F30, 12418(S1) -BFD06266 9AE83082 ADDIU A0, V0, -25880 -BFD06268 30A09AE8 SWC1 F23, 12448(T0) -BFD0626A 013630A0 ADDIU A1, ZERO, 310 -BFD0626E 4B7E77E8 JALS vAssertCalled -BFD06270 4B7E LW K1, 120(SP) -BFD06272 0C00 NOP -311: -312: return ( TimerHandle_t ) pxNewTimer; -BFD06274 0010FC5E LW V0, 16(S8) -313: } -BFD06278 0FBE MOVE SP, S8 -BFD0627A 4BE7 LW RA, 28(SP) -BFD0627C 4BC6 LW S8, 24(SP) -BFD0627E 4C11 ADDIU SP, SP, 32 -BFD06280 459F JR16 RA -BFD06282 0C00 NOP -314: /*-----------------------------------------------------------*/ -315: -316: BaseType_t xTimerGenericCommand( TimerHandle_t xTimer, const BaseType_t xCommandID, const TickType_t xOptionalValue, BaseType_t * const pxHigherPriorityTaskWoken, const TickType_t xTicksToWait ) -317: { -BFD05A1C 4FE9 ADDIU SP, SP, -48 -BFD05A1E CBEB SW RA, 44(SP) -BFD05A20 CBCA SW S8, 40(SP) -BFD05A22 0FDD MOVE S8, SP -BFD05A24 0030F89E SW A0, 48(S8) -BFD05A28 0034F8BE SW A1, 52(S8) -BFD05A2C 0038F8DE SW A2, 56(S8) -BFD05A30 003CF8FE SW A3, 60(S8) -318: BaseType_t xReturn = pdFAIL; -BFD05A34 0010F81E SW ZERO, 16(S8) -319: DaemonTaskMessage_t xMessage; -320: -321: /* Send a message to the timer service task to perform a particular action -322: on a particular timer definition. */ -323: if( xTimerQueue != NULL ) -BFD05A38 8068FC5C LW V0, -32664(GP) -BFD05A3C 004740E2 BEQZC V0, 0xBFD05ACE -324: { -325: /* Send a command to the timer service task to start the xTimer timer. */ -326: xMessage.xMessageID = xCommandID; -BFD05A40 0034FC5E LW V0, 52(S8) -BFD05A44 0014F85E SW V0, 20(S8) -327: xMessage.u.xTimerParameters.xMessageValue = xOptionalValue; -BFD05A48 0038FC5E LW V0, 56(S8) -BFD05A4C 0018F85E SW V0, 24(S8) -328: xMessage.u.xTimerParameters.pxTimer = ( Timer_t * ) xTimer; -BFD05A50 0030FC5E LW V0, 48(S8) -BFD05A54 001CF85E SW V0, 28(S8) -329: -330: if( xCommandID < tmrFIRST_FROM_ISR_COMMAND ) -BFD05A58 0034FC5E LW V0, 52(S8) -BFD05A5C 00069042 SLTI V0, V0, 6 -BFD05A60 002740E2 BEQZC V0, 0xBFD05AB2 -331: { -332: if( xTaskGetSchedulerState() == taskSCHEDULER_RUNNING ) -BFD05A64 4A8E77E8 JALS xTaskGetSchedulerState -BFD05A66 4A8E LW S4, 56(SP) -BFD05A68 0C00 NOP -BFD05A6A 0C62 MOVE V1, V0 -BFD05A6C ED02 LI V0, 2 -BFD05A6E 0011B443 BNE V1, V0, 0xBFD05A94 -BFD05A70 0C000011 SLL ZERO, S1, 1 -BFD05A72 0C00 NOP -333: { -334: xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xTicksToWait ); -BFD05A74 8068FC7C LW V1, -32664(GP) -BFD05A78 0014305E ADDIU V0, S8, 20 -BFD05A7C 0C83 MOVE A0, V1 -BFD05A7E 0CA2 MOVE A1, V0 -BFD05A80 0040FCDE LW A2, 64(S8) -BFD05A84 0CE0 MOVE A3, ZERO -BFD05A86 06A277E8 JALS xQueueGenericSend -BFD05A88 06A2 ADDU A1, S1, V0 -BFD05A8A 0C00 NOP -BFD05A8C 0010F85E SW V0, 16(S8) -BFD05A90 CC1E B 0xBFD05ACE -BFD05A92 0C00 NOP -335: } -336: else -337: { -338: xReturn = xQueueSendToBack( xTimerQueue, &xMessage, tmrNO_DELAY ); -BFD05A94 8068FC7C LW V1, -32664(GP) -BFD05A98 0014305E ADDIU V0, S8, 20 -BFD05A9C 0C83 MOVE A0, V1 -BFD05A9E 0CA2 MOVE A1, V0 -BFD05AA0 0CC0 MOVE A2, ZERO -BFD05AA2 0CE0 MOVE A3, ZERO -BFD05AA4 06A277E8 JALS xQueueGenericSend -BFD05AA6 06A2 ADDU A1, S1, V0 -BFD05AA8 0C00 NOP -BFD05AAA 0010F85E SW V0, 16(S8) -BFD05AAE CC0F B 0xBFD05ACE -BFD05AB0 0C00 NOP -339: } -340: } -341: else -342: { -343: xReturn = xQueueSendToBackFromISR( xTimerQueue, &xMessage, pxHigherPriorityTaskWoken ); -BFD05AB2 8068FC7C LW V1, -32664(GP) -BFD05AB6 0014305E ADDIU V0, S8, 20 -BFD05ABA 0C83 MOVE A0, V1 -BFD05ABC 0CA2 MOVE A1, V0 -BFD05ABE 003CFCDE LW A2, 60(S8) -BFD05AC2 0CE0 MOVE A3, ZERO -BFD05AC4 11EA77E8 JALS xQueueGenericSendFromISR -BFD05AC6 0C0011EA ADDI T7, T2, 3072 -BFD05AC8 0C00 NOP -BFD05ACA 0010F85E SW V0, 16(S8) -344: } -345: -346: traceTIMER_COMMAND_SEND( xTimer, xCommandID, xOptionalValue, xReturn ); -347: } -348: else -349: { -350: mtCOVERAGE_TEST_MARKER(); -351: } -352: -353: return xReturn; -BFD05ACE 0010FC5E LW V0, 16(S8) -354: } -BFD05AD2 0FBE MOVE SP, S8 -BFD05AD4 4BEB LW RA, 44(SP) -BFD05AD6 4BCA LW S8, 40(SP) -BFD05AD8 4C19 ADDIU SP, SP, 48 -BFD05ADA 459F JR16 RA -BFD05ADC 0C00 NOP -355: /*-----------------------------------------------------------*/ -356: -357: #if ( INCLUDE_xTimerGetTimerDaemonTaskHandle == 1 ) -358: -359: TaskHandle_t xTimerGetTimerDaemonTaskHandle( void ) -360: { -361: /* If xTimerGetTimerDaemonTaskHandle() is called before the scheduler has been -362: started, then xTimerTaskHandle will be NULL. */ -363: configASSERT( ( xTimerTaskHandle != NULL ) ); -364: return xTimerTaskHandle; -365: } -366: -367: #endif -368: /*-----------------------------------------------------------*/ -369: -370: const char * pcTimerGetTimerName( TimerHandle_t xTimer ) -371: { -BFD09B04 4FF9 ADDIU SP, SP, -16 -BFD09B06 CBC3 SW S8, 12(SP) -BFD09B08 0FDD MOVE S8, SP -BFD09B0A 0010F89E SW A0, 16(S8) -372: Timer_t *pxTimer = ( Timer_t * ) xTimer; -BFD09B0E 0010FC5E LW V0, 16(S8) -BFD09B12 0000F85E SW V0, 0(S8) -373: -374: return pxTimer->pcTimerName; -BFD09B16 0000FC5E LW V0, 0(S8) -BFD09B1A 6920 LW V0, 0(V0) -375: } -BFD09B1C 0FBE MOVE SP, S8 -BFD09B1E 4BC3 LW S8, 12(SP) -BFD09B20 4C09 ADDIU SP, SP, 16 -BFD09B22 459F JR16 RA -BFD09B24 0C00 NOP -376: /*-----------------------------------------------------------*/ -377: -378: static void prvProcessExpiredTimer( const TickType_t xNextExpireTime, const TickType_t xTimeNow ) -379: { -BFD05F24 4FED ADDIU SP, SP, -40 -BFD05F26 CBE9 SW RA, 36(SP) -BFD05F28 CBC8 SW S8, 32(SP) -BFD05F2A 0FDD MOVE S8, SP -BFD05F2C 0028F89E SW A0, 40(S8) -BFD05F30 002CF8BE SW A1, 44(S8) -380: BaseType_t xResult; -381: Timer_t * const pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); -BFD05F34 8060FC5C LW V0, -32672(GP) -BFD05F38 6923 LW V0, 12(V0) -BFD05F3A 6923 LW V0, 12(V0) -BFD05F3C 0018F85E SW V0, 24(S8) -382: -383: /* Remove the timer from the list of active timers. A check has already -384: been performed to ensure the list is not empty. */ -385: ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); -BFD05F40 0018FC5E LW V0, 24(S8) -BFD05F44 6D22 ADDIU V0, V0, 4 -BFD05F46 0C82 MOVE A0, V0 -BFD05F48 00C877E8 JALS uxListRemove -BFD05F4A 0C0000C8 SLL A2, T0, 1 -BFD05F4C 0C00 NOP -386: traceTIMER_EXPIRED( pxTimer ); -387: -388: /* If the timer is an auto reload timer then calculate the next -389: expiry time and re-insert the timer in the list of active timers. */ -390: if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) -BFD05F4E 0018FC5E LW V0, 24(S8) -BFD05F52 69A7 LW V1, 28(V0) -BFD05F54 ED01 LI V0, 1 -BFD05F56 002FB443 BNE V1, V0, 0xBFD05FB8 -BFD05F58 0C00002F SLL AT, T7, 1 -BFD05F5A 0C00 NOP -391: { -392: /* The timer is inserted into a list using a time relative to anything -393: other than the current time. It will therefore be inserted into the -394: correct list relative to the time this task thinks it is now. */ -395: if( prvInsertTimerInActiveList( pxTimer, ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ), xTimeNow, xNextExpireTime ) == pdTRUE ) -BFD05F5C 0018FC5E LW V0, 24(S8) -BFD05F60 69A6 LW V1, 24(V0) -BFD05F62 0028FC5E LW V0, 40(S8) -BFD05F66 0526 ADDU V0, V1, V0 -BFD05F68 0018FC9E LW A0, 24(S8) -BFD05F6C 0CA2 MOVE A1, V0 -BFD05F6E 002CFCDE LW A2, 44(S8) -BFD05F72 0028FCFE LW A3, 40(S8) -BFD05F76 2BE477E8 JALS prvInsertTimerInActiveList -BFD05F78 2BE4 LHU A3, 8(A2) -BFD05F7A 0C00 NOP -BFD05F7C 0C62 MOVE V1, V0 -BFD05F7E ED01 LI V0, 1 -BFD05F80 001AB443 BNE V1, V0, 0xBFD05FB8 -BFD05F82 0C00001A SLL ZERO, K0, 1 -BFD05F84 0C00 NOP -396: { -397: /* The timer expired before it was added to the active timer -398: list. Reload it now. */ -399: xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xNextExpireTime, NULL, tmrNO_DELAY ); -BFD05F86 C804 SW ZERO, 16(SP) -BFD05F88 0018FC9E LW A0, 24(S8) -BFD05F8C 0CA0 MOVE A1, ZERO -BFD05F8E 0028FCDE LW A2, 40(S8) -BFD05F92 0CE0 MOVE A3, ZERO -BFD05F94 2D0E77E8 JALS xTimerGenericCommand -BFD05F96 2D0E ANDI V0, S0, 0x8000 -BFD05F98 0C00 NOP -BFD05F9A 001CF85E SW V0, 28(S8) -400: configASSERT( xResult ); -BFD05F9E 001CFC5E LW V0, 28(S8) -BFD05FA2 000940A2 BNEZC V0, 0xBFD05FB8 -BFD05FA6 BFD141A2 LUI V0, 0xBFD1 -BFD05FA8 3082BFD1 LDC1 F30, 12418(S1) -BFD05FAA 9AE83082 ADDIU A0, V0, -25880 -BFD05FAC 30A09AE8 SWC1 F23, 12448(T0) -BFD05FAE 019030A0 ADDIU A1, ZERO, 400 -BFD05FB2 4B7E77E8 JALS vAssertCalled -BFD05FB4 4B7E LW K1, 120(SP) -BFD05FB6 0C00 NOP -401: ( void ) xResult; -402: } -403: else -404: { -405: mtCOVERAGE_TEST_MARKER(); -406: } -407: } -408: else -409: { -410: mtCOVERAGE_TEST_MARKER(); -411: } -412: -413: /* Call the timer callback. */ -414: pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); -BFD05FB8 0018FC5E LW V0, 24(S8) -BFD05FBC 6929 LW V0, 36(V0) -BFD05FBE 0018FC9E LW A0, 24(S8) -BFD05FC2 45E2 JALRS16 V0 -BFD05FC4 0C00 NOP -415: } -BFD05FC6 0FBE MOVE SP, S8 -BFD05FC8 4BE9 LW RA, 36(SP) -BFD05FCA 4BC8 LW S8, 32(SP) -BFD05FCC 4C15 ADDIU SP, SP, 40 -BFD05FCE 459F JR16 RA -BFD05FD0 0C00 NOP -416: /*-----------------------------------------------------------*/ -417: -418: static void prvTimerTask( void *pvParameters ) -419: { -BFD09738 4FF1 ADDIU SP, SP, -32 -BFD0973A CBE7 SW RA, 28(SP) -BFD0973C CBC6 SW S8, 24(SP) -BFD0973E 0FDD MOVE S8, SP -BFD09740 0020F89E SW A0, 32(S8) -420: TickType_t xNextExpireTime; -421: BaseType_t xListWasEmpty; -422: -423: /* Just to avoid compiler warnings. */ -424: ( void ) pvParameters; -425: -426: for( ;; ) -427: { -428: /* Query the timers list to see if it contains any timers, and if so, -429: obtain the time at which the next timer will expire. */ -430: xNextExpireTime = prvGetNextExpireTime( &xListWasEmpty ); -BFD09744 0014305E ADDIU V0, S8, 20 -BFD09748 0C82 MOVE A0, V0 -BFD0974A 47EE77E8 JALS prvGetNextExpireTime -BFD0974E 0C00 NOP -BFD09750 0010F85E SW V0, 16(S8) -431: -432: /* If a timer has expired, process it. Otherwise, block this task -433: until either a timer does expire, or a command is received. */ -434: prvProcessTimerOrBlockTask( xNextExpireTime, xListWasEmpty ); -BFD09754 0014FC5E LW V0, 20(S8) -BFD09758 0010FC9E LW A0, 16(S8) -BFD0975C 0CA2 MOVE A1, V0 -BFD0975E 2D7077E8 JALS prvProcessTimerOrBlockTask -BFD09760 2D70 ANDI V0, A3, 0x80 -BFD09762 0C00 NOP -435: -436: /* Empty the command queue. */ -437: prvProcessReceivedCommands(); -BFD09764 0B9A77E8 JALS prvProcessReceivedCommands -BFD09766 0B9A LBU A3, 10(S1) -BFD09768 0C00 NOP -438: } -BFD0976A CFEC B 0xBFD09744 -BFD0976C 0C00 NOP -439: } -440: /*-----------------------------------------------------------*/ -441: -442: static void prvProcessTimerOrBlockTask( const TickType_t xNextExpireTime, const BaseType_t xListWasEmpty ) -443: { -BFD05AE0 4FED ADDIU SP, SP, -40 -BFD05AE2 CBE9 SW RA, 36(SP) -BFD05AE4 CBC8 SW S8, 32(SP) -BFD05AE6 0FDD MOVE S8, SP -BFD05AE8 0028F89E SW A0, 40(S8) -BFD05AEC 002CF8BE SW A1, 44(S8) -444: TickType_t xTimeNow; -445: BaseType_t xTimerListsWereSwitched; -446: -447: vTaskSuspendAll(); -BFD05AF0 4EF477E8 JALS vTaskSuspendAll -BFD05AF2 4EF4 ADDIU S7, S7, -6 -BFD05AF4 0C00 NOP -448: { -449: /* Obtain the time now to make an assessment as to whether the timer -450: has expired or not. If obtaining the time causes the lists to switch -451: then don't process this timer as any timers that remained in the list -452: when the lists were switched will have been processed within the -453: prvSampleTimeNow() function. */ -454: xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); -BFD05AF6 0018305E ADDIU V0, S8, 24 -BFD05AFA 0C82 MOVE A0, V0 -BFD05AFC 42A877E8 JALS prvSampleTimeNow -BFD05AFE 0C0042A8 BC2T 2, 0xBFD07302 -BFD05B00 0C00 NOP -BFD05B02 0010F85E SW V0, 16(S8) -455: if( xTimerListsWereSwitched == pdFALSE ) -BFD05B06 0018FC5E LW V0, 24(S8) -BFD05B0A 003D40A2 BNEZC V0, 0xBFD05B88 -456: { -457: /* The tick count has not overflowed, has the timer expired? */ -458: if( ( xListWasEmpty == pdFALSE ) && ( xNextExpireTime <= xTimeNow ) ) -BFD05B0E 002CFC5E LW V0, 44(S8) -BFD05B12 001440A2 BNEZC V0, 0xBFD05B3E -BFD05B16 0028FC7E LW V1, 40(S8) -BFD05B1A 0010FC5E LW V0, 16(S8) -BFD05B1E 13900062 SLTU V0, V0, V1 -BFD05B20 40A21390 ADDI GP, S0, 16546 -BFD05B22 000C40A2 BNEZC V0, 0xBFD05B3E -459: { -460: ( void ) xTaskResumeAll(); -BFD05B26 158E77E8 JALS xTaskResumeAll -BFD05B28 0C00158E LBU T4, 3072(T6) -BFD05B2A 0C00 NOP -461: prvProcessExpiredTimer( xNextExpireTime, xTimeNow ); -BFD05B2C 0028FC9E LW A0, 40(S8) -BFD05B30 0010FCBE LW A1, 16(S8) -BFD05B34 2F9277E8 JALS prvProcessExpiredTimer -BFD05B36 2F92 ANDI A3, S1, 0x2 -BFD05B38 0C00 NOP -BFD05B3A CC2C B 0xBFD05B94 -BFD05B3C 0C00 NOP -462: } -463: else -464: { -465: /* The tick count has not overflowed, and the next expire -466: time has not been reached yet. This task should therefore -467: block to wait for the next expire time or a command to be -468: received - whichever comes first. The following line cannot -469: be reached unless xNextExpireTime > xTimeNow, except in the -470: case when the current timer list is empty. */ -471: vQueueWaitForMessageRestricted( xTimerQueue, ( xNextExpireTime - xTimeNow ), xListWasEmpty ); -BFD05B3E 8068FC7C LW V1, -32664(GP) -BFD05B42 0028FC9E LW A0, 40(S8) -BFD05B46 0010FC5E LW V0, 16(S8) -BFD05B4A 0529 SUBU V0, A0, V0 -BFD05B4C 0C83 MOVE A0, V1 -BFD05B4E 0CA2 MOVE A1, V0 -BFD05B50 002CFCDE LW A2, 44(S8) -BFD05B54 349477E8 JALS vQueueWaitForMessageRestricted -BFD05B56 0C003494 LHU A0, 3072(S4) -BFD05B58 0C00 NOP -472: -473: if( xTaskResumeAll() == pdFALSE ) -BFD05B5A 158E77E8 JALS xTaskResumeAll -BFD05B5C 0C00158E LBU T4, 3072(T6) -BFD05B5E 0C00 NOP -BFD05B60 001740A2 BNEZC V0, 0xBFD05B92 -474: { -475: /* Yield to wait for either a command to arrive, or the -476: block time to expire. If a command arrived between the -477: critical section being exited and this yield then the yield -478: will not cause the task to block. */ -479: portYIELD_WITHIN_API(); -BFD05B64 4E7677E8 JALS ulPortGetCP0Cause -BFD05B66 4E76 ADDIU S3, S3, -5 -BFD05B68 0C00 NOP -BFD05B6A 0014F85E SW V0, 20(S8) -BFD05B6E 0014FC5E LW V0, 20(S8) -BFD05B72 01005042 ORI V0, V0, 256 -BFD05B76 0014F85E SW V0, 20(S8) -BFD05B7A 0014FC9E LW A0, 20(S8) -BFD05B7E 4E8677E8 JALS vPortSetCP0Cause -BFD05B80 4E86 ADDIU S4, S4, 3 -BFD05B82 0C00 NOP -BFD05B84 CC07 B 0xBFD05B94 -BFD05B86 0C00 NOP -BFD05B92 0C00 NOP -480: } -481: else -482: { -483: mtCOVERAGE_TEST_MARKER(); -484: } -485: } -486: } -487: else -488: { -489: ( void ) xTaskResumeAll(); -BFD05B88 158E77E8 JALS xTaskResumeAll -BFD05B8A 0C00158E LBU T4, 3072(T6) -BFD05B8C 0C00 NOP -BFD05B8E CC02 B 0xBFD05B94 -BFD05B90 0C00 NOP -490: } -491: } -492: } -BFD05B94 0FBE MOVE SP, S8 -BFD05B96 4BE9 LW RA, 36(SP) -BFD05B98 4BC8 LW S8, 32(SP) -BFD05B9A 4C15 ADDIU SP, SP, 40 -BFD05B9C 459F JR16 RA -BFD05B9E 0C00 NOP -493: /*-----------------------------------------------------------*/ -494: -495: static TickType_t prvGetNextExpireTime( BaseType_t * const pxListWasEmpty ) -496: { -BFD08FDC 4FF9 ADDIU SP, SP, -16 -BFD08FDE CBC3 SW S8, 12(SP) -BFD08FE0 0FDD MOVE S8, SP -BFD08FE2 0010F89E SW A0, 16(S8) -497: TickType_t xNextExpireTime; -498: -499: /* Timers are listed in expiry time order, with the head of the list -500: referencing the task that will expire first. Obtain the time at which -501: the timer with the nearest expiry time will expire. If there are no -502: active timers then just set the next expire time to 0. That will cause -503: this task to unblock when the tick count overflows, at which point the -504: timer lists will be switched and the next expiry time can be -505: re-assessed. */ -506: *pxListWasEmpty = listLIST_IS_EMPTY( pxCurrentTimerList ); -BFD08FE6 8060FC5C LW V0, -32672(GP) -BFD08FEA 6920 LW V0, 0(V0) -BFD08FEC 0001B062 SLTIU V1, V0, 1 -BFD08FF0 0010FC5E LW V0, 16(S8) -BFD08FF4 E9A0 SW V1, 0(V0) -507: if( *pxListWasEmpty == pdFALSE ) -BFD08FF6 0010FC5E LW V0, 16(S8) -BFD08FFA 6920 LW V0, 0(V0) -BFD08FFC 000840A2 BNEZC V0, 0xBFD09010 -508: { -509: xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); -BFD09000 8060FC5C LW V0, -32672(GP) -BFD09004 6923 LW V0, 12(V0) -BFD09006 6920 LW V0, 0(V0) -BFD09008 0000F85E SW V0, 0(S8) -BFD0900C CC03 B 0xBFD09014 -BFD0900E 0C00 NOP -510: } -511: else -512: { -513: /* Ensure the task unblocks when the tick count rolls over. */ -514: xNextExpireTime = ( TickType_t ) 0U; -BFD09010 0000F81E SW ZERO, 0(S8) -515: } -516: -517: return xNextExpireTime; -BFD09014 0000FC5E LW V0, 0(S8) -518: } -BFD09018 0FBE MOVE SP, S8 -BFD0901A 4BC3 LW S8, 12(SP) -BFD0901C 4C09 ADDIU SP, SP, 16 -BFD0901E 459F JR16 RA -BFD09020 0C00 NOP -519: /*-----------------------------------------------------------*/ -520: -521: static TickType_t prvSampleTimeNow( BaseType_t * const pxTimerListsWereSwitched ) -522: { -BFD08550 4FF1 ADDIU SP, SP, -32 -BFD08552 CBE7 SW RA, 28(SP) -BFD08554 CBC6 SW S8, 24(SP) -BFD08556 0FDD MOVE S8, SP -BFD08558 0020F89E SW A0, 32(S8) -523: TickType_t xTimeNow; -524: PRIVILEGED_DATA static TickType_t xLastTime = ( TickType_t ) 0U; /*lint !e956 Variable is only accessible to one task. */ -525: -526: xTimeNow = xTaskGetTickCount(); -BFD0855C 4CCA77E8 JALS xTaskGetTickCount -BFD0855E 4CCA ADDIU A2, A2, 5 -BFD08560 0C00 NOP -BFD08562 0010F85E SW V0, 16(S8) -527: -528: if( xTimeNow < xLastTime ) -BFD08566 806CFC5C LW V0, -32660(GP) -BFD0856A 0010FC7E LW V1, 16(S8) -BFD0856E 13900043 SLTU V0, V1, V0 -BFD08570 40E21390 ADDI GP, S0, 16610 -BFD08572 000940E2 BEQZC V0, 0xBFD08588 -529: { -530: prvSwitchTimerLists(); -BFD08576 1F7877E8 JALS prvSwitchTimerLists -BFD08578 0C001F78 LB K1, 3072(T8) -BFD0857A 0C00 NOP -531: *pxTimerListsWereSwitched = pdTRUE; -BFD0857C 0020FC5E LW V0, 32(S8) -BFD08580 ED81 LI V1, 1 -BFD08582 E9A0 SW V1, 0(V0) -BFD08584 CC04 B 0xBFD0858E -BFD08586 0C00 NOP -532: } -533: else -534: { -535: *pxTimerListsWereSwitched = pdFALSE; -BFD08588 0020FC5E LW V0, 32(S8) -BFD0858C E820 SW S0, 0(V0) -536: } -537: -538: xLastTime = xTimeNow; -BFD0858E 0010FC5E LW V0, 16(S8) -BFD08592 806CF85C SW V0, -32660(GP) -539: -540: return xTimeNow; -BFD08596 0010FC5E LW V0, 16(S8) -541: } -BFD0859A 0FBE MOVE SP, S8 -BFD0859C 4BE7 LW RA, 28(SP) -BFD0859E 4BC6 LW S8, 24(SP) -BFD085A0 4C11 ADDIU SP, SP, 32 -BFD085A2 459F JR16 RA -BFD085A4 0C00 NOP -542: /*-----------------------------------------------------------*/ -543: -544: static BaseType_t prvInsertTimerInActiveList( Timer_t * const pxTimer, const TickType_t xNextExpiryTime, const TickType_t xTimeNow, const TickType_t xCommandTime ) -545: { -BFD057C8 4FF1 ADDIU SP, SP, -32 -BFD057CA CBE7 SW RA, 28(SP) -BFD057CC CBC6 SW S8, 24(SP) -BFD057CE 0FDD MOVE S8, SP -BFD057D0 0020F89E SW A0, 32(S8) -BFD057D4 0024F8BE SW A1, 36(S8) -BFD057D8 0028F8DE SW A2, 40(S8) -BFD057DC 002CF8FE SW A3, 44(S8) -546: BaseType_t xProcessTimerNow = pdFALSE; -BFD057E0 0010F81E SW ZERO, 16(S8) -547: -548: listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xNextExpiryTime ); -BFD057E4 0020FC5E LW V0, 32(S8) -BFD057E8 0024FC7E LW V1, 36(S8) -BFD057EC E9A1 SW V1, 4(V0) -549: listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); -BFD057EE 0020FC5E LW V0, 32(S8) -BFD057F2 0020FC7E LW V1, 32(S8) -BFD057F6 E9A4 SW V1, 16(V0) -550: -551: if( xNextExpiryTime <= xTimeNow ) -BFD057F8 0024FC7E LW V1, 36(S8) -BFD057FC 0028FC5E LW V0, 40(S8) -BFD05800 13900062 SLTU V0, V0, V1 -BFD05802 40A21390 ADDI GP, S0, 16546 -BFD05804 001D40A2 BNEZC V0, 0xBFD05842 -552: { -553: /* Has the expiry time elapsed between the command to start/reset a -554: timer was issued, and the time the command was processed? */ -555: if( ( xTimeNow - xCommandTime ) >= pxTimer->xTimerPeriodInTicks ) -BFD05808 0028FC7E LW V1, 40(S8) -BFD0580C 002CFC5E LW V0, 44(S8) -BFD05810 05A7 SUBU V1, V1, V0 -BFD05812 0020FC5E LW V0, 32(S8) -BFD05816 6926 LW V0, 24(V0) -BFD05818 13900043 SLTU V0, V1, V0 -BFD0581A 40A21390 ADDI GP, S0, 16546 -BFD0581C 000540A2 BNEZC V0, 0xBFD0582A -556: { -557: /* The time between a command being issued and the command being -558: processed actually exceeds the timers period. */ -559: xProcessTimerNow = pdTRUE; -BFD05820 ED01 LI V0, 1 -BFD05822 0010F85E SW V0, 16(S8) -BFD05824 CC2C0010 EXT ZERO, S0, 16, 26 -BFD05826 CC2C B 0xBFD05880 -BFD05828 0C00 NOP -560: } -561: else -562: { -563: vListInsert( pxOverflowTimerList, &( pxTimer->xTimerListItem ) ); -BFD0582A 8064FC7C LW V1, -32668(GP) -BFD0582E 0020FC5E LW V0, 32(S8) -BFD05832 6D22 ADDIU V0, V0, 4 -BFD05834 0C83 MOVE A0, V1 -BFD05836 0CA2 MOVE A1, V0 -BFD05838 304077E8 JALS vListInsert -BFD0583A 0C003040 ADDIU V0, ZERO, 3072 -BFD0583C 0C00 NOP -BFD0583E CC20 B 0xBFD05880 -BFD05840 0C00 NOP -564: } -565: } -566: else -567: { -568: if( ( xTimeNow < xCommandTime ) && ( xNextExpiryTime >= xCommandTime ) ) -BFD05842 0028FC7E LW V1, 40(S8) -BFD05846 002CFC5E LW V0, 44(S8) -BFD0584A 13900043 SLTU V0, V1, V0 -BFD0584C 40E21390 ADDI GP, S0, 16610 -BFD0584E 000D40E2 BEQZC V0, 0xBFD0586C -BFD05852 0024FC7E LW V1, 36(S8) -BFD05856 002CFC5E LW V0, 44(S8) -BFD0585A 13900043 SLTU V0, V1, V0 -BFD0585C 40A21390 ADDI GP, S0, 16546 -BFD0585E 000540A2 BNEZC V0, 0xBFD0586C -569: { -570: /* If, since the command was issued, the tick count has overflowed -571: but the expiry time has not, then the timer must have already passed -572: its expiry time and should be processed immediately. */ -573: xProcessTimerNow = pdTRUE; -BFD05862 ED01 LI V0, 1 -BFD05864 0010F85E SW V0, 16(S8) -BFD05868 CC0B B 0xBFD05880 -BFD0586A 0C00 NOP -574: } -575: else -576: { -577: vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); -BFD0586C 8060FC7C LW V1, -32672(GP) -BFD05870 0020FC5E LW V0, 32(S8) -BFD05874 6D22 ADDIU V0, V0, 4 -BFD05876 0C83 MOVE A0, V1 -BFD05878 0CA2 MOVE A1, V0 -BFD0587A 304077E8 JALS vListInsert -BFD0587C 0C003040 ADDIU V0, ZERO, 3072 -BFD0587E 0C00 NOP -578: } -579: } -580: -581: return xProcessTimerNow; -BFD05880 0010FC5E LW V0, 16(S8) -582: } -BFD05884 0FBE MOVE SP, S8 -BFD05886 4BE7 LW RA, 28(SP) -BFD05888 4BC6 LW S8, 24(SP) -BFD0588A 4C11 ADDIU SP, SP, 32 -BFD0588C 459F JR16 RA -BFD0588E 0C00 NOP -583: /*-----------------------------------------------------------*/ -584: -585: static void prvProcessReceivedCommands( void ) -586: { -BFD01734 4FDD ADDIU SP, SP, -72 -BFD01736 CBF1 SW RA, 68(SP) -BFD01738 CBD0 SW S8, 64(SP) -BFD0173A 0FDD MOVE S8, SP -587: DaemonTaskMessage_t xMessage; -588: Timer_t *pxTimer; -589: BaseType_t xTimerListsWereSwitched, xResult; -590: TickType_t xTimeNow; -591: -592: while( xQueueReceive( xTimerQueue, &xMessage, tmrNO_DELAY ) != pdFAIL ) /*lint !e603 xMessage does not have to be initialised as it is passed out, not in, and it is not used unless xQueueReceive() returns pdTRUE. */ -BFD0173C CCE0 B 0xBFD018FE -BFD0173E 0C00 NOP -BFD018FE 8068FC7C LW V1, -32664(GP) -BFD01902 0028305E ADDIU V0, S8, 40 -BFD01906 0C83 MOVE A0, V1 -BFD01908 0CA2 MOVE A1, V0 -BFD0190A 0CC0 MOVE A2, ZERO -BFD0190C 0CE0 MOVE A3, ZERO -BFD0190E 081E77E8 JALS xQueueGenericReceive -BFD01910 081E LBU S0, 14(S1) -BFD01912 0C00 NOP -BFD01914 FF1440A2 BNEZC V0, 0xBFD01740 -BFD01916 0FBEFF14 LW T8, 4030(S4) -593: { -594: #if ( INCLUDE_xTimerPendFunctionCall == 1 ) -595: { -596: /* Negative commands are pended function calls rather than timer -597: commands. */ -598: if( xMessage.xMessageID < ( BaseType_t ) 0 ) -BFD01740 0028FC5E LW V0, 40(S8) -BFD01744 001F4042 BGEZ V0, 0xBFD01786 -BFD01746 0C00001F SLL ZERO, RA, 1 -BFD01748 0C00 NOP -599: { -600: const CallbackParameters_t * const pxCallback = &( xMessage.u.xCallbackParameters ); -BFD0174A 0028305E ADDIU V0, S8, 40 -BFD0174E 6D22 ADDIU V0, V0, 4 -BFD01750 0018F85E SW V0, 24(S8) -601: -602: /* The timer uses the xCallbackParameters member to request a -603: callback be executed. Check the callback is not NULL. */ -604: configASSERT( pxCallback ); -BFD01754 0018FC5E LW V0, 24(S8) -BFD01758 000940A2 BNEZC V0, 0xBFD0176E -BFD0175C BFD141A2 LUI V0, 0xBFD1 -BFD0175E 3082BFD1 LDC1 F30, 12418(S1) -BFD01760 9AE83082 ADDIU A0, V0, -25880 -BFD01762 30A09AE8 SWC1 F23, 12448(T0) -BFD01764 025C30A0 ADDIU A1, ZERO, 604 -BFD01768 4B7E77E8 JALS vAssertCalled -BFD0176A 4B7E LW K1, 120(SP) -BFD0176C 0C00 NOP -605: -606: /* Call the function. */ -607: pxCallback->pxCallbackFunction( pxCallback->pvParameter1, pxCallback->ulParameter2 ); -BFD0176E 0018FC5E LW V0, 24(S8) -BFD01772 6920 LW V0, 0(V0) -BFD01774 0018FC7E LW V1, 24(S8) -BFD01778 6A31 LW A0, 4(V1) -BFD0177A 0018FC7E LW V1, 24(S8) -BFD0177E 69B2 LW V1, 8(V1) -BFD01780 0CA3 MOVE A1, V1 -BFD01782 45E2 JALRS16 V0 -BFD01784 0C00 NOP -608: } -609: else -610: { -611: mtCOVERAGE_TEST_MARKER(); -612: } -613: } -614: #endif /* INCLUDE_xTimerPendFunctionCall */ -615: -616: /* Commands that are positive are timer commands rather than pended -617: function calls. */ -618: if( xMessage.xMessageID >= ( BaseType_t ) 0 ) -BFD01786 0028FC5E LW V0, 40(S8) -BFD0178A 00B84002 BLTZ V0, 0xBFD018FE -BFD0178C 0C0000B8 SLL A1, T8, 1 -BFD0178E 0C00 NOP -619: { -620: /* The messages uses the xTimerParameters member to work on a -621: software timer. */ -622: pxTimer = xMessage.u.xTimerParameters.pxTimer; -BFD01790 0030FC5E LW V0, 48(S8) -BFD01794 001CF85E SW V0, 28(S8) -623: -624: if( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) == pdFALSE ) -BFD01798 001CFC5E LW V0, 28(S8) -BFD0179C 6925 LW V0, 20(V0) -BFD0179E 000740E2 BEQZC V0, 0xBFD017B0 -625: { -626: /* The timer is in a list, remove it. */ -627: ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); -BFD017A2 001CFC5E LW V0, 28(S8) -BFD017A6 6D22 ADDIU V0, V0, 4 -BFD017A8 0C82 MOVE A0, V0 -BFD017AA 00C877E8 JALS uxListRemove -BFD017AC 0C0000C8 SLL A2, T0, 1 -BFD017AE 0C00 NOP -628: } -629: else -630: { -631: mtCOVERAGE_TEST_MARKER(); -632: } -633: -634: traceTIMER_COMMAND_RECEIVED( pxTimer, xMessage.xMessageID, xMessage.u.xTimerParameters.xMessageValue ); -635: -636: /* In this case the xTimerListsWereSwitched parameter is not used, but -637: it must be present in the function call. prvSampleTimeNow() must be -638: called after the message is received from xTimerQueue so there is no -639: possibility of a higher priority task adding a message to the message -640: queue with a time that is ahead of the timer daemon task (because it -641: pre-empted the timer daemon task after the xTimeNow value was set). */ -642: xTimeNow = prvSampleTimeNow( &xTimerListsWereSwitched ); -BFD017B0 0038305E ADDIU V0, S8, 56 -BFD017B4 0C82 MOVE A0, V0 -BFD017B6 42A877E8 JALS prvSampleTimeNow -BFD017B8 0C0042A8 BC2T 2, 0xBFD02FBC -BFD017BA 0C00 NOP -BFD017BC 0020F85E SW V0, 32(S8) -643: -644: switch( xMessage.xMessageID ) -BFD017C0 0028FC5E LW V0, 40(S8) -BFD017C4 000AB062 SLTIU V1, V0, 10 -BFD017C8 008C40E3 BEQZC V1, 0xBFD018E4 -BFD017CC 25A4 SLL V1, V0, 2 -BFD017CE BFD041A2 LUI V0, 0xBFD0 -BFD017D0 3042BFD0 LDC1 F30, 12354(S0) -BFD017D2 17DC3042 ADDIU V0, V0, 6108 -BFD017D4 052617DC LBU S8, 1318(GP) -BFD017D6 0526 ADDU V0, V1, V0 -BFD017D8 6920 LW V0, 0(V0) -BFD017DA 45A2 JRC V0 -BFD017DC BFD01805 SB ZERO, -16432(A1) -BFD017DE 1805BFD0 LDC1 F30, 6149(S0) -BFD017E0 BFD01805 SB ZERO, -16432(A1) -BFD017E2 1805BFD0 LDC1 F30, 6149(S0) -BFD017E4 BFD01805 SB ZERO, -16432(A1) -BFD017E6 18EBBFD0 LDC1 F30, 6379(S0) -BFD017E8 BFD018EB SB A3, -16432(T3) -BFD017EA 188DBFD0 LDC1 F30, 6285(S0) -BFD017EC BFD0188D SB A0, -16432(T5) -BFD017EE 18D7BFD0 LDC1 F30, 6359(S0) -BFD017F0 BFD018D7 SB A2, -16432(S7) -BFD017F2 1805BFD0 LDC1 F30, 6149(S0) -BFD017F4 BFD01805 SB ZERO, -16432(A1) -BFD017F6 1805BFD0 LDC1 F30, 6149(S0) -BFD017F8 BFD01805 SB ZERO, -16432(A1) -BFD017FA 18EBBFD0 LDC1 F30, 6379(S0) -BFD017FC BFD018EB SB A3, -16432(T3) -BFD017FE 188DBFD0 LDC1 F30, 6285(S0) -BFD01800 BFD0188D SB A0, -16432(T5) -BFD01802 FC7EBFD0 LDC1 F30, -898(S0) -645: { -646: case tmrCOMMAND_START : -647: case tmrCOMMAND_START_FROM_ISR : -648: case tmrCOMMAND_RESET : -649: case tmrCOMMAND_RESET_FROM_ISR : -650: case tmrCOMMAND_START_DONT_TRACE : -651: /* Start or restart a timer. */ -652: if( prvInsertTimerInActiveList( pxTimer, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, xTimeNow, xMessage.u.xTimerParameters.xMessageValue ) == pdTRUE ) -BFD01804 002CFC7E LW V1, 44(S8) -BFD01808 001CFC5E LW V0, 28(S8) -BFD0180C 6926 LW V0, 24(V0) -BFD0180E 05A6 ADDU V1, V1, V0 -BFD01810 002CFC5E LW V0, 44(S8) -BFD01814 001CFC9E LW A0, 28(S8) -BFD01818 0CA3 MOVE A1, V1 -BFD0181A 0020FCDE LW A2, 32(S8) -BFD0181E 0CE2 MOVE A3, V0 -BFD01820 2BE477E8 JALS prvInsertTimerInActiveList -BFD01822 2BE4 LHU A3, 8(A2) -BFD01824 0C00 NOP -BFD01826 0C62 MOVE V1, V0 -BFD01828 ED01 LI V0, 1 -BFD0182A 0061B443 BNE V1, V0, 0xBFD018F0 -BFD0182C 0C000061 SLL V1, AT, 1 -BFD0182E 0C00 NOP -653: { -654: /* The timer expired before it was added to the active -655: timer list. Process it now. */ -656: pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); -BFD01830 001CFC5E LW V0, 28(S8) -BFD01834 6929 LW V0, 36(V0) -BFD01836 001CFC9E LW A0, 28(S8) -BFD0183A 45E2 JALRS16 V0 -BFD0183C 0C00 NOP -657: traceTIMER_EXPIRED( pxTimer ); -658: -659: if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) -BFD0183E 001CFC5E LW V0, 28(S8) -BFD01842 69A7 LW V1, 28(V0) -BFD01844 ED01 LI V0, 1 -BFD01846 0056B443 BNE V1, V0, 0xBFD018F6 -BFD01848 0C000056 SLL V0, S6, 1 -BFD0184A 0C00 NOP -660: { -661: xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xMessage.u.xTimerParameters.xMessageValue + pxTimer->xTimerPeriodInTicks, NULL, tmrNO_DELAY ); -BFD0184C 002CFC7E LW V1, 44(S8) -BFD01850 001CFC5E LW V0, 28(S8) -BFD01854 6926 LW V0, 24(V0) -BFD01856 0526 ADDU V0, V1, V0 -BFD01858 C804 SW ZERO, 16(SP) -BFD0185A 001CFC9E LW A0, 28(S8) -BFD0185E 0CA0 MOVE A1, ZERO -BFD01860 0CC2 MOVE A2, V0 -BFD01862 0CE0 MOVE A3, ZERO -BFD01864 2D0E77E8 JALS xTimerGenericCommand -BFD01866 2D0E ANDI V0, S0, 0x8000 -BFD01868 0C00 NOP -BFD0186A 0024F85E SW V0, 36(S8) -662: configASSERT( xResult ); -BFD0186E 0024FC5E LW V0, 36(S8) -BFD01872 004340A2 BNEZC V0, 0xBFD018FC -BFD01876 BFD141A2 LUI V0, 0xBFD1 -BFD01878 3082BFD1 LDC1 F30, 12418(S1) -BFD0187A 9AE83082 ADDIU A0, V0, -25880 -BFD0187C 30A09AE8 SWC1 F23, 12448(T0) -BFD0187E 029630A0 ADDIU A1, ZERO, 662 -BFD01882 4B7E77E8 JALS vAssertCalled -BFD01884 4B7E LW K1, 120(SP) -BFD01886 0C00 NOP -663: ( void ) xResult; -664: } -665: else -666: { -667: mtCOVERAGE_TEST_MARKER(); -668: } -669: } -670: else -671: { -672: mtCOVERAGE_TEST_MARKER(); -673: } -674: break; -BFD01888 CC3A B 0xBFD018FE -BFD0188A 0C00 NOP -BFD018F0 0C00 NOP -BFD018F2 CC05 B 0xBFD018FE -BFD018F4 0C00 NOP -BFD018F6 0C00 NOP -BFD018F8 CC02 B 0xBFD018FE -BFD018FA 0C00 NOP -BFD018FC 0C00 NOP -675: -676: case tmrCOMMAND_STOP : -677: case tmrCOMMAND_STOP_FROM_ISR : -678: /* The timer has already been removed from the active list. -679: There is nothing to do here. */ -680: break; -BFD018EA 0C00 NOP -BFD018EC CC08 B 0xBFD018FE -BFD018EE 0C00 NOP -681: -682: case tmrCOMMAND_CHANGE_PERIOD : -683: case tmrCOMMAND_CHANGE_PERIOD_FROM_ISR : -684: pxTimer->xTimerPeriodInTicks = xMessage.u.xTimerParameters.xMessageValue; -BFD0188C 002CFC7E LW V1, 44(S8) -BFD01890 001CFC5E LW V0, 28(S8) -BFD01894 E9A6 SW V1, 24(V0) -685: configASSERT( ( pxTimer->xTimerPeriodInTicks > 0 ) ); -BFD01896 001CFC5E LW V0, 28(S8) -BFD0189A 6926 LW V0, 24(V0) -BFD0189C 000940A2 BNEZC V0, 0xBFD018B2 -BFD018A0 BFD141A2 LUI V0, 0xBFD1 -BFD018A2 3082BFD1 LDC1 F30, 12418(S1) -BFD018A4 9AE83082 ADDIU A0, V0, -25880 -BFD018A6 30A09AE8 SWC1 F23, 12448(T0) -BFD018A8 02AD30A0 ADDIU A1, ZERO, 685 -BFD018AC 4B7E77E8 JALS vAssertCalled -BFD018AE 4B7E LW K1, 120(SP) -BFD018B0 0C00 NOP -686: -687: /* The new period does not really have a reference, and can be -688: longer or shorter than the old one. The command time is -689: therefore set to the current time, and as the period cannot be -690: zero the next expiry time can only be in the future, meaning -691: (unlike for the xTimerStart() case above) there is no fail case -692: that needs to be handled here. */ -693: ( void ) prvInsertTimerInActiveList( pxTimer, ( xTimeNow + pxTimer->xTimerPeriodInTicks ), xTimeNow, xTimeNow ); -BFD018B2 001CFC5E LW V0, 28(S8) -BFD018B6 69A6 LW V1, 24(V0) -BFD018B8 0020FC5E LW V0, 32(S8) -BFD018BC 0526 ADDU V0, V1, V0 -BFD018BE 001CFC9E LW A0, 28(S8) -BFD018C2 0CA2 MOVE A1, V0 -BFD018C4 0020FCDE LW A2, 32(S8) -BFD018C8 0020FCFE LW A3, 32(S8) -BFD018CC 2BE477E8 JALS prvInsertTimerInActiveList -BFD018CE 2BE4 LHU A3, 8(A2) -BFD018D0 0C00 NOP -694: break; -BFD018D2 CC15 B 0xBFD018FE -BFD018D4 0C00 NOP -695: -696: case tmrCOMMAND_DELETE : -697: /* The timer has already been removed from the active list, -698: just free up the memory. */ -699: vPortFree( pxTimer ); -BFD018D6 001CFC9E LW A0, 28(S8) -BFD018DA 2FEA77E8 JALS vPortFree -BFD018DC 2FEA ANDI A3, A2, 0x20 -BFD018DE 0C00 NOP -700: break; -BFD018E0 CC0E B 0xBFD018FE -BFD018E2 0C00 NOP -701: -702: default : -703: /* Don't expect to get here. */ -704: break; -BFD018E4 0C00 NOP -BFD018E6 CC0B B 0xBFD018FE -BFD018E8 0C00 NOP -705: } -706: } -707: } -708: } -BFD01918 0FBE MOVE SP, S8 -BFD0191A 4BF1 LW RA, 68(SP) -BFD0191C 4BD0 LW S8, 64(SP) -BFD0191E 4C25 ADDIU SP, SP, 72 -BFD01920 459F JR16 RA -BFD01922 0C00 NOP -709: /*-----------------------------------------------------------*/ -710: -711: static void prvSwitchTimerLists( void ) -712: { -BFD03EF0 4FE5 ADDIU SP, SP, -56 -BFD03EF2 CBED SW RA, 52(SP) -BFD03EF4 CBCC SW S8, 48(SP) -BFD03EF6 0FDD MOVE S8, SP -713: TickType_t xNextExpireTime, xReloadTime; -714: List_t *pxTemp; -715: Timer_t *pxTimer; -716: BaseType_t xResult; -717: -718: /* The tick count has overflowed. The timer lists must be switched. -719: If there are any timers still referenced from the current timer list -720: then they must have expired and should be processed before the lists -721: are switched. */ -722: while( listLIST_IS_EMPTY( pxCurrentTimerList ) == pdFALSE ) -BFD03EF8 CC61 B 0xBFD03FBC -BFD03EFA 0C00 NOP -BFD03FBC 8060FC5C LW V0, -32672(GP) -BFD03FC0 6920 LW V0, 0(V0) -BFD03FC2 FF9B40A2 BNEZC V0, 0xBFD03EFC -BFD03FC4 FC5CFF9B LW GP, -932(K1) -723: { -724: xNextExpireTime = listGET_ITEM_VALUE_OF_HEAD_ENTRY( pxCurrentTimerList ); -BFD03EFC 8060FC5C LW V0, -32672(GP) -BFD03F00 6923 LW V0, 12(V0) -BFD03F02 6920 LW V0, 0(V0) -BFD03F04 0018F85E SW V0, 24(S8) -725: -726: /* Remove the timer from the list. */ -727: pxTimer = ( Timer_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxCurrentTimerList ); -BFD03F08 8060FC5C LW V0, -32672(GP) -BFD03F0C 6923 LW V0, 12(V0) -BFD03F0E 6923 LW V0, 12(V0) -BFD03F10 001CF85E SW V0, 28(S8) -728: ( void ) uxListRemove( &( pxTimer->xTimerListItem ) ); -BFD03F14 001CFC5E LW V0, 28(S8) -BFD03F18 6D22 ADDIU V0, V0, 4 -BFD03F1A 0C82 MOVE A0, V0 -BFD03F1C 00C877E8 JALS uxListRemove -BFD03F1E 0C0000C8 SLL A2, T0, 1 -BFD03F20 0C00 NOP -729: traceTIMER_EXPIRED( pxTimer ); -730: -731: /* Execute its callback, then send a command to restart the timer if -732: it is an auto-reload timer. It cannot be restarted here as the lists -733: have not yet been switched. */ -734: pxTimer->pxCallbackFunction( ( TimerHandle_t ) pxTimer ); -BFD03F22 001CFC5E LW V0, 28(S8) -BFD03F26 6929 LW V0, 36(V0) -BFD03F28 001CFC9E LW A0, 28(S8) -BFD03F2C 45E2 JALRS16 V0 -BFD03F2E 0C00 NOP -735: -736: if( pxTimer->uxAutoReload == ( UBaseType_t ) pdTRUE ) -BFD03F30 001CFC5E LW V0, 28(S8) -BFD03F34 69A7 LW V1, 28(V0) -BFD03F36 ED01 LI V0, 1 -BFD03F38 0040B443 BNE V1, V0, 0xBFD03FBC -BFD03F3A 0C000040 SLL V0, ZERO, 1 -BFD03F3C 0C00 NOP -737: { -738: /* Calculate the reload value, and if the reload value results in -739: the timer going into the same timer list then it has already expired -740: and the timer should be re-inserted into the current list so it is -741: processed again within this loop. Otherwise a command should be sent -742: to restart the timer to ensure it is only inserted into a list after -743: the lists have been swapped. */ -744: xReloadTime = ( xNextExpireTime + pxTimer->xTimerPeriodInTicks ); -BFD03F3E 001CFC5E LW V0, 28(S8) -BFD03F42 69A6 LW V1, 24(V0) -BFD03F44 0018FC5E LW V0, 24(S8) -BFD03F48 0526 ADDU V0, V1, V0 -BFD03F4A 0020F85E SW V0, 32(S8) -745: if( xReloadTime > xNextExpireTime ) -BFD03F4E 0020FC7E LW V1, 32(S8) -BFD03F52 0018FC5E LW V0, 24(S8) -BFD03F56 13900062 SLTU V0, V0, V1 -BFD03F58 40E21390 ADDI GP, S0, 16610 -BFD03F5A 001640E2 BEQZC V0, 0xBFD03F8A -746: { -747: listSET_LIST_ITEM_VALUE( &( pxTimer->xTimerListItem ), xReloadTime ); -BFD03F5E 001CFC5E LW V0, 28(S8) -BFD03F62 0020FC7E LW V1, 32(S8) -BFD03F66 E9A1 SW V1, 4(V0) -748: listSET_LIST_ITEM_OWNER( &( pxTimer->xTimerListItem ), pxTimer ); -BFD03F68 001CFC5E LW V0, 28(S8) -BFD03F6C 001CFC7E LW V1, 28(S8) -BFD03F70 E9A4 SW V1, 16(V0) -749: vListInsert( pxCurrentTimerList, &( pxTimer->xTimerListItem ) ); -BFD03F72 8060FC7C LW V1, -32672(GP) -BFD03F76 001CFC5E LW V0, 28(S8) -BFD03F7A 6D22 ADDIU V0, V0, 4 -BFD03F7C 0C83 MOVE A0, V1 -BFD03F7E 0CA2 MOVE A1, V0 -BFD03F80 304077E8 JALS vListInsert -BFD03F82 0C003040 ADDIU V0, ZERO, 3072 -BFD03F84 0C00 NOP -BFD03F86 CC1A B 0xBFD03FBC -BFD03F88 0C00 NOP -750: } -751: else -752: { -753: xResult = xTimerGenericCommand( pxTimer, tmrCOMMAND_START_DONT_TRACE, xNextExpireTime, NULL, tmrNO_DELAY ); -BFD03F8A C804 SW ZERO, 16(SP) -BFD03F8C 001CFC9E LW A0, 28(S8) -BFD03F90 0CA0 MOVE A1, ZERO -BFD03F92 0018FCDE LW A2, 24(S8) -BFD03F96 0CE0 MOVE A3, ZERO -BFD03F98 2D0E77E8 JALS xTimerGenericCommand -BFD03F9A 2D0E ANDI V0, S0, 0x8000 -BFD03F9C 0C00 NOP -BFD03F9E 0024F85E SW V0, 36(S8) -754: configASSERT( xResult ); -BFD03FA2 0024FC5E LW V0, 36(S8) -BFD03FA6 000940A2 BNEZC V0, 0xBFD03FBC -BFD03FAA BFD141A2 LUI V0, 0xBFD1 -BFD03FAC 3082BFD1 LDC1 F30, 12418(S1) -BFD03FAE 9AE83082 ADDIU A0, V0, -25880 -BFD03FB0 30A09AE8 SWC1 F23, 12448(T0) -BFD03FB2 02F230A0 ADDIU A1, ZERO, 754 -BFD03FB6 4B7E77E8 JALS vAssertCalled -BFD03FB8 4B7E LW K1, 120(SP) -BFD03FBA 0C00 NOP -755: ( void ) xResult; -756: } -757: } -758: else -759: { -760: mtCOVERAGE_TEST_MARKER(); -761: } -762: } -763: -764: pxTemp = pxCurrentTimerList; -BFD03FC6 8060FC5C LW V0, -32672(GP) -BFD03FCA 0028F85E SW V0, 40(S8) -765: pxCurrentTimerList = pxOverflowTimerList; -BFD03FCE 8064FC5C LW V0, -32668(GP) -BFD03FD2 8060F85C SW V0, -32672(GP) -766: pxOverflowTimerList = pxTemp; -BFD03FD6 0028FC5E LW V0, 40(S8) -BFD03FDA 8064F85C SW V0, -32668(GP) -767: } -BFD03FDE 0FBE MOVE SP, S8 -BFD03FE0 4BED LW RA, 52(SP) -BFD03FE2 4BCC LW S8, 48(SP) -BFD03FE4 4C1D ADDIU SP, SP, 56 -BFD03FE6 459F JR16 RA -BFD03FE8 0C00 NOP -768: /*-----------------------------------------------------------*/ -769: -770: static void prvCheckForValidListAndQueue( void ) -771: { -BFD06BE8 4FF5 ADDIU SP, SP, -24 -BFD06BEA CBE5 SW RA, 20(SP) -BFD06BEC CBC4 SW S8, 16(SP) -BFD06BEE 0FDD MOVE S8, SP -772: /* Check that the list from which active timers are referenced, and the -773: queue used to communicate with the timer service, have been -774: initialised. */ -775: taskENTER_CRITICAL(); -BFD06BF0 33B877E8 JALS vTaskEnterCritical -BFD06BF2 0C0033B8 ADDIU SP, T8, 3072 -BFD06BF4 0C00 NOP -776: { -777: if( xTimerQueue == NULL ) -BFD06BF6 8068FC5C LW V0, -32664(GP) -BFD06BFA 002F40A2 BNEZC V0, 0xBFD06C5C -778: { -779: vListInitialise( &xActiveTimerList1 ); -BFD06BFE BFD241A2 LUI V0, 0xBFD2 -BFD06C00 3082BFD2 LDC1 F30, 12418(S2) -BFD06C02 B9483082 ADDIU A0, V0, -18104 -BFD06C04 77E8B948 SDC1 F10, 30696(T0) -BFD06C06 457077E8 JALS vListInitialise -BFD06C08 4570 SWM16 0x3, 0(SP) -BFD06C0A 0C00 NOP -780: vListInitialise( &xActiveTimerList2 ); -BFD06C0C BFD241A2 LUI V0, 0xBFD2 -BFD06C0E 3082BFD2 LDC1 F30, 12418(S2) -BFD06C10 B95C3082 ADDIU A0, V0, -18084 -BFD06C12 77E8B95C SDC1 F10, 30696(GP) -BFD06C14 457077E8 JALS vListInitialise -BFD06C16 4570 SWM16 0x3, 0(SP) -BFD06C18 0C00 NOP -781: pxCurrentTimerList = &xActiveTimerList1; -BFD06C1A BFD241A2 LUI V0, 0xBFD2 -BFD06C1C 3042BFD2 LDC1 F30, 12354(S2) -BFD06C1E B9483042 ADDIU V0, V0, -18104 -BFD06C20 F85CB948 SDC1 F10, -1956(T0) -BFD06C22 8060F85C SW V0, -32672(GP) -782: pxOverflowTimerList = &xActiveTimerList2; -BFD06C26 BFD241A2 LUI V0, 0xBFD2 -BFD06C28 3042BFD2 LDC1 F30, 12354(S2) -BFD06C2A B95C3042 ADDIU V0, V0, -18084 -BFD06C2C F85CB95C SDC1 F10, -1956(GP) -BFD06C2E 8064F85C SW V0, -32668(GP) -783: xTimerQueue = xQueueCreate( ( UBaseType_t ) configTIMER_QUEUE_LENGTH, sizeof( DaemonTaskMessage_t ) ); -BFD06C32 EE05 LI A0, 5 -BFD06C34 EE90 LI A1, 16 -BFD06C36 0CC0 MOVE A2, ZERO -BFD06C38 1EFA77E8 JALS xQueueGenericCreate -BFD06C3A 0C001EFA LB S7, 3072(K0) -BFD06C3C 0C00 NOP -BFD06C3E 8068F85C SW V0, -32664(GP) -784: configASSERT( xTimerQueue ); -BFD06C42 8068FC5C LW V0, -32664(GP) -BFD06C46 000940A2 BNEZC V0, 0xBFD06C5C -BFD06C4A BFD141A2 LUI V0, 0xBFD1 -BFD06C4C 3082BFD1 LDC1 F30, 12418(S1) -BFD06C4E 9AE83082 ADDIU A0, V0, -25880 -BFD06C50 30A09AE8 SWC1 F23, 12448(T0) -BFD06C52 031030A0 ADDIU A1, ZERO, 784 -BFD06C56 4B7E77E8 JALS vAssertCalled -BFD06C58 4B7E LW K1, 120(SP) -BFD06C5A 0C00 NOP -785: -786: #if ( configQUEUE_REGISTRY_SIZE > 0 ) -787: { -788: if( xTimerQueue != NULL ) -789: { -790: vQueueAddToRegistry( xTimerQueue, "TmrQ" ); -791: } -792: else -793: { -794: mtCOVERAGE_TEST_MARKER(); -795: } -796: } -797: #endif /* configQUEUE_REGISTRY_SIZE */ -798: } -799: else -800: { -801: mtCOVERAGE_TEST_MARKER(); -802: } -803: } -804: taskEXIT_CRITICAL(); -BFD06C5C 40AA77E8 JALS vTaskExitCritical -BFD06C5E 0C0040AA BNEZC T2, 0xBFD08462 -BFD06C60 0C00 NOP -805: } -BFD06C62 0FBE MOVE SP, S8 -BFD06C64 4BE5 LW RA, 20(SP) -BFD06C66 4BC4 LW S8, 16(SP) -BFD06C68 4C0D ADDIU SP, SP, 24 -BFD06C6A 459F JR16 RA -BFD06C6C 0C00 NOP -806: /*-----------------------------------------------------------*/ -807: -808: BaseType_t xTimerIsTimerActive( TimerHandle_t xTimer ) -809: { -BFD093E0 4FF1 ADDIU SP, SP, -32 -BFD093E2 CBE7 SW RA, 28(SP) -BFD093E4 CBC6 SW S8, 24(SP) -BFD093E6 0FDD MOVE S8, SP -BFD093E8 0020F89E SW A0, 32(S8) -810: BaseType_t xTimerIsInActiveList; -811: Timer_t *pxTimer = ( Timer_t * ) xTimer; -BFD093EC 0020FC5E LW V0, 32(S8) -BFD093F0 0010F85E SW V0, 16(S8) -812: -813: /* Is the timer in the list of active timers? */ -814: taskENTER_CRITICAL(); -BFD093F4 33B877E8 JALS vTaskEnterCritical -BFD093F6 0C0033B8 ADDIU SP, T8, 3072 -BFD093F8 0C00 NOP -815: { -816: /* Checking to see if it is in the NULL list in effect checks to see if -817: it is referenced from either the current or the overflow timer lists in -818: one go, but the logic has to be reversed, hence the '!'. */ -819: xTimerIsInActiveList = ( BaseType_t ) !( listIS_CONTAINED_WITHIN( NULL, &( pxTimer->xTimerListItem ) ) ); -BFD093FA 0010FC5E LW V0, 16(S8) -BFD093FE 6925 LW V0, 20(V0) -BFD09400 13900040 SLTU V0, ZERO, V0 -BFD09402 F85E1390 ADDI GP, S0, -1954 -BFD09404 0014F85E SW V0, 20(S8) -820: } -821: taskEXIT_CRITICAL(); -BFD09408 40AA77E8 JALS vTaskExitCritical -BFD0940A 0C0040AA BNEZC T2, 0xBFD0AC0E -BFD0940C 0C00 NOP -822: -823: return xTimerIsInActiveList; -BFD0940E 0014FC5E LW V0, 20(S8) -824: } /*lint !e818 Can't be pointer to const due to the typedef. */ -BFD09412 0FBE MOVE SP, S8 -BFD09414 4BE7 LW RA, 28(SP) -BFD09416 4BC6 LW S8, 24(SP) -BFD09418 4C11 ADDIU SP, SP, 32 -BFD0941A 459F JR16 RA -BFD0941C 0C00 NOP -825: /*-----------------------------------------------------------*/ -826: -827: void *pvTimerGetTimerID( const TimerHandle_t xTimer ) -828: { -BFD0875C 4FF1 ADDIU SP, SP, -32 -BFD0875E CBE7 SW RA, 28(SP) -BFD08760 CBC6 SW S8, 24(SP) -BFD08762 0FDD MOVE S8, SP -BFD08764 0020F89E SW A0, 32(S8) -829: Timer_t * const pxTimer = ( Timer_t * ) xTimer; -BFD08768 0020FC5E LW V0, 32(S8) -BFD0876C 0010F85E SW V0, 16(S8) -830: void *pvReturn; -831: -832: configASSERT( xTimer ); -BFD08770 0020FC5E LW V0, 32(S8) -BFD08774 000940A2 BNEZC V0, 0xBFD0878A -BFD08778 BFD141A2 LUI V0, 0xBFD1 -BFD0877A 3082BFD1 LDC1 F30, 12418(S1) -BFD0877C 9AE83082 ADDIU A0, V0, -25880 -BFD0877E 30A09AE8 SWC1 F23, 12448(T0) -BFD08780 034030A0 ADDIU A1, ZERO, 832 -BFD08784 4B7E77E8 JALS vAssertCalled -BFD08786 4B7E LW K1, 120(SP) -BFD08788 0C00 NOP -833: -834: taskENTER_CRITICAL(); -BFD0878A 33B877E8 JALS vTaskEnterCritical -BFD0878C 0C0033B8 ADDIU SP, T8, 3072 -BFD0878E 0C00 NOP -835: { -836: pvReturn = pxTimer->pvTimerID; -BFD08790 0010FC5E LW V0, 16(S8) -BFD08794 6928 LW V0, 32(V0) -BFD08796 0014F85E SW V0, 20(S8) -837: } -838: taskEXIT_CRITICAL(); -BFD0879A 40AA77E8 JALS vTaskExitCritical -BFD0879C 0C0040AA BNEZC T2, 0xBFD09FA0 -BFD0879E 0C00 NOP -839: -840: return pvReturn; -BFD087A0 0014FC5E LW V0, 20(S8) -841: } -BFD087A4 0FBE MOVE SP, S8 -BFD087A6 4BE7 LW RA, 28(SP) -BFD087A8 4BC6 LW S8, 24(SP) -BFD087AA 4C11 ADDIU SP, SP, 32 -BFD087AC 459F JR16 RA -BFD087AE 0C00 NOP -842: /*-----------------------------------------------------------*/ -843: -844: void vTimerSetTimerID( TimerHandle_t xTimer, void *pvNewID ) -845: { -BFD087B0 4FF1 ADDIU SP, SP, -32 -BFD087B2 CBE7 SW RA, 28(SP) -BFD087B4 CBC6 SW S8, 24(SP) -BFD087B6 0FDD MOVE S8, SP -BFD087B8 0020F89E SW A0, 32(S8) -BFD087BC 0024F8BE SW A1, 36(S8) -846: Timer_t * const pxTimer = ( Timer_t * ) xTimer; -BFD087C0 0020FC5E LW V0, 32(S8) -BFD087C4 0010F85E SW V0, 16(S8) -847: -848: configASSERT( xTimer ); -BFD087C8 0020FC5E LW V0, 32(S8) -BFD087CC 000940A2 BNEZC V0, 0xBFD087E2 -BFD087D0 BFD141A2 LUI V0, 0xBFD1 -BFD087D2 3082BFD1 LDC1 F30, 12418(S1) -BFD087D4 9AE83082 ADDIU A0, V0, -25880 -BFD087D6 30A09AE8 SWC1 F23, 12448(T0) -BFD087D8 035030A0 ADDIU A1, ZERO, 848 -BFD087DC 4B7E77E8 JALS vAssertCalled -BFD087DE 4B7E LW K1, 120(SP) -BFD087E0 0C00 NOP -849: -850: taskENTER_CRITICAL(); -BFD087E2 33B877E8 JALS vTaskEnterCritical -BFD087E4 0C0033B8 ADDIU SP, T8, 3072 -BFD087E6 0C00 NOP -851: { -852: pxTimer->pvTimerID = pvNewID; -BFD087E8 0010FC5E LW V0, 16(S8) -BFD087EC 0024FC7E LW V1, 36(S8) -BFD087F0 E9A8 SW V1, 32(V0) -853: } -854: taskEXIT_CRITICAL(); -BFD087F2 40AA77E8 JALS vTaskExitCritical -BFD087F4 0C0040AA BNEZC T2, 0xBFD09FF8 -BFD087F6 0C00 NOP -855: } -BFD087F8 0FBE MOVE SP, S8 -BFD087FA 4BE7 LW RA, 28(SP) -BFD087FC 4BC6 LW S8, 24(SP) -BFD087FE 4C11 ADDIU SP, SP, 32 -BFD08800 459F JR16 RA -BFD08802 0C00 NOP -856: /*-----------------------------------------------------------*/ -857: -858: #if( INCLUDE_xTimerPendFunctionCall == 1 ) -859: -860: BaseType_t xTimerPendFunctionCallFromISR( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, BaseType_t *pxHigherPriorityTaskWoken ) -861: { -BFD07F64 4FE9 ADDIU SP, SP, -48 -BFD07F66 CBEB SW RA, 44(SP) -BFD07F68 CBCA SW S8, 40(SP) -BFD07F6A 0FDD MOVE S8, SP -BFD07F6C 0030F89E SW A0, 48(S8) -BFD07F70 0034F8BE SW A1, 52(S8) -BFD07F74 0038F8DE SW A2, 56(S8) -BFD07F78 003CF8FE SW A3, 60(S8) -BFD07F7A 3040003C SRL AT, GP, 6 -862: DaemonTaskMessage_t xMessage; -863: BaseType_t xReturn; -864: -865: /* Complete the message with the function parameters and post it to the -866: daemon task. */ -867: xMessage.xMessageID = tmrCOMMAND_EXECUTE_CALLBACK_FROM_ISR; -BFD07F7C FFFE3040 ADDIU V0, ZERO, -2 -BFD07F7E F85EFFFE LW RA, -1954(S8) -BFD07F80 0014F85E SW V0, 20(S8) -868: xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend; -BFD07F84 0030FC5E LW V0, 48(S8) -BFD07F88 0018F85E SW V0, 24(S8) -869: xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1; -BFD07F8C 0034FC5E LW V0, 52(S8) -BFD07F90 001CF85E SW V0, 28(S8) -870: xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2; -BFD07F94 0038FC5E LW V0, 56(S8) -BFD07F98 0020F85E SW V0, 32(S8) -871: -872: xReturn = xQueueSendFromISR( xTimerQueue, &xMessage, pxHigherPriorityTaskWoken ); -BFD07F9C 8068FC7C LW V1, -32664(GP) -BFD07FA0 0014305E ADDIU V0, S8, 20 -BFD07FA4 0C83 MOVE A0, V1 -BFD07FA6 0CA2 MOVE A1, V0 -BFD07FA8 003CFCDE LW A2, 60(S8) -BFD07FAC 0CE0 MOVE A3, ZERO -BFD07FAE 11EA77E8 JALS xQueueGenericSendFromISR -BFD07FB0 0C0011EA ADDI T7, T2, 3072 -BFD07FB2 0C00 NOP -BFD07FB4 0010F85E SW V0, 16(S8) -873: -874: tracePEND_FUNC_CALL_FROM_ISR( xFunctionToPend, pvParameter1, ulParameter2, xReturn ); -875: -876: return xReturn; -BFD07FB8 0010FC5E LW V0, 16(S8) -877: } -BFD07FBC 0FBE MOVE SP, S8 -BFD07FBE 4BEB LW RA, 44(SP) -BFD07FC0 4BCA LW S8, 40(SP) -BFD07FC2 4C19 ADDIU SP, SP, 48 -BFD07FC4 459F JR16 RA -BFD07FC6 0C00 NOP -878: -879: #endif /* INCLUDE_xTimerPendFunctionCall */ -880: /*-----------------------------------------------------------*/ -881: -882: #if( INCLUDE_xTimerPendFunctionCall == 1 ) -883: -884: BaseType_t xTimerPendFunctionCall( PendedFunction_t xFunctionToPend, void *pvParameter1, uint32_t ulParameter2, TickType_t xTicksToWait ) -885: { -BFD06D70 4FE9 ADDIU SP, SP, -48 -BFD06D72 CBEB SW RA, 44(SP) -BFD06D74 CBCA SW S8, 40(SP) -BFD06D76 0FDD MOVE S8, SP -BFD06D78 0030F89E SW A0, 48(S8) -BFD06D7C 0034F8BE SW A1, 52(S8) -BFD06D80 0038F8DE SW A2, 56(S8) -BFD06D84 003CF8FE SW A3, 60(S8) -886: DaemonTaskMessage_t xMessage; -887: BaseType_t xReturn; -888: -889: /* This function can only be called after a timer has been created or -890: after the scheduler has been started because, until then, the timer -891: queue does not exist. */ -892: configASSERT( xTimerQueue ); -BFD06D88 8068FC5C LW V0, -32664(GP) -BFD06D8C 000940A2 BNEZC V0, 0xBFD06DA2 -BFD06D90 BFD141A2 LUI V0, 0xBFD1 -BFD06D92 3082BFD1 LDC1 F30, 12418(S1) -BFD06D94 9AE83082 ADDIU A0, V0, -25880 -BFD06D96 30A09AE8 SWC1 F23, 12448(T0) -BFD06D98 037C30A0 ADDIU A1, ZERO, 892 -BFD06D9C 4B7E77E8 JALS vAssertCalled -BFD06D9E 4B7E LW K1, 120(SP) -BFD06DA0 0C00 NOP -893: -894: /* Complete the message with the function parameters and post it to the -895: daemon task. */ -896: xMessage.xMessageID = tmrCOMMAND_EXECUTE_CALLBACK; -BFD06DA2 ED7F LI V0, -1 -BFD06DA4 0014F85E SW V0, 20(S8) -897: xMessage.u.xCallbackParameters.pxCallbackFunction = xFunctionToPend; -BFD06DA8 0030FC5E LW V0, 48(S8) -BFD06DAC 0018F85E SW V0, 24(S8) -898: xMessage.u.xCallbackParameters.pvParameter1 = pvParameter1; -BFD06DB0 0034FC5E LW V0, 52(S8) -BFD06DB4 001CF85E SW V0, 28(S8) -899: xMessage.u.xCallbackParameters.ulParameter2 = ulParameter2; -BFD06DB8 0038FC5E LW V0, 56(S8) -BFD06DBC 0020F85E SW V0, 32(S8) -900: -901: xReturn = xQueueSendToBack( xTimerQueue, &xMessage, xTicksToWait ); -BFD06DC0 8068FC7C LW V1, -32664(GP) -BFD06DC4 0014305E ADDIU V0, S8, 20 -BFD06DC8 0C83 MOVE A0, V1 -BFD06DCA 0CA2 MOVE A1, V0 -BFD06DCC 003CFCDE LW A2, 60(S8) -BFD06DD0 0CE0 MOVE A3, ZERO -BFD06DD2 06A277E8 JALS xQueueGenericSend -BFD06DD4 06A2 ADDU A1, S1, V0 -BFD06DD6 0C00 NOP -BFD06DD8 0010F85E SW V0, 16(S8) -902: -903: tracePEND_FUNC_CALL( xFunctionToPend, pvParameter1, ulParameter2, xReturn ); -904: -905: return xReturn; -BFD06DDC 0010FC5E LW V0, 16(S8) -906: } -BFD06DE0 0FBE MOVE SP, S8 -BFD06DE2 4BEB LW RA, 44(SP) -BFD06DE4 4BCA LW S8, 40(SP) -BFD06DE6 4C19 ADDIU SP, SP, 48 -BFD06DE8 459F JR16 RA -BFD06DEA 0C00 NOP -907: -908: #endif /* INCLUDE_xTimerPendFunctionCall */ -909: /*-----------------------------------------------------------*/ -910: -911: /* This entire source file will be skipped if the application is not configured -912: to include software timer functionality. If you want to include software timer -913: functionality then ensure configUSE_TIMERS is set to 1 in FreeRTOSConfig.h. */ -914: #endif /* configUSE_TIMERS == 1 */ -915: -916: -917: ---- c:/e/dev/freertos/workingcopy/freertos/source/tasks.c --------------------------------------------- -1: /* -2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -3: All rights reserved -4: -5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -6: -7: This file is part of the FreeRTOS distribution. -8: -9: FreeRTOS is free software; you can redistribute it and/or modify it under -10: the terms of the GNU General Public License (version 2) as published by the -11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: /* Standard includes. */ -71: #include -72: #include -73: -74: /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -75: all the API functions to use the MPU wrappers. That should only be done when -76: task.h is included from an application file. */ -77: #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE -78: -79: /* FreeRTOS includes. */ -80: #include "FreeRTOS.h" -81: #include "task.h" -82: #include "timers.h" -83: #include "StackMacros.h" -84: -85: /* Lint e961 and e750 are suppressed as a MISRA exception justified because the -86: MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -87: header files above, but not in this file, in order to generate the correct -88: privileged Vs unprivileged linkage and placement. */ -89: #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ -90: -91: /* Set configUSE_STATS_FORMATTING_FUNCTIONS to 2 to include the stats formatting -92: functions but without including stdio.h here. */ -93: #if ( configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) -94: /* At the bottom of this file are two optional functions that can be used -95: to generate human readable text from the raw data generated by the -96: uxTaskGetSystemState() function. Note the formatting functions are provided -97: for convenience only, and are NOT considered part of the kernel. */ -98: #include -99: #endif /* configUSE_STATS_FORMATTING_FUNCTIONS == 1 ) */ -100: -101: /* Sanity check the configuration. */ -102: #if( configUSE_TICKLESS_IDLE != 0 ) -103: #if( INCLUDE_vTaskSuspend != 1 ) -104: #error INCLUDE_vTaskSuspend must be set to 1 if configUSE_TICKLESS_IDLE is not set to 0 -105: #endif /* INCLUDE_vTaskSuspend */ -106: #endif /* configUSE_TICKLESS_IDLE */ -107: -108: /* -109: * Defines the size, in words, of the stack allocated to the idle task. -110: */ -111: #define tskIDLE_STACK_SIZE configMINIMAL_STACK_SIZE -112: -113: #if( configUSE_PREEMPTION == 0 ) -114: /* If the cooperative scheduler is being used then a yield should not be -115: performed just because a higher priority task has been woken. */ -116: #define taskYIELD_IF_USING_PREEMPTION() -117: #else -118: #define taskYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API() -119: #endif -120: -121: /* Value that can be assigned to the eNotifyState member of the TCB. */ -122: typedef enum -123: { -124: eNotWaitingNotification = 0, -125: eWaitingNotification, -126: eNotified -127: } eNotifyValue; -128: -129: /* -130: * Task control block. A task control block (TCB) is allocated for each task, -131: * and stores task state information, including a pointer to the task's context -132: * (the task's run time environment, including register values) -133: */ -134: typedef struct tskTaskControlBlock -135: { -136: volatile StackType_t *pxTopOfStack; /*< Points to the location of the last item placed on the tasks stack. THIS MUST BE THE FIRST MEMBER OF THE TCB STRUCT. */ -137: -138: #if ( portUSING_MPU_WRAPPERS == 1 ) -139: xMPU_SETTINGS xMPUSettings; /*< The MPU settings are defined as part of the port layer. THIS MUST BE THE SECOND MEMBER OF THE TCB STRUCT. */ -140: BaseType_t xUsingStaticallyAllocatedStack; /* Set to pdTRUE if the stack is a statically allocated array, and pdFALSE if the stack is dynamically allocated. */ -141: #endif -142: -143: ListItem_t xGenericListItem; /*< The list that the state list item of a task is reference from denotes the state of that task (Ready, Blocked, Suspended ). */ -144: ListItem_t xEventListItem; /*< Used to reference a task from an event list. */ -145: UBaseType_t uxPriority; /*< The priority of the task. 0 is the lowest priority. */ -146: StackType_t *pxStack; /*< Points to the start of the stack. */ -147: char pcTaskName[ configMAX_TASK_NAME_LEN ];/*< Descriptive name given to the task when created. Facilitates debugging only. */ /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -148: -149: #if ( portSTACK_GROWTH > 0 ) -150: StackType_t *pxEndOfStack; /*< Points to the end of the stack on architectures where the stack grows up from low memory. */ -151: #endif -152: -153: #if ( portCRITICAL_NESTING_IN_TCB == 1 ) -154: UBaseType_t uxCriticalNesting; /*< Holds the critical section nesting depth for ports that do not maintain their own count in the port layer. */ -155: #endif -156: -157: #if ( configUSE_TRACE_FACILITY == 1 ) -158: UBaseType_t uxTCBNumber; /*< Stores a number that increments each time a TCB is created. It allows debuggers to determine when a task has been deleted and then recreated. */ -159: UBaseType_t uxTaskNumber; /*< Stores a number specifically for use by third party trace code. */ -160: #endif -161: -162: #if ( configUSE_MUTEXES == 1 ) -163: UBaseType_t uxBasePriority; /*< The priority last assigned to the task - used by the priority inheritance mechanism. */ -164: UBaseType_t uxMutexesHeld; -165: #endif -166: -167: #if ( configUSE_APPLICATION_TASK_TAG == 1 ) -168: TaskHookFunction_t pxTaskTag; -169: #endif -170: -171: #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS > 0 ) -172: void *pvThreadLocalStoragePointers[ configNUM_THREAD_LOCAL_STORAGE_POINTERS ]; -173: #endif -174: -175: #if ( configGENERATE_RUN_TIME_STATS == 1 ) -176: uint32_t ulRunTimeCounter; /*< Stores the amount of time the task has spent in the Running state. */ -177: #endif -178: -179: #if ( configUSE_NEWLIB_REENTRANT == 1 ) -180: /* Allocate a Newlib reent structure that is specific to this task. -181: Note Newlib support has been included by popular demand, but is not -182: used by the FreeRTOS maintainers themselves. FreeRTOS is not -183: responsible for resulting newlib operation. User must be familiar with -184: newlib and must provide system-wide implementations of the necessary -185: stubs. Be warned that (at the time of writing) the current newlib design -186: implements a system-wide malloc() that must be provided with locks. */ -187: struct _reent xNewLib_reent; -188: #endif -189: -190: #if ( configUSE_TASK_NOTIFICATIONS == 1 ) -191: volatile uint32_t ulNotifiedValue; -192: volatile eNotifyValue eNotifyState; -193: #endif -194: -195: } tskTCB; -196: -197: /* The old tskTCB name is maintained above then typedefed to the new TCB_t name -198: below to enable the use of older kernel aware debuggers. */ -199: typedef tskTCB TCB_t; -200: -201: /* -202: * Some kernel aware debuggers require the data the debugger needs access to to -203: * be global, rather than file scope. -204: */ -205: #ifdef portREMOVE_STATIC_QUALIFIER -206: #define static -207: #endif -208: -209: /*lint -e956 A manual analysis and inspection has been used to determine which -210: static variables must be declared volatile. */ -211: -212: PRIVILEGED_DATA TCB_t * volatile pxCurrentTCB = NULL; -213: -214: /* Lists for ready and blocked tasks. --------------------*/ -215: PRIVILEGED_DATA static List_t pxReadyTasksLists[ configMAX_PRIORITIES ];/*< Prioritised ready tasks. */ -216: PRIVILEGED_DATA static List_t xDelayedTaskList1; /*< Delayed tasks. */ -217: PRIVILEGED_DATA static List_t xDelayedTaskList2; /*< Delayed tasks (two lists are used - one for delays that have overflowed the current tick count. */ -218: PRIVILEGED_DATA static List_t * volatile pxDelayedTaskList; /*< Points to the delayed task list currently being used. */ -219: PRIVILEGED_DATA static List_t * volatile pxOverflowDelayedTaskList; /*< Points to the delayed task list currently being used to hold tasks that have overflowed the current tick count. */ -220: PRIVILEGED_DATA static List_t xPendingReadyList; /*< Tasks that have been readied while the scheduler was suspended. They will be moved to the ready list when the scheduler is resumed. */ -221: -222: #if ( INCLUDE_vTaskDelete == 1 ) -223: -224: PRIVILEGED_DATA static List_t xTasksWaitingTermination; /*< Tasks that have been deleted - but their memory not yet freed. */ -225: PRIVILEGED_DATA static volatile UBaseType_t uxTasksDeleted = ( UBaseType_t ) 0U; -226: -227: #endif -228: -229: #if ( INCLUDE_vTaskSuspend == 1 ) -230: -231: PRIVILEGED_DATA static List_t xSuspendedTaskList; /*< Tasks that are currently suspended. */ -232: -233: #endif -234: -235: #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) -236: -237: PRIVILEGED_DATA static TaskHandle_t xIdleTaskHandle = NULL; /*< Holds the handle of the idle task. The idle task is created automatically when the scheduler is started. */ -238: -239: #endif -240: -241: /* Other file private variables. --------------------------------*/ -242: PRIVILEGED_DATA static volatile UBaseType_t uxCurrentNumberOfTasks = ( UBaseType_t ) 0U; -243: PRIVILEGED_DATA static volatile TickType_t xTickCount = ( TickType_t ) 0U; -244: PRIVILEGED_DATA static volatile UBaseType_t uxTopReadyPriority = tskIDLE_PRIORITY; -245: PRIVILEGED_DATA static volatile BaseType_t xSchedulerRunning = pdFALSE; -246: PRIVILEGED_DATA static volatile UBaseType_t uxPendedTicks = ( UBaseType_t ) 0U; -247: PRIVILEGED_DATA static volatile BaseType_t xYieldPending = pdFALSE; -248: PRIVILEGED_DATA static volatile BaseType_t xNumOfOverflows = ( BaseType_t ) 0; -249: PRIVILEGED_DATA static UBaseType_t uxTaskNumber = ( UBaseType_t ) 0U; -250: PRIVILEGED_DATA static volatile TickType_t xNextTaskUnblockTime = ( TickType_t ) 0U; /* Initialised to portMAX_DELAY; before the scheduler starts. */ -251: -252: /* Context switches are held pending while the scheduler is suspended. Also, -253: interrupts must not manipulate the xGenericListItem of a TCB, or any of the -254: lists the xGenericListItem can be referenced from, if the scheduler is suspended. -255: If an interrupt needs to unblock a task while the scheduler is suspended then it -256: moves the task's event list item into the xPendingReadyList, ready for the -257: kernel to move the task from the pending ready list into the real ready list -258: when the scheduler is unsuspended. The pending ready list itself can only be -259: accessed from a critical section. */ -260: PRIVILEGED_DATA static volatile UBaseType_t uxSchedulerSuspended = ( UBaseType_t ) pdFALSE; -261: -262: #if ( configGENERATE_RUN_TIME_STATS == 1 ) -263: -264: PRIVILEGED_DATA static uint32_t ulTaskSwitchedInTime = 0UL; /*< Holds the value of a timer/counter the last time a task was switched in. */ -265: PRIVILEGED_DATA static uint32_t ulTotalRunTime = 0UL; /*< Holds the total amount of execution time as defined by the run time counter clock. */ -266: -267: #endif -268: -269: /*lint +e956 */ -270: -271: /* Debugging and trace facilities private variables and macros. ------------*/ -272: -273: /* -274: * The value used to fill the stack of a task when the task is created. This -275: * is used purely for checking the high water mark for tasks. -276: */ -277: #define tskSTACK_FILL_BYTE ( 0xa5U ) -278: -279: /* -280: * Macros used by vListTask to indicate which state a task is in. -281: */ -282: #define tskBLOCKED_CHAR ( 'B' ) -283: #define tskREADY_CHAR ( 'R' ) -284: #define tskDELETED_CHAR ( 'D' ) -285: #define tskSUSPENDED_CHAR ( 'S' ) -286: -287: /*-----------------------------------------------------------*/ -288: -289: #if ( configUSE_PORT_OPTIMISED_TASK_SELECTION == 0 ) -290: -291: /* If configUSE_PORT_OPTIMISED_TASK_SELECTION is 0 then task selection is -292: performed in a generic way that is not optimised to any particular -293: microcontroller architecture. */ -294: -295: /* uxTopReadyPriority holds the priority of the highest priority ready -296: state task. */ -297: #define taskRECORD_READY_PRIORITY( uxPriority ) \ -298: { \ -299: if( ( uxPriority ) > uxTopReadyPriority ) \ -300: { \ -301: uxTopReadyPriority = ( uxPriority ); \ -302: } \ -303: } /* taskRECORD_READY_PRIORITY */ -304: -305: /*-----------------------------------------------------------*/ -306: -307: #define taskSELECT_HIGHEST_PRIORITY_TASK() \ -308: { \ -309: /* Find the highest priority queue that contains ready tasks. */ \ -310: while( listLIST_IS_EMPTY( &( pxReadyTasksLists[ uxTopReadyPriority ] ) ) ) \ -311: { \ -312: configASSERT( uxTopReadyPriority ); \ -313: --uxTopReadyPriority; \ -314: } \ -315: \ -316: /* listGET_OWNER_OF_NEXT_ENTRY indexes through the list, so the tasks of \ -317: the same priority get an equal share of the processor time. */ \ -318: listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopReadyPriority ] ) ); \ -319: } /* taskSELECT_HIGHEST_PRIORITY_TASK */ -320: -321: /*-----------------------------------------------------------*/ -322: -323: /* Define away taskRESET_READY_PRIORITY() and portRESET_READY_PRIORITY() as -324: they are only required when a port optimised method of task selection is -325: being used. */ -326: #define taskRESET_READY_PRIORITY( uxPriority ) -327: #define portRESET_READY_PRIORITY( uxPriority, uxTopReadyPriority ) -328: -329: #else /* configUSE_PORT_OPTIMISED_TASK_SELECTION */ -330: -331: /* If configUSE_PORT_OPTIMISED_TASK_SELECTION is 1 then task selection is -332: performed in a way that is tailored to the particular microcontroller -333: architecture being used. */ -334: -335: /* A port optimised version is provided. Call the port defined macros. */ -336: #define taskRECORD_READY_PRIORITY( uxPriority ) portRECORD_READY_PRIORITY( uxPriority, uxTopReadyPriority ) -337: -338: /*-----------------------------------------------------------*/ -339: -340: #define taskSELECT_HIGHEST_PRIORITY_TASK() \ -341: { \ -342: UBaseType_t uxTopPriority; \ -343: \ -344: /* Find the highest priority queue that contains ready tasks. */ \ -345: portGET_HIGHEST_PRIORITY( uxTopPriority, uxTopReadyPriority ); \ -346: configASSERT( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ uxTopPriority ] ) ) > 0 ); \ -347: listGET_OWNER_OF_NEXT_ENTRY( pxCurrentTCB, &( pxReadyTasksLists[ uxTopPriority ] ) ); \ -348: } /* taskSELECT_HIGHEST_PRIORITY_TASK() */ -349: -350: /*-----------------------------------------------------------*/ -351: -352: /* A port optimised version is provided, call it only if the TCB being reset -353: is being referenced from a ready list. If it is referenced from a delayed -354: or suspended list then it won't be in a ready list. */ -355: #define taskRESET_READY_PRIORITY( uxPriority ) \ -356: { \ -357: if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ ( uxPriority ) ] ) ) == ( UBaseType_t ) 0 ) \ -358: { \ -359: portRESET_READY_PRIORITY( ( uxPriority ), ( uxTopReadyPriority ) ); \ -360: } \ -361: } -362: -363: #endif /* configUSE_PORT_OPTIMISED_TASK_SELECTION */ -364: -365: /*-----------------------------------------------------------*/ -366: -367: /* pxDelayedTaskList and pxOverflowDelayedTaskList are switched when the tick -368: count overflows. */ -369: #define taskSWITCH_DELAYED_LISTS() \ -370: { \ -371: List_t *pxTemp; \ -372: \ -373: /* The delayed tasks list should be empty when the lists are switched. */ \ -374: configASSERT( ( listLIST_IS_EMPTY( pxDelayedTaskList ) ) ); \ -375: \ -376: pxTemp = pxDelayedTaskList; \ -377: pxDelayedTaskList = pxOverflowDelayedTaskList; \ -378: pxOverflowDelayedTaskList = pxTemp; \ -379: xNumOfOverflows++; \ -380: prvResetNextTaskUnblockTime(); \ -381: } -382: -383: /*-----------------------------------------------------------*/ -384: -385: /* -386: * Place the task represented by pxTCB into the appropriate ready list for -387: * the task. It is inserted at the end of the list. -388: */ -389: #define prvAddTaskToReadyList( pxTCB ) \ -390: traceMOVED_TASK_TO_READY_STATE( pxTCB ); \ -391: taskRECORD_READY_PRIORITY( ( pxTCB )->uxPriority ); \ -392: vListInsertEnd( &( pxReadyTasksLists[ ( pxTCB )->uxPriority ] ), &( ( pxTCB )->xGenericListItem ) ) -393: /*-----------------------------------------------------------*/ -394: -395: /* -396: * Several functions take an TaskHandle_t parameter that can optionally be NULL, -397: * where NULL is used to indicate that the handle of the currently executing -398: * task should be used in place of the parameter. This macro simply checks to -399: * see if the parameter is NULL and returns a pointer to the appropriate TCB. -400: */ -401: #define prvGetTCBFromHandle( pxHandle ) ( ( ( pxHandle ) == NULL ) ? ( TCB_t * ) pxCurrentTCB : ( TCB_t * ) ( pxHandle ) ) -402: -403: /* The item value of the event list item is normally used to hold the priority -404: of the task to which it belongs (coded to allow it to be held in reverse -405: priority order). However, it is occasionally borrowed for other purposes. It -406: is important its value is not updated due to a task priority change while it is -407: being used for another purpose. The following bit definition is used to inform -408: the scheduler that the value should not be changed - in which case it is the -409: responsibility of whichever module is using the value to ensure it gets set back -410: to its original value when it is released. */ -411: #if configUSE_16_BIT_TICKS == 1 -412: #define taskEVENT_LIST_ITEM_VALUE_IN_USE 0x8000U -413: #else -414: #define taskEVENT_LIST_ITEM_VALUE_IN_USE 0x80000000UL -415: #endif -416: -417: /* Callback function prototypes. --------------------------*/ -418: #if configCHECK_FOR_STACK_OVERFLOW > 0 -419: extern void vApplicationStackOverflowHook( TaskHandle_t xTask, char *pcTaskName ); -420: #endif -421: -422: #if configUSE_TICK_HOOK > 0 -423: extern void vApplicationTickHook( void ); -424: #endif -425: -426: /* File private functions. --------------------------------*/ -427: -428: /* -429: * Utility to ready a TCB for a given task. Mainly just copies the parameters -430: * into the TCB structure. -431: */ -432: static void prvInitialiseTCBVariables( TCB_t * const pxTCB, const char * const pcName, UBaseType_t uxPriority, const MemoryRegion_t * const xRegions, const uint16_t usStackDepth ) PRIVILEGED_FUNCTION; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -433: -434: /** -435: * Utility task that simply returns pdTRUE if the task referenced by xTask is -436: * currently in the Suspended state, or pdFALSE if the task referenced by xTask -437: * is in any other state. -438: */ -439: #if ( INCLUDE_vTaskSuspend == 1 ) -440: static BaseType_t prvTaskIsTaskSuspended( const TaskHandle_t xTask ) PRIVILEGED_FUNCTION; -441: #endif /* INCLUDE_vTaskSuspend */ -442: -443: /* -444: * Utility to ready all the lists used by the scheduler. This is called -445: * automatically upon the creation of the first task. -446: */ -447: static void prvInitialiseTaskLists( void ) PRIVILEGED_FUNCTION; -448: -449: /* -450: * The idle task, which as all tasks is implemented as a never ending loop. -451: * The idle task is automatically created and added to the ready lists upon -452: * creation of the first user task. -453: * -454: * The portTASK_FUNCTION_PROTO() macro is used to allow port/compiler specific -455: * language extensions. The equivalent prototype for this function is: -456: * -457: * void prvIdleTask( void *pvParameters ); -458: * -459: */ -460: static portTASK_FUNCTION_PROTO( prvIdleTask, pvParameters ); -461: -462: /* -463: * Utility to free all memory allocated by the scheduler to hold a TCB, -464: * including the stack pointed to by the TCB. -465: * -466: * This does not free memory allocated by the task itself (i.e. memory -467: * allocated by calls to pvPortMalloc from within the tasks application code). -468: */ -469: #if ( INCLUDE_vTaskDelete == 1 ) -470: -471: static void prvDeleteTCB( TCB_t *pxTCB ) PRIVILEGED_FUNCTION; -472: -473: #endif -474: -475: /* -476: * Used only by the idle task. This checks to see if anything has been placed -477: * in the list of tasks waiting to be deleted. If so the task is cleaned up -478: * and its TCB deleted. -479: */ -480: static void prvCheckTasksWaitingTermination( void ) PRIVILEGED_FUNCTION; -481: -482: /* -483: * The currently executing task is entering the Blocked state. Add the task to -484: * either the current or the overflow delayed task list. -485: */ -486: static void prvAddCurrentTaskToDelayedList( const TickType_t xTimeToWake ) PRIVILEGED_FUNCTION; -487: -488: /* -489: * Allocates memory from the heap for a TCB and associated stack. Checks the -490: * allocation was successful. -491: */ -492: static TCB_t *prvAllocateTCBAndStack( const uint16_t usStackDepth, StackType_t * const puxStackBuffer ) PRIVILEGED_FUNCTION; -493: -494: /* -495: * Fills an TaskStatus_t structure with information on each task that is -496: * referenced from the pxList list (which may be a ready list, a delayed list, -497: * a suspended list, etc.). -498: * -499: * THIS FUNCTION IS INTENDED FOR DEBUGGING ONLY, AND SHOULD NOT BE CALLED FROM -500: * NORMAL APPLICATION CODE. -501: */ -502: #if ( configUSE_TRACE_FACILITY == 1 ) -503: -504: static UBaseType_t prvListTaskWithinSingleList( TaskStatus_t *pxTaskStatusArray, List_t *pxList, eTaskState eState ) PRIVILEGED_FUNCTION; -505: -506: #endif -507: -508: /* -509: * When a task is created, the stack of the task is filled with a known value. -510: * This function determines the 'high water mark' of the task stack by -511: * determining how much of the stack remains at the original preset value. -512: */ -513: #if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) -514: -515: static uint16_t prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) PRIVILEGED_FUNCTION; -516: -517: #endif -518: -519: /* -520: * Return the amount of time, in ticks, that will pass before the kernel will -521: * next move a task from the Blocked state to the Running state. -522: * -523: * This conditional compilation should use inequality to 0, not equality to 1. -524: * This is to ensure portSUPPRESS_TICKS_AND_SLEEP() can be called when user -525: * defined low power mode implementations require configUSE_TICKLESS_IDLE to be -526: * set to a value other than 1. -527: */ -528: #if ( configUSE_TICKLESS_IDLE != 0 ) -529: -530: static TickType_t prvGetExpectedIdleTime( void ) PRIVILEGED_FUNCTION; -531: -532: #endif -533: -534: /* -535: * Set xNextTaskUnblockTime to the time at which the next Blocked state task -536: * will exit the Blocked state. -537: */ -538: static void prvResetNextTaskUnblockTime( void ); -539: -540: #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) -541: -542: /* -543: * Helper function used to pad task names with spaces when printing out -544: * human readable tables of task information. -545: */ -546: static char *prvWriteNameToBuffer( char *pcBuffer, const char *pcTaskName ); -547: -548: #endif -549: /*-----------------------------------------------------------*/ -550: -551: BaseType_t xTaskGenericCreate( TaskFunction_t pxTaskCode, const char * const pcName, const uint16_t usStackDepth, void * const pvParameters, UBaseType_t uxPriority, TaskHandle_t * const pxCreatedTask, StackType_t * const puxStackBuffer, const MemoryRegion_t * const xRegions ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -552: { -BFD01534 4FE9 ADDIU SP, SP, -48 -BFD01536 CBEB SW RA, 44(SP) -BFD01538 CBCA SW S8, 40(SP) -BFD0153A 0FDD MOVE S8, SP -BFD0153C 0030F89E SW A0, 48(S8) -BFD01540 0034F8BE SW A1, 52(S8) -BFD01544 0C46 MOVE V0, A2 -BFD01546 003CF8FE SW A3, 60(S8) -BFD0154A 0038385E SH V0, 56(S8) -553: BaseType_t xReturn; -554: TCB_t * pxNewTCB; -555: StackType_t *pxTopOfStack; -556: -557: configASSERT( pxTaskCode ); -BFD0154E 0030FC5E LW V0, 48(S8) -BFD01552 000940A2 BNEZC V0, 0xBFD01568 -BFD01556 BFD141A2 LUI V0, 0xBFD1 -BFD01558 3082BFD1 LDC1 F30, 12418(S1) -BFD0155A 98103082 ADDIU A0, V0, -26608 -BFD0155C 30A09810 SWC1 F0, 12448(S0) -BFD0155E 022D30A0 ADDIU A1, ZERO, 557 -BFD01562 4B7E77E8 JALS vAssertCalled -BFD01564 4B7E LW K1, 120(SP) -BFD01566 0C00 NOP -558: configASSERT( ( ( uxPriority & ( UBaseType_t ) ( ~portPRIVILEGE_BIT ) ) < ( UBaseType_t ) configMAX_PRIORITIES ) ); -BFD01568 0040FC5E LW V0, 64(S8) -BFD0156C 0005B042 SLTIU V0, V0, 5 -BFD01570 000940A2 BNEZC V0, 0xBFD01586 -BFD01574 BFD141A2 LUI V0, 0xBFD1 -BFD01576 3082BFD1 LDC1 F30, 12418(S1) -BFD01578 98103082 ADDIU A0, V0, -26608 -BFD0157A 30A09810 SWC1 F0, 12448(S0) -BFD0157C 022E30A0 ADDIU A1, ZERO, 558 -BFD01580 4B7E77E8 JALS vAssertCalled -BFD01582 4B7E LW K1, 120(SP) -BFD01584 0C00 NOP -559: -560: /* Allocate the memory required by the TCB and stack for the new task, -561: checking that the allocation was successful. */ -562: pxNewTCB = prvAllocateTCBAndStack( usStackDepth, puxStackBuffer ); -BFD01586 0038345E LHU V0, 56(S8) -BFD0158A 0C82 MOVE A0, V0 -BFD0158C 0048FCBE LW A1, 72(S8) -BFD01590 319477E8 JALS prvAllocateTCBAndStack -BFD01592 0C003194 ADDIU T4, S4, 3072 -BFD01594 0C00 NOP -BFD01596 001CF85E SW V0, 28(S8) -563: -564: if( pxNewTCB != NULL ) -BFD0159A 001CFC5E LW V0, 28(S8) -BFD0159E 009A40E2 BEQZC V0, 0xBFD016D6 -565: { -566: #if( portUSING_MPU_WRAPPERS == 1 ) -567: /* Should the task be created in privileged mode? */ -568: BaseType_t xRunPrivileged; -569: if( ( uxPriority & portPRIVILEGE_BIT ) != 0U ) -570: { -571: xRunPrivileged = pdTRUE; -572: } -573: else -574: { -575: xRunPrivileged = pdFALSE; -576: } -577: uxPriority &= ~portPRIVILEGE_BIT; -578: -579: if( puxStackBuffer != NULL ) -580: { -581: /* The application provided its own stack. Note this so no -582: attempt is made to delete the stack should that task be -583: deleted. */ -584: pxNewTCB->xUsingStaticallyAllocatedStack = pdTRUE; -585: } -586: else -587: { -588: /* The stack was allocated dynamically. Note this so it can be -589: deleted again if the task is deleted. */ -590: pxNewTCB->xUsingStaticallyAllocatedStack = pdFALSE; -591: } -592: #endif /* portUSING_MPU_WRAPPERS == 1 */ -593: -594: /* Calculate the top of stack address. This depends on whether the -595: stack grows from high memory to low (as per the 80x86) or vice versa. -596: portSTACK_GROWTH is used to make the result positive or negative as -597: required by the port. */ -598: #if( portSTACK_GROWTH < 0 ) -599: { -600: pxTopOfStack = pxNewTCB->pxStack + ( usStackDepth - ( uint16_t ) 1 ); -BFD015A2 001CFC5E LW V0, 28(S8) -BFD015A4 69AC001C EXT ZERO, GP, 6, 14 -BFD015A6 69AC LW V1, 48(V0) -BFD015A8 0038345E LHU V0, 56(S8) -BFD015AC 6D2E ADDIU V0, V0, -1 -BFD015AE 2524 SLL V0, V0, 2 -BFD015B0 0526 ADDU V0, V1, V0 -BFD015B2 0020F85E SW V0, 32(S8) -601: pxTopOfStack = ( StackType_t * ) ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); /*lint !e923 MISRA exception. Avoiding casts between pointers and integers is not practical. Size differences accounted for using portPOINTER_SIZE_TYPE type. */ -BFD015B6 0020FC7E LW V1, 32(S8) -BFD015B8 30400020 SRL AT, ZERO, 6 -BFD015BA FFF83040 ADDIU V0, ZERO, -8 -BFD015BC 4493FFF8 LW RA, 17555(T8) -BFD015BE 4493 AND16 V0, V1 -BFD015C0 0020F85E SW V0, 32(S8) -602: -603: /* Check the alignment of the calculated top of stack is correct. */ -604: configASSERT( ( ( ( portPOINTER_SIZE_TYPE ) pxTopOfStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); -BFD015C4 0020FC5E LW V0, 32(S8) -BFD015C8 2D25 ANDI V0, V0, 0x7 -BFD015CA 000940E2 BEQZC V0, 0xBFD015E0 -BFD015CE BFD141A2 LUI V0, 0xBFD1 -BFD015D0 3082BFD1 LDC1 F30, 12418(S1) -BFD015D2 98103082 ADDIU A0, V0, -26608 -BFD015D4 30A09810 SWC1 F0, 12448(S0) -BFD015D6 025C30A0 ADDIU A1, ZERO, 604 -BFD015DA 4B7E77E8 JALS vAssertCalled -BFD015DC 4B7E LW K1, 120(SP) -BFD015DE 0C00 NOP -605: } -606: #else /* portSTACK_GROWTH */ -607: { -608: pxTopOfStack = pxNewTCB->pxStack; -609: -610: /* Check the alignment of the stack buffer is correct. */ -611: configASSERT( ( ( ( portPOINTER_SIZE_TYPE ) pxNewTCB->pxStack & ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) == 0UL ) ); -612: -613: /* If we want to use stack checking on architectures that use -614: a positive stack growth direction then we also need to store the -615: other extreme of the stack space. */ -616: pxNewTCB->pxEndOfStack = pxNewTCB->pxStack + ( usStackDepth - 1 ); -617: } -618: #endif /* portSTACK_GROWTH */ -619: -620: /* Setup the newly allocated TCB with the initial state of the task. */ -621: prvInitialiseTCBVariables( pxNewTCB, pcName, uxPriority, xRegions, usStackDepth ); -BFD015E0 0038345E LHU V0, 56(S8) -BFD015E4 C844 SW V0, 16(SP) -BFD015E6 001CFC9E LW A0, 28(S8) -BFD015EA 0034FCBE LW A1, 52(S8) -BFD015EE 0040FCDE LW A2, 64(S8) -BFD015F2 004CFCFE LW A3, 76(S8) -BFD015F6 1E7477E8 JALS prvInitialiseTCBVariables -BFD015F8 0C001E74 LB S3, 3072(S4) -BFD015FA 0C00 NOP -622: -623: /* Initialize the TCB stack to look as if the task was already running, -624: but had been interrupted by the scheduler. The return address is set -625: to the start of the task function. Once the stack has been initialised -626: the top of stack variable is updated. */ -627: #if( portUSING_MPU_WRAPPERS == 1 ) -628: { -629: pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters, xRunPrivileged ); -630: } -631: #else /* portUSING_MPU_WRAPPERS */ -632: { -633: pxNewTCB->pxTopOfStack = pxPortInitialiseStack( pxTopOfStack, pxTaskCode, pvParameters ); -BFD015FC 0020FC9E LW A0, 32(S8) -BFD01600 0030FCBE LW A1, 48(S8) -BFD01604 003CFCDE LW A2, 60(S8) -BFD01608 2B1877E8 JALS pxPortInitialiseStack -BFD0160A 2B18 LHU A2, 16(S1) -BFD0160C 0C00 NOP -BFD0160E 0C62 MOVE V1, V0 -BFD01610 001CFC5E LW V0, 28(S8) -BFD01614 E9A0 SW V1, 0(V0) -634: } -635: #endif /* portUSING_MPU_WRAPPERS */ -636: -637: if( ( void * ) pxCreatedTask != NULL ) -BFD01616 0044FC5E LW V0, 68(S8) -BFD0161A 000540E2 BEQZC V0, 0xBFD01628 -638: { -639: /* Pass the TCB out - in an anonymous way. The calling function/ -640: task can use this as a handle to delete the task later if -641: required.*/ -642: *pxCreatedTask = ( TaskHandle_t ) pxNewTCB; -BFD0161E 0044FC5E LW V0, 68(S8) -BFD01622 001CFC7E LW V1, 28(S8) -BFD01626 E9A0 SW V1, 0(V0) -643: } -644: else -645: { -646: mtCOVERAGE_TEST_MARKER(); -647: } -648: -649: /* Ensure interrupts don't access the task lists while they are being -650: updated. */ -651: taskENTER_CRITICAL(); -BFD01628 33B877E8 JALS vTaskEnterCritical -BFD0162A 0C0033B8 ADDIU SP, T8, 3072 -BFD0162C 0C00 NOP -652: { -653: uxCurrentNumberOfTasks++; -BFD0162E 8038FC5C LW V0, -32712(GP) -BFD01632 6D20 ADDIU V0, V0, 1 -BFD01634 8038F85C SW V0, -32712(GP) -654: if( pxCurrentTCB == NULL ) -BFD01638 8030FC5C LW V0, -32720(GP) -BFD0163C 000F40A2 BNEZC V0, 0xBFD0165E -655: { -656: /* There are no other tasks, or all the other tasks are in -657: the suspended state - make this the current task. */ -658: pxCurrentTCB = pxNewTCB; -BFD01640 001CFC5E LW V0, 28(S8) -BFD01644 8030F85C SW V0, -32720(GP) -659: -660: if( uxCurrentNumberOfTasks == ( UBaseType_t ) 1 ) -BFD01648 8038FC7C LW V1, -32712(GP) -BFD0164C ED01 LI V0, 1 -BFD0164E 0017B443 BNE V1, V0, 0xBFD01680 -BFD01650 0C000017 SLL ZERO, S7, 1 -BFD01652 0C00 NOP -661: { -662: /* This is the first task to be created so do the preliminary -663: initialisation required. We will not recover if this call -664: fails, but we will report the failure. */ -665: prvInitialiseTaskLists(); -BFD01654 309677E8 JALS prvInitialiseTaskLists -BFD01656 0C003096 ADDIU A0, S6, 3072 -BFD01658 0C00 NOP -BFD0165A CC12 B 0xBFD01680 -BFD0165C 0C00 NOP -666: } -667: else -668: { -669: mtCOVERAGE_TEST_MARKER(); -670: } -671: } -672: else -673: { -674: /* If the scheduler is not already running, make this task the -675: current task if it is the highest priority task to be created -676: so far. */ -677: if( xSchedulerRunning == pdFALSE ) -BFD0165E 8044FC5C LW V0, -32700(GP) -BFD01662 000D40A2 BNEZC V0, 0xBFD01680 -678: { -679: if( pxCurrentTCB->uxPriority <= uxPriority ) -BFD01666 8030FC5C LW V0, -32720(GP) -BFD0166A 69AB LW V1, 44(V0) -BFD0166C 0040FC5E LW V0, 64(S8) -BFD01670 13900062 SLTU V0, V0, V1 -BFD01672 40A21390 ADDI GP, S0, 16546 -BFD01674 000440A2 BNEZC V0, 0xBFD01680 -680: { -681: pxCurrentTCB = pxNewTCB; -BFD01678 001CFC5E LW V0, 28(S8) -BFD0167C 8030F85C SW V0, -32720(GP) -682: } -683: else -684: { -685: mtCOVERAGE_TEST_MARKER(); -686: } -687: } -688: else -689: { -690: mtCOVERAGE_TEST_MARKER(); -691: } -692: } -693: -694: uxTaskNumber++; -BFD01680 8054FC5C LW V0, -32684(GP) -BFD01684 6D20 ADDIU V0, V0, 1 -BFD01686 8054F85C SW V0, -32684(GP) -695: -696: #if ( configUSE_TRACE_FACILITY == 1 ) -697: { -698: /* Add a counter into the TCB for tracing only. */ -699: pxNewTCB->uxTCBNumber = uxTaskNumber; -700: } -701: #endif /* configUSE_TRACE_FACILITY */ -702: traceTASK_CREATE( pxNewTCB ); -703: -704: prvAddTaskToReadyList( pxNewTCB ); -BFD0168A 001CFC5E LW V0, 28(S8) -BFD0168E 692B LW V0, 44(V0) -BFD01690 ED81 LI V1, 1 -BFD01692 18100062 SLLV V1, V0, V1 -BFD01694 FC5C1810 SB ZERO, -932(S0) -BFD01696 8040FC5C LW V0, -32704(GP) -BFD0169A 44D3 OR16 V0, V1 -BFD0169C 8040F85C SW V0, -32704(GP) -BFD016A0 001CFC5E LW V0, 28(S8) -BFD016A4 692B LW V0, 44(V0) -BFD016A6 2524 SLL V0, V0, 2 -BFD016A8 25A4 SLL V1, V0, 2 -BFD016AA 05B4 ADDU V1, V0, V1 -BFD016AC BFD241A2 LUI V0, 0xBFD2 -BFD016AE 3042BFD2 LDC1 F30, 12354(S2) -BFD016B0 806C3042 ADDIU V0, V0, -32660 -BFD016B4 05A6 ADDU V1, V1, V0 -BFD016B6 001CFC5E LW V0, 28(S8) -BFD016BA 6D22 ADDIU V0, V0, 4 -BFD016BC 0C83 MOVE A0, V1 -BFD016BE 0CA2 MOVE A1, V0 -BFD016C0 3E4A77E8 JALS vListInsertEnd -BFD016C2 0C003E4A LH S2, 3072(T2) -BFD016C4 0C00 NOP -705: -706: xReturn = pdPASS; -BFD016C6 ED01 LI V0, 1 -BFD016C8 0018F85E SW V0, 24(S8) -707: portSETUP_TCB( pxNewTCB ); -708: } -709: taskEXIT_CRITICAL(); -BFD016CC 40AA77E8 JALS vTaskExitCritical -BFD016CE 0C0040AA BNEZC T2, 0xBFD02ED2 -BFD016D0 0C00 NOP -BFD016D2 CC04 B 0xBFD016DC -BFD016D4 0C00 NOP -710: } -711: else -712: { -713: xReturn = errCOULD_NOT_ALLOCATE_REQUIRED_MEMORY; -BFD016D6 ED7F LI V0, -1 -BFD016D8 0018F85E SW V0, 24(S8) -714: traceTASK_CREATE_FAILED(); -715: } -716: -717: if( xReturn == pdPASS ) -BFD016DC 0018FC7E LW V1, 24(S8) -BFD016E0 ED01 LI V0, 1 -BFD016E2 001EB443 BNE V1, V0, 0xBFD01722 -BFD016E4 0C00001E SLL ZERO, S8, 1 -BFD016E6 0C00 NOP -718: { -719: if( xSchedulerRunning != pdFALSE ) -BFD016E8 8044FC5C LW V0, -32700(GP) -BFD016EC 001940E2 BEQZC V0, 0xBFD01722 -720: { -721: /* If the created task is of a higher priority than the current task -722: then it should run now. */ -723: if( pxCurrentTCB->uxPriority < uxPriority ) -BFD016F0 8030FC5C LW V0, -32720(GP) -BFD016F4 69AB LW V1, 44(V0) -BFD016F6 0040FC5E LW V0, 64(S8) -BFD016FA 13900043 SLTU V0, V1, V0 -BFD016FC 40E21390 ADDI GP, S0, 16610 -BFD016FE 001040E2 BEQZC V0, 0xBFD01722 -724: { -725: taskYIELD_IF_USING_PREEMPTION(); -BFD01702 4E5677E8 JALS ulPortGetCP0Cause -BFD01704 4E56 ADDIU S2, S2, -5 -BFD01706 0C00 NOP -BFD01708 0024F85E SW V0, 36(S8) -BFD0170C 0024FC5E LW V0, 36(S8) -BFD01710 01005042 ORI V0, V0, 256 -BFD01714 0024F85E SW V0, 36(S8) -BFD01718 0024FC9E LW A0, 36(S8) -BFD0171C 4E6677E8 JALS vPortSetCP0Cause -BFD0171E 4E66 ADDIU S3, S3, 3 -BFD01720 0C00 NOP -726: } -727: else -728: { -729: mtCOVERAGE_TEST_MARKER(); -730: } -731: } -732: else -733: { -734: mtCOVERAGE_TEST_MARKER(); -735: } -736: } -737: -738: return xReturn; -BFD01722 0018FC5E LW V0, 24(S8) -739: } -BFD01726 0FBE MOVE SP, S8 -BFD01728 4BEB LW RA, 44(SP) -BFD0172A 4BCA LW S8, 40(SP) -BFD0172C 4C19 ADDIU SP, SP, 48 -BFD0172E 459F JR16 RA -BFD01730 0C00 NOP -740: /*-----------------------------------------------------------*/ -741: -742: #if ( INCLUDE_vTaskDelete == 1 ) -743: -744: void vTaskDelete( TaskHandle_t xTaskToDelete ) -745: { -BFD033F4 4FF1 ADDIU SP, SP, -32 -BFD033F6 CBE7 SW RA, 28(SP) -BFD033F8 CBC6 SW S8, 24(SP) -BFD033FA 0FDD MOVE S8, SP -BFD033FC 0020F89E SW A0, 32(S8) -746: TCB_t *pxTCB; -747: -748: taskENTER_CRITICAL(); -BFD03400 33B877E8 JALS vTaskEnterCritical -BFD03402 0C0033B8 ADDIU SP, T8, 3072 -BFD03404 0C00 NOP -749: { -750: /* If null is passed in here then it is the calling task that is -751: being deleted. */ -752: pxTCB = prvGetTCBFromHandle( xTaskToDelete ); -BFD03406 0020FC5E LW V0, 32(S8) -BFD0340A 000440A2 BNEZC V0, 0xBFD03416 -BFD0340E 8030FC5C LW V0, -32720(GP) -BFD03412 CC03 B 0xBFD0341A -BFD03414 0C00 NOP -BFD03416 0020FC5E LW V0, 32(S8) -BFD0341A 0010F85E SW V0, 16(S8) -753: -754: /* Remove task from the ready list and place in the termination list. -755: This will stop the task from be scheduled. The idle task will check -756: the termination list and free up any memory allocated by the -757: scheduler for the TCB and stack. */ -758: if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD0341E 0010FC5E LW V0, 16(S8) -BFD03422 6D22 ADDIU V0, V0, 4 -BFD03424 0C82 MOVE A0, V0 -BFD03426 00C877E8 JALS uxListRemove -BFD03428 0C0000C8 SLL A2, T0, 1 -BFD0342A 0C00 NOP -BFD0342C 001A40A2 BNEZC V0, 0xBFD03464 -759: { -760: taskRESET_READY_PRIORITY( pxTCB->uxPriority ); -BFD03430 0010FC5E LW V0, 16(S8) -BFD03434 692B LW V0, 44(V0) -BFD03436 2524 SLL V0, V0, 2 -BFD03438 25A4 SLL V1, V0, 2 -BFD0343A 05B4 ADDU V1, V0, V1 -BFD0343C BFD241A2 LUI V0, 0xBFD2 -BFD0343E 3042BFD2 LDC1 F30, 12354(S2) -BFD03440 806C3042 ADDIU V0, V0, -32660 -BFD03444 0526 ADDU V0, V1, V0 -BFD03446 6920 LW V0, 0(V0) -BFD03448 000C40A2 BNEZC V0, 0xBFD03464 -BFD0344C 0010FC5E LW V0, 16(S8) -BFD03450 692B LW V0, 44(V0) -BFD03452 ED81 LI V1, 1 -BFD03454 10100062 SLLV V0, V0, V1 -BFD03456 441A1010 ADDI ZERO, S0, 17434 -BFD03458 441A NOT16 V1, V0 -BFD0345A 8040FC5C LW V0, -32704(GP) -BFD0345E 4493 AND16 V0, V1 -BFD03460 8040F85C SW V0, -32704(GP) -761: } -762: else -763: { -764: mtCOVERAGE_TEST_MARKER(); -765: } -766: -767: /* Is the task waiting on an event also? */ -768: if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) -BFD03464 0010FC5E LW V0, 16(S8) -BFD03468 692A LW V0, 40(V0) -BFD0346A 000740E2 BEQZC V0, 0xBFD0347C -769: { -770: ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); -BFD0346E 0010FC5E LW V0, 16(S8) -BFD03470 6D2C0010 EXT ZERO, S0, 20, 14 -BFD03472 6D2C ADDIU V0, V0, 24 -BFD03474 0C82 MOVE A0, V0 -BFD03476 00C877E8 JALS uxListRemove -BFD03478 0C0000C8 SLL A2, T0, 1 -BFD0347A 0C00 NOP -771: } -772: else -773: { -774: mtCOVERAGE_TEST_MARKER(); -775: } -776: -777: vListInsertEnd( &xTasksWaitingTermination, &( pxTCB->xGenericListItem ) ); -BFD0347C 0010FC5E LW V0, 16(S8) -BFD03480 6D22 ADDIU V0, V0, 4 -BFD03482 BFD241A3 LUI V1, 0xBFD2 -BFD03484 3083BFD2 LDC1 F30, 12419(S2) -BFD03486 810C3083 ADDIU A0, V1, -32500 -BFD0348A 0CA2 MOVE A1, V0 -BFD0348C 3E4A77E8 JALS vListInsertEnd -BFD0348E 0C003E4A LH S2, 3072(T2) -BFD03490 0C00 NOP -778: -779: /* Increment the ucTasksDeleted variable so the idle task knows -780: there is a task that has been deleted and that it should therefore -781: check the xTasksWaitingTermination list. */ -782: ++uxTasksDeleted; -BFD03492 8034FC5C LW V0, -32716(GP) -BFD03496 6D20 ADDIU V0, V0, 1 -BFD03498 8034F85C SW V0, -32716(GP) -783: -784: /* Increment the uxTaskNumberVariable also so kernel aware debuggers -785: can detect that the task lists need re-generating. */ -786: uxTaskNumber++; -BFD0349C 8054FC5C LW V0, -32684(GP) -BFD034A0 6D20 ADDIU V0, V0, 1 -BFD034A2 8054F85C SW V0, -32684(GP) -787: -788: traceTASK_DELETE( pxTCB ); -789: } -790: taskEXIT_CRITICAL(); -BFD034A6 40AA77E8 JALS vTaskExitCritical -BFD034A8 0C0040AA BNEZC T2, 0xBFD04CAC -BFD034AA 0C00 NOP -791: -792: /* Force a reschedule if it is the currently running task that has just -793: been deleted. */ -794: if( xSchedulerRunning != pdFALSE ) -BFD034AC 8044FC5C LW V0, -32700(GP) -BFD034B0 002F40E2 BEQZC V0, 0xBFD03512 -795: { -796: if( pxTCB == pxCurrentTCB ) -BFD034B4 8030FC5C LW V0, -32720(GP) -BFD034B8 0010FC7E LW V1, 16(S8) -BFD034BC 0020B443 BNE V1, V0, 0xBFD03500 -BFD034BE 0C000020 SLL AT, ZERO, 1 -BFD034C0 0C00 NOP -797: { -798: configASSERT( uxSchedulerSuspended == 0 ); -BFD034C2 805CFC5C LW V0, -32676(GP) -BFD034C6 000940E2 BEQZC V0, 0xBFD034DC -BFD034CA BFD141A2 LUI V0, 0xBFD1 -BFD034CC 3082BFD1 LDC1 F30, 12418(S1) -BFD034CE 98103082 ADDIU A0, V0, -26608 -BFD034D0 30A09810 SWC1 F0, 12448(S0) -BFD034D2 031E30A0 ADDIU A1, ZERO, 798 -BFD034D6 4B7E77E8 JALS vAssertCalled -BFD034D8 4B7E LW K1, 120(SP) -BFD034DA 0C00 NOP -799: -800: /* The pre-delete hook is primarily for the Windows simulator, -801: in which Windows specific clean up operations are performed, -802: after which it is not possible to yield away from this task - -803: hence xYieldPending is used to latch that a context switch is -804: required. */ -805: portPRE_TASK_DELETE_HOOK( pxTCB, &xYieldPending ); -806: portYIELD_WITHIN_API(); -BFD034DC 4E5677E8 JALS ulPortGetCP0Cause -BFD034DE 4E56 ADDIU S2, S2, -5 -BFD034E0 0C00 NOP -BFD034E2 0014F85E SW V0, 20(S8) -BFD034E6 0014FC5E LW V0, 20(S8) -BFD034EA 01005042 ORI V0, V0, 256 -BFD034EE 0014F85E SW V0, 20(S8) -BFD034F2 0014FC9E LW A0, 20(S8) -BFD034F6 4E6677E8 JALS vPortSetCP0Cause -BFD034F8 4E66 ADDIU S3, S3, 3 -BFD034FA 0C00 NOP -BFD034FC CC0A B 0xBFD03512 -BFD034FE 0C00 NOP -807: } -808: else -809: { -810: /* Reset the next expected unblock time in case it referred to -811: the task that has just been deleted. */ -812: taskENTER_CRITICAL(); -BFD03500 33B877E8 JALS vTaskEnterCritical -BFD03502 0C0033B8 ADDIU SP, T8, 3072 -BFD03504 0C00 NOP -813: { -814: prvResetNextTaskUnblockTime(); -BFD03506 47CA77E8 JALS prvResetNextTaskUnblockTime -BFD0350A 0C00 NOP -815: } -816: taskEXIT_CRITICAL(); -BFD0350C 40AA77E8 JALS vTaskExitCritical -BFD0350E 0C0040AA BNEZC T2, 0xBFD04D12 -BFD03510 0C00 NOP -817: } -818: } -819: } -BFD03512 0FBE MOVE SP, S8 -BFD03514 4BE7 LW RA, 28(SP) -BFD03516 4BC6 LW S8, 24(SP) -BFD03518 4C11 ADDIU SP, SP, 32 -BFD0351A 459F JR16 RA -BFD0351C 0C00 NOP -820: -821: #endif /* INCLUDE_vTaskDelete */ -822: /*-----------------------------------------------------------*/ -823: -824: #if ( INCLUDE_vTaskDelayUntil == 1 ) -825: -826: void vTaskDelayUntil( TickType_t * const pxPreviousWakeTime, const TickType_t xTimeIncrement ) -827: { -BFD00008 4FE9 ADDIU SP, SP, -48 -BFD0000A CBEB SW RA, 44(SP) -BFD0000C CBCA SW S8, 40(SP) -BFD0000E 0FDD MOVE S8, SP -BFD00010 0030F89E SW A0, 48(S8) -BFD00014 0034F8BE SW A1, 52(S8) -828: TickType_t xTimeToWake; -829: BaseType_t xAlreadyYielded, xShouldDelay = pdFALSE; -BFD00018 0010F81E SW ZERO, 16(S8) -830: -831: configASSERT( pxPreviousWakeTime ); -BFD0001C 0030FC5E LW V0, 48(S8) -BFD00020 000940A2 BNEZC V0, 0xBFD00036 -BFD00024 BFD141A2 LUI V0, 0xBFD1 -BFD00026 3082BFD1 LDC1 F30, 12418(S1) -BFD00028 98103082 ADDIU A0, V0, -26608 -BFD0002A 30A09810 SWC1 F0, 12448(S0) -BFD0002C 033F30A0 ADDIU A1, ZERO, 831 -BFD00030 4B7E77E8 JALS vAssertCalled -BFD00032 4B7E LW K1, 120(SP) -BFD00034 0C00 NOP -832: configASSERT( ( xTimeIncrement > 0U ) ); -BFD00036 0034FC5E LW V0, 52(S8) -BFD0003A 000940A2 BNEZC V0, 0xBFD00050 -BFD0003E BFD141A2 LUI V0, 0xBFD1 -BFD00040 3082BFD1 LDC1 F30, 12418(S1) -BFD00042 98103082 ADDIU A0, V0, -26608 -BFD00044 30A09810 SWC1 F0, 12448(S0) -BFD00046 034030A0 ADDIU A1, ZERO, 832 -BFD0004A 4B7E77E8 JALS vAssertCalled -BFD0004C 4B7E LW K1, 120(SP) -BFD0004E 0C00 NOP -833: configASSERT( uxSchedulerSuspended == 0 ); -BFD00050 805CFC5C LW V0, -32676(GP) -BFD00054 000940E2 BEQZC V0, 0xBFD0006A -BFD00058 BFD141A2 LUI V0, 0xBFD1 -BFD0005A 3082BFD1 LDC1 F30, 12418(S1) -BFD0005C 98103082 ADDIU A0, V0, -26608 -BFD0005E 30A09810 SWC1 F0, 12448(S0) -BFD00060 034130A0 ADDIU A1, ZERO, 833 -BFD00064 4B7E77E8 JALS vAssertCalled -BFD00066 4B7E LW K1, 120(SP) -BFD00068 0C00 NOP -834: -835: vTaskSuspendAll(); -BFD0006A 4EF477E8 JALS vTaskSuspendAll -BFD0006C 4EF4 ADDIU S7, S7, -6 -BFD0006E 0C00 NOP -836: { -837: /* Minor optimisation. The tick count cannot change in this -838: block. */ -839: const TickType_t xConstTickCount = xTickCount; -BFD00070 803CFC5C LW V0, -32708(GP) -BFD00074 0014F85E SW V0, 20(S8) -840: -841: /* Generate the tick time at which the task wants to wake. */ -842: xTimeToWake = *pxPreviousWakeTime + xTimeIncrement; -BFD00078 0030FC5E LW V0, 48(S8) -BFD0007C 69A0 LW V1, 0(V0) -BFD0007E 0034FC5E LW V0, 52(S8) -BFD00082 0526 ADDU V0, V1, V0 -BFD00084 0018F85E SW V0, 24(S8) -843: -844: if( xConstTickCount < *pxPreviousWakeTime ) -BFD00088 0030FC5E LW V0, 48(S8) -BFD0008C 69A0 LW V1, 0(V0) -BFD0008E 0014FC5E LW V0, 20(S8) -BFD00092 13900062 SLTU V0, V0, V1 -BFD00094 40E21390 ADDI GP, S0, 16610 -BFD00096 001640E2 BEQZC V0, 0xBFD000C6 -845: { -846: /* The tick count has overflowed since this function was -847: lasted called. In this case the only time we should ever -848: actually delay is if the wake time has also overflowed, -849: and the wake time is greater than the tick time. When this -850: is the case it is as if neither time had overflowed. */ -851: if( ( xTimeToWake < *pxPreviousWakeTime ) && ( xTimeToWake > xConstTickCount ) ) -BFD0009A 0030FC5E LW V0, 48(S8) -BFD0009E 69A0 LW V1, 0(V0) -BFD000A0 0018FC5E LW V0, 24(S8) -BFD000A4 13900062 SLTU V0, V0, V1 -BFD000A6 40E21390 ADDI GP, S0, 16610 -BFD000A8 002140E2 BEQZC V0, 0xBFD000EE -BFD000AC 0018FC7E LW V1, 24(S8) -BFD000B0 0014FC5E LW V0, 20(S8) -BFD000B4 13900062 SLTU V0, V0, V1 -BFD000B6 40E21390 ADDI GP, S0, 16610 -BFD000B8 001940E2 BEQZC V0, 0xBFD000EE -852: { -853: xShouldDelay = pdTRUE; -BFD000BC ED01 LI V0, 1 -BFD000BE 0010F85E SW V0, 16(S8) -BFD000C2 CC15 B 0xBFD000EE -BFD000C4 0C00 NOP -854: } -855: else -856: { -857: mtCOVERAGE_TEST_MARKER(); -858: } -859: } -860: else -861: { -862: /* The tick time has not overflowed. In this case we will -863: delay if either the wake time has overflowed, and/or the -864: tick time is less than the wake time. */ -865: if( ( xTimeToWake < *pxPreviousWakeTime ) || ( xTimeToWake > xConstTickCount ) ) -BFD000C6 0030FC5E LW V0, 48(S8) -BFD000CA 69A0 LW V1, 0(V0) -BFD000CC 0018FC5E LW V0, 24(S8) -BFD000D0 13900062 SLTU V0, V0, V1 -BFD000D2 40A21390 ADDI GP, S0, 16546 -BFD000D4 000840A2 BNEZC V0, 0xBFD000E8 -BFD000D8 0018FC7E LW V1, 24(S8) -BFD000DC 0014FC5E LW V0, 20(S8) -BFD000E0 13900062 SLTU V0, V0, V1 -BFD000E2 40E21390 ADDI GP, S0, 16610 -BFD000E4 000340E2 BEQZC V0, 0xBFD000EE -866: { -867: xShouldDelay = pdTRUE; -BFD000E8 ED01 LI V0, 1 -BFD000EA 0010F85E SW V0, 16(S8) -868: } -869: else -870: { -871: mtCOVERAGE_TEST_MARKER(); -872: } -873: } -874: -875: /* Update the wake time ready for the next call. */ -876: *pxPreviousWakeTime = xTimeToWake; -BFD000EE 0030FC5E LW V0, 48(S8) -BFD000F2 0018FC7E LW V1, 24(S8) -BFD000F6 E9A0 SW V1, 0(V0) -877: -878: if( xShouldDelay != pdFALSE ) -BFD000F8 0010FC5E LW V0, 16(S8) -BFD000FC 001A40E2 BEQZC V0, 0xBFD00134 -879: { -880: traceTASK_DELAY_UNTIL(); -881: -882: /* Remove the task from the ready list before adding it to the -883: blocked list as the same list item is used for both lists. */ -884: if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD00100 8030FC5C LW V0, -32720(GP) -BFD00104 6D22 ADDIU V0, V0, 4 -BFD00106 0C82 MOVE A0, V0 -BFD00108 00C877E8 JALS uxListRemove -BFD0010A 0C0000C8 SLL A2, T0, 1 -BFD0010C 0C00 NOP -BFD0010E 000C40A2 BNEZC V0, 0xBFD0012A -885: { -886: /* The current task must be in a ready list, so there is -887: no need to check, and the port reset macro can be called -888: directly. */ -889: portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); -BFD00112 8030FC5C LW V0, -32720(GP) -BFD00116 692B LW V0, 44(V0) -BFD00118 ED81 LI V1, 1 -BFD0011A 10100062 SLLV V0, V0, V1 -BFD0011C 441A1010 ADDI ZERO, S0, 17434 -BFD0011E 441A NOT16 V1, V0 -BFD00120 8040FC5C LW V0, -32704(GP) -BFD00124 4493 AND16 V0, V1 -BFD00126 8040F85C SW V0, -32704(GP) -890: } -891: else -892: { -893: mtCOVERAGE_TEST_MARKER(); -894: } -895: -896: prvAddCurrentTaskToDelayedList( xTimeToWake ); -BFD0012A 0018FC9E LW A0, 24(S8) -BFD0012E 373477E8 JALS prvAddCurrentTaskToDelayedList -BFD00130 0C003734 LHU T9, 3072(S4) -BFD00132 0C00 NOP -897: } -898: else -899: { -900: mtCOVERAGE_TEST_MARKER(); -901: } -902: } -903: xAlreadyYielded = xTaskResumeAll(); -BFD00134 158E77E8 JALS xTaskResumeAll -BFD00136 0C00158E LBU T4, 3072(T6) -BFD00138 0C00 NOP -BFD0013A 001CF85E SW V0, 28(S8) -904: -905: /* Force a reschedule if xTaskResumeAll has not already done so, we may -906: have put ourselves to sleep. */ -907: if( xAlreadyYielded == pdFALSE ) -BFD0013E 001CFC5E LW V0, 28(S8) -BFD00142 001040A2 BNEZC V0, 0xBFD00166 -908: { -909: portYIELD_WITHIN_API(); -BFD00146 4E5677E8 JALS ulPortGetCP0Cause -BFD00148 4E56 ADDIU S2, S2, -5 -BFD0014A 0C00 NOP -BFD0014C 0020F85E SW V0, 32(S8) -BFD00150 0020FC5E LW V0, 32(S8) -BFD00154 01005042 ORI V0, V0, 256 -BFD00158 0020F85E SW V0, 32(S8) -BFD0015C 0020FC9E LW A0, 32(S8) -BFD00160 4E6677E8 JALS vPortSetCP0Cause -BFD00162 4E66 ADDIU S3, S3, 3 -BFD00164 0C00 NOP -910: } -911: else -912: { -913: mtCOVERAGE_TEST_MARKER(); -914: } -915: } -BFD00166 0FBE MOVE SP, S8 -BFD00168 4BEB LW RA, 44(SP) -BFD0016A 4BCA LW S8, 40(SP) -BFD0016C 4C19 ADDIU SP, SP, 48 -BFD0016E 459F JR16 RA -BFD00170 0C00 NOP -916: -917: #endif /* INCLUDE_vTaskDelayUntil */ -918: /*-----------------------------------------------------------*/ -919: -920: #if ( INCLUDE_vTaskDelay == 1 ) -921: -922: void vTaskDelay( const TickType_t xTicksToDelay ) -923: { -BFD05BA0 4FED ADDIU SP, SP, -40 -BFD05BA2 CBE9 SW RA, 36(SP) -BFD05BA4 CBC8 SW S8, 32(SP) -BFD05BA6 0FDD MOVE S8, SP -BFD05BA8 0028F89E SW A0, 40(S8) -924: TickType_t xTimeToWake; -925: BaseType_t xAlreadyYielded = pdFALSE; -BFD05BAC 0010F81E SW ZERO, 16(S8) -926: -927: -928: /* A delay time of zero just forces a reschedule. */ -929: if( xTicksToDelay > ( TickType_t ) 0U ) -BFD05BB0 0028FC5E LW V0, 40(S8) -BFD05BB4 003640E2 BEQZC V0, 0xBFD05C24 -930: { -931: configASSERT( uxSchedulerSuspended == 0 ); -BFD05BB8 805CFC5C LW V0, -32676(GP) -BFD05BBC 000940E2 BEQZC V0, 0xBFD05BD2 -BFD05BC0 BFD141A2 LUI V0, 0xBFD1 -BFD05BC2 3082BFD1 LDC1 F30, 12418(S1) -BFD05BC4 98103082 ADDIU A0, V0, -26608 -BFD05BC6 30A09810 SWC1 F0, 12448(S0) -BFD05BC8 03A330A0 ADDIU A1, ZERO, 931 -BFD05BCC 4B7E77E8 JALS vAssertCalled -BFD05BCE 4B7E LW K1, 120(SP) -BFD05BD0 0C00 NOP -932: vTaskSuspendAll(); -BFD05BD2 4EF477E8 JALS vTaskSuspendAll -BFD05BD4 4EF4 ADDIU S7, S7, -6 -BFD05BD6 0C00 NOP -933: { -934: traceTASK_DELAY(); -935: -936: /* A task that is removed from the event list while the -937: scheduler is suspended will not get placed in the ready -938: list or removed from the blocked list until the scheduler -939: is resumed. -940: -941: This task cannot be in an event list as it is the currently -942: executing task. */ -943: -944: /* Calculate the time to wake - this may overflow but this is -945: not a problem. */ -946: xTimeToWake = xTickCount + xTicksToDelay; -BFD05BD8 803CFC7C LW V1, -32708(GP) -BFD05BDC 0028FC5E LW V0, 40(S8) -BFD05BE0 0526 ADDU V0, V1, V0 -BFD05BE2 0014F85E SW V0, 20(S8) -947: -948: /* We must remove ourselves from the ready list before adding -949: ourselves to the blocked list as the same list item is used for -950: both lists. */ -951: if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD05BE6 8030FC5C LW V0, -32720(GP) -BFD05BEA 6D22 ADDIU V0, V0, 4 -BFD05BEC 0C82 MOVE A0, V0 -BFD05BEE 00C877E8 JALS uxListRemove -BFD05BF0 0C0000C8 SLL A2, T0, 1 -BFD05BF2 0C00 NOP -BFD05BF4 000C40A2 BNEZC V0, 0xBFD05C10 -952: { -953: /* The current task must be in a ready list, so there is -954: no need to check, and the port reset macro can be called -955: directly. */ -956: portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); -BFD05BF8 8030FC5C LW V0, -32720(GP) -BFD05BFC 692B LW V0, 44(V0) -BFD05BFE ED81 LI V1, 1 -BFD05C00 10100062 SLLV V0, V0, V1 -BFD05C02 441A1010 ADDI ZERO, S0, 17434 -BFD05C04 441A NOT16 V1, V0 -BFD05C06 8040FC5C LW V0, -32704(GP) -BFD05C0A 4493 AND16 V0, V1 -BFD05C0C 8040F85C SW V0, -32704(GP) -957: } -958: else -959: { -960: mtCOVERAGE_TEST_MARKER(); -961: } -962: prvAddCurrentTaskToDelayedList( xTimeToWake ); -BFD05C10 0014FC9E LW A0, 20(S8) -BFD05C14 373477E8 JALS prvAddCurrentTaskToDelayedList -BFD05C16 0C003734 LHU T9, 3072(S4) -BFD05C18 0C00 NOP -963: } -964: xAlreadyYielded = xTaskResumeAll(); -BFD05C1A 158E77E8 JALS xTaskResumeAll -BFD05C1C 0C00158E LBU T4, 3072(T6) -BFD05C1E 0C00 NOP -BFD05C20 0010F85E SW V0, 16(S8) -965: } -966: else -967: { -968: mtCOVERAGE_TEST_MARKER(); -969: } -970: -971: /* Force a reschedule if xTaskResumeAll has not already done so, we may -972: have put ourselves to sleep. */ -973: if( xAlreadyYielded == pdFALSE ) -BFD05C24 0010FC5E LW V0, 16(S8) -BFD05C28 001040A2 BNEZC V0, 0xBFD05C4C -974: { -975: portYIELD_WITHIN_API(); -BFD05C2C 4E5677E8 JALS ulPortGetCP0Cause -BFD05C2E 4E56 ADDIU S2, S2, -5 -BFD05C30 0C00 NOP -BFD05C32 0018F85E SW V0, 24(S8) -BFD05C36 0018FC5E LW V0, 24(S8) -BFD05C3A 01005042 ORI V0, V0, 256 -BFD05C3E 0018F85E SW V0, 24(S8) -BFD05C42 0018FC9E LW A0, 24(S8) -BFD05C46 4E6677E8 JALS vPortSetCP0Cause -BFD05C48 4E66 ADDIU S3, S3, 3 -BFD05C4A 0C00 NOP -976: } -977: else -978: { -979: mtCOVERAGE_TEST_MARKER(); -980: } -981: } -BFD05C4C 0FBE MOVE SP, S8 -BFD05C4E 4BE9 LW RA, 36(SP) -BFD05C50 4BC8 LW S8, 32(SP) -BFD05C52 4C15 ADDIU SP, SP, 40 -BFD05C54 459F JR16 RA -BFD05C56 0C00 NOP -982: -983: #endif /* INCLUDE_vTaskDelay */ -984: /*-----------------------------------------------------------*/ -985: -986: #if ( INCLUDE_eTaskGetState == 1 ) -987: -988: eTaskState eTaskGetState( TaskHandle_t xTask ) -989: { -BFD04494 4FED ADDIU SP, SP, -40 -BFD04496 CBE9 SW RA, 36(SP) -BFD04498 CBC8 SW S8, 32(SP) -BFD0449A 0FDD MOVE S8, SP -BFD0449C 0028F89E SW A0, 40(S8) -990: eTaskState eReturn; -991: List_t *pxStateList; -992: const TCB_t * const pxTCB = ( TCB_t * ) xTask; -BFD044A0 0028FC5E LW V0, 40(S8) -BFD044A4 0014F85E SW V0, 20(S8) -993: -994: configASSERT( pxTCB ); -BFD044A8 0014FC5E LW V0, 20(S8) -BFD044AC 000940A2 BNEZC V0, 0xBFD044C2 -BFD044B0 BFD141A2 LUI V0, 0xBFD1 -BFD044B2 3082BFD1 LDC1 F30, 12418(S1) -BFD044B4 98103082 ADDIU A0, V0, -26608 -BFD044B6 30A09810 SWC1 F0, 12448(S0) -BFD044B8 03E230A0 ADDIU A1, ZERO, 994 -BFD044BC 4B7E77E8 JALS vAssertCalled -BFD044BE 4B7E LW K1, 120(SP) -BFD044C0 0C00 NOP -995: -996: if( pxTCB == pxCurrentTCB ) -BFD044C2 8030FC5C LW V0, -32720(GP) -BFD044C6 0014FC7E LW V1, 20(S8) -BFD044CA 0005B443 BNE V1, V0, 0xBFD044D8 -BFD044CC 0C000005 SLL ZERO, A1, 1 -BFD044CE 0C00 NOP -997: { -998: /* The task calling this function is querying its own state. */ -999: eReturn = eRunning; -BFD044D0 0010F81E SW ZERO, 16(S8) -BFD044D4 CC48 B 0xBFD04566 -BFD044D6 0C00 NOP -1000: } -1001: else -1002: { -1003: taskENTER_CRITICAL(); -BFD044D8 33B877E8 JALS vTaskEnterCritical -BFD044DA 0C0033B8 ADDIU SP, T8, 3072 -BFD044DC 0C00 NOP -1004: { -1005: pxStateList = ( List_t * ) listLIST_ITEM_CONTAINER( &( pxTCB->xGenericListItem ) ); -BFD044DE 0014FC5E LW V0, 20(S8) -BFD044E2 6925 LW V0, 20(V0) -BFD044E4 0018F85E SW V0, 24(S8) -1006: } -1007: taskEXIT_CRITICAL(); -BFD044E8 40AA77E8 JALS vTaskExitCritical -BFD044EA 0C0040AA BNEZC T2, 0xBFD05CEE -BFD044EC 0C00 NOP -1008: -1009: if( ( pxStateList == pxDelayedTaskList ) || ( pxStateList == pxOverflowDelayedTaskList ) ) -BFD044EE 8074FC5C LW V0, -32652(GP) -BFD044F2 0018FC7E LW V1, 24(S8) -BFD044F6 00089443 BEQ V1, V0, 0xBFD0450A -BFD044F8 0C000008 SLL ZERO, T0, 1 -BFD044FA 0C00 NOP -BFD044FC 8078FC5C LW V0, -32648(GP) -BFD04500 0018FC7E LW V1, 24(S8) -BFD04504 0006B443 BNE V1, V0, 0xBFD04514 -BFD04506 0C000006 SLL ZERO, A2, 1 -BFD04508 0C00 NOP -1010: { -1011: /* The task being queried is referenced from one of the Blocked -1012: lists. */ -1013: eReturn = eBlocked; -BFD0450A ED02 LI V0, 2 -BFD0450C 0010F85E SW V0, 16(S8) -BFD04510 CC2A B 0xBFD04566 -BFD04512 0C00 NOP -1014: } -1015: -1016: #if ( INCLUDE_vTaskSuspend == 1 ) -1017: else if( pxStateList == &xSuspendedTaskList ) -BFD04514 0018FC7E LW V1, 24(S8) -BFD04518 BFD241A2 LUI V0, 0xBFD2 -BFD0451A 3042BFD2 LDC1 F30, 12354(S2) -BFD0451C 80E43042 ADDIU V0, V0, -32540 -BFD04520 0010B443 BNE V1, V0, 0xBFD04544 -BFD04522 0C000010 SLL ZERO, S0, 1 -BFD04524 0C00 NOP -1018: { -1019: /* The task being queried is referenced from the suspended -1020: list. Is it genuinely suspended or is it block -1021: indefinitely? */ -1022: if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ) -BFD04526 0014FC5E LW V0, 20(S8) -BFD0452A 692A LW V0, 40(V0) -BFD0452C 000540A2 BNEZC V0, 0xBFD0453A -1023: { -1024: eReturn = eSuspended; -BFD04530 ED03 LI V0, 3 -BFD04532 0010F85E SW V0, 16(S8) -BFD04536 CC17 B 0xBFD04566 -BFD04538 0C00 NOP -1025: } -1026: else -1027: { -1028: eReturn = eBlocked; -BFD0453A ED02 LI V0, 2 -BFD0453C 0010F85E SW V0, 16(S8) -BFD04540 CC12 B 0xBFD04566 -BFD04542 0C00 NOP -1029: } -1030: } -1031: #endif -1032: -1033: #if ( INCLUDE_vTaskDelete == 1 ) -1034: else if( pxStateList == &xTasksWaitingTermination ) -BFD04544 0018FC7E LW V1, 24(S8) -BFD04548 BFD241A2 LUI V0, 0xBFD2 -BFD0454A 3042BFD2 LDC1 F30, 12354(S2) -BFD0454C 810C3042 ADDIU V0, V0, -32500 -BFD04550 0006B443 BNE V1, V0, 0xBFD04560 -BFD04552 0C000006 SLL ZERO, A2, 1 -BFD04554 0C00 NOP -1035: { -1036: /* The task being queried is referenced from the deleted -1037: tasks list. */ -1038: eReturn = eDeleted; -BFD04556 ED04 LI V0, 4 -BFD04558 0010F85E SW V0, 16(S8) -BFD0455C CC04 B 0xBFD04566 -BFD0455E 0C00 NOP -1039: } -1040: #endif -1041: -1042: else /*lint !e525 Negative indentation is intended to make use of pre-processor clearer. */ -1043: { -1044: /* If the task is not in any other state, it must be in the -1045: Ready (including pending ready) state. */ -1046: eReturn = eReady; -BFD04560 ED01 LI V0, 1 -BFD04562 0010F85E SW V0, 16(S8) -1047: } -1048: } -1049: -1050: return eReturn; -BFD04566 0010FC5E LW V0, 16(S8) -1051: } /*lint !e818 xTask cannot be a pointer to const because it is a typedef. */ -BFD0456A 0FBE MOVE SP, S8 -BFD0456C 4BE9 LW RA, 36(SP) -BFD0456E 4BC8 LW S8, 32(SP) -BFD04570 4C15 ADDIU SP, SP, 40 -BFD04572 459F JR16 RA -BFD04574 0C00 NOP -1052: -1053: #endif /* INCLUDE_eTaskGetState */ -1054: /*-----------------------------------------------------------*/ -1055: -1056: #if ( INCLUDE_uxTaskPriorityGet == 1 ) -1057: -1058: UBaseType_t uxTaskPriorityGet( TaskHandle_t xTask ) -1059: { -BFD08B78 4FF1 ADDIU SP, SP, -32 -BFD08B7A CBE7 SW RA, 28(SP) -BFD08B7C CBC6 SW S8, 24(SP) -BFD08B7E 0FDD MOVE S8, SP -BFD08B80 0020F89E SW A0, 32(S8) -1060: TCB_t *pxTCB; -1061: UBaseType_t uxReturn; -1062: -1063: taskENTER_CRITICAL(); -BFD08B84 33B877E8 JALS vTaskEnterCritical -BFD08B86 0C0033B8 ADDIU SP, T8, 3072 -BFD08B88 0C00 NOP -1064: { -1065: /* If null is passed in here then we are changing the -1066: priority of the calling function. */ -1067: pxTCB = prvGetTCBFromHandle( xTask ); -BFD08B8A 0020FC5E LW V0, 32(S8) -BFD08B8E 000440A2 BNEZC V0, 0xBFD08B9A -BFD08B92 8030FC5C LW V0, -32720(GP) -BFD08B96 CC03 B 0xBFD08B9E -BFD08B98 0C00 NOP -BFD08B9A 0020FC5E LW V0, 32(S8) -BFD08B9E 0010F85E SW V0, 16(S8) -1068: uxReturn = pxTCB->uxPriority; -BFD08BA2 0010FC5E LW V0, 16(S8) -BFD08BA6 692B LW V0, 44(V0) -BFD08BA8 0014F85E SW V0, 20(S8) -1069: } -1070: taskEXIT_CRITICAL(); -BFD08BAC 40AA77E8 JALS vTaskExitCritical -BFD08BAE 0C0040AA BNEZC T2, 0xBFD0A3B2 -BFD08BB0 0C00 NOP -1071: -1072: return uxReturn; -BFD08BB2 0014FC5E LW V0, 20(S8) -1073: } -BFD08BB6 0FBE MOVE SP, S8 -BFD08BB8 4BE7 LW RA, 28(SP) -BFD08BBA 4BC6 LW S8, 24(SP) -BFD08BBC 4C11 ADDIU SP, SP, 32 -BFD08BBE 459F JR16 RA -BFD08BC0 0C00 NOP -1074: -1075: #endif /* INCLUDE_uxTaskPriorityGet */ -1076: /*-----------------------------------------------------------*/ -1077: -1078: #if ( INCLUDE_uxTaskPriorityGet == 1 ) -1079: -1080: UBaseType_t uxTaskPriorityGetFromISR( TaskHandle_t xTask ) -1081: { -BFD08708 4FED ADDIU SP, SP, -40 -BFD0870A CBE9 SW RA, 36(SP) -BFD0870C CBC8 SW S8, 32(SP) -BFD0870E 0FDD MOVE S8, SP -BFD08710 0028F89E SW A0, 40(S8) -1082: TCB_t *pxTCB; -1083: UBaseType_t uxReturn, uxSavedInterruptState; -1084: -1085: /* RTOS ports that support interrupt nesting have the concept of a -1086: maximum system call (or maximum API call) interrupt priority. -1087: Interrupts that are above the maximum system call priority are keep -1088: permanently enabled, even when the RTOS kernel is in a critical section, -1089: but cannot make any calls to FreeRTOS API functions. If configASSERT() -1090: is defined in FreeRTOSConfig.h then -1091: portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -1092: failure if a FreeRTOS API function is called from an interrupt that has -1093: been assigned a priority above the configured maximum system call -1094: priority. Only FreeRTOS functions that end in FromISR can be called -1095: from interrupts that have been assigned a priority at or (logically) -1096: below the maximum system call interrupt priority. FreeRTOS maintains a -1097: separate interrupt safe API to ensure interrupt entry is as fast and as -1098: simple as possible. More information (albeit Cortex-M specific) is -1099: provided on the following link: -1100: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -1101: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -1102: -1103: uxSavedInterruptState = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD08714 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD08718 0C00 NOP -BFD0871A 0010F85E SW V0, 16(S8) -1104: { -1105: /* If null is passed in here then it is the priority of the calling -1106: task that is being queried. */ -1107: pxTCB = prvGetTCBFromHandle( xTask ); -BFD0871E 0028FC5E LW V0, 40(S8) -BFD08722 000440A2 BNEZC V0, 0xBFD0872E -BFD08726 8030FC5C LW V0, -32720(GP) -BFD0872A CC03 B 0xBFD08732 -BFD0872C 0C00 NOP -BFD0872E 0028FC5E LW V0, 40(S8) -BFD08732 0014F85E SW V0, 20(S8) -1108: uxReturn = pxTCB->uxPriority; -BFD08736 0014FC5E LW V0, 20(S8) -BFD0873A 692B LW V0, 44(V0) -BFD0873C 0018F85E SW V0, 24(S8) -1109: } -1110: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptState ); -BFD08740 0010FC9E LW A0, 16(S8) -BFD08744 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD08746 4D5E ADDIU T2, T2, -1 -BFD08748 0C00 NOP -1111: -1112: return uxReturn; -BFD0874A 0018FC5E LW V0, 24(S8) -1113: } -BFD0874E 0FBE MOVE SP, S8 -BFD08750 4BE9 LW RA, 36(SP) -BFD08752 4BC8 LW S8, 32(SP) -BFD08754 4C15 ADDIU SP, SP, 40 -BFD08756 459F JR16 RA -BFD08758 0C00 NOP -1114: -1115: #endif /* INCLUDE_uxTaskPriorityGet */ -1116: /*-----------------------------------------------------------*/ -1117: -1118: #if ( INCLUDE_vTaskPrioritySet == 1 ) -1119: -1120: void vTaskPrioritySet( TaskHandle_t xTask, UBaseType_t uxNewPriority ) -1121: { -BFD01924 4FE9 ADDIU SP, SP, -48 -BFD01926 CBEB SW RA, 44(SP) -BFD01928 CBCA SW S8, 40(SP) -BFD0192A 0FDD MOVE S8, SP -BFD0192C 0030F89E SW A0, 48(S8) -BFD01930 0034F8BE SW A1, 52(S8) -1122: TCB_t *pxTCB; -1123: UBaseType_t uxCurrentBasePriority, uxPriorityUsedOnEntry; -1124: BaseType_t xYieldRequired = pdFALSE; -BFD01934 0010F81E SW ZERO, 16(S8) -1125: -1126: configASSERT( ( uxNewPriority < configMAX_PRIORITIES ) ); -BFD01938 0034FC5E LW V0, 52(S8) -BFD0193C 0005B042 SLTIU V0, V0, 5 -BFD01940 000940A2 BNEZC V0, 0xBFD01956 -BFD01944 BFD141A2 LUI V0, 0xBFD1 -BFD01946 3082BFD1 LDC1 F30, 12418(S1) -BFD01948 98103082 ADDIU A0, V0, -26608 -BFD0194A 30A09810 SWC1 F0, 12448(S0) -BFD0194C 046630A0 ADDIU A1, ZERO, 1126 -BFD0194E 0466 ADDU S0, V1, A2 -BFD01950 4B7E77E8 JALS vAssertCalled -BFD01952 4B7E LW K1, 120(SP) -BFD01954 0C00 NOP -1127: -1128: /* Ensure the new priority is valid. */ -1129: if( uxNewPriority >= ( UBaseType_t ) configMAX_PRIORITIES ) -BFD01956 0034FC5E LW V0, 52(S8) -BFD0195A 0005B042 SLTIU V0, V0, 5 -BFD0195E 000340A2 BNEZC V0, 0xBFD01968 -1130: { -1131: uxNewPriority = ( UBaseType_t ) configMAX_PRIORITIES - ( UBaseType_t ) 1U; -BFD01962 ED04 LI V0, 4 -BFD01964 0034F85E SW V0, 52(S8) -1132: } -1133: else -1134: { -1135: mtCOVERAGE_TEST_MARKER(); -1136: } -1137: -1138: taskENTER_CRITICAL(); -BFD01968 33B877E8 JALS vTaskEnterCritical -BFD0196A 0C0033B8 ADDIU SP, T8, 3072 -BFD0196C 0C00 NOP -1139: { -1140: /* If null is passed in here then it is the priority of the calling -1141: task that is being changed. */ -1142: pxTCB = prvGetTCBFromHandle( xTask ); -BFD0196E 0030FC5E LW V0, 48(S8) -BFD01972 000440A2 BNEZC V0, 0xBFD0197E -BFD01976 8030FC5C LW V0, -32720(GP) -BFD0197A CC03 B 0xBFD01982 -BFD0197C 0C00 NOP -BFD0197E 0030FC5E LW V0, 48(S8) -BFD01982 0014F85E SW V0, 20(S8) -1143: -1144: traceTASK_PRIORITY_SET( pxTCB, uxNewPriority ); -1145: -1146: #if ( configUSE_MUTEXES == 1 ) -1147: { -1148: uxCurrentBasePriority = pxTCB->uxBasePriority; -BFD01986 0014FC5E LW V0, 20(S8) -BFD0198A 0040FC42 LW V0, 64(V0) -BFD0198E 0018F85E SW V0, 24(S8) -1149: } -1150: #else -1151: { -1152: uxCurrentBasePriority = pxTCB->uxPriority; -1153: } -1154: #endif -1155: -1156: if( uxCurrentBasePriority != uxNewPriority ) -BFD01992 0018FC7E LW V1, 24(S8) -BFD01996 0034FC5E LW V0, 52(S8) -BFD0199A 00AD9443 BEQ V1, V0, 0xBFD01AF8 -BFD0199C 0C0000AD SLL A1, T5, 1 -BFD0199E 0C00 NOP -1157: { -1158: /* The priority change may have readied a task of higher -1159: priority than the calling task. */ -1160: if( uxNewPriority > uxCurrentBasePriority ) -BFD019A0 0034FC7E LW V1, 52(S8) -BFD019A4 0018FC5E LW V0, 24(S8) -BFD019A8 13900062 SLTU V0, V0, V1 -BFD019AA 40E21390 ADDI GP, S0, 16610 -BFD019AC 001540E2 BEQZC V0, 0xBFD019DA -1161: { -1162: if( pxTCB != pxCurrentTCB ) -BFD019B0 8030FC5C LW V0, -32720(GP) -BFD019B4 0014FC7E LW V1, 20(S8) -BFD019B8 00199443 BEQ V1, V0, 0xBFD019EE -BFD019BA 0C000019 SLL ZERO, T9, 1 -BFD019BC 0C00 NOP -1163: { -1164: /* The priority of a task other than the currently -1165: running task is being raised. Is the priority being -1166: raised above that of the running task? */ -1167: if( uxNewPriority >= pxCurrentTCB->uxPriority ) -BFD019BE 8030FC5C LW V0, -32720(GP) -BFD019C2 69AB LW V1, 44(V0) -BFD019C4 0034FC5E LW V0, 52(S8) -BFD019C8 13900062 SLTU V0, V0, V1 -BFD019CA 40A21390 ADDI GP, S0, 16546 -BFD019CC 000F40A2 BNEZC V0, 0xBFD019EE -1168: { -1169: xYieldRequired = pdTRUE; -BFD019D0 ED01 LI V0, 1 -BFD019D2 0010F85E SW V0, 16(S8) -BFD019D6 CC0B B 0xBFD019EE -BFD019D8 0C00 NOP -1170: } -1171: else -1172: { -1173: mtCOVERAGE_TEST_MARKER(); -1174: } -1175: } -1176: else -1177: { -1178: /* The priority of the running task is being raised, -1179: but the running task must already be the highest -1180: priority task able to run so no yield is required. */ -1181: } -1182: } -1183: else if( pxTCB == pxCurrentTCB ) -BFD019DA 8030FC5C LW V0, -32720(GP) -BFD019DE 0014FC7E LW V1, 20(S8) -BFD019E2 0004B443 BNE V1, V0, 0xBFD019EE -BFD019E4 0C000004 SLL ZERO, A0, 1 -BFD019E6 0C00 NOP -1184: { -1185: /* Setting the priority of the running task down means -1186: there may now be another task of higher priority that -1187: is ready to execute. */ -1188: xYieldRequired = pdTRUE; -BFD019E8 ED01 LI V0, 1 -BFD019EA 0010F85E SW V0, 16(S8) -1189: } -1190: else -1191: { -1192: /* Setting the priority of any other task down does not -1193: require a yield as the running task must be above the -1194: new priority of the task being modified. */ -1195: } -1196: -1197: /* Remember the ready list the task might be referenced from -1198: before its uxPriority member is changed so the -1199: taskRESET_READY_PRIORITY() macro can function correctly. */ -1200: uxPriorityUsedOnEntry = pxTCB->uxPriority; -BFD019EE 0014FC5E LW V0, 20(S8) -BFD019F2 692B LW V0, 44(V0) -BFD019F4 001CF85E SW V0, 28(S8) -1201: -1202: #if ( configUSE_MUTEXES == 1 ) -1203: { -1204: /* Only change the priority being used if the task is not -1205: currently using an inherited priority. */ -1206: if( pxTCB->uxBasePriority == pxTCB->uxPriority ) -BFD019F8 0014FC5E LW V0, 20(S8) -BFD019FC 0040FC62 LW V1, 64(V0) -BFD01A00 0014FC5E LW V0, 20(S8) -BFD01A04 692B LW V0, 44(V0) -BFD01A06 0006B443 BNE V1, V0, 0xBFD01A16 -BFD01A08 0C000006 SLL ZERO, A2, 1 -BFD01A0A 0C00 NOP -1207: { -1208: pxTCB->uxPriority = uxNewPriority; -BFD01A0C 0014FC5E LW V0, 20(S8) -BFD01A10 0034FC7E LW V1, 52(S8) -BFD01A14 E9AB SW V1, 44(V0) -1209: } -1210: else -1211: { -1212: mtCOVERAGE_TEST_MARKER(); -1213: } -1214: -1215: /* The base priority gets set whatever. */ -1216: pxTCB->uxBasePriority = uxNewPriority; -BFD01A16 0014FC5E LW V0, 20(S8) -BFD01A1A 0034FC7E LW V1, 52(S8) -BFD01A1E 0040F862 SW V1, 64(V0) -1217: } -1218: #else -1219: { -1220: pxTCB->uxPriority = uxNewPriority; -1221: } -1222: #endif -1223: -1224: /* Only reset the event list item value if the value is not -1225: being used for anything else. */ -1226: if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL ) -BFD01A22 0014FC5E LW V0, 20(S8) -BFD01A26 6926 LW V0, 24(V0) -BFD01A28 00084002 BLTZ V0, 0xBFD01A3C -BFD01A2A 0C000008 SLL ZERO, T0, 1 -BFD01A2C 0C00 NOP -1227: { -1228: listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxNewPriority ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD01A2E ED85 LI V1, 5 -BFD01A30 0034FC5E LW V0, 52(S8) -BFD01A34 05A7 SUBU V1, V1, V0 -BFD01A36 0014FC5E LW V0, 20(S8) -BFD01A3A E9A6 SW V1, 24(V0) -1229: } -1230: else -1231: { -1232: mtCOVERAGE_TEST_MARKER(); -1233: } -1234: -1235: /* If the task is in the blocked or suspended list we need do -1236: nothing more than change it's priority variable. However, if -1237: the task is in a ready list it needs to be removed and placed -1238: in the list appropriate to its new priority. */ -1239: if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ uxPriorityUsedOnEntry ] ), &( pxTCB->xGenericListItem ) ) != pdFALSE ) -BFD01A3C 0014FC5E LW V0, 20(S8) -BFD01A3E 69A50014 LWX T5, 0(S4) -BFD01A40 69A5 LW V1, 20(V0) -BFD01A42 001CFC5E LW V0, 28(S8) -BFD01A46 2524 SLL V0, V0, 2 -BFD01A48 2624 SLL A0, V0, 2 -BFD01A4A 0644 ADDU A0, V0, A0 -BFD01A4C BFD241A2 LUI V0, 0xBFD2 -BFD01A4E 3042BFD2 LDC1 F30, 12354(S2) -BFD01A50 806C3042 ADDIU V0, V0, -32660 -BFD01A54 0528 ADDU V0, A0, V0 -BFD01A56 0004B443 BNE V1, V0, 0xBFD01A62 -BFD01A58 0C000004 SLL ZERO, A0, 1 -BFD01A5A 0C00 NOP -BFD01A5C ED01 LI V0, 1 -BFD01A5E CC02 B 0xBFD01A64 -BFD01A60 0C00 NOP -BFD01A62 0C40 MOVE V0, ZERO -BFD01A64 003240E2 BEQZC V0, 0xBFD01ACC -1240: { -1241: /* The task is currently in its ready list - remove before adding -1242: it to it's new ready list. As we are in a critical section we -1243: can do this even if the scheduler is suspended. */ -1244: if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD01A68 0014FC5E LW V0, 20(S8) -BFD01A6C 6D22 ADDIU V0, V0, 4 -BFD01A6E 0C82 MOVE A0, V0 -BFD01A70 00C877E8 JALS uxListRemove -BFD01A72 0C0000C8 SLL A2, T0, 1 -BFD01A74 0C00 NOP -BFD01A76 000B40A2 BNEZC V0, 0xBFD01A90 -1245: { -1246: /* It is known that the task is in its ready list so -1247: there is no need to check again and the port level -1248: reset macro can be called directly. */ -1249: portRESET_READY_PRIORITY( uxPriorityUsedOnEntry, uxTopReadyPriority ); -BFD01A7A 001CFC5E LW V0, 28(S8) -BFD01A7E ED81 LI V1, 1 -BFD01A80 10100062 SLLV V0, V0, V1 -BFD01A82 441A1010 ADDI ZERO, S0, 17434 -BFD01A84 441A NOT16 V1, V0 -BFD01A86 8040FC5C LW V0, -32704(GP) -BFD01A8A 4493 AND16 V0, V1 -BFD01A8C 8040F85C SW V0, -32704(GP) -1250: } -1251: else -1252: { -1253: mtCOVERAGE_TEST_MARKER(); -1254: } -1255: prvAddTaskToReadyList( pxTCB ); -BFD01A90 0014FC5E LW V0, 20(S8) -BFD01A94 692B LW V0, 44(V0) -BFD01A96 ED81 LI V1, 1 -BFD01A98 18100062 SLLV V1, V0, V1 -BFD01A9A FC5C1810 SB ZERO, -932(S0) -BFD01A9C 8040FC5C LW V0, -32704(GP) -BFD01AA0 44D3 OR16 V0, V1 -BFD01AA2 8040F85C SW V0, -32704(GP) -BFD01AA6 0014FC5E LW V0, 20(S8) -BFD01AAA 692B LW V0, 44(V0) -BFD01AAC 2524 SLL V0, V0, 2 -BFD01AAE 25A4 SLL V1, V0, 2 -BFD01AB0 05B4 ADDU V1, V0, V1 -BFD01AB2 BFD241A2 LUI V0, 0xBFD2 -BFD01AB4 3042BFD2 LDC1 F30, 12354(S2) -BFD01AB6 806C3042 ADDIU V0, V0, -32660 -BFD01ABA 05A6 ADDU V1, V1, V0 -BFD01ABC 0014FC5E LW V0, 20(S8) -BFD01AC0 6D22 ADDIU V0, V0, 4 -BFD01AC2 0C83 MOVE A0, V1 -BFD01AC4 0CA2 MOVE A1, V0 -BFD01AC6 3E4A77E8 JALS vListInsertEnd -BFD01AC8 0C003E4A LH S2, 3072(T2) -BFD01ACA 0C00 NOP -1256: } -1257: else -1258: { -1259: mtCOVERAGE_TEST_MARKER(); -1260: } -1261: -1262: if( xYieldRequired == pdTRUE ) -BFD01ACC 0010FC7E LW V1, 16(S8) -BFD01AD0 ED01 LI V0, 1 -BFD01AD2 0011B443 BNE V1, V0, 0xBFD01AF8 -BFD01AD4 0C000011 SLL ZERO, S1, 1 -BFD01AD6 0C00 NOP -1263: { -1264: taskYIELD_IF_USING_PREEMPTION(); -BFD01AD8 4E5677E8 JALS ulPortGetCP0Cause -BFD01ADA 4E56 ADDIU S2, S2, -5 -BFD01ADC 0C00 NOP -BFD01ADE 0020F85E SW V0, 32(S8) -BFD01AE2 0020FC5E LW V0, 32(S8) -BFD01AE6 01005042 ORI V0, V0, 256 -BFD01AEA 0020F85E SW V0, 32(S8) -BFD01AEE 0020FC9E LW A0, 32(S8) -BFD01AF2 4E6677E8 JALS vPortSetCP0Cause -BFD01AF4 4E66 ADDIU S3, S3, 3 -BFD01AF6 0C00 NOP -1265: } -1266: else -1267: { -1268: mtCOVERAGE_TEST_MARKER(); -1269: } -1270: -1271: /* Remove compiler warning about unused variables when the port -1272: optimised task selection is not being used. */ -1273: ( void ) uxPriorityUsedOnEntry; -1274: } -1275: } -1276: taskEXIT_CRITICAL(); -BFD01AF8 40AA77E8 JALS vTaskExitCritical -BFD01AFA 0C0040AA BNEZC T2, 0xBFD032FE -BFD01AFC 0C00 NOP -1277: } -BFD01AFE 0FBE MOVE SP, S8 -BFD01B00 4BEB LW RA, 44(SP) -BFD01B02 4BCA LW S8, 40(SP) -BFD01B04 4C19 ADDIU SP, SP, 48 -BFD01B06 459F JR16 RA -BFD01B08 0C00 NOP -1278: -1279: #endif /* INCLUDE_vTaskPrioritySet */ -1280: /*-----------------------------------------------------------*/ -1281: -1282: #if ( INCLUDE_vTaskSuspend == 1 ) -1283: -1284: void vTaskSuspend( TaskHandle_t xTaskToSuspend ) -1285: { -BFD0304C 4FF1 ADDIU SP, SP, -32 -BFD0304E CBE7 SW RA, 28(SP) -BFD03050 CBC6 SW S8, 24(SP) -BFD03052 0FDD MOVE S8, SP -BFD03054 0020F89E SW A0, 32(S8) -1286: TCB_t *pxTCB; -1287: -1288: taskENTER_CRITICAL(); -BFD03058 33B877E8 JALS vTaskEnterCritical -BFD0305A 0C0033B8 ADDIU SP, T8, 3072 -BFD0305C 0C00 NOP -1289: { -1290: /* If null is passed in here then it is the running task that is -1291: being suspended. */ -1292: pxTCB = prvGetTCBFromHandle( xTaskToSuspend ); -BFD0305E 0020FC5E LW V0, 32(S8) -BFD03062 000440A2 BNEZC V0, 0xBFD0306E -BFD03066 8030FC5C LW V0, -32720(GP) -BFD0306A CC03 B 0xBFD03072 -BFD0306C 0C00 NOP -BFD0306E 0020FC5E LW V0, 32(S8) -BFD03072 0010F85E SW V0, 16(S8) -1293: -1294: traceTASK_SUSPEND( pxTCB ); -1295: -1296: /* Remove task from the ready/delayed list and place in the -1297: suspended list. */ -1298: if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD03076 0010FC5E LW V0, 16(S8) -BFD0307A 6D22 ADDIU V0, V0, 4 -BFD0307C 0C82 MOVE A0, V0 -BFD0307E 00C877E8 JALS uxListRemove -BFD03080 0C0000C8 SLL A2, T0, 1 -BFD03082 0C00 NOP -BFD03084 001A40A2 BNEZC V0, 0xBFD030BC -1299: { -1300: taskRESET_READY_PRIORITY( pxTCB->uxPriority ); -BFD03088 0010FC5E LW V0, 16(S8) -BFD0308C 692B LW V0, 44(V0) -BFD0308E 2524 SLL V0, V0, 2 -BFD03090 25A4 SLL V1, V0, 2 -BFD03092 05B4 ADDU V1, V0, V1 -BFD03094 BFD241A2 LUI V0, 0xBFD2 -BFD03096 3042BFD2 LDC1 F30, 12354(S2) -BFD03098 806C3042 ADDIU V0, V0, -32660 -BFD0309C 0526 ADDU V0, V1, V0 -BFD0309E 6920 LW V0, 0(V0) -BFD030A0 000C40A2 BNEZC V0, 0xBFD030BC -BFD030A4 0010FC5E LW V0, 16(S8) -BFD030A8 692B LW V0, 44(V0) -BFD030AA ED81 LI V1, 1 -BFD030AC 10100062 SLLV V0, V0, V1 -BFD030AE 441A1010 ADDI ZERO, S0, 17434 -BFD030B0 441A NOT16 V1, V0 -BFD030B2 8040FC5C LW V0, -32704(GP) -BFD030B6 4493 AND16 V0, V1 -BFD030B8 8040F85C SW V0, -32704(GP) -1301: } -1302: else -1303: { -1304: mtCOVERAGE_TEST_MARKER(); -1305: } -1306: -1307: /* Is the task waiting on an event also? */ -1308: if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) -BFD030BC 0010FC5E LW V0, 16(S8) -BFD030C0 692A LW V0, 40(V0) -BFD030C2 000740E2 BEQZC V0, 0xBFD030D4 -1309: { -1310: ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); -BFD030C6 0010FC5E LW V0, 16(S8) -BFD030C8 6D2C0010 EXT ZERO, S0, 20, 14 -BFD030CA 6D2C ADDIU V0, V0, 24 -BFD030CC 0C82 MOVE A0, V0 -BFD030CE 00C877E8 JALS uxListRemove -BFD030D0 0C0000C8 SLL A2, T0, 1 -BFD030D2 0C00 NOP -1311: } -1312: else -1313: { -1314: mtCOVERAGE_TEST_MARKER(); -1315: } -1316: -1317: vListInsertEnd( &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ); -BFD030D4 0010FC5E LW V0, 16(S8) -BFD030D8 6D22 ADDIU V0, V0, 4 -BFD030DA BFD241A3 LUI V1, 0xBFD2 -BFD030DC 3083BFD2 LDC1 F30, 12419(S2) -BFD030DE 80E43083 ADDIU A0, V1, -32540 -BFD030E2 0CA2 MOVE A1, V0 -BFD030E4 3E4A77E8 JALS vListInsertEnd -BFD030E6 0C003E4A LH S2, 3072(T2) -BFD030E8 0C00 NOP -1318: } -1319: taskEXIT_CRITICAL(); -BFD030EA 40AA77E8 JALS vTaskExitCritical -BFD030EC 0C0040AA BNEZC T2, 0xBFD048F0 -BFD030EE 0C00 NOP -1320: -1321: if( pxTCB == pxCurrentTCB ) -BFD030F0 8030FC5C LW V0, -32720(GP) -BFD030F4 0010FC7E LW V1, 16(S8) -BFD030F8 0036B443 BNE V1, V0, 0xBFD03168 -BFD030FA 0C000036 SLL AT, S6, 1 -BFD030FC 0C00 NOP -1322: { -1323: if( xSchedulerRunning != pdFALSE ) -BFD030FE 8044FC5C LW V0, -32700(GP) -BFD03102 001F40E2 BEQZC V0, 0xBFD03144 -1324: { -1325: /* The current task has just been suspended. */ -1326: configASSERT( uxSchedulerSuspended == 0 ); -BFD03106 805CFC5C LW V0, -32676(GP) -BFD0310A 000940E2 BEQZC V0, 0xBFD03120 -BFD0310E BFD141A2 LUI V0, 0xBFD1 -BFD03110 3082BFD1 LDC1 F30, 12418(S1) -BFD03112 98103082 ADDIU A0, V0, -26608 -BFD03114 30A09810 SWC1 F0, 12448(S0) -BFD03116 052E30A0 ADDIU A1, ZERO, 1326 -BFD03118 052E ADDU V0, A3, V0 -BFD0311A 4B7E77E8 JALS vAssertCalled -BFD0311C 4B7E LW K1, 120(SP) -BFD0311E 0C00 NOP -1327: portYIELD_WITHIN_API(); -BFD03120 4E5677E8 JALS ulPortGetCP0Cause -BFD03122 4E56 ADDIU S2, S2, -5 -BFD03124 0C00 NOP -BFD03126 0014F85E SW V0, 20(S8) -BFD0312A 0014FC5E LW V0, 20(S8) -BFD0312E 01005042 ORI V0, V0, 256 -BFD03132 0014F85E SW V0, 20(S8) -BFD03136 0014FC9E LW A0, 20(S8) -BFD0313A 4E6677E8 JALS vPortSetCP0Cause -BFD0313C 4E66 ADDIU S3, S3, 3 -BFD0313E 0C00 NOP -BFD03140 CC20 B 0xBFD03182 -BFD03142 0C00 NOP -1328: } -1329: else -1330: { -1331: /* The scheduler is not running, but the task that was pointed -1332: to by pxCurrentTCB has just been suspended and pxCurrentTCB -1333: must be adjusted to point to a different task. */ -1334: if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == uxCurrentNumberOfTasks ) -BFD03144 BFD241A2 LUI V0, 0xBFD2 -BFD03146 FC62BFD2 LDC1 F30, -926(S2) -BFD03148 80E4FC62 LW V1, -32540(V0) -BFD0314C 8038FC5C LW V0, -32712(GP) -BFD03150 0005B443 BNE V1, V0, 0xBFD0315E -BFD03152 0C000005 SLL ZERO, A1, 1 -BFD03154 0C00 NOP -1335: { -1336: /* No other tasks are ready, so set pxCurrentTCB back to -1337: NULL so when the next task is created pxCurrentTCB will -1338: be set to point to it no matter what its relative priority -1339: is. */ -1340: pxCurrentTCB = NULL; -BFD03156 8030F81C SW ZERO, -32720(GP) -BFD0315A CC13 B 0xBFD03182 -BFD0315C 0C00 NOP -1341: } -1342: else -1343: { -1344: vTaskSwitchContext(); -BFD0315E 16DE77E8 JALS vTaskSwitchContext -BFD03160 0C0016DE LBU S6, 3072(S8) -BFD03162 0C00 NOP -BFD03164 CC0E B 0xBFD03182 -BFD03166 0C00 NOP -1345: } -1346: } -1347: } -1348: else -1349: { -1350: if( xSchedulerRunning != pdFALSE ) -BFD03168 8044FC5C LW V0, -32700(GP) -BFD0316C 000940E2 BEQZC V0, 0xBFD03182 -1351: { -1352: /* A task other than the currently running task was suspended, -1353: reset the next expected unblock time in case it referred to the -1354: task that is now in the Suspended state. */ -1355: taskENTER_CRITICAL(); -BFD03170 33B877E8 JALS vTaskEnterCritical -BFD03172 0C0033B8 ADDIU SP, T8, 3072 -BFD03174 0C00 NOP -1356: { -1357: prvResetNextTaskUnblockTime(); -BFD03176 47CA77E8 JALS prvResetNextTaskUnblockTime -BFD0317A 0C00 NOP -1358: } -1359: taskEXIT_CRITICAL(); -BFD0317C 40AA77E8 JALS vTaskExitCritical -BFD0317E 0C0040AA BNEZC T2, 0xBFD04982 -BFD03180 0C00 NOP -1360: } -1361: else -1362: { -1363: mtCOVERAGE_TEST_MARKER(); -1364: } -1365: } -1366: } -BFD03182 0FBE MOVE SP, S8 -BFD03184 4BE7 LW RA, 28(SP) -BFD03186 4BC6 LW S8, 24(SP) -BFD03188 4C11 ADDIU SP, SP, 32 -BFD0318A 459F JR16 RA -BFD0318C 0C00 NOP -1367: -1368: #endif /* INCLUDE_vTaskSuspend */ -1369: /*-----------------------------------------------------------*/ -1370: -1371: #if ( INCLUDE_vTaskSuspend == 1 ) -1372: -1373: static BaseType_t prvTaskIsTaskSuspended( const TaskHandle_t xTask ) -1374: { -BFD066DC 4FF1 ADDIU SP, SP, -32 -BFD066DE CBE7 SW RA, 28(SP) -BFD066E0 CBC6 SW S8, 24(SP) -BFD066E2 0FDD MOVE S8, SP -BFD066E4 0020F89E SW A0, 32(S8) -1375: BaseType_t xReturn = pdFALSE; -BFD066E8 0010F81E SW ZERO, 16(S8) -1376: const TCB_t * const pxTCB = ( TCB_t * ) xTask; -BFD066EC 0020FC5E LW V0, 32(S8) -BFD066F0 0014F85E SW V0, 20(S8) -1377: -1378: /* Accesses xPendingReadyList so must be called from a critical -1379: section. */ -1380: -1381: /* It does not make sense to check if the calling task is suspended. */ -1382: configASSERT( xTask ); -BFD066F4 0020FC5E LW V0, 32(S8) -BFD066F8 000940A2 BNEZC V0, 0xBFD0670E -BFD066FC BFD141A2 LUI V0, 0xBFD1 -BFD066FE 3082BFD1 LDC1 F30, 12418(S1) -BFD06700 98103082 ADDIU A0, V0, -26608 -BFD06702 30A09810 SWC1 F0, 12448(S0) -BFD06704 056630A0 ADDIU A1, ZERO, 1382 -BFD06706 0566 ADDU V0, V1, A2 -BFD06708 4B7E77E8 JALS vAssertCalled -BFD0670A 4B7E LW K1, 120(SP) -BFD0670C 0C00 NOP -1383: -1384: /* Is the task being resumed actually in the suspended list? */ -1385: if( listIS_CONTAINED_WITHIN( &xSuspendedTaskList, &( pxTCB->xGenericListItem ) ) != pdFALSE ) -BFD0670E 0014FC5E LW V0, 20(S8) -BFD06710 69A50014 LWX T5, 0(S4) -BFD06712 69A5 LW V1, 20(V0) -BFD06714 BFD241A2 LUI V0, 0xBFD2 -BFD06716 3042BFD2 LDC1 F30, 12354(S2) -BFD06718 80E43042 ADDIU V0, V0, -32540 -BFD0671C 0004B443 BNE V1, V0, 0xBFD06728 -BFD0671E 0C000004 SLL ZERO, A0, 1 -BFD06720 0C00 NOP -BFD06722 ED01 LI V0, 1 -BFD06724 CC02 B 0xBFD0672A -BFD06726 0C00 NOP -BFD06728 0C40 MOVE V0, ZERO -BFD0672A 001840E2 BEQZC V0, 0xBFD0675E -1386: { -1387: /* Has the task already been resumed from within an ISR? */ -1388: if( listIS_CONTAINED_WITHIN( &xPendingReadyList, &( pxTCB->xEventListItem ) ) == pdFALSE ) -BFD0672E 0014FC5E LW V0, 20(S8) -BFD06732 69AA LW V1, 40(V0) -BFD06734 BFD241A2 LUI V0, 0xBFD2 -BFD06736 3042BFD2 LDC1 F30, 12354(S2) -BFD06738 80D03042 ADDIU V0, V0, -32560 -BFD0673C 000F9443 BEQ V1, V0, 0xBFD0675E -BFD0673E 0C00000F SLL ZERO, T7, 1 -BFD06740 0C00 NOP -1389: { -1390: /* Is it in the suspended list because it is in the Suspended -1391: state, or because is is blocked with no timeout? */ -1392: if( listIS_CONTAINED_WITHIN( NULL, &( pxTCB->xEventListItem ) ) != pdFALSE ) -BFD06742 0014FC5E LW V0, 20(S8) -BFD06746 692A LW V0, 40(V0) -BFD06748 000340A2 BNEZC V0, 0xBFD06752 -BFD0674C ED01 LI V0, 1 -BFD0674E CC02 B 0xBFD06754 -BFD06750 0C00 NOP -BFD06752 0C40 MOVE V0, ZERO -BFD06754 000340E2 BEQZC V0, 0xBFD0675E -1393: { -1394: xReturn = pdTRUE; -BFD06758 ED01 LI V0, 1 -BFD0675A 0010F85E SW V0, 16(S8) -1395: } -1396: else -1397: { -1398: mtCOVERAGE_TEST_MARKER(); -1399: } -1400: } -1401: else -1402: { -1403: mtCOVERAGE_TEST_MARKER(); -1404: } -1405: } -1406: else -1407: { -1408: mtCOVERAGE_TEST_MARKER(); -1409: } -1410: -1411: return xReturn; -BFD0675E 0010FC5E LW V0, 16(S8) -1412: } /*lint !e818 xTask cannot be a pointer to const because it is a typedef. */ -BFD06762 0FBE MOVE SP, S8 -BFD06764 4BE7 LW RA, 28(SP) -BFD06766 4BC6 LW S8, 24(SP) -BFD06768 4C11 ADDIU SP, SP, 32 -BFD0676A 459F JR16 RA -BFD0676C 0C00 NOP -1413: -1414: #endif /* INCLUDE_vTaskSuspend */ -1415: /*-----------------------------------------------------------*/ -1416: -1417: #if ( INCLUDE_vTaskSuspend == 1 ) -1418: -1419: void vTaskResume( TaskHandle_t xTaskToResume ) -1420: { -BFD040E4 4FF1 ADDIU SP, SP, -32 -BFD040E6 CBE7 SW RA, 28(SP) -BFD040E8 CBC6 SW S8, 24(SP) -BFD040EA 0FDD MOVE S8, SP -BFD040EC 0020F89E SW A0, 32(S8) -1421: TCB_t * const pxTCB = ( TCB_t * ) xTaskToResume; -BFD040F0 0020FC5E LW V0, 32(S8) -BFD040F4 0010F85E SW V0, 16(S8) -1422: -1423: /* It does not make sense to resume the calling task. */ -1424: configASSERT( xTaskToResume ); -BFD040F8 0020FC5E LW V0, 32(S8) -BFD040FC 000940A2 BNEZC V0, 0xBFD04112 -BFD04100 BFD141A2 LUI V0, 0xBFD1 -BFD04102 3082BFD1 LDC1 F30, 12418(S1) -BFD04104 98103082 ADDIU A0, V0, -26608 -BFD04106 30A09810 SWC1 F0, 12448(S0) -BFD04108 059030A0 ADDIU A1, ZERO, 1424 -BFD0410A 0590 ADDU V1, S0, S1 -BFD0410C 4B7E77E8 JALS vAssertCalled -BFD0410E 4B7E LW K1, 120(SP) -BFD04110 0C00 NOP -1425: -1426: /* The parameter cannot be NULL as it is impossible to resume the -1427: currently executing task. */ -1428: if( ( pxTCB != NULL ) && ( pxTCB != pxCurrentTCB ) ) -BFD04112 0010FC5E LW V0, 16(S8) -BFD04116 005640E2 BEQZC V0, 0xBFD041C6 -BFD0411A 8030FC5C LW V0, -32720(GP) -BFD0411E 0010FC7E LW V1, 16(S8) -BFD04122 00509443 BEQ V1, V0, 0xBFD041C6 -BFD04124 0C000050 SLL V0, S0, 1 -BFD04126 0C00 NOP -1429: { -1430: taskENTER_CRITICAL(); -BFD04128 33B877E8 JALS vTaskEnterCritical -BFD0412A 0C0033B8 ADDIU SP, T8, 3072 -BFD0412C 0C00 NOP -1431: { -1432: if( prvTaskIsTaskSuspended( pxTCB ) == pdTRUE ) -BFD0412E 0010FC9E LW A0, 16(S8) -BFD04132 336E77E8 JALS prvTaskIsTaskSuspended -BFD04134 0C00336E ADDIU K1, T6, 3072 -BFD04136 0C00 NOP -BFD04138 0C62 MOVE V1, V0 -BFD0413A ED01 LI V0, 1 -BFD0413C 0040B443 BNE V1, V0, 0xBFD041C0 -BFD0413E 0C000040 SLL V0, ZERO, 1 -BFD04140 0C00 NOP -1433: { -1434: traceTASK_RESUME( pxTCB ); -1435: -1436: /* As we are in a critical section we can access the ready -1437: lists even if the scheduler is suspended. */ -1438: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD04142 0010FC5E LW V0, 16(S8) -BFD04146 6D22 ADDIU V0, V0, 4 -BFD04148 0C82 MOVE A0, V0 -BFD0414A 00C877E8 JALS uxListRemove -BFD0414C 0C0000C8 SLL A2, T0, 1 -BFD0414E 0C00 NOP -1439: prvAddTaskToReadyList( pxTCB ); -BFD04150 0010FC5E LW V0, 16(S8) -BFD04154 692B LW V0, 44(V0) -BFD04156 ED81 LI V1, 1 -BFD04158 18100062 SLLV V1, V0, V1 -BFD0415A FC5C1810 SB ZERO, -932(S0) -BFD0415C 8040FC5C LW V0, -32704(GP) -BFD04160 44D3 OR16 V0, V1 -BFD04162 8040F85C SW V0, -32704(GP) -BFD04166 0010FC5E LW V0, 16(S8) -BFD0416A 692B LW V0, 44(V0) -BFD0416C 2524 SLL V0, V0, 2 -BFD0416E 25A4 SLL V1, V0, 2 -BFD04170 05B4 ADDU V1, V0, V1 -BFD04172 BFD241A2 LUI V0, 0xBFD2 -BFD04174 3042BFD2 LDC1 F30, 12354(S2) -BFD04176 806C3042 ADDIU V0, V0, -32660 -BFD0417A 05A6 ADDU V1, V1, V0 -BFD0417C 0010FC5E LW V0, 16(S8) -BFD04180 6D22 ADDIU V0, V0, 4 -BFD04182 0C83 MOVE A0, V1 -BFD04184 0CA2 MOVE A1, V0 -BFD04186 3E4A77E8 JALS vListInsertEnd -BFD04188 0C003E4A LH S2, 3072(T2) -BFD0418A 0C00 NOP -1440: -1441: /* We may have just resumed a higher priority task. */ -1442: if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) -BFD0418C 0010FC5E LW V0, 16(S8) -BFD04190 69AB LW V1, 44(V0) -BFD04192 8030FC5C LW V0, -32720(GP) -BFD04196 692B LW V0, 44(V0) -BFD04198 13900043 SLTU V0, V1, V0 -BFD0419A 40A21390 ADDI GP, S0, 16546 -BFD0419C 001040A2 BNEZC V0, 0xBFD041C0 -1443: { -1444: /* This yield may not cause the task just resumed to run, -1445: but will leave the lists in the correct state for the -1446: next yield. */ -1447: taskYIELD_IF_USING_PREEMPTION(); -BFD041A0 4E5677E8 JALS ulPortGetCP0Cause -BFD041A2 4E56 ADDIU S2, S2, -5 -BFD041A4 0C00 NOP -BFD041A6 0014F85E SW V0, 20(S8) -BFD041AA 0014FC5E LW V0, 20(S8) -BFD041AE 01005042 ORI V0, V0, 256 -BFD041B2 0014F85E SW V0, 20(S8) -BFD041B6 0014FC9E LW A0, 20(S8) -BFD041BA 4E6677E8 JALS vPortSetCP0Cause -BFD041BC 4E66 ADDIU S3, S3, 3 -BFD041BE 0C00 NOP -1448: } -1449: else -1450: { -1451: mtCOVERAGE_TEST_MARKER(); -1452: } -1453: } -1454: else -1455: { -1456: mtCOVERAGE_TEST_MARKER(); -1457: } -1458: } -1459: taskEXIT_CRITICAL(); -BFD041C0 40AA77E8 JALS vTaskExitCritical -BFD041C2 0C0040AA BNEZC T2, 0xBFD059C6 -BFD041C4 0C00 NOP -1460: } -1461: else -1462: { -1463: mtCOVERAGE_TEST_MARKER(); -1464: } -1465: } -BFD041C6 0FBE MOVE SP, S8 -BFD041C8 4BE7 LW RA, 28(SP) -BFD041CA 4BC6 LW S8, 24(SP) -BFD041CC 4C11 ADDIU SP, SP, 32 -BFD041CE 459F JR16 RA -BFD041D0 0C00 NOP -1466: -1467: #endif /* INCLUDE_vTaskSuspend */ -1468: -1469: /*-----------------------------------------------------------*/ -1470: -1471: #if ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) -1472: -1473: BaseType_t xTaskResumeFromISR( TaskHandle_t xTaskToResume ) -1474: { -BFD041D4 4FED ADDIU SP, SP, -40 -BFD041D6 CBE9 SW RA, 36(SP) -BFD041D8 CBC8 SW S8, 32(SP) -BFD041DA 0FDD MOVE S8, SP -BFD041DC 0028F89E SW A0, 40(S8) -1475: BaseType_t xYieldRequired = pdFALSE; -BFD041E0 0010F81E SW ZERO, 16(S8) -1476: TCB_t * const pxTCB = ( TCB_t * ) xTaskToResume; -BFD041E4 0028FC5E LW V0, 40(S8) -BFD041E8 0014F85E SW V0, 20(S8) -1477: UBaseType_t uxSavedInterruptStatus; -1478: -1479: configASSERT( xTaskToResume ); -BFD041EC 0028FC5E LW V0, 40(S8) -BFD041F0 000940A2 BNEZC V0, 0xBFD04206 -BFD041F4 BFD141A2 LUI V0, 0xBFD1 -BFD041F6 3082BFD1 LDC1 F30, 12418(S1) -BFD041F8 98103082 ADDIU A0, V0, -26608 -BFD041FA 30A09810 SWC1 F0, 12448(S0) -BFD041FC 05C730A0 ADDIU A1, ZERO, 1479 -BFD041FE 05C7 SUBU V1, V1, A0 -BFD04200 4B7E77E8 JALS vAssertCalled -BFD04202 4B7E LW K1, 120(SP) -BFD04204 0C00 NOP -1480: -1481: /* RTOS ports that support interrupt nesting have the concept of a -1482: maximum system call (or maximum API call) interrupt priority. -1483: Interrupts that are above the maximum system call priority are keep -1484: permanently enabled, even when the RTOS kernel is in a critical section, -1485: but cannot make any calls to FreeRTOS API functions. If configASSERT() -1486: is defined in FreeRTOSConfig.h then -1487: portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -1488: failure if a FreeRTOS API function is called from an interrupt that has -1489: been assigned a priority above the configured maximum system call -1490: priority. Only FreeRTOS functions that end in FromISR can be called -1491: from interrupts that have been assigned a priority at or (logically) -1492: below the maximum system call interrupt priority. FreeRTOS maintains a -1493: separate interrupt safe API to ensure interrupt entry is as fast and as -1494: simple as possible. More information (albeit Cortex-M specific) is -1495: provided on the following link: -1496: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -1497: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -1498: -1499: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD04206 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD0420A 0C00 NOP -BFD0420C 0018F85E SW V0, 24(S8) -1500: { -1501: if( prvTaskIsTaskSuspended( pxTCB ) == pdTRUE ) -BFD04210 0014FC9E LW A0, 20(S8) -BFD04214 336E77E8 JALS prvTaskIsTaskSuspended -BFD04216 0C00336E ADDIU K1, T6, 3072 -BFD04218 0C00 NOP -BFD0421A 0C62 MOVE V1, V0 -BFD0421C ED01 LI V0, 1 -BFD0421E 0044B443 BNE V1, V0, 0xBFD042AA -BFD04220 0C000044 SLL V0, A0, 1 -BFD04222 0C00 NOP -1502: { -1503: traceTASK_RESUME_FROM_ISR( pxTCB ); -1504: -1505: /* Check the ready lists can be accessed. */ -1506: if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) -BFD04224 805CFC5C LW V0, -32676(GP) -BFD04228 003440A2 BNEZC V0, 0xBFD04294 -1507: { -1508: /* Ready lists can be accessed so move the task from the -1509: suspended list to the ready list directly. */ -1510: if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) -BFD0422C 0014FC5E LW V0, 20(S8) -BFD04230 69AB LW V1, 44(V0) -BFD04232 8030FC5C LW V0, -32720(GP) -BFD04236 692B LW V0, 44(V0) -BFD04238 13900043 SLTU V0, V1, V0 -BFD0423A 40A21390 ADDI GP, S0, 16546 -BFD0423C 000340A2 BNEZC V0, 0xBFD04246 -1511: { -1512: xYieldRequired = pdTRUE; -BFD04240 ED01 LI V0, 1 -BFD04242 0010F85E SW V0, 16(S8) -1513: } -1514: else -1515: { -1516: mtCOVERAGE_TEST_MARKER(); -1517: } -1518: -1519: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD04246 0014FC5E LW V0, 20(S8) -BFD0424A 6D22 ADDIU V0, V0, 4 -BFD0424C 0C82 MOVE A0, V0 -BFD0424E 00C877E8 JALS uxListRemove -BFD04250 0C0000C8 SLL A2, T0, 1 -BFD04252 0C00 NOP -1520: prvAddTaskToReadyList( pxTCB ); -BFD04254 0014FC5E LW V0, 20(S8) -BFD04258 692B LW V0, 44(V0) -BFD0425A ED81 LI V1, 1 -BFD0425C 18100062 SLLV V1, V0, V1 -BFD0425E FC5C1810 SB ZERO, -932(S0) -BFD04260 8040FC5C LW V0, -32704(GP) -BFD04264 44D3 OR16 V0, V1 -BFD04266 8040F85C SW V0, -32704(GP) -BFD0426A 0014FC5E LW V0, 20(S8) -BFD0426E 692B LW V0, 44(V0) -BFD04270 2524 SLL V0, V0, 2 -BFD04272 25A4 SLL V1, V0, 2 -BFD04274 05B4 ADDU V1, V0, V1 -BFD04276 BFD241A2 LUI V0, 0xBFD2 -BFD04278 3042BFD2 LDC1 F30, 12354(S2) -BFD0427A 806C3042 ADDIU V0, V0, -32660 -BFD0427E 05A6 ADDU V1, V1, V0 -BFD04280 0014FC5E LW V0, 20(S8) -BFD04284 6D22 ADDIU V0, V0, 4 -BFD04286 0C83 MOVE A0, V1 -BFD04288 0CA2 MOVE A1, V0 -BFD0428A 3E4A77E8 JALS vListInsertEnd -BFD0428C 0C003E4A LH S2, 3072(T2) -BFD0428E 0C00 NOP -BFD04290 CC0C B 0xBFD042AA -BFD04292 0C00 NOP -1521: } -1522: else -1523: { -1524: /* The delayed or ready lists cannot be accessed so the task -1525: is held in the pending ready list until the scheduler is -1526: unsuspended. */ -1527: vListInsertEnd( &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); -BFD04294 0014FC5E LW V0, 20(S8) -BFD04296 6D2C0014 EXT ZERO, S4, 20, 14 -BFD04298 6D2C ADDIU V0, V0, 24 -BFD0429A BFD241A3 LUI V1, 0xBFD2 -BFD0429C 3083BFD2 LDC1 F30, 12419(S2) -BFD0429E 80D03083 ADDIU A0, V1, -32560 -BFD042A2 0CA2 MOVE A1, V0 -BFD042A4 3E4A77E8 JALS vListInsertEnd -BFD042A6 0C003E4A LH S2, 3072(T2) -BFD042A8 0C00 NOP -1528: } -1529: } -1530: else -1531: { -1532: mtCOVERAGE_TEST_MARKER(); -1533: } -1534: } -1535: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD042AA 0018FC9E LW A0, 24(S8) -BFD042AE 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD042B0 4D5E ADDIU T2, T2, -1 -BFD042B2 0C00 NOP -1536: -1537: return xYieldRequired; -BFD042B4 0010FC5E LW V0, 16(S8) -1538: } -BFD042B8 0FBE MOVE SP, S8 -BFD042BA 4BE9 LW RA, 36(SP) -BFD042BC 4BC8 LW S8, 32(SP) -BFD042BE 4C15 ADDIU SP, SP, 40 -BFD042C0 459F JR16 RA -BFD042C2 0C00 NOP -1539: -1540: #endif /* ( ( INCLUDE_xTaskResumeFromISR == 1 ) && ( INCLUDE_vTaskSuspend == 1 ) ) */ -1541: /*-----------------------------------------------------------*/ -1542: -1543: void vTaskStartScheduler( void ) -1544: { -BFD04AC0 4FE9 ADDIU SP, SP, -48 -BFD04AC2 CBEB SW RA, 44(SP) -BFD04AC4 CBCA SW S8, 40(SP) -BFD04AC6 0FDD MOVE S8, SP -1545: BaseType_t xReturn; -1546: -1547: /* Add the idle task at the lowest priority. */ -1548: #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) -1549: { -1550: /* Create the idle task, storing its handle in xIdleTaskHandle so it can -1551: be returned by the xTaskGetIdleTaskHandle() function. */ -1552: xReturn = xTaskCreate( prvIdleTask, "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), &xIdleTaskHandle ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ -1553: } -1554: #else -1555: { -1556: /* Create the idle task without storing its handle. */ -1557: xReturn = xTaskCreate( prvIdleTask, "IDLE", tskIDLE_STACK_SIZE, ( void * ) NULL, ( tskIDLE_PRIORITY | portPRIVILEGE_BIT ), NULL ); /*lint !e961 MISRA exception, justified as it is not a redundant explicit cast to all supported compilers. */ -BFD04AC8 C804 SW ZERO, 16(SP) -BFD04ACA C805 SW ZERO, 20(SP) -BFD04ACC C806 SW ZERO, 24(SP) -BFD04ACE C807 SW ZERO, 28(SP) -BFD04AD0 BFD141A2 LUI V0, 0xBFD1 -BFD04AD2 3082BFD1 LDC1 F30, 12418(S1) -BFD04AD4 8BC53082 ADDIU A0, V0, -29755 -BFD04AD6 8BC5 SB A3, 5(A0) -BFD04AD8 BFD141A2 LUI V0, 0xBFD1 -BFD04ADA 30A2BFD1 LDC1 F30, 12450(S1) -BFD04ADC 982830A2 ADDIU A1, V0, -26584 -BFD04ADE 30C09828 SWC1 F1, 12480(T0) -BFD04AE0 00BE30C0 ADDIU A2, ZERO, 190 -BFD04AE4 0CE0 MOVE A3, ZERO -BFD04AE6 0A9A77E8 JALS xTaskGenericCreate -BFD04AE8 0A9A LBU A1, 10(S1) -BFD04AEA 0C00 NOP -BFD04AEC 0020F85E SW V0, 32(S8) -1558: } -1559: #endif /* INCLUDE_xTaskGetIdleTaskHandle */ -1560: -1561: #if ( configUSE_TIMERS == 1 ) -1562: { -1563: if( xReturn == pdPASS ) -BFD04AF0 0020FC7E LW V1, 32(S8) -BFD04AF4 ED01 LI V0, 1 -BFD04AF6 0006B443 BNE V1, V0, 0xBFD04B06 -BFD04AF8 0C000006 SLL ZERO, A2, 1 -BFD04AFA 0C00 NOP -1564: { -1565: xReturn = xTimerCreateTimerTask(); -BFD04AFC 3D3677E8 JALS xTimerCreateTimerTask -BFD04AFE 0C003D36 LH T1, 3072(S6) -BFD04B00 0C00 NOP -BFD04B02 0020F85E SW V0, 32(S8) -1566: } -1567: else -1568: { -1569: mtCOVERAGE_TEST_MARKER(); -1570: } -1571: } -1572: #endif /* configUSE_TIMERS */ -1573: -1574: if( xReturn == pdPASS ) -BFD04B06 0020FC7E LW V1, 32(S8) -BFD04B0A ED01 LI V0, 1 -BFD04B0C 0031B443 BNE V1, V0, 0xBFD04B72 -BFD04B0E 0C000031 SLL AT, S1, 1 -BFD04B10 0C00 NOP -1575: { -1576: /* Interrupts are turned off here, to ensure a tick does not occur -1577: before or during the call to xPortStartScheduler(). The stacks of -1578: the created tasks contain a status word with interrupts switched on -1579: so interrupts will automatically get re-enabled when the first task -1580: starts to run. */ -1581: portDISABLE_INTERRUPTS(); -BFD04B12 4E3677E8 JALS ulPortGetCP0Status -BFD04B14 4E36 ADDIU S1, S1, -5 -BFD04B16 0C00 NOP -BFD04B18 0024F85E SW V0, 36(S8) -BFD04B1C 0024FC7E LW V1, 36(S8) -BFD04B20 000141A2 LUI V0, 0x1 -BFD04B24 FC005042 ORI V0, V0, -1024 -BFD04B26 4493FC00 LW ZERO, 17555(ZERO) -BFD04B28 4493 AND16 V0, V1 -BFD04B2A 50400042 SRL V0, V0, 10 -BFD04B2C B0425040 ORI V0, ZERO, -20414 -BFD04B2E 0003B042 SLTIU V0, V0, 3 -BFD04B32 001140E2 BEQZC V0, 0xBFD04B58 -BFD04B36 0024FC7E LW V1, 36(S8) -BFD04B3A FFFE41A2 LUI V0, 0xFFFE -BFD04B3C 5042FFFE LW RA, 20546(S8) -BFD04B3E 03FF5042 ORI V0, V0, 1023 -BFD04B42 4493 AND16 V0, V1 -BFD04B44 0024F85E SW V0, 36(S8) -BFD04B48 0024FC5E LW V0, 36(S8) -BFD04B4C 0C005042 ORI V0, V0, 3072 -BFD04B4E 0C00 NOP -BFD04B50 0C82 MOVE A0, V0 -BFD04B52 4E4677E8 JALS vPortSetCP0Status -BFD04B54 4E46 ADDIU S2, S2, 3 -BFD04B56 0C00 NOP -1582: -1583: #if ( configUSE_NEWLIB_REENTRANT == 1 ) -1584: { -1585: /* Switch Newlib's _impure_ptr variable to point to the _reent -1586: structure specific to the task that will run first. */ -1587: _impure_ptr = &( pxCurrentTCB->xNewLib_reent ); -1588: } -1589: #endif /* configUSE_NEWLIB_REENTRANT */ -1590: -1591: xNextTaskUnblockTime = portMAX_DELAY; -BFD04B58 ED7F LI V0, -1 -BFD04B5A 8058F85C SW V0, -32680(GP) -1592: xSchedulerRunning = pdTRUE; -BFD04B5E ED01 LI V0, 1 -BFD04B60 8044F85C SW V0, -32700(GP) -1593: xTickCount = ( TickType_t ) 0U; -BFD04B64 803CF81C SW ZERO, -32708(GP) -1594: -1595: /* If configGENERATE_RUN_TIME_STATS is defined then the following -1596: macro must be defined to configure the timer/counter used to generate -1597: the run time counter time base. */ -1598: portCONFIGURE_TIMER_FOR_RUN_TIME_STATS(); -1599: -1600: /* Setting up the timer tick is hardware specific and thus in the -1601: portable interface. */ -1602: if( xPortStartScheduler() != pdFALSE ) -BFD04B68 344C77E8 JALS xPortStartScheduler -BFD04B6A 0C00344C LHU V0, 3072(T4) -BFD04B6C 0C00 NOP -BFD04B6E CC0E B 0xBFD04B8C -BFD04B70 0C00 NOP -1603: { -1604: /* Should not reach here as if the scheduler is running the -1605: function will not return. */ -1606: } -1607: else -1608: { -1609: /* Should only reach here if a task calls xTaskEndScheduler(). */ -1610: } -1611: } -1612: else -1613: { -1614: /* This line will only be reached if the kernel could not be started, -1615: because there was not enough FreeRTOS heap to create the idle task -1616: or the timer task. */ -1617: configASSERT( xReturn ); -BFD04B72 0020FC5E LW V0, 32(S8) -BFD04B76 000940A2 BNEZC V0, 0xBFD04B8C -BFD04B7A BFD141A2 LUI V0, 0xBFD1 -BFD04B7C 3082BFD1 LDC1 F30, 12418(S1) -BFD04B7E 98103082 ADDIU A0, V0, -26608 -BFD04B80 30A09810 SWC1 F0, 12448(S0) -BFD04B82 065130A0 ADDIU A1, ZERO, 1617 -BFD04B84 0651 SUBU A0, S0, A1 -BFD04B86 4B7E77E8 JALS vAssertCalled -BFD04B88 4B7E LW K1, 120(SP) -BFD04B8A 0C00 NOP -1618: } -1619: } -BFD04B8C 0FBE MOVE SP, S8 -BFD04B8E 4BEB LW RA, 44(SP) -BFD04B90 4BCA LW S8, 40(SP) -BFD04B92 4C19 ADDIU SP, SP, 48 -BFD04B94 459F JR16 RA -BFD04B96 0C00 NOP -1620: /*-----------------------------------------------------------*/ -1621: -1622: void vTaskEndScheduler( void ) -1623: { -BFD07F00 4FF1 ADDIU SP, SP, -32 -BFD07F02 CBE7 SW RA, 28(SP) -BFD07F04 CBC6 SW S8, 24(SP) -BFD07F06 0FDD MOVE S8, SP -1624: /* Stop the scheduler interrupts and call the portable scheduler end -1625: routine so the original ISRs can be restored if necessary. The port -1626: layer must ensure interrupts enable bit is left in the correct state. */ -1627: portDISABLE_INTERRUPTS(); -BFD07F08 4E3677E8 JALS ulPortGetCP0Status -BFD07F0A 4E36 ADDIU S1, S1, -5 -BFD07F0C 0C00 NOP -BFD07F0E 0010F85E SW V0, 16(S8) -BFD07F12 0010FC7E LW V1, 16(S8) -BFD07F16 000141A2 LUI V0, 0x1 -BFD07F1A FC005042 ORI V0, V0, -1024 -BFD07F1C 4493FC00 LW ZERO, 17555(ZERO) -BFD07F1E 4493 AND16 V0, V1 -BFD07F20 50400042 SRL V0, V0, 10 -BFD07F22 B0425040 ORI V0, ZERO, -20414 -BFD07F24 0003B042 SLTIU V0, V0, 3 -BFD07F28 001140E2 BEQZC V0, 0xBFD07F4E -BFD07F2C 0010FC7E LW V1, 16(S8) -BFD07F30 FFFE41A2 LUI V0, 0xFFFE -BFD07F32 5042FFFE LW RA, 20546(S8) -BFD07F34 03FF5042 ORI V0, V0, 1023 -BFD07F38 4493 AND16 V0, V1 -BFD07F3A 0010F85E SW V0, 16(S8) -BFD07F3E 0010FC5E LW V0, 16(S8) -BFD07F42 0C005042 ORI V0, V0, 3072 -BFD07F44 0C00 NOP -BFD07F46 0C82 MOVE A0, V0 -BFD07F48 4E4677E8 JALS vPortSetCP0Status -BFD07F4A 4E46 ADDIU S2, S2, 3 -BFD07F4C 0C00 NOP -1628: xSchedulerRunning = pdFALSE; -BFD07F4E 8044F81C SW ZERO, -32700(GP) -1629: vPortEndScheduler(); -BFD07F52 4BD477E8 JALS vPortEndScheduler -BFD07F54 4BD4 LW S8, 80(SP) -BFD07F56 0C00 NOP -1630: } -BFD07F58 0FBE MOVE SP, S8 -BFD07F5A 4BE7 LW RA, 28(SP) -BFD07F5C 4BC6 LW S8, 24(SP) -BFD07F5E 4C11 ADDIU SP, SP, 32 -BFD07F60 459F JR16 RA -BFD07F62 0C00 NOP -1631: /*----------------------------------------------------------*/ -1632: -1633: void vTaskSuspendAll( void ) -1634: { -BFD09DE8 4FB0 ADDIU SP, SP, -8 -BFD09DEA CBC1 SW S8, 4(SP) -BFD09DEC 0FDD MOVE S8, SP -1635: /* A critical section is not required as the variable is of type -1636: BaseType_t. Please read Richard Barry's reply in the following link to a -1637: post in the FreeRTOS support forum before reporting this as a bug! - -1638: http://goo.gl/wu4acr */ -1639: ++uxSchedulerSuspended; -BFD09DEE 805CFC5C LW V0, -32676(GP) -BFD09DF2 6D20 ADDIU V0, V0, 1 -BFD09DF4 805CF85C SW V0, -32676(GP) -1640: } -BFD09DF8 0FBE MOVE SP, S8 -BFD09DFA 4BC1 LW S8, 4(SP) -BFD09DFC 4C05 ADDIU SP, SP, 8 -BFD09DFE 459F JR16 RA -BFD09E00 0C00 NOP -1641: /*----------------------------------------------------------*/ -1642: -1643: #if ( configUSE_TICKLESS_IDLE != 0 ) -1644: -1645: static TickType_t prvGetExpectedIdleTime( void ) -1646: { -1647: TickType_t xReturn; -1648: -1649: if( pxCurrentTCB->uxPriority > tskIDLE_PRIORITY ) -1650: { -1651: xReturn = 0; -1652: } -1653: else if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > 1 ) -1654: { -1655: /* There are other idle priority tasks in the ready state. If -1656: time slicing is used then the very next tick interrupt must be -1657: processed. */ -1658: xReturn = 0; -1659: } -1660: else -1661: { -1662: xReturn = xNextTaskUnblockTime - xTickCount; -1663: } -1664: -1665: return xReturn; -1666: } -1667: -1668: #endif /* configUSE_TICKLESS_IDLE */ -1669: /*----------------------------------------------------------*/ -1670: -1671: BaseType_t xTaskResumeAll( void ) -1672: { -BFD02B1C 4FED ADDIU SP, SP, -40 -BFD02B1E CBE9 SW RA, 36(SP) -BFD02B20 CBC8 SW S8, 32(SP) -BFD02B22 0FDD MOVE S8, SP -1673: TCB_t *pxTCB; -1674: BaseType_t xAlreadyYielded = pdFALSE; -BFD02B24 0010F81E SW ZERO, 16(S8) -1675: -1676: /* If uxSchedulerSuspended is zero then this function does not match a -1677: previous call to vTaskSuspendAll(). */ -1678: configASSERT( uxSchedulerSuspended ); -BFD02B28 805CFC5C LW V0, -32676(GP) -BFD02B2C 000940A2 BNEZC V0, 0xBFD02B42 -BFD02B30 BFD141A2 LUI V0, 0xBFD1 -BFD02B32 3082BFD1 LDC1 F30, 12418(S1) -BFD02B34 98103082 ADDIU A0, V0, -26608 -BFD02B36 30A09810 SWC1 F0, 12448(S0) -BFD02B38 068E30A0 ADDIU A1, ZERO, 1678 -BFD02B3A 068E ADDU A1, A3, S0 -BFD02B3C 4B7E77E8 JALS vAssertCalled -BFD02B3E 4B7E LW K1, 120(SP) -BFD02B40 0C00 NOP -1679: -1680: /* It is possible that an ISR caused a task to be removed from an event -1681: list while the scheduler was suspended. If this was the case then the -1682: removed task will have been added to the xPendingReadyList. Once the -1683: scheduler has been resumed it is safe to move all the pending ready -1684: tasks from this list into their appropriate ready list. */ -1685: taskENTER_CRITICAL(); -BFD02B42 33B877E8 JALS vTaskEnterCritical -BFD02B44 0C0033B8 ADDIU SP, T8, 3072 -BFD02B46 0C00 NOP -1686: { -1687: --uxSchedulerSuspended; -BFD02B48 805CFC5C LW V0, -32676(GP) -BFD02B4C 6D2E ADDIU V0, V0, -1 -BFD02B4E 805CF85C SW V0, -32676(GP) -1688: -1689: if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) -BFD02B52 805CFC5C LW V0, -32676(GP) -BFD02B56 007D40A2 BNEZC V0, 0xBFD02C54 -1690: { -1691: if( uxCurrentNumberOfTasks > ( UBaseType_t ) 0U ) -BFD02B5A 8038FC5C LW V0, -32712(GP) -BFD02B5E 007940E2 BEQZC V0, 0xBFD02C54 -1692: { -1693: /* Move any readied tasks from the pending list into the -1694: appropriate ready list. */ -1695: while( listLIST_IS_EMPTY( &xPendingReadyList ) == pdFALSE ) -BFD02B62 CC42 B 0xBFD02BE8 -BFD02B64 0C00 NOP -BFD02BE8 BFD241A2 LUI V0, 0xBFD2 -BFD02BEA FC42BFD2 LDC1 F30, -958(S2) -BFD02BEC 80D0FC42 LW V0, -32560(V0) -BFD02BF0 FFB940A2 BNEZC V0, 0xBFD02B66 -BFD02BF2 FC5CFFB9 LW SP, -932(T9) -1696: { -1697: pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xPendingReadyList ) ); -BFD02B66 BFD241A2 LUI V0, 0xBFD2 -BFD02B68 3042BFD2 LDC1 F30, 12354(S2) -BFD02B6A 80D03042 ADDIU V0, V0, -32560 -BFD02B6E 6923 LW V0, 12(V0) -BFD02B70 6923 LW V0, 12(V0) -BFD02B72 0014F85E SW V0, 20(S8) -1698: ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); -BFD02B76 0014FC5E LW V0, 20(S8) -BFD02B78 6D2C0014 EXT ZERO, S4, 20, 14 -BFD02B7A 6D2C ADDIU V0, V0, 24 -BFD02B7C 0C82 MOVE A0, V0 -BFD02B7E 00C877E8 JALS uxListRemove -BFD02B80 0C0000C8 SLL A2, T0, 1 -BFD02B82 0C00 NOP -1699: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD02B84 0014FC5E LW V0, 20(S8) -BFD02B88 6D22 ADDIU V0, V0, 4 -BFD02B8A 0C82 MOVE A0, V0 -BFD02B8C 00C877E8 JALS uxListRemove -BFD02B8E 0C0000C8 SLL A2, T0, 1 -BFD02B90 0C00 NOP -1700: prvAddTaskToReadyList( pxTCB ); -BFD02B92 0014FC5E LW V0, 20(S8) -BFD02B96 692B LW V0, 44(V0) -BFD02B98 ED81 LI V1, 1 -BFD02B9A 18100062 SLLV V1, V0, V1 -BFD02B9C FC5C1810 SB ZERO, -932(S0) -BFD02B9E 8040FC5C LW V0, -32704(GP) -BFD02BA2 44D3 OR16 V0, V1 -BFD02BA4 8040F85C SW V0, -32704(GP) -BFD02BA8 0014FC5E LW V0, 20(S8) -BFD02BAC 692B LW V0, 44(V0) -BFD02BAE 2524 SLL V0, V0, 2 -BFD02BB0 25A4 SLL V1, V0, 2 -BFD02BB2 05B4 ADDU V1, V0, V1 -BFD02BB4 BFD241A2 LUI V0, 0xBFD2 -BFD02BB6 3042BFD2 LDC1 F30, 12354(S2) -BFD02BB8 806C3042 ADDIU V0, V0, -32660 -BFD02BBC 05A6 ADDU V1, V1, V0 -BFD02BBE 0014FC5E LW V0, 20(S8) -BFD02BC2 6D22 ADDIU V0, V0, 4 -BFD02BC4 0C83 MOVE A0, V1 -BFD02BC6 0CA2 MOVE A1, V0 -BFD02BC8 3E4A77E8 JALS vListInsertEnd -BFD02BCA 0C003E4A LH S2, 3072(T2) -BFD02BCC 0C00 NOP -1701: -1702: /* If the moved task has a priority higher than the current -1703: task then a yield must be performed. */ -1704: if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) -BFD02BCE 0014FC5E LW V0, 20(S8) -BFD02BD2 69AB LW V1, 44(V0) -BFD02BD4 8030FC5C LW V0, -32720(GP) -BFD02BD8 692B LW V0, 44(V0) -BFD02BDA 13900043 SLTU V0, V1, V0 -BFD02BDC 40A21390 ADDI GP, S0, 16546 -BFD02BDE 000340A2 BNEZC V0, 0xBFD02BE8 -1705: { -1706: xYieldPending = pdTRUE; -BFD02BE2 ED01 LI V0, 1 -BFD02BE4 804CF85C SW V0, -32692(GP) -1707: } -1708: else -1709: { -1710: mtCOVERAGE_TEST_MARKER(); -1711: } -1712: } -1713: -1714: /* If any ticks occurred while the scheduler was suspended then -1715: they should be processed now. This ensures the tick count does -1716: not slip, and that any delayed tasks are resumed at the correct -1717: time. */ -1718: if( uxPendedTicks > ( UBaseType_t ) 0U ) -BFD02BF4 8048FC5C LW V0, -32696(GP) -BFD02BF8 001340E2 BEQZC V0, 0xBFD02C22 -1719: { -1720: while( uxPendedTicks > ( UBaseType_t ) 0U ) -BFD02BFC CC0E B 0xBFD02C1A -BFD02BFE 0C00 NOP -BFD02C1A 8048FC5C LW V0, -32696(GP) -BFD02C1E FFEF40A2 BNEZC V0, 0xBFD02C00 -BFD02C20 FC7CFFEF LW RA, -900(T7) -1721: { -1722: if( xTaskIncrementTick() != pdFALSE ) -BFD02C00 104077E8 JALS xTaskIncrementTick -BFD02C02 0C001040 ADDI V0, ZERO, 3072 -BFD02C04 0C00 NOP -BFD02C06 000340E2 BEQZC V0, 0xBFD02C10 -1723: { -1724: xYieldPending = pdTRUE; -BFD02C0A ED01 LI V0, 1 -BFD02C0C 804CF85C SW V0, -32692(GP) -1725: } -1726: else -1727: { -1728: mtCOVERAGE_TEST_MARKER(); -1729: } -1730: --uxPendedTicks; -BFD02C10 8048FC5C LW V0, -32696(GP) -BFD02C14 6D2E ADDIU V0, V0, -1 -BFD02C16 8048F85C SW V0, -32696(GP) -1731: } -1732: } -1733: else -1734: { -1735: mtCOVERAGE_TEST_MARKER(); -1736: } -1737: -1738: if( xYieldPending == pdTRUE ) -BFD02C22 804CFC7C LW V1, -32692(GP) -BFD02C26 ED01 LI V0, 1 -BFD02C28 0014B443 BNE V1, V0, 0xBFD02C54 -BFD02C2A 0C000014 SLL ZERO, S4, 1 -BFD02C2C 0C00 NOP -1739: { -1740: #if( configUSE_PREEMPTION != 0 ) -1741: { -1742: xAlreadyYielded = pdTRUE; -BFD02C2E ED01 LI V0, 1 -BFD02C30 0010F85E SW V0, 16(S8) -1743: } -1744: #endif -1745: taskYIELD_IF_USING_PREEMPTION(); -BFD02C34 4E5677E8 JALS ulPortGetCP0Cause -BFD02C36 4E56 ADDIU S2, S2, -5 -BFD02C38 0C00 NOP -BFD02C3A 0018F85E SW V0, 24(S8) -BFD02C3E 0018FC5E LW V0, 24(S8) -BFD02C42 01005042 ORI V0, V0, 256 -BFD02C46 0018F85E SW V0, 24(S8) -BFD02C4A 0018FC9E LW A0, 24(S8) -BFD02C4E 4E6677E8 JALS vPortSetCP0Cause -BFD02C50 4E66 ADDIU S3, S3, 3 -BFD02C52 0C00 NOP -1746: } -1747: else -1748: { -1749: mtCOVERAGE_TEST_MARKER(); -1750: } -1751: } -1752: } -1753: else -1754: { -1755: mtCOVERAGE_TEST_MARKER(); -1756: } -1757: } -1758: taskEXIT_CRITICAL(); -BFD02C54 40AA77E8 JALS vTaskExitCritical -BFD02C56 0C0040AA BNEZC T2, 0xBFD0445A -BFD02C58 0C00 NOP -1759: -1760: return xAlreadyYielded; -BFD02C5A 0010FC5E LW V0, 16(S8) -1761: } -BFD02C5E 0FBE MOVE SP, S8 -BFD02C60 4BE9 LW RA, 36(SP) -BFD02C62 4BC8 LW S8, 32(SP) -BFD02C64 4C15 ADDIU SP, SP, 40 -BFD02C66 459F JR16 RA -BFD02C68 0C00 NOP -1762: /*-----------------------------------------------------------*/ -1763: -1764: TickType_t xTaskGetTickCount( void ) -1765: { -BFD09994 4FF1 ADDIU SP, SP, -32 -BFD09996 CBE7 SW RA, 28(SP) -BFD09998 CBC6 SW S8, 24(SP) -BFD0999A 0FDD MOVE S8, SP -1766: TickType_t xTicks; -1767: -1768: /* Critical section required if running on a 16 bit processor. */ -1769: portTICK_TYPE_ENTER_CRITICAL(); -BFD0999C 33B877E8 JALS vTaskEnterCritical -BFD0999E 0C0033B8 ADDIU SP, T8, 3072 -BFD099A0 0C00 NOP -1770: { -1771: xTicks = xTickCount; -BFD099A2 803CFC5C LW V0, -32708(GP) -BFD099A6 0010F85E SW V0, 16(S8) -1772: } -1773: portTICK_TYPE_EXIT_CRITICAL(); -BFD099AA 40AA77E8 JALS vTaskExitCritical -BFD099AC 0C0040AA BNEZC T2, 0xBFD0B1B0 -BFD099AE 0C00 NOP -1774: -1775: return xTicks; -BFD099B0 0010FC5E LW V0, 16(S8) -1776: } -BFD099B4 0FBE MOVE SP, S8 -BFD099B6 4BE7 LW RA, 28(SP) -BFD099B8 4BC6 LW S8, 24(SP) -BFD099BA 4C11 ADDIU SP, SP, 32 -BFD099BC 459F JR16 RA -BFD099BE 0C00 NOP -1777: /*-----------------------------------------------------------*/ -1778: -1779: TickType_t xTaskGetTickCountFromISR( void ) -1780: { -BFD09844 4FF1 ADDIU SP, SP, -32 -BFD09846 CBE7 SW RA, 28(SP) -BFD09848 CBC6 SW S8, 24(SP) -BFD0984A 0FDD MOVE S8, SP -1781: TickType_t xReturn; -1782: UBaseType_t uxSavedInterruptStatus; -1783: -1784: /* RTOS ports that support interrupt nesting have the concept of a maximum -1785: system call (or maximum API call) interrupt priority. Interrupts that are -1786: above the maximum system call priority are kept permanently enabled, even -1787: when the RTOS kernel is in a critical section, but cannot make any calls to -1788: FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h -1789: then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -1790: failure if a FreeRTOS API function is called from an interrupt that has been -1791: assigned a priority above the configured maximum system call priority. -1792: Only FreeRTOS functions that end in FromISR can be called from interrupts -1793: that have been assigned a priority at or (logically) below the maximum -1794: system call interrupt priority. FreeRTOS maintains a separate interrupt -1795: safe API to ensure interrupt entry is as fast and as simple as possible. -1796: More information (albeit Cortex-M specific) is provided on the following -1797: link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -1798: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -1799: -1800: uxSavedInterruptStatus = portTICK_TYPE_SET_INTERRUPT_MASK_FROM_ISR(); -BFD0984C 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD09850 0C00 NOP -BFD09852 0010F85E SW V0, 16(S8) -1801: { -1802: xReturn = xTickCount; -BFD09856 803CFC5C LW V0, -32708(GP) -BFD0985A 0014F85E SW V0, 20(S8) -1803: } -1804: portTICK_TYPE_CLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD0985E 0010FC9E LW A0, 16(S8) -BFD09862 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD09864 4D5E ADDIU T2, T2, -1 -BFD09866 0C00 NOP -1805: -1806: return xReturn; -BFD09868 0014FC5E LW V0, 20(S8) -1807: } -BFD0986C 0FBE MOVE SP, S8 -BFD0986E 4BE7 LW RA, 28(SP) -BFD09870 4BC6 LW S8, 24(SP) -BFD09872 4C11 ADDIU SP, SP, 32 -BFD09874 459F JR16 RA -BFD09876 0C00 NOP -1808: /*-----------------------------------------------------------*/ -1809: -1810: UBaseType_t uxTaskGetNumberOfTasks( void ) -1811: { -BFD09E98 4FB0 ADDIU SP, SP, -8 -BFD09E9A CBC1 SW S8, 4(SP) -BFD09E9C 0FDD MOVE S8, SP -1812: /* A critical section is not required because the variables are of type -1813: BaseType_t. */ -1814: return uxCurrentNumberOfTasks; -BFD09E9E 8038FC5C LW V0, -32712(GP) -1815: } -BFD09EA2 0FBE MOVE SP, S8 -BFD09EA4 4BC1 LW S8, 4(SP) -BFD09EA6 4C05 ADDIU SP, SP, 8 -BFD09EA8 459F JR16 RA -BFD09EAA 0C00 NOP -1816: /*-----------------------------------------------------------*/ -1817: -1818: #if ( INCLUDE_pcTaskGetTaskName == 1 ) -1819: -1820: char *pcTaskGetTaskName( TaskHandle_t xTaskToQuery ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -1821: { -1822: TCB_t *pxTCB; -1823: -1824: /* If null is passed in here then the name of the calling task is being queried. */ -1825: pxTCB = prvGetTCBFromHandle( xTaskToQuery ); -1826: configASSERT( pxTCB ); -1827: return &( pxTCB->pcTaskName[ 0 ] ); -1828: } -1829: -1830: #endif /* INCLUDE_pcTaskGetTaskName */ -1831: /*-----------------------------------------------------------*/ -1832: -1833: #if ( configUSE_TRACE_FACILITY == 1 ) -1834: -1835: UBaseType_t uxTaskGetSystemState( TaskStatus_t * const pxTaskStatusArray, const UBaseType_t uxArraySize, uint32_t * const pulTotalRunTime ) -1836: { -1837: UBaseType_t uxTask = 0, uxQueue = configMAX_PRIORITIES; -1838: -1839: vTaskSuspendAll(); -1840: { -1841: /* Is there a space in the array for each task in the system? */ -1842: if( uxArraySize >= uxCurrentNumberOfTasks ) -1843: { -1844: /* Fill in an TaskStatus_t structure with information on each -1845: task in the Ready state. */ -1846: do -1847: { -1848: uxQueue--; -1849: uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &( pxReadyTasksLists[ uxQueue ] ), eReady ); -1850: -1851: } while( uxQueue > ( UBaseType_t ) tskIDLE_PRIORITY ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -1852: -1853: /* Fill in an TaskStatus_t structure with information on each -1854: task in the Blocked state. */ -1855: uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), ( List_t * ) pxDelayedTaskList, eBlocked ); -1856: uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), ( List_t * ) pxOverflowDelayedTaskList, eBlocked ); -1857: -1858: #if( INCLUDE_vTaskDelete == 1 ) -1859: { -1860: /* Fill in an TaskStatus_t structure with information on -1861: each task that has been deleted but not yet cleaned up. */ -1862: uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xTasksWaitingTermination, eDeleted ); -1863: } -1864: #endif -1865: -1866: #if ( INCLUDE_vTaskSuspend == 1 ) -1867: { -1868: /* Fill in an TaskStatus_t structure with information on -1869: each task in the Suspended state. */ -1870: uxTask += prvListTaskWithinSingleList( &( pxTaskStatusArray[ uxTask ] ), &xSuspendedTaskList, eSuspended ); -1871: } -1872: #endif -1873: -1874: #if ( configGENERATE_RUN_TIME_STATS == 1) -1875: { -1876: if( pulTotalRunTime != NULL ) -1877: { -1878: #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE -1879: portALT_GET_RUN_TIME_COUNTER_VALUE( ( *pulTotalRunTime ) ); -1880: #else -1881: *pulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); -1882: #endif -1883: } -1884: } -1885: #else -1886: { -1887: if( pulTotalRunTime != NULL ) -1888: { -1889: *pulTotalRunTime = 0; -1890: } -1891: } -1892: #endif -1893: } -1894: else -1895: { -1896: mtCOVERAGE_TEST_MARKER(); -1897: } -1898: } -1899: ( void ) xTaskResumeAll(); -1900: -1901: return uxTask; -1902: } -1903: -1904: #endif /* configUSE_TRACE_FACILITY */ -1905: /*----------------------------------------------------------*/ -1906: -1907: #if ( INCLUDE_xTaskGetIdleTaskHandle == 1 ) -1908: -1909: TaskHandle_t xTaskGetIdleTaskHandle( void ) -1910: { -1911: /* If xTaskGetIdleTaskHandle() is called before the scheduler has been -1912: started, then xIdleTaskHandle will be NULL. */ -1913: configASSERT( ( xIdleTaskHandle != NULL ) ); -1914: return xIdleTaskHandle; -1915: } -1916: -1917: #endif /* INCLUDE_xTaskGetIdleTaskHandle */ -1918: /*----------------------------------------------------------*/ -1919: -1920: /* This conditional compilation should use inequality to 0, not equality to 1. -1921: This is to ensure vTaskStepTick() is available when user defined low power mode -1922: implementations require configUSE_TICKLESS_IDLE to be set to a value other than -1923: 1. */ -1924: #if ( configUSE_TICKLESS_IDLE != 0 ) -1925: -1926: void vTaskStepTick( const TickType_t xTicksToJump ) -1927: { -1928: /* Correct the tick count value after a period during which the tick -1929: was suppressed. Note this does *not* call the tick hook function for -1930: each stepped tick. */ -1931: configASSERT( ( xTickCount + xTicksToJump ) <= xNextTaskUnblockTime ); -1932: xTickCount += xTicksToJump; -1933: traceINCREASE_TICK_COUNT( xTicksToJump ); -1934: } -1935: -1936: #endif /* configUSE_TICKLESS_IDLE */ -1937: /*----------------------------------------------------------*/ -1938: -1939: BaseType_t xTaskIncrementTick( void ) -1940: { -BFD02080 4FE9 ADDIU SP, SP, -48 -BFD02082 CBEB SW RA, 44(SP) -BFD02084 CBCA SW S8, 40(SP) -BFD02086 0FDD MOVE S8, SP -1941: TCB_t * pxTCB; -1942: TickType_t xItemValue; -1943: BaseType_t xSwitchRequired = pdFALSE; -BFD02088 0010F81E SW ZERO, 16(S8) -1944: -1945: /* Called by the portable layer each time a tick interrupt occurs. -1946: Increments the tick then checks to see if the new tick value will cause any -1947: tasks to be unblocked. */ -1948: traceTASK_INCREMENT_TICK( xTickCount ); -1949: if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) -BFD0208C 805CFC5C LW V0, -32676(GP) -BFD02090 00B840A2 BNEZC V0, 0xBFD02204 -1950: { -1951: /* Increment the RTOS tick, switching the delayed and overflowed -1952: delayed lists if it wraps to 0. */ -1953: ++xTickCount; -BFD02094 803CFC5C LW V0, -32708(GP) -BFD02098 6D20 ADDIU V0, V0, 1 -BFD0209A 803CF85C SW V0, -32708(GP) -1954: -1955: { -1956: /* Minor optimisation. The tick count cannot change in this -1957: block. */ -1958: const TickType_t xConstTickCount = xTickCount; -BFD0209E 803CFC5C LW V0, -32708(GP) -BFD020A2 0014F85E SW V0, 20(S8) -1959: -1960: if( xConstTickCount == ( TickType_t ) 0U ) -BFD020A6 0014FC5E LW V0, 20(S8) -BFD020AA 002240A2 BNEZC V0, 0xBFD020F2 -1961: { -1962: taskSWITCH_DELAYED_LISTS(); -BFD020AE 8074FC5C LW V0, -32652(GP) -BFD020B2 6920 LW V0, 0(V0) -BFD020B4 000940E2 BEQZC V0, 0xBFD020CA -BFD020B8 BFD141A2 LUI V0, 0xBFD1 -BFD020BA 3082BFD1 LDC1 F30, 12418(S1) -BFD020BC 98103082 ADDIU A0, V0, -26608 -BFD020BE 30A09810 SWC1 F0, 12448(S0) -BFD020C0 07AA30A0 ADDIU A1, ZERO, 1962 -BFD020C2 07AA ADDU A3, A1, V0 -BFD020C4 4B7E77E8 JALS vAssertCalled -BFD020C6 4B7E LW K1, 120(SP) -BFD020C8 0C00 NOP -BFD020CA 8074FC5C LW V0, -32652(GP) -BFD020CE 0018F85E SW V0, 24(S8) -BFD020D2 8078FC5C LW V0, -32648(GP) -BFD020D6 8074F85C SW V0, -32652(GP) -BFD020DA 0018FC5E LW V0, 24(S8) -BFD020DE 8078F85C SW V0, -32648(GP) -BFD020E2 8050FC5C LW V0, -32688(GP) -BFD020E6 6D20 ADDIU V0, V0, 1 -BFD020E8 8050F85C SW V0, -32688(GP) -BFD020EC 47CA77E8 JALS prvResetNextTaskUnblockTime -BFD020F0 0C00 NOP -1963: } -1964: else -1965: { -1966: mtCOVERAGE_TEST_MARKER(); -1967: } -1968: -1969: /* See if this tick has made a timeout expire. Tasks are stored in -1970: the queue in the order of their wake time - meaning once one task -1971: has been found whose block time has not expired there is no need to -1972: look any further down the list. */ -1973: if( xConstTickCount >= xNextTaskUnblockTime ) -BFD020F2 8058FC5C LW V0, -32680(GP) -BFD020F6 0014FC7E LW V1, 20(S8) -BFD020FA 13900043 SLTU V0, V1, V0 -BFD020FC 40A21390 ADDI GP, S0, 16546 -BFD020FE 006C40A2 BNEZC V0, 0xBFD021DA -BFD02102 CC02 B 0xBFD02108 -BFD02104 0C00 NOP -1974: { -1975: for( ;; ) -1976: { -1977: if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) -BFD02108 8074FC5C LW V0, -32652(GP) -BFD0210C 6920 LW V0, 0(V0) -BFD0210E 000340A2 BNEZC V0, 0xBFD02118 -BFD02112 ED01 LI V0, 1 -BFD02114 CC02 B 0xBFD0211A -BFD02116 0C00 NOP -BFD02118 0C40 MOVE V0, ZERO -BFD0211A 000540E2 BEQZC V0, 0xBFD02128 -1978: { -1979: /* The delayed list is empty. Set xNextTaskUnblockTime -1980: to the maximum possible value so it is extremely -1981: unlikely that the -1982: if( xTickCount >= xNextTaskUnblockTime ) test will pass -1983: next time through. */ -1984: xNextTaskUnblockTime = portMAX_DELAY; -BFD0211E ED7F LI V0, -1 -BFD02120 8058F85C SW V0, -32680(GP) -1985: break; -BFD02124 CC5A B 0xBFD021DA -BFD02126 0C00 NOP -1986: } -1987: else -1988: { -1989: /* The delayed list is not empty, get the value of the -1990: item at the head of the delayed list. This is the time -1991: at which the task at the head of the delayed list must -1992: be removed from the Blocked state. */ -1993: pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); -BFD02128 8074FC5C LW V0, -32652(GP) -BFD0212C 6923 LW V0, 12(V0) -BFD0212E 6923 LW V0, 12(V0) -BFD02130 001CF85E SW V0, 28(S8) -1994: xItemValue = listGET_LIST_ITEM_VALUE( &( pxTCB->xGenericListItem ) ); -BFD02134 001CFC5E LW V0, 28(S8) -BFD02138 6921 LW V0, 4(V0) -BFD0213A 0020F85E SW V0, 32(S8) -1995: -1996: if( xConstTickCount < xItemValue ) -BFD0213E 0014FC7E LW V1, 20(S8) -BFD02142 0020FC5E LW V0, 32(S8) -BFD02146 13900043 SLTU V0, V1, V0 -BFD02148 40E21390 ADDI GP, S0, 16610 -BFD0214A 000640E2 BEQZC V0, 0xBFD0215A -1997: { -1998: /* It is not time to unblock this item yet, but the -1999: item value is the time at which the task at the head -2000: of the blocked list must be removed from the Blocked -2001: state - so record the item value in -2002: xNextTaskUnblockTime. */ -2003: xNextTaskUnblockTime = xItemValue; -BFD0214E 0020FC5E LW V0, 32(S8) -BFD02152 8058F85C SW V0, -32680(GP) -2004: break; -BFD02156 CC41 B 0xBFD021DA -BFD02158 0C00 NOP -2005: } -2006: else -2007: { -2008: mtCOVERAGE_TEST_MARKER(); -2009: } -2010: -2011: /* It is time to remove the item from the Blocked state. */ -2012: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD0215A 001CFC5E LW V0, 28(S8) -BFD0215E 6D22 ADDIU V0, V0, 4 -BFD02160 0C82 MOVE A0, V0 -BFD02162 00C877E8 JALS uxListRemove -BFD02164 0C0000C8 SLL A2, T0, 1 -BFD02166 0C00 NOP -2013: -2014: /* Is the task waiting on an event also? If so remove -2015: it from the event list. */ -2016: if( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) != NULL ) -BFD02168 001CFC5E LW V0, 28(S8) -BFD0216C 692A LW V0, 40(V0) -BFD0216E 000740E2 BEQZC V0, 0xBFD02180 -2017: { -2018: ( void ) uxListRemove( &( pxTCB->xEventListItem ) ); -BFD02172 001CFC5E LW V0, 28(S8) -BFD02174 6D2C001C EXT ZERO, GP, 20, 14 -BFD02176 6D2C ADDIU V0, V0, 24 -BFD02178 0C82 MOVE A0, V0 -BFD0217A 00C877E8 JALS uxListRemove -BFD0217C 0C0000C8 SLL A2, T0, 1 -BFD0217E 0C00 NOP -2019: } -2020: else -2021: { -2022: mtCOVERAGE_TEST_MARKER(); -2023: } -2024: -2025: /* Place the unblocked task into the appropriate ready -2026: list. */ -2027: prvAddTaskToReadyList( pxTCB ); -BFD02180 001CFC5E LW V0, 28(S8) -BFD02184 692B LW V0, 44(V0) -BFD02186 ED81 LI V1, 1 -BFD02188 18100062 SLLV V1, V0, V1 -BFD0218A FC5C1810 SB ZERO, -932(S0) -BFD0218C 8040FC5C LW V0, -32704(GP) -BFD02190 44D3 OR16 V0, V1 -BFD02192 8040F85C SW V0, -32704(GP) -BFD02196 001CFC5E LW V0, 28(S8) -BFD0219A 692B LW V0, 44(V0) -BFD0219C 2524 SLL V0, V0, 2 -BFD0219E 25A4 SLL V1, V0, 2 -BFD021A0 05B4 ADDU V1, V0, V1 -BFD021A2 BFD241A2 LUI V0, 0xBFD2 -BFD021A4 3042BFD2 LDC1 F30, 12354(S2) -BFD021A6 806C3042 ADDIU V0, V0, -32660 -BFD021AA 05A6 ADDU V1, V1, V0 -BFD021AC 001CFC5E LW V0, 28(S8) -BFD021B0 6D22 ADDIU V0, V0, 4 -BFD021B2 0C83 MOVE A0, V1 -BFD021B4 0CA2 MOVE A1, V0 -BFD021B6 3E4A77E8 JALS vListInsertEnd -BFD021B8 0C003E4A LH S2, 3072(T2) -BFD021BA 0C00 NOP -2028: -2029: /* A task being unblocked cannot cause an immediate -2030: context switch if preemption is turned off. */ -2031: #if ( configUSE_PREEMPTION == 1 ) -2032: { -2033: /* Preemption is on, but a context switch should -2034: only be performed if the unblocked task has a -2035: priority that is equal to or higher than the -2036: currently executing task. */ -2037: if( pxTCB->uxPriority >= pxCurrentTCB->uxPriority ) -BFD021BC 001CFC5E LW V0, 28(S8) -BFD021C0 69AB LW V1, 44(V0) -BFD021C2 8030FC5C LW V0, -32720(GP) -BFD021C6 692B LW V0, 44(V0) -BFD021C8 13900043 SLTU V0, V1, V0 -BFD021CA 40A21390 ADDI GP, S0, 16546 -BFD021CC FF9B40A2 BNEZC V0, 0xBFD02106 -BFD021CE ED01FF9B LW GP, -4863(K1) -2038: { -2039: xSwitchRequired = pdTRUE; -BFD021D0 ED01 LI V0, 1 -BFD021D2 0010F85E SW V0, 16(S8) -2040: } -2041: else -2042: { -2043: mtCOVERAGE_TEST_MARKER(); -2044: } -2045: } -2046: #endif /* configUSE_PREEMPTION */ -2047: } -2048: } -BFD02106 0C00 NOP -BFD021D6 CF98 B 0xBFD02108 -BFD021D8 0C00 NOP -2049: } -2050: } -2051: -2052: /* Tasks of equal priority to the currently running task will share -2053: processing time (time slice) if preemption is on, and the application -2054: writer has not explicitly turned time slicing off. */ -2055: #if ( ( configUSE_PREEMPTION == 1 ) && ( configUSE_TIME_SLICING == 1 ) ) -2056: { -2057: if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ pxCurrentTCB->uxPriority ] ) ) > ( UBaseType_t ) 1 ) -BFD021DA 8030FC5C LW V0, -32720(GP) -BFD021DE 692B LW V0, 44(V0) -BFD021E0 2524 SLL V0, V0, 2 -BFD021E2 25A4 SLL V1, V0, 2 -BFD021E4 05B4 ADDU V1, V0, V1 -BFD021E6 BFD241A2 LUI V0, 0xBFD2 -BFD021E8 3042BFD2 LDC1 F30, 12354(S2) -BFD021EA 806C3042 ADDIU V0, V0, -32660 -BFD021EE 0526 ADDU V0, V1, V0 -BFD021F0 6920 LW V0, 0(V0) -BFD021F2 0002B042 SLTIU V0, V0, 2 -BFD021F6 000A40A2 BNEZC V0, 0xBFD0220E -2058: { -2059: xSwitchRequired = pdTRUE; -BFD021FA ED01 LI V0, 1 -BFD021FC 0010F85E SW V0, 16(S8) -BFD02200 CC06 B 0xBFD0220E -BFD02202 0C00 NOP -2060: } -2061: else -2062: { -2063: mtCOVERAGE_TEST_MARKER(); -2064: } -2065: } -2066: #endif /* ( ( configUSE_PREEMPTION == 1 ) && ( configUSE_TIME_SLICING == 1 ) ) */ -2067: -2068: #if ( configUSE_TICK_HOOK == 1 ) -2069: { -2070: /* Guard against the tick hook being called when the pended tick -2071: count is being unwound (when the scheduler is being unlocked). */ -2072: if( uxPendedTicks == ( UBaseType_t ) 0U ) -2073: { -2074: vApplicationTickHook(); -2075: } -2076: else -2077: { -2078: mtCOVERAGE_TEST_MARKER(); -2079: } -2080: } -2081: #endif /* configUSE_TICK_HOOK */ -2082: } -2083: else -2084: { -2085: ++uxPendedTicks; -BFD02204 8048FC5C LW V0, -32696(GP) -BFD02208 6D20 ADDIU V0, V0, 1 -BFD0220A 8048F85C SW V0, -32696(GP) -2086: -2087: /* The tick hook gets called at regular intervals, even if the -2088: scheduler is locked. */ -2089: #if ( configUSE_TICK_HOOK == 1 ) -2090: { -2091: vApplicationTickHook(); -2092: } -2093: #endif -2094: } -2095: -2096: #if ( configUSE_PREEMPTION == 1 ) -2097: { -2098: if( xYieldPending != pdFALSE ) -BFD0220E 804CFC5C LW V0, -32692(GP) -BFD02212 000340E2 BEQZC V0, 0xBFD0221C -2099: { -2100: xSwitchRequired = pdTRUE; -BFD02216 ED01 LI V0, 1 -BFD02218 0010F85E SW V0, 16(S8) -2101: } -2102: else -2103: { -2104: mtCOVERAGE_TEST_MARKER(); -2105: } -2106: } -2107: #endif /* configUSE_PREEMPTION */ -2108: -2109: return xSwitchRequired; -BFD0221C 0010FC5E LW V0, 16(S8) -2110: } -BFD02220 0FBE MOVE SP, S8 -BFD02222 4BEB LW RA, 44(SP) -BFD02224 4BCA LW S8, 40(SP) -BFD02226 4C19 ADDIU SP, SP, 48 -BFD02228 459F JR16 RA -BFD0222A 0C00 NOP -2111: /*-----------------------------------------------------------*/ -2112: -2113: #if ( configUSE_APPLICATION_TASK_TAG == 1 ) -2114: -2115: void vTaskSetApplicationTaskTag( TaskHandle_t xTask, TaskHookFunction_t pxHookFunction ) -2116: { -2117: TCB_t *xTCB; -2118: -2119: /* If xTask is NULL then it is the task hook of the calling task that is -2120: getting set. */ -2121: if( xTask == NULL ) -2122: { -2123: xTCB = ( TCB_t * ) pxCurrentTCB; -2124: } -2125: else -2126: { -2127: xTCB = ( TCB_t * ) xTask; -2128: } -2129: -2130: /* Save the hook function in the TCB. A critical section is required as -2131: the value can be accessed from an interrupt. */ -2132: taskENTER_CRITICAL(); -2133: xTCB->pxTaskTag = pxHookFunction; -2134: taskEXIT_CRITICAL(); -2135: } -2136: -2137: #endif /* configUSE_APPLICATION_TASK_TAG */ -2138: /*-----------------------------------------------------------*/ -2139: -2140: #if ( configUSE_APPLICATION_TASK_TAG == 1 ) -2141: -2142: TaskHookFunction_t xTaskGetApplicationTaskTag( TaskHandle_t xTask ) -2143: { -2144: TCB_t *xTCB; -2145: TaskHookFunction_t xReturn; -2146: -2147: /* If xTask is NULL then we are setting our own task hook. */ -2148: if( xTask == NULL ) -2149: { -2150: xTCB = ( TCB_t * ) pxCurrentTCB; -2151: } -2152: else -2153: { -2154: xTCB = ( TCB_t * ) xTask; -2155: } -2156: -2157: /* Save the hook function in the TCB. A critical section is required as -2158: the value can be accessed from an interrupt. */ -2159: taskENTER_CRITICAL(); -2160: { -2161: xReturn = xTCB->pxTaskTag; -2162: } -2163: taskEXIT_CRITICAL(); -2164: -2165: return xReturn; -2166: } -2167: -2168: #endif /* configUSE_APPLICATION_TASK_TAG */ -2169: /*-----------------------------------------------------------*/ -2170: -2171: #if ( configUSE_APPLICATION_TASK_TAG == 1 ) -2172: -2173: BaseType_t xTaskCallApplicationTaskHook( TaskHandle_t xTask, void *pvParameter ) -2174: { -2175: TCB_t *xTCB; -2176: BaseType_t xReturn; -2177: -2178: /* If xTask is NULL then we are calling our own task hook. */ -2179: if( xTask == NULL ) -2180: { -2181: xTCB = ( TCB_t * ) pxCurrentTCB; -2182: } -2183: else -2184: { -2185: xTCB = ( TCB_t * ) xTask; -2186: } -2187: -2188: if( xTCB->pxTaskTag != NULL ) -2189: { -2190: xReturn = xTCB->pxTaskTag( pvParameter ); -2191: } -2192: else -2193: { -2194: xReturn = pdFAIL; -2195: } -2196: -2197: return xReturn; -2198: } -2199: -2200: #endif /* configUSE_APPLICATION_TASK_TAG */ -2201: /*-----------------------------------------------------------*/ -2202: -2203: void vTaskSwitchContext( void ) -2204: { -BFD02DBC 4FE5 ADDIU SP, SP, -56 -BFD02DBE CBED SW RA, 52(SP) -BFD02DC0 CBCC SW S8, 48(SP) -BFD02DC2 0FDD MOVE S8, SP -2205: if( uxSchedulerSuspended != ( UBaseType_t ) pdFALSE ) -BFD02DC4 805CFC5C LW V0, -32676(GP) -BFD02DC8 000540E2 BEQZC V0, 0xBFD02DD6 -2206: { -2207: /* The scheduler is currently suspended - do not allow a context -2208: switch. */ -2209: xYieldPending = pdTRUE; -BFD02DCC ED01 LI V0, 1 -BFD02DCE 804CF85C SW V0, -32692(GP) -BFD02DD2 CC91 B 0xBFD02EF6 -BFD02DD4 0C00 NOP -2210: } -2211: else -2212: { -2213: xYieldPending = pdFALSE; -BFD02DD6 804CF81C SW ZERO, -32692(GP) -2214: traceTASK_SWITCHED_OUT(); -2215: -2216: #if ( configGENERATE_RUN_TIME_STATS == 1 ) -2217: { -2218: #ifdef portALT_GET_RUN_TIME_COUNTER_VALUE -2219: portALT_GET_RUN_TIME_COUNTER_VALUE( ulTotalRunTime ); -2220: #else -2221: ulTotalRunTime = portGET_RUN_TIME_COUNTER_VALUE(); -2222: #endif -2223: -2224: /* Add the amount of time the task has been running to the -2225: accumulated time so far. The time the task started running was -2226: stored in ulTaskSwitchedInTime. Note that there is no overflow -2227: protection here so count values are only valid until the timer -2228: overflows. The guard against negative values is to protect -2229: against suspect run time stat counter implementations - which -2230: are provided by the application, not the kernel. */ -2231: if( ulTotalRunTime > ulTaskSwitchedInTime ) -2232: { -2233: pxCurrentTCB->ulRunTimeCounter += ( ulTotalRunTime - ulTaskSwitchedInTime ); -2234: } -2235: else -2236: { -2237: mtCOVERAGE_TEST_MARKER(); -2238: } -2239: ulTaskSwitchedInTime = ulTotalRunTime; -2240: } -2241: #endif /* configGENERATE_RUN_TIME_STATS */ -2242: -2243: /* Check for stack overflow, if configured. */ -2244: taskFIRST_CHECK_FOR_STACK_OVERFLOW(); -BFD02DDA 8030FC5C LW V0, -32720(GP) -BFD02DDE 69A0 LW V1, 0(V0) -BFD02DE0 8030FC5C LW V0, -32720(GP) -BFD02DE4 692C LW V0, 48(V0) -BFD02DE6 13900062 SLTU V0, V0, V1 -BFD02DE8 40A21390 ADDI GP, S0, 16546 -BFD02DEA 000B40A2 BNEZC V0, 0xBFD02E04 -BFD02DEE 8030FC7C LW V1, -32720(GP) -BFD02DF2 8030FC5C LW V0, -32720(GP) -BFD02DF6 00343042 ADDIU V0, V0, 52 -BFD02DFA 0C83 MOVE A0, V1 -BFD02DFC 0CA2 MOVE A1, V0 -BFD02DFE 422277E8 JALS vApplicationStackOverflowHook -BFD02E00 0C004222 BLTZALS V0, 0xBFD04604 -BFD02E02 0C00 NOP -2245: taskSECOND_CHECK_FOR_STACK_OVERFLOW(); -BFD02E04 BFD141A2 LUI V0, 0xBFD1 -BFD02E06 FCC2BFD1 LDC1 F30, -830(S1) -BFD02E08 9830FCC2 LW A2, -26576(V0) -BFD02E0A 30629830 SWC1 F1, 12386(S0) -BFD02E0C 98303062 ADDIU V1, V0, -26576 -BFD02E0E 6AB19830 SWC1 F1, 27313(S0) -BFD02E10 6AB1 LW A1, 4(V1) -BFD02E12 98303062 ADDIU V1, V0, -26576 -BFD02E14 6A329830 SWC1 F1, 27186(S0) -BFD02E16 6A32 LW A0, 8(V1) -BFD02E18 98303062 ADDIU V1, V0, -26576 -BFD02E1A 69B39830 SWC1 F1, 27059(S0) -BFD02E1C 69B3 LW V1, 12(V1) -BFD02E1E 98303042 ADDIU V0, V0, -26576 -BFD02E20 69249830 SWC1 F1, 26916(S0) -BFD02E22 6924 LW V0, 16(V0) -BFD02E24 0018F8DE SW A2, 24(S8) -BFD02E28 001CF8BE SW A1, 28(S8) -BFD02E2C 0020F89E SW A0, 32(S8) -BFD02E30 0024F87E SW V1, 36(S8) -BFD02E34 0028F85E SW V0, 40(S8) -BFD02E38 8030FC5C LW V0, -32720(GP) -BFD02E3C 69AC LW V1, 48(V0) -BFD02E3E 0018305E ADDIU V0, S8, 24 -BFD02E42 0C83 MOVE A0, V1 -BFD02E44 0CA2 MOVE A1, V0 -BFD02E46 EF14 LI A2, 20 -BFD02E48 3DA677E8 JALS 0xBFD07B4C -BFD02E4A 0C003DA6 LH T5, 3072(A2) -BFD02E4C 0C00 NOP -BFD02E4E 000B40E2 BEQZC V0, 0xBFD02E68 -BFD02E52 8030FC7C LW V1, -32720(GP) -BFD02E56 8030FC5C LW V0, -32720(GP) -BFD02E5A 00343042 ADDIU V0, V0, 52 -BFD02E5E 0C83 MOVE A0, V1 -BFD02E60 0CA2 MOVE A1, V0 -BFD02E62 422277E8 JALS vApplicationStackOverflowHook -BFD02E64 0C004222 BLTZALS V0, 0xBFD04668 -BFD02E66 0C00 NOP -2246: -2247: /* Select a new task to run using either the generic C or port -2248: optimised asm code. */ -2249: taskSELECT_HIGHEST_PRIORITY_TASK(); -BFD02E68 8040FC5C LW V0, -32704(GP) -BFD02E6C 5B3C0042 CLZ V0, V0 -BFD02E70 ED9F LI V1, 31 -BFD02E72 0527 SUBU V0, V1, V0 -BFD02E74 0010F85E SW V0, 16(S8) -BFD02E78 0010FC5E LW V0, 16(S8) -BFD02E7C 2524 SLL V0, V0, 2 -BFD02E7E 25A4 SLL V1, V0, 2 -BFD02E80 05B4 ADDU V1, V0, V1 -BFD02E82 BFD241A2 LUI V0, 0xBFD2 -BFD02E84 3042BFD2 LDC1 F30, 12354(S2) -BFD02E86 806C3042 ADDIU V0, V0, -32660 -BFD02E8A 0526 ADDU V0, V1, V0 -BFD02E8C 6920 LW V0, 0(V0) -BFD02E8E 000940A2 BNEZC V0, 0xBFD02EA4 -BFD02E92 BFD141A2 LUI V0, 0xBFD1 -BFD02E94 3082BFD1 LDC1 F30, 12418(S1) -BFD02E96 98103082 ADDIU A0, V0, -26608 -BFD02E98 30A09810 SWC1 F0, 12448(S0) -BFD02E9A 08C930A0 ADDIU A1, ZERO, 2249 -BFD02E9C 08C9 LBU S1, 9(A0) -BFD02E9E 4B7E77E8 JALS vAssertCalled -BFD02EA0 4B7E LW K1, 120(SP) -BFD02EA2 0C00 NOP -BFD02EA4 0010FC5E LW V0, 16(S8) -BFD02EA8 2524 SLL V0, V0, 2 -BFD02EAA 25A4 SLL V1, V0, 2 -BFD02EAC 05B4 ADDU V1, V0, V1 -BFD02EAE BFD241A2 LUI V0, 0xBFD2 -BFD02EB0 3042BFD2 LDC1 F30, 12354(S2) -BFD02EB2 806C3042 ADDIU V0, V0, -32660 -BFD02EB6 0526 ADDU V0, V1, V0 -BFD02EB8 0014F85E SW V0, 20(S8) -BFD02EBC 0014FC5E LW V0, 20(S8) -BFD02EC0 6921 LW V0, 4(V0) -BFD02EC2 69A1 LW V1, 4(V0) -BFD02EC4 0014FC5E LW V0, 20(S8) -BFD02EC8 E9A1 SW V1, 4(V0) -BFD02ECA 0014FC5E LW V0, 20(S8) -BFD02ECE 69A1 LW V1, 4(V0) -BFD02ED0 0014FC5E LW V0, 20(S8) -BFD02ED4 6D24 ADDIU V0, V0, 8 -BFD02ED6 0008B443 BNE V1, V0, 0xBFD02EEA -BFD02ED8 0C000008 SLL ZERO, T0, 1 -BFD02EDA 0C00 NOP -BFD02EDC 0014FC5E LW V0, 20(S8) -BFD02EE0 6921 LW V0, 4(V0) -BFD02EE2 69A1 LW V1, 4(V0) -BFD02EE4 0014FC5E LW V0, 20(S8) -BFD02EE8 E9A1 SW V1, 4(V0) -BFD02EEA 0014FC5E LW V0, 20(S8) -BFD02EEE 6921 LW V0, 4(V0) -BFD02EF0 6923 LW V0, 12(V0) -BFD02EF2 8030F85C SW V0, -32720(GP) -2250: traceTASK_SWITCHED_IN(); -2251: -2252: #if ( configUSE_NEWLIB_REENTRANT == 1 ) -2253: { -2254: /* Switch Newlib's _impure_ptr variable to point to the _reent -2255: structure specific to this task. */ -2256: _impure_ptr = &( pxCurrentTCB->xNewLib_reent ); -2257: } -2258: #endif /* configUSE_NEWLIB_REENTRANT */ -2259: } -2260: } -BFD02EF6 0FBE MOVE SP, S8 -BFD02EF8 4BED LW RA, 52(SP) -BFD02EFA 4BCC LW S8, 48(SP) -BFD02EFC 4C1D ADDIU SP, SP, 56 -BFD02EFE 459F JR16 RA -BFD02F00 0C00 NOP -2261: /*-----------------------------------------------------------*/ -2262: -2263: void vTaskPlaceOnEventList( List_t * const pxEventList, const TickType_t xTicksToWait ) -2264: { -BFD05E74 4FF1 ADDIU SP, SP, -32 -BFD05E76 CBE7 SW RA, 28(SP) -BFD05E78 CBC6 SW S8, 24(SP) -BFD05E7A 0FDD MOVE S8, SP -BFD05E7C 0020F89E SW A0, 32(S8) -BFD05E80 0024F8BE SW A1, 36(S8) -2265: TickType_t xTimeToWake; -2266: -2267: configASSERT( pxEventList ); -BFD05E84 0020FC5E LW V0, 32(S8) -BFD05E88 000940A2 BNEZC V0, 0xBFD05E9E -BFD05E8C BFD141A2 LUI V0, 0xBFD1 -BFD05E8E 3082BFD1 LDC1 F30, 12418(S1) -BFD05E90 98103082 ADDIU A0, V0, -26608 -BFD05E92 30A09810 SWC1 F0, 12448(S0) -BFD05E94 08DB30A0 ADDIU A1, ZERO, 2267 -BFD05E96 08DB LBU S1, 11(A1) -BFD05E98 4B7E77E8 JALS vAssertCalled -BFD05E9A 4B7E LW K1, 120(SP) -BFD05E9C 0C00 NOP -2268: -2269: /* THIS FUNCTION MUST BE CALLED WITH EITHER INTERRUPTS DISABLED OR THE -2270: SCHEDULER SUSPENDED AND THE QUEUE BEING ACCESSED LOCKED. */ -2271: -2272: /* Place the event list item of the TCB in the appropriate event list. -2273: This is placed in the list in priority order so the highest priority task -2274: is the first to be woken by the event. The queue that contains the event -2275: list is locked, preventing simultaneous access from interrupts. */ -2276: vListInsert( pxEventList, &( pxCurrentTCB->xEventListItem ) ); -BFD05E9E 8030FC5C LW V0, -32720(GP) -BFD05EA2 6D2C ADDIU V0, V0, 24 -BFD05EA4 0020FC9E LW A0, 32(S8) -BFD05EA8 0CA2 MOVE A1, V0 -BFD05EAA 304077E8 JALS vListInsert -BFD05EAC 0C003040 ADDIU V0, ZERO, 3072 -BFD05EAE 0C00 NOP -2277: -2278: /* The task must be removed from from the ready list before it is added to -2279: the blocked list as the same list item is used for both lists. Exclusive -2280: access to the ready lists guaranteed because the scheduler is locked. */ -2281: if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD05EB0 8030FC5C LW V0, -32720(GP) -BFD05EB4 6D22 ADDIU V0, V0, 4 -BFD05EB6 0C82 MOVE A0, V0 -BFD05EB8 00C877E8 JALS uxListRemove -BFD05EBA 0C0000C8 SLL A2, T0, 1 -BFD05EBC 0C00 NOP -BFD05EBE 000C40A2 BNEZC V0, 0xBFD05EDA -2282: { -2283: /* The current task must be in a ready list, so there is no need to -2284: check, and the port reset macro can be called directly. */ -2285: portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); -BFD05EC2 8030FC5C LW V0, -32720(GP) -BFD05EC6 692B LW V0, 44(V0) -BFD05EC8 ED81 LI V1, 1 -BFD05ECA 10100062 SLLV V0, V0, V1 -BFD05ECC 441A1010 ADDI ZERO, S0, 17434 -BFD05ECE 441A NOT16 V1, V0 -BFD05ED0 8040FC5C LW V0, -32704(GP) -BFD05ED4 4493 AND16 V0, V1 -BFD05ED6 8040F85C SW V0, -32704(GP) -2286: } -2287: else -2288: { -2289: mtCOVERAGE_TEST_MARKER(); -2290: } -2291: -2292: #if ( INCLUDE_vTaskSuspend == 1 ) -2293: { -2294: if( xTicksToWait == portMAX_DELAY ) -BFD05EDA 0024FC7E LW V1, 36(S8) -BFD05EDE ED7F LI V0, -1 -BFD05EE0 000EB443 BNE V1, V0, 0xBFD05F00 -BFD05EE2 0C00000E SLL ZERO, T6, 1 -BFD05EE4 0C00 NOP -2295: { -2296: /* Add the task to the suspended task list instead of a delayed task -2297: list to ensure the task is not woken by a timing event. It will -2298: block indefinitely. */ -2299: vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) ); -BFD05EE6 8030FC5C LW V0, -32720(GP) -BFD05EEA 6D22 ADDIU V0, V0, 4 -BFD05EEC BFD241A3 LUI V1, 0xBFD2 -BFD05EEE 3083BFD2 LDC1 F30, 12419(S2) -BFD05EF0 80E43083 ADDIU A0, V1, -32540 -BFD05EF4 0CA2 MOVE A1, V0 -BFD05EF6 3E4A77E8 JALS vListInsertEnd -BFD05EF8 0C003E4A LH S2, 3072(T2) -BFD05EFA 0C00 NOP -BFD05EFC CC0D B 0xBFD05F18 -BFD05EFE 0C00 NOP -2300: } -2301: else -2302: { -2303: /* Calculate the time at which the task should be woken if the event -2304: does not occur. This may overflow but this doesn't matter, the -2305: scheduler will handle it. */ -2306: xTimeToWake = xTickCount + xTicksToWait; -BFD05F00 803CFC7C LW V1, -32708(GP) -BFD05F04 0024FC5E LW V0, 36(S8) -BFD05F08 0526 ADDU V0, V1, V0 -BFD05F0A 0010F85E SW V0, 16(S8) -2307: prvAddCurrentTaskToDelayedList( xTimeToWake ); -BFD05F0E 0010FC9E LW A0, 16(S8) -BFD05F12 373477E8 JALS prvAddCurrentTaskToDelayedList -BFD05F14 0C003734 LHU T9, 3072(S4) -BFD05F16 0C00 NOP -2308: } -2309: } -2310: #else /* INCLUDE_vTaskSuspend */ -2311: { -2312: /* Calculate the time at which the task should be woken if the event does -2313: not occur. This may overflow but this doesn't matter, the scheduler -2314: will handle it. */ -2315: xTimeToWake = xTickCount + xTicksToWait; -2316: prvAddCurrentTaskToDelayedList( xTimeToWake ); -2317: } -2318: #endif /* INCLUDE_vTaskSuspend */ -2319: } -BFD05F18 0FBE MOVE SP, S8 -BFD05F1A 4BE7 LW RA, 28(SP) -BFD05F1C 4BC6 LW S8, 24(SP) -BFD05F1E 4C11 ADDIU SP, SP, 32 -BFD05F20 459F JR16 RA -BFD05F22 0C00 NOP -2320: /*-----------------------------------------------------------*/ -2321: -2322: void vTaskPlaceOnUnorderedEventList( List_t * pxEventList, const TickType_t xItemValue, const TickType_t xTicksToWait ) -2323: { -BFD04904 4FF1 ADDIU SP, SP, -32 -BFD04906 CBE7 SW RA, 28(SP) -BFD04908 CBC6 SW S8, 24(SP) -BFD0490A 0FDD MOVE S8, SP -BFD0490C 0020F89E SW A0, 32(S8) -BFD04910 0024F8BE SW A1, 36(S8) -BFD04914 0028F8DE SW A2, 40(S8) -2324: TickType_t xTimeToWake; -2325: -2326: configASSERT( pxEventList ); -BFD04918 0020FC5E LW V0, 32(S8) -BFD0491C 000940A2 BNEZC V0, 0xBFD04932 -BFD04920 BFD141A2 LUI V0, 0xBFD1 -BFD04922 3082BFD1 LDC1 F30, 12418(S1) -BFD04924 98103082 ADDIU A0, V0, -26608 -BFD04926 30A09810 SWC1 F0, 12448(S0) -BFD04928 091630A0 ADDIU A1, ZERO, 2326 -BFD0492A 0916 LBU V0, 6(S1) -BFD0492C 4B7E77E8 JALS vAssertCalled -BFD0492E 4B7E LW K1, 120(SP) -BFD04930 0C00 NOP -2327: -2328: /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by -2329: the event groups implementation. */ -2330: configASSERT( uxSchedulerSuspended != 0 ); -BFD04932 805CFC5C LW V0, -32676(GP) -BFD04936 000940A2 BNEZC V0, 0xBFD0494C -BFD0493A BFD141A2 LUI V0, 0xBFD1 -BFD0493C 3082BFD1 LDC1 F30, 12418(S1) -BFD0493E 98103082 ADDIU A0, V0, -26608 -BFD04940 30A09810 SWC1 F0, 12448(S0) -BFD04942 091A30A0 ADDIU A1, ZERO, 2330 -BFD04944 091A LBU V0, 10(S1) -BFD04946 4B7E77E8 JALS vAssertCalled -BFD04948 4B7E LW K1, 120(SP) -BFD0494A 0C00 NOP -2331: -2332: /* Store the item value in the event list item. It is safe to access the -2333: event list item here as interrupts won't access the event list item of a -2334: task that is not in the Blocked state. */ -2335: listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xEventListItem ), xItemValue | taskEVENT_LIST_ITEM_VALUE_IN_USE ); -BFD0494C 8030FC5C LW V0, -32720(GP) -BFD04950 0024FC9E LW A0, 36(S8) -BFD04954 800041A3 LUI V1, 0x8000 -BFD04958 44DC OR16 V1, A0 -BFD0495A E9A6 SW V1, 24(V0) -2336: -2337: /* Place the event list item of the TCB at the end of the appropriate event -2338: list. It is safe to access the event list here because it is part of an -2339: event group implementation - and interrupts don't access event groups -2340: directly (instead they access them indirectly by pending function calls to -2341: the task level). */ -2342: vListInsertEnd( pxEventList, &( pxCurrentTCB->xEventListItem ) ); -BFD0495C 8030FC5C LW V0, -32720(GP) -BFD04960 6D2C ADDIU V0, V0, 24 -BFD04962 0020FC9E LW A0, 32(S8) -BFD04966 0CA2 MOVE A1, V0 -BFD04968 3E4A77E8 JALS vListInsertEnd -BFD0496A 0C003E4A LH S2, 3072(T2) -BFD0496C 0C00 NOP -2343: -2344: /* The task must be removed from the ready list before it is added to the -2345: blocked list. Exclusive access can be assured to the ready list as the -2346: scheduler is locked. */ -2347: if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD0496E 8030FC5C LW V0, -32720(GP) -BFD04972 6D22 ADDIU V0, V0, 4 -BFD04974 0C82 MOVE A0, V0 -BFD04976 00C877E8 JALS uxListRemove -BFD04978 0C0000C8 SLL A2, T0, 1 -BFD0497A 0C00 NOP -BFD0497C 000C40A2 BNEZC V0, 0xBFD04998 -2348: { -2349: /* The current task must be in a ready list, so there is no need to -2350: check, and the port reset macro can be called directly. */ -2351: portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); -BFD04980 8030FC5C LW V0, -32720(GP) -BFD04984 692B LW V0, 44(V0) -BFD04986 ED81 LI V1, 1 -BFD04988 10100062 SLLV V0, V0, V1 -BFD0498A 441A1010 ADDI ZERO, S0, 17434 -BFD0498C 441A NOT16 V1, V0 -BFD0498E 8040FC5C LW V0, -32704(GP) -BFD04992 4493 AND16 V0, V1 -BFD04994 8040F85C SW V0, -32704(GP) -2352: } -2353: else -2354: { -2355: mtCOVERAGE_TEST_MARKER(); -2356: } -2357: -2358: #if ( INCLUDE_vTaskSuspend == 1 ) -2359: { -2360: if( xTicksToWait == portMAX_DELAY ) -BFD04998 0028FC7E LW V1, 40(S8) -BFD0499C ED7F LI V0, -1 -BFD0499E 000EB443 BNE V1, V0, 0xBFD049BE -BFD049A0 0C00000E SLL ZERO, T6, 1 -BFD049A2 0C00 NOP -2361: { -2362: /* Add the task to the suspended task list instead of a delayed task -2363: list to ensure it is not woken by a timing event. It will block -2364: indefinitely. */ -2365: vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) ); -BFD049A4 8030FC5C LW V0, -32720(GP) -BFD049A8 6D22 ADDIU V0, V0, 4 -BFD049AA BFD241A3 LUI V1, 0xBFD2 -BFD049AC 3083BFD2 LDC1 F30, 12419(S2) -BFD049AE 80E43083 ADDIU A0, V1, -32540 -BFD049B2 0CA2 MOVE A1, V0 -BFD049B4 3E4A77E8 JALS vListInsertEnd -BFD049B6 0C003E4A LH S2, 3072(T2) -BFD049B8 0C00 NOP -BFD049BA CC0D B 0xBFD049D6 -BFD049BC 0C00 NOP -2366: } -2367: else -2368: { -2369: /* Calculate the time at which the task should be woken if the event -2370: does not occur. This may overflow but this doesn't matter, the -2371: kernel will manage it correctly. */ -2372: xTimeToWake = xTickCount + xTicksToWait; -BFD049BE 803CFC7C LW V1, -32708(GP) -BFD049C2 0028FC5E LW V0, 40(S8) -BFD049C6 0526 ADDU V0, V1, V0 -BFD049C8 0010F85E SW V0, 16(S8) -2373: prvAddCurrentTaskToDelayedList( xTimeToWake ); -BFD049CC 0010FC9E LW A0, 16(S8) -BFD049D0 373477E8 JALS prvAddCurrentTaskToDelayedList -BFD049D2 0C003734 LHU T9, 3072(S4) -BFD049D4 0C00 NOP -2374: } -2375: } -2376: #else /* INCLUDE_vTaskSuspend */ -2377: { -2378: /* Calculate the time at which the task should be woken if the event does -2379: not occur. This may overflow but this doesn't matter, the kernel -2380: will manage it correctly. */ -2381: xTimeToWake = xTickCount + xTicksToWait; -2382: prvAddCurrentTaskToDelayedList( xTimeToWake ); -2383: } -2384: #endif /* INCLUDE_vTaskSuspend */ -2385: } -BFD049D6 0FBE MOVE SP, S8 -BFD049D8 4BE7 LW RA, 28(SP) -BFD049DA 4BC6 LW S8, 24(SP) -BFD049DC 4C11 ADDIU SP, SP, 32 -BFD049DE 459F JR16 RA -BFD049E0 0C00 NOP -2386: /*-----------------------------------------------------------*/ -2387: -2388: #if configUSE_TIMERS == 1 -2389: -2390: void vTaskPlaceOnEventListRestricted( List_t * const pxEventList, const TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) -2391: { -BFD05C58 4FF1 ADDIU SP, SP, -32 -BFD05C5A CBE7 SW RA, 28(SP) -BFD05C5C CBC6 SW S8, 24(SP) -BFD05C5E 0FDD MOVE S8, SP -BFD05C60 0020F89E SW A0, 32(S8) -BFD05C64 0024F8BE SW A1, 36(S8) -BFD05C68 0028F8DE SW A2, 40(S8) -2392: TickType_t xTimeToWake; -2393: -2394: configASSERT( pxEventList ); -BFD05C6C 0020FC5E LW V0, 32(S8) -BFD05C70 000940A2 BNEZC V0, 0xBFD05C86 -BFD05C74 BFD141A2 LUI V0, 0xBFD1 -BFD05C76 3082BFD1 LDC1 F30, 12418(S1) -BFD05C78 98103082 ADDIU A0, V0, -26608 -BFD05C7A 30A09810 SWC1 F0, 12448(S0) -BFD05C7C 095A30A0 ADDIU A1, ZERO, 2394 -BFD05C7E 095A LBU V0, 10(A1) -BFD05C80 4B7E77E8 JALS vAssertCalled -BFD05C82 4B7E LW K1, 120(SP) -BFD05C84 0C00 NOP -2395: -2396: /* This function should not be called by application code hence the -2397: 'Restricted' in its name. It is not part of the public API. It is -2398: designed for use by kernel code, and has special calling requirements - -2399: it should be called with the scheduler suspended. */ -2400: -2401: -2402: /* Place the event list item of the TCB in the appropriate event list. -2403: In this case it is assume that this is the only task that is going to -2404: be waiting on this event list, so the faster vListInsertEnd() function -2405: can be used in place of vListInsert. */ -2406: vListInsertEnd( pxEventList, &( pxCurrentTCB->xEventListItem ) ); -BFD05C86 8030FC5C LW V0, -32720(GP) -BFD05C8A 6D2C ADDIU V0, V0, 24 -BFD05C8C 0020FC9E LW A0, 32(S8) -BFD05C90 0CA2 MOVE A1, V0 -BFD05C92 3E4A77E8 JALS vListInsertEnd -BFD05C94 0C003E4A LH S2, 3072(T2) -BFD05C96 0C00 NOP -2407: -2408: /* We must remove this task from the ready list before adding it to the -2409: blocked list as the same list item is used for both lists. This -2410: function is called with the scheduler locked so interrupts will not -2411: access the lists at the same time. */ -2412: if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD05C98 8030FC5C LW V0, -32720(GP) -BFD05C9C 6D22 ADDIU V0, V0, 4 -BFD05C9E 0C82 MOVE A0, V0 -BFD05CA0 00C877E8 JALS uxListRemove -BFD05CA2 0C0000C8 SLL A2, T0, 1 -BFD05CA4 0C00 NOP -BFD05CA6 000C40A2 BNEZC V0, 0xBFD05CC2 -2413: { -2414: /* The current task must be in a ready list, so there is no need to -2415: check, and the port reset macro can be called directly. */ -2416: portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); -BFD05CAA 8030FC5C LW V0, -32720(GP) -BFD05CAE 692B LW V0, 44(V0) -BFD05CB0 ED81 LI V1, 1 -BFD05CB2 10100062 SLLV V0, V0, V1 -BFD05CB4 441A1010 ADDI ZERO, S0, 17434 -BFD05CB6 441A NOT16 V1, V0 -BFD05CB8 8040FC5C LW V0, -32704(GP) -BFD05CBC 4493 AND16 V0, V1 -BFD05CBE 8040F85C SW V0, -32704(GP) -2417: } -2418: else -2419: { -2420: mtCOVERAGE_TEST_MARKER(); -2421: } -2422: -2423: /* If vTaskSuspend() is available then the suspended task list is also -2424: available and a task that is blocking indefinitely can enter the -2425: suspended state (it is not really suspended as it will re-enter the -2426: Ready state when the event it is waiting indefinitely for occurs). -2427: Blocking indefinitely is useful when using tickless idle mode as when -2428: all tasks are blocked indefinitely all timers can be turned off. */ -2429: #if( INCLUDE_vTaskSuspend == 1 ) -2430: { -2431: if( xWaitIndefinitely == pdTRUE ) -BFD05CC2 0028FC7E LW V1, 40(S8) -BFD05CC6 ED01 LI V0, 1 -BFD05CC8 000EB443 BNE V1, V0, 0xBFD05CE8 -BFD05CCA 0C00000E SLL ZERO, T6, 1 -BFD05CCC 0C00 NOP -2432: { -2433: /* Add the task to the suspended task list instead of a delayed -2434: task list to ensure the task is not woken by a timing event. It -2435: will block indefinitely. */ -2436: vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) ); -BFD05CCE 8030FC5C LW V0, -32720(GP) -BFD05CD2 6D22 ADDIU V0, V0, 4 -BFD05CD4 BFD241A3 LUI V1, 0xBFD2 -BFD05CD6 3083BFD2 LDC1 F30, 12419(S2) -BFD05CD8 80E43083 ADDIU A0, V1, -32540 -BFD05CDC 0CA2 MOVE A1, V0 -BFD05CDE 3E4A77E8 JALS vListInsertEnd -BFD05CE0 0C003E4A LH S2, 3072(T2) -BFD05CE2 0C00 NOP -BFD05CE4 CC0D B 0xBFD05D00 -BFD05CE6 0C00 NOP -2437: } -2438: else -2439: { -2440: /* Calculate the time at which the task should be woken if the -2441: event does not occur. This may overflow but this doesn't -2442: matter. */ -2443: xTimeToWake = xTickCount + xTicksToWait; -BFD05CE8 803CFC7C LW V1, -32708(GP) -BFD05CEC 0024FC5E LW V0, 36(S8) -BFD05CF0 0526 ADDU V0, V1, V0 -BFD05CF2 0010F85E SW V0, 16(S8) -2444: traceTASK_DELAY_UNTIL(); -2445: prvAddCurrentTaskToDelayedList( xTimeToWake ); -BFD05CF6 0010FC9E LW A0, 16(S8) -BFD05CFA 373477E8 JALS prvAddCurrentTaskToDelayedList -BFD05CFC 0C003734 LHU T9, 3072(S4) -BFD05CFE 0C00 NOP -2446: } -2447: } -2448: #else -2449: { -2450: /* Calculate the time at which the task should be woken if the event -2451: does not occur. This may overflow but this doesn't matter. */ -2452: xTimeToWake = xTickCount + xTicksToWait; -2453: traceTASK_DELAY_UNTIL(); -2454: prvAddCurrentTaskToDelayedList( xTimeToWake ); -2455: -2456: /* Remove compiler warnings when INCLUDE_vTaskSuspend() is not -2457: defined. */ -2458: ( void ) xWaitIndefinitely; -2459: } -2460: #endif -2461: } -BFD05D00 0FBE MOVE SP, S8 -BFD05D02 4BE7 LW RA, 28(SP) -BFD05D04 4BC6 LW S8, 24(SP) -BFD05D06 4C11 ADDIU SP, SP, 32 -BFD05D08 459F JR16 RA -BFD05D0A 0C00 NOP -2462: -2463: #endif /* configUSE_TIMERS */ -2464: /*-----------------------------------------------------------*/ -2465: -2466: BaseType_t xTaskRemoveFromEventList( const List_t * const pxEventList ) -2467: { -BFD04578 4FF1 ADDIU SP, SP, -32 -BFD0457A CBE7 SW RA, 28(SP) -BFD0457C CBC6 SW S8, 24(SP) -BFD0457E 0FDD MOVE S8, SP -BFD04580 0020F89E SW A0, 32(S8) -2468: TCB_t *pxUnblockedTCB; -2469: BaseType_t xReturn; -2470: -2471: /* THIS FUNCTION MUST BE CALLED FROM A CRITICAL SECTION. It can also be -2472: called from a critical section within an ISR. */ -2473: -2474: /* The event list is sorted in priority order, so the first in the list can -2475: be removed as it is known to be the highest priority. Remove the TCB from -2476: the delayed list, and add it to the ready list. -2477: -2478: If an event is for a queue that is locked then this function will never -2479: get called - the lock count on the queue will get modified instead. This -2480: means exclusive access to the event list is guaranteed here. -2481: -2482: This function assumes that a check has already been made to ensure that -2483: pxEventList is not empty. */ -2484: pxUnblockedTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxEventList ); -BFD04584 0020FC5E LW V0, 32(S8) -BFD04588 6923 LW V0, 12(V0) -BFD0458A 6923 LW V0, 12(V0) -BFD0458C 0014F85E SW V0, 20(S8) -2485: configASSERT( pxUnblockedTCB ); -BFD04590 0014FC5E LW V0, 20(S8) -BFD04594 000940A2 BNEZC V0, 0xBFD045AA -BFD04598 BFD141A2 LUI V0, 0xBFD1 -BFD0459A 3082BFD1 LDC1 F30, 12418(S1) -BFD0459C 98103082 ADDIU A0, V0, -26608 -BFD0459E 30A09810 SWC1 F0, 12448(S0) -BFD045A0 09B530A0 ADDIU A1, ZERO, 2485 -BFD045A2 09B5 LBU V1, 5(V1) -BFD045A4 4B7E77E8 JALS vAssertCalled -BFD045A6 4B7E LW K1, 120(SP) -BFD045A8 0C00 NOP -2486: ( void ) uxListRemove( &( pxUnblockedTCB->xEventListItem ) ); -BFD045AA 0014FC5E LW V0, 20(S8) -BFD045AC 6D2C0014 EXT ZERO, S4, 20, 14 -BFD045AE 6D2C ADDIU V0, V0, 24 -BFD045B0 0C82 MOVE A0, V0 -BFD045B2 00C877E8 JALS uxListRemove -BFD045B4 0C0000C8 SLL A2, T0, 1 -BFD045B6 0C00 NOP -2487: -2488: if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) -BFD045B8 805CFC5C LW V0, -32676(GP) -BFD045BC 002740A2 BNEZC V0, 0xBFD0460E -2489: { -2490: ( void ) uxListRemove( &( pxUnblockedTCB->xGenericListItem ) ); -BFD045C0 0014FC5E LW V0, 20(S8) -BFD045C4 6D22 ADDIU V0, V0, 4 -BFD045C6 0C82 MOVE A0, V0 -BFD045C8 00C877E8 JALS uxListRemove -BFD045CA 0C0000C8 SLL A2, T0, 1 -BFD045CC 0C00 NOP -2491: prvAddTaskToReadyList( pxUnblockedTCB ); -BFD045CE 0014FC5E LW V0, 20(S8) -BFD045D2 692B LW V0, 44(V0) -BFD045D4 ED81 LI V1, 1 -BFD045D6 18100062 SLLV V1, V0, V1 -BFD045D8 FC5C1810 SB ZERO, -932(S0) -BFD045DA 8040FC5C LW V0, -32704(GP) -BFD045DE 44D3 OR16 V0, V1 -BFD045E0 8040F85C SW V0, -32704(GP) -BFD045E4 0014FC5E LW V0, 20(S8) -BFD045E8 692B LW V0, 44(V0) -BFD045EA 2524 SLL V0, V0, 2 -BFD045EC 25A4 SLL V1, V0, 2 -BFD045EE 05B4 ADDU V1, V0, V1 -BFD045F0 BFD241A2 LUI V0, 0xBFD2 -BFD045F2 3042BFD2 LDC1 F30, 12354(S2) -BFD045F4 806C3042 ADDIU V0, V0, -32660 -BFD045F8 05A6 ADDU V1, V1, V0 -BFD045FA 0014FC5E LW V0, 20(S8) -BFD045FE 6D22 ADDIU V0, V0, 4 -BFD04600 0C83 MOVE A0, V1 -BFD04602 0CA2 MOVE A1, V0 -BFD04604 3E4A77E8 JALS vListInsertEnd -BFD04606 0C003E4A LH S2, 3072(T2) -BFD04608 0C00 NOP -BFD0460A CC0C B 0xBFD04624 -BFD0460C 0C00 NOP -2492: } -2493: else -2494: { -2495: /* The delayed and ready lists cannot be accessed, so hold this task -2496: pending until the scheduler is resumed. */ -2497: vListInsertEnd( &( xPendingReadyList ), &( pxUnblockedTCB->xEventListItem ) ); -BFD0460E 0014FC5E LW V0, 20(S8) -BFD04610 6D2C0014 EXT ZERO, S4, 20, 14 -BFD04612 6D2C ADDIU V0, V0, 24 -BFD04614 BFD241A3 LUI V1, 0xBFD2 -BFD04616 3083BFD2 LDC1 F30, 12419(S2) -BFD04618 80D03083 ADDIU A0, V1, -32560 -BFD0461C 0CA2 MOVE A1, V0 -BFD0461E 3E4A77E8 JALS vListInsertEnd -BFD04620 0C003E4A LH S2, 3072(T2) -BFD04622 0C00 NOP -2498: } -2499: -2500: if( pxUnblockedTCB->uxPriority > pxCurrentTCB->uxPriority ) -BFD04624 0014FC5E LW V0, 20(S8) -BFD04628 69AB LW V1, 44(V0) -BFD0462A 8030FC5C LW V0, -32720(GP) -BFD0462E 692B LW V0, 44(V0) -BFD04630 13900062 SLTU V0, V0, V1 -BFD04632 40E21390 ADDI GP, S0, 16610 -BFD04634 000840E2 BEQZC V0, 0xBFD04648 -2501: { -2502: /* Return true if the task removed from the event list has a higher -2503: priority than the calling task. This allows the calling task to know if -2504: it should force a context switch now. */ -2505: xReturn = pdTRUE; -BFD04638 ED01 LI V0, 1 -BFD0463A 0010F85E SW V0, 16(S8) -2506: -2507: /* Mark that a yield is pending in case the user is not using the -2508: "xHigherPriorityTaskWoken" parameter to an ISR safe FreeRTOS function. */ -2509: xYieldPending = pdTRUE; -BFD0463E ED01 LI V0, 1 -BFD04640 804CF85C SW V0, -32692(GP) -BFD04644 CC03 B 0xBFD0464C -BFD04646 0C00 NOP -2510: } -2511: else -2512: { -2513: xReturn = pdFALSE; -BFD04648 0010F81E SW ZERO, 16(S8) -2514: } -2515: -2516: #if( configUSE_TICKLESS_IDLE != 0 ) -2517: { -2518: /* If a task is blocked on a kernel object then xNextTaskUnblockTime -2519: might be set to the blocked task's time out time. If the task is -2520: unblocked for a reason other than a timeout xNextTaskUnblockTime is -2521: normally left unchanged, because it is automatically reset to a new -2522: value when the tick count equals xNextTaskUnblockTime. However if -2523: tickless idling is used it might be more important to enter sleep mode -2524: at the earliest possible time - so reset xNextTaskUnblockTime here to -2525: ensure it is updated at the earliest possible time. */ -2526: prvResetNextTaskUnblockTime(); -2527: } -2528: #endif -2529: -2530: return xReturn; -BFD0464C 0010FC5E LW V0, 16(S8) -2531: } -BFD04650 0FBE MOVE SP, S8 -BFD04652 4BE7 LW RA, 28(SP) -BFD04654 4BC6 LW S8, 24(SP) -BFD04656 4C11 ADDIU SP, SP, 32 -BFD04658 459F JR16 RA -BFD0465A 0C00 NOP -2532: /*-----------------------------------------------------------*/ -2533: -2534: BaseType_t xTaskRemoveFromUnorderedEventList( ListItem_t * pxEventListItem, const TickType_t xItemValue ) -2535: { -BFD042C4 4FF1 ADDIU SP, SP, -32 -BFD042C6 CBE7 SW RA, 28(SP) -BFD042C8 CBC6 SW S8, 24(SP) -BFD042CA 0FDD MOVE S8, SP -BFD042CC 0020F89E SW A0, 32(S8) -BFD042D0 0024F8BE SW A1, 36(S8) -2536: TCB_t *pxUnblockedTCB; -2537: BaseType_t xReturn; -2538: -2539: /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. It is used by -2540: the event flags implementation. */ -2541: configASSERT( uxSchedulerSuspended != pdFALSE ); -BFD042D4 805CFC5C LW V0, -32676(GP) -BFD042D8 000940A2 BNEZC V0, 0xBFD042EE -BFD042DC BFD141A2 LUI V0, 0xBFD1 -BFD042DE 3082BFD1 LDC1 F30, 12418(S1) -BFD042E0 98103082 ADDIU A0, V0, -26608 -BFD042E2 30A09810 SWC1 F0, 12448(S0) -BFD042E4 09ED30A0 ADDIU A1, ZERO, 2541 -BFD042E6 09ED LBU V1, 13(A2) -BFD042E8 4B7E77E8 JALS vAssertCalled -BFD042EA 4B7E LW K1, 120(SP) -BFD042EC 0C00 NOP -2542: -2543: /* Store the new item value in the event list. */ -2544: listSET_LIST_ITEM_VALUE( pxEventListItem, xItemValue | taskEVENT_LIST_ITEM_VALUE_IN_USE ); -BFD042EE 0024FC7E LW V1, 36(S8) -BFD042F2 800041A2 LUI V0, 0x8000 -BFD042F6 44DA OR16 V1, V0 -BFD042F8 0020FC5E LW V0, 32(S8) -BFD042FC E9A0 SW V1, 0(V0) -2545: -2546: /* Remove the event list form the event flag. Interrupts do not access -2547: event flags. */ -2548: pxUnblockedTCB = ( TCB_t * ) listGET_LIST_ITEM_OWNER( pxEventListItem ); -BFD042FE 0020FC5E LW V0, 32(S8) -BFD04302 6923 LW V0, 12(V0) -BFD04304 0014F85E SW V0, 20(S8) -2549: configASSERT( pxUnblockedTCB ); -BFD04308 0014FC5E LW V0, 20(S8) -BFD0430C 000940A2 BNEZC V0, 0xBFD04322 -BFD04310 BFD141A2 LUI V0, 0xBFD1 -BFD04312 3082BFD1 LDC1 F30, 12418(S1) -BFD04314 98103082 ADDIU A0, V0, -26608 -BFD04316 30A09810 SWC1 F0, 12448(S0) -BFD04318 09F530A0 ADDIU A1, ZERO, 2549 -BFD0431A 09F5 LBU V1, 5(A3) -BFD0431C 4B7E77E8 JALS vAssertCalled -BFD0431E 4B7E LW K1, 120(SP) -BFD04320 0C00 NOP -2550: ( void ) uxListRemove( pxEventListItem ); -BFD04322 0020FC9E LW A0, 32(S8) -BFD04326 00C877E8 JALS uxListRemove -BFD04328 0C0000C8 SLL A2, T0, 1 -BFD0432A 0C00 NOP -2551: -2552: /* Remove the task from the delayed list and add it to the ready list. The -2553: scheduler is suspended so interrupts will not be accessing the ready -2554: lists. */ -2555: ( void ) uxListRemove( &( pxUnblockedTCB->xGenericListItem ) ); -BFD0432C 0014FC5E LW V0, 20(S8) -BFD04330 6D22 ADDIU V0, V0, 4 -BFD04332 0C82 MOVE A0, V0 -BFD04334 00C877E8 JALS uxListRemove -BFD04336 0C0000C8 SLL A2, T0, 1 -BFD04338 0C00 NOP -2556: prvAddTaskToReadyList( pxUnblockedTCB ); -BFD0433A 0014FC5E LW V0, 20(S8) -BFD0433E 692B LW V0, 44(V0) -BFD04340 ED81 LI V1, 1 -BFD04342 18100062 SLLV V1, V0, V1 -BFD04344 FC5C1810 SB ZERO, -932(S0) -BFD04346 8040FC5C LW V0, -32704(GP) -BFD0434A 44D3 OR16 V0, V1 -BFD0434C 8040F85C SW V0, -32704(GP) -BFD04350 0014FC5E LW V0, 20(S8) -BFD04354 692B LW V0, 44(V0) -BFD04356 2524 SLL V0, V0, 2 -BFD04358 25A4 SLL V1, V0, 2 -BFD0435A 05B4 ADDU V1, V0, V1 -BFD0435C BFD241A2 LUI V0, 0xBFD2 -BFD0435E 3042BFD2 LDC1 F30, 12354(S2) -BFD04360 806C3042 ADDIU V0, V0, -32660 -BFD04364 05A6 ADDU V1, V1, V0 -BFD04366 0014FC5E LW V0, 20(S8) -BFD0436A 6D22 ADDIU V0, V0, 4 -BFD0436C 0C83 MOVE A0, V1 -BFD0436E 0CA2 MOVE A1, V0 -BFD04370 3E4A77E8 JALS vListInsertEnd -BFD04372 0C003E4A LH S2, 3072(T2) -BFD04374 0C00 NOP -2557: -2558: if( pxUnblockedTCB->uxPriority > pxCurrentTCB->uxPriority ) -BFD04376 0014FC5E LW V0, 20(S8) -BFD0437A 69AB LW V1, 44(V0) -BFD0437C 8030FC5C LW V0, -32720(GP) -BFD04380 692B LW V0, 44(V0) -BFD04382 13900062 SLTU V0, V0, V1 -BFD04384 40E21390 ADDI GP, S0, 16610 -BFD04386 000840E2 BEQZC V0, 0xBFD0439A -2559: { -2560: /* Return true if the task removed from the event list has -2561: a higher priority than the calling task. This allows -2562: the calling task to know if it should force a context -2563: switch now. */ -2564: xReturn = pdTRUE; -BFD0438A ED01 LI V0, 1 -BFD0438C 0010F85E SW V0, 16(S8) -2565: -2566: /* Mark that a yield is pending in case the user is not using the -2567: "xHigherPriorityTaskWoken" parameter to an ISR safe FreeRTOS function. */ -2568: xYieldPending = pdTRUE; -BFD04390 ED01 LI V0, 1 -BFD04392 804CF85C SW V0, -32692(GP) -BFD04396 CC03 B 0xBFD0439E -BFD04398 0C00 NOP -2569: } -2570: else -2571: { -2572: xReturn = pdFALSE; -BFD0439A 0010F81E SW ZERO, 16(S8) -2573: } -2574: -2575: return xReturn; -BFD0439E 0010FC5E LW V0, 16(S8) -2576: } -BFD043A2 0FBE MOVE SP, S8 -BFD043A4 4BE7 LW RA, 28(SP) -BFD043A6 4BC6 LW S8, 24(SP) -BFD043A8 4C11 ADDIU SP, SP, 32 -BFD043AA 459F JR16 RA -BFD043AC 0C00 NOP -2577: /*-----------------------------------------------------------*/ -2578: -2579: void vTaskSetTimeOutState( TimeOut_t * const pxTimeOut ) -2580: { -BFD08F4C 4FF5 ADDIU SP, SP, -24 -BFD08F4E CBE5 SW RA, 20(SP) -BFD08F50 CBC4 SW S8, 16(SP) -BFD08F52 0FDD MOVE S8, SP -BFD08F54 0018F89E SW A0, 24(S8) -2581: configASSERT( pxTimeOut ); -BFD08F58 0018FC5E LW V0, 24(S8) -BFD08F5C 000940A2 BNEZC V0, 0xBFD08F72 -BFD08F60 BFD141A2 LUI V0, 0xBFD1 -BFD08F62 3082BFD1 LDC1 F30, 12418(S1) -BFD08F64 98103082 ADDIU A0, V0, -26608 -BFD08F66 30A09810 SWC1 F0, 12448(S0) -BFD08F68 0A1530A0 ADDIU A1, ZERO, 2581 -BFD08F6A 0A15 LBU A0, 5(S1) -BFD08F6C 4B7E77E8 JALS vAssertCalled -BFD08F6E 4B7E LW K1, 120(SP) -BFD08F70 0C00 NOP -2582: pxTimeOut->xOverflowCount = xNumOfOverflows; -BFD08F72 8050FC7C LW V1, -32688(GP) -BFD08F76 0018FC5E LW V0, 24(S8) -BFD08F7A E9A0 SW V1, 0(V0) -2583: pxTimeOut->xTimeOnEntering = xTickCount; -BFD08F7C 803CFC7C LW V1, -32708(GP) -BFD08F80 0018FC5E LW V0, 24(S8) -BFD08F84 E9A1 SW V1, 4(V0) -2584: } -BFD08F86 0FBE MOVE SP, S8 -BFD08F88 4BE5 LW RA, 20(SP) -BFD08F8A 4BC4 LW S8, 16(SP) -BFD08F8C 4C0D ADDIU SP, SP, 24 -BFD08F8E 459F JR16 RA -BFD08F90 0C00 NOP -2585: /*-----------------------------------------------------------*/ -2586: -2587: BaseType_t xTaskCheckForTimeOut( TimeOut_t * const pxTimeOut, TickType_t * const pxTicksToWait ) -2588: { -BFD03FEC 4FF1 ADDIU SP, SP, -32 -BFD03FEE CBE7 SW RA, 28(SP) -BFD03FF0 CBC6 SW S8, 24(SP) -BFD03FF2 0FDD MOVE S8, SP -BFD03FF4 0020F89E SW A0, 32(S8) -BFD03FF8 0024F8BE SW A1, 36(S8) -2589: BaseType_t xReturn; -2590: -2591: configASSERT( pxTimeOut ); -BFD03FFC 0020FC5E LW V0, 32(S8) -BFD04000 000940A2 BNEZC V0, 0xBFD04016 -BFD04004 BFD141A2 LUI V0, 0xBFD1 -BFD04006 3082BFD1 LDC1 F30, 12418(S1) -BFD04008 98103082 ADDIU A0, V0, -26608 -BFD0400A 30A09810 SWC1 F0, 12448(S0) -BFD0400C 0A1F30A0 ADDIU A1, ZERO, 2591 -BFD0400E 0A1F LBU A0, -1(S1) -BFD04010 4B7E77E8 JALS vAssertCalled -BFD04012 4B7E LW K1, 120(SP) -BFD04014 0C00 NOP -2592: configASSERT( pxTicksToWait ); -BFD04016 0024FC5E LW V0, 36(S8) -BFD0401A 000940A2 BNEZC V0, 0xBFD04030 -BFD0401E BFD141A2 LUI V0, 0xBFD1 -BFD04020 3082BFD1 LDC1 F30, 12418(S1) -BFD04022 98103082 ADDIU A0, V0, -26608 -BFD04024 30A09810 SWC1 F0, 12448(S0) -BFD04026 0A2030A0 ADDIU A1, ZERO, 2592 -BFD04028 0A20 LBU A0, 0(V0) -BFD0402A 4B7E77E8 JALS vAssertCalled -BFD0402C 4B7E LW K1, 120(SP) -BFD0402E 0C00 NOP -2593: -2594: taskENTER_CRITICAL(); -BFD04030 33B877E8 JALS vTaskEnterCritical -BFD04032 0C0033B8 ADDIU SP, T8, 3072 -BFD04034 0C00 NOP -2595: { -2596: /* Minor optimisation. The tick count cannot change in this block. */ -2597: const TickType_t xConstTickCount = xTickCount; -BFD04036 803CFC5C LW V0, -32708(GP) -BFD0403A 0014F85E SW V0, 20(S8) -2598: -2599: #if ( INCLUDE_vTaskSuspend == 1 ) -2600: /* If INCLUDE_vTaskSuspend is set to 1 and the block time specified is -2601: the maximum block time then the task should block indefinitely, and -2602: therefore never time out. */ -2603: if( *pxTicksToWait == portMAX_DELAY ) -BFD0403E 0024FC5E LW V0, 36(S8) -BFD04042 69A0 LW V1, 0(V0) -BFD04044 ED7F LI V0, -1 -BFD04046 0005B443 BNE V1, V0, 0xBFD04054 -BFD04048 0C000005 SLL ZERO, A1, 1 -BFD0404A 0C00 NOP -2604: { -2605: xReturn = pdFALSE; -BFD0404C 0010F81E SW ZERO, 16(S8) -BFD0404E CC3D0010 REPL.PH T9, 0x10 -BFD04050 CC3D B 0xBFD040CC -BFD04052 0C00 NOP -2606: } -2607: else /* We are not blocking indefinitely, perform the checks below. */ -2608: #endif -2609: -2610: if( ( xNumOfOverflows != pxTimeOut->xOverflowCount ) && ( xConstTickCount >= pxTimeOut->xTimeOnEntering ) ) /*lint !e525 Indentation preferred as is to make code within pre-processor directives clearer. */ -BFD04054 0020FC5E LW V0, 32(S8) -BFD04058 69A0 LW V1, 0(V0) -BFD0405A 8050FC5C LW V0, -32688(GP) -BFD0405E 000F9443 BEQ V1, V0, 0xBFD04080 -BFD04060 0C00000F SLL ZERO, T7, 1 -BFD04062 0C00 NOP -BFD04064 0020FC5E LW V0, 32(S8) -BFD04068 69A1 LW V1, 4(V0) -BFD0406A 0014FC5E LW V0, 20(S8) -BFD0406E 13900062 SLTU V0, V0, V1 -BFD04070 40A21390 ADDI GP, S0, 16546 -BFD04072 000540A2 BNEZC V0, 0xBFD04080 -2611: { -2612: /* The tick count is greater than the time at which vTaskSetTimeout() -2613: was called, but has also overflowed since vTaskSetTimeOut() was called. -2614: It must have wrapped all the way around and gone past us again. This -2615: passed since vTaskSetTimeout() was called. */ -2616: xReturn = pdTRUE; -BFD04076 ED01 LI V0, 1 -BFD04078 0010F85E SW V0, 16(S8) -BFD0407C CC27 B 0xBFD040CC -BFD0407E 0C00 NOP -2617: } -2618: else if( ( xConstTickCount - pxTimeOut->xTimeOnEntering ) < *pxTicksToWait ) -BFD04080 0020FC5E LW V0, 32(S8) -BFD04084 6921 LW V0, 4(V0) -BFD04086 0014FC7E LW V1, 20(S8) -BFD0408A 05A7 SUBU V1, V1, V0 -BFD0408C 0024FC5E LW V0, 36(S8) -BFD04090 6920 LW V0, 0(V0) -BFD04092 13900043 SLTU V0, V1, V0 -BFD04094 40E21390 ADDI GP, S0, 16610 -BFD04096 001640E2 BEQZC V0, 0xBFD040C6 -2619: { -2620: /* Not a genuine timeout. Adjust parameters for time remaining. */ -2621: *pxTicksToWait -= ( xConstTickCount - pxTimeOut->xTimeOnEntering ); -BFD0409A 0024FC5E LW V0, 36(S8) -BFD0409E 69A0 LW V1, 0(V0) -BFD040A0 0020FC5E LW V0, 32(S8) -BFD040A4 6A21 LW A0, 4(V0) -BFD040A6 0014FC5E LW V0, 20(S8) -BFD040AA 0529 SUBU V0, A0, V0 -BFD040AC 05A6 ADDU V1, V1, V0 -BFD040AE 0024FC5E LW V0, 36(S8) -BFD040B2 E9A0 SW V1, 0(V0) -2622: vTaskSetTimeOutState( pxTimeOut ); -BFD040B4 0020FC9E LW A0, 32(S8) -BFD040B8 47A677E8 JALS vTaskSetTimeOutState -BFD040BC 0C00 NOP -2623: xReturn = pdFALSE; -BFD040BE 0010F81E SW ZERO, 16(S8) -BFD040C2 CC04 B 0xBFD040CC -BFD040C4 0C00 NOP -2624: } -2625: else -2626: { -2627: xReturn = pdTRUE; -BFD040C6 ED01 LI V0, 1 -BFD040C8 0010F85E SW V0, 16(S8) -2628: } -2629: } -2630: taskEXIT_CRITICAL(); -BFD040CC 40AA77E8 JALS vTaskExitCritical -BFD040CE 0C0040AA BNEZC T2, 0xBFD058D2 -BFD040D0 0C00 NOP -2631: -2632: return xReturn; -BFD040D2 0010FC5E LW V0, 16(S8) -2633: } -BFD040D6 0FBE MOVE SP, S8 -BFD040D8 4BE7 LW RA, 28(SP) -BFD040DA 4BC6 LW S8, 24(SP) -BFD040DC 4C11 ADDIU SP, SP, 32 -BFD040DE 459F JR16 RA -BFD040E0 0C00 NOP -2634: /*-----------------------------------------------------------*/ -2635: -2636: void vTaskMissedYield( void ) -2637: { -BFD09E54 4FB0 ADDIU SP, SP, -8 -BFD09E56 CBC1 SW S8, 4(SP) -BFD09E58 0FDD MOVE S8, SP -2638: xYieldPending = pdTRUE; -BFD09E5A ED01 LI V0, 1 -BFD09E5C 804CF85C SW V0, -32692(GP) -2639: } -BFD09E60 0FBE MOVE SP, S8 -BFD09E62 4BC1 LW S8, 4(SP) -BFD09E64 4C05 ADDIU SP, SP, 8 -BFD09E66 459F JR16 RA -BFD09E68 0C00 NOP -2640: /*-----------------------------------------------------------*/ -2641: -2642: #if ( configUSE_TRACE_FACILITY == 1 ) -2643: -2644: UBaseType_t uxTaskGetTaskNumber( TaskHandle_t xTask ) -2645: { -2646: UBaseType_t uxReturn; -2647: TCB_t *pxTCB; -2648: -2649: if( xTask != NULL ) -2650: { -2651: pxTCB = ( TCB_t * ) xTask; -2652: uxReturn = pxTCB->uxTaskNumber; -2653: } -2654: else -2655: { -2656: uxReturn = 0U; -2657: } -2658: -2659: return uxReturn; -2660: } -2661: -2662: #endif /* configUSE_TRACE_FACILITY */ -2663: /*-----------------------------------------------------------*/ -2664: -2665: #if ( configUSE_TRACE_FACILITY == 1 ) -2666: -2667: void vTaskSetTaskNumber( TaskHandle_t xTask, const UBaseType_t uxHandle ) -2668: { -2669: TCB_t *pxTCB; -2670: -2671: if( xTask != NULL ) -2672: { -2673: pxTCB = ( TCB_t * ) xTask; -2674: pxTCB->uxTaskNumber = uxHandle; -2675: } -2676: } -2677: -2678: #endif /* configUSE_TRACE_FACILITY */ -2679: -2680: /* -2681: * ----------------------------------------------------------- -2682: * The Idle task. -2683: * ---------------------------------------------------------- -2684: * -2685: * The portTASK_FUNCTION() macro is used to allow port/compiler specific -2686: * language extensions. The equivalent prototype for this function is: -2687: * -2688: * void prvIdleTask( void *pvParameters ); -2689: * -2690: */ -2691: static portTASK_FUNCTION( prvIdleTask, pvParameters ) -2692: { -BFD08BC4 4FF1 ADDIU SP, SP, -32 -BFD08BC6 CBE7 SW RA, 28(SP) -BFD08BC8 CBC6 SW S8, 24(SP) -BFD08BCA 0FDD MOVE S8, SP -BFD08BCC 0020F89E SW A0, 32(S8) -BFD08BD0 CC02 B 0xBFD08BD6 -BFD08BD2 0C00 NOP -2693: /* Stop warnings. */ -2694: ( void ) pvParameters; -2695: -2696: for( ;; ) -2697: { -2698: /* See if any tasks have been deleted. */ -2699: prvCheckTasksWaitingTermination(); -BFD08BD6 35AE77E8 JALS prvCheckTasksWaitingTermination -BFD08BD8 0C0035AE LHU T5, 3072(T6) -BFD08BDA 0C00 NOP -2700: -2701: #if ( configUSE_PREEMPTION == 0 ) -2702: { -2703: /* If we are not using preemption we keep forcing a task switch to -2704: see if any other task has become available. If we are using -2705: preemption we don't need to do this as any task becoming available -2706: will automatically get the processor anyway. */ -2707: taskYIELD(); -2708: } -2709: #endif /* configUSE_PREEMPTION */ -2710: -2711: #if ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) ) -2712: { -2713: /* When using preemption tasks of equal priority will be -2714: timesliced. If a task that is sharing the idle priority is ready -2715: to run then the idle task should yield before the end of the -2716: timeslice. -2717: -2718: A critical region is not required here as we are just reading from -2719: the list, and an occasional incorrect value will not matter. If -2720: the ready list at the idle priority contains more than one task -2721: then a task other than the idle task is ready to execute. */ -2722: if( listCURRENT_LIST_LENGTH( &( pxReadyTasksLists[ tskIDLE_PRIORITY ] ) ) > ( UBaseType_t ) 1 ) -BFD08BDC BFD241A2 LUI V0, 0xBFD2 -BFD08BDE FC42BFD2 LDC1 F30, -958(S2) -BFD08BE0 806CFC42 LW V0, -32660(V0) -BFD08BE4 0002B042 SLTIU V0, V0, 2 -BFD08BE8 FFF440A2 BNEZC V0, 0xBFD08BD4 -BFD08BEA 77E8FFF4 LW RA, 30696(S4) -2723: { -2724: taskYIELD(); -BFD08BEC 4E5677E8 JALS ulPortGetCP0Cause -BFD08BEE 4E56 ADDIU S2, S2, -5 -BFD08BF0 0C00 NOP -BFD08BF2 0010F85E SW V0, 16(S8) -BFD08BF6 0010FC5E LW V0, 16(S8) -BFD08BFA 01005042 ORI V0, V0, 256 -BFD08BFE 0010F85E SW V0, 16(S8) -BFD08C02 0010FC9E LW A0, 16(S8) -BFD08C06 4E6677E8 JALS vPortSetCP0Cause -BFD08C08 4E66 ADDIU S3, S3, 3 -BFD08C0A 0C00 NOP -2725: } -2726: else -2727: { -2728: mtCOVERAGE_TEST_MARKER(); -2729: } -2730: } -2731: #endif /* ( ( configUSE_PREEMPTION == 1 ) && ( configIDLE_SHOULD_YIELD == 1 ) ) */ -2732: -2733: #if ( configUSE_IDLE_HOOK == 1 ) -2734: { -2735: extern void vApplicationIdleHook( void ); -2736: -2737: /* Call the user defined function from within the idle task. This -2738: allows the application designer to add background functionality -2739: without the overhead of a separate task. -2740: NOTE: vApplicationIdleHook() MUST NOT, UNDER ANY CIRCUMSTANCES, -2741: CALL A FUNCTION THAT MIGHT BLOCK. */ -2742: vApplicationIdleHook(); -2743: } -2744: #endif /* configUSE_IDLE_HOOK */ -2745: -2746: /* This conditional compilation should use inequality to 0, not equality -2747: to 1. This is to ensure portSUPPRESS_TICKS_AND_SLEEP() is called when -2748: user defined low power mode implementations require -2749: configUSE_TICKLESS_IDLE to be set to a value other than 1. */ -2750: #if ( configUSE_TICKLESS_IDLE != 0 ) -2751: { -2752: TickType_t xExpectedIdleTime; -2753: -2754: /* It is not desirable to suspend then resume the scheduler on -2755: each iteration of the idle task. Therefore, a preliminary -2756: test of the expected idle time is performed without the -2757: scheduler suspended. The result here is not necessarily -2758: valid. */ -2759: xExpectedIdleTime = prvGetExpectedIdleTime(); -2760: -2761: if( xExpectedIdleTime >= configEXPECTED_IDLE_TIME_BEFORE_SLEEP ) -2762: { -2763: vTaskSuspendAll(); -2764: { -2765: /* Now the scheduler is suspended, the expected idle -2766: time can be sampled again, and this time its value can -2767: be used. */ -2768: configASSERT( xNextTaskUnblockTime >= xTickCount ); -2769: xExpectedIdleTime = prvGetExpectedIdleTime(); -2770: -2771: if( xExpectedIdleTime >= configEXPECTED_IDLE_TIME_BEFORE_SLEEP ) -2772: { -2773: traceLOW_POWER_IDLE_BEGIN(); -2774: portSUPPRESS_TICKS_AND_SLEEP( xExpectedIdleTime ); -2775: traceLOW_POWER_IDLE_END(); -2776: } -2777: else -2778: { -2779: mtCOVERAGE_TEST_MARKER(); -2780: } -2781: } -2782: ( void ) xTaskResumeAll(); -2783: } -2784: else -2785: { -2786: mtCOVERAGE_TEST_MARKER(); -2787: } -2788: } -2789: #endif /* configUSE_TICKLESS_IDLE */ -2790: } -BFD08BD4 0C00 NOP -BFD08C0C CFE4 B 0xBFD08BD6 -BFD08C0E 0C00 NOP -2791: } -2792: /*-----------------------------------------------------------*/ -2793: -2794: #if( configUSE_TICKLESS_IDLE != 0 ) -2795: -2796: eSleepModeStatus eTaskConfirmSleepModeStatus( void ) -2797: { -2798: /* The idle task exists in addition to the application tasks. */ -2799: const UBaseType_t uxNonApplicationTasks = 1; -2800: eSleepModeStatus eReturn = eStandardSleep; -2801: -2802: if( listCURRENT_LIST_LENGTH( &xPendingReadyList ) != 0 ) -2803: { -2804: /* A task was made ready while the scheduler was suspended. */ -2805: eReturn = eAbortSleep; -2806: } -2807: else if( xYieldPending != pdFALSE ) -2808: { -2809: /* A yield was pended while the scheduler was suspended. */ -2810: eReturn = eAbortSleep; -2811: } -2812: else -2813: { -2814: /* If all the tasks are in the suspended list (which might mean they -2815: have an infinite block time rather than actually being suspended) -2816: then it is safe to turn all clocks off and just wait for external -2817: interrupts. */ -2818: if( listCURRENT_LIST_LENGTH( &xSuspendedTaskList ) == ( uxCurrentNumberOfTasks - uxNonApplicationTasks ) ) -2819: { -2820: eReturn = eNoTasksWaitingTimeout; -2821: } -2822: else -2823: { -2824: mtCOVERAGE_TEST_MARKER(); -2825: } -2826: } -2827: -2828: return eReturn; -2829: } -2830: -2831: #endif /* configUSE_TICKLESS_IDLE */ -2832: /*-----------------------------------------------------------*/ -2833: -2834: static void prvInitialiseTCBVariables( TCB_t * const pxTCB, const char * const pcName, UBaseType_t uxPriority, const MemoryRegion_t * const xRegions, const uint16_t usStackDepth ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -2835: { -BFD03CE8 4FED ADDIU SP, SP, -40 -BFD03CEA CBE9 SW RA, 36(SP) -BFD03CEC CBC8 SW S8, 32(SP) -BFD03CEE 0FDD MOVE S8, SP -BFD03CF0 0028F89E SW A0, 40(S8) -BFD03CF4 002CF8BE SW A1, 44(S8) -BFD03CF8 0030F8DE SW A2, 48(S8) -BFD03CFC 0034F8FE SW A3, 52(S8) -BFD03D00 0038FC5E LW V0, 56(S8) -BFD03D04 0018385E SH V0, 24(S8) -2836: UBaseType_t x; -2837: -2838: /* Store the task name in the TCB. */ -2839: for( x = ( UBaseType_t ) 0; x < ( UBaseType_t ) configMAX_TASK_NAME_LEN; x++ ) -BFD03D08 0010F81E SW ZERO, 16(S8) -BFD03D0A CC1D0010 SHILO null, 16 -BFD03D0C CC1D B 0xBFD03D48 -BFD03D0E 0C00 NOP -BFD03D3E 0010FC5E LW V0, 16(S8) -BFD03D42 6D20 ADDIU V0, V0, 1 -BFD03D44 0010F85E SW V0, 16(S8) -BFD03D48 0010FC5E LW V0, 16(S8) -BFD03D4C 0008B042 SLTIU V0, V0, 8 -BFD03D50 FFDE40A2 BNEZC V0, 0xBFD03D10 -BFD03D52 CC02FFDE LW S8, -13310(S8) -BFD03D54 CC02 B 0xBFD03D5A -BFD03D56 0C00 NOP -2840: { -2841: pxTCB->pcTaskName[ x ] = pcName[ x ]; -BFD03D10 002CFC7E LW V1, 44(S8) -BFD03D14 0010FC5E LW V0, 16(S8) -BFD03D18 0526 ADDU V0, V1, V0 -BFD03D1A 00001C62 LB V1, 0(V0) -BFD03D1E 0028FC9E LW A0, 40(S8) -BFD03D22 0010FC5E LW V0, 16(S8) -BFD03D26 0528 ADDU V0, A0, V0 -BFD03D28 00341862 SB V1, 52(V0) -2842: -2843: /* Don't copy all configMAX_TASK_NAME_LEN if the string is shorter than -2844: configMAX_TASK_NAME_LEN characters just in case the memory after the -2845: string is not accessible (extremely unlikely). */ -2846: if( pcName[ x ] == 0x00 ) -BFD03D2C 002CFC7E LW V1, 44(S8) -BFD03D30 0010FC5E LW V0, 16(S8) -BFD03D34 0526 ADDU V0, V1, V0 -BFD03D36 00001C42 LB V0, 0(V0) -BFD03D3A 000D40E2 BEQZC V0, 0xBFD03D58 -2847: { -2848: break; -BFD03D58 0C00 NOP -2849: } -2850: else -2851: { -2852: mtCOVERAGE_TEST_MARKER(); -2853: } -2854: } -2855: -2856: /* Ensure the name string is terminated in the case that the string length -2857: was greater or equal to configMAX_TASK_NAME_LEN. */ -2858: pxTCB->pcTaskName[ configMAX_TASK_NAME_LEN - 1 ] = '\0'; -BFD03D5A 0028FC5E LW V0, 40(S8) -BFD03D5E 003B1802 SB ZERO, 59(V0) -2859: -2860: /* This is used as an array index so must ensure it's not too large. First -2861: remove the privilege bit if one is present. */ -2862: if( uxPriority >= ( UBaseType_t ) configMAX_PRIORITIES ) -BFD03D62 0030FC5E LW V0, 48(S8) -BFD03D66 0005B042 SLTIU V0, V0, 5 -BFD03D6A 000340A2 BNEZC V0, 0xBFD03D74 -2863: { -2864: uxPriority = ( UBaseType_t ) configMAX_PRIORITIES - ( UBaseType_t ) 1U; -BFD03D6E ED04 LI V0, 4 -BFD03D70 0030F85E SW V0, 48(S8) -2865: } -2866: else -2867: { -2868: mtCOVERAGE_TEST_MARKER(); -2869: } -2870: -2871: pxTCB->uxPriority = uxPriority; -BFD03D74 0028FC5E LW V0, 40(S8) -BFD03D78 0030FC7E LW V1, 48(S8) -BFD03D7C E9AB SW V1, 44(V0) -2872: #if ( configUSE_MUTEXES == 1 ) -2873: { -2874: pxTCB->uxBasePriority = uxPriority; -BFD03D7E 0028FC5E LW V0, 40(S8) -BFD03D82 0030FC7E LW V1, 48(S8) -BFD03D86 0040F862 SW V1, 64(V0) -2875: pxTCB->uxMutexesHeld = 0; -BFD03D8A 0028FC5E LW V0, 40(S8) -BFD03D8E 0044F802 SW ZERO, 68(V0) -2876: } -2877: #endif /* configUSE_MUTEXES */ -2878: -2879: vListInitialiseItem( &( pxTCB->xGenericListItem ) ); -BFD03D92 0028FC5E LW V0, 40(S8) -BFD03D96 6D22 ADDIU V0, V0, 4 -BFD03D98 0C82 MOVE A0, V0 -BFD03D9A 4EE677E8 JALS vListInitialiseItem -BFD03D9C 4EE6 ADDIU S7, S7, 3 -BFD03D9E 0C00 NOP -2880: vListInitialiseItem( &( pxTCB->xEventListItem ) ); -BFD03DA0 0028FC5E LW V0, 40(S8) -BFD03DA2 6D2C0028 EXT AT, T0, 20, 14 -BFD03DA4 6D2C ADDIU V0, V0, 24 -BFD03DA6 0C82 MOVE A0, V0 -BFD03DA8 4EE677E8 JALS vListInitialiseItem -BFD03DAA 4EE6 ADDIU S7, S7, 3 -BFD03DAC 0C00 NOP -2881: -2882: /* Set the pxTCB as a link back from the ListItem_t. This is so we can get -2883: back to the containing TCB from a generic item in a list. */ -2884: listSET_LIST_ITEM_OWNER( &( pxTCB->xGenericListItem ), pxTCB ); -BFD03DAE 0028FC5E LW V0, 40(S8) -BFD03DB2 0028FC7E LW V1, 40(S8) -BFD03DB6 E9A4 SW V1, 16(V0) -2885: -2886: /* Event lists are always in priority order. */ -2887: listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD03DB8 ED85 LI V1, 5 -BFD03DBA 0030FC5E LW V0, 48(S8) -BFD03DBE 05A7 SUBU V1, V1, V0 -BFD03DC0 0028FC5E LW V0, 40(S8) -BFD03DC4 E9A6 SW V1, 24(V0) -2888: listSET_LIST_ITEM_OWNER( &( pxTCB->xEventListItem ), pxTCB ); -BFD03DC6 0028FC5E LW V0, 40(S8) -BFD03DCA 0028FC7E LW V1, 40(S8) -BFD03DCE E9A9 SW V1, 36(V0) -2889: -2890: #if ( portCRITICAL_NESTING_IN_TCB == 1 ) -2891: { -2892: pxTCB->uxCriticalNesting = ( UBaseType_t ) 0U; -BFD03DD0 0028FC5E LW V0, 40(S8) -BFD03DD4 E82F SW S0, 60(V0) -2893: } -2894: #endif /* portCRITICAL_NESTING_IN_TCB */ -2895: -2896: #if ( configUSE_APPLICATION_TASK_TAG == 1 ) -2897: { -2898: pxTCB->pxTaskTag = NULL; -2899: } -2900: #endif /* configUSE_APPLICATION_TASK_TAG */ -2901: -2902: #if ( configGENERATE_RUN_TIME_STATS == 1 ) -2903: { -2904: pxTCB->ulRunTimeCounter = 0UL; -2905: } -2906: #endif /* configGENERATE_RUN_TIME_STATS */ -2907: -2908: #if ( portUSING_MPU_WRAPPERS == 1 ) -2909: { -2910: vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, pxTCB->pxStack, usStackDepth ); -2911: } -2912: #else /* portUSING_MPU_WRAPPERS */ -2913: { -2914: ( void ) xRegions; -2915: ( void ) usStackDepth; -2916: } -2917: #endif /* portUSING_MPU_WRAPPERS */ -2918: -2919: #if( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) -2920: { -2921: for( x = 0; x < ( UBaseType_t ) configNUM_THREAD_LOCAL_STORAGE_POINTERS; x++ ) -2922: { -2923: pxTCB->pvThreadLocalStoragePointers[ x ] = NULL; -2924: } -2925: } -2926: #endif -2927: -2928: #if ( configUSE_TASK_NOTIFICATIONS == 1 ) -2929: { -2930: pxTCB->ulNotifiedValue = 0; -BFD03DD6 0028FC5E LW V0, 40(S8) -BFD03DDA 0048F802 SW ZERO, 72(V0) -2931: pxTCB->eNotifyState = eNotWaitingNotification; -BFD03DDE 0028FC5E LW V0, 40(S8) -BFD03DE2 004CF802 SW ZERO, 76(V0) -2932: } -2933: #endif -2934: -2935: #if ( configUSE_NEWLIB_REENTRANT == 1 ) -2936: { -2937: /* Initialise this task's Newlib reent structure. */ -2938: _REENT_INIT_PTR( ( &( pxTCB->xNewLib_reent ) ) ); -2939: } -2940: #endif /* configUSE_NEWLIB_REENTRANT */ -2941: } -BFD03DE6 0FBE MOVE SP, S8 -BFD03DE8 4BE9 LW RA, 36(SP) -BFD03DEA 4BC8 LW S8, 32(SP) -BFD03DEC 4C15 ADDIU SP, SP, 40 -BFD03DEE 459F JR16 RA -BFD03DF0 0C00 NOP -2942: /*-----------------------------------------------------------*/ -2943: -2944: #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) -2945: -2946: void vTaskSetThreadLocalStoragePointer( TaskHandle_t xTaskToSet, BaseType_t xIndex, void *pvValue ) -2947: { -2948: TCB_t *pxTCB; -2949: -2950: if( xIndex < configNUM_THREAD_LOCAL_STORAGE_POINTERS ) -2951: { -2952: pxTCB = prvGetTCBFromHandle( xTaskToSet ); -2953: pxTCB->pvThreadLocalStoragePointers[ xIndex ] = pvValue; -2954: } -2955: } -2956: -2957: #endif /* configNUM_THREAD_LOCAL_STORAGE_POINTERS */ -2958: /*-----------------------------------------------------------*/ -2959: -2960: #if ( configNUM_THREAD_LOCAL_STORAGE_POINTERS != 0 ) -2961: -2962: void *pvTaskGetThreadLocalStoragePointer( TaskHandle_t xTaskToQuery, BaseType_t xIndex ) -2963: { -2964: void *pvReturn = NULL; -2965: TCB_t *pxTCB; -2966: -2967: if( xIndex < configNUM_THREAD_LOCAL_STORAGE_POINTERS ) -2968: { -2969: pxTCB = prvGetTCBFromHandle( xTaskToQuery ); -2970: pvReturn = pxTCB->pvThreadLocalStoragePointers[ xIndex ]; -2971: } -2972: else -2973: { -2974: pvReturn = NULL; -2975: } -2976: -2977: return pvReturn; -2978: } -2979: -2980: #endif /* configNUM_THREAD_LOCAL_STORAGE_POINTERS */ -2981: /*-----------------------------------------------------------*/ -2982: -2983: #if ( portUSING_MPU_WRAPPERS == 1 ) -2984: -2985: void vTaskAllocateMPURegions( TaskHandle_t xTaskToModify, const MemoryRegion_t * const xRegions ) -2986: { -2987: TCB_t *pxTCB; -2988: -2989: /* If null is passed in here then we are modifying the MPU settings of -2990: the calling task. */ -2991: pxTCB = prvGetTCBFromHandle( xTaskToModify ); -2992: -2993: vPortStoreTaskMPUSettings( &( pxTCB->xMPUSettings ), xRegions, NULL, 0 ); -2994: } -2995: -2996: #endif /* portUSING_MPU_WRAPPERS */ -2997: /*-----------------------------------------------------------*/ -2998: -2999: static void prvInitialiseTaskLists( void ) -3000: { -BFD0612C 4FF1 ADDIU SP, SP, -32 -BFD0612E CBE7 SW RA, 28(SP) -BFD06130 CBC6 SW S8, 24(SP) -BFD06132 0FDD MOVE S8, SP -3001: UBaseType_t uxPriority; -3002: -3003: for( uxPriority = ( UBaseType_t ) 0U; uxPriority < ( UBaseType_t ) configMAX_PRIORITIES; uxPriority++ ) -BFD06134 0010F81E SW ZERO, 16(S8) -BFD06138 CC14 B 0xBFD06162 -BFD0613A 0C00 NOP -BFD06158 0010FC5E LW V0, 16(S8) -BFD0615C 6D20 ADDIU V0, V0, 1 -BFD0615E 0010F85E SW V0, 16(S8) -BFD06162 0010FC5E LW V0, 16(S8) -BFD06166 0005B042 SLTIU V0, V0, 5 -BFD0616A FFE740A2 BNEZC V0, 0xBFD0613C -BFD0616C 41A2FFE7 LW RA, 16802(A3) -3004: { -3005: vListInitialise( &( pxReadyTasksLists[ uxPriority ] ) ); -BFD0613C 0010FC5E LW V0, 16(S8) -BFD06140 2524 SLL V0, V0, 2 -BFD06142 25A4 SLL V1, V0, 2 -BFD06144 05B4 ADDU V1, V0, V1 -BFD06146 BFD241A2 LUI V0, 0xBFD2 -BFD06148 3042BFD2 LDC1 F30, 12354(S2) -BFD0614A 806C3042 ADDIU V0, V0, -32660 -BFD0614E 0526 ADDU V0, V1, V0 -BFD06150 0C82 MOVE A0, V0 -BFD06152 457077E8 JALS vListInitialise -BFD06154 4570 SWM16 0x3, 0(SP) -BFD06156 0C00 NOP -3006: } -3007: -3008: vListInitialise( &xDelayedTaskList1 ); -BFD0616E BFD241A2 LUI V0, 0xBFD2 -BFD06170 3082BFD2 LDC1 F30, 12418(S2) -BFD06172 80F83082 ADDIU A0, V0, -32520 -BFD06176 457077E8 JALS vListInitialise -BFD06178 4570 SWM16 0x3, 0(SP) -BFD0617A 0C00 NOP -3009: vListInitialise( &xDelayedTaskList2 ); -BFD0617C BFD241A2 LUI V0, 0xBFD2 -BFD0617E 3082BFD2 LDC1 F30, 12418(S2) -BFD06180 81203082 ADDIU A0, V0, -32480 -BFD06184 457077E8 JALS vListInitialise -BFD06186 4570 SWM16 0x3, 0(SP) -BFD06188 0C00 NOP -3010: vListInitialise( &xPendingReadyList ); -BFD0618A BFD241A2 LUI V0, 0xBFD2 -BFD0618C 3082BFD2 LDC1 F30, 12418(S2) -BFD0618E 80D03082 ADDIU A0, V0, -32560 -BFD06192 457077E8 JALS vListInitialise -BFD06194 4570 SWM16 0x3, 0(SP) -BFD06196 0C00 NOP -3011: -3012: #if ( INCLUDE_vTaskDelete == 1 ) -3013: { -3014: vListInitialise( &xTasksWaitingTermination ); -BFD06198 BFD241A2 LUI V0, 0xBFD2 -BFD0619A 3082BFD2 LDC1 F30, 12418(S2) -BFD0619C 810C3082 ADDIU A0, V0, -32500 -BFD061A0 457077E8 JALS vListInitialise -BFD061A2 4570 SWM16 0x3, 0(SP) -BFD061A4 0C00 NOP -3015: } -3016: #endif /* INCLUDE_vTaskDelete */ -3017: -3018: #if ( INCLUDE_vTaskSuspend == 1 ) -3019: { -3020: vListInitialise( &xSuspendedTaskList ); -BFD061A6 BFD241A2 LUI V0, 0xBFD2 -BFD061A8 3082BFD2 LDC1 F30, 12418(S2) -BFD061AA 80E43082 ADDIU A0, V0, -32540 -BFD061AE 457077E8 JALS vListInitialise -BFD061B0 4570 SWM16 0x3, 0(SP) -BFD061B2 0C00 NOP -3021: } -3022: #endif /* INCLUDE_vTaskSuspend */ -3023: -3024: /* Start with pxDelayedTaskList using list1 and the pxOverflowDelayedTaskList -3025: using list2. */ -3026: pxDelayedTaskList = &xDelayedTaskList1; -BFD061B4 BFD241A2 LUI V0, 0xBFD2 -BFD061B6 3042BFD2 LDC1 F30, 12354(S2) -BFD061B8 80F83042 ADDIU V0, V0, -32520 -BFD061BC 8074F85C SW V0, -32652(GP) -3027: pxOverflowDelayedTaskList = &xDelayedTaskList2; -BFD061C0 BFD241A2 LUI V0, 0xBFD2 -BFD061C2 3042BFD2 LDC1 F30, 12354(S2) -BFD061C4 81203042 ADDIU V0, V0, -32480 -BFD061C8 8078F85C SW V0, -32648(GP) -3028: } -BFD061CC 0FBE MOVE SP, S8 -BFD061CE 4BE7 LW RA, 28(SP) -BFD061D0 4BC6 LW S8, 24(SP) -BFD061D2 4C11 ADDIU SP, SP, 32 -BFD061D4 459F JR16 RA -BFD061D6 0C00 NOP -3029: /*-----------------------------------------------------------*/ -3030: -3031: static void prvCheckTasksWaitingTermination( void ) -3032: { -BFD06B5C 4FF1 ADDIU SP, SP, -32 -BFD06B5E CBE7 SW RA, 28(SP) -BFD06B60 CBC6 SW S8, 24(SP) -BFD06B62 0FDD MOVE S8, SP -3033: #if ( INCLUDE_vTaskDelete == 1 ) -3034: { -3035: BaseType_t xListIsEmpty; -3036: -3037: /* ucTasksDeleted is used to prevent vTaskSuspendAll() being called -3038: too often in the idle task. */ -3039: while( uxTasksDeleted > ( UBaseType_t ) 0U ) -BFD06B64 CC37 B 0xBFD06BD4 -BFD06B66 0C00 NOP -BFD06BD4 8034FC5C LW V0, -32716(GP) -BFD06BD8 FFC640A2 BNEZC V0, 0xBFD06B68 -BFD06BDA 0FBEFFC6 LW S8, 4030(A2) -3040: { -3041: vTaskSuspendAll(); -BFD06B68 4EF477E8 JALS vTaskSuspendAll -BFD06B6A 4EF4 ADDIU S7, S7, -6 -BFD06B6C 0C00 NOP -3042: { -3043: xListIsEmpty = listLIST_IS_EMPTY( &xTasksWaitingTermination ); -BFD06B6E BFD241A2 LUI V0, 0xBFD2 -BFD06B70 FC42BFD2 LDC1 F30, -958(S2) -BFD06B72 810CFC42 LW V0, -32500(V0) -BFD06B76 0001B042 SLTIU V0, V0, 1 -BFD06B7A 0010F85E SW V0, 16(S8) -3044: } -3045: ( void ) xTaskResumeAll(); -BFD06B7E 158E77E8 JALS xTaskResumeAll -BFD06B80 0C00158E LBU T4, 3072(T6) -BFD06B82 0C00 NOP -3046: -3047: if( xListIsEmpty == pdFALSE ) -BFD06B84 0010FC5E LW V0, 16(S8) -BFD06B88 002440A2 BNEZC V0, 0xBFD06BD4 -3048: { -3049: TCB_t *pxTCB; -3050: -3051: taskENTER_CRITICAL(); -BFD06B8C 33B877E8 JALS vTaskEnterCritical -BFD06B8E 0C0033B8 ADDIU SP, T8, 3072 -BFD06B90 0C00 NOP -3052: { -3053: pxTCB = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( ( &xTasksWaitingTermination ) ); -BFD06B92 BFD241A2 LUI V0, 0xBFD2 -BFD06B94 3042BFD2 LDC1 F30, 12354(S2) -BFD06B96 810C3042 ADDIU V0, V0, -32500 -BFD06B9A 6923 LW V0, 12(V0) -BFD06B9C 6923 LW V0, 12(V0) -BFD06B9E 0014F85E SW V0, 20(S8) -3054: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD06BA2 0014FC5E LW V0, 20(S8) -BFD06BA6 6D22 ADDIU V0, V0, 4 -BFD06BA8 0C82 MOVE A0, V0 -BFD06BAA 00C877E8 JALS uxListRemove -BFD06BAC 0C0000C8 SLL A2, T0, 1 -BFD06BAE 0C00 NOP -3055: --uxCurrentNumberOfTasks; -BFD06BB0 8038FC5C LW V0, -32712(GP) -BFD06BB4 6D2E ADDIU V0, V0, -1 -BFD06BB6 8038F85C SW V0, -32712(GP) -3056: --uxTasksDeleted; -BFD06BBA 8034FC5C LW V0, -32716(GP) -BFD06BBE 6D2E ADDIU V0, V0, -1 -BFD06BC0 8034F85C SW V0, -32716(GP) -3057: } -3058: taskEXIT_CRITICAL(); -BFD06BC4 40AA77E8 JALS vTaskExitCritical -BFD06BC6 0C0040AA BNEZC T2, 0xBFD083CA -BFD06BC8 0C00 NOP -3059: -3060: prvDeleteTCB( pxTCB ); -BFD06BCA 0014FC9E LW A0, 20(S8) -BFD06BCE 4C6E77E8 JALS prvDeleteTCB -BFD06BD0 4C6E ADDIU V1, V1, 7 -BFD06BD2 0C00 NOP -3061: } -3062: else -3063: { -3064: mtCOVERAGE_TEST_MARKER(); -3065: } -3066: } -3067: } -3068: #endif /* vTaskDelete */ -3069: } -BFD06BDC 0FBE MOVE SP, S8 -BFD06BDE 4BE7 LW RA, 28(SP) -BFD06BE0 4BC6 LW S8, 24(SP) -BFD06BE2 4C11 ADDIU SP, SP, 32 -BFD06BE4 459F JR16 RA -BFD06BE6 0C00 NOP -3070: /*-----------------------------------------------------------*/ -3071: -3072: static void prvAddCurrentTaskToDelayedList( const TickType_t xTimeToWake ) -3073: { -BFD06E68 4FF5 ADDIU SP, SP, -24 -BFD06E6A CBE5 SW RA, 20(SP) -BFD06E6C CBC4 SW S8, 16(SP) -BFD06E6E 0FDD MOVE S8, SP -BFD06E70 0018F89E SW A0, 24(S8) -3074: /* The list item will be inserted in wake time order. */ -3075: listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xGenericListItem ), xTimeToWake ); -BFD06E74 8030FC5C LW V0, -32720(GP) -BFD06E78 0018FC7E LW V1, 24(S8) -BFD06E7C E9A1 SW V1, 4(V0) -3076: -3077: if( xTimeToWake < xTickCount ) -BFD06E7E 803CFC5C LW V0, -32708(GP) -BFD06E82 0018FC7E LW V1, 24(S8) -BFD06E86 13900043 SLTU V0, V1, V0 -BFD06E88 40E21390 ADDI GP, S0, 16610 -BFD06E8A 000C40E2 BEQZC V0, 0xBFD06EA6 -3078: { -3079: /* Wake time has overflowed. Place this item in the overflow list. */ -3080: vListInsert( pxOverflowDelayedTaskList, &( pxCurrentTCB->xGenericListItem ) ); -BFD06E8E 8078FC7C LW V1, -32648(GP) -BFD06E92 8030FC5C LW V0, -32720(GP) -BFD06E96 6D22 ADDIU V0, V0, 4 -BFD06E98 0C83 MOVE A0, V1 -BFD06E9A 0CA2 MOVE A1, V0 -BFD06E9C 304077E8 JALS vListInsert -BFD06E9E 0C003040 ADDIU V0, ZERO, 3072 -BFD06EA0 0C00 NOP -BFD06EA2 CC17 B 0xBFD06ED2 -BFD06EA4 0C00 NOP -3081: } -3082: else -3083: { -3084: /* The wake time has not overflowed, so the current block list is used. */ -3085: vListInsert( pxDelayedTaskList, &( pxCurrentTCB->xGenericListItem ) ); -BFD06EA6 8074FC7C LW V1, -32652(GP) -BFD06EAA 8030FC5C LW V0, -32720(GP) -BFD06EAE 6D22 ADDIU V0, V0, 4 -BFD06EB0 0C83 MOVE A0, V1 -BFD06EB2 0CA2 MOVE A1, V0 -BFD06EB4 304077E8 JALS vListInsert -BFD06EB6 0C003040 ADDIU V0, ZERO, 3072 -BFD06EB8 0C00 NOP -3086: -3087: /* If the task entering the blocked state was placed at the head of the -3088: list of blocked tasks then xNextTaskUnblockTime needs to be updated -3089: too. */ -3090: if( xTimeToWake < xNextTaskUnblockTime ) -BFD06EBA 8058FC5C LW V0, -32680(GP) -BFD06EBE 0018FC7E LW V1, 24(S8) -BFD06EC2 13900043 SLTU V0, V1, V0 -BFD06EC4 40E21390 ADDI GP, S0, 16610 -BFD06EC6 000440E2 BEQZC V0, 0xBFD06ED2 -3091: { -3092: xNextTaskUnblockTime = xTimeToWake; -BFD06ECA 0018FC5E LW V0, 24(S8) -BFD06ECE 8058F85C SW V0, -32680(GP) -3093: } -3094: else -3095: { -3096: mtCOVERAGE_TEST_MARKER(); -3097: } -3098: } -3099: } -BFD06ED2 0FBE MOVE SP, S8 -BFD06ED4 4BE5 LW RA, 20(SP) -BFD06ED6 4BC4 LW S8, 16(SP) -BFD06ED8 4C0D ADDIU SP, SP, 24 -BFD06EDA 459F JR16 RA -BFD06EDC 0C00 NOP -3100: /*-----------------------------------------------------------*/ -3101: -3102: static TCB_t *prvAllocateTCBAndStack( const uint16_t usStackDepth, StackType_t * const puxStackBuffer ) -3103: { -BFD06328 4FF1 ADDIU SP, SP, -32 -BFD0632A CBE7 SW RA, 28(SP) -BFD0632C CBC6 SW S8, 24(SP) -BFD0632E 0FDD MOVE S8, SP -BFD06330 0C44 MOVE V0, A0 -BFD06332 0024F8BE SW A1, 36(S8) -BFD06336 0020385E SH V0, 32(S8) -3104: TCB_t *pxNewTCB; -3105: -3106: /* If the stack grows down then allocate the stack then the TCB so the stack -3107: does not grow into the TCB. Likewise if the stack grows up then allocate -3108: the TCB then the stack. */ -3109: #if( portSTACK_GROWTH > 0 ) -3110: { -3111: /* Allocate space for the TCB. Where the memory comes from depends on -3112: the implementation of the port malloc function. */ -3113: pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); -3114: -3115: if( pxNewTCB != NULL ) -3116: { -3117: /* Allocate space for the stack used by the task being created. -3118: The base of the stack memory stored in the TCB so the task can -3119: be deleted later if required. */ -3120: pxNewTCB->pxStack = ( StackType_t * ) pvPortMallocAligned( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ), puxStackBuffer ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -3121: -3122: if( pxNewTCB->pxStack == NULL ) -3123: { -3124: /* Could not allocate the stack. Delete the allocated TCB. */ -3125: vPortFree( pxNewTCB ); -3126: pxNewTCB = NULL; -3127: } -3128: } -3129: } -3130: #else /* portSTACK_GROWTH */ -3131: { -3132: StackType_t *pxStack; -3133: -3134: /* Allocate space for the stack used by the task being created. */ -3135: pxStack = ( StackType_t * ) pvPortMallocAligned( ( ( ( size_t ) usStackDepth ) * sizeof( StackType_t ) ), puxStackBuffer ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD0633A 0024FC5E LW V0, 36(S8) -BFD0633E 000940A2 BNEZC V0, 0xBFD06354 -BFD06342 0020345E LHU V0, 32(S8) -BFD06346 2524 SLL V0, V0, 2 -BFD06348 0C82 MOVE A0, V0 -BFD0634A 111677E8 JALS pvPortMalloc -BFD0634C 0C001116 ADDI T0, S6, 3072 -BFD0634E 0C00 NOP -BFD06350 CC03 B 0xBFD06358 -BFD06352 0C00 NOP -BFD06354 0024FC5E LW V0, 36(S8) -BFD06358 0014F85E SW V0, 20(S8) -3136: -3137: if( pxStack != NULL ) -BFD0635C 0014FC5E LW V0, 20(S8) -BFD06360 001840E2 BEQZC V0, 0xBFD06394 -BFD06362 EE500018 AND SP, T8, ZERO -3138: { -3139: /* Allocate space for the TCB. Where the memory comes from depends -3140: on the implementation of the port malloc function. */ -3141: pxNewTCB = ( TCB_t * ) pvPortMalloc( sizeof( TCB_t ) ); -BFD06364 EE50 LI A0, 80 -BFD06366 111677E8 JALS pvPortMalloc -BFD06368 0C001116 ADDI T0, S6, 3072 -BFD0636A 0C00 NOP -BFD0636C 0010F85E SW V0, 16(S8) -3142: -3143: if( pxNewTCB != NULL ) -BFD06370 0010FC5E LW V0, 16(S8) -BFD06374 000740E2 BEQZC V0, 0xBFD06386 -3144: { -3145: /* Store the stack location in the TCB. */ -3146: pxNewTCB->pxStack = pxStack; -BFD06378 0010FC5E LW V0, 16(S8) -BFD0637C 0014FC7E LW V1, 20(S8) -BFD0637E E9AC0014 EXT ZERO, S4, 6, 30 -BFD06380 E9AC SW V1, 48(V0) -BFD06382 CC0A B 0xBFD06398 -BFD06384 0C00 NOP -3147: } -3148: else -3149: { -3150: /* The stack cannot be used as the TCB was not created. Free it -3151: again. */ -3152: vPortFree( pxStack ); -BFD06386 0014FC9E LW A0, 20(S8) -BFD0638A 2FEA77E8 JALS vPortFree -BFD0638C 2FEA ANDI A3, A2, 0x20 -BFD0638E 0C00 NOP -BFD06390 CC03 B 0xBFD06398 -BFD06392 0C00 NOP -3153: } -3154: } -3155: else -3156: { -3157: pxNewTCB = NULL; -BFD06394 0010F81E SW ZERO, 16(S8) -3158: } -3159: } -3160: #endif /* portSTACK_GROWTH */ -3161: -3162: if( pxNewTCB != NULL ) -BFD06398 0010FC5E LW V0, 16(S8) -BFD0639C 000D40E2 BEQZC V0, 0xBFD063BA -3163: { -3164: /* Avoid dependency on memset() if it is not required. */ -3165: #if( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) -3166: { -3167: /* Just to help debugging. */ -3168: ( void ) memset( pxNewTCB->pxStack, ( int ) tskSTACK_FILL_BYTE, ( size_t ) usStackDepth * sizeof( StackType_t ) ); -BFD063A0 0010FC5E LW V0, 16(S8) -BFD063A2 69AC0010 EXT ZERO, S0, 6, 14 -BFD063A4 69AC LW V1, 48(V0) -BFD063A6 0020345E LHU V0, 32(S8) -BFD063AA 2524 SLL V0, V0, 2 -BFD063AC 0C83 MOVE A0, V1 -BFD063AE 00A530A0 ADDIU A1, ZERO, 165 -BFD063B2 0CC2 MOVE A2, V0 -BFD063B4 36F677E8 JALS 0xBFD06DEC -BFD063B6 0C0036F6 LHU S7, 3072(S6) -BFD063B8 0C00 NOP -3169: } -3170: #endif /* ( ( configCHECK_FOR_STACK_OVERFLOW > 1 ) || ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) ) */ -3171: } -3172: -3173: return pxNewTCB; -BFD063BA 0010FC5E LW V0, 16(S8) -3174: } -BFD063BE 0FBE MOVE SP, S8 -BFD063C0 4BE7 LW RA, 28(SP) -BFD063C2 4BC6 LW S8, 24(SP) -BFD063C4 4C11 ADDIU SP, SP, 32 -BFD063C6 459F JR16 RA -BFD063C8 0C00 NOP -3175: /*-----------------------------------------------------------*/ -3176: -3177: #if ( configUSE_TRACE_FACILITY == 1 ) -3178: -3179: static UBaseType_t prvListTaskWithinSingleList( TaskStatus_t *pxTaskStatusArray, List_t *pxList, eTaskState eState ) -3180: { -3181: volatile TCB_t *pxNextTCB, *pxFirstTCB; -3182: UBaseType_t uxTask = 0; -3183: -3184: if( listCURRENT_LIST_LENGTH( pxList ) > ( UBaseType_t ) 0 ) -3185: { -3186: listGET_OWNER_OF_NEXT_ENTRY( pxFirstTCB, pxList ); -3187: -3188: /* Populate an TaskStatus_t structure within the -3189: pxTaskStatusArray array for each task that is referenced from -3190: pxList. See the definition of TaskStatus_t in task.h for the -3191: meaning of each TaskStatus_t structure member. */ -3192: do -3193: { -3194: listGET_OWNER_OF_NEXT_ENTRY( pxNextTCB, pxList ); -3195: -3196: pxTaskStatusArray[ uxTask ].xHandle = ( TaskHandle_t ) pxNextTCB; -3197: pxTaskStatusArray[ uxTask ].pcTaskName = ( const char * ) &( pxNextTCB->pcTaskName [ 0 ] ); -3198: pxTaskStatusArray[ uxTask ].xTaskNumber = pxNextTCB->uxTCBNumber; -3199: pxTaskStatusArray[ uxTask ].eCurrentState = eState; -3200: pxTaskStatusArray[ uxTask ].uxCurrentPriority = pxNextTCB->uxPriority; -3201: -3202: #if ( INCLUDE_vTaskSuspend == 1 ) -3203: { -3204: /* If the task is in the suspended list then there is a chance -3205: it is actually just blocked indefinitely - so really it should -3206: be reported as being in the Blocked state. */ -3207: if( eState == eSuspended ) -3208: { -3209: if( listLIST_ITEM_CONTAINER( &( pxNextTCB->xEventListItem ) ) != NULL ) -3210: { -3211: pxTaskStatusArray[ uxTask ].eCurrentState = eBlocked; -3212: } -3213: } -3214: } -3215: #endif /* INCLUDE_vTaskSuspend */ -3216: -3217: #if ( configUSE_MUTEXES == 1 ) -3218: { -3219: pxTaskStatusArray[ uxTask ].uxBasePriority = pxNextTCB->uxBasePriority; -3220: } -3221: #else -3222: { -3223: pxTaskStatusArray[ uxTask ].uxBasePriority = 0; -3224: } -3225: #endif -3226: -3227: #if ( configGENERATE_RUN_TIME_STATS == 1 ) -3228: { -3229: pxTaskStatusArray[ uxTask ].ulRunTimeCounter = pxNextTCB->ulRunTimeCounter; -3230: } -3231: #else -3232: { -3233: pxTaskStatusArray[ uxTask ].ulRunTimeCounter = 0; -3234: } -3235: #endif -3236: -3237: #if ( portSTACK_GROWTH > 0 ) -3238: { -3239: pxTaskStatusArray[ uxTask ].usStackHighWaterMark = prvTaskCheckFreeStackSpace( ( uint8_t * ) pxNextTCB->pxEndOfStack ); -3240: } -3241: #else -3242: { -3243: pxTaskStatusArray[ uxTask ].usStackHighWaterMark = prvTaskCheckFreeStackSpace( ( uint8_t * ) pxNextTCB->pxStack ); -3244: } -3245: #endif -3246: -3247: uxTask++; -3248: -3249: } while( pxNextTCB != pxFirstTCB ); -3250: } -3251: else -3252: { -3253: mtCOVERAGE_TEST_MARKER(); -3254: } -3255: -3256: return uxTask; -3257: } -3258: -3259: #endif /* configUSE_TRACE_FACILITY */ -3260: /*-----------------------------------------------------------*/ -3261: -3262: #if ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) -3263: -3264: static uint16_t prvTaskCheckFreeStackSpace( const uint8_t * pucStackByte ) -3265: { -BFD089A4 4FF9 ADDIU SP, SP, -16 -BFD089A6 CBC3 SW S8, 12(SP) -BFD089A8 0FDD MOVE S8, SP -BFD089AA 0010F89E SW A0, 16(S8) -3266: uint32_t ulCount = 0U; -BFD089AE 0000F81E SW ZERO, 0(S8) -3267: -3268: while( *pucStackByte == ( uint8_t ) tskSTACK_FILL_BYTE ) -BFD089B2 CC0B B 0xBFD089CA -BFD089B4 0C00 NOP -BFD089CA 0010FC5E LW V0, 16(S8) -BFD089CE 09A0 LBU V1, 0(V0) -BFD089D0 00A53040 ADDIU V0, ZERO, 165 -BFD089D4 FFEF9443 BEQ V1, V0, 0xBFD089B6 -BFD089D6 0C00FFEF LW RA, 3072(T7) -BFD089D8 0C00 NOP -3269: { -3270: pucStackByte -= portSTACK_GROWTH; -BFD089B6 0010FC5E LW V0, 16(S8) -BFD089BA 6D20 ADDIU V0, V0, 1 -BFD089BC 0010F85E SW V0, 16(S8) -3271: ulCount++; -BFD089C0 0000FC5E LW V0, 0(S8) -BFD089C4 6D20 ADDIU V0, V0, 1 -BFD089C6 0000F85E SW V0, 0(S8) -3272: } -3273: -3274: ulCount /= ( uint32_t ) sizeof( StackType_t ); /*lint !e961 Casting is not redundant on smaller architectures. */ -BFD089DA 0000FC5E LW V0, 0(S8) -BFD089DE 2525 SRL V0, V0, 2 -BFD089E0 0000F85E SW V0, 0(S8) -3275: -3276: return ( uint16_t ) ulCount; -BFD089E4 0000FC5E LW V0, 0(S8) -BFD089E8 2D2F ANDI V0, V0, 0xFFFF -3277: } -BFD089EA 0FBE MOVE SP, S8 -BFD089EC 4BC3 LW S8, 12(SP) -BFD089EE 4C09 ADDIU SP, SP, 16 -BFD089F0 459F JR16 RA -BFD089F2 0C00 NOP -3278: -3279: #endif /* ( ( configUSE_TRACE_FACILITY == 1 ) || ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) ) */ -3280: /*-----------------------------------------------------------*/ -3281: -3282: #if ( INCLUDE_uxTaskGetStackHighWaterMark == 1 ) -3283: -3284: UBaseType_t uxTaskGetStackHighWaterMark( TaskHandle_t xTask ) -3285: { -BFD08C10 4FED ADDIU SP, SP, -40 -BFD08C12 CBE9 SW RA, 36(SP) -BFD08C14 CBC8 SW S8, 32(SP) -BFD08C16 0FDD MOVE S8, SP -BFD08C18 0028F89E SW A0, 40(S8) -3286: TCB_t *pxTCB; -3287: uint8_t *pucEndOfStack; -3288: UBaseType_t uxReturn; -3289: -3290: pxTCB = prvGetTCBFromHandle( xTask ); -BFD08C1C 0028FC5E LW V0, 40(S8) -BFD08C20 000440A2 BNEZC V0, 0xBFD08C2C -BFD08C24 8030FC5C LW V0, -32720(GP) -BFD08C28 CC03 B 0xBFD08C30 -BFD08C2A 0C00 NOP -BFD08C2C 0028FC5E LW V0, 40(S8) -BFD08C30 0010F85E SW V0, 16(S8) -3291: -3292: #if portSTACK_GROWTH < 0 -3293: { -3294: pucEndOfStack = ( uint8_t * ) pxTCB->pxStack; -BFD08C34 0010FC5E LW V0, 16(S8) -BFD08C36 692C0010 EXT ZERO, S0, 4, 14 -BFD08C38 692C LW V0, 48(V0) -BFD08C3A 0014F85E SW V0, 20(S8) -3295: } -3296: #else -3297: { -3298: pucEndOfStack = ( uint8_t * ) pxTCB->pxEndOfStack; -3299: } -3300: #endif -3301: -3302: uxReturn = ( UBaseType_t ) prvTaskCheckFreeStackSpace( pucEndOfStack ); -BFD08C3E 0014FC9E LW A0, 20(S8) -BFD08C42 44D277E8 JALS prvTaskCheckFreeStackSpace -BFD08C44 44D2 OR16 V0, V0 -BFD08C46 0C00 NOP -BFD08C48 0018F85E SW V0, 24(S8) -3303: -3304: return uxReturn; -BFD08C4C 0018FC5E LW V0, 24(S8) -3305: } -BFD08C50 0FBE MOVE SP, S8 -BFD08C52 4BE9 LW RA, 36(SP) -BFD08C54 4BC8 LW S8, 32(SP) -BFD08C56 4C15 ADDIU SP, SP, 40 -BFD08C58 459F JR16 RA -BFD08C5A 0C00 NOP -3306: -3307: #endif /* INCLUDE_uxTaskGetStackHighWaterMark */ -3308: /*-----------------------------------------------------------*/ -3309: -3310: #if ( INCLUDE_vTaskDelete == 1 ) -3311: -3312: static void prvDeleteTCB( TCB_t *pxTCB ) -3313: { -BFD098DC 4FF5 ADDIU SP, SP, -24 -BFD098DE CBE5 SW RA, 20(SP) -BFD098E0 CBC4 SW S8, 16(SP) -BFD098E2 0FDD MOVE S8, SP -BFD098E4 0018F89E SW A0, 24(S8) -3314: /* This call is required specifically for the TriCore port. It must be -3315: above the vPortFree() calls. The call is also used by ports/demos that -3316: want to allocate and clean RAM statically. */ -3317: portCLEAN_UP_TCB( pxTCB ); -3318: -3319: /* Free up the memory allocated by the scheduler for the task. It is up -3320: to the task to free any memory allocated at the application level. */ -3321: #if ( configUSE_NEWLIB_REENTRANT == 1 ) -3322: { -3323: _reclaim_reent( &( pxTCB->xNewLib_reent ) ); -3324: } -3325: #endif /* configUSE_NEWLIB_REENTRANT */ -3326: -3327: #if( portUSING_MPU_WRAPPERS == 1 ) -3328: { -3329: /* Only free the stack if it was allocated dynamically in the first -3330: place. */ -3331: if( pxTCB->xUsingStaticallyAllocatedStack == pdFALSE ) -3332: { -3333: vPortFreeAligned( pxTCB->pxStack ); -3334: } -3335: } -3336: #else -3337: { -3338: vPortFreeAligned( pxTCB->pxStack ); -BFD098E8 0018FC5E LW V0, 24(S8) -BFD098EA 692C0018 EXT ZERO, T8, 4, 14 -BFD098EC 692C LW V0, 48(V0) -BFD098EE 0C82 MOVE A0, V0 -BFD098F0 2FEA77E8 JALS vPortFree -BFD098F2 2FEA ANDI A3, A2, 0x20 -BFD098F4 0C00 NOP -3339: } -3340: #endif -3341: -3342: vPortFree( pxTCB ); -BFD098F6 0018FC9E LW A0, 24(S8) -BFD098FA 2FEA77E8 JALS vPortFree -BFD098FC 2FEA ANDI A3, A2, 0x20 -BFD098FE 0C00 NOP -3343: } -BFD09900 0FBE MOVE SP, S8 -BFD09902 4BE5 LW RA, 20(SP) -BFD09904 4BC4 LW S8, 16(SP) -BFD09906 4C0D ADDIU SP, SP, 24 -BFD09908 459F JR16 RA -BFD0990A 0C00 NOP -3344: -3345: #endif /* INCLUDE_vTaskDelete */ -3346: /*-----------------------------------------------------------*/ -3347: -3348: static void prvResetNextTaskUnblockTime( void ) -3349: { -BFD08F94 4FF9 ADDIU SP, SP, -16 -BFD08F96 CBC3 SW S8, 12(SP) -BFD08F98 0FDD MOVE S8, SP -3350: TCB_t *pxTCB; -3351: -3352: if( listLIST_IS_EMPTY( pxDelayedTaskList ) != pdFALSE ) -BFD08F9A 8074FC5C LW V0, -32652(GP) -BFD08F9E 6920 LW V0, 0(V0) -BFD08FA0 000340A2 BNEZC V0, 0xBFD08FAA -BFD08FA4 ED01 LI V0, 1 -BFD08FA6 CC02 B 0xBFD08FAC -BFD08FA8 0C00 NOP -BFD08FAA 0C40 MOVE V0, ZERO -BFD08FAC 000540E2 BEQZC V0, 0xBFD08FBA -3353: { -3354: /* The new current delayed list is empty. Set xNextTaskUnblockTime to -3355: the maximum possible value so it is extremely unlikely that the -3356: if( xTickCount >= xNextTaskUnblockTime ) test will pass until -3357: there is an item in the delayed list. */ -3358: xNextTaskUnblockTime = portMAX_DELAY; -BFD08FB0 ED7F LI V0, -1 -BFD08FB2 8058F85C SW V0, -32680(GP) -BFD08FB6 CC0C B 0xBFD08FD0 -BFD08FB8 0C00 NOP -3359: } -3360: else -3361: { -3362: /* The new current delayed list is not empty, get the value of -3363: the item at the head of the delayed list. This is the time at -3364: which the task at the head of the delayed list should be removed -3365: from the Blocked state. */ -3366: ( pxTCB ) = ( TCB_t * ) listGET_OWNER_OF_HEAD_ENTRY( pxDelayedTaskList ); -BFD08FBA 8074FC5C LW V0, -32652(GP) -BFD08FBE 6923 LW V0, 12(V0) -BFD08FC0 6923 LW V0, 12(V0) -BFD08FC2 0000F85E SW V0, 0(S8) -3367: xNextTaskUnblockTime = listGET_LIST_ITEM_VALUE( &( ( pxTCB )->xGenericListItem ) ); -BFD08FC6 0000FC5E LW V0, 0(S8) -BFD08FCA 6921 LW V0, 4(V0) -BFD08FCC 8058F85C SW V0, -32680(GP) -3368: } -3369: } -BFD08FD0 0FBE MOVE SP, S8 -BFD08FD2 4BC3 LW S8, 12(SP) -BFD08FD4 4C09 ADDIU SP, SP, 16 -BFD08FD6 459F JR16 RA -BFD08FD8 0C00 NOP -3370: /*-----------------------------------------------------------*/ -3371: -3372: #if ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) -3373: -3374: TaskHandle_t xTaskGetCurrentTaskHandle( void ) -3375: { -BFD09E04 4FF9 ADDIU SP, SP, -16 -BFD09E06 CBC3 SW S8, 12(SP) -BFD09E08 0FDD MOVE S8, SP -3376: TaskHandle_t xReturn; -3377: -3378: /* A critical section is not required as this is not called from -3379: an interrupt and the current TCB will always be the same for any -3380: individual execution thread. */ -3381: xReturn = pxCurrentTCB; -BFD09E0A 8030FC5C LW V0, -32720(GP) -BFD09E0E 0000F85E SW V0, 0(S8) -3382: -3383: return xReturn; -BFD09E12 0000FC5E LW V0, 0(S8) -3384: } -BFD09E16 0FBE MOVE SP, S8 -BFD09E18 4BC3 LW S8, 12(SP) -BFD09E1A 4C09 ADDIU SP, SP, 16 -BFD09E1C 459F JR16 RA -BFD09E1E 0C00 NOP -3385: -3386: #endif /* ( ( INCLUDE_xTaskGetCurrentTaskHandle == 1 ) || ( configUSE_MUTEXES == 1 ) ) */ -3387: /*-----------------------------------------------------------*/ -3388: -3389: #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) -3390: -3391: BaseType_t xTaskGetSchedulerState( void ) -3392: { -BFD0951C 4FF9 ADDIU SP, SP, -16 -BFD0951E CBC3 SW S8, 12(SP) -BFD09520 0FDD MOVE S8, SP -3393: BaseType_t xReturn; -3394: -3395: if( xSchedulerRunning == pdFALSE ) -BFD09522 8044FC5C LW V0, -32700(GP) -BFD09526 000540A2 BNEZC V0, 0xBFD09534 -3396: { -3397: xReturn = taskSCHEDULER_NOT_STARTED; -BFD0952A ED01 LI V0, 1 -BFD0952C 0000F85E SW V0, 0(S8) -BFD0952E CC0C0000 INS ZERO, ZERO, 16, 10 -BFD09530 CC0C B 0xBFD0954A -BFD09532 0C00 NOP -3398: } -3399: else -3400: { -3401: if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) -BFD09534 805CFC5C LW V0, -32676(GP) -BFD09538 000540A2 BNEZC V0, 0xBFD09546 -3402: { -3403: xReturn = taskSCHEDULER_RUNNING; -BFD0953C ED02 LI V0, 2 -BFD0953E 0000F85E SW V0, 0(S8) -BFD09542 CC03 B 0xBFD0954A -BFD09544 0C00 NOP -3404: } -3405: else -3406: { -3407: xReturn = taskSCHEDULER_SUSPENDED; -BFD09546 0000F81E SW ZERO, 0(S8) -3408: } -3409: } -3410: -3411: return xReturn; -BFD0954A 0000FC5E LW V0, 0(S8) -3412: } -BFD0954E 0FBE MOVE SP, S8 -BFD09550 4BC3 LW S8, 12(SP) -BFD09552 4C09 ADDIU SP, SP, 16 -BFD09554 459F JR16 RA -BFD09556 0C00 NOP -3413: -3414: #endif /* ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) */ -3415: /*-----------------------------------------------------------*/ -3416: -3417: #if ( configUSE_MUTEXES == 1 ) -3418: -3419: void vTaskPriorityInherit( TaskHandle_t const pxMutexHolder ) -3420: { -BFD03520 4FF1 ADDIU SP, SP, -32 -BFD03522 CBE7 SW RA, 28(SP) -BFD03524 CBC6 SW S8, 24(SP) -BFD03526 0FDD MOVE S8, SP -BFD03528 0020F89E SW A0, 32(S8) -3421: TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder; -BFD0352C 0020FC5E LW V0, 32(S8) -BFD03530 0010F85E SW V0, 16(S8) -3422: -3423: /* If the mutex was given back by an interrupt while the queue was -3424: locked then the mutex holder might now be NULL. */ -3425: if( pxMutexHolder != NULL ) -BFD03534 0020FC5E LW V0, 32(S8) -BFD03538 007E40E2 BEQZC V0, 0xBFD03638 -3426: { -3427: /* If the holder of the mutex has a priority below the priority of -3428: the task attempting to obtain the mutex then it will temporarily -3429: inherit the priority of the task attempting to obtain the mutex. */ -3430: if( pxTCB->uxPriority < pxCurrentTCB->uxPriority ) -BFD0353C 0010FC5E LW V0, 16(S8) -BFD03540 69AB LW V1, 44(V0) -BFD03542 8030FC5C LW V0, -32720(GP) -BFD03546 692B LW V0, 44(V0) -BFD03548 13900043 SLTU V0, V1, V0 -BFD0354A 40E21390 ADDI GP, S0, 16610 -BFD0354C 007440E2 BEQZC V0, 0xBFD03638 -3431: { -3432: /* Adjust the mutex holder state to account for its new -3433: priority. Only reset the event list item value if the value is -3434: not being used for anything else. */ -3435: if( ( listGET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ) ) & taskEVENT_LIST_ITEM_VALUE_IN_USE ) == 0UL ) -BFD03550 0010FC5E LW V0, 16(S8) -BFD03554 6926 LW V0, 24(V0) -BFD03556 00094002 BLTZ V0, 0xBFD0356C -BFD03558 0C000009 SLL ZERO, T1, 1 -BFD0355A 0C00 NOP -3436: { -3437: listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD0355C 8030FC5C LW V0, -32720(GP) -BFD03560 692B LW V0, 44(V0) -BFD03562 ED85 LI V1, 5 -BFD03564 05A7 SUBU V1, V1, V0 -BFD03566 0010FC5E LW V0, 16(S8) -BFD0356A E9A6 SW V1, 24(V0) -3438: } -3439: else -3440: { -3441: mtCOVERAGE_TEST_MARKER(); -3442: } -3443: -3444: /* If the task being modified is in the ready state it will need -3445: to be moved into a new list. */ -3446: if( listIS_CONTAINED_WITHIN( &( pxReadyTasksLists[ pxTCB->uxPriority ] ), &( pxTCB->xGenericListItem ) ) != pdFALSE ) -BFD0356C 0010FC5E LW V0, 16(S8) -BFD0356E 69A50010 LWX T5, 0(S0) -BFD03570 69A5 LW V1, 20(V0) -BFD03572 0010FC5E LW V0, 16(S8) -BFD03576 692B LW V0, 44(V0) -BFD03578 2524 SLL V0, V0, 2 -BFD0357A 2624 SLL A0, V0, 2 -BFD0357C 0644 ADDU A0, V0, A0 -BFD0357E BFD241A2 LUI V0, 0xBFD2 -BFD03580 3042BFD2 LDC1 F30, 12354(S2) -BFD03582 806C3042 ADDIU V0, V0, -32660 -BFD03586 0528 ADDU V0, A0, V0 -BFD03588 0004B443 BNE V1, V0, 0xBFD03594 -BFD0358A 0C000004 SLL ZERO, A0, 1 -BFD0358C 0C00 NOP -BFD0358E ED01 LI V0, 1 -BFD03590 CC02 B 0xBFD03596 -BFD03592 0C00 NOP -BFD03594 0C40 MOVE V0, ZERO -BFD03596 004940E2 BEQZC V0, 0xBFD0362C -3447: { -3448: if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD0359A 0010FC5E LW V0, 16(S8) -BFD0359E 6D22 ADDIU V0, V0, 4 -BFD035A0 0C82 MOVE A0, V0 -BFD035A2 00C877E8 JALS uxListRemove -BFD035A4 0C0000C8 SLL A2, T0, 1 -BFD035A6 0C00 NOP -BFD035A8 001A40A2 BNEZC V0, 0xBFD035E0 -3449: { -3450: taskRESET_READY_PRIORITY( pxTCB->uxPriority ); -BFD035AC 0010FC5E LW V0, 16(S8) -BFD035B0 692B LW V0, 44(V0) -BFD035B2 2524 SLL V0, V0, 2 -BFD035B4 25A4 SLL V1, V0, 2 -BFD035B6 05B4 ADDU V1, V0, V1 -BFD035B8 BFD241A2 LUI V0, 0xBFD2 -BFD035BA 3042BFD2 LDC1 F30, 12354(S2) -BFD035BC 806C3042 ADDIU V0, V0, -32660 -BFD035C0 0526 ADDU V0, V1, V0 -BFD035C2 6920 LW V0, 0(V0) -BFD035C4 000C40A2 BNEZC V0, 0xBFD035E0 -BFD035C8 0010FC5E LW V0, 16(S8) -BFD035CC 692B LW V0, 44(V0) -BFD035CE ED81 LI V1, 1 -BFD035D0 10100062 SLLV V0, V0, V1 -BFD035D2 441A1010 ADDI ZERO, S0, 17434 -BFD035D4 441A NOT16 V1, V0 -BFD035D6 8040FC5C LW V0, -32704(GP) -BFD035DA 4493 AND16 V0, V1 -BFD035DC 8040F85C SW V0, -32704(GP) -3451: } -3452: else -3453: { -3454: mtCOVERAGE_TEST_MARKER(); -3455: } -3456: -3457: /* Inherit the priority before being moved into the new list. */ -3458: pxTCB->uxPriority = pxCurrentTCB->uxPriority; -BFD035E0 8030FC5C LW V0, -32720(GP) -BFD035E4 69AB LW V1, 44(V0) -BFD035E6 0010FC5E LW V0, 16(S8) -BFD035EA E9AB SW V1, 44(V0) -3459: prvAddTaskToReadyList( pxTCB ); -BFD035EC 0010FC5E LW V0, 16(S8) -BFD035F0 692B LW V0, 44(V0) -BFD035F2 ED81 LI V1, 1 -BFD035F4 18100062 SLLV V1, V0, V1 -BFD035F6 FC5C1810 SB ZERO, -932(S0) -BFD035F8 8040FC5C LW V0, -32704(GP) -BFD035FC 44D3 OR16 V0, V1 -BFD035FE 8040F85C SW V0, -32704(GP) -BFD03602 0010FC5E LW V0, 16(S8) -BFD03606 692B LW V0, 44(V0) -BFD03608 2524 SLL V0, V0, 2 -BFD0360A 25A4 SLL V1, V0, 2 -BFD0360C 05B4 ADDU V1, V0, V1 -BFD0360E BFD241A2 LUI V0, 0xBFD2 -BFD03610 3042BFD2 LDC1 F30, 12354(S2) -BFD03612 806C3042 ADDIU V0, V0, -32660 -BFD03616 05A6 ADDU V1, V1, V0 -BFD03618 0010FC5E LW V0, 16(S8) -BFD0361C 6D22 ADDIU V0, V0, 4 -BFD0361E 0C83 MOVE A0, V1 -BFD03620 0CA2 MOVE A1, V0 -BFD03622 3E4A77E8 JALS vListInsertEnd -BFD03624 0C003E4A LH S2, 3072(T2) -BFD03626 0C00 NOP -BFD03628 CC07 B 0xBFD03638 -BFD0362A 0C00 NOP -3460: } -3461: else -3462: { -3463: /* Just inherit the priority. */ -3464: pxTCB->uxPriority = pxCurrentTCB->uxPriority; -BFD0362C 8030FC5C LW V0, -32720(GP) -BFD03630 69AB LW V1, 44(V0) -BFD03632 0010FC5E LW V0, 16(S8) -BFD03636 E9AB SW V1, 44(V0) -3465: } -3466: -3467: traceTASK_PRIORITY_INHERIT( pxTCB, pxCurrentTCB->uxPriority ); -3468: } -3469: else -3470: { -3471: mtCOVERAGE_TEST_MARKER(); -3472: } -3473: } -3474: else -3475: { -3476: mtCOVERAGE_TEST_MARKER(); -3477: } -3478: } -BFD03638 0FBE MOVE SP, S8 -BFD0363A 4BE7 LW RA, 28(SP) -BFD0363C 4BC6 LW S8, 24(SP) -BFD0363E 4C11 ADDIU SP, SP, 32 -BFD03640 459F JR16 RA -BFD03642 0C00 NOP -3479: -3480: #endif /* configUSE_MUTEXES */ -3481: /*-----------------------------------------------------------*/ -3482: -3483: #if ( configUSE_MUTEXES == 1 ) -3484: -3485: BaseType_t xTaskPriorityDisinherit( TaskHandle_t const pxMutexHolder ) -3486: { -BFD02F04 4FF1 ADDIU SP, SP, -32 -BFD02F06 CBE7 SW RA, 28(SP) -BFD02F08 CBC6 SW S8, 24(SP) -BFD02F0A 0FDD MOVE S8, SP -BFD02F0C 0020F89E SW A0, 32(S8) -3487: TCB_t * const pxTCB = ( TCB_t * ) pxMutexHolder; -BFD02F10 0020FC5E LW V0, 32(S8) -BFD02F14 0014F85E SW V0, 20(S8) -3488: BaseType_t xReturn = pdFALSE; -BFD02F18 0010F81E SW ZERO, 16(S8) -3489: -3490: if( pxMutexHolder != NULL ) -BFD02F1C 0020FC5E LW V0, 32(S8) -BFD02F20 008B40E2 BEQZC V0, 0xBFD0303A -3491: { -3492: /* A task can only have an inherited priority if it holds the mutex. -3493: If the mutex is held by a task then it cannot be given from an -3494: interrupt, and if a mutex is given by the holding task then it must -3495: be the running state task. */ -3496: configASSERT( pxTCB == pxCurrentTCB ); -BFD02F24 8030FC5C LW V0, -32720(GP) -BFD02F28 0014FC7E LW V1, 20(S8) -BFD02F2C 000A9443 BEQ V1, V0, 0xBFD02F44 -BFD02F2E 0C00000A SLL ZERO, T2, 1 -BFD02F30 0C00 NOP -BFD02F32 BFD141A2 LUI V0, 0xBFD1 -BFD02F34 3082BFD1 LDC1 F30, 12418(S1) -BFD02F36 98103082 ADDIU A0, V0, -26608 -BFD02F38 30A09810 SWC1 F0, 12448(S0) -BFD02F3A 0DA830A0 ADDIU A1, ZERO, 3496 -BFD02F3C 0DA8 MOVE T5, T0 -BFD02F3E 4B7E77E8 JALS vAssertCalled -BFD02F40 4B7E LW K1, 120(SP) -BFD02F42 0C00 NOP -3497: -3498: configASSERT( pxTCB->uxMutexesHeld ); -BFD02F44 0014FC5E LW V0, 20(S8) -BFD02F48 0044FC42 LW V0, 68(V0) -BFD02F4C 000940A2 BNEZC V0, 0xBFD02F62 -BFD02F50 BFD141A2 LUI V0, 0xBFD1 -BFD02F52 3082BFD1 LDC1 F30, 12418(S1) -BFD02F54 98103082 ADDIU A0, V0, -26608 -BFD02F56 30A09810 SWC1 F0, 12448(S0) -BFD02F58 0DAA30A0 ADDIU A1, ZERO, 3498 -BFD02F5A 0DAA MOVE T5, T2 -BFD02F5C 4B7E77E8 JALS vAssertCalled -BFD02F5E 4B7E LW K1, 120(SP) -BFD02F60 0C00 NOP -3499: ( pxTCB->uxMutexesHeld )--; -BFD02F62 0014FC5E LW V0, 20(S8) -BFD02F66 0044FC42 LW V0, 68(V0) -BFD02F6A 6DAE ADDIU V1, V0, -1 -BFD02F6C 0014FC5E LW V0, 20(S8) -BFD02F70 0044F862 SW V1, 68(V0) -3500: -3501: /* Has the holder of the mutex inherited the priority of another -3502: task? */ -3503: if( pxTCB->uxPriority != pxTCB->uxBasePriority ) -BFD02F74 0014FC5E LW V0, 20(S8) -BFD02F78 69AB LW V1, 44(V0) -BFD02F7A 0014FC5E LW V0, 20(S8) -BFD02F7E 0040FC42 LW V0, 64(V0) -BFD02F82 005A9443 BEQ V1, V0, 0xBFD0303A -BFD02F84 0C00005A SLL V0, K0, 1 -BFD02F86 0C00 NOP -3504: { -3505: /* Only disinherit if no other mutexes are held. */ -3506: if( pxTCB->uxMutexesHeld == ( UBaseType_t ) 0 ) -BFD02F88 0014FC5E LW V0, 20(S8) -BFD02F8C 0044FC42 LW V0, 68(V0) -BFD02F90 005340A2 BNEZC V0, 0xBFD0303A -3507: { -3508: /* A task can only have an inherited priority if it holds -3509: the mutex. If the mutex is held by a task then it cannot be -3510: given from an interrupt, and if a mutex is given by the -3511: holding task then it must be the running state task. Remove -3512: the holding task from the ready list. */ -3513: if( uxListRemove( &( pxTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD02F94 0014FC5E LW V0, 20(S8) -BFD02F98 6D22 ADDIU V0, V0, 4 -BFD02F9A 0C82 MOVE A0, V0 -BFD02F9C 00C877E8 JALS uxListRemove -BFD02F9E 0C0000C8 SLL A2, T0, 1 -BFD02FA0 0C00 NOP -BFD02FA2 001A40A2 BNEZC V0, 0xBFD02FDA -3514: { -3515: taskRESET_READY_PRIORITY( pxTCB->uxPriority ); -BFD02FA6 0014FC5E LW V0, 20(S8) -BFD02FAA 692B LW V0, 44(V0) -BFD02FAC 2524 SLL V0, V0, 2 -BFD02FAE 25A4 SLL V1, V0, 2 -BFD02FB0 05B4 ADDU V1, V0, V1 -BFD02FB2 BFD241A2 LUI V0, 0xBFD2 -BFD02FB4 3042BFD2 LDC1 F30, 12354(S2) -BFD02FB6 806C3042 ADDIU V0, V0, -32660 -BFD02FBA 0526 ADDU V0, V1, V0 -BFD02FBC 6920 LW V0, 0(V0) -BFD02FBE 000C40A2 BNEZC V0, 0xBFD02FDA -BFD02FC2 0014FC5E LW V0, 20(S8) -BFD02FC6 692B LW V0, 44(V0) -BFD02FC8 ED81 LI V1, 1 -BFD02FCA 10100062 SLLV V0, V0, V1 -BFD02FCC 441A1010 ADDI ZERO, S0, 17434 -BFD02FCE 441A NOT16 V1, V0 -BFD02FD0 8040FC5C LW V0, -32704(GP) -BFD02FD4 4493 AND16 V0, V1 -BFD02FD6 8040F85C SW V0, -32704(GP) -3516: } -3517: else -3518: { -3519: mtCOVERAGE_TEST_MARKER(); -3520: } -3521: -3522: /* Disinherit the priority before adding the task into the -3523: new ready list. */ -3524: traceTASK_PRIORITY_DISINHERIT( pxTCB, pxTCB->uxBasePriority ); -3525: pxTCB->uxPriority = pxTCB->uxBasePriority; -BFD02FDA 0014FC5E LW V0, 20(S8) -BFD02FDE 0040FC62 LW V1, 64(V0) -BFD02FE2 0014FC5E LW V0, 20(S8) -BFD02FE6 E9AB SW V1, 44(V0) -3526: -3527: /* Reset the event list item value. It cannot be in use for -3528: any other purpose if this task is running, and it must be -3529: running to give back the mutex. */ -3530: listSET_LIST_ITEM_VALUE( &( pxTCB->xEventListItem ), ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxTCB->uxPriority ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD02FE8 0014FC5E LW V0, 20(S8) -BFD02FEC 692B LW V0, 44(V0) -BFD02FEE ED85 LI V1, 5 -BFD02FF0 05A7 SUBU V1, V1, V0 -BFD02FF2 0014FC5E LW V0, 20(S8) -BFD02FF6 E9A6 SW V1, 24(V0) -3531: prvAddTaskToReadyList( pxTCB ); -BFD02FF8 0014FC5E LW V0, 20(S8) -BFD02FFC 692B LW V0, 44(V0) -BFD02FFE ED81 LI V1, 1 -BFD03000 18100062 SLLV V1, V0, V1 -BFD03002 FC5C1810 SB ZERO, -932(S0) -BFD03004 8040FC5C LW V0, -32704(GP) -BFD03008 44D3 OR16 V0, V1 -BFD0300A 8040F85C SW V0, -32704(GP) -BFD0300E 0014FC5E LW V0, 20(S8) -BFD03012 692B LW V0, 44(V0) -BFD03014 2524 SLL V0, V0, 2 -BFD03016 25A4 SLL V1, V0, 2 -BFD03018 05B4 ADDU V1, V0, V1 -BFD0301A BFD241A2 LUI V0, 0xBFD2 -BFD0301C 3042BFD2 LDC1 F30, 12354(S2) -BFD0301E 806C3042 ADDIU V0, V0, -32660 -BFD03022 05A6 ADDU V1, V1, V0 -BFD03024 0014FC5E LW V0, 20(S8) -BFD03028 6D22 ADDIU V0, V0, 4 -BFD0302A 0C83 MOVE A0, V1 -BFD0302C 0CA2 MOVE A1, V0 -BFD0302E 3E4A77E8 JALS vListInsertEnd -BFD03030 0C003E4A LH S2, 3072(T2) -BFD03032 0C00 NOP -3532: -3533: /* Return true to indicate that a context switch is required. -3534: This is only actually required in the corner case whereby -3535: multiple mutexes were held and the mutexes were given back -3536: in an order different to that in which they were taken. -3537: If a context switch did not occur when the first mutex was -3538: returned, even if a task was waiting on it, then a context -3539: switch should occur when the last mutex is returned whether -3540: a task is waiting on it or not. */ -3541: xReturn = pdTRUE; -BFD03034 ED01 LI V0, 1 -BFD03036 0010F85E SW V0, 16(S8) -3542: } -3543: else -3544: { -3545: mtCOVERAGE_TEST_MARKER(); -3546: } -3547: } -3548: else -3549: { -3550: mtCOVERAGE_TEST_MARKER(); -3551: } -3552: } -3553: else -3554: { -3555: mtCOVERAGE_TEST_MARKER(); -3556: } -3557: -3558: return xReturn; -BFD0303A 0010FC5E LW V0, 16(S8) -3559: } -BFD0303E 0FBE MOVE SP, S8 -BFD03040 4BE7 LW RA, 28(SP) -BFD03042 4BC6 LW S8, 24(SP) -BFD03044 4C11 ADDIU SP, SP, 32 -BFD03046 459F JR16 RA -BFD03048 0C00 NOP -3560: -3561: #endif /* configUSE_MUTEXES */ -3562: /*-----------------------------------------------------------*/ -3563: -3564: #if ( portCRITICAL_NESTING_IN_TCB == 1 ) -3565: -3566: void vTaskEnterCritical( void ) -3567: { -BFD06770 4FF1 ADDIU SP, SP, -32 -BFD06772 CBE7 SW RA, 28(SP) -BFD06774 CBC6 SW S8, 24(SP) -BFD06776 0FDD MOVE S8, SP -3568: portDISABLE_INTERRUPTS(); -BFD06778 4E3677E8 JALS ulPortGetCP0Status -BFD0677A 4E36 ADDIU S1, S1, -5 -BFD0677C 0C00 NOP -BFD0677E 0010F85E SW V0, 16(S8) -BFD06782 0010FC7E LW V1, 16(S8) -BFD06786 000141A2 LUI V0, 0x1 -BFD0678A FC005042 ORI V0, V0, -1024 -BFD0678C 4493FC00 LW ZERO, 17555(ZERO) -BFD0678E 4493 AND16 V0, V1 -BFD06790 50400042 SRL V0, V0, 10 -BFD06792 B0425040 ORI V0, ZERO, -20414 -BFD06794 0003B042 SLTIU V0, V0, 3 -BFD06798 001140E2 BEQZC V0, 0xBFD067BE -BFD0679C 0010FC7E LW V1, 16(S8) -BFD067A0 FFFE41A2 LUI V0, 0xFFFE -BFD067A2 5042FFFE LW RA, 20546(S8) -BFD067A4 03FF5042 ORI V0, V0, 1023 -BFD067A8 4493 AND16 V0, V1 -BFD067AA 0010F85E SW V0, 16(S8) -BFD067AE 0010FC5E LW V0, 16(S8) -BFD067B2 0C005042 ORI V0, V0, 3072 -BFD067B4 0C00 NOP -BFD067B6 0C82 MOVE A0, V0 -BFD067B8 4E4677E8 JALS vPortSetCP0Status -BFD067BA 4E46 ADDIU S2, S2, 3 -BFD067BC 0C00 NOP -3569: -3570: if( xSchedulerRunning != pdFALSE ) -BFD067BE 8044FC5C LW V0, -32700(GP) -BFD067C2 001940E2 BEQZC V0, 0xBFD067F8 -3571: { -3572: ( pxCurrentTCB->uxCriticalNesting )++; -BFD067C6 8030FC5C LW V0, -32720(GP) -BFD067CA 69AF LW V1, 60(V0) -BFD067CC 6DB0 ADDIU V1, V1, 1 -BFD067CE E9AF SW V1, 60(V0) -3573: -3574: /* This is not the interrupt safe version of the enter critical -3575: function so assert() if it is being called from an interrupt -3576: context. Only API functions that end in "FromISR" can be used in an -3577: interrupt. Only assert if the critical nesting count is 1 to -3578: protect against recursive calls if the assert function also uses a -3579: critical section. */ -3580: if( pxCurrentTCB->uxCriticalNesting == 1 ) -BFD067D0 8030FC5C LW V0, -32720(GP) -BFD067D4 69AF LW V1, 60(V0) -BFD067D6 ED01 LI V0, 1 -BFD067D8 000EB443 BNE V1, V0, 0xBFD067F8 -BFD067DA 0C00000E SLL ZERO, T6, 1 -BFD067DC 0C00 NOP -3581: { -3582: portASSERT_IF_IN_ISR(); -BFD067DE 8014FC5C LW V0, -32748(GP) -BFD067E2 000940E2 BEQZC V0, 0xBFD067F8 -BFD067E6 BFD141A2 LUI V0, 0xBFD1 -BFD067E8 3082BFD1 LDC1 F30, 12418(S1) -BFD067EA 98103082 ADDIU A0, V0, -26608 -BFD067EC 30A09810 SWC1 F0, 12448(S0) -BFD067EE 0DFE30A0 ADDIU A1, ZERO, 3582 -BFD067F0 0DFE MOVE T7, S8 -BFD067F2 4B7E77E8 JALS vAssertCalled -BFD067F4 4B7E LW K1, 120(SP) -BFD067F6 0C00 NOP -3583: } -3584: -3585: } -3586: else -3587: { -3588: mtCOVERAGE_TEST_MARKER(); -3589: } -3590: } -BFD067F8 0FBE MOVE SP, S8 -BFD067FA 4BE7 LW RA, 28(SP) -BFD067FC 4BC6 LW S8, 24(SP) -BFD067FE 4C11 ADDIU SP, SP, 32 -BFD06800 459F JR16 RA -BFD06802 0C00 NOP -3591: -3592: #endif /* portCRITICAL_NESTING_IN_TCB */ -3593: /*-----------------------------------------------------------*/ -3594: -3595: #if ( portCRITICAL_NESTING_IN_TCB == 1 ) -3596: -3597: void vTaskExitCritical( void ) -3598: { -BFD08154 4FF1 ADDIU SP, SP, -32 -BFD08156 CBE7 SW RA, 28(SP) -BFD08158 CBC6 SW S8, 24(SP) -BFD0815A 0FDD MOVE S8, SP -3599: if( xSchedulerRunning != pdFALSE ) -BFD0815C 8044FC5C LW V0, -32700(GP) -BFD08160 002240E2 BEQZC V0, 0xBFD081A8 -3600: { -3601: if( pxCurrentTCB->uxCriticalNesting > 0U ) -BFD08164 8030FC5C LW V0, -32720(GP) -BFD08168 692F LW V0, 60(V0) -BFD0816A 001D40E2 BEQZC V0, 0xBFD081A8 -3602: { -3603: ( pxCurrentTCB->uxCriticalNesting )--; -BFD0816E 8030FC5C LW V0, -32720(GP) -BFD08172 69AF LW V1, 60(V0) -BFD08174 6DBE ADDIU V1, V1, -1 -BFD08176 E9AF SW V1, 60(V0) -3604: -3605: if( pxCurrentTCB->uxCriticalNesting == 0U ) -BFD08178 8030FC5C LW V0, -32720(GP) -BFD0817C 692F LW V0, 60(V0) -BFD0817E 001340A2 BNEZC V0, 0xBFD081A8 -3606: { -3607: portENABLE_INTERRUPTS(); -BFD08182 4E3677E8 JALS ulPortGetCP0Status -BFD08184 4E36 ADDIU S1, S1, -5 -BFD08186 0C00 NOP -BFD08188 0010F85E SW V0, 16(S8) -BFD0818C 0010FC7E LW V1, 16(S8) -BFD08190 FFFE41A2 LUI V0, 0xFFFE -BFD08192 5042FFFE LW RA, 20546(S8) -BFD08194 03FF5042 ORI V0, V0, 1023 -BFD08198 4493 AND16 V0, V1 -BFD0819A 0010F85E SW V0, 16(S8) -BFD0819E 0010FC9E LW A0, 16(S8) -BFD081A2 4E4677E8 JALS vPortSetCP0Status -BFD081A4 4E46 ADDIU S2, S2, 3 -BFD081A6 0C00 NOP -3608: } -3609: else -3610: { -3611: mtCOVERAGE_TEST_MARKER(); -3612: } -3613: } -3614: else -3615: { -3616: mtCOVERAGE_TEST_MARKER(); -3617: } -3618: } -3619: else -3620: { -3621: mtCOVERAGE_TEST_MARKER(); -3622: } -3623: } -BFD081A8 0FBE MOVE SP, S8 -BFD081AA 4BE7 LW RA, 28(SP) -BFD081AC 4BC6 LW S8, 24(SP) -BFD081AE 4C11 ADDIU SP, SP, 32 -BFD081B0 459F JR16 RA -BFD081B2 0C00 NOP -3624: -3625: #endif /* portCRITICAL_NESTING_IN_TCB */ -3626: /*-----------------------------------------------------------*/ -3627: -3628: #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) -3629: -3630: static char *prvWriteNameToBuffer( char *pcBuffer, const char *pcTaskName ) -3631: { -3632: BaseType_t x; -3633: -3634: /* Start by copying the entire string. */ -3635: strcpy( pcBuffer, pcTaskName ); -3636: -3637: /* Pad the end of the string with spaces to ensure columns line up when -3638: printed out. */ -3639: for( x = strlen( pcBuffer ); x < ( configMAX_TASK_NAME_LEN - 1 ); x++ ) -3640: { -3641: pcBuffer[ x ] = ' '; -3642: } -3643: -3644: /* Terminate. */ -3645: pcBuffer[ x ] = 0x00; -3646: -3647: /* Return the new end of string. */ -3648: return &( pcBuffer[ x ] ); -3649: } -3650: -3651: #endif /* ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) */ -3652: /*-----------------------------------------------------------*/ -3653: -3654: #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) -3655: -3656: void vTaskList( char * pcWriteBuffer ) -3657: { -3658: TaskStatus_t *pxTaskStatusArray; -3659: volatile UBaseType_t uxArraySize, x; -3660: char cStatus; -3661: -3662: /* -3663: * PLEASE NOTE: -3664: * -3665: * This function is provided for convenience only, and is used by many -3666: * of the demo applications. Do not consider it to be part of the -3667: * scheduler. -3668: * -3669: * vTaskList() calls uxTaskGetSystemState(), then formats part of the -3670: * uxTaskGetSystemState() output into a human readable table that -3671: * displays task names, states and stack usage. -3672: * -3673: * vTaskList() has a dependency on the sprintf() C library function that -3674: * might bloat the code size, use a lot of stack, and provide different -3675: * results on different platforms. An alternative, tiny, third party, -3676: * and limited functionality implementation of sprintf() is provided in -3677: * many of the FreeRTOS/Demo sub-directories in a file called -3678: * printf-stdarg.c (note printf-stdarg.c does not provide a full -3679: * snprintf() implementation!). -3680: * -3681: * It is recommended that production systems call uxTaskGetSystemState() -3682: * directly to get access to raw stats data, rather than indirectly -3683: * through a call to vTaskList(). -3684: */ -3685: -3686: -3687: /* Make sure the write buffer does not contain a string. */ -3688: *pcWriteBuffer = 0x00; -3689: -3690: /* Take a snapshot of the number of tasks in case it changes while this -3691: function is executing. */ -3692: uxArraySize = uxCurrentNumberOfTasks; -3693: -3694: /* Allocate an array index for each task. */ -3695: pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); -3696: -3697: if( pxTaskStatusArray != NULL ) -3698: { -3699: /* Generate the (binary) data. */ -3700: uxArraySize = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, NULL ); -3701: -3702: /* Create a human readable table from the binary data. */ -3703: for( x = 0; x < uxArraySize; x++ ) -3704: { -3705: switch( pxTaskStatusArray[ x ].eCurrentState ) -3706: { -3707: case eReady: cStatus = tskREADY_CHAR; -3708: break; -3709: -3710: case eBlocked: cStatus = tskBLOCKED_CHAR; -3711: break; -3712: -3713: case eSuspended: cStatus = tskSUSPENDED_CHAR; -3714: break; -3715: -3716: case eDeleted: cStatus = tskDELETED_CHAR; -3717: break; -3718: -3719: default: /* Should not get here, but it is included -3720: to prevent static checking errors. */ -3721: cStatus = 0x00; -3722: break; -3723: } -3724: -3725: /* Write the task name to the string, padding with spaces so it -3726: can be printed in tabular form more easily. */ -3727: pcWriteBuffer = prvWriteNameToBuffer( pcWriteBuffer, pxTaskStatusArray[ x ].pcTaskName ); -3728: -3729: /* Write the rest of the string. */ -3730: sprintf( pcWriteBuffer, "\t%c\t%u\t%u\t%u\r\n", cStatus, ( unsigned int ) pxTaskStatusArray[ x ].uxCurrentPriority, ( unsigned int ) pxTaskStatusArray[ x ].usStackHighWaterMark, ( unsigned int ) pxTaskStatusArray[ x ].xTaskNumber ); -3731: pcWriteBuffer += strlen( pcWriteBuffer ); -3732: } -3733: -3734: /* Free the array again. */ -3735: vPortFree( pxTaskStatusArray ); -3736: } -3737: else -3738: { -3739: mtCOVERAGE_TEST_MARKER(); -3740: } -3741: } -3742: -3743: #endif /* ( ( configUSE_TRACE_FACILITY == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */ -3744: /*----------------------------------------------------------*/ -3745: -3746: #if ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) -3747: -3748: void vTaskGetRunTimeStats( char *pcWriteBuffer ) -3749: { -3750: TaskStatus_t *pxTaskStatusArray; -3751: volatile UBaseType_t uxArraySize, x; -3752: uint32_t ulTotalTime, ulStatsAsPercentage; -3753: -3754: #if( configUSE_TRACE_FACILITY != 1 ) -3755: { -3756: #error configUSE_TRACE_FACILITY must also be set to 1 in FreeRTOSConfig.h to use vTaskGetRunTimeStats(). -3757: } -3758: #endif -3759: -3760: /* -3761: * PLEASE NOTE: -3762: * -3763: * This function is provided for convenience only, and is used by many -3764: * of the demo applications. Do not consider it to be part of the -3765: * scheduler. -3766: * -3767: * vTaskGetRunTimeStats() calls uxTaskGetSystemState(), then formats part -3768: * of the uxTaskGetSystemState() output into a human readable table that -3769: * displays the amount of time each task has spent in the Running state -3770: * in both absolute and percentage terms. -3771: * -3772: * vTaskGetRunTimeStats() has a dependency on the sprintf() C library -3773: * function that might bloat the code size, use a lot of stack, and -3774: * provide different results on different platforms. An alternative, -3775: * tiny, third party, and limited functionality implementation of -3776: * sprintf() is provided in many of the FreeRTOS/Demo sub-directories in -3777: * a file called printf-stdarg.c (note printf-stdarg.c does not provide -3778: * a full snprintf() implementation!). -3779: * -3780: * It is recommended that production systems call uxTaskGetSystemState() -3781: * directly to get access to raw stats data, rather than indirectly -3782: * through a call to vTaskGetRunTimeStats(). -3783: */ -3784: -3785: /* Make sure the write buffer does not contain a string. */ -3786: *pcWriteBuffer = 0x00; -3787: -3788: /* Take a snapshot of the number of tasks in case it changes while this -3789: function is executing. */ -3790: uxArraySize = uxCurrentNumberOfTasks; -3791: -3792: /* Allocate an array index for each task. */ -3793: pxTaskStatusArray = pvPortMalloc( uxCurrentNumberOfTasks * sizeof( TaskStatus_t ) ); -3794: -3795: if( pxTaskStatusArray != NULL ) -3796: { -3797: /* Generate the (binary) data. */ -3798: uxArraySize = uxTaskGetSystemState( pxTaskStatusArray, uxArraySize, &ulTotalTime ); -3799: -3800: /* For percentage calculations. */ -3801: ulTotalTime /= 100UL; -3802: -3803: /* Avoid divide by zero errors. */ -3804: if( ulTotalTime > 0 ) -3805: { -3806: /* Create a human readable table from the binary data. */ -3807: for( x = 0; x < uxArraySize; x++ ) -3808: { -3809: /* What percentage of the total run time has the task used? -3810: This will always be rounded down to the nearest integer. -3811: ulTotalRunTimeDiv100 has already been divided by 100. */ -3812: ulStatsAsPercentage = pxTaskStatusArray[ x ].ulRunTimeCounter / ulTotalTime; -3813: -3814: /* Write the task name to the string, padding with -3815: spaces so it can be printed in tabular form more -3816: easily. */ -3817: pcWriteBuffer = prvWriteNameToBuffer( pcWriteBuffer, pxTaskStatusArray[ x ].pcTaskName ); -3818: -3819: if( ulStatsAsPercentage > 0UL ) -3820: { -3821: #ifdef portLU_PRINTF_SPECIFIER_REQUIRED -3822: { -3823: sprintf( pcWriteBuffer, "\t%lu\t\t%lu%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter, ulStatsAsPercentage ); -3824: } -3825: #else -3826: { -3827: /* sizeof( int ) == sizeof( long ) so a smaller -3828: printf() library can be used. */ -3829: sprintf( pcWriteBuffer, "\t%u\t\t%u%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter, ( unsigned int ) ulStatsAsPercentage ); -3830: } -3831: #endif -3832: } -3833: else -3834: { -3835: /* If the percentage is zero here then the task has -3836: consumed less than 1% of the total run time. */ -3837: #ifdef portLU_PRINTF_SPECIFIER_REQUIRED -3838: { -3839: sprintf( pcWriteBuffer, "\t%lu\t\t<1%%\r\n", pxTaskStatusArray[ x ].ulRunTimeCounter ); -3840: } -3841: #else -3842: { -3843: /* sizeof( int ) == sizeof( long ) so a smaller -3844: printf() library can be used. */ -3845: sprintf( pcWriteBuffer, "\t%u\t\t<1%%\r\n", ( unsigned int ) pxTaskStatusArray[ x ].ulRunTimeCounter ); -3846: } -3847: #endif -3848: } -3849: -3850: pcWriteBuffer += strlen( pcWriteBuffer ); -3851: } -3852: } -3853: else -3854: { -3855: mtCOVERAGE_TEST_MARKER(); -3856: } -3857: -3858: /* Free the array again. */ -3859: vPortFree( pxTaskStatusArray ); -3860: } -3861: else -3862: { -3863: mtCOVERAGE_TEST_MARKER(); -3864: } -3865: } -3866: -3867: #endif /* ( ( configGENERATE_RUN_TIME_STATS == 1 ) && ( configUSE_STATS_FORMATTING_FUNCTIONS > 0 ) ) */ -3868: /*-----------------------------------------------------------*/ -3869: -3870: TickType_t uxTaskResetEventItemValue( void ) -3871: { -BFD0990C 4FF9 ADDIU SP, SP, -16 -BFD0990E CBC3 SW S8, 12(SP) -BFD09910 0FDD MOVE S8, SP -3872: TickType_t uxReturn; -3873: -3874: uxReturn = listGET_LIST_ITEM_VALUE( &( pxCurrentTCB->xEventListItem ) ); -BFD09912 8030FC5C LW V0, -32720(GP) -BFD09916 6926 LW V0, 24(V0) -BFD09918 0000F85E SW V0, 0(S8) -3875: -3876: /* Reset the event list item to its normal value - so it can be used with -3877: queues and semaphores. */ -3878: listSET_LIST_ITEM_VALUE( &( pxCurrentTCB->xEventListItem ), ( ( TickType_t ) configMAX_PRIORITIES - ( TickType_t ) pxCurrentTCB->uxPriority ) ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD0991C 8030FC5C LW V0, -32720(GP) -BFD09920 8030FC7C LW V1, -32720(GP) -BFD09924 69BB LW V1, 44(V1) -BFD09926 EE05 LI A0, 5 -BFD09928 05B9 SUBU V1, A0, V1 -BFD0992A E9A6 SW V1, 24(V0) -3879: -3880: return uxReturn; -BFD0992C 0000FC5E LW V0, 0(S8) -3881: } -BFD09930 0FBE MOVE SP, S8 -BFD09932 4BC3 LW S8, 12(SP) -BFD09934 4C09 ADDIU SP, SP, 16 -BFD09936 459F JR16 RA -BFD09938 0C00 NOP -3882: /*-----------------------------------------------------------*/ -3883: -3884: #if ( configUSE_MUTEXES == 1 ) -3885: -3886: void *pvTaskIncrementMutexHeldCount( void ) -3887: { -BFD099C0 4FB0 ADDIU SP, SP, -8 -BFD099C2 CBC1 SW S8, 4(SP) -BFD099C4 0FDD MOVE S8, SP -3888: /* If xSemaphoreCreateMutex() is called before any tasks have been created -3889: then pxCurrentTCB will be NULL. */ -3890: if( pxCurrentTCB != NULL ) -BFD099C6 8030FC5C LW V0, -32720(GP) -BFD099CA 000740E2 BEQZC V0, 0xBFD099DC -3891: { -3892: ( pxCurrentTCB->uxMutexesHeld )++; -BFD099CE 8030FC5C LW V0, -32720(GP) -BFD099D2 0044FC62 LW V1, 68(V0) -BFD099D6 6DB0 ADDIU V1, V1, 1 -BFD099D8 0044F862 SW V1, 68(V0) -3893: } -3894: -3895: return pxCurrentTCB; -BFD099DC 8030FC5C LW V0, -32720(GP) -3896: } -BFD099E0 0FBE MOVE SP, S8 -BFD099E2 4BC1 LW S8, 4(SP) -BFD099E4 4C05 ADDIU SP, SP, 8 -BFD099E6 459F JR16 RA -BFD099E8 0C00 NOP -3897: -3898: #endif /* configUSE_MUTEXES */ -3899: /*-----------------------------------------------------------*/ -3900: -3901: #if( configUSE_TASK_NOTIFICATIONS == 1 ) -3902: -3903: uint32_t ulTaskNotifyTake( BaseType_t xClearCountOnExit, TickType_t xTicksToWait ) -3904: { -BFD039AC 4FED ADDIU SP, SP, -40 -BFD039AE CBE9 SW RA, 36(SP) -BFD039B0 CBC8 SW S8, 32(SP) -BFD039B2 0FDD MOVE S8, SP -BFD039B4 0028F89E SW A0, 40(S8) -BFD039B8 002CF8BE SW A1, 44(S8) -3905: TickType_t xTimeToWake; -3906: uint32_t ulReturn; -3907: -3908: taskENTER_CRITICAL(); -BFD039BC 33B877E8 JALS vTaskEnterCritical -BFD039BE 0C0033B8 ADDIU SP, T8, 3072 -BFD039C0 0C00 NOP -3909: { -3910: /* Only block if the notification count is not already non-zero. */ -3911: if( pxCurrentTCB->ulNotifiedValue == 0UL ) -BFD039C2 8030FC5C LW V0, -32720(GP) -BFD039C6 0048FC42 LW V0, 72(V0) -BFD039CA 004D40A2 BNEZC V0, 0xBFD03A68 -3912: { -3913: /* Mark this task as waiting for a notification. */ -3914: pxCurrentTCB->eNotifyState = eWaitingNotification; -BFD039CE 8030FC5C LW V0, -32720(GP) -BFD039D2 ED81 LI V1, 1 -BFD039D4 004CF862 SW V1, 76(V0) -3915: -3916: if( xTicksToWait > ( TickType_t ) 0 ) -BFD039D8 002CFC5E LW V0, 44(S8) -BFD039DC 004440E2 BEQZC V0, 0xBFD03A68 -3917: { -3918: /* The task is going to block. First it must be removed -3919: from the ready list. */ -3920: if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD039E0 8030FC5C LW V0, -32720(GP) -BFD039E4 6D22 ADDIU V0, V0, 4 -BFD039E6 0C82 MOVE A0, V0 -BFD039E8 00C877E8 JALS uxListRemove -BFD039EA 0C0000C8 SLL A2, T0, 1 -BFD039EC 0C00 NOP -BFD039EE 000C40A2 BNEZC V0, 0xBFD03A0A -3921: { -3922: /* The current task must be in a ready list, so there is -3923: no need to check, and the port reset macro can be called -3924: directly. */ -3925: portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); -BFD039F2 8030FC5C LW V0, -32720(GP) -BFD039F6 692B LW V0, 44(V0) -BFD039F8 ED81 LI V1, 1 -BFD039FA 10100062 SLLV V0, V0, V1 -BFD039FC 441A1010 ADDI ZERO, S0, 17434 -BFD039FE 441A NOT16 V1, V0 -BFD03A00 8040FC5C LW V0, -32704(GP) -BFD03A04 4493 AND16 V0, V1 -BFD03A06 8040F85C SW V0, -32704(GP) -3926: } -3927: else -3928: { -3929: mtCOVERAGE_TEST_MARKER(); -3930: } -3931: -3932: #if ( INCLUDE_vTaskSuspend == 1 ) -3933: { -3934: if( xTicksToWait == portMAX_DELAY ) -BFD03A0A 002CFC7E LW V1, 44(S8) -BFD03A0E ED7F LI V0, -1 -BFD03A10 000EB443 BNE V1, V0, 0xBFD03A30 -BFD03A12 0C00000E SLL ZERO, T6, 1 -BFD03A14 0C00 NOP -3935: { -3936: /* Add the task to the suspended task list instead -3937: of a delayed task list to ensure the task is not -3938: woken by a timing event. It will block -3939: indefinitely. */ -3940: vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) ); -BFD03A16 8030FC5C LW V0, -32720(GP) -BFD03A1A 6D22 ADDIU V0, V0, 4 -BFD03A1C BFD241A3 LUI V1, 0xBFD2 -BFD03A1E 3083BFD2 LDC1 F30, 12419(S2) -BFD03A20 80E43083 ADDIU A0, V1, -32540 -BFD03A24 0CA2 MOVE A1, V0 -BFD03A26 3E4A77E8 JALS vListInsertEnd -BFD03A28 0C003E4A LH S2, 3072(T2) -BFD03A2A 0C00 NOP -BFD03A2C CC0D B 0xBFD03A48 -BFD03A2E 0C00 NOP -3941: } -3942: else -3943: { -3944: /* Calculate the time at which the task should be -3945: woken if no notification events occur. This may -3946: overflow but this doesn't matter, the scheduler will -3947: handle it. */ -3948: xTimeToWake = xTickCount + xTicksToWait; -BFD03A30 803CFC7C LW V1, -32708(GP) -BFD03A34 002CFC5E LW V0, 44(S8) -BFD03A38 0526 ADDU V0, V1, V0 -BFD03A3A 0010F85E SW V0, 16(S8) -3949: prvAddCurrentTaskToDelayedList( xTimeToWake ); -BFD03A3E 0010FC9E LW A0, 16(S8) -BFD03A42 373477E8 JALS prvAddCurrentTaskToDelayedList -BFD03A44 0C003734 LHU T9, 3072(S4) -BFD03A46 0C00 NOP -3950: } -3951: } -3952: #else /* INCLUDE_vTaskSuspend */ -3953: { -3954: /* Calculate the time at which the task should be -3955: woken if the event does not occur. This may -3956: overflow but this doesn't matter, the scheduler will -3957: handle it. */ -3958: xTimeToWake = xTickCount + xTicksToWait; -3959: prvAddCurrentTaskToDelayedList( xTimeToWake ); -3960: } -3961: #endif /* INCLUDE_vTaskSuspend */ -3962: -3963: /* All ports are written to allow a yield in a critical -3964: section (some will yield immediately, others wait until the -3965: critical section exits) - but it is not something that -3966: application code should ever do. */ -3967: portYIELD_WITHIN_API(); -BFD03A48 4E5677E8 JALS ulPortGetCP0Cause -BFD03A4A 4E56 ADDIU S2, S2, -5 -BFD03A4C 0C00 NOP -BFD03A4E 0014F85E SW V0, 20(S8) -BFD03A52 0014FC5E LW V0, 20(S8) -BFD03A56 01005042 ORI V0, V0, 256 -BFD03A5A 0014F85E SW V0, 20(S8) -BFD03A5E 0014FC9E LW A0, 20(S8) -BFD03A62 4E6677E8 JALS vPortSetCP0Cause -BFD03A64 4E66 ADDIU S3, S3, 3 -BFD03A66 0C00 NOP -3968: } -3969: else -3970: { -3971: mtCOVERAGE_TEST_MARKER(); -3972: } -3973: } -3974: else -3975: { -3976: mtCOVERAGE_TEST_MARKER(); -3977: } -3978: } -3979: taskEXIT_CRITICAL(); -BFD03A68 40AA77E8 JALS vTaskExitCritical -BFD03A6A 0C0040AA BNEZC T2, 0xBFD0526E -BFD03A6C 0C00 NOP -3980: -3981: taskENTER_CRITICAL(); -BFD03A6E 33B877E8 JALS vTaskEnterCritical -BFD03A70 0C0033B8 ADDIU SP, T8, 3072 -BFD03A72 0C00 NOP -3982: { -3983: ulReturn = pxCurrentTCB->ulNotifiedValue; -BFD03A74 8030FC5C LW V0, -32720(GP) -BFD03A78 0048FC42 LW V0, 72(V0) -BFD03A7C 0018F85E SW V0, 24(S8) -3984: -3985: if( ulReturn != 0UL ) -BFD03A80 0018FC5E LW V0, 24(S8) -BFD03A84 001140E2 BEQZC V0, 0xBFD03AAA -3986: { -3987: if( xClearCountOnExit != pdFALSE ) -BFD03A88 0028FC5E LW V0, 40(S8) -BFD03A8C 000640E2 BEQZC V0, 0xBFD03A9C -3988: { -3989: pxCurrentTCB->ulNotifiedValue = 0UL; -BFD03A90 8030FC5C LW V0, -32720(GP) -BFD03A94 0048F802 SW ZERO, 72(V0) -BFD03A98 CC08 B 0xBFD03AAA -BFD03A9A 0C00 NOP -3990: } -3991: else -3992: { -3993: ( pxCurrentTCB->ulNotifiedValue )--; -BFD03A9C 8030FC5C LW V0, -32720(GP) -BFD03AA0 0048FC62 LW V1, 72(V0) -BFD03AA4 6DBE ADDIU V1, V1, -1 -BFD03AA6 0048F862 SW V1, 72(V0) -3994: } -3995: } -3996: else -3997: { -3998: mtCOVERAGE_TEST_MARKER(); -3999: } -4000: -4001: pxCurrentTCB->eNotifyState = eNotWaitingNotification; -BFD03AAA 8030FC5C LW V0, -32720(GP) -BFD03AAE 004CF802 SW ZERO, 76(V0) -4002: } -4003: taskEXIT_CRITICAL(); -BFD03AB2 40AA77E8 JALS vTaskExitCritical -BFD03AB4 0C0040AA BNEZC T2, 0xBFD052B8 -BFD03AB6 0C00 NOP -4004: -4005: return ulReturn; -BFD03AB8 0018FC5E LW V0, 24(S8) -4006: } -BFD03ABC 0FBE MOVE SP, S8 -BFD03ABE 4BE9 LW RA, 36(SP) -BFD03AC0 4BC8 LW S8, 32(SP) -BFD03AC2 4C15 ADDIU SP, SP, 40 -BFD03AC4 459F JR16 RA -BFD03AC6 0C00 NOP -4007: -4008: #endif /* configUSE_TASK_NOTIFICATIONS */ -4009: /*-----------------------------------------------------------*/ -4010: -4011: #if( configUSE_TASK_NOTIFICATIONS == 1 ) -4012: -4013: BaseType_t xTaskNotifyWait( uint32_t ulBitsToClearOnEntry, uint32_t ulBitsToClearOnExit, uint32_t *pulNotificationValue, TickType_t xTicksToWait ) -4014: { -BFD02C6C 4FED ADDIU SP, SP, -40 -BFD02C6E CBE9 SW RA, 36(SP) -BFD02C70 CBC8 SW S8, 32(SP) -BFD02C72 0FDD MOVE S8, SP -BFD02C74 0028F89E SW A0, 40(S8) -BFD02C78 002CF8BE SW A1, 44(S8) -BFD02C7C 0030F8DE SW A2, 48(S8) -BFD02C80 0034F8FE SW A3, 52(S8) -4015: TickType_t xTimeToWake; -4016: BaseType_t xReturn; -4017: -4018: taskENTER_CRITICAL(); -BFD02C84 33B877E8 JALS vTaskEnterCritical -BFD02C86 0C0033B8 ADDIU SP, T8, 3072 -BFD02C88 0C00 NOP -4019: { -4020: /* Only block if a notification is not already pending. */ -4021: if( pxCurrentTCB->eNotifyState != eNotified ) -BFD02C8A 8030FC5C LW V0, -32720(GP) -BFD02C8E 004CFC62 LW V1, 76(V0) -BFD02C92 ED02 LI V0, 2 -BFD02C94 00589443 BEQ V1, V0, 0xBFD02D48 -BFD02C96 0C000058 SLL V0, T8, 1 -BFD02C98 0C00 NOP -4022: { -4023: /* Clear bits in the task's notification value as bits may get -4024: set by the notifying task or interrupt. This can be used to -4025: clear the value to zero. */ -4026: pxCurrentTCB->ulNotifiedValue &= ~ulBitsToClearOnEntry; -BFD02C9A 8030FC5C LW V0, -32720(GP) -BFD02C9E 0048FC82 LW A0, 72(V0) -BFD02CA2 0028FC7E LW V1, 40(S8) -BFD02CA6 441B NOT16 V1, V1 -BFD02CA8 449C AND16 V1, A0 -BFD02CAA 0048F862 SW V1, 72(V0) -4027: -4028: /* Mark this task as waiting for a notification. */ -4029: pxCurrentTCB->eNotifyState = eWaitingNotification; -BFD02CAE 8030FC5C LW V0, -32720(GP) -BFD02CB2 ED81 LI V1, 1 -BFD02CB4 004CF862 SW V1, 76(V0) -4030: -4031: if( xTicksToWait > ( TickType_t ) 0 ) -BFD02CB8 0034FC5E LW V0, 52(S8) -BFD02CBC 004440E2 BEQZC V0, 0xBFD02D48 -4032: { -4033: /* The task is going to block. First it must be removed -4034: from the ready list. */ -4035: if( uxListRemove( &( pxCurrentTCB->xGenericListItem ) ) == ( UBaseType_t ) 0 ) -BFD02CC0 8030FC5C LW V0, -32720(GP) -BFD02CC4 6D22 ADDIU V0, V0, 4 -BFD02CC6 0C82 MOVE A0, V0 -BFD02CC8 00C877E8 JALS uxListRemove -BFD02CCA 0C0000C8 SLL A2, T0, 1 -BFD02CCC 0C00 NOP -BFD02CCE 000C40A2 BNEZC V0, 0xBFD02CEA -4036: { -4037: /* The current task must be in a ready list, so there is -4038: no need to check, and the port reset macro can be called -4039: directly. */ -4040: portRESET_READY_PRIORITY( pxCurrentTCB->uxPriority, uxTopReadyPriority ); -BFD02CD2 8030FC5C LW V0, -32720(GP) -BFD02CD6 692B LW V0, 44(V0) -BFD02CD8 ED81 LI V1, 1 -BFD02CDA 10100062 SLLV V0, V0, V1 -BFD02CDC 441A1010 ADDI ZERO, S0, 17434 -BFD02CDE 441A NOT16 V1, V0 -BFD02CE0 8040FC5C LW V0, -32704(GP) -BFD02CE4 4493 AND16 V0, V1 -BFD02CE6 8040F85C SW V0, -32704(GP) -4041: } -4042: else -4043: { -4044: mtCOVERAGE_TEST_MARKER(); -4045: } -4046: -4047: #if ( INCLUDE_vTaskSuspend == 1 ) -4048: { -4049: if( xTicksToWait == portMAX_DELAY ) -BFD02CEA 0034FC7E LW V1, 52(S8) -BFD02CEE ED7F LI V0, -1 -BFD02CF0 000EB443 BNE V1, V0, 0xBFD02D10 -BFD02CF2 0C00000E SLL ZERO, T6, 1 -BFD02CF4 0C00 NOP -4050: { -4051: /* Add the task to the suspended task list instead -4052: of a delayed task list to ensure the task is not -4053: woken by a timing event. It will block -4054: indefinitely. */ -4055: vListInsertEnd( &xSuspendedTaskList, &( pxCurrentTCB->xGenericListItem ) ); -BFD02CF6 8030FC5C LW V0, -32720(GP) -BFD02CFA 6D22 ADDIU V0, V0, 4 -BFD02CFC BFD241A3 LUI V1, 0xBFD2 -BFD02CFE 3083BFD2 LDC1 F30, 12419(S2) -BFD02D00 80E43083 ADDIU A0, V1, -32540 -BFD02D04 0CA2 MOVE A1, V0 -BFD02D06 3E4A77E8 JALS vListInsertEnd -BFD02D08 0C003E4A LH S2, 3072(T2) -BFD02D0A 0C00 NOP -BFD02D0C CC0D B 0xBFD02D28 -BFD02D0E 0C00 NOP -4056: } -4057: else -4058: { -4059: /* Calculate the time at which the task should be -4060: woken if no notification events occur. This may -4061: overflow but this doesn't matter, the scheduler will -4062: handle it. */ -4063: xTimeToWake = xTickCount + xTicksToWait; -BFD02D10 803CFC7C LW V1, -32708(GP) -BFD02D14 0034FC5E LW V0, 52(S8) -BFD02D18 0526 ADDU V0, V1, V0 -BFD02D1A 0014F85E SW V0, 20(S8) -4064: prvAddCurrentTaskToDelayedList( xTimeToWake ); -BFD02D1E 0014FC9E LW A0, 20(S8) -BFD02D22 373477E8 JALS prvAddCurrentTaskToDelayedList -BFD02D24 0C003734 LHU T9, 3072(S4) -BFD02D26 0C00 NOP -4065: } -4066: } -4067: #else /* INCLUDE_vTaskSuspend */ -4068: { -4069: /* Calculate the time at which the task should be -4070: woken if the event does not occur. This may -4071: overflow but this doesn't matter, the scheduler will -4072: handle it. */ -4073: xTimeToWake = xTickCount + xTicksToWait; -4074: prvAddCurrentTaskToDelayedList( xTimeToWake ); -4075: } -4076: #endif /* INCLUDE_vTaskSuspend */ -4077: -4078: /* All ports are written to allow a yield in a critical -4079: section (some will yield immediately, others wait until the -4080: critical section exits) - but it is not something that -4081: application code should ever do. */ -4082: portYIELD_WITHIN_API(); -BFD02D28 4E5677E8 JALS ulPortGetCP0Cause -BFD02D2A 4E56 ADDIU S2, S2, -5 -BFD02D2C 0C00 NOP -BFD02D2E 0018F85E SW V0, 24(S8) -BFD02D32 0018FC5E LW V0, 24(S8) -BFD02D36 01005042 ORI V0, V0, 256 -BFD02D3A 0018F85E SW V0, 24(S8) -BFD02D3E 0018FC9E LW A0, 24(S8) -BFD02D42 4E6677E8 JALS vPortSetCP0Cause -BFD02D44 4E66 ADDIU S3, S3, 3 -BFD02D46 0C00 NOP -4083: } -4084: else -4085: { -4086: mtCOVERAGE_TEST_MARKER(); -4087: } -4088: } -4089: else -4090: { -4091: mtCOVERAGE_TEST_MARKER(); -4092: } -4093: } -4094: taskEXIT_CRITICAL(); -BFD02D48 40AA77E8 JALS vTaskExitCritical -BFD02D4A 0C0040AA BNEZC T2, 0xBFD0454E -BFD02D4C 0C00 NOP -4095: -4096: taskENTER_CRITICAL(); -BFD02D4E 33B877E8 JALS vTaskEnterCritical -BFD02D50 0C0033B8 ADDIU SP, T8, 3072 -BFD02D52 0C00 NOP -4097: { -4098: if( pulNotificationValue != NULL ) -BFD02D54 0030FC5E LW V0, 48(S8) -BFD02D58 000740E2 BEQZC V0, 0xBFD02D6A -4099: { -4100: /* Output the current notification value, which may or may not -4101: have changed. */ -4102: *pulNotificationValue = pxCurrentTCB->ulNotifiedValue; -BFD02D5C 8030FC5C LW V0, -32720(GP) -BFD02D60 0048FC62 LW V1, 72(V0) -BFD02D64 0030FC5E LW V0, 48(S8) -BFD02D68 E9A0 SW V1, 0(V0) -4103: } -4104: -4105: /* If eNotifyValue is set then either the task never entered the -4106: blocked state (because a notification was already pending) or the -4107: task unblocked because of a notification. Otherwise the task -4108: unblocked because of a timeout. */ -4109: if( pxCurrentTCB->eNotifyState == eWaitingNotification ) -BFD02D6A 8030FC5C LW V0, -32720(GP) -BFD02D6E 004CFC62 LW V1, 76(V0) -BFD02D72 ED01 LI V0, 1 -BFD02D74 0005B443 BNE V1, V0, 0xBFD02D82 -BFD02D76 0C000005 SLL ZERO, A1, 1 -BFD02D78 0C00 NOP -4110: { -4111: /* A notification was not received. */ -4112: xReturn = pdFALSE; -BFD02D7A 0010F81E SW ZERO, 16(S8) -BFD02D7E CC0E B 0xBFD02D9C -BFD02D80 0C00 NOP -4113: } -4114: else -4115: { -4116: /* A notification was already pending or a notification was -4117: received while the task was waiting. */ -4118: pxCurrentTCB->ulNotifiedValue &= ~ulBitsToClearOnExit; -BFD02D82 8030FC5C LW V0, -32720(GP) -BFD02D86 0048FC82 LW A0, 72(V0) -BFD02D8A 002CFC7E LW V1, 44(S8) -BFD02D8E 441B NOT16 V1, V1 -BFD02D90 449C AND16 V1, A0 -BFD02D92 0048F862 SW V1, 72(V0) -4119: xReturn = pdTRUE; -BFD02D96 ED01 LI V0, 1 -BFD02D98 0010F85E SW V0, 16(S8) -4120: } -4121: -4122: pxCurrentTCB->eNotifyState = eNotWaitingNotification; -BFD02D9C 8030FC5C LW V0, -32720(GP) -BFD02DA0 004CF802 SW ZERO, 76(V0) -4123: } -4124: taskEXIT_CRITICAL(); -BFD02DA4 40AA77E8 JALS vTaskExitCritical -BFD02DA6 0C0040AA BNEZC T2, 0xBFD045AA -BFD02DA8 0C00 NOP -4125: -4126: return xReturn; -BFD02DAA 0010FC5E LW V0, 16(S8) -4127: } -BFD02DAE 0FBE MOVE SP, S8 -BFD02DB0 4BE9 LW RA, 36(SP) -BFD02DB2 4BC8 LW S8, 32(SP) -BFD02DB4 4C15 ADDIU SP, SP, 40 -BFD02DB6 459F JR16 RA -BFD02DB8 0C00 NOP -4128: -4129: #endif /* configUSE_TASK_NOTIFICATIONS */ -4130: /*-----------------------------------------------------------*/ -4131: -4132: #if( configUSE_TASK_NOTIFICATIONS == 1 ) -4133: -4134: BaseType_t xTaskGenericNotify( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, uint32_t *pulPreviousNotificationValue ) -4135: { -BFD01CE8 4FED ADDIU SP, SP, -40 -BFD01CEA CBE9 SW RA, 36(SP) -BFD01CEC CBC8 SW S8, 32(SP) -BFD01CEE 0FDD MOVE S8, SP -BFD01CF0 0028F89E SW A0, 40(S8) -BFD01CF4 002CF8BE SW A1, 44(S8) -BFD01CF8 0030F8DE SW A2, 48(S8) -BFD01CFC 0034F8FE SW A3, 52(S8) -4136: TCB_t * pxTCB; -4137: eNotifyValue eOriginalNotifyState; -4138: BaseType_t xReturn = pdPASS; -BFD01D00 ED01 LI V0, 1 -BFD01D02 0010F85E SW V0, 16(S8) -4139: -4140: configASSERT( xTaskToNotify ); -BFD01D06 0028FC5E LW V0, 40(S8) -BFD01D0A 000940A2 BNEZC V0, 0xBFD01D20 -BFD01D0E BFD141A2 LUI V0, 0xBFD1 -BFD01D10 3082BFD1 LDC1 F30, 12418(S1) -BFD01D12 98103082 ADDIU A0, V0, -26608 -BFD01D14 30A09810 SWC1 F0, 12448(S0) -BFD01D16 102C30A0 ADDIU A1, ZERO, 4140 -BFD01D18 77E8102C ADDI AT, T4, 30696 -BFD01D1A 4B7E77E8 JALS vAssertCalled -BFD01D1C 4B7E LW K1, 120(SP) -BFD01D1E 0C00 NOP -4141: pxTCB = ( TCB_t * ) xTaskToNotify; -BFD01D20 0028FC5E LW V0, 40(S8) -BFD01D24 0014F85E SW V0, 20(S8) -4142: -4143: taskENTER_CRITICAL(); -BFD01D28 33B877E8 JALS vTaskEnterCritical -BFD01D2A 0C0033B8 ADDIU SP, T8, 3072 -BFD01D2C 0C00 NOP -4144: { -4145: if( pulPreviousNotificationValue != NULL ) -BFD01D2E 0034FC5E LW V0, 52(S8) -BFD01D32 000740E2 BEQZC V0, 0xBFD01D44 -4146: { -4147: *pulPreviousNotificationValue = pxTCB->ulNotifiedValue; -BFD01D36 0014FC5E LW V0, 20(S8) -BFD01D3A 0048FC62 LW V1, 72(V0) -BFD01D3E 0034FC5E LW V0, 52(S8) -BFD01D42 E9A0 SW V1, 0(V0) -4148: } -4149: -4150: eOriginalNotifyState = pxTCB->eNotifyState; -BFD01D44 0014FC5E LW V0, 20(S8) -BFD01D48 004CFC42 LW V0, 76(V0) -BFD01D4C 0018F85E SW V0, 24(S8) -4151: -4152: pxTCB->eNotifyState = eNotified; -BFD01D50 0014FC5E LW V0, 20(S8) -BFD01D54 ED82 LI V1, 2 -BFD01D56 004CF862 SW V1, 76(V0) -4153: -4154: switch( eAction ) -BFD01D5A 0030FC5E LW V0, 48(S8) -BFD01D5E 0005B042 SLTIU V0, V0, 5 -BFD01D62 004840E2 BEQZC V0, 0xBFD01DF6 -BFD01D66 0030FC5E LW V0, 48(S8) -BFD01D6A 25A4 SLL V1, V0, 2 -BFD01D6C BFD041A2 LUI V0, 0xBFD0 -BFD01D6E 3042BFD0 LDC1 F30, 12354(S0) -BFD01D70 1D7C3042 ADDIU V0, V0, 7548 -BFD01D72 05261D7C LB T3, 1318(GP) -BFD01D74 0526 ADDU V0, V1, V0 -BFD01D76 6920 LW V0, 0(V0) -BFD01D78 45A2 JRC V0 -BFD01D7A 0C00 NOP -BFD01D7C BFD01DF5 LB T7, -16432(S5) -BFD01D7E 1D91BFD0 LDC1 F30, 7569(S0) -BFD01D80 BFD01D91 LB T4, -16432(S1) -BFD01D82 1DABBFD0 LDC1 F30, 7595(S0) -BFD01D84 BFD01DAB LB T5, -16432(T3) -BFD01D86 1DC1BFD0 LDC1 F30, 7617(S0) -BFD01D88 BFD01DC1 LB T6, -16432(AT) -BFD01D8A 1DD1BFD0 LDC1 F30, 7633(S0) -BFD01D8C BFD01DD1 LB T6, -16432(S1) -BFD01D8E FC5EBFD0 LDC1 F30, -930(S0) -4155: { -4156: case eSetBits : -4157: pxTCB->ulNotifiedValue |= ulValue; -BFD01D90 0014FC5E LW V0, 20(S8) -BFD01D94 0048FC62 LW V1, 72(V0) -BFD01D98 002CFC5E LW V0, 44(S8) -BFD01D9C 44DA OR16 V1, V0 -BFD01D9E 0014FC5E LW V0, 20(S8) -BFD01DA2 0048F862 SW V1, 72(V0) -4158: break; -BFD01DA6 CC27 B 0xBFD01DF6 -BFD01DA8 0C00 NOP -4159: -4160: case eIncrement : -4161: ( pxTCB->ulNotifiedValue )++; -BFD01DAA 0014FC5E LW V0, 20(S8) -BFD01DAE 0048FC42 LW V0, 72(V0) -BFD01DB2 6DA0 ADDIU V1, V0, 1 -BFD01DB4 0014FC5E LW V0, 20(S8) -BFD01DB8 0048F862 SW V1, 72(V0) -4162: break; -BFD01DBC CC1C B 0xBFD01DF6 -BFD01DBE 0C00 NOP -4163: -4164: case eSetValueWithOverwrite : -4165: pxTCB->ulNotifiedValue = ulValue; -BFD01DC0 0014FC5E LW V0, 20(S8) -BFD01DC4 002CFC7E LW V1, 44(S8) -BFD01DC8 0048F862 SW V1, 72(V0) -4166: break; -BFD01DCC CC14 B 0xBFD01DF6 -BFD01DCE 0C00 NOP -4167: -4168: case eSetValueWithoutOverwrite : -4169: if( eOriginalNotifyState != eNotified ) -BFD01DD0 0018FC7E LW V1, 24(S8) -BFD01DD4 ED02 LI V0, 2 -BFD01DD6 00099443 BEQ V1, V0, 0xBFD01DEC -BFD01DD8 0C000009 SLL ZERO, T1, 1 -BFD01DDA 0C00 NOP -4170: { -4171: pxTCB->ulNotifiedValue = ulValue; -BFD01DDC 0014FC5E LW V0, 20(S8) -BFD01DE0 002CFC7E LW V1, 44(S8) -BFD01DE4 0048F862 SW V1, 72(V0) -4172: } -4173: else -4174: { -4175: /* The value could not be written to the task. */ -4176: xReturn = pdFAIL; -BFD01DEC 0010F81E SW ZERO, 16(S8) -4177: } -4178: break; -BFD01DE8 CC06 B 0xBFD01DF6 -BFD01DEA 0C00 NOP -BFD01DF0 CC02 B 0xBFD01DF6 -BFD01DF2 0C00 NOP -4179: -4180: case eNoAction: -4181: /* The task is being notified without its notify value being -4182: updated. */ -4183: break; -BFD01DF4 0C00 NOP -4184: } -4185: -4186: -4187: /* If the task is in the blocked state specifically to wait for a -4188: notification then unblock it now. */ -4189: if( eOriginalNotifyState == eWaitingNotification ) -BFD01DF6 0018FC7E LW V1, 24(S8) -BFD01DFA ED01 LI V0, 1 -BFD01DFC 004EB443 BNE V1, V0, 0xBFD01E9C -BFD01DFE 0C00004E SLL V0, T6, 1 -BFD01E00 0C00 NOP -4190: { -4191: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD01E02 0014FC5E LW V0, 20(S8) -BFD01E06 6D22 ADDIU V0, V0, 4 -BFD01E08 0C82 MOVE A0, V0 -BFD01E0A 00C877E8 JALS uxListRemove -BFD01E0C 0C0000C8 SLL A2, T0, 1 -BFD01E0E 0C00 NOP -4192: prvAddTaskToReadyList( pxTCB ); -BFD01E10 0014FC5E LW V0, 20(S8) -BFD01E14 692B LW V0, 44(V0) -BFD01E16 ED81 LI V1, 1 -BFD01E18 18100062 SLLV V1, V0, V1 -BFD01E1A FC5C1810 SB ZERO, -932(S0) -BFD01E1C 8040FC5C LW V0, -32704(GP) -BFD01E20 44D3 OR16 V0, V1 -BFD01E22 8040F85C SW V0, -32704(GP) -BFD01E26 0014FC5E LW V0, 20(S8) -BFD01E2A 692B LW V0, 44(V0) -BFD01E2C 2524 SLL V0, V0, 2 -BFD01E2E 25A4 SLL V1, V0, 2 -BFD01E30 05B4 ADDU V1, V0, V1 -BFD01E32 BFD241A2 LUI V0, 0xBFD2 -BFD01E34 3042BFD2 LDC1 F30, 12354(S2) -BFD01E36 806C3042 ADDIU V0, V0, -32660 -BFD01E3A 05A6 ADDU V1, V1, V0 -BFD01E3C 0014FC5E LW V0, 20(S8) -BFD01E40 6D22 ADDIU V0, V0, 4 -BFD01E42 0C83 MOVE A0, V1 -BFD01E44 0CA2 MOVE A1, V0 -BFD01E46 3E4A77E8 JALS vListInsertEnd -BFD01E48 0C003E4A LH S2, 3072(T2) -BFD01E4A 0C00 NOP -4193: -4194: /* The task should not have been on an event list. */ -4195: configASSERT( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ); -BFD01E4C 0014FC5E LW V0, 20(S8) -BFD01E50 692A LW V0, 40(V0) -BFD01E52 000940E2 BEQZC V0, 0xBFD01E68 -BFD01E56 BFD141A2 LUI V0, 0xBFD1 -BFD01E58 3082BFD1 LDC1 F30, 12418(S1) -BFD01E5A 98103082 ADDIU A0, V0, -26608 -BFD01E5C 30A09810 SWC1 F0, 12448(S0) -BFD01E5E 106330A0 ADDIU A1, ZERO, 4195 -BFD01E60 77E81063 ADDI V1, V1, 30696 -BFD01E62 4B7E77E8 JALS vAssertCalled -BFD01E64 4B7E LW K1, 120(SP) -BFD01E66 0C00 NOP -4196: -4197: #if( configUSE_TICKLESS_IDLE != 0 ) -4198: { -4199: /* If a task is blocked waiting for a notification then -4200: xNextTaskUnblockTime might be set to the blocked task's time -4201: out time. If the task is unblocked for a reason other than -4202: a timeout xNextTaskUnblockTime is normally left unchanged, -4203: because it will automatically get reset to a new value when -4204: the tick count equals xNextTaskUnblockTime. However if -4205: tickless idling is used it might be more important to enter -4206: sleep mode at the earliest possible time - so reset -4207: xNextTaskUnblockTime here to ensure it is updated at the -4208: earliest possible time. */ -4209: prvResetNextTaskUnblockTime(); -4210: } -4211: #endif -4212: -4213: if( pxTCB->uxPriority > pxCurrentTCB->uxPriority ) -BFD01E68 0014FC5E LW V0, 20(S8) -BFD01E6C 69AB LW V1, 44(V0) -BFD01E6E 8030FC5C LW V0, -32720(GP) -BFD01E72 692B LW V0, 44(V0) -BFD01E74 13900062 SLTU V0, V0, V1 -BFD01E76 40E21390 ADDI GP, S0, 16610 -BFD01E78 001040E2 BEQZC V0, 0xBFD01E9C -4214: { -4215: /* The notified task has a priority above the currently -4216: executing task so a yield is required. */ -4217: taskYIELD_IF_USING_PREEMPTION(); -BFD01E7C 4E5677E8 JALS ulPortGetCP0Cause -BFD01E7E 4E56 ADDIU S2, S2, -5 -BFD01E80 0C00 NOP -BFD01E82 001CF85E SW V0, 28(S8) -BFD01E86 001CFC5E LW V0, 28(S8) -BFD01E8A 01005042 ORI V0, V0, 256 -BFD01E8E 001CF85E SW V0, 28(S8) -BFD01E92 001CFC9E LW A0, 28(S8) -BFD01E96 4E6677E8 JALS vPortSetCP0Cause -BFD01E98 4E66 ADDIU S3, S3, 3 -BFD01E9A 0C00 NOP -4218: } -4219: else -4220: { -4221: mtCOVERAGE_TEST_MARKER(); -4222: } -4223: } -4224: else -4225: { -4226: mtCOVERAGE_TEST_MARKER(); -4227: } -4228: } -4229: taskEXIT_CRITICAL(); -BFD01E9C 40AA77E8 JALS vTaskExitCritical -BFD01E9E 0C0040AA BNEZC T2, 0xBFD036A2 -BFD01EA0 0C00 NOP -4230: -4231: return xReturn; -BFD01EA2 0010FC5E LW V0, 16(S8) -4232: } -BFD01EA6 0FBE MOVE SP, S8 -BFD01EA8 4BE9 LW RA, 36(SP) -BFD01EAA 4BC8 LW S8, 32(SP) -BFD01EAC 4C15 ADDIU SP, SP, 40 -BFD01EAE 459F JR16 RA -BFD01EB0 0C00 NOP -4233: -4234: #endif /* configUSE_TASK_NOTIFICATIONS */ -4235: /*-----------------------------------------------------------*/ -4236: -4237: #if( configUSE_TASK_NOTIFICATIONS == 1 ) -4238: -4239: BaseType_t xTaskNotifyFromISR( TaskHandle_t xTaskToNotify, uint32_t ulValue, eNotifyAction eAction, BaseType_t *pxHigherPriorityTaskWoken ) -4240: { -BFD01EB4 4FED ADDIU SP, SP, -40 -BFD01EB6 CBE9 SW RA, 36(SP) -BFD01EB8 CBC8 SW S8, 32(SP) -BFD01EBA 0FDD MOVE S8, SP -BFD01EBC 0028F89E SW A0, 40(S8) -BFD01EC0 002CF8BE SW A1, 44(S8) -BFD01EC4 0030F8DE SW A2, 48(S8) -BFD01EC8 0034F8FE SW A3, 52(S8) -4241: TCB_t * pxTCB; -4242: eNotifyValue eOriginalNotifyState; -4243: BaseType_t xReturn = pdPASS; -BFD01ECC ED01 LI V0, 1 -BFD01ECE 0010F85E SW V0, 16(S8) -4244: UBaseType_t uxSavedInterruptStatus; -4245: -4246: configASSERT( xTaskToNotify ); -BFD01ED2 0028FC5E LW V0, 40(S8) -BFD01ED6 000940A2 BNEZC V0, 0xBFD01EEC -BFD01EDA BFD141A2 LUI V0, 0xBFD1 -BFD01EDC 3082BFD1 LDC1 F30, 12418(S1) -BFD01EDE 98103082 ADDIU A0, V0, -26608 -BFD01EE0 30A09810 SWC1 F0, 12448(S0) -BFD01EE2 109630A0 ADDIU A1, ZERO, 4246 -BFD01EE4 77E81096 ADDI A0, S6, 30696 -BFD01EE6 4B7E77E8 JALS vAssertCalled -BFD01EE8 4B7E LW K1, 120(SP) -BFD01EEA 0C00 NOP -4247: -4248: /* RTOS ports that support interrupt nesting have the concept of a -4249: maximum system call (or maximum API call) interrupt priority. -4250: Interrupts that are above the maximum system call priority are keep -4251: permanently enabled, even when the RTOS kernel is in a critical section, -4252: but cannot make any calls to FreeRTOS API functions. If configASSERT() -4253: is defined in FreeRTOSConfig.h then -4254: portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -4255: failure if a FreeRTOS API function is called from an interrupt that has -4256: been assigned a priority above the configured maximum system call -4257: priority. Only FreeRTOS functions that end in FromISR can be called -4258: from interrupts that have been assigned a priority at or (logically) -4259: below the maximum system call interrupt priority. FreeRTOS maintains a -4260: separate interrupt safe API to ensure interrupt entry is as fast and as -4261: simple as possible. More information (albeit Cortex-M specific) is -4262: provided on the following link: -4263: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -4264: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -4265: -4266: pxTCB = ( TCB_t * ) xTaskToNotify; -BFD01EEC 0028FC5E LW V0, 40(S8) -BFD01EF0 0014F85E SW V0, 20(S8) -4267: -4268: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD01EF4 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD01EF8 0C00 NOP -BFD01EFA 0018F85E SW V0, 24(S8) -4269: { -4270: eOriginalNotifyState = pxTCB->eNotifyState; -BFD01EFE 0014FC5E LW V0, 20(S8) -BFD01F02 004CFC42 LW V0, 76(V0) -BFD01F06 001CF85E SW V0, 28(S8) -4271: -4272: pxTCB->eNotifyState = eNotified; -BFD01F0A 0014FC5E LW V0, 20(S8) -BFD01F0E ED82 LI V1, 2 -BFD01F10 004CF862 SW V1, 76(V0) -4273: -4274: switch( eAction ) -BFD01F14 0030FC5E LW V0, 48(S8) -BFD01F18 0005B042 SLTIU V0, V0, 5 -BFD01F1C 004740E2 BEQZC V0, 0xBFD01FAE -BFD01F20 0030FC5E LW V0, 48(S8) -BFD01F24 25A4 SLL V1, V0, 2 -BFD01F26 BFD041A2 LUI V0, 0xBFD0 -BFD01F28 3042BFD0 LDC1 F30, 12354(S0) -BFD01F2A 1F343042 ADDIU V0, V0, 7988 -BFD01F2C 05261F34 LB T9, 1318(S4) -BFD01F2E 0526 ADDU V0, V1, V0 -BFD01F30 6920 LW V0, 0(V0) -BFD01F32 45A2 JRC V0 -BFD01F34 BFD01FAD LB SP, -16432(T5) -BFD01F36 1F49BFD0 LDC1 F30, 8009(S0) -BFD01F38 BFD01F49 LB K0, -16432(T1) -BFD01F3A 1F63BFD0 LDC1 F30, 8035(S0) -BFD01F3C BFD01F63 LB K1, -16432(V1) -BFD01F3E 1F79BFD0 LDC1 F30, 8057(S0) -BFD01F40 BFD01F79 LB K1, -16432(T9) -BFD01F42 1F89BFD0 LDC1 F30, 8073(S0) -BFD01F44 BFD01F89 LB GP, -16432(T1) -BFD01F46 FC5EBFD0 LDC1 F30, -930(S0) -4275: { -4276: case eSetBits : -4277: pxTCB->ulNotifiedValue |= ulValue; -BFD01F48 0014FC5E LW V0, 20(S8) -BFD01F4C 0048FC62 LW V1, 72(V0) -BFD01F50 002CFC5E LW V0, 44(S8) -BFD01F54 44DA OR16 V1, V0 -BFD01F56 0014FC5E LW V0, 20(S8) -BFD01F5A 0048F862 SW V1, 72(V0) -4278: break; -BFD01F5E CC27 B 0xBFD01FAE -BFD01F60 0C00 NOP -4279: -4280: case eIncrement : -4281: ( pxTCB->ulNotifiedValue )++; -BFD01F62 0014FC5E LW V0, 20(S8) -BFD01F66 0048FC42 LW V0, 72(V0) -BFD01F6A 6DA0 ADDIU V1, V0, 1 -BFD01F6C 0014FC5E LW V0, 20(S8) -BFD01F70 0048F862 SW V1, 72(V0) -4282: break; -BFD01F74 CC1C B 0xBFD01FAE -BFD01F76 0C00 NOP -4283: -4284: case eSetValueWithOverwrite : -4285: pxTCB->ulNotifiedValue = ulValue; -BFD01F78 0014FC5E LW V0, 20(S8) -BFD01F7C 002CFC7E LW V1, 44(S8) -BFD01F80 0048F862 SW V1, 72(V0) -4286: break; -BFD01F84 CC14 B 0xBFD01FAE -BFD01F86 0C00 NOP -4287: -4288: case eSetValueWithoutOverwrite : -4289: if( eOriginalNotifyState != eNotified ) -BFD01F88 001CFC7E LW V1, 28(S8) -BFD01F8C ED02 LI V0, 2 -BFD01F8E 00099443 BEQ V1, V0, 0xBFD01FA4 -BFD01F90 0C000009 SLL ZERO, T1, 1 -BFD01F92 0C00 NOP -4290: { -4291: pxTCB->ulNotifiedValue = ulValue; -BFD01F94 0014FC5E LW V0, 20(S8) -BFD01F98 002CFC7E LW V1, 44(S8) -BFD01F9C 0048F862 SW V1, 72(V0) -4292: } -4293: else -4294: { -4295: /* The value could not be written to the task. */ -4296: xReturn = pdFAIL; -BFD01FA4 0010F81E SW ZERO, 16(S8) -4297: } -4298: break; -BFD01FA0 CC06 B 0xBFD01FAE -BFD01FA2 0C00 NOP -BFD01FA8 CC02 B 0xBFD01FAE -BFD01FAA 0C00 NOP -4299: -4300: case eNoAction : -4301: /* The task is being notified without its notify value being -4302: updated. */ -4303: break; -BFD01FAC 0C00 NOP -4304: } -4305: -4306: -4307: /* If the task is in the blocked state specifically to wait for a -4308: notification then unblock it now. */ -4309: if( eOriginalNotifyState == eWaitingNotification ) -BFD01FAE 001CFC7E LW V1, 28(S8) -BFD01FB2 ED01 LI V0, 1 -BFD01FB4 0057B443 BNE V1, V0, 0xBFD02066 -BFD01FB6 0C000057 SLL V0, S7, 1 -BFD01FB8 0C00 NOP -4310: { -4311: /* The task should not have been on an event list. */ -4312: configASSERT( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ); -BFD01FBA 0014FC5E LW V0, 20(S8) -BFD01FBE 692A LW V0, 40(V0) -BFD01FC0 000940E2 BEQZC V0, 0xBFD01FD6 -BFD01FC4 BFD141A2 LUI V0, 0xBFD1 -BFD01FC6 3082BFD1 LDC1 F30, 12418(S1) -BFD01FC8 98103082 ADDIU A0, V0, -26608 -BFD01FCA 30A09810 SWC1 F0, 12448(S0) -BFD01FCC 10D830A0 ADDIU A1, ZERO, 4312 -BFD01FCE 77E810D8 ADDI A2, T8, 30696 -BFD01FD0 4B7E77E8 JALS vAssertCalled -BFD01FD2 4B7E LW K1, 120(SP) -BFD01FD4 0C00 NOP -4313: -4314: if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) -BFD01FD6 805CFC5C LW V0, -32676(GP) -BFD01FDA 002740A2 BNEZC V0, 0xBFD0202C -4315: { -4316: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD01FDE 0014FC5E LW V0, 20(S8) -BFD01FE2 6D22 ADDIU V0, V0, 4 -BFD01FE4 0C82 MOVE A0, V0 -BFD01FE6 00C877E8 JALS uxListRemove -BFD01FE8 0C0000C8 SLL A2, T0, 1 -BFD01FEA 0C00 NOP -4317: prvAddTaskToReadyList( pxTCB ); -BFD01FEC 0014FC5E LW V0, 20(S8) -BFD01FF0 692B LW V0, 44(V0) -BFD01FF2 ED81 LI V1, 1 -BFD01FF4 18100062 SLLV V1, V0, V1 -BFD01FF6 FC5C1810 SB ZERO, -932(S0) -BFD01FF8 8040FC5C LW V0, -32704(GP) -BFD01FFC 44D3 OR16 V0, V1 -BFD01FFE 8040F85C SW V0, -32704(GP) -BFD02002 0014FC5E LW V0, 20(S8) -BFD02006 692B LW V0, 44(V0) -BFD02008 2524 SLL V0, V0, 2 -BFD0200A 25A4 SLL V1, V0, 2 -BFD0200C 05B4 ADDU V1, V0, V1 -BFD0200E BFD241A2 LUI V0, 0xBFD2 -BFD02010 3042BFD2 LDC1 F30, 12354(S2) -BFD02012 806C3042 ADDIU V0, V0, -32660 -BFD02016 05A6 ADDU V1, V1, V0 -BFD02018 0014FC5E LW V0, 20(S8) -BFD0201C 6D22 ADDIU V0, V0, 4 -BFD0201E 0C83 MOVE A0, V1 -BFD02020 0CA2 MOVE A1, V0 -BFD02022 3E4A77E8 JALS vListInsertEnd -BFD02024 0C003E4A LH S2, 3072(T2) -BFD02026 0C00 NOP -BFD02028 CC0C B 0xBFD02042 -BFD0202A 0C00 NOP -4318: } -4319: else -4320: { -4321: /* The delayed and ready lists cannot be accessed, so hold -4322: this task pending until the scheduler is resumed. */ -4323: vListInsertEnd( &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); -BFD0202C 0014FC5E LW V0, 20(S8) -BFD0202E 6D2C0014 EXT ZERO, S4, 20, 14 -BFD02030 6D2C ADDIU V0, V0, 24 -BFD02032 BFD241A3 LUI V1, 0xBFD2 -BFD02034 3083BFD2 LDC1 F30, 12419(S2) -BFD02036 80D03083 ADDIU A0, V1, -32560 -BFD0203A 0CA2 MOVE A1, V0 -BFD0203C 3E4A77E8 JALS vListInsertEnd -BFD0203E 0C003E4A LH S2, 3072(T2) -BFD02040 0C00 NOP -4324: } -4325: -4326: if( pxTCB->uxPriority > pxCurrentTCB->uxPriority ) -BFD02042 0014FC5E LW V0, 20(S8) -BFD02046 69AB LW V1, 44(V0) -BFD02048 8030FC5C LW V0, -32720(GP) -BFD0204C 692B LW V0, 44(V0) -BFD0204E 13900062 SLTU V0, V0, V1 -BFD02050 40E21390 ADDI GP, S0, 16610 -BFD02052 000840E2 BEQZC V0, 0xBFD02066 -4327: { -4328: /* The notified task has a priority above the currently -4329: executing task so a yield is required. */ -4330: if( pxHigherPriorityTaskWoken != NULL ) -BFD02056 0034FC5E LW V0, 52(S8) -BFD0205A 000440E2 BEQZC V0, 0xBFD02066 -4331: { -4332: *pxHigherPriorityTaskWoken = pdTRUE; -BFD0205E 0034FC5E LW V0, 52(S8) -BFD02062 ED81 LI V1, 1 -BFD02064 E9A0 SW V1, 0(V0) -4333: } -4334: } -4335: else -4336: { -4337: mtCOVERAGE_TEST_MARKER(); -4338: } -4339: } -4340: } -4341: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD02066 0018FC9E LW A0, 24(S8) -BFD0206A 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD0206C 4D5E ADDIU T2, T2, -1 -BFD0206E 0C00 NOP -4342: -4343: return xReturn; -BFD02070 0010FC5E LW V0, 16(S8) -4344: } -BFD02074 0FBE MOVE SP, S8 -BFD02076 4BE9 LW RA, 36(SP) -BFD02078 4BC8 LW S8, 32(SP) -BFD0207A 4C15 ADDIU SP, SP, 40 -BFD0207C 459F JR16 RA -BFD0207E 0C00 NOP -4345: -4346: #endif /* configUSE_TASK_NOTIFICATIONS */ -4347: /*-----------------------------------------------------------*/ -4348: -4349: #if( configUSE_TASK_NOTIFICATIONS == 1 ) -4350: -4351: void vTaskNotifyGiveFromISR( TaskHandle_t xTaskToNotify, BaseType_t *pxHigherPriorityTaskWoken ) -4352: { -BFD03190 4FED ADDIU SP, SP, -40 -BFD03192 CBE9 SW RA, 36(SP) -BFD03194 CBC8 SW S8, 32(SP) -BFD03196 0FDD MOVE S8, SP -BFD03198 0028F89E SW A0, 40(S8) -BFD0319C 002CF8BE SW A1, 44(S8) -4353: TCB_t * pxTCB; -4354: eNotifyValue eOriginalNotifyState; -4355: UBaseType_t uxSavedInterruptStatus; -4356: -4357: configASSERT( xTaskToNotify ); -BFD031A0 0028FC5E LW V0, 40(S8) -BFD031A4 000940A2 BNEZC V0, 0xBFD031BA -BFD031A8 BFD141A2 LUI V0, 0xBFD1 -BFD031AA 3082BFD1 LDC1 F30, 12418(S1) -BFD031AC 98103082 ADDIU A0, V0, -26608 -BFD031AE 30A09810 SWC1 F0, 12448(S0) -BFD031B0 110530A0 ADDIU A1, ZERO, 4357 -BFD031B2 77E81105 ADDI T0, A1, 30696 -BFD031B4 4B7E77E8 JALS vAssertCalled -BFD031B6 4B7E LW K1, 120(SP) -BFD031B8 0C00 NOP -4358: -4359: /* RTOS ports that support interrupt nesting have the concept of a -4360: maximum system call (or maximum API call) interrupt priority. -4361: Interrupts that are above the maximum system call priority are keep -4362: permanently enabled, even when the RTOS kernel is in a critical section, -4363: but cannot make any calls to FreeRTOS API functions. If configASSERT() -4364: is defined in FreeRTOSConfig.h then -4365: portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -4366: failure if a FreeRTOS API function is called from an interrupt that has -4367: been assigned a priority above the configured maximum system call -4368: priority. Only FreeRTOS functions that end in FromISR can be called -4369: from interrupts that have been assigned a priority at or (logically) -4370: below the maximum system call interrupt priority. FreeRTOS maintains a -4371: separate interrupt safe API to ensure interrupt entry is as fast and as -4372: simple as possible. More information (albeit Cortex-M specific) is -4373: provided on the following link: -4374: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -4375: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -4376: -4377: pxTCB = ( TCB_t * ) xTaskToNotify; -BFD031BA 0028FC5E LW V0, 40(S8) -BFD031BE 0010F85E SW V0, 16(S8) -4378: -4379: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD031C2 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD031C6 0C00 NOP -BFD031C8 0014F85E SW V0, 20(S8) -4380: { -4381: eOriginalNotifyState = pxTCB->eNotifyState; -BFD031CC 0010FC5E LW V0, 16(S8) -BFD031D0 004CFC42 LW V0, 76(V0) -BFD031D4 0018F85E SW V0, 24(S8) -4382: pxTCB->eNotifyState = eNotified; -BFD031D8 0010FC5E LW V0, 16(S8) -BFD031DC ED82 LI V1, 2 -BFD031DE 004CF862 SW V1, 76(V0) -4383: -4384: /* 'Giving' is equivalent to incrementing a count in a counting -4385: semaphore. */ -4386: ( pxTCB->ulNotifiedValue )++; -BFD031E2 0010FC5E LW V0, 16(S8) -BFD031E6 0048FC42 LW V0, 72(V0) -BFD031EA 6DA0 ADDIU V1, V0, 1 -BFD031EC 0010FC5E LW V0, 16(S8) -BFD031F0 0048F862 SW V1, 72(V0) -4387: -4388: /* If the task is in the blocked state specifically to wait for a -4389: notification then unblock it now. */ -4390: if( eOriginalNotifyState == eWaitingNotification ) -BFD031F4 0018FC7E LW V1, 24(S8) -BFD031F8 ED01 LI V0, 1 -BFD031FA 0057B443 BNE V1, V0, 0xBFD032AC -BFD031FC 0C000057 SLL V0, S7, 1 -BFD031FE 0C00 NOP -4391: { -4392: /* The task should not have been on an event list. */ -4393: configASSERT( listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) ) == NULL ); -BFD03200 0010FC5E LW V0, 16(S8) -BFD03204 692A LW V0, 40(V0) -BFD03206 000940E2 BEQZC V0, 0xBFD0321C -BFD0320A BFD141A2 LUI V0, 0xBFD1 -BFD0320C 3082BFD1 LDC1 F30, 12418(S1) -BFD0320E 98103082 ADDIU A0, V0, -26608 -BFD03210 30A09810 SWC1 F0, 12448(S0) -BFD03212 112930A0 ADDIU A1, ZERO, 4393 -BFD03214 77E81129 ADDI T1, T1, 30696 -BFD03216 4B7E77E8 JALS vAssertCalled -BFD03218 4B7E LW K1, 120(SP) -BFD0321A 0C00 NOP -4394: -4395: if( uxSchedulerSuspended == ( UBaseType_t ) pdFALSE ) -BFD0321C 805CFC5C LW V0, -32676(GP) -BFD03220 002740A2 BNEZC V0, 0xBFD03272 -4396: { -4397: ( void ) uxListRemove( &( pxTCB->xGenericListItem ) ); -BFD03224 0010FC5E LW V0, 16(S8) -BFD03228 6D22 ADDIU V0, V0, 4 -BFD0322A 0C82 MOVE A0, V0 -BFD0322C 00C877E8 JALS uxListRemove -BFD0322E 0C0000C8 SLL A2, T0, 1 -BFD03230 0C00 NOP -4398: prvAddTaskToReadyList( pxTCB ); -BFD03232 0010FC5E LW V0, 16(S8) -BFD03236 692B LW V0, 44(V0) -BFD03238 ED81 LI V1, 1 -BFD0323A 18100062 SLLV V1, V0, V1 -BFD0323C FC5C1810 SB ZERO, -932(S0) -BFD0323E 8040FC5C LW V0, -32704(GP) -BFD03242 44D3 OR16 V0, V1 -BFD03244 8040F85C SW V0, -32704(GP) -BFD03248 0010FC5E LW V0, 16(S8) -BFD0324C 692B LW V0, 44(V0) -BFD0324E 2524 SLL V0, V0, 2 -BFD03250 25A4 SLL V1, V0, 2 -BFD03252 05B4 ADDU V1, V0, V1 -BFD03254 BFD241A2 LUI V0, 0xBFD2 -BFD03256 3042BFD2 LDC1 F30, 12354(S2) -BFD03258 806C3042 ADDIU V0, V0, -32660 -BFD0325C 05A6 ADDU V1, V1, V0 -BFD0325E 0010FC5E LW V0, 16(S8) -BFD03262 6D22 ADDIU V0, V0, 4 -BFD03264 0C83 MOVE A0, V1 -BFD03266 0CA2 MOVE A1, V0 -BFD03268 3E4A77E8 JALS vListInsertEnd -BFD0326A 0C003E4A LH S2, 3072(T2) -BFD0326C 0C00 NOP -BFD0326E CC0C B 0xBFD03288 -BFD03270 0C00 NOP -4399: } -4400: else -4401: { -4402: /* The delayed and ready lists cannot be accessed, so hold -4403: this task pending until the scheduler is resumed. */ -4404: vListInsertEnd( &( xPendingReadyList ), &( pxTCB->xEventListItem ) ); -BFD03272 0010FC5E LW V0, 16(S8) -BFD03274 6D2C0010 EXT ZERO, S0, 20, 14 -BFD03276 6D2C ADDIU V0, V0, 24 -BFD03278 BFD241A3 LUI V1, 0xBFD2 -BFD0327A 3083BFD2 LDC1 F30, 12419(S2) -BFD0327C 80D03083 ADDIU A0, V1, -32560 -BFD03280 0CA2 MOVE A1, V0 -BFD03282 3E4A77E8 JALS vListInsertEnd -BFD03284 0C003E4A LH S2, 3072(T2) -BFD03286 0C00 NOP -4405: } -4406: -4407: if( pxTCB->uxPriority > pxCurrentTCB->uxPriority ) -BFD03288 0010FC5E LW V0, 16(S8) -BFD0328C 69AB LW V1, 44(V0) -BFD0328E 8030FC5C LW V0, -32720(GP) -BFD03292 692B LW V0, 44(V0) -BFD03294 13900062 SLTU V0, V0, V1 -BFD03296 40E21390 ADDI GP, S0, 16610 -BFD03298 000840E2 BEQZC V0, 0xBFD032AC -4408: { -4409: /* The notified task has a priority above the currently -4410: executing task so a yield is required. */ -4411: if( pxHigherPriorityTaskWoken != NULL ) -BFD0329C 002CFC5E LW V0, 44(S8) -BFD032A0 000440E2 BEQZC V0, 0xBFD032AC -4412: { -4413: *pxHigherPriorityTaskWoken = pdTRUE; -BFD032A4 002CFC5E LW V0, 44(S8) -BFD032A8 ED81 LI V1, 1 -BFD032AA E9A0 SW V1, 0(V0) -4414: } -4415: } -4416: else -4417: { -4418: mtCOVERAGE_TEST_MARKER(); -4419: } -4420: } -4421: } -4422: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD032AC 0014FC9E LW A0, 20(S8) -BFD032B0 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD032B2 4D5E ADDIU T2, T2, -1 -BFD032B4 0C00 NOP -4423: } -BFD032B6 0FBE MOVE SP, S8 -BFD032B8 4BE9 LW RA, 36(SP) -BFD032BA 4BC8 LW S8, 32(SP) -BFD032BC 4C15 ADDIU SP, SP, 40 -BFD032BE 459F JR16 RA -BFD032C0 0C00 NOP -4424: -4425: #endif /* configUSE_TASK_NOTIFICATIONS */ -4426: -4427: /*-----------------------------------------------------------*/ -4428: -4429: -4430: #ifdef FREERTOS_MODULE_TEST -4431: #include "tasks_test_access_functions.h" -4432: #endif -4433: ---- c:/e/dev/freertos/workingcopy/freertos/source/queue.c --------------------------------------------- -1: /* -2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -3: All rights reserved -4: -5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -6: -7: This file is part of the FreeRTOS distribution. -8: -9: FreeRTOS is free software; you can redistribute it and/or modify it under -10: the terms of the GNU General Public License (version 2) as published by the -11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: #include -71: #include -72: -73: /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -74: all the API functions to use the MPU wrappers. That should only be done when -75: task.h is included from an application file. */ -76: #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE -77: -78: #include "FreeRTOS.h" -79: #include "task.h" -80: #include "queue.h" -81: -82: #if ( configUSE_CO_ROUTINES == 1 ) -83: #include "croutine.h" -84: #endif -85: -86: /* Lint e961 and e750 are suppressed as a MISRA exception justified because the -87: MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -88: header files above, but not in this file, in order to generate the correct -89: privileged Vs unprivileged linkage and placement. */ -90: #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ -91: -92: -93: /* Constants used with the xRxLock and xTxLock structure members. */ -94: #define queueUNLOCKED ( ( BaseType_t ) -1 ) -95: #define queueLOCKED_UNMODIFIED ( ( BaseType_t ) 0 ) -96: -97: /* When the Queue_t structure is used to represent a base queue its pcHead and -98: pcTail members are used as pointers into the queue storage area. When the -99: Queue_t structure is used to represent a mutex pcHead and pcTail pointers are -100: not necessary, and the pcHead pointer is set to NULL to indicate that the -101: pcTail pointer actually points to the mutex holder (if any). Map alternative -102: names to the pcHead and pcTail structure members to ensure the readability of -103: the code is maintained despite this dual use of two structure members. An -104: alternative implementation would be to use a union, but use of a union is -105: against the coding standard (although an exception to the standard has been -106: permitted where the dual use also significantly changes the type of the -107: structure member). */ -108: #define pxMutexHolder pcTail -109: #define uxQueueType pcHead -110: #define queueQUEUE_IS_MUTEX NULL -111: -112: /* Semaphores do not actually store or copy data, so have an item size of -113: zero. */ -114: #define queueSEMAPHORE_QUEUE_ITEM_LENGTH ( ( UBaseType_t ) 0 ) -115: #define queueMUTEX_GIVE_BLOCK_TIME ( ( TickType_t ) 0U ) -116: -117: #if( configUSE_PREEMPTION == 0 ) -118: /* If the cooperative scheduler is being used then a yield should not be -119: performed just because a higher priority task has been woken. */ -120: #define queueYIELD_IF_USING_PREEMPTION() -121: #else -122: #define queueYIELD_IF_USING_PREEMPTION() portYIELD_WITHIN_API() -123: #endif -124: -125: /* -126: * Definition of the queue used by the scheduler. -127: * Items are queued by copy, not reference. See the following link for the -128: * rationale: http://www.freertos.org/Embedded-RTOS-Queues.html -129: */ -130: typedef struct QueueDefinition -131: { -132: int8_t *pcHead; /*< Points to the beginning of the queue storage area. */ -133: int8_t *pcTail; /*< Points to the byte at the end of the queue storage area. Once more byte is allocated than necessary to store the queue items, this is used as a marker. */ -134: int8_t *pcWriteTo; /*< Points to the free next place in the storage area. */ -135: -136: union /* Use of a union is an exception to the coding standard to ensure two mutually exclusive structure members don't appear simultaneously (wasting RAM). */ -137: { -138: int8_t *pcReadFrom; /*< Points to the last place that a queued item was read from when the structure is used as a queue. */ -139: UBaseType_t uxRecursiveCallCount;/*< Maintains a count of the number of times a recursive mutex has been recursively 'taken' when the structure is used as a mutex. */ -140: } u; -141: -142: List_t xTasksWaitingToSend; /*< List of tasks that are blocked waiting to post onto this queue. Stored in priority order. */ -143: List_t xTasksWaitingToReceive; /*< List of tasks that are blocked waiting to read from this queue. Stored in priority order. */ -144: -145: volatile UBaseType_t uxMessagesWaiting;/*< The number of items currently in the queue. */ -146: UBaseType_t uxLength; /*< The length of the queue defined as the number of items it will hold, not the number of bytes. */ -147: UBaseType_t uxItemSize; /*< The size of each items that the queue will hold. */ -148: -149: volatile BaseType_t xRxLock; /*< Stores the number of items received from the queue (removed from the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ -150: volatile BaseType_t xTxLock; /*< Stores the number of items transmitted to the queue (added to the queue) while the queue was locked. Set to queueUNLOCKED when the queue is not locked. */ -151: -152: #if ( configUSE_TRACE_FACILITY == 1 ) -153: UBaseType_t uxQueueNumber; -154: uint8_t ucQueueType; -155: #endif -156: -157: #if ( configUSE_QUEUE_SETS == 1 ) -158: struct QueueDefinition *pxQueueSetContainer; -159: #endif -160: -161: } xQUEUE; -162: -163: /* The old xQUEUE name is maintained above then typedefed to the new Queue_t -164: name below to enable the use of older kernel aware debuggers. */ -165: typedef xQUEUE Queue_t; -166: -167: /*-----------------------------------------------------------*/ -168: -169: /* -170: * The queue registry is just a means for kernel aware debuggers to locate -171: * queue structures. It has no other purpose so is an optional component. -172: */ -173: #if ( configQUEUE_REGISTRY_SIZE > 0 ) -174: -175: /* The type stored within the queue registry array. This allows a name -176: to be assigned to each queue making kernel aware debugging a little -177: more user friendly. */ -178: typedef struct QUEUE_REGISTRY_ITEM -179: { -180: const char *pcQueueName; /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -181: QueueHandle_t xHandle; -182: } xQueueRegistryItem; -183: -184: /* The old xQueueRegistryItem name is maintained above then typedefed to the -185: new xQueueRegistryItem name below to enable the use of older kernel aware -186: debuggers. */ -187: typedef xQueueRegistryItem QueueRegistryItem_t; -188: -189: /* The queue registry is simply an array of QueueRegistryItem_t structures. -190: The pcQueueName member of a structure being NULL is indicative of the -191: array position being vacant. */ -192: PRIVILEGED_DATA QueueRegistryItem_t xQueueRegistry[ configQUEUE_REGISTRY_SIZE ]; -193: -194: #endif /* configQUEUE_REGISTRY_SIZE */ -195: -196: /* -197: * Unlocks a queue locked by a call to prvLockQueue. Locking a queue does not -198: * prevent an ISR from adding or removing items to the queue, but does prevent -199: * an ISR from removing tasks from the queue event lists. If an ISR finds a -200: * queue is locked it will instead increment the appropriate queue lock count -201: * to indicate that a task may require unblocking. When the queue in unlocked -202: * these lock counts are inspected, and the appropriate action taken. -203: */ -204: static void prvUnlockQueue( Queue_t * const pxQueue ) PRIVILEGED_FUNCTION; -205: -206: /* -207: * Uses a critical section to determine if there is any data in a queue. -208: * -209: * @return pdTRUE if the queue contains no items, otherwise pdFALSE. -210: */ -211: static BaseType_t prvIsQueueEmpty( const Queue_t *pxQueue ) PRIVILEGED_FUNCTION; -212: -213: /* -214: * Uses a critical section to determine if there is any space in a queue. -215: * -216: * @return pdTRUE if there is no space, otherwise pdFALSE; -217: */ -218: static BaseType_t prvIsQueueFull( const Queue_t *pxQueue ) PRIVILEGED_FUNCTION; -219: -220: /* -221: * Copies an item into the queue, either at the front of the queue or the -222: * back of the queue. -223: */ -224: static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition ) PRIVILEGED_FUNCTION; -225: -226: /* -227: * Copies an item out of a queue. -228: */ -229: static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer ) PRIVILEGED_FUNCTION; -230: -231: #if ( configUSE_QUEUE_SETS == 1 ) -232: /* -233: * Checks to see if a queue is a member of a queue set, and if so, notifies -234: * the queue set that the queue contains data. -235: */ -236: static BaseType_t prvNotifyQueueSetContainer( const Queue_t * const pxQueue, const BaseType_t xCopyPosition ) PRIVILEGED_FUNCTION; -237: #endif -238: -239: /*-----------------------------------------------------------*/ -240: -241: /* -242: * Macro to mark a queue as locked. Locking a queue prevents an ISR from -243: * accessing the queue event lists. -244: */ -245: #define prvLockQueue( pxQueue ) \ -246: taskENTER_CRITICAL(); \ -247: { \ -248: if( ( pxQueue )->xRxLock == queueUNLOCKED ) \ -249: { \ -250: ( pxQueue )->xRxLock = queueLOCKED_UNMODIFIED; \ -251: } \ -252: if( ( pxQueue )->xTxLock == queueUNLOCKED ) \ -253: { \ -254: ( pxQueue )->xTxLock = queueLOCKED_UNMODIFIED; \ -255: } \ -256: } \ -257: taskEXIT_CRITICAL() -258: /*-----------------------------------------------------------*/ -259: -260: BaseType_t xQueueGenericReset( QueueHandle_t xQueue, BaseType_t xNewQueue ) -261: { -BFD0388C 4FF1 ADDIU SP, SP, -32 -BFD0388E CBE7 SW RA, 28(SP) -BFD03890 CBC6 SW S8, 24(SP) -BFD03892 0FDD MOVE S8, SP -BFD03894 0020F89E SW A0, 32(S8) -BFD03898 0024F8BE SW A1, 36(S8) -262: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD0389C 0020FC5E LW V0, 32(S8) -BFD038A0 0010F85E SW V0, 16(S8) -263: -264: configASSERT( pxQueue ); -BFD038A4 0010FC5E LW V0, 16(S8) -BFD038A8 000940A2 BNEZC V0, 0xBFD038BE -BFD038AC BFD141A2 LUI V0, 0xBFD1 -BFD038AE 3082BFD1 LDC1 F30, 12418(S1) -BFD038B0 9E3C3082 ADDIU A0, V0, -25028 -BFD038B2 30A09E3C LWC1 F17, 12448(GP) -BFD038B4 010830A0 ADDIU A1, ZERO, 264 -BFD038B8 4B7E77E8 JALS vAssertCalled -BFD038BA 4B7E LW K1, 120(SP) -BFD038BC 0C00 NOP -265: -266: taskENTER_CRITICAL(); -BFD038BE 33B877E8 JALS vTaskEnterCritical -BFD038C0 0C0033B8 ADDIU SP, T8, 3072 -BFD038C2 0C00 NOP -267: { -268: pxQueue->pcTail = pxQueue->pcHead + ( pxQueue->uxLength * pxQueue->uxItemSize ); -BFD038C4 0010FC5E LW V0, 16(S8) -BFD038C8 6920 LW V0, 0(V0) -BFD038CA 0010FC7E LW V1, 16(S8) -BFD038CE 6A3F LW A0, 60(V1) -BFD038D0 0010FC7E LW V1, 16(S8) -BFD038D4 0040FC63 LW V1, 64(V1) -BFD038D8 1A100064 MUL V1, A0, V1 -BFD038DA 05B41A10 SB S0, 1460(S0) -BFD038DC 05B4 ADDU V1, V0, V1 -BFD038DE 0010FC5E LW V0, 16(S8) -BFD038E2 E9A1 SW V1, 4(V0) -269: pxQueue->uxMessagesWaiting = ( UBaseType_t ) 0U; -BFD038E4 0010FC5E LW V0, 16(S8) -BFD038E8 E82E SW S0, 56(V0) -270: pxQueue->pcWriteTo = pxQueue->pcHead; -BFD038EA 0010FC5E LW V0, 16(S8) -BFD038EE 69A0 LW V1, 0(V0) -BFD038F0 0010FC5E LW V0, 16(S8) -BFD038F4 E9A2 SW V1, 8(V0) -271: pxQueue->u.pcReadFrom = pxQueue->pcHead + ( ( pxQueue->uxLength - ( UBaseType_t ) 1U ) * pxQueue->uxItemSize ); -BFD038F6 0010FC5E LW V0, 16(S8) -BFD038FA 6920 LW V0, 0(V0) -BFD038FC 0010FC7E LW V1, 16(S8) -BFD03900 69BF LW V1, 60(V1) -BFD03902 6E3E ADDIU A0, V1, -1 -BFD03904 0010FC7E LW V1, 16(S8) -BFD03908 0040FC63 LW V1, 64(V1) -BFD0390C 1A100064 MUL V1, A0, V1 -BFD0390E 05B41A10 SB S0, 1460(S0) -BFD03910 05B4 ADDU V1, V0, V1 -BFD03912 0010FC5E LW V0, 16(S8) -BFD03916 E9A3 SW V1, 12(V0) -272: pxQueue->xRxLock = queueUNLOCKED; -BFD03918 0010FC5E LW V0, 16(S8) -BFD0391C EDFF LI V1, -1 -BFD0391E 0044F862 SW V1, 68(V0) -273: pxQueue->xTxLock = queueUNLOCKED; -BFD03922 0010FC5E LW V0, 16(S8) -BFD03926 EDFF LI V1, -1 -BFD03928 0048F862 SW V1, 72(V0) -274: -275: if( xNewQueue == pdFALSE ) -BFD0392C 0024FC5E LW V0, 36(S8) -BFD03930 002340A2 BNEZC V0, 0xBFD0397A -276: { -277: /* If there are tasks blocked waiting to read from the queue, then -278: the tasks will remain blocked as after this function exits the queue -279: will still be empty. If there are tasks blocked waiting to write to -280: the queue, then one should be unblocked as after this function exits -281: it will be possible to write to it. */ -282: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) -BFD03934 0010FC5E LW V0, 16(S8) -BFD03938 6924 LW V0, 16(V0) -BFD0393A 002D40E2 BEQZC V0, 0xBFD03998 -283: { -284: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) -BFD0393E 0010FC5E LW V0, 16(S8) -BFD03942 6D28 ADDIU V0, V0, 16 -BFD03944 0C82 MOVE A0, V0 -BFD03946 22BC77E8 JALS xTaskRemoveFromEventList -BFD03948 0C0022BC LWC2 S5, 3072(GP) -BFD0394A 0C00 NOP -BFD0394C 0C62 MOVE V1, V0 -BFD0394E ED01 LI V0, 1 -BFD03950 0022B443 BNE V1, V0, 0xBFD03998 -BFD03952 0C000022 SLL AT, V0, 1 -BFD03954 0C00 NOP -285: { -286: queueYIELD_IF_USING_PREEMPTION(); -BFD03956 4E1677E8 JALS ulPortGetCP0Cause -BFD03958 4E16 ADDIU S0, S0, -5 -BFD0395A 0C00 NOP -BFD0395C 0014F85E SW V0, 20(S8) -BFD03960 0014FC5E LW V0, 20(S8) -BFD03964 01005042 ORI V0, V0, 256 -BFD03968 0014F85E SW V0, 20(S8) -BFD0396C 0014FC9E LW A0, 20(S8) -BFD03970 4E2677E8 JALS vPortSetCP0Cause -BFD03972 4E26 ADDIU S1, S1, 3 -BFD03974 0C00 NOP -BFD03976 CC10 B 0xBFD03998 -BFD03978 0C00 NOP -287: } -288: else -289: { -290: mtCOVERAGE_TEST_MARKER(); -291: } -292: } -293: else -294: { -295: mtCOVERAGE_TEST_MARKER(); -296: } -297: } -298: else -299: { -300: /* Ensure the event queues start in the correct state. */ -301: vListInitialise( &( pxQueue->xTasksWaitingToSend ) ); -BFD0397A 0010FC5E LW V0, 16(S8) -BFD0397E 6D28 ADDIU V0, V0, 16 -BFD03980 0C82 MOVE A0, V0 -BFD03982 457077E8 JALS vListInitialise -BFD03984 4570 SWM16 0x3, 0(SP) -BFD03986 0C00 NOP -302: vListInitialise( &( pxQueue->xTasksWaitingToReceive ) ); -BFD03988 0010FC5E LW V0, 16(S8) -BFD0398C 00243042 ADDIU V0, V0, 36 -BFD03990 0C82 MOVE A0, V0 -BFD03992 457077E8 JALS vListInitialise -BFD03994 4570 SWM16 0x3, 0(SP) -BFD03996 0C00 NOP -303: } -304: } -305: taskEXIT_CRITICAL(); -BFD03998 40AA77E8 JALS vTaskExitCritical -BFD0399A 0C0040AA BNEZC T2, 0xBFD0519E -BFD0399C 0C00 NOP -306: -307: /* A value is returned for calling semantic consistency with previous -308: versions. */ -309: return pdPASS; -BFD0399E ED01 LI V0, 1 -310: } -BFD039A0 0FBE MOVE SP, S8 -BFD039A2 4BE7 LW RA, 28(SP) -BFD039A4 4BC6 LW S8, 24(SP) -BFD039A6 4C11 ADDIU SP, SP, 32 -BFD039A8 459F JR16 RA -BFD039AA 0C00 NOP -311: /*-----------------------------------------------------------*/ -312: -313: QueueHandle_t xQueueGenericCreate( const UBaseType_t uxQueueLength, const UBaseType_t uxItemSize, const uint8_t ucQueueType ) -314: { -BFD03DF4 4FED ADDIU SP, SP, -40 -BFD03DF6 CBE9 SW RA, 36(SP) -BFD03DF8 CBC8 SW S8, 32(SP) -BFD03DFA 0FDD MOVE S8, SP -BFD03DFC 0028F89E SW A0, 40(S8) -BFD03E00 002CF8BE SW A1, 44(S8) -BFD03E04 0C46 MOVE V0, A2 -BFD03E06 0030185E SB V0, 48(S8) -315: Queue_t *pxNewQueue; -316: size_t xQueueSizeInBytes; -317: QueueHandle_t xReturn = NULL; -BFD03E0A 0014F81E SW ZERO, 20(S8) -318: int8_t *pcAllocatedBuffer; -319: -320: /* Remove compiler warnings about unused parameters should -321: configUSE_TRACE_FACILITY not be set to 1. */ -322: ( void ) ucQueueType; -323: -324: configASSERT( uxQueueLength > ( UBaseType_t ) 0 ); -BFD03E0E 0028FC5E LW V0, 40(S8) -BFD03E12 000940A2 BNEZC V0, 0xBFD03E28 -BFD03E16 BFD141A2 LUI V0, 0xBFD1 -BFD03E18 3082BFD1 LDC1 F30, 12418(S1) -BFD03E1A 9E3C3082 ADDIU A0, V0, -25028 -BFD03E1C 30A09E3C LWC1 F17, 12448(GP) -BFD03E1E 014430A0 ADDIU A1, ZERO, 324 -BFD03E22 4B7E77E8 JALS vAssertCalled -BFD03E24 4B7E LW K1, 120(SP) -BFD03E26 0C00 NOP -325: -326: if( uxItemSize == ( UBaseType_t ) 0 ) -BFD03E28 002CFC5E LW V0, 44(S8) -BFD03E2C 000440A2 BNEZC V0, 0xBFD03E38 -327: { -328: /* There is not going to be a queue storage area. */ -329: xQueueSizeInBytes = ( size_t ) 0; -BFD03E30 0010F81E SW ZERO, 16(S8) -BFD03E34 CC0A B 0xBFD03E4A -BFD03E36 0C00 NOP -330: } -331: else -332: { -333: /* The queue is one byte longer than asked for to make wrap checking -334: easier/faster. */ -335: xQueueSizeInBytes = ( size_t ) ( uxQueueLength * uxItemSize ) + ( size_t ) 1; /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD03E38 0028FC7E LW V1, 40(S8) -BFD03E3C 002CFC5E LW V0, 44(S8) -BFD03E40 12100043 MUL V0, V1, V0 -BFD03E42 6D201210 ADDI S0, S0, 27936 -BFD03E44 6D20 ADDIU V0, V0, 1 -BFD03E46 0010F85E SW V0, 16(S8) -336: } -337: -338: /* Allocate the new queue structure and storage area. */ -339: pcAllocatedBuffer = ( int8_t * ) pvPortMalloc( sizeof( Queue_t ) + xQueueSizeInBytes ); -BFD03E4A 0010FC5E LW V0, 16(S8) -BFD03E4E 00503042 ADDIU V0, V0, 80 -BFD03E52 0C82 MOVE A0, V0 -BFD03E54 111677E8 JALS pvPortMalloc -BFD03E56 0C001116 ADDI T0, S6, 3072 -BFD03E58 0C00 NOP -BFD03E5A 0018F85E SW V0, 24(S8) -340: -341: if( pcAllocatedBuffer != NULL ) -BFD03E5E 0018FC5E LW V0, 24(S8) -BFD03E62 002F40E2 BEQZC V0, 0xBFD03EC4 -342: { -343: pxNewQueue = ( Queue_t * ) pcAllocatedBuffer; /*lint !e826 MISRA The buffer cannot be too small because it was dimensioned by sizeof( Queue_t ) + xQueueSizeInBytes. */ -BFD03E66 0018FC5E LW V0, 24(S8) -BFD03E6A 001CF85E SW V0, 28(S8) -344: -345: if( uxItemSize == ( UBaseType_t ) 0 ) -BFD03E6E 002CFC5E LW V0, 44(S8) -BFD03E72 000740A2 BNEZC V0, 0xBFD03E84 -346: { -347: /* No RAM was allocated for the queue storage area, but PC head -348: cannot be set to NULL because NULL is used as a key to say the queue -349: is used as a mutex. Therefore just set pcHead to point to the queue -350: as a benign value that is known to be within the memory map. */ -351: pxNewQueue->pcHead = ( int8_t * ) pxNewQueue; -BFD03E76 001CFC7E LW V1, 28(S8) -BFD03E7A 001CFC5E LW V0, 28(S8) -BFD03E7E E9A0 SW V1, 0(V0) -BFD03E80 CC08 B 0xBFD03E92 -BFD03E82 0C00 NOP -352: } -353: else -354: { -355: /* Jump past the queue structure to find the location of the queue -356: storage area - adding the padding bytes to get a better alignment. */ -357: pxNewQueue->pcHead = pcAllocatedBuffer + sizeof( Queue_t ); -BFD03E84 0018FC5E LW V0, 24(S8) -BFD03E88 00503062 ADDIU V1, V0, 80 -BFD03E8C 001CFC5E LW V0, 28(S8) -BFD03E90 E9A0 SW V1, 0(V0) -358: } -359: -360: /* Initialise the queue members as described above where the queue type -361: is defined. */ -362: pxNewQueue->uxLength = uxQueueLength; -BFD03E92 001CFC5E LW V0, 28(S8) -BFD03E96 0028FC7E LW V1, 40(S8) -BFD03E9A E9AF SW V1, 60(V0) -363: pxNewQueue->uxItemSize = uxItemSize; -BFD03E9C 001CFC5E LW V0, 28(S8) -BFD03EA0 002CFC7E LW V1, 44(S8) -BFD03EA4 0040F862 SW V1, 64(V0) -364: ( void ) xQueueGenericReset( pxNewQueue, pdTRUE ); -BFD03EA8 001CFC9E LW A0, 28(S8) -BFD03EAC EE81 LI A1, 1 -BFD03EAE 1C4677E8 JALS xQueueGenericReset -BFD03EB0 0C001C46 LB V0, 3072(A2) -BFD03EB2 0C00 NOP -365: -366: #if ( configUSE_TRACE_FACILITY == 1 ) -367: { -368: pxNewQueue->ucQueueType = ucQueueType; -369: } -370: #endif /* configUSE_TRACE_FACILITY */ -371: -372: #if( configUSE_QUEUE_SETS == 1 ) -373: { -374: pxNewQueue->pxQueueSetContainer = NULL; -BFD03EB4 001CFC5E LW V0, 28(S8) -BFD03EB8 004CF802 SW ZERO, 76(V0) -375: } -376: #endif /* configUSE_QUEUE_SETS */ -377: -378: traceQUEUE_CREATE( pxNewQueue ); -379: xReturn = pxNewQueue; -BFD03EBC 001CFC5E LW V0, 28(S8) -BFD03EC0 0014F85E SW V0, 20(S8) -380: } -381: else -382: { -383: mtCOVERAGE_TEST_MARKER(); -384: } -385: -386: configASSERT( xReturn ); -BFD03EC4 0014FC5E LW V0, 20(S8) -BFD03EC8 000940A2 BNEZC V0, 0xBFD03EDE -BFD03ECC BFD141A2 LUI V0, 0xBFD1 -BFD03ECE 3082BFD1 LDC1 F30, 12418(S1) -BFD03ED0 9E3C3082 ADDIU A0, V0, -25028 -BFD03ED2 30A09E3C LWC1 F17, 12448(GP) -BFD03ED4 018230A0 ADDIU A1, ZERO, 386 -BFD03ED8 4B7E77E8 JALS vAssertCalled -BFD03EDA 4B7E LW K1, 120(SP) -BFD03EDC 0C00 NOP -387: -388: return xReturn; -BFD03EDE 0014FC5E LW V0, 20(S8) -389: } -BFD03EE2 0FBE MOVE SP, S8 -BFD03EE4 4BE9 LW RA, 36(SP) -BFD03EE6 4BC8 LW S8, 32(SP) -BFD03EE8 4C15 ADDIU SP, SP, 40 -BFD03EEA 459F JR16 RA -BFD03EEC 0C00 NOP -390: /*-----------------------------------------------------------*/ -391: -392: #if ( configUSE_MUTEXES == 1 ) -393: -394: QueueHandle_t xQueueCreateMutex( const uint8_t ucQueueType ) -395: { -BFD05958 4FF1 ADDIU SP, SP, -32 -BFD0595A CBE7 SW RA, 28(SP) -BFD0595C CBC6 SW S8, 24(SP) -BFD0595E 0FDD MOVE S8, SP -BFD05960 0C44 MOVE V0, A0 -BFD05962 0020185E SB V0, 32(S8) -BFD05964 EE500020 AND SP, ZERO, AT -396: Queue_t *pxNewQueue; -397: -398: /* Prevent compiler warnings about unused parameters if -399: configUSE_TRACE_FACILITY does not equal 1. */ -400: ( void ) ucQueueType; -401: -402: /* Allocate the new queue structure. */ -403: pxNewQueue = ( Queue_t * ) pvPortMalloc( sizeof( Queue_t ) ); -BFD05966 EE50 LI A0, 80 -BFD05968 111677E8 JALS pvPortMalloc -BFD0596A 0C001116 ADDI T0, S6, 3072 -BFD0596C 0C00 NOP -BFD0596E 0010F85E SW V0, 16(S8) -404: if( pxNewQueue != NULL ) -BFD05972 0010FC5E LW V0, 16(S8) -BFD05976 003C40E2 BEQZC V0, 0xBFD059F2 -405: { -406: /* Information required for priority inheritance. */ -407: pxNewQueue->pxMutexHolder = NULL; -BFD0597A 0010FC5E LW V0, 16(S8) -BFD0597E E821 SW S0, 4(V0) -408: pxNewQueue->uxQueueType = queueQUEUE_IS_MUTEX; -BFD05980 0010FC5E LW V0, 16(S8) -BFD05984 E820 SW S0, 0(V0) -409: -410: /* Queues used as a mutex no data is actually copied into or out -411: of the queue. */ -412: pxNewQueue->pcWriteTo = NULL; -BFD05986 0010FC5E LW V0, 16(S8) -BFD0598A E822 SW S0, 8(V0) -413: pxNewQueue->u.pcReadFrom = NULL; -BFD0598C 0010FC5E LW V0, 16(S8) -BFD05990 E823 SW S0, 12(V0) -414: -415: /* Each mutex has a length of 1 (like a binary semaphore) and -416: an item size of 0 as nothing is actually copied into or out -417: of the mutex. */ -418: pxNewQueue->uxMessagesWaiting = ( UBaseType_t ) 0U; -BFD05992 0010FC5E LW V0, 16(S8) -BFD05996 E82E SW S0, 56(V0) -419: pxNewQueue->uxLength = ( UBaseType_t ) 1U; -BFD05998 0010FC5E LW V0, 16(S8) -BFD0599C ED81 LI V1, 1 -BFD0599E E9AF SW V1, 60(V0) -420: pxNewQueue->uxItemSize = ( UBaseType_t ) 0U; -BFD059A0 0010FC5E LW V0, 16(S8) -BFD059A4 0040F802 SW ZERO, 64(V0) -421: pxNewQueue->xRxLock = queueUNLOCKED; -BFD059A8 0010FC5E LW V0, 16(S8) -BFD059AC EDFF LI V1, -1 -BFD059AE 0044F862 SW V1, 68(V0) -422: pxNewQueue->xTxLock = queueUNLOCKED; -BFD059B2 0010FC5E LW V0, 16(S8) -BFD059B6 EDFF LI V1, -1 -BFD059B8 0048F862 SW V1, 72(V0) -423: -424: #if ( configUSE_TRACE_FACILITY == 1 ) -425: { -426: pxNewQueue->ucQueueType = ucQueueType; -427: } -428: #endif -429: -430: #if ( configUSE_QUEUE_SETS == 1 ) -431: { -432: pxNewQueue->pxQueueSetContainer = NULL; -BFD059BC 0010FC5E LW V0, 16(S8) -BFD059C0 004CF802 SW ZERO, 76(V0) -433: } -434: #endif -435: -436: /* Ensure the event queues start with the correct state. */ -437: vListInitialise( &( pxNewQueue->xTasksWaitingToSend ) ); -BFD059C4 0010FC5E LW V0, 16(S8) -BFD059C8 6D28 ADDIU V0, V0, 16 -BFD059CA 0C82 MOVE A0, V0 -BFD059CC 457077E8 JALS vListInitialise -BFD059CE 4570 SWM16 0x3, 0(SP) -BFD059D0 0C00 NOP -438: vListInitialise( &( pxNewQueue->xTasksWaitingToReceive ) ); -BFD059D2 0010FC5E LW V0, 16(S8) -BFD059D6 00243042 ADDIU V0, V0, 36 -BFD059DA 0C82 MOVE A0, V0 -BFD059DC 457077E8 JALS vListInitialise -BFD059DE 4570 SWM16 0x3, 0(SP) -BFD059E0 0C00 NOP -439: -440: traceCREATE_MUTEX( pxNewQueue ); -441: -442: /* Start with the semaphore in the expected state. */ -443: ( void ) xQueueGenericSend( pxNewQueue, NULL, ( TickType_t ) 0U, queueSEND_TO_BACK ); -BFD059E2 0010FC9E LW A0, 16(S8) -BFD059E6 0CA0 MOVE A1, ZERO -BFD059E8 0CC0 MOVE A2, ZERO -BFD059EA 0CE0 MOVE A3, ZERO -BFD059EC 06A277E8 JALS xQueueGenericSend -BFD059EE 06A2 ADDU A1, S1, V0 -BFD059F0 0C00 NOP -444: } -445: else -446: { -447: traceCREATE_MUTEX_FAILED(); -448: } -449: -450: configASSERT( pxNewQueue ); -BFD059F2 0010FC5E LW V0, 16(S8) -BFD059F6 000940A2 BNEZC V0, 0xBFD05A0C -BFD059FA BFD141A2 LUI V0, 0xBFD1 -BFD059FC 3082BFD1 LDC1 F30, 12418(S1) -BFD059FE 9E3C3082 ADDIU A0, V0, -25028 -BFD05A00 30A09E3C LWC1 F17, 12448(GP) -BFD05A02 01C230A0 ADDIU A1, ZERO, 450 -BFD05A06 4B7E77E8 JALS vAssertCalled -BFD05A08 4B7E LW K1, 120(SP) -BFD05A0A 0C00 NOP -451: return pxNewQueue; -BFD05A0C 0010FC5E LW V0, 16(S8) -452: } -BFD05A10 0FBE MOVE SP, S8 -BFD05A12 4BE7 LW RA, 28(SP) -BFD05A14 4BC6 LW S8, 24(SP) -BFD05A16 4C11 ADDIU SP, SP, 32 -BFD05A18 459F JR16 RA -BFD05A1A 0C00 NOP -453: -454: #endif /* configUSE_MUTEXES */ -455: /*-----------------------------------------------------------*/ -456: -457: #if ( ( configUSE_MUTEXES == 1 ) && ( INCLUDE_xSemaphoreGetMutexHolder == 1 ) ) -458: -459: void* xQueueGetMutexHolder( QueueHandle_t xSemaphore ) -460: { -461: void *pxReturn; -462: -463: /* This function is called by xSemaphoreGetMutexHolder(), and should not -464: be called directly. Note: This is a good way of determining if the -465: calling task is the mutex holder, but not a good way of determining the -466: identity of the mutex holder, as the holder may change between the -467: following critical section exiting and the function returning. */ -468: taskENTER_CRITICAL(); -469: { -470: if( ( ( Queue_t * ) xSemaphore )->uxQueueType == queueQUEUE_IS_MUTEX ) -471: { -472: pxReturn = ( void * ) ( ( Queue_t * ) xSemaphore )->pxMutexHolder; -473: } -474: else -475: { -476: pxReturn = NULL; -477: } -478: } -479: taskEXIT_CRITICAL(); -480: -481: return pxReturn; -482: } /*lint !e818 xSemaphore cannot be a pointer to const because it is a typedef. */ -483: -484: #endif -485: /*-----------------------------------------------------------*/ -486: -487: #if ( configUSE_RECURSIVE_MUTEXES == 1 ) -488: -489: BaseType_t xQueueGiveMutexRecursive( QueueHandle_t xMutex ) -490: { -BFD06AD0 4FED ADDIU SP, SP, -40 -BFD06AD2 CBE9 SW RA, 36(SP) -BFD06AD4 CBC8 SW S8, 32(SP) -BFD06AD6 CA07 SW S0, 28(SP) -BFD06AD8 0FDD MOVE S8, SP -BFD06ADA 0028F89E SW A0, 40(S8) -491: BaseType_t xReturn; -492: Queue_t * const pxMutex = ( Queue_t * ) xMutex; -BFD06ADE 0028FC5E LW V0, 40(S8) -BFD06AE2 0014F85E SW V0, 20(S8) -493: -494: configASSERT( pxMutex ); -BFD06AE6 0014FC5E LW V0, 20(S8) -BFD06AEA 000940A2 BNEZC V0, 0xBFD06B00 -BFD06AEE BFD141A2 LUI V0, 0xBFD1 -BFD06AF0 3082BFD1 LDC1 F30, 12418(S1) -BFD06AF2 9E3C3082 ADDIU A0, V0, -25028 -BFD06AF4 30A09E3C LWC1 F17, 12448(GP) -BFD06AF6 01EE30A0 ADDIU A1, ZERO, 494 -BFD06AFA 4B7E77E8 JALS vAssertCalled -BFD06AFC 4B7E LW K1, 120(SP) -BFD06AFE 0C00 NOP -495: -496: /* If this is the task that holds the mutex then pxMutexHolder will not -497: change outside of this task. If this task does not hold the mutex then -498: pxMutexHolder can never coincidentally equal the tasks handle, and as -499: this is the only condition we are interested in it does not matter if -500: pxMutexHolder is accessed simultaneously by another task. Therefore no -501: mutual exclusion is required to test the pxMutexHolder variable. */ -502: if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Not a redundant cast as TaskHandle_t is a typedef. */ -BFD06B00 0014FC5E LW V0, 20(S8) -BFD06B04 6821 LW S0, 4(V0) -BFD06B06 4F0277E8 JALS xTaskGetCurrentTaskHandle -BFD06B08 4F02 ADDIU T8, T8, 1 -BFD06B0A 0C00 NOP -BFD06B0C 001AB450 BNE S0, V0, 0xBFD06B44 -BFD06B0E 0C00001A SLL ZERO, K0, 1 -BFD06B10 0C00 NOP -503: { -504: traceGIVE_MUTEX_RECURSIVE( pxMutex ); -505: -506: /* uxRecursiveCallCount cannot be zero if pxMutexHolder is equal to -507: the task handle, therefore no underflow check is required. Also, -508: uxRecursiveCallCount is only modified by the mutex holder, and as -509: there can only be one, no mutual exclusion is required to modify the -510: uxRecursiveCallCount member. */ -511: ( pxMutex->u.uxRecursiveCallCount )--; -BFD06B12 0014FC5E LW V0, 20(S8) -BFD06B16 6923 LW V0, 12(V0) -BFD06B18 6DAE ADDIU V1, V0, -1 -BFD06B1A 0014FC5E LW V0, 20(S8) -BFD06B1E E9A3 SW V1, 12(V0) -512: -513: /* Have we unwound the call count? */ -514: if( pxMutex->u.uxRecursiveCallCount == ( UBaseType_t ) 0 ) -BFD06B20 0014FC5E LW V0, 20(S8) -BFD06B24 6923 LW V0, 12(V0) -BFD06B26 000840A2 BNEZC V0, 0xBFD06B3A -515: { -516: /* Return the mutex. This will automatically unblock any other -517: task that might be waiting to access the mutex. */ -518: ( void ) xQueueGenericSend( pxMutex, NULL, queueMUTEX_GIVE_BLOCK_TIME, queueSEND_TO_BACK ); -BFD06B2A 0014FC9E LW A0, 20(S8) -BFD06B2E 0CA0 MOVE A1, ZERO -BFD06B30 0CC0 MOVE A2, ZERO -BFD06B32 0CE0 MOVE A3, ZERO -BFD06B34 06A277E8 JALS xQueueGenericSend -BFD06B36 06A2 ADDU A1, S1, V0 -BFD06B38 0C00 NOP -519: } -520: else -521: { -522: mtCOVERAGE_TEST_MARKER(); -523: } -524: -525: xReturn = pdPASS; -BFD06B3A ED01 LI V0, 1 -BFD06B3C 0010F85E SW V0, 16(S8) -BFD06B40 CC03 B 0xBFD06B48 -BFD06B42 0C00 NOP -526: } -527: else -528: { -529: /* The mutex cannot be given because the calling task is not the -530: holder. */ -531: xReturn = pdFAIL; -BFD06B44 0010F81E SW ZERO, 16(S8) -532: -533: traceGIVE_MUTEX_RECURSIVE_FAILED( pxMutex ); -534: } -535: -536: return xReturn; -BFD06B48 0010FC5E LW V0, 16(S8) -537: } -BFD06B4C 0FBE MOVE SP, S8 -BFD06B4E 4BE9 LW RA, 36(SP) -BFD06B50 4BC8 LW S8, 32(SP) -BFD06B52 4A07 LW S0, 28(SP) -BFD06B54 4C15 ADDIU SP, SP, 40 -BFD06B56 459F JR16 RA -BFD06B58 0C00 NOP -538: -539: #endif /* configUSE_RECURSIVE_MUTEXES */ -540: /*-----------------------------------------------------------*/ -541: -542: #if ( configUSE_RECURSIVE_MUTEXES == 1 ) -543: -544: BaseType_t xQueueTakeMutexRecursive( QueueHandle_t xMutex, TickType_t xTicksToWait ) -545: { -BFD063CC 4FED ADDIU SP, SP, -40 -BFD063CE CBE9 SW RA, 36(SP) -BFD063D0 CBC8 SW S8, 32(SP) -BFD063D2 CA07 SW S0, 28(SP) -BFD063D4 0FDD MOVE S8, SP -BFD063D6 0028F89E SW A0, 40(S8) -BFD063DA 002CF8BE SW A1, 44(S8) -546: BaseType_t xReturn; -547: Queue_t * const pxMutex = ( Queue_t * ) xMutex; -BFD063DE 0028FC5E LW V0, 40(S8) -BFD063E2 0014F85E SW V0, 20(S8) -548: -549: configASSERT( pxMutex ); -BFD063E6 0014FC5E LW V0, 20(S8) -BFD063EA 000940A2 BNEZC V0, 0xBFD06400 -BFD063EE BFD141A2 LUI V0, 0xBFD1 -BFD063F0 3082BFD1 LDC1 F30, 12418(S1) -BFD063F2 9E3C3082 ADDIU A0, V0, -25028 -BFD063F4 30A09E3C LWC1 F17, 12448(GP) -BFD063F6 022530A0 ADDIU A1, ZERO, 549 -BFD063FA 4B7E77E8 JALS vAssertCalled -BFD063FC 4B7E LW K1, 120(SP) -BFD063FE 0C00 NOP -550: -551: /* Comments regarding mutual exclusion as per those within -552: xQueueGiveMutexRecursive(). */ -553: -554: traceTAKE_MUTEX_RECURSIVE( pxMutex ); -555: -556: if( pxMutex->pxMutexHolder == ( void * ) xTaskGetCurrentTaskHandle() ) /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */ -BFD06400 0014FC5E LW V0, 20(S8) -BFD06404 6821 LW S0, 4(V0) -BFD06406 4F0277E8 JALS xTaskGetCurrentTaskHandle -BFD06408 4F02 ADDIU T8, T8, 1 -BFD0640A 0C00 NOP -BFD0640C 000DB450 BNE S0, V0, 0xBFD0642A -BFD0640E 0C00000D SLL ZERO, T5, 1 -BFD06410 0C00 NOP -557: { -558: ( pxMutex->u.uxRecursiveCallCount )++; -BFD06412 0014FC5E LW V0, 20(S8) -BFD06416 6923 LW V0, 12(V0) -BFD06418 6DA0 ADDIU V1, V0, 1 -BFD0641A 0014FC5E LW V0, 20(S8) -BFD0641E E9A3 SW V1, 12(V0) -559: xReturn = pdPASS; -BFD06420 ED01 LI V0, 1 -BFD06422 0010F85E SW V0, 16(S8) -BFD06426 CC19 B 0xBFD0645A -BFD06428 0C00 NOP -560: } -561: else -562: { -563: xReturn = xQueueGenericReceive( pxMutex, NULL, xTicksToWait, pdFALSE ); -BFD0642A 0014FC9E LW A0, 20(S8) -BFD0642E 0CA0 MOVE A1, ZERO -BFD06430 002CFCDE LW A2, 44(S8) -BFD06434 0CE0 MOVE A3, ZERO -BFD06436 081E77E8 JALS xQueueGenericReceive -BFD06438 081E LBU S0, 14(S1) -BFD0643A 0C00 NOP -BFD0643C 0010F85E SW V0, 16(S8) -564: -565: /* pdPASS will only be returned if the mutex was successfully -566: obtained. The calling task may have entered the Blocked state -567: before reaching here. */ -568: if( xReturn == pdPASS ) -BFD06440 0010FC7E LW V1, 16(S8) -BFD06444 ED01 LI V0, 1 -BFD06446 0008B443 BNE V1, V0, 0xBFD0645A -BFD06448 0C000008 SLL ZERO, T0, 1 -BFD0644A 0C00 NOP -569: { -570: ( pxMutex->u.uxRecursiveCallCount )++; -BFD0644C 0014FC5E LW V0, 20(S8) -BFD06450 6923 LW V0, 12(V0) -BFD06452 6DA0 ADDIU V1, V0, 1 -BFD06454 0014FC5E LW V0, 20(S8) -BFD06458 E9A3 SW V1, 12(V0) -571: } -572: else -573: { -574: traceTAKE_MUTEX_RECURSIVE_FAILED( pxMutex ); -575: } -576: } -577: -578: return xReturn; -BFD0645A 0010FC5E LW V0, 16(S8) -579: } -BFD0645E 0FBE MOVE SP, S8 -BFD06460 4BE9 LW RA, 36(SP) -BFD06462 4BC8 LW S8, 32(SP) -BFD06464 4A07 LW S0, 28(SP) -BFD06466 4C15 ADDIU SP, SP, 40 -BFD06468 459F JR16 RA -BFD0646A 0C00 NOP -580: -581: #endif /* configUSE_RECURSIVE_MUTEXES */ -582: /*-----------------------------------------------------------*/ -583: -584: #if ( configUSE_COUNTING_SEMAPHORES == 1 ) -585: -586: QueueHandle_t xQueueCreateCountingSemaphore( const UBaseType_t uxMaxCount, const UBaseType_t uxInitialCount ) -587: { -BFD0650C 4FF1 ADDIU SP, SP, -32 -BFD0650E CBE7 SW RA, 28(SP) -BFD06510 CBC6 SW S8, 24(SP) -BFD06512 0FDD MOVE S8, SP -BFD06514 0020F89E SW A0, 32(S8) -BFD06518 0024F8BE SW A1, 36(S8) -588: QueueHandle_t xHandle; -589: -590: configASSERT( uxMaxCount != 0 ); -BFD0651C 0020FC5E LW V0, 32(S8) -BFD06520 000940A2 BNEZC V0, 0xBFD06536 -BFD06524 BFD141A2 LUI V0, 0xBFD1 -BFD06526 3082BFD1 LDC1 F30, 12418(S1) -BFD06528 9E3C3082 ADDIU A0, V0, -25028 -BFD0652A 30A09E3C LWC1 F17, 12448(GP) -BFD0652C 024E30A0 ADDIU A1, ZERO, 590 -BFD06530 4B7E77E8 JALS vAssertCalled -BFD06532 4B7E LW K1, 120(SP) -BFD06534 0C00 NOP -591: configASSERT( uxInitialCount <= uxMaxCount ); -BFD06536 0024FC7E LW V1, 36(S8) -BFD0653A 0020FC5E LW V0, 32(S8) -BFD0653E 13900062 SLTU V0, V0, V1 -BFD06540 40E21390 ADDI GP, S0, 16610 -BFD06542 000940E2 BEQZC V0, 0xBFD06558 -BFD06546 BFD141A2 LUI V0, 0xBFD1 -BFD06548 3082BFD1 LDC1 F30, 12418(S1) -BFD0654A 9E3C3082 ADDIU A0, V0, -25028 -BFD0654C 30A09E3C LWC1 F17, 12448(GP) -BFD0654E 024F30A0 ADDIU A1, ZERO, 591 -BFD06552 4B7E77E8 JALS vAssertCalled -BFD06554 4B7E LW K1, 120(SP) -BFD06556 0C00 NOP -592: -593: xHandle = xQueueGenericCreate( uxMaxCount, queueSEMAPHORE_QUEUE_ITEM_LENGTH, queueQUEUE_TYPE_COUNTING_SEMAPHORE ); -BFD06558 0020FC9E LW A0, 32(S8) -BFD0655C 0CA0 MOVE A1, ZERO -BFD0655E EF02 LI A2, 2 -BFD06560 1EFA77E8 JALS xQueueGenericCreate -BFD06562 0C001EFA LB S7, 3072(K0) -BFD06564 0C00 NOP -BFD06566 0010F85E SW V0, 16(S8) -594: -595: if( xHandle != NULL ) -BFD0656A 0010FC5E LW V0, 16(S8) -BFD0656E 000540E2 BEQZC V0, 0xBFD0657C -596: { -597: ( ( Queue_t * ) xHandle )->uxMessagesWaiting = uxInitialCount; -BFD06572 0010FC5E LW V0, 16(S8) -BFD06576 0024FC7E LW V1, 36(S8) -BFD0657A E9AE SW V1, 56(V0) -598: -599: traceCREATE_COUNTING_SEMAPHORE(); -600: } -601: else -602: { -603: traceCREATE_COUNTING_SEMAPHORE_FAILED(); -604: } -605: -606: configASSERT( xHandle ); -BFD0657C 0010FC5E LW V0, 16(S8) -BFD06580 000940A2 BNEZC V0, 0xBFD06596 -BFD06584 BFD141A2 LUI V0, 0xBFD1 -BFD06586 3082BFD1 LDC1 F30, 12418(S1) -BFD06588 9E3C3082 ADDIU A0, V0, -25028 -BFD0658A 30A09E3C LWC1 F17, 12448(GP) -BFD0658C 025E30A0 ADDIU A1, ZERO, 606 -BFD06590 4B7E77E8 JALS vAssertCalled -BFD06592 4B7E LW K1, 120(SP) -BFD06594 0C00 NOP -607: return xHandle; -BFD06596 0010FC5E LW V0, 16(S8) -608: } -BFD0659A 0FBE MOVE SP, S8 -BFD0659C 4BE7 LW RA, 28(SP) -BFD0659E 4BC6 LW S8, 24(SP) -BFD065A0 4C11 ADDIU SP, SP, 32 -BFD065A2 459F JR16 RA -BFD065A4 0C00 NOP -609: -610: #endif /* configUSE_COUNTING_SEMAPHORES */ -611: /*-----------------------------------------------------------*/ -612: -613: BaseType_t xQueueGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, const BaseType_t xCopyPosition ) -614: { -BFD00D44 4FE1 ADDIU SP, SP, -64 -BFD00D46 CBEF SW RA, 60(SP) -BFD00D48 CBCE SW S8, 56(SP) -BFD00D4A 0FDD MOVE S8, SP -BFD00D4C 0040F89E SW A0, 64(S8) -BFD00D50 0044F8BE SW A1, 68(S8) -BFD00D54 0048F8DE SW A2, 72(S8) -BFD00D58 004CF8FE SW A3, 76(S8) -615: BaseType_t xEntryTimeSet = pdFALSE, xYieldRequired; -BFD00D5C 0010F81E SW ZERO, 16(S8) -616: TimeOut_t xTimeOut; -617: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD00D60 0040FC5E LW V0, 64(S8) -BFD00D64 0014F85E SW V0, 20(S8) -618: -619: configASSERT( pxQueue ); -BFD00D68 0014FC5E LW V0, 20(S8) -BFD00D6C 000940A2 BNEZC V0, 0xBFD00D82 -BFD00D70 BFD141A2 LUI V0, 0xBFD1 -BFD00D72 3082BFD1 LDC1 F30, 12418(S1) -BFD00D74 9E3C3082 ADDIU A0, V0, -25028 -BFD00D76 30A09E3C LWC1 F17, 12448(GP) -BFD00D78 026B30A0 ADDIU A1, ZERO, 619 -BFD00D7C 4B7E77E8 JALS vAssertCalled -BFD00D7E 4B7E LW K1, 120(SP) -BFD00D80 0C00 NOP -620: configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); -BFD00D82 0044FC5E LW V0, 68(S8) -BFD00D86 000640A2 BNEZC V0, 0xBFD00D96 -BFD00D8A 0014FC5E LW V0, 20(S8) -BFD00D8E 0040FC42 LW V0, 64(V0) -BFD00D92 000340A2 BNEZC V0, 0xBFD00D9C -BFD00D96 ED01 LI V0, 1 -BFD00D98 CC02 B 0xBFD00D9E -BFD00D9A 0C00 NOP -BFD00D9C 0C40 MOVE V0, ZERO -BFD00D9E 000940A2 BNEZC V0, 0xBFD00DB4 -BFD00DA2 BFD141A2 LUI V0, 0xBFD1 -BFD00DA4 3082BFD1 LDC1 F30, 12418(S1) -BFD00DA6 9E3C3082 ADDIU A0, V0, -25028 -BFD00DA8 30A09E3C LWC1 F17, 12448(GP) -BFD00DAA 026C30A0 ADDIU A1, ZERO, 620 -BFD00DAE 4B7E77E8 JALS vAssertCalled -BFD00DB0 4B7E LW K1, 120(SP) -BFD00DB2 0C00 NOP -621: configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) ); -BFD00DB4 004CFC7E LW V1, 76(S8) -BFD00DB8 ED02 LI V0, 2 -BFD00DBA 0008B443 BNE V1, V0, 0xBFD00DCE -BFD00DBC 0C000008 SLL ZERO, T0, 1 -BFD00DBE 0C00 NOP -BFD00DC0 0014FC5E LW V0, 20(S8) -BFD00DC4 69AF LW V1, 60(V0) -BFD00DC6 ED01 LI V0, 1 -BFD00DC8 0004B443 BNE V1, V0, 0xBFD00DD4 -BFD00DCA 0C000004 SLL ZERO, A0, 1 -BFD00DCC 0C00 NOP -BFD00DCE ED01 LI V0, 1 -BFD00DD0 CC02 B 0xBFD00DD6 -BFD00DD2 0C00 NOP -BFD00DD4 0C40 MOVE V0, ZERO -BFD00DD6 000940A2 BNEZC V0, 0xBFD00DEC -BFD00DDA BFD141A2 LUI V0, 0xBFD1 -BFD00DDC 3082BFD1 LDC1 F30, 12418(S1) -BFD00DDE 9E3C3082 ADDIU A0, V0, -25028 -BFD00DE0 30A09E3C LWC1 F17, 12448(GP) -BFD00DE2 026D30A0 ADDIU A1, ZERO, 621 -BFD00DE6 4B7E77E8 JALS vAssertCalled -BFD00DE8 4B7E LW K1, 120(SP) -BFD00DEA 0C00 NOP -622: #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) -623: { -624: configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); -BFD00DEC 4A8E77E8 JALS xTaskGetSchedulerState -BFD00DEE 4A8E LW S4, 56(SP) -BFD00DF0 0C00 NOP -BFD00DF2 000440A2 BNEZC V0, 0xBFD00DFE -BFD00DF6 0048FC5E LW V0, 72(S8) -BFD00DFA 000340A2 BNEZC V0, 0xBFD00E04 -BFD00DFE ED01 LI V0, 1 -BFD00E00 CC02 B 0xBFD00E06 -BFD00E02 0C00 NOP -BFD00E04 0C40 MOVE V0, ZERO -BFD00E06 000C40A2 BNEZC V0, 0xBFD00E22 -BFD00E0A BFD141A2 LUI V0, 0xBFD1 -BFD00E0C 3082BFD1 LDC1 F30, 12418(S1) -BFD00E0E 9E3C3082 ADDIU A0, V0, -25028 -BFD00E10 30A09E3C LWC1 F17, 12448(GP) -BFD00E12 027030A0 ADDIU A1, ZERO, 624 -BFD00E16 4B7E77E8 JALS vAssertCalled -BFD00E18 4B7E LW K1, 120(SP) -BFD00E1A 0C00 NOP -BFD00E1C CC02 B 0xBFD00E22 -BFD00E1E 0C00 NOP -625: } -626: #endif -627: -628: -629: /* This function relaxes the coding standard somewhat to allow return -630: statements within the function itself. This is done in the interest -631: of execution time efficiency. */ -632: for( ;; ) -633: { -634: taskENTER_CRITICAL(); -BFD00E22 33B877E8 JALS vTaskEnterCritical -BFD00E24 0C0033B8 ADDIU SP, T8, 3072 -BFD00E26 0C00 NOP -635: { -636: /* Is there room on the queue now? The running task must be the -637: highest priority task wanting to access the queue. If the head item -638: in the queue is to be overwritten then it does not matter if the -639: queue is full. */ -640: if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) -BFD00E28 0014FC5E LW V0, 20(S8) -BFD00E2C 69AE LW V1, 56(V0) -BFD00E2E 0014FC5E LW V0, 20(S8) -BFD00E32 692F LW V0, 60(V0) -BFD00E34 13900043 SLTU V0, V1, V0 -BFD00E36 40A21390 ADDI GP, S0, 16546 -BFD00E38 000640A2 BNEZC V0, 0xBFD00E48 -BFD00E3C 004CFC7E LW V1, 76(S8) -BFD00E40 ED02 LI V0, 2 -BFD00E42 006EB443 BNE V1, V0, 0xBFD00F22 -BFD00E44 0C00006E SLL V1, T6, 1 -BFD00E46 0C00 NOP -641: { -642: traceQUEUE_SEND( pxQueue ); -643: xYieldRequired = prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); -BFD00E48 0014FC9E LW A0, 20(S8) -BFD00E4C 0044FCBE LW A1, 68(S8) -BFD00E50 004CFCDE LW A2, 76(S8) -BFD00E54 14E677E8 JALS prvCopyDataToQueue -BFD00E56 0C0014E6 LBU A3, 3072(A2) -BFD00E58 0C00 NOP -BFD00E5A 001CF85E SW V0, 28(S8) -644: -645: #if ( configUSE_QUEUE_SETS == 1 ) -646: { -647: if( pxQueue->pxQueueSetContainer != NULL ) -BFD00E5E 0014FC5E LW V0, 20(S8) -BFD00E62 004CFC42 LW V0, 76(V0) -BFD00E66 001E40E2 BEQZC V0, 0xBFD00EA6 -648: { -649: if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) == pdTRUE ) -BFD00E6A 0014FC9E LW A0, 20(S8) -BFD00E6E 004CFCBE LW A1, 76(S8) -BFD00E72 21D877E8 JALS prvNotifyQueueSetContainer -BFD00E74 0C0021D8 LWC2 T6, 3072(T8) -BFD00E76 0C00 NOP -BFD00E78 0C62 MOVE V1, V0 -BFD00E7A ED01 LI V0, 1 -BFD00E7C 004BB443 BNE V1, V0, 0xBFD00F16 -BFD00E7E 0C00004B SLL V0, T3, 1 -BFD00E80 0C00 NOP -650: { -651: /* The queue is a member of a queue set, and posting -652: to the queue set caused a higher priority task to -653: unblock. A context switch is required. */ -654: queueYIELD_IF_USING_PREEMPTION(); -BFD00E82 4E1677E8 JALS ulPortGetCP0Cause -BFD00E84 4E16 ADDIU S0, S0, -5 -BFD00E86 0C00 NOP -BFD00E88 0020F85E SW V0, 32(S8) -BFD00E8C 0020FC5E LW V0, 32(S8) -BFD00E90 01005042 ORI V0, V0, 256 -BFD00E94 0020F85E SW V0, 32(S8) -BFD00E98 0020FC9E LW A0, 32(S8) -BFD00E9C 4E2677E8 JALS vPortSetCP0Cause -BFD00E9E 4E26 ADDIU S1, S1, 3 -BFD00EA0 0C00 NOP -BFD00EA2 CC39 B 0xBFD00F16 -BFD00EA4 0C00 NOP -655: } -656: else -657: { -658: mtCOVERAGE_TEST_MARKER(); -659: } -660: } -661: else -662: { -663: /* If there was a task waiting for data to arrive on the -664: queue then unblock it now. */ -665: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -BFD00EA6 0014FC5E LW V0, 20(S8) -BFD00EAA 6929 LW V0, 36(V0) -BFD00EAC 001F40E2 BEQZC V0, 0xBFD00EEE -666: { -667: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) -BFD00EB0 0014FC5E LW V0, 20(S8) -BFD00EB4 00243042 ADDIU V0, V0, 36 -BFD00EB8 0C82 MOVE A0, V0 -BFD00EBA 22BC77E8 JALS xTaskRemoveFromEventList -BFD00EBC 0C0022BC LWC2 S5, 3072(GP) -BFD00EBE 0C00 NOP -BFD00EC0 0C62 MOVE V1, V0 -BFD00EC2 ED01 LI V0, 1 -BFD00EC4 0027B443 BNE V1, V0, 0xBFD00F16 -BFD00EC6 0C000027 SLL AT, A3, 1 -BFD00EC8 0C00 NOP -668: { -669: /* The unblocked task has a priority higher than -670: our own so yield immediately. Yes it is ok to -671: do this from within the critical section - the -672: kernel takes care of that. */ -673: queueYIELD_IF_USING_PREEMPTION(); -BFD00ECA 4E1677E8 JALS ulPortGetCP0Cause -BFD00ECC 4E16 ADDIU S0, S0, -5 -BFD00ECE 0C00 NOP -BFD00ED0 0024F85E SW V0, 36(S8) -BFD00ED4 0024FC5E LW V0, 36(S8) -BFD00ED8 01005042 ORI V0, V0, 256 -BFD00EDC 0024F85E SW V0, 36(S8) -BFD00EE0 0024FC9E LW A0, 36(S8) -BFD00EE4 4E2677E8 JALS vPortSetCP0Cause -BFD00EE6 4E26 ADDIU S1, S1, 3 -BFD00EE8 0C00 NOP -BFD00EEA CC15 B 0xBFD00F16 -BFD00EEC 0C00 NOP -674: } -675: else -676: { -677: mtCOVERAGE_TEST_MARKER(); -678: } -679: } -680: else if( xYieldRequired != pdFALSE ) -BFD00EEE 001CFC5E LW V0, 28(S8) -BFD00EF2 001040E2 BEQZC V0, 0xBFD00F16 -681: { -682: /* This path is a special case that will only get -683: executed if the task was holding multiple mutexes -684: and the mutexes were given back in an order that is -685: different to that in which they were taken. */ -686: queueYIELD_IF_USING_PREEMPTION(); -BFD00EF6 4E1677E8 JALS ulPortGetCP0Cause -BFD00EF8 4E16 ADDIU S0, S0, -5 -BFD00EFA 0C00 NOP -BFD00EFC 0028F85E SW V0, 40(S8) -BFD00F00 0028FC5E LW V0, 40(S8) -BFD00F04 01005042 ORI V0, V0, 256 -BFD00F08 0028F85E SW V0, 40(S8) -BFD00F0C 0028FC9E LW A0, 40(S8) -BFD00F10 4E2677E8 JALS vPortSetCP0Cause -BFD00F12 4E26 ADDIU S1, S1, 3 -BFD00F14 0C00 NOP -687: } -688: else -689: { -690: mtCOVERAGE_TEST_MARKER(); -691: } -692: } -693: } -694: #else /* configUSE_QUEUE_SETS */ -695: { -696: /* If there was a task waiting for data to arrive on the -697: queue then unblock it now. */ -698: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -699: { -700: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) -701: { -702: /* The unblocked task has a priority higher than -703: our own so yield immediately. Yes it is ok to do -704: this from within the critical section - the kernel -705: takes care of that. */ -706: queueYIELD_IF_USING_PREEMPTION(); -707: } -708: else -709: { -710: mtCOVERAGE_TEST_MARKER(); -711: } -712: } -713: else if( xYieldRequired != pdFALSE ) -714: { -715: /* This path is a special case that will only get -716: executed if the task was holding multiple mutexes and -717: the mutexes were given back in an order that is -718: different to that in which they were taken. */ -719: queueYIELD_IF_USING_PREEMPTION(); -720: } -721: else -722: { -723: mtCOVERAGE_TEST_MARKER(); -724: } -725: } -726: #endif /* configUSE_QUEUE_SETS */ -727: -728: taskEXIT_CRITICAL(); -BFD00F16 40AA77E8 JALS vTaskExitCritical -BFD00F18 0C0040AA BNEZC T2, 0xBFD0271C -BFD00F1A 0C00 NOP -729: return pdPASS; -BFD00F1C ED01 LI V0, 1 -BFD00F1E CC87 B 0xBFD0102E -BFD00F20 0C00 NOP -730: } -731: else -732: { -733: if( xTicksToWait == ( TickType_t ) 0 ) -BFD00F22 0048FC5E LW V0, 72(S8) -BFD00F26 000640A2 BNEZC V0, 0xBFD00F36 -734: { -735: /* The queue was full and no block time is specified (or -736: the block time has expired) so leave now. */ -737: taskEXIT_CRITICAL(); -BFD00F2A 40AA77E8 JALS vTaskExitCritical -BFD00F2C 0C0040AA BNEZC T2, 0xBFD02730 -BFD00F2E 0C00 NOP -738: -739: /* Return to the original privilege level before exiting -740: the function. */ -741: traceQUEUE_SEND_FAILED( pxQueue ); -742: return errQUEUE_FULL; -BFD00F30 0C40 MOVE V0, ZERO -BFD00F32 CC7D B 0xBFD0102E -BFD00F34 0C00 NOP -743: } -744: else if( xEntryTimeSet == pdFALSE ) -BFD00F36 0010FC5E LW V0, 16(S8) -BFD00F3A 000940A2 BNEZC V0, 0xBFD00F50 -745: { -746: /* The queue was full and a block time was specified so -747: configure the timeout structure. */ -748: vTaskSetTimeOutState( &xTimeOut ); -BFD00F3E 002C305E ADDIU V0, S8, 44 -BFD00F42 0C82 MOVE A0, V0 -BFD00F44 47A677E8 JALS vTaskSetTimeOutState -BFD00F48 0C00 NOP -749: xEntryTimeSet = pdTRUE; -BFD00F4A ED01 LI V0, 1 -BFD00F4C 0010F85E SW V0, 16(S8) -750: } -751: else -752: { -753: /* Entry time was already set. */ -754: mtCOVERAGE_TEST_MARKER(); -755: } -756: } -757: } -758: taskEXIT_CRITICAL(); -BFD00F50 40AA77E8 JALS vTaskExitCritical -BFD00F52 0C0040AA BNEZC T2, 0xBFD02756 -BFD00F54 0C00 NOP -759: -760: /* Interrupts and other tasks can send to and receive from the queue -761: now the critical section has been exited. */ -762: -763: vTaskSuspendAll(); -BFD00F56 4EF477E8 JALS vTaskSuspendAll -BFD00F58 4EF4 ADDIU S7, S7, -6 -BFD00F5A 0C00 NOP -764: prvLockQueue( pxQueue ); -BFD00F5C 33B877E8 JALS vTaskEnterCritical -BFD00F5E 0C0033B8 ADDIU SP, T8, 3072 -BFD00F60 0C00 NOP -BFD00F62 0014FC5E LW V0, 20(S8) -BFD00F66 0044FC62 LW V1, 68(V0) -BFD00F6A ED7F LI V0, -1 -BFD00F6C 0005B443 BNE V1, V0, 0xBFD00F7A -BFD00F6E 0C000005 SLL ZERO, A1, 1 -BFD00F70 0C00 NOP -BFD00F72 0014FC5E LW V0, 20(S8) -BFD00F76 0044F802 SW ZERO, 68(V0) -BFD00F7A 0014FC5E LW V0, 20(S8) -BFD00F7E 0048FC62 LW V1, 72(V0) -BFD00F82 ED7F LI V0, -1 -BFD00F84 0005B443 BNE V1, V0, 0xBFD00F92 -BFD00F86 0C000005 SLL ZERO, A1, 1 -BFD00F88 0C00 NOP -BFD00F8A 0014FC5E LW V0, 20(S8) -BFD00F8E 0048F802 SW ZERO, 72(V0) -BFD00F92 40AA77E8 JALS vTaskExitCritical -BFD00F94 0C0040AA BNEZC T2, 0xBFD02798 -BFD00F96 0C00 NOP -765: -766: /* Update the timeout state to see if it has expired yet. */ -767: if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) -BFD00F98 002C307E ADDIU V1, S8, 44 -BFD00F9C 0048305E ADDIU V0, S8, 72 -BFD00FA0 0C83 MOVE A0, V1 -BFD00FA2 0CA2 MOVE A1, V0 -BFD00FA4 1FF677E8 JALS xTaskCheckForTimeOut -BFD00FA6 0C001FF6 LB RA, 3072(S6) -BFD00FA8 0C00 NOP -BFD00FAA 003740A2 BNEZC V0, 0xBFD0101C -768: { -769: if( prvIsQueueFull( pxQueue ) != pdFALSE ) -BFD00FAE 0014FC9E LW A0, 20(S8) -BFD00FB2 478277E8 JALS prvIsQueueFull -BFD00FB6 0C00 NOP -BFD00FB8 002640E2 BEQZC V0, 0xBFD01008 -770: { -771: traceBLOCKING_ON_QUEUE_SEND( pxQueue ); -772: vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); -BFD00FBC 0014FC5E LW V0, 20(S8) -BFD00FC0 6DA8 ADDIU V1, V0, 16 -BFD00FC2 0048FC5E LW V0, 72(S8) -BFD00FC6 0C83 MOVE A0, V1 -BFD00FC8 0CA2 MOVE A1, V0 -BFD00FCA 2F3A77E8 JALS vTaskPlaceOnEventList -BFD00FCC 2F3A ANDI A2, V1, 0x20 -BFD00FCE 0C00 NOP -773: -774: /* Unlocking the queue means queue events can effect the -775: event list. It is possible that interrupts occurring now -776: remove this task from the event list again - but as the -777: scheduler is suspended the task will go onto the pending -778: ready last instead of the actual ready list. */ -779: prvUnlockQueue( pxQueue ); -BFD00FD0 0014FC9E LW A0, 20(S8) -BFD00FD4 1DEE77E8 JALS prvUnlockQueue -BFD00FD6 0C001DEE LB T7, 3072(T6) -BFD00FD8 0C00 NOP -780: -781: /* Resuming the scheduler will move tasks from the pending -782: ready list into the ready list - so it is feasible that this -783: task is already in a ready list before it yields - in which -784: case the yield will not cause a context switch unless there -785: is also a higher priority task in the pending ready list. */ -786: if( xTaskResumeAll() == pdFALSE ) -BFD00FDA 158E77E8 JALS xTaskResumeAll -BFD00FDC 0C00158E LBU T4, 3072(T6) -BFD00FDE 0C00 NOP -BFD00FE0 FF1E40A2 BNEZC V0, 0xBFD00E20 -BFD00FE2 77E8FF1E LW T8, 30696(S8) -787: { -788: portYIELD_WITHIN_API(); -BFD00FE4 4E1677E8 JALS ulPortGetCP0Cause -BFD00FE6 4E16 ADDIU S0, S0, -5 -BFD00FE8 0C00 NOP -BFD00FEA 0018F85E SW V0, 24(S8) -BFD00FEE 0018FC5E LW V0, 24(S8) -BFD00FF2 01005042 ORI V0, V0, 256 -BFD00FF6 0018F85E SW V0, 24(S8) -BFD00FFA 0018FC9E LW A0, 24(S8) -BFD00FFE 4E2677E8 JALS vPortSetCP0Cause -BFD01000 4E26 ADDIU S1, S1, 3 -BFD01002 0C00 NOP -789: } -790: } -791: else -792: { -793: /* Try again. */ -794: prvUnlockQueue( pxQueue ); -BFD01008 0014FC9E LW A0, 20(S8) -BFD0100C 1DEE77E8 JALS prvUnlockQueue -BFD0100E 0C001DEE LB T7, 3072(T6) -BFD01010 0C00 NOP -795: ( void ) xTaskResumeAll(); -BFD01012 158E77E8 JALS xTaskResumeAll -BFD01014 0C00158E LBU T4, 3072(T6) -BFD01016 0C00 NOP -796: } -797: } -798: else -799: { -800: /* The timeout has expired. */ -801: prvUnlockQueue( pxQueue ); -BFD0101C 0014FC9E LW A0, 20(S8) -BFD01020 1DEE77E8 JALS prvUnlockQueue -BFD01022 0C001DEE LB T7, 3072(T6) -BFD01024 0C00 NOP -802: ( void ) xTaskResumeAll(); -BFD01026 158E77E8 JALS xTaskResumeAll -BFD01028 0C00158E LBU T4, 3072(T6) -BFD0102A 0C00 NOP -803: -804: /* Return to the original privilege level before exiting the -805: function. */ -806: traceQUEUE_SEND_FAILED( pxQueue ); -807: return errQUEUE_FULL; -BFD0102C 0C40 MOVE V0, ZERO -808: } -809: } -BFD00E20 0C00 NOP -BFD01004 CF0E B 0xBFD00E22 -BFD01006 0C00 NOP -BFD01018 CF04 B 0xBFD00E22 -BFD0101A 0C00 NOP -810: } -BFD0102E 0FBE MOVE SP, S8 -BFD01030 4BEF LW RA, 60(SP) -BFD01032 4BCE LW S8, 56(SP) -BFD01034 4C21 ADDIU SP, SP, 64 -BFD01036 459F JR16 RA -BFD01038 0C00 NOP -811: /*-----------------------------------------------------------*/ -812: -813: #if ( configUSE_ALTERNATIVE_API == 1 ) -814: -815: BaseType_t xQueueAltGenericSend( QueueHandle_t xQueue, const void * const pvItemToQueue, TickType_t xTicksToWait, BaseType_t xCopyPosition ) -816: { -817: BaseType_t xEntryTimeSet = pdFALSE; -818: TimeOut_t xTimeOut; -819: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -820: -821: configASSERT( pxQueue ); -822: configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); -823: -824: for( ;; ) -825: { -826: taskENTER_CRITICAL(); -827: { -828: /* Is there room on the queue now? To be running we must be -829: the highest priority task wanting to access the queue. */ -830: if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) -831: { -832: traceQUEUE_SEND( pxQueue ); -833: prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); -834: -835: /* If there was a task waiting for data to arrive on the -836: queue then unblock it now. */ -837: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -838: { -839: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) == pdTRUE ) -840: { -841: /* The unblocked task has a priority higher than -842: our own so yield immediately. */ -843: portYIELD_WITHIN_API(); -844: } -845: else -846: { -847: mtCOVERAGE_TEST_MARKER(); -848: } -849: } -850: else -851: { -852: mtCOVERAGE_TEST_MARKER(); -853: } -854: -855: taskEXIT_CRITICAL(); -856: return pdPASS; -857: } -858: else -859: { -860: if( xTicksToWait == ( TickType_t ) 0 ) -861: { -862: taskEXIT_CRITICAL(); -863: return errQUEUE_FULL; -864: } -865: else if( xEntryTimeSet == pdFALSE ) -866: { -867: vTaskSetTimeOutState( &xTimeOut ); -868: xEntryTimeSet = pdTRUE; -869: } -870: } -871: } -872: taskEXIT_CRITICAL(); -873: -874: taskENTER_CRITICAL(); -875: { -876: if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) -877: { -878: if( prvIsQueueFull( pxQueue ) != pdFALSE ) -879: { -880: traceBLOCKING_ON_QUEUE_SEND( pxQueue ); -881: vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); -882: portYIELD_WITHIN_API(); -883: } -884: else -885: { -886: mtCOVERAGE_TEST_MARKER(); -887: } -888: } -889: else -890: { -891: taskEXIT_CRITICAL(); -892: traceQUEUE_SEND_FAILED( pxQueue ); -893: return errQUEUE_FULL; -894: } -895: } -896: taskEXIT_CRITICAL(); -897: } -898: } -899: -900: #endif /* configUSE_ALTERNATIVE_API */ -901: /*-----------------------------------------------------------*/ -902: -903: #if ( configUSE_ALTERNATIVE_API == 1 ) -904: -905: BaseType_t xQueueAltGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, BaseType_t xJustPeeking ) -906: { -907: BaseType_t xEntryTimeSet = pdFALSE; -908: TimeOut_t xTimeOut; -909: int8_t *pcOriginalReadPosition; -910: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -911: -912: configASSERT( pxQueue ); -913: configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); -914: -915: for( ;; ) -916: { -917: taskENTER_CRITICAL(); -918: { -919: if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) -920: { -921: /* Remember our read position in case we are just peeking. */ -922: pcOriginalReadPosition = pxQueue->u.pcReadFrom; -923: -924: prvCopyDataFromQueue( pxQueue, pvBuffer ); -925: -926: if( xJustPeeking == pdFALSE ) -927: { -928: traceQUEUE_RECEIVE( pxQueue ); -929: -930: /* Data is actually being removed (not just peeked). */ -931: --( pxQueue->uxMessagesWaiting ); -932: -933: #if ( configUSE_MUTEXES == 1 ) -934: { -935: if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) -936: { -937: /* Record the information required to implement -938: priority inheritance should it become necessary. */ -939: pxQueue->pxMutexHolder = ( int8_t * ) xTaskGetCurrentTaskHandle(); -940: } -941: else -942: { -943: mtCOVERAGE_TEST_MARKER(); -944: } -945: } -946: #endif -947: -948: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) -949: { -950: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) -951: { -952: portYIELD_WITHIN_API(); -953: } -954: else -955: { -956: mtCOVERAGE_TEST_MARKER(); -957: } -958: } -959: } -960: else -961: { -962: traceQUEUE_PEEK( pxQueue ); -963: -964: /* The data is not being removed, so reset our read -965: pointer. */ -966: pxQueue->u.pcReadFrom = pcOriginalReadPosition; -967: -968: /* The data is being left in the queue, so see if there are -969: any other tasks waiting for the data. */ -970: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -971: { -972: /* Tasks that are removed from the event list will get added to -973: the pending ready list as the scheduler is still suspended. */ -974: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -975: { -976: /* The task waiting has a higher priority than this task. */ -977: portYIELD_WITHIN_API(); -978: } -979: else -980: { -981: mtCOVERAGE_TEST_MARKER(); -982: } -983: } -984: else -985: { -986: mtCOVERAGE_TEST_MARKER(); -987: } -988: } -989: -990: taskEXIT_CRITICAL(); -991: return pdPASS; -992: } -993: else -994: { -995: if( xTicksToWait == ( TickType_t ) 0 ) -996: { -997: taskEXIT_CRITICAL(); -998: traceQUEUE_RECEIVE_FAILED( pxQueue ); -999: return errQUEUE_EMPTY; -1000: } -1001: else if( xEntryTimeSet == pdFALSE ) -1002: { -1003: vTaskSetTimeOutState( &xTimeOut ); -1004: xEntryTimeSet = pdTRUE; -1005: } -1006: } -1007: } -1008: taskEXIT_CRITICAL(); -1009: -1010: taskENTER_CRITICAL(); -1011: { -1012: if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) -1013: { -1014: if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) -1015: { -1016: traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); -1017: -1018: #if ( configUSE_MUTEXES == 1 ) -1019: { -1020: if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) -1021: { -1022: taskENTER_CRITICAL(); -1023: { -1024: vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); -1025: } -1026: taskEXIT_CRITICAL(); -1027: } -1028: else -1029: { -1030: mtCOVERAGE_TEST_MARKER(); -1031: } -1032: } -1033: #endif -1034: -1035: vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); -1036: portYIELD_WITHIN_API(); -1037: } -1038: else -1039: { -1040: mtCOVERAGE_TEST_MARKER(); -1041: } -1042: } -1043: else -1044: { -1045: taskEXIT_CRITICAL(); -1046: traceQUEUE_RECEIVE_FAILED( pxQueue ); -1047: return errQUEUE_EMPTY; -1048: } -1049: } -1050: taskEXIT_CRITICAL(); -1051: } -1052: } -1053: -1054: -1055: #endif /* configUSE_ALTERNATIVE_API */ -1056: /*-----------------------------------------------------------*/ -1057: -1058: BaseType_t xQueueGenericSendFromISR( QueueHandle_t xQueue, const void * const pvItemToQueue, BaseType_t * const pxHigherPriorityTaskWoken, const BaseType_t xCopyPosition ) -1059: { -BFD023D4 4FED ADDIU SP, SP, -40 -BFD023D6 CBE9 SW RA, 36(SP) -BFD023D8 CBC8 SW S8, 32(SP) -BFD023DA 0FDD MOVE S8, SP -BFD023DC 0028F89E SW A0, 40(S8) -BFD023E0 002CF8BE SW A1, 44(S8) -BFD023E4 0030F8DE SW A2, 48(S8) -BFD023E8 0034F8FE SW A3, 52(S8) -1060: BaseType_t xReturn; -1061: UBaseType_t uxSavedInterruptStatus; -1062: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD023EC 0028FC5E LW V0, 40(S8) -BFD023F0 0014F85E SW V0, 20(S8) -1063: -1064: configASSERT( pxQueue ); -BFD023F4 0014FC5E LW V0, 20(S8) -BFD023F8 000940A2 BNEZC V0, 0xBFD0240E -BFD023FC BFD141A2 LUI V0, 0xBFD1 -BFD023FE 3082BFD1 LDC1 F30, 12418(S1) -BFD02400 9E3C3082 ADDIU A0, V0, -25028 -BFD02402 30A09E3C LWC1 F17, 12448(GP) -BFD02404 042830A0 ADDIU A1, ZERO, 1064 -BFD02406 0428 ADDU S0, A0, V0 -BFD02408 4B7E77E8 JALS vAssertCalled -BFD0240A 4B7E LW K1, 120(SP) -BFD0240C 0C00 NOP -1065: configASSERT( !( ( pvItemToQueue == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); -BFD0240E 002CFC5E LW V0, 44(S8) -BFD02412 000640A2 BNEZC V0, 0xBFD02422 -BFD02416 0014FC5E LW V0, 20(S8) -BFD0241A 0040FC42 LW V0, 64(V0) -BFD0241E 000340A2 BNEZC V0, 0xBFD02428 -BFD02422 ED01 LI V0, 1 -BFD02424 CC02 B 0xBFD0242A -BFD02426 0C00 NOP -BFD02428 0C40 MOVE V0, ZERO -BFD0242A 000940A2 BNEZC V0, 0xBFD02440 -BFD0242E BFD141A2 LUI V0, 0xBFD1 -BFD02430 3082BFD1 LDC1 F30, 12418(S1) -BFD02432 9E3C3082 ADDIU A0, V0, -25028 -BFD02434 30A09E3C LWC1 F17, 12448(GP) -BFD02436 042930A0 ADDIU A1, ZERO, 1065 -BFD02438 0429 SUBU S0, A0, V0 -BFD0243A 4B7E77E8 JALS vAssertCalled -BFD0243C 4B7E LW K1, 120(SP) -BFD0243E 0C00 NOP -1066: configASSERT( !( ( xCopyPosition == queueOVERWRITE ) && ( pxQueue->uxLength != 1 ) ) ); -BFD02440 0034FC7E LW V1, 52(S8) -BFD02444 ED02 LI V0, 2 -BFD02446 0008B443 BNE V1, V0, 0xBFD0245A -BFD02448 0C000008 SLL ZERO, T0, 1 -BFD0244A 0C00 NOP -BFD0244C 0014FC5E LW V0, 20(S8) -BFD02450 69AF LW V1, 60(V0) -BFD02452 ED01 LI V0, 1 -BFD02454 0004B443 BNE V1, V0, 0xBFD02460 -BFD02456 0C000004 SLL ZERO, A0, 1 -BFD02458 0C00 NOP -BFD0245A ED01 LI V0, 1 -BFD0245C CC02 B 0xBFD02462 -BFD0245E 0C00 NOP -BFD02460 0C40 MOVE V0, ZERO -BFD02462 000940A2 BNEZC V0, 0xBFD02478 -BFD02466 BFD141A2 LUI V0, 0xBFD1 -BFD02468 3082BFD1 LDC1 F30, 12418(S1) -BFD0246A 9E3C3082 ADDIU A0, V0, -25028 -BFD0246C 30A09E3C LWC1 F17, 12448(GP) -BFD0246E 042A30A0 ADDIU A1, ZERO, 1066 -BFD02470 042A ADDU S0, A1, V0 -BFD02472 4B7E77E8 JALS vAssertCalled -BFD02474 4B7E LW K1, 120(SP) -BFD02476 0C00 NOP -1067: -1068: /* RTOS ports that support interrupt nesting have the concept of a maximum -1069: system call (or maximum API call) interrupt priority. Interrupts that are -1070: above the maximum system call priority are kept permanently enabled, even -1071: when the RTOS kernel is in a critical section, but cannot make any calls to -1072: FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h -1073: then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -1074: failure if a FreeRTOS API function is called from an interrupt that has been -1075: assigned a priority above the configured maximum system call priority. -1076: Only FreeRTOS functions that end in FromISR can be called from interrupts -1077: that have been assigned a priority at or (logically) below the maximum -1078: system call interrupt priority. FreeRTOS maintains a separate interrupt -1079: safe API to ensure interrupt entry is as fast and as simple as possible. -1080: More information (albeit Cortex-M specific) is provided on the following -1081: link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -1082: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -1083: -1084: /* Similar to xQueueGenericSend, except without blocking if there is no room -1085: in the queue. Also don't directly wake a task that was blocked on a queue -1086: read, instead return a flag to say whether a context switch is required or -1087: not (i.e. has a task with a higher priority than us been woken by this -1088: post). */ -1089: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD02478 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD0247C 0C00 NOP -BFD0247E 0018F85E SW V0, 24(S8) -1090: { -1091: if( ( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) || ( xCopyPosition == queueOVERWRITE ) ) -BFD02482 0014FC5E LW V0, 20(S8) -BFD02486 69AE LW V1, 56(V0) -BFD02488 0014FC5E LW V0, 20(S8) -BFD0248C 692F LW V0, 60(V0) -BFD0248E 13900043 SLTU V0, V1, V0 -BFD02490 40A21390 ADDI GP, S0, 16546 -BFD02492 000640A2 BNEZC V0, 0xBFD024A2 -BFD02496 0034FC7E LW V1, 52(S8) -BFD0249A ED02 LI V0, 2 -BFD0249C 0055B443 BNE V1, V0, 0xBFD0254A -BFD0249E 0C000055 SLL V0, S5, 1 -BFD024A0 0C00 NOP -1092: { -1093: traceQUEUE_SEND_FROM_ISR( pxQueue ); -1094: -1095: /* Semaphores use xQueueGiveFromISR(), so pxQueue will not be a -1096: semaphore or mutex. That means prvCopyDataToQueue() cannot result -1097: in a task disinheriting a priority and prvCopyDataToQueue() can be -1098: called here even though the disinherit function does not check if -1099: the scheduler is suspended before accessing the ready lists. */ -1100: ( void ) prvCopyDataToQueue( pxQueue, pvItemToQueue, xCopyPosition ); -BFD024A2 0014FC9E LW A0, 20(S8) -BFD024A6 002CFCBE LW A1, 44(S8) -BFD024AA 0034FCDE LW A2, 52(S8) -BFD024AE 14E677E8 JALS prvCopyDataToQueue -BFD024B0 0C0014E6 LBU A3, 3072(A2) -BFD024B2 0C00 NOP -1101: -1102: /* The event list is not altered if the queue is locked. This will -1103: be done when the queue is unlocked later. */ -1104: if( pxQueue->xTxLock == queueUNLOCKED ) -BFD024B4 0014FC5E LW V0, 20(S8) -BFD024B8 0048FC62 LW V1, 72(V0) -BFD024BC ED7F LI V0, -1 -BFD024BE 0036B443 BNE V1, V0, 0xBFD0252E -BFD024C0 0C000036 SLL AT, S6, 1 -BFD024C2 0C00 NOP -1105: { -1106: #if ( configUSE_QUEUE_SETS == 1 ) -1107: { -1108: if( pxQueue->pxQueueSetContainer != NULL ) -BFD024C4 0014FC5E LW V0, 20(S8) -BFD024C8 004CFC42 LW V0, 76(V0) -BFD024CC 001640E2 BEQZC V0, 0xBFD024FC -1109: { -1110: if( prvNotifyQueueSetContainer( pxQueue, xCopyPosition ) == pdTRUE ) -BFD024D0 0014FC9E LW A0, 20(S8) -BFD024D4 0034FCBE LW A1, 52(S8) -BFD024D8 21D877E8 JALS prvNotifyQueueSetContainer -BFD024DA 0C0021D8 LWC2 T6, 3072(T8) -BFD024DC 0C00 NOP -BFD024DE 0C62 MOVE V1, V0 -BFD024E0 ED01 LI V0, 1 -BFD024E2 002DB443 BNE V1, V0, 0xBFD02540 -BFD024E4 0C00002D SLL AT, T5, 1 -BFD024E6 0C00 NOP -1111: { -1112: /* The queue is a member of a queue set, and posting -1113: to the queue set caused a higher priority task to -1114: unblock. A context switch is required. */ -1115: if( pxHigherPriorityTaskWoken != NULL ) -BFD024E8 0030FC5E LW V0, 48(S8) -BFD024EC 002840E2 BEQZC V0, 0xBFD02540 -1116: { -1117: *pxHigherPriorityTaskWoken = pdTRUE; -BFD024F0 0030FC5E LW V0, 48(S8) -BFD024F4 ED81 LI V1, 1 -BFD024F6 E9A0 SW V1, 0(V0) -BFD024F8 CC23 B 0xBFD02540 -BFD024FA 0C00 NOP -1118: } -1119: else -1120: { -1121: mtCOVERAGE_TEST_MARKER(); -1122: } -1123: } -1124: else -1125: { -1126: mtCOVERAGE_TEST_MARKER(); -1127: } -1128: } -1129: else -1130: { -1131: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -BFD024FC 0014FC5E LW V0, 20(S8) -BFD02500 6929 LW V0, 36(V0) -BFD02502 001D40E2 BEQZC V0, 0xBFD02540 -1132: { -1133: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -BFD02506 0014FC5E LW V0, 20(S8) -BFD0250A 00243042 ADDIU V0, V0, 36 -BFD0250E 0C82 MOVE A0, V0 -BFD02510 22BC77E8 JALS xTaskRemoveFromEventList -BFD02512 0C0022BC LWC2 S5, 3072(GP) -BFD02514 0C00 NOP -BFD02516 001340E2 BEQZC V0, 0xBFD02540 -1134: { -1135: /* The task waiting has a higher priority so -1136: record that a context switch is required. */ -1137: if( pxHigherPriorityTaskWoken != NULL ) -BFD0251A 0030FC5E LW V0, 48(S8) -BFD0251E 000F40E2 BEQZC V0, 0xBFD02540 -1138: { -1139: *pxHigherPriorityTaskWoken = pdTRUE; -BFD02522 0030FC5E LW V0, 48(S8) -BFD02526 ED81 LI V1, 1 -BFD02528 E9A0 SW V1, 0(V0) -BFD0252A CC0A B 0xBFD02540 -BFD0252C 0C00 NOP -1140: } -1141: else -1142: { -1143: mtCOVERAGE_TEST_MARKER(); -1144: } -1145: } -1146: else -1147: { -1148: mtCOVERAGE_TEST_MARKER(); -1149: } -1150: } -1151: else -1152: { -1153: mtCOVERAGE_TEST_MARKER(); -1154: } -1155: } -1156: } -1157: #else /* configUSE_QUEUE_SETS */ -1158: { -1159: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -1160: { -1161: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -1162: { -1163: /* The task waiting has a higher priority so record that a -1164: context switch is required. */ -1165: if( pxHigherPriorityTaskWoken != NULL ) -1166: { -1167: *pxHigherPriorityTaskWoken = pdTRUE; -1168: } -1169: else -1170: { -1171: mtCOVERAGE_TEST_MARKER(); -1172: } -1173: } -1174: else -1175: { -1176: mtCOVERAGE_TEST_MARKER(); -1177: } -1178: } -1179: else -1180: { -1181: mtCOVERAGE_TEST_MARKER(); -1182: } -1183: } -1184: #endif /* configUSE_QUEUE_SETS */ -1185: } -1186: else -1187: { -1188: /* Increment the lock count so the task that unlocks the queue -1189: knows that data was posted while it was locked. */ -1190: ++( pxQueue->xTxLock ); -BFD0252E 0014FC5E LW V0, 20(S8) -BFD02532 0048FC42 LW V0, 72(V0) -BFD02536 6DA0 ADDIU V1, V0, 1 -BFD02538 0014FC5E LW V0, 20(S8) -BFD0253C 0048F862 SW V1, 72(V0) -1191: } -1192: -1193: xReturn = pdPASS; -BFD02540 ED01 LI V0, 1 -BFD02542 0010F85E SW V0, 16(S8) -BFD02546 CC03 B 0xBFD0254E -BFD02548 0C00 NOP -1194: } -1195: else -1196: { -1197: traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ); -1198: xReturn = errQUEUE_FULL; -BFD0254A 0010F81E SW ZERO, 16(S8) -1199: } -1200: } -1201: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD0254E 0018FC9E LW A0, 24(S8) -BFD02552 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD02554 4D5E ADDIU T2, T2, -1 -BFD02556 0C00 NOP -1202: -1203: return xReturn; -BFD02558 0010FC5E LW V0, 16(S8) -1204: } -BFD0255C 0FBE MOVE SP, S8 -BFD0255E 4BE9 LW RA, 36(SP) -BFD02560 4BC8 LW S8, 32(SP) -BFD02562 4C15 ADDIU SP, SP, 40 -BFD02564 459F JR16 RA -BFD02566 0C00 NOP -1205: /*-----------------------------------------------------------*/ -1206: -1207: BaseType_t xQueueGiveFromISR( QueueHandle_t xQueue, BaseType_t * const pxHigherPriorityTaskWoken ) -1208: { -BFD0286C 4FED ADDIU SP, SP, -40 -BFD0286E CBE9 SW RA, 36(SP) -BFD02870 CBC8 SW S8, 32(SP) -BFD02872 0FDD MOVE S8, SP -BFD02874 0028F89E SW A0, 40(S8) -BFD02878 002CF8BE SW A1, 44(S8) -1209: BaseType_t xReturn; -1210: UBaseType_t uxSavedInterruptStatus; -1211: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD0287C 0028FC5E LW V0, 40(S8) -BFD02880 0014F85E SW V0, 20(S8) -1212: -1213: /* Similar to xQueueGenericSendFromISR() but used with semaphores where the -1214: item size is 0. Don't directly wake a task that was blocked on a queue -1215: read, instead return a flag to say whether a context switch is required or -1216: not (i.e. has a task with a higher priority than us been woken by this -1217: post). */ -1218: -1219: configASSERT( pxQueue ); -BFD02884 0014FC5E LW V0, 20(S8) -BFD02888 000940A2 BNEZC V0, 0xBFD0289E -BFD0288C BFD141A2 LUI V0, 0xBFD1 -BFD0288E 3082BFD1 LDC1 F30, 12418(S1) -BFD02890 9E3C3082 ADDIU A0, V0, -25028 -BFD02892 30A09E3C LWC1 F17, 12448(GP) -BFD02894 04C330A0 ADDIU A1, ZERO, 1219 -BFD02896 04C3 SUBU S1, S1, A0 -BFD02898 4B7E77E8 JALS vAssertCalled -BFD0289A 4B7E LW K1, 120(SP) -BFD0289C 0C00 NOP -1220: -1221: /* xQueueGenericSendFromISR() should be used instead of xQueueGiveFromISR() -1222: if the item size is not 0. */ -1223: configASSERT( pxQueue->uxItemSize == 0 ); -BFD0289E 0014FC5E LW V0, 20(S8) -BFD028A2 0040FC42 LW V0, 64(V0) -BFD028A6 000940E2 BEQZC V0, 0xBFD028BC -BFD028AA BFD141A2 LUI V0, 0xBFD1 -BFD028AC 3082BFD1 LDC1 F30, 12418(S1) -BFD028AE 9E3C3082 ADDIU A0, V0, -25028 -BFD028B0 30A09E3C LWC1 F17, 12448(GP) -BFD028B2 04C730A0 ADDIU A1, ZERO, 1223 -BFD028B4 04C7 SUBU S1, V1, A0 -BFD028B6 4B7E77E8 JALS vAssertCalled -BFD028B8 4B7E LW K1, 120(SP) -BFD028BA 0C00 NOP -1224: -1225: /* Normally a mutex would not be given from an interrupt, and doing so is -1226: definitely wrong if there is a mutex holder as priority inheritance makes no -1227: sense for an interrupts, only tasks. */ -1228: configASSERT( !( ( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) && ( pxQueue->pxMutexHolder != NULL ) ) ); -BFD028BC 0014FC5E LW V0, 20(S8) -BFD028C0 6920 LW V0, 0(V0) -BFD028C2 000540A2 BNEZC V0, 0xBFD028D0 -BFD028C6 0014FC5E LW V0, 20(S8) -BFD028CA 6921 LW V0, 4(V0) -BFD028CC 000340A2 BNEZC V0, 0xBFD028D6 -BFD028D0 ED01 LI V0, 1 -BFD028D2 CC02 B 0xBFD028D8 -BFD028D4 0C00 NOP -BFD028D6 0C40 MOVE V0, ZERO -BFD028D8 000940A2 BNEZC V0, 0xBFD028EE -BFD028DC BFD141A2 LUI V0, 0xBFD1 -BFD028DE 3082BFD1 LDC1 F30, 12418(S1) -BFD028E0 9E3C3082 ADDIU A0, V0, -25028 -BFD028E2 30A09E3C LWC1 F17, 12448(GP) -BFD028E4 04CC30A0 ADDIU A1, ZERO, 1228 -BFD028E6 04CC ADDU S1, A2, A0 -BFD028E8 4B7E77E8 JALS vAssertCalled -BFD028EA 4B7E LW K1, 120(SP) -BFD028EC 0C00 NOP -1229: -1230: /* RTOS ports that support interrupt nesting have the concept of a maximum -1231: system call (or maximum API call) interrupt priority. Interrupts that are -1232: above the maximum system call priority are kept permanently enabled, even -1233: when the RTOS kernel is in a critical section, but cannot make any calls to -1234: FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h -1235: then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -1236: failure if a FreeRTOS API function is called from an interrupt that has been -1237: assigned a priority above the configured maximum system call priority. -1238: Only FreeRTOS functions that end in FromISR can be called from interrupts -1239: that have been assigned a priority at or (logically) below the maximum -1240: system call interrupt priority. FreeRTOS maintains a separate interrupt -1241: safe API to ensure interrupt entry is as fast and as simple as possible. -1242: More information (albeit Cortex-M specific) is provided on the following -1243: link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -1244: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -1245: -1246: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD028EE 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD028F2 0C00 NOP -BFD028F4 0018F85E SW V0, 24(S8) -1247: { -1248: /* When the queue is used to implement a semaphore no data is ever -1249: moved through the queue but it is still valid to see if the queue 'has -1250: space'. */ -1251: if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) -BFD028F8 0014FC5E LW V0, 20(S8) -BFD028FC 69AE LW V1, 56(V0) -BFD028FE 0014FC5E LW V0, 20(S8) -BFD02902 692F LW V0, 60(V0) -BFD02904 13900043 SLTU V0, V1, V0 -BFD02906 40E21390 ADDI GP, S0, 16610 -BFD02908 005140E2 BEQZC V0, 0xBFD029AE -1252: { -1253: traceQUEUE_SEND_FROM_ISR( pxQueue ); -1254: -1255: /* A task can only have an inherited priority if it is a mutex -1256: holder - and if there is a mutex holder then the mutex cannot be -1257: given from an ISR. As this is the ISR version of the function it -1258: can be assumed there is no mutex holder and no need to determine if -1259: priority disinheritance is needed. Simply increase the count of -1260: messages (semaphores) available. */ -1261: ++( pxQueue->uxMessagesWaiting ); -BFD0290C 0014FC5E LW V0, 20(S8) -BFD02910 692E LW V0, 56(V0) -BFD02912 6DA0 ADDIU V1, V0, 1 -BFD02914 0014FC5E LW V0, 20(S8) -BFD02918 E9AE SW V1, 56(V0) -1262: -1263: /* The event list is not altered if the queue is locked. This will -1264: be done when the queue is unlocked later. */ -1265: if( pxQueue->xTxLock == queueUNLOCKED ) -BFD0291A 0014FC5E LW V0, 20(S8) -BFD0291E 0048FC62 LW V1, 72(V0) -BFD02922 ED7F LI V0, -1 -BFD02924 0035B443 BNE V1, V0, 0xBFD02992 -BFD02926 0C000035 SLL AT, S5, 1 -BFD02928 0C00 NOP -1266: { -1267: #if ( configUSE_QUEUE_SETS == 1 ) -1268: { -1269: if( pxQueue->pxQueueSetContainer != NULL ) -BFD0292A 0014FC5E LW V0, 20(S8) -BFD0292E 004CFC42 LW V0, 76(V0) -BFD02932 001540E2 BEQZC V0, 0xBFD02960 -1270: { -1271: if( prvNotifyQueueSetContainer( pxQueue, queueSEND_TO_BACK ) == pdTRUE ) -BFD02936 0014FC9E LW A0, 20(S8) -BFD0293A 0CA0 MOVE A1, ZERO -BFD0293C 21D877E8 JALS prvNotifyQueueSetContainer -BFD0293E 0C0021D8 LWC2 T6, 3072(T8) -BFD02940 0C00 NOP -BFD02942 0C62 MOVE V1, V0 -BFD02944 ED01 LI V0, 1 -BFD02946 002DB443 BNE V1, V0, 0xBFD029A4 -BFD02948 0C00002D SLL AT, T5, 1 -BFD0294A 0C00 NOP -1272: { -1273: /* The semaphore is a member of a queue set, and -1274: posting to the queue set caused a higher priority -1275: task to unblock. A context switch is required. */ -1276: if( pxHigherPriorityTaskWoken != NULL ) -BFD0294C 002CFC5E LW V0, 44(S8) -BFD02950 002840E2 BEQZC V0, 0xBFD029A4 -1277: { -1278: *pxHigherPriorityTaskWoken = pdTRUE; -BFD02954 002CFC5E LW V0, 44(S8) -BFD02958 ED81 LI V1, 1 -BFD0295A E9A0 SW V1, 0(V0) -BFD0295C CC23 B 0xBFD029A4 -BFD0295E 0C00 NOP -1279: } -1280: else -1281: { -1282: mtCOVERAGE_TEST_MARKER(); -1283: } -1284: } -1285: else -1286: { -1287: mtCOVERAGE_TEST_MARKER(); -1288: } -1289: } -1290: else -1291: { -1292: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -BFD02960 0014FC5E LW V0, 20(S8) -BFD02964 6929 LW V0, 36(V0) -BFD02966 001D40E2 BEQZC V0, 0xBFD029A4 -1293: { -1294: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -BFD0296A 0014FC5E LW V0, 20(S8) -BFD0296E 00243042 ADDIU V0, V0, 36 -BFD02972 0C82 MOVE A0, V0 -BFD02974 22BC77E8 JALS xTaskRemoveFromEventList -BFD02976 0C0022BC LWC2 S5, 3072(GP) -BFD02978 0C00 NOP -BFD0297A 001340E2 BEQZC V0, 0xBFD029A4 -1295: { -1296: /* The task waiting has a higher priority so -1297: record that a context switch is required. */ -1298: if( pxHigherPriorityTaskWoken != NULL ) -BFD0297E 002CFC5E LW V0, 44(S8) -BFD02982 000F40E2 BEQZC V0, 0xBFD029A4 -1299: { -1300: *pxHigherPriorityTaskWoken = pdTRUE; -BFD02986 002CFC5E LW V0, 44(S8) -BFD0298A ED81 LI V1, 1 -BFD0298C E9A0 SW V1, 0(V0) -BFD0298E CC0A B 0xBFD029A4 -BFD02990 0C00 NOP -1301: } -1302: else -1303: { -1304: mtCOVERAGE_TEST_MARKER(); -1305: } -1306: } -1307: else -1308: { -1309: mtCOVERAGE_TEST_MARKER(); -1310: } -1311: } -1312: else -1313: { -1314: mtCOVERAGE_TEST_MARKER(); -1315: } -1316: } -1317: } -1318: #else /* configUSE_QUEUE_SETS */ -1319: { -1320: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -1321: { -1322: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -1323: { -1324: /* The task waiting has a higher priority so record that a -1325: context switch is required. */ -1326: if( pxHigherPriorityTaskWoken != NULL ) -1327: { -1328: *pxHigherPriorityTaskWoken = pdTRUE; -1329: } -1330: else -1331: { -1332: mtCOVERAGE_TEST_MARKER(); -1333: } -1334: } -1335: else -1336: { -1337: mtCOVERAGE_TEST_MARKER(); -1338: } -1339: } -1340: else -1341: { -1342: mtCOVERAGE_TEST_MARKER(); -1343: } -1344: } -1345: #endif /* configUSE_QUEUE_SETS */ -1346: } -1347: else -1348: { -1349: /* Increment the lock count so the task that unlocks the queue -1350: knows that data was posted while it was locked. */ -1351: ++( pxQueue->xTxLock ); -BFD02992 0014FC5E LW V0, 20(S8) -BFD02996 0048FC42 LW V0, 72(V0) -BFD0299A 6DA0 ADDIU V1, V0, 1 -BFD0299C 0014FC5E LW V0, 20(S8) -BFD029A0 0048F862 SW V1, 72(V0) -1352: } -1353: -1354: xReturn = pdPASS; -BFD029A4 ED01 LI V0, 1 -BFD029A6 0010F85E SW V0, 16(S8) -BFD029AA CC03 B 0xBFD029B2 -BFD029AC 0C00 NOP -1355: } -1356: else -1357: { -1358: traceQUEUE_SEND_FROM_ISR_FAILED( pxQueue ); -1359: xReturn = errQUEUE_FULL; -BFD029AE 0010F81E SW ZERO, 16(S8) -1360: } -1361: } -1362: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD029B2 0018FC9E LW A0, 24(S8) -BFD029B6 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD029B8 4D5E ADDIU T2, T2, -1 -BFD029BA 0C00 NOP -1363: -1364: return xReturn; -BFD029BC 0010FC5E LW V0, 16(S8) -1365: } -BFD029C0 0FBE MOVE SP, S8 -BFD029C2 4BE9 LW RA, 36(SP) -BFD029C4 4BC8 LW S8, 32(SP) -BFD029C6 4C15 ADDIU SP, SP, 40 -BFD029C8 459F JR16 RA -BFD029CA 0C00 NOP -1366: /*-----------------------------------------------------------*/ -1367: -1368: BaseType_t xQueueGenericReceive( QueueHandle_t xQueue, void * const pvBuffer, TickType_t xTicksToWait, const BaseType_t xJustPeeking ) -1369: { -BFD0103C 4FE5 ADDIU SP, SP, -56 -BFD0103E CBED SW RA, 52(SP) -BFD01040 CBCC SW S8, 48(SP) -BFD01042 0FDD MOVE S8, SP -BFD01044 0038F89E SW A0, 56(S8) -BFD01048 003CF8BE SW A1, 60(S8) -BFD0104C 0040F8DE SW A2, 64(S8) -BFD01050 0044F8FE SW A3, 68(S8) -1370: BaseType_t xEntryTimeSet = pdFALSE; -BFD01054 0010F81E SW ZERO, 16(S8) -1371: TimeOut_t xTimeOut; -1372: int8_t *pcOriginalReadPosition; -1373: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD01058 0038FC5E LW V0, 56(S8) -BFD0105C 0014F85E SW V0, 20(S8) -1374: -1375: configASSERT( pxQueue ); -BFD01060 0014FC5E LW V0, 20(S8) -BFD01064 000940A2 BNEZC V0, 0xBFD0107A -BFD01068 BFD141A2 LUI V0, 0xBFD1 -BFD0106A 3082BFD1 LDC1 F30, 12418(S1) -BFD0106C 9E3C3082 ADDIU A0, V0, -25028 -BFD0106E 30A09E3C LWC1 F17, 12448(GP) -BFD01070 055F30A0 ADDIU A1, ZERO, 1375 -BFD01072 055F SUBU V0, A3, A1 -BFD01074 4B7E77E8 JALS vAssertCalled -BFD01076 4B7E LW K1, 120(SP) -BFD01078 0C00 NOP -1376: configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); -BFD0107A 003CFC5E LW V0, 60(S8) -BFD0107E 000640A2 BNEZC V0, 0xBFD0108E -BFD01082 0014FC5E LW V0, 20(S8) -BFD01086 0040FC42 LW V0, 64(V0) -BFD0108A 000340A2 BNEZC V0, 0xBFD01094 -BFD0108E ED01 LI V0, 1 -BFD01090 CC02 B 0xBFD01096 -BFD01092 0C00 NOP -BFD01094 0C40 MOVE V0, ZERO -BFD01096 000940A2 BNEZC V0, 0xBFD010AC -BFD0109A BFD141A2 LUI V0, 0xBFD1 -BFD0109C 3082BFD1 LDC1 F30, 12418(S1) -BFD0109E 9E3C3082 ADDIU A0, V0, -25028 -BFD010A0 30A09E3C LWC1 F17, 12448(GP) -BFD010A2 056030A0 ADDIU A1, ZERO, 1376 -BFD010A4 0560 ADDU V0, S0, A2 -BFD010A6 4B7E77E8 JALS vAssertCalled -BFD010A8 4B7E LW K1, 120(SP) -BFD010AA 0C00 NOP -1377: #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) -1378: { -1379: configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); -BFD010AC 4A8E77E8 JALS xTaskGetSchedulerState -BFD010AE 4A8E LW S4, 56(SP) -BFD010B0 0C00 NOP -BFD010B2 000440A2 BNEZC V0, 0xBFD010BE -BFD010B6 0040FC5E LW V0, 64(S8) -BFD010BA 000340A2 BNEZC V0, 0xBFD010C4 -BFD010BE ED01 LI V0, 1 -BFD010C0 CC02 B 0xBFD010C6 -BFD010C2 0C00 NOP -BFD010C4 0C40 MOVE V0, ZERO -BFD010C6 000C40A2 BNEZC V0, 0xBFD010E2 -BFD010CA BFD141A2 LUI V0, 0xBFD1 -BFD010CC 3082BFD1 LDC1 F30, 12418(S1) -BFD010CE 9E3C3082 ADDIU A0, V0, -25028 -BFD010D0 30A09E3C LWC1 F17, 12448(GP) -BFD010D2 056330A0 ADDIU A1, ZERO, 1379 -BFD010D4 0563 SUBU V0, S1, A2 -BFD010D6 4B7E77E8 JALS vAssertCalled -BFD010D8 4B7E LW K1, 120(SP) -BFD010DA 0C00 NOP -BFD010DC CC02 B 0xBFD010E2 -BFD010DE 0C00 NOP -1380: } -1381: #endif -1382: -1383: /* This function relaxes the coding standard somewhat to allow return -1384: statements within the function itself. This is done in the interest -1385: of execution time efficiency. */ -1386: -1387: for( ;; ) -1388: { -1389: taskENTER_CRITICAL(); -BFD010E2 33B877E8 JALS vTaskEnterCritical -BFD010E4 0C0033B8 ADDIU SP, T8, 3072 -BFD010E6 0C00 NOP -1390: { -1391: /* Is there data in the queue now? To be running the calling task -1392: must be the highest priority task wanting to access the queue. */ -1393: if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) -BFD010E8 0014FC5E LW V0, 20(S8) -BFD010EC 692E LW V0, 56(V0) -BFD010EE 007040E2 BEQZC V0, 0xBFD011D2 -1394: { -1395: /* Remember the read position in case the queue is only being -1396: peeked. */ -1397: pcOriginalReadPosition = pxQueue->u.pcReadFrom; -BFD010F2 0014FC5E LW V0, 20(S8) -BFD010F6 6923 LW V0, 12(V0) -BFD010F8 0018F85E SW V0, 24(S8) -1398: -1399: prvCopyDataFromQueue( pxQueue, pvBuffer ); -BFD010FC 0014FC9E LW A0, 20(S8) -BFD01100 003CFCBE LW A1, 60(S8) -BFD01104 367A77E8 JALS prvCopyDataFromQueue -BFD01106 0C00367A LHU S3, 3072(K0) -BFD01108 0C00 NOP -1400: -1401: if( xJustPeeking == pdFALSE ) -BFD0110A 0044FC5E LW V0, 68(S8) -BFD0110E 003640A2 BNEZC V0, 0xBFD0117E -1402: { -1403: traceQUEUE_RECEIVE( pxQueue ); -1404: -1405: /* Actually removing data, not just peeking. */ -1406: --( pxQueue->uxMessagesWaiting ); -BFD01112 0014FC5E LW V0, 20(S8) -BFD01116 692E LW V0, 56(V0) -BFD01118 6DAE ADDIU V1, V0, -1 -BFD0111A 0014FC5E LW V0, 20(S8) -BFD0111E E9AE SW V1, 56(V0) -1407: -1408: #if ( configUSE_MUTEXES == 1 ) -1409: { -1410: if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) -BFD01120 0014FC5E LW V0, 20(S8) -BFD01124 6920 LW V0, 0(V0) -BFD01126 000740A2 BNEZC V0, 0xBFD01138 -1411: { -1412: /* Record the information required to implement -1413: priority inheritance should it become necessary. */ -1414: pxQueue->pxMutexHolder = ( int8_t * ) pvTaskIncrementMutexHeldCount(); /*lint !e961 Cast is not redundant as TaskHandle_t is a typedef. */ -BFD0112A 4CE077E8 JALS pvTaskIncrementMutexHeldCount -BFD0112C 4CE0 ADDIU A3, A3, 0 -BFD0112E 0C00 NOP -BFD01130 0C62 MOVE V1, V0 -BFD01132 0014FC5E LW V0, 20(S8) -BFD01136 E9A1 SW V1, 4(V0) -1415: } -1416: else -1417: { -1418: mtCOVERAGE_TEST_MARKER(); -1419: } -1420: } -1421: #endif /* configUSE_MUTEXES */ -1422: -1423: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) -BFD01138 0014FC5E LW V0, 20(S8) -BFD0113C 6924 LW V0, 16(V0) -BFD0113E 004240E2 BEQZC V0, 0xBFD011C6 -1424: { -1425: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) == pdTRUE ) -BFD01142 0014FC5E LW V0, 20(S8) -BFD01146 6D28 ADDIU V0, V0, 16 -BFD01148 0C82 MOVE A0, V0 -BFD0114A 22BC77E8 JALS xTaskRemoveFromEventList -BFD0114C 0C0022BC LWC2 S5, 3072(GP) -BFD0114E 0C00 NOP -BFD01150 0C62 MOVE V1, V0 -BFD01152 ED01 LI V0, 1 -BFD01154 0037B443 BNE V1, V0, 0xBFD011C6 -BFD01156 0C000037 SLL AT, S7, 1 -BFD01158 0C00 NOP -1426: { -1427: queueYIELD_IF_USING_PREEMPTION(); -BFD0115A 4E1677E8 JALS ulPortGetCP0Cause -BFD0115C 4E16 ADDIU S0, S0, -5 -BFD0115E 0C00 NOP -BFD01160 001CF85E SW V0, 28(S8) -BFD01164 001CFC5E LW V0, 28(S8) -BFD01168 01005042 ORI V0, V0, 256 -BFD0116C 001CF85E SW V0, 28(S8) -BFD01170 001CFC9E LW A0, 28(S8) -BFD01174 4E2677E8 JALS vPortSetCP0Cause -BFD01176 4E26 ADDIU S1, S1, 3 -BFD01178 0C00 NOP -BFD0117A CC25 B 0xBFD011C6 -BFD0117C 0C00 NOP -1428: } -1429: else -1430: { -1431: mtCOVERAGE_TEST_MARKER(); -1432: } -1433: } -1434: else -1435: { -1436: mtCOVERAGE_TEST_MARKER(); -1437: } -1438: } -1439: else -1440: { -1441: traceQUEUE_PEEK( pxQueue ); -1442: -1443: /* The data is not being removed, so reset the read -1444: pointer. */ -1445: pxQueue->u.pcReadFrom = pcOriginalReadPosition; -BFD0117E 0014FC5E LW V0, 20(S8) -BFD01182 0018FC7E LW V1, 24(S8) -BFD01186 E9A3 SW V1, 12(V0) -1446: -1447: /* The data is being left in the queue, so see if there are -1448: any other tasks waiting for the data. */ -1449: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -BFD01188 0014FC5E LW V0, 20(S8) -BFD0118C 6929 LW V0, 36(V0) -BFD0118E 001A40E2 BEQZC V0, 0xBFD011C6 -1450: { -1451: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -BFD01192 0014FC5E LW V0, 20(S8) -BFD01196 00243042 ADDIU V0, V0, 36 -BFD0119A 0C82 MOVE A0, V0 -BFD0119C 22BC77E8 JALS xTaskRemoveFromEventList -BFD0119E 0C0022BC LWC2 S5, 3072(GP) -BFD011A0 0C00 NOP -BFD011A2 001040E2 BEQZC V0, 0xBFD011C6 -1452: { -1453: /* The task waiting has a higher priority than this task. */ -1454: queueYIELD_IF_USING_PREEMPTION(); -BFD011A6 4E1677E8 JALS ulPortGetCP0Cause -BFD011A8 4E16 ADDIU S0, S0, -5 -BFD011AA 0C00 NOP -BFD011AC 0020F85E SW V0, 32(S8) -BFD011B0 0020FC5E LW V0, 32(S8) -BFD011B4 01005042 ORI V0, V0, 256 -BFD011B8 0020F85E SW V0, 32(S8) -BFD011BC 0020FC9E LW A0, 32(S8) -BFD011C0 4E2677E8 JALS vPortSetCP0Cause -BFD011C2 4E26 ADDIU S1, S1, 3 -BFD011C4 0C00 NOP -1455: } -1456: else -1457: { -1458: mtCOVERAGE_TEST_MARKER(); -1459: } -1460: } -1461: else -1462: { -1463: mtCOVERAGE_TEST_MARKER(); -1464: } -1465: } -1466: -1467: taskEXIT_CRITICAL(); -BFD011C6 40AA77E8 JALS vTaskExitCritical -BFD011C8 0C0040AA BNEZC T2, prvCopyDataToQueue -BFD011CA 0C00 NOP -1468: return pdPASS; -BFD011CC ED01 LI V0, 1 -BFD011CE CC9A B 0xBFD01304 -BFD011D0 0C00 NOP -1469: } -1470: else -1471: { -1472: if( xTicksToWait == ( TickType_t ) 0 ) -BFD011D2 0040FC5E LW V0, 64(S8) -BFD011D6 000640A2 BNEZC V0, 0xBFD011E6 -1473: { -1474: /* The queue was empty and no block time is specified (or -1475: the block time has expired) so leave now. */ -1476: taskEXIT_CRITICAL(); -BFD011DA 40AA77E8 JALS vTaskExitCritical -BFD011DC 0C0040AA BNEZC T2, 0xBFD029E0 -BFD011DE 0C00 NOP -1477: traceQUEUE_RECEIVE_FAILED( pxQueue ); -1478: return errQUEUE_EMPTY; -BFD011E0 0C40 MOVE V0, ZERO -BFD011E2 CC90 B 0xBFD01304 -BFD011E4 0C00 NOP -1479: } -1480: else if( xEntryTimeSet == pdFALSE ) -BFD011E6 0010FC5E LW V0, 16(S8) -BFD011EA 000940A2 BNEZC V0, 0xBFD01200 -1481: { -1482: /* The queue was empty and a block time was specified so -1483: configure the timeout structure. */ -1484: vTaskSetTimeOutState( &xTimeOut ); -BFD011EE 0028305E ADDIU V0, S8, 40 -BFD011F2 0C82 MOVE A0, V0 -BFD011F4 47A677E8 JALS vTaskSetTimeOutState -BFD011F8 0C00 NOP -1485: xEntryTimeSet = pdTRUE; -BFD011FA ED01 LI V0, 1 -BFD011FC 0010F85E SW V0, 16(S8) -1486: } -1487: else -1488: { -1489: /* Entry time was already set. */ -1490: mtCOVERAGE_TEST_MARKER(); -1491: } -1492: } -1493: } -1494: taskEXIT_CRITICAL(); -BFD01200 40AA77E8 JALS vTaskExitCritical -BFD01202 0C0040AA BNEZC T2, 0xBFD02A06 -BFD01204 0C00 NOP -1495: -1496: /* Interrupts and other tasks can send to and receive from the queue -1497: now the critical section has been exited. */ -1498: -1499: vTaskSuspendAll(); -BFD01206 4EF477E8 JALS vTaskSuspendAll -BFD01208 4EF4 ADDIU S7, S7, -6 -BFD0120A 0C00 NOP -1500: prvLockQueue( pxQueue ); -BFD0120C 33B877E8 JALS vTaskEnterCritical -BFD0120E 0C0033B8 ADDIU SP, T8, 3072 -BFD01210 0C00 NOP -BFD01212 0014FC5E LW V0, 20(S8) -BFD01216 0044FC62 LW V1, 68(V0) -BFD0121A ED7F LI V0, -1 -BFD0121C 0005B443 BNE V1, V0, 0xBFD0122A -BFD0121E 0C000005 SLL ZERO, A1, 1 -BFD01220 0C00 NOP -BFD01222 0014FC5E LW V0, 20(S8) -BFD01226 0044F802 SW ZERO, 68(V0) -BFD0122A 0014FC5E LW V0, 20(S8) -BFD0122E 0048FC62 LW V1, 72(V0) -BFD01232 ED7F LI V0, -1 -BFD01234 0005B443 BNE V1, V0, 0xBFD01242 -BFD01236 0C000005 SLL ZERO, A1, 1 -BFD01238 0C00 NOP -BFD0123A 0014FC5E LW V0, 20(S8) -BFD0123E 0048F802 SW ZERO, 72(V0) -BFD01242 40AA77E8 JALS vTaskExitCritical -BFD01244 0C0040AA BNEZC T2, 0xBFD02A48 -BFD01246 0C00 NOP -1501: -1502: /* Update the timeout state to see if it has expired yet. */ -1503: if( xTaskCheckForTimeOut( &xTimeOut, &xTicksToWait ) == pdFALSE ) -BFD01248 0028307E ADDIU V1, S8, 40 -BFD0124C 0040305E ADDIU V0, S8, 64 -BFD01250 0C83 MOVE A0, V1 -BFD01252 0CA2 MOVE A1, V0 -BFD01254 1FF677E8 JALS xTaskCheckForTimeOut -BFD01256 0C001FF6 LB RA, 3072(S6) -BFD01258 0C00 NOP -BFD0125A 004A40A2 BNEZC V0, 0xBFD012F2 -1504: { -1505: if( prvIsQueueEmpty( pxQueue ) != pdFALSE ) -BFD0125E 0014FC9E LW A0, 20(S8) -BFD01262 49D077E8 JALS prvIsQueueEmpty -BFD01264 49D0 LW T6, 64(SP) -BFD01266 0C00 NOP -BFD01268 003940E2 BEQZC V0, 0xBFD012DE -1506: { -1507: traceBLOCKING_ON_QUEUE_RECEIVE( pxQueue ); -1508: -1509: #if ( configUSE_MUTEXES == 1 ) -1510: { -1511: if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) -BFD0126C 0014FC5E LW V0, 20(S8) -BFD01270 6920 LW V0, 0(V0) -BFD01272 000D40A2 BNEZC V0, 0xBFD01290 -1512: { -1513: taskENTER_CRITICAL(); -BFD01276 33B877E8 JALS vTaskEnterCritical -BFD01278 0C0033B8 ADDIU SP, T8, 3072 -BFD0127A 0C00 NOP -1514: { -1515: vTaskPriorityInherit( ( void * ) pxQueue->pxMutexHolder ); -BFD0127C 0014FC5E LW V0, 20(S8) -BFD01280 6921 LW V0, 4(V0) -BFD01282 0C82 MOVE A0, V0 -BFD01284 1A9077E8 JALS vTaskPriorityInherit -BFD01286 0C001A90 SB S4, 3072(S0) -BFD01288 0C00 NOP -1516: } -1517: taskEXIT_CRITICAL(); -BFD0128A 40AA77E8 JALS vTaskExitCritical -BFD0128C 0C0040AA BNEZC T2, 0xBFD02A90 -BFD0128E 0C00 NOP -1518: } -1519: else -1520: { -1521: mtCOVERAGE_TEST_MARKER(); -1522: } -1523: } -1524: #endif -1525: -1526: vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait ); -BFD01290 0014FC5E LW V0, 20(S8) -BFD01294 00243062 ADDIU V1, V0, 36 -BFD01298 0040FC5E LW V0, 64(S8) -BFD0129C 0C83 MOVE A0, V1 -BFD0129E 0CA2 MOVE A1, V0 -BFD012A0 2F3A77E8 JALS vTaskPlaceOnEventList -BFD012A2 2F3A ANDI A2, V1, 0x20 -BFD012A4 0C00 NOP -1527: prvUnlockQueue( pxQueue ); -BFD012A6 0014FC9E LW A0, 20(S8) -BFD012AA 1DEE77E8 JALS prvUnlockQueue -BFD012AC 0C001DEE LB T7, 3072(T6) -BFD012AE 0C00 NOP -1528: if( xTaskResumeAll() == pdFALSE ) -BFD012B0 158E77E8 JALS xTaskResumeAll -BFD012B2 0C00158E LBU T4, 3072(T6) -BFD012B4 0C00 NOP -BFD012B6 FF1340A2 BNEZC V0, 0xBFD010E0 -BFD012B8 77E8FF13 LW T8, 30696(S3) -1529: { -1530: portYIELD_WITHIN_API(); -BFD012BA 4E1677E8 JALS ulPortGetCP0Cause -BFD012BC 4E16 ADDIU S0, S0, -5 -BFD012BE 0C00 NOP -BFD012C0 0024F85E SW V0, 36(S8) -BFD012C4 0024FC5E LW V0, 36(S8) -BFD012C8 01005042 ORI V0, V0, 256 -BFD012CC 0024F85E SW V0, 36(S8) -BFD012D0 0024FC9E LW A0, 36(S8) -BFD012D4 4E2677E8 JALS vPortSetCP0Cause -BFD012D6 4E26 ADDIU S1, S1, 3 -BFD012D8 0C00 NOP -1531: } -1532: else -1533: { -1534: mtCOVERAGE_TEST_MARKER(); -1535: } -1536: } -1537: else -1538: { -1539: /* Try again. */ -1540: prvUnlockQueue( pxQueue ); -BFD012DE 0014FC9E LW A0, 20(S8) -BFD012E2 1DEE77E8 JALS prvUnlockQueue -BFD012E4 0C001DEE LB T7, 3072(T6) -BFD012E6 0C00 NOP -1541: ( void ) xTaskResumeAll(); -BFD012E8 158E77E8 JALS xTaskResumeAll -BFD012EA 0C00158E LBU T4, 3072(T6) -BFD012EC 0C00 NOP -1542: } -1543: } -1544: else -1545: { -1546: prvUnlockQueue( pxQueue ); -BFD012F2 0014FC9E LW A0, 20(S8) -BFD012F6 1DEE77E8 JALS prvUnlockQueue -BFD012F8 0C001DEE LB T7, 3072(T6) -BFD012FA 0C00 NOP -1547: ( void ) xTaskResumeAll(); -BFD012FC 158E77E8 JALS xTaskResumeAll -BFD012FE 0C00158E LBU T4, 3072(T6) -BFD01300 0C00 NOP -1548: traceQUEUE_RECEIVE_FAILED( pxQueue ); -1549: return errQUEUE_EMPTY; -BFD01302 0C40 MOVE V0, ZERO -1550: } -1551: } -BFD010E0 0C00 NOP -BFD012DA CF03 B 0xBFD010E2 -BFD012DC 0C00 NOP -BFD012EE CEF9 B 0xBFD010E2 -BFD012F0 0C00 NOP -1552: } -BFD01304 0FBE MOVE SP, S8 -BFD01306 4BED LW RA, 52(SP) -BFD01308 4BCC LW S8, 48(SP) -BFD0130A 4C1D ADDIU SP, SP, 56 -BFD0130C 459F JR16 RA -BFD0130E 0C00 NOP -1553: /*-----------------------------------------------------------*/ -1554: -1555: BaseType_t xQueueReceiveFromISR( QueueHandle_t xQueue, void * const pvBuffer, BaseType_t * const pxHigherPriorityTaskWoken ) -1556: { -BFD03AC8 4FED ADDIU SP, SP, -40 -BFD03ACA CBE9 SW RA, 36(SP) -BFD03ACC CBC8 SW S8, 32(SP) -BFD03ACE 0FDD MOVE S8, SP -BFD03AD0 0028F89E SW A0, 40(S8) -BFD03AD4 002CF8BE SW A1, 44(S8) -BFD03AD8 0030F8DE SW A2, 48(S8) -1557: BaseType_t xReturn; -1558: UBaseType_t uxSavedInterruptStatus; -1559: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD03ADC 0028FC5E LW V0, 40(S8) -BFD03AE0 0014F85E SW V0, 20(S8) -1560: -1561: configASSERT( pxQueue ); -BFD03AE4 0014FC5E LW V0, 20(S8) -BFD03AE8 000940A2 BNEZC V0, 0xBFD03AFE -BFD03AEC BFD141A2 LUI V0, 0xBFD1 -BFD03AEE 3082BFD1 LDC1 F30, 12418(S1) -BFD03AF0 9E3C3082 ADDIU A0, V0, -25028 -BFD03AF2 30A09E3C LWC1 F17, 12448(GP) -BFD03AF4 061930A0 ADDIU A1, ZERO, 1561 -BFD03AF6 0619 SUBU A0, A0, S1 -BFD03AF8 4B7E77E8 JALS vAssertCalled -BFD03AFA 4B7E LW K1, 120(SP) -BFD03AFC 0C00 NOP -1562: configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); -BFD03AFE 002CFC5E LW V0, 44(S8) -BFD03B02 000640A2 BNEZC V0, 0xBFD03B12 -BFD03B06 0014FC5E LW V0, 20(S8) -BFD03B0A 0040FC42 LW V0, 64(V0) -BFD03B0E 000340A2 BNEZC V0, 0xBFD03B18 -BFD03B12 ED01 LI V0, 1 -BFD03B14 CC02 B 0xBFD03B1A -BFD03B16 0C00 NOP -BFD03B18 0C40 MOVE V0, ZERO -BFD03B1A 000940A2 BNEZC V0, 0xBFD03B30 -BFD03B1E BFD141A2 LUI V0, 0xBFD1 -BFD03B20 3082BFD1 LDC1 F30, 12418(S1) -BFD03B22 9E3C3082 ADDIU A0, V0, -25028 -BFD03B24 30A09E3C LWC1 F17, 12448(GP) -BFD03B26 061A30A0 ADDIU A1, ZERO, 1562 -BFD03B28 061A ADDU A0, A1, S1 -BFD03B2A 4B7E77E8 JALS vAssertCalled -BFD03B2C 4B7E LW K1, 120(SP) -BFD03B2E 0C00 NOP -1563: -1564: /* RTOS ports that support interrupt nesting have the concept of a maximum -1565: system call (or maximum API call) interrupt priority. Interrupts that are -1566: above the maximum system call priority are kept permanently enabled, even -1567: when the RTOS kernel is in a critical section, but cannot make any calls to -1568: FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h -1569: then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -1570: failure if a FreeRTOS API function is called from an interrupt that has been -1571: assigned a priority above the configured maximum system call priority. -1572: Only FreeRTOS functions that end in FromISR can be called from interrupts -1573: that have been assigned a priority at or (logically) below the maximum -1574: system call interrupt priority. FreeRTOS maintains a separate interrupt -1575: safe API to ensure interrupt entry is as fast and as simple as possible. -1576: More information (albeit Cortex-M specific) is provided on the following -1577: link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -1578: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -1579: -1580: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD03B30 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD03B34 0C00 NOP -BFD03B36 0018F85E SW V0, 24(S8) -1581: { -1582: /* Cannot block in an ISR, so check there is data available. */ -1583: if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) -BFD03B3A 0014FC5E LW V0, 20(S8) -BFD03B3E 692E LW V0, 56(V0) -BFD03B40 003C40E2 BEQZC V0, 0xBFD03BBC -1584: { -1585: traceQUEUE_RECEIVE_FROM_ISR( pxQueue ); -1586: -1587: prvCopyDataFromQueue( pxQueue, pvBuffer ); -BFD03B44 0014FC9E LW A0, 20(S8) -BFD03B48 002CFCBE LW A1, 44(S8) -BFD03B4C 367A77E8 JALS prvCopyDataFromQueue -BFD03B4E 0C00367A LHU S3, 3072(K0) -BFD03B50 0C00 NOP -1588: --( pxQueue->uxMessagesWaiting ); -BFD03B52 0014FC5E LW V0, 20(S8) -BFD03B56 692E LW V0, 56(V0) -BFD03B58 6DAE ADDIU V1, V0, -1 -BFD03B5A 0014FC5E LW V0, 20(S8) -BFD03B5E E9AE SW V1, 56(V0) -1589: -1590: /* If the queue is locked the event list will not be modified. -1591: Instead update the lock count so the task that unlocks the queue -1592: will know that an ISR has removed data while the queue was -1593: locked. */ -1594: if( pxQueue->xRxLock == queueUNLOCKED ) -BFD03B60 0014FC5E LW V0, 20(S8) -BFD03B64 0044FC62 LW V1, 68(V0) -BFD03B68 ED7F LI V0, -1 -BFD03B6A 0019B443 BNE V1, V0, 0xBFD03BA0 -BFD03B6C 0C000019 SLL ZERO, T9, 1 -BFD03B6E 0C00 NOP -1595: { -1596: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) -BFD03B70 0014FC5E LW V0, 20(S8) -BFD03B74 6924 LW V0, 16(V0) -BFD03B76 001C40E2 BEQZC V0, 0xBFD03BB2 -1597: { -1598: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) -BFD03B7A 0014FC5E LW V0, 20(S8) -BFD03B7E 6D28 ADDIU V0, V0, 16 -BFD03B80 0C82 MOVE A0, V0 -BFD03B82 22BC77E8 JALS xTaskRemoveFromEventList -BFD03B84 0C0022BC LWC2 S5, 3072(GP) -BFD03B86 0C00 NOP -BFD03B88 001340E2 BEQZC V0, 0xBFD03BB2 -1599: { -1600: /* The task waiting has a higher priority than us so -1601: force a context switch. */ -1602: if( pxHigherPriorityTaskWoken != NULL ) -BFD03B8C 0030FC5E LW V0, 48(S8) -BFD03B90 000F40E2 BEQZC V0, 0xBFD03BB2 -1603: { -1604: *pxHigherPriorityTaskWoken = pdTRUE; -BFD03B94 0030FC5E LW V0, 48(S8) -BFD03B98 ED81 LI V1, 1 -BFD03B9A E9A0 SW V1, 0(V0) -BFD03B9C CC0A B 0xBFD03BB2 -BFD03B9E 0C00 NOP -1605: } -1606: else -1607: { -1608: mtCOVERAGE_TEST_MARKER(); -1609: } -1610: } -1611: else -1612: { -1613: mtCOVERAGE_TEST_MARKER(); -1614: } -1615: } -1616: else -1617: { -1618: mtCOVERAGE_TEST_MARKER(); -1619: } -1620: } -1621: else -1622: { -1623: /* Increment the lock count so the task that unlocks the queue -1624: knows that data was removed while it was locked. */ -1625: ++( pxQueue->xRxLock ); -BFD03BA0 0014FC5E LW V0, 20(S8) -BFD03BA4 0044FC42 LW V0, 68(V0) -BFD03BA8 6DA0 ADDIU V1, V0, 1 -BFD03BAA 0014FC5E LW V0, 20(S8) -BFD03BAE 0044F862 SW V1, 68(V0) -1626: } -1627: -1628: xReturn = pdPASS; -BFD03BB2 ED01 LI V0, 1 -BFD03BB4 0010F85E SW V0, 16(S8) -BFD03BB8 CC03 B 0xBFD03BC0 -BFD03BBA 0C00 NOP -1629: } -1630: else -1631: { -1632: xReturn = pdFAIL; -BFD03BBC 0010F81E SW ZERO, 16(S8) -1633: traceQUEUE_RECEIVE_FROM_ISR_FAILED( pxQueue ); -1634: } -1635: } -1636: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD03BC0 0018FC9E LW A0, 24(S8) -BFD03BC4 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD03BC6 4D5E ADDIU T2, T2, -1 -BFD03BC8 0C00 NOP -1637: -1638: return xReturn; -BFD03BCA 0010FC5E LW V0, 16(S8) -1639: } -BFD03BCE 0FBE MOVE SP, S8 -BFD03BD0 4BE9 LW RA, 36(SP) -BFD03BD2 4BC8 LW S8, 32(SP) -BFD03BD4 4C15 ADDIU SP, SP, 40 -BFD03BD6 459F JR16 RA -BFD03BD8 0C00 NOP -1640: /*-----------------------------------------------------------*/ -1641: -1642: BaseType_t xQueuePeekFromISR( QueueHandle_t xQueue, void * const pvBuffer ) -1643: { -BFD04824 4FED ADDIU SP, SP, -40 -BFD04826 CBE9 SW RA, 36(SP) -BFD04828 CBC8 SW S8, 32(SP) -BFD0482A 0FDD MOVE S8, SP -BFD0482C 0028F89E SW A0, 40(S8) -BFD04830 002CF8BE SW A1, 44(S8) -1644: BaseType_t xReturn; -1645: UBaseType_t uxSavedInterruptStatus; -1646: int8_t *pcOriginalReadPosition; -1647: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD04834 0028FC5E LW V0, 40(S8) -BFD04838 0014F85E SW V0, 20(S8) -1648: -1649: configASSERT( pxQueue ); -BFD0483C 0014FC5E LW V0, 20(S8) -BFD04840 000940A2 BNEZC V0, 0xBFD04856 -BFD04844 BFD141A2 LUI V0, 0xBFD1 -BFD04846 3082BFD1 LDC1 F30, 12418(S1) -BFD04848 9E3C3082 ADDIU A0, V0, -25028 -BFD0484A 30A09E3C LWC1 F17, 12448(GP) -BFD0484C 067130A0 ADDIU A1, ZERO, 1649 -BFD0484E 0671 SUBU A0, S0, A3 -BFD04850 4B7E77E8 JALS vAssertCalled -BFD04852 4B7E LW K1, 120(SP) -BFD04854 0C00 NOP -1650: configASSERT( !( ( pvBuffer == NULL ) && ( pxQueue->uxItemSize != ( UBaseType_t ) 0U ) ) ); -BFD04856 002CFC5E LW V0, 44(S8) -BFD0485A 000640A2 BNEZC V0, 0xBFD0486A -BFD0485E 0014FC5E LW V0, 20(S8) -BFD04862 0040FC42 LW V0, 64(V0) -BFD04866 000340A2 BNEZC V0, 0xBFD04870 -BFD0486A ED01 LI V0, 1 -BFD0486C CC02 B 0xBFD04872 -BFD0486E 0C00 NOP -BFD04870 0C40 MOVE V0, ZERO -BFD04872 000940A2 BNEZC V0, 0xBFD04888 -BFD04876 BFD141A2 LUI V0, 0xBFD1 -BFD04878 3082BFD1 LDC1 F30, 12418(S1) -BFD0487A 9E3C3082 ADDIU A0, V0, -25028 -BFD0487C 30A09E3C LWC1 F17, 12448(GP) -BFD0487E 067230A0 ADDIU A1, ZERO, 1650 -BFD04880 0672 ADDU A0, S1, A3 -BFD04882 4B7E77E8 JALS vAssertCalled -BFD04884 4B7E LW K1, 120(SP) -BFD04886 0C00 NOP -1651: configASSERT( pxQueue->uxItemSize != 0 ); /* Can't peek a semaphore. */ -BFD04888 0014FC5E LW V0, 20(S8) -BFD0488C 0040FC42 LW V0, 64(V0) -BFD04890 000940A2 BNEZC V0, 0xBFD048A6 -BFD04894 BFD141A2 LUI V0, 0xBFD1 -BFD04896 3082BFD1 LDC1 F30, 12418(S1) -BFD04898 9E3C3082 ADDIU A0, V0, -25028 -BFD0489A 30A09E3C LWC1 F17, 12448(GP) -BFD0489C 067330A0 ADDIU A1, ZERO, 1651 -BFD0489E 0673 SUBU A0, S1, A3 -BFD048A0 4B7E77E8 JALS vAssertCalled -BFD048A2 4B7E LW K1, 120(SP) -BFD048A4 0C00 NOP -1652: -1653: /* RTOS ports that support interrupt nesting have the concept of a maximum -1654: system call (or maximum API call) interrupt priority. Interrupts that are -1655: above the maximum system call priority are kept permanently enabled, even -1656: when the RTOS kernel is in a critical section, but cannot make any calls to -1657: FreeRTOS API functions. If configASSERT() is defined in FreeRTOSConfig.h -1658: then portASSERT_IF_INTERRUPT_PRIORITY_INVALID() will result in an assertion -1659: failure if a FreeRTOS API function is called from an interrupt that has been -1660: assigned a priority above the configured maximum system call priority. -1661: Only FreeRTOS functions that end in FromISR can be called from interrupts -1662: that have been assigned a priority at or (logically) below the maximum -1663: system call interrupt priority. FreeRTOS maintains a separate interrupt -1664: safe API to ensure interrupt entry is as fast and as simple as possible. -1665: More information (albeit Cortex-M specific) is provided on the following -1666: link: http://www.freertos.org/RTOS-Cortex-M3-M4.html */ -1667: portASSERT_IF_INTERRUPT_PRIORITY_INVALID(); -1668: -1669: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD048A6 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD048AA 0C00 NOP -BFD048AC 0018F85E SW V0, 24(S8) -1670: { -1671: /* Cannot block in an ISR, so check there is data available. */ -1672: if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) -BFD048B0 0014FC5E LW V0, 20(S8) -BFD048B4 692E LW V0, 56(V0) -BFD048B6 001640E2 BEQZC V0, 0xBFD048E6 -1673: { -1674: traceQUEUE_PEEK_FROM_ISR( pxQueue ); -1675: -1676: /* Remember the read position so it can be reset as nothing is -1677: actually being removed from the queue. */ -1678: pcOriginalReadPosition = pxQueue->u.pcReadFrom; -BFD048BA 0014FC5E LW V0, 20(S8) -BFD048BE 6923 LW V0, 12(V0) -BFD048C0 001CF85E SW V0, 28(S8) -1679: prvCopyDataFromQueue( pxQueue, pvBuffer ); -BFD048C4 0014FC9E LW A0, 20(S8) -BFD048C8 002CFCBE LW A1, 44(S8) -BFD048CC 367A77E8 JALS prvCopyDataFromQueue -BFD048CE 0C00367A LHU S3, 3072(K0) -BFD048D0 0C00 NOP -1680: pxQueue->u.pcReadFrom = pcOriginalReadPosition; -BFD048D2 0014FC5E LW V0, 20(S8) -BFD048D6 001CFC7E LW V1, 28(S8) -BFD048DA E9A3 SW V1, 12(V0) -1681: -1682: xReturn = pdPASS; -BFD048DC ED01 LI V0, 1 -BFD048DE 0010F85E SW V0, 16(S8) -BFD048E2 CC03 B 0xBFD048EA -BFD048E4 0C00 NOP -1683: } -1684: else -1685: { -1686: xReturn = pdFAIL; -BFD048E6 0010F81E SW ZERO, 16(S8) -1687: traceQUEUE_PEEK_FROM_ISR_FAILED( pxQueue ); -1688: } -1689: } -1690: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD048EA 0018FC9E LW A0, 24(S8) -BFD048EE 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD048F0 4D5E ADDIU T2, T2, -1 -BFD048F2 0C00 NOP -1691: -1692: return xReturn; -BFD048F4 0010FC5E LW V0, 16(S8) -1693: } -BFD048F8 0FBE MOVE SP, S8 -BFD048FA 4BE9 LW RA, 36(SP) -BFD048FC 4BC8 LW S8, 32(SP) -BFD048FE 4C15 ADDIU SP, SP, 40 -BFD04900 459F JR16 RA -BFD04902 0C00 NOP -1694: /*-----------------------------------------------------------*/ -1695: -1696: UBaseType_t uxQueueMessagesWaiting( const QueueHandle_t xQueue ) -1697: { -BFD08B2C 4FF1 ADDIU SP, SP, -32 -BFD08B2E CBE7 SW RA, 28(SP) -BFD08B30 CBC6 SW S8, 24(SP) -BFD08B32 0FDD MOVE S8, SP -BFD08B34 0020F89E SW A0, 32(S8) -1698: UBaseType_t uxReturn; -1699: -1700: configASSERT( xQueue ); -BFD08B38 0020FC5E LW V0, 32(S8) -BFD08B3C 000940A2 BNEZC V0, 0xBFD08B52 -BFD08B40 BFD141A2 LUI V0, 0xBFD1 -BFD08B42 3082BFD1 LDC1 F30, 12418(S1) -BFD08B44 9E3C3082 ADDIU A0, V0, -25028 -BFD08B46 30A09E3C LWC1 F17, 12448(GP) -BFD08B48 06A430A0 ADDIU A1, ZERO, 1700 -BFD08B4A 06A4 ADDU A1, V0, V0 -BFD08B4C 4B7E77E8 JALS vAssertCalled -BFD08B4E 4B7E LW K1, 120(SP) -BFD08B50 0C00 NOP -1701: -1702: taskENTER_CRITICAL(); -BFD08B52 33B877E8 JALS vTaskEnterCritical -BFD08B54 0C0033B8 ADDIU SP, T8, 3072 -BFD08B56 0C00 NOP -1703: { -1704: uxReturn = ( ( Queue_t * ) xQueue )->uxMessagesWaiting; -BFD08B58 0020FC5E LW V0, 32(S8) -BFD08B5C 692E LW V0, 56(V0) -BFD08B5E 0010F85E SW V0, 16(S8) -1705: } -1706: taskEXIT_CRITICAL(); -BFD08B62 40AA77E8 JALS vTaskExitCritical -BFD08B64 0C0040AA BNEZC T2, 0xBFD0A368 -BFD08B66 0C00 NOP -1707: -1708: return uxReturn; -BFD08B68 0010FC5E LW V0, 16(S8) -1709: } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ -BFD08B6C 0FBE MOVE SP, S8 -BFD08B6E 4BE7 LW RA, 28(SP) -BFD08B70 4BC6 LW S8, 24(SP) -BFD08B72 4C11 ADDIU SP, SP, 32 -BFD08B74 459F JR16 RA -BFD08B76 0C00 NOP -1710: /*-----------------------------------------------------------*/ -1711: -1712: UBaseType_t uxQueueSpacesAvailable( const QueueHandle_t xQueue ) -1713: { -BFD082D4 4FF1 ADDIU SP, SP, -32 -BFD082D6 CBE7 SW RA, 28(SP) -BFD082D8 CBC6 SW S8, 24(SP) -BFD082DA 0FDD MOVE S8, SP -BFD082DC 0020F89E SW A0, 32(S8) -1714: UBaseType_t uxReturn; -1715: Queue_t *pxQueue; -1716: -1717: pxQueue = ( Queue_t * ) xQueue; -BFD082E0 0020FC5E LW V0, 32(S8) -BFD082E4 0010F85E SW V0, 16(S8) -1718: configASSERT( pxQueue ); -BFD082E8 0010FC5E LW V0, 16(S8) -BFD082EC 000940A2 BNEZC V0, 0xBFD08302 -BFD082F0 BFD141A2 LUI V0, 0xBFD1 -BFD082F2 3082BFD1 LDC1 F30, 12418(S1) -BFD082F4 9E3C3082 ADDIU A0, V0, -25028 -BFD082F6 30A09E3C LWC1 F17, 12448(GP) -BFD082F8 06B630A0 ADDIU A1, ZERO, 1718 -BFD082FA 06B6 ADDU A1, V1, V1 -BFD082FC 4B7E77E8 JALS vAssertCalled -BFD082FE 4B7E LW K1, 120(SP) -BFD08300 0C00 NOP -1719: -1720: taskENTER_CRITICAL(); -BFD08302 33B877E8 JALS vTaskEnterCritical -BFD08304 0C0033B8 ADDIU SP, T8, 3072 -BFD08306 0C00 NOP -1721: { -1722: uxReturn = pxQueue->uxLength - pxQueue->uxMessagesWaiting; -BFD08308 0010FC5E LW V0, 16(S8) -BFD0830C 69AF LW V1, 60(V0) -BFD0830E 0010FC5E LW V0, 16(S8) -BFD08312 692E LW V0, 56(V0) -BFD08314 0527 SUBU V0, V1, V0 -BFD08316 0014F85E SW V0, 20(S8) -1723: } -1724: taskEXIT_CRITICAL(); -BFD0831A 40AA77E8 JALS vTaskExitCritical -BFD0831C 0C0040AA BNEZC T2, 0xBFD09B20 -BFD0831E 0C00 NOP -1725: -1726: return uxReturn; -BFD08320 0014FC5E LW V0, 20(S8) -1727: } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ -BFD08324 0FBE MOVE SP, S8 -BFD08326 4BE7 LW RA, 28(SP) -BFD08328 4BC6 LW S8, 24(SP) -BFD0832A 4C11 ADDIU SP, SP, 32 -BFD0832C 459F JR16 RA -BFD0832E 0C00 NOP -1728: /*-----------------------------------------------------------*/ -1729: -1730: UBaseType_t uxQueueMessagesWaitingFromISR( const QueueHandle_t xQueue ) -1731: { -BFD09360 4FF1 ADDIU SP, SP, -32 -BFD09362 CBE7 SW RA, 28(SP) -BFD09364 CBC6 SW S8, 24(SP) -BFD09366 0FDD MOVE S8, SP -BFD09368 0020F89E SW A0, 32(S8) -1732: UBaseType_t uxReturn; -1733: -1734: configASSERT( xQueue ); -BFD0936C 0020FC5E LW V0, 32(S8) -BFD09370 000940A2 BNEZC V0, 0xBFD09386 -BFD09374 BFD141A2 LUI V0, 0xBFD1 -BFD09376 3082BFD1 LDC1 F30, 12418(S1) -BFD09378 9E3C3082 ADDIU A0, V0, -25028 -BFD0937A 30A09E3C LWC1 F17, 12448(GP) -BFD0937C 06C630A0 ADDIU A1, ZERO, 1734 -BFD0937E 06C6 ADDU A1, V1, A0 -BFD09380 4B7E77E8 JALS vAssertCalled -BFD09382 4B7E LW K1, 120(SP) -BFD09384 0C00 NOP -1735: -1736: uxReturn = ( ( Queue_t * ) xQueue )->uxMessagesWaiting; -BFD09386 0020FC5E LW V0, 32(S8) -BFD0938A 692E LW V0, 56(V0) -BFD0938C 0010F85E SW V0, 16(S8) -1737: -1738: return uxReturn; -BFD09390 0010FC5E LW V0, 16(S8) -1739: } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ -BFD09394 0FBE MOVE SP, S8 -BFD09396 4BE7 LW RA, 28(SP) -BFD09398 4BC6 LW S8, 24(SP) -BFD0939A 4C11 ADDIU SP, SP, 32 -BFD0939C 459F JR16 RA -BFD0939E 0C00 NOP -1740: /*-----------------------------------------------------------*/ -1741: -1742: void vQueueDelete( QueueHandle_t xQueue ) -1743: { -BFD09188 4FF1 ADDIU SP, SP, -32 -BFD0918A CBE7 SW RA, 28(SP) -BFD0918C CBC6 SW S8, 24(SP) -BFD0918E 0FDD MOVE S8, SP -BFD09190 0020F89E SW A0, 32(S8) -1744: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD09194 0020FC5E LW V0, 32(S8) -BFD09198 0010F85E SW V0, 16(S8) -1745: -1746: configASSERT( pxQueue ); -BFD0919C 0010FC5E LW V0, 16(S8) -BFD091A0 000940A2 BNEZC V0, 0xBFD091B6 -BFD091A4 BFD141A2 LUI V0, 0xBFD1 -BFD091A6 3082BFD1 LDC1 F30, 12418(S1) -BFD091A8 9E3C3082 ADDIU A0, V0, -25028 -BFD091AA 30A09E3C LWC1 F17, 12448(GP) -BFD091AC 06D230A0 ADDIU A1, ZERO, 1746 -BFD091AE 06D2 ADDU A1, S1, A1 -BFD091B0 4B7E77E8 JALS vAssertCalled -BFD091B2 4B7E LW K1, 120(SP) -BFD091B4 0C00 NOP -1747: -1748: traceQUEUE_DELETE( pxQueue ); -1749: #if ( configQUEUE_REGISTRY_SIZE > 0 ) -1750: { -1751: vQueueUnregisterQueue( pxQueue ); -1752: } -1753: #endif -1754: vPortFree( pxQueue ); -BFD091B6 0010FC9E LW A0, 16(S8) -BFD091BA 2FEA77E8 JALS vPortFree -BFD091BC 2FEA ANDI A3, A2, 0x20 -BFD091BE 0C00 NOP -1755: } -BFD091C0 0FBE MOVE SP, S8 -BFD091C2 4BE7 LW RA, 28(SP) -BFD091C4 4BC6 LW S8, 24(SP) -BFD091C6 4C11 ADDIU SP, SP, 32 -BFD091C8 459F JR16 RA -BFD091CA 0C00 NOP -1756: /*-----------------------------------------------------------*/ -1757: -1758: #if ( configUSE_TRACE_FACILITY == 1 ) -1759: -1760: UBaseType_t uxQueueGetQueueNumber( QueueHandle_t xQueue ) -1761: { -1762: return ( ( Queue_t * ) xQueue )->uxQueueNumber; -1763: } -1764: -1765: #endif /* configUSE_TRACE_FACILITY */ -1766: /*-----------------------------------------------------------*/ -1767: -1768: #if ( configUSE_TRACE_FACILITY == 1 ) -1769: -1770: void vQueueSetQueueNumber( QueueHandle_t xQueue, UBaseType_t uxQueueNumber ) -1771: { -1772: ( ( Queue_t * ) xQueue )->uxQueueNumber = uxQueueNumber; -1773: } -1774: -1775: #endif /* configUSE_TRACE_FACILITY */ -1776: /*-----------------------------------------------------------*/ -1777: -1778: #if ( configUSE_TRACE_FACILITY == 1 ) -1779: -1780: uint8_t ucQueueGetQueueType( QueueHandle_t xQueue ) -1781: { -1782: return ( ( Queue_t * ) xQueue )->ucQueueType; -1783: } -1784: -1785: #endif /* configUSE_TRACE_FACILITY */ -1786: /*-----------------------------------------------------------*/ -1787: -1788: static BaseType_t prvCopyDataToQueue( Queue_t * const pxQueue, const void *pvItemToQueue, const BaseType_t xPosition ) -1789: { -BFD029CC 4FF1 ADDIU SP, SP, -32 -BFD029CE CBE7 SW RA, 28(SP) -BFD029D0 CBC6 SW S8, 24(SP) -BFD029D2 0FDD MOVE S8, SP -BFD029D4 0020F89E SW A0, 32(S8) -BFD029D8 0024F8BE SW A1, 36(S8) -BFD029DC 0028F8DE SW A2, 40(S8) -1790: BaseType_t xReturn = pdFALSE; -BFD029E0 0010F81E SW ZERO, 16(S8) -1791: -1792: if( pxQueue->uxItemSize == ( UBaseType_t ) 0 ) -BFD029E4 0020FC5E LW V0, 32(S8) -BFD029E8 0040FC42 LW V0, 64(V0) -BFD029EC 001340A2 BNEZC V0, 0xBFD02A16 -1793: { -1794: #if ( configUSE_MUTEXES == 1 ) -1795: { -1796: if( pxQueue->uxQueueType == queueQUEUE_IS_MUTEX ) -BFD029F0 0020FC5E LW V0, 32(S8) -BFD029F4 6920 LW V0, 0(V0) -BFD029F6 008140A2 BNEZC V0, 0xBFD02AFC -1797: { -1798: /* The mutex is no longer being held. */ -1799: xReturn = xTaskPriorityDisinherit( ( void * ) pxQueue->pxMutexHolder ); -BFD029FA 0020FC5E LW V0, 32(S8) -BFD029FE 6921 LW V0, 4(V0) -BFD02A00 0C82 MOVE A0, V0 -BFD02A02 178277E8 JALS xTaskPriorityDisinherit -BFD02A04 0C001782 LBU GP, 3072(V0) -BFD02A06 0C00 NOP -BFD02A08 0010F85E SW V0, 16(S8) -1800: pxQueue->pxMutexHolder = NULL; -BFD02A0C 0020FC5E LW V0, 32(S8) -BFD02A10 E821 SW S0, 4(V0) -BFD02A12 CC74 B 0xBFD02AFC -BFD02A14 0C00 NOP -1801: } -1802: else -1803: { -1804: mtCOVERAGE_TEST_MARKER(); -1805: } -1806: } -1807: #endif /* configUSE_MUTEXES */ -1808: } -1809: else if( xPosition == queueSEND_TO_BACK ) -BFD02A16 0028FC5E LW V0, 40(S8) -BFD02A1A 002B40A2 BNEZC V0, 0xBFD02A74 -1810: { -1811: ( void ) memcpy( ( void * ) pxQueue->pcWriteTo, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports, plus previous logic ensures a null pointer can only be passed to memcpy() if the copy size is 0. */ -BFD02A1E 0020FC5E LW V0, 32(S8) -BFD02A22 69A2 LW V1, 8(V0) -BFD02A24 0020FC5E LW V0, 32(S8) -BFD02A28 0040FC42 LW V0, 64(V0) -BFD02A2C 0C83 MOVE A0, V1 -BFD02A2E 0024FCBE LW A1, 36(S8) -BFD02A32 0CC2 MOVE A2, V0 -BFD02A34 1BB477E8 JALS 0xBFD03768 -BFD02A36 0C001BB4 SB SP, 3072(S4) -BFD02A38 0C00 NOP -1812: pxQueue->pcWriteTo += pxQueue->uxItemSize; -BFD02A3A 0020FC5E LW V0, 32(S8) -BFD02A3E 69A2 LW V1, 8(V0) -BFD02A40 0020FC5E LW V0, 32(S8) -BFD02A44 0040FC42 LW V0, 64(V0) -BFD02A48 05A6 ADDU V1, V1, V0 -BFD02A4A 0020FC5E LW V0, 32(S8) -BFD02A4E E9A2 SW V1, 8(V0) -1813: if( pxQueue->pcWriteTo >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ -BFD02A50 0020FC5E LW V0, 32(S8) -BFD02A54 69A2 LW V1, 8(V0) -BFD02A56 0020FC5E LW V0, 32(S8) -BFD02A5A 6921 LW V0, 4(V0) -BFD02A5C 13900043 SLTU V0, V1, V0 -BFD02A5E 40A21390 ADDI GP, S0, 16546 -BFD02A60 004C40A2 BNEZC V0, 0xBFD02AFC -1814: { -1815: pxQueue->pcWriteTo = pxQueue->pcHead; -BFD02A64 0020FC5E LW V0, 32(S8) -BFD02A68 69A0 LW V1, 0(V0) -BFD02A6A 0020FC5E LW V0, 32(S8) -BFD02A6E E9A2 SW V1, 8(V0) -BFD02A70 CC45 B 0xBFD02AFC -BFD02A72 0C00 NOP -1816: } -1817: else -1818: { -1819: mtCOVERAGE_TEST_MARKER(); -1820: } -1821: } -1822: else -1823: { -1824: ( void ) memcpy( ( void * ) pxQueue->u.pcReadFrom, pvItemToQueue, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 MISRA exception as the casts are only redundant for some ports. */ -BFD02A74 0020FC5E LW V0, 32(S8) -BFD02A78 69A3 LW V1, 12(V0) -BFD02A7A 0020FC5E LW V0, 32(S8) -BFD02A7E 0040FC42 LW V0, 64(V0) -BFD02A82 0C83 MOVE A0, V1 -BFD02A84 0024FCBE LW A1, 36(S8) -BFD02A88 0CC2 MOVE A2, V0 -BFD02A8A 1BB477E8 JALS 0xBFD03768 -BFD02A8C 0C001BB4 SB SP, 3072(S4) -BFD02A8E 0C00 NOP -1825: pxQueue->u.pcReadFrom -= pxQueue->uxItemSize; -BFD02A90 0020FC5E LW V0, 32(S8) -BFD02A94 69A3 LW V1, 12(V0) -BFD02A96 0020FC5E LW V0, 32(S8) -BFD02A9A 0040FC42 LW V0, 64(V0) -BFD02A9C 00400040 SRL V0, ZERO, 0 -BFD02A9E 11D00040 SUBU V0, ZERO, V0 -BFD02AA0 05A611D0 ADDI T6, S0, 1446 -BFD02AA2 05A6 ADDU V1, V1, V0 -BFD02AA4 0020FC5E LW V0, 32(S8) -BFD02AA8 E9A3 SW V1, 12(V0) -1826: if( pxQueue->u.pcReadFrom < pxQueue->pcHead ) /*lint !e946 MISRA exception justified as comparison of pointers is the cleanest solution. */ -BFD02AAA 0020FC5E LW V0, 32(S8) -BFD02AAE 69A3 LW V1, 12(V0) -BFD02AB0 0020FC5E LW V0, 32(S8) -BFD02AB4 6920 LW V0, 0(V0) -BFD02AB6 13900043 SLTU V0, V1, V0 -BFD02AB8 40E21390 ADDI GP, S0, 16610 -BFD02ABA 000D40E2 BEQZC V0, 0xBFD02AD8 -1827: { -1828: pxQueue->u.pcReadFrom = ( pxQueue->pcTail - pxQueue->uxItemSize ); -BFD02ABE 0020FC5E LW V0, 32(S8) -BFD02AC2 69A1 LW V1, 4(V0) -BFD02AC4 0020FC5E LW V0, 32(S8) -BFD02AC8 0040FC42 LW V0, 64(V0) -BFD02ACA 00400040 SRL V0, ZERO, 0 -BFD02ACC 11D00040 SUBU V0, ZERO, V0 -BFD02ACE 05A611D0 ADDI T6, S0, 1446 -BFD02AD0 05A6 ADDU V1, V1, V0 -BFD02AD2 0020FC5E LW V0, 32(S8) -BFD02AD6 E9A3 SW V1, 12(V0) -1829: } -1830: else -1831: { -1832: mtCOVERAGE_TEST_MARKER(); -1833: } -1834: -1835: if( xPosition == queueOVERWRITE ) -BFD02AD8 0028FC7E LW V1, 40(S8) -BFD02ADC ED02 LI V0, 2 -BFD02ADE 000DB443 BNE V1, V0, 0xBFD02AFC -BFD02AE0 0C00000D SLL ZERO, T5, 1 -BFD02AE2 0C00 NOP -1836: { -1837: if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) -BFD02AE4 0020FC5E LW V0, 32(S8) -BFD02AE8 692E LW V0, 56(V0) -BFD02AEA 000740E2 BEQZC V0, 0xBFD02AFC -1838: { -1839: /* An item is not being added but overwritten, so subtract -1840: one from the recorded number of items in the queue so when -1841: one is added again below the number of recorded items remains -1842: correct. */ -1843: --( pxQueue->uxMessagesWaiting ); -BFD02AEE 0020FC5E LW V0, 32(S8) -BFD02AF2 692E LW V0, 56(V0) -BFD02AF4 6DAE ADDIU V1, V0, -1 -BFD02AF6 0020FC5E LW V0, 32(S8) -BFD02AFA E9AE SW V1, 56(V0) -1844: } -1845: else -1846: { -1847: mtCOVERAGE_TEST_MARKER(); -1848: } -1849: } -1850: else -1851: { -1852: mtCOVERAGE_TEST_MARKER(); -1853: } -1854: } -1855: -1856: ++( pxQueue->uxMessagesWaiting ); -BFD02AFC 0020FC5E LW V0, 32(S8) -BFD02B00 692E LW V0, 56(V0) -BFD02B02 6DA0 ADDIU V1, V0, 1 -BFD02B04 0020FC5E LW V0, 32(S8) -BFD02B08 E9AE SW V1, 56(V0) -1857: -1858: return xReturn; -BFD02B0A 0010FC5E LW V0, 16(S8) -1859: } -BFD02B0E 0FBE MOVE SP, S8 -BFD02B10 4BE7 LW RA, 28(SP) -BFD02B12 4BC6 LW S8, 24(SP) -BFD02B14 4C11 ADDIU SP, SP, 32 -BFD02B16 459F JR16 RA -BFD02B18 0C00 NOP -1860: /*-----------------------------------------------------------*/ -1861: -1862: static void prvCopyDataFromQueue( Queue_t * const pxQueue, void * const pvBuffer ) -1863: { -BFD06CF4 4FF5 ADDIU SP, SP, -24 -BFD06CF6 CBE5 SW RA, 20(SP) -BFD06CF8 CBC4 SW S8, 16(SP) -BFD06CFA 0FDD MOVE S8, SP -BFD06CFC 0018F89E SW A0, 24(S8) -BFD06D00 001CF8BE SW A1, 28(S8) -1864: if( pxQueue->uxItemSize != ( UBaseType_t ) 0 ) -BFD06D04 0018FC5E LW V0, 24(S8) -BFD06D08 0040FC42 LW V0, 64(V0) -BFD06D0C 002940E2 BEQZC V0, 0xBFD06D62 -1865: { -1866: pxQueue->u.pcReadFrom += pxQueue->uxItemSize; -BFD06D10 0018FC5E LW V0, 24(S8) -BFD06D14 69A3 LW V1, 12(V0) -BFD06D16 0018FC5E LW V0, 24(S8) -BFD06D1A 0040FC42 LW V0, 64(V0) -BFD06D1E 05A6 ADDU V1, V1, V0 -BFD06D20 0018FC5E LW V0, 24(S8) -BFD06D24 E9A3 SW V1, 12(V0) -1867: if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) /*lint !e946 MISRA exception justified as use of the relational operator is the cleanest solutions. */ -BFD06D26 0018FC5E LW V0, 24(S8) -BFD06D2A 69A3 LW V1, 12(V0) -BFD06D2C 0018FC5E LW V0, 24(S8) -BFD06D30 6921 LW V0, 4(V0) -BFD06D32 13900043 SLTU V0, V1, V0 -BFD06D34 40A21390 ADDI GP, S0, 16546 -BFD06D36 000640A2 BNEZC V0, 0xBFD06D46 -1868: { -1869: pxQueue->u.pcReadFrom = pxQueue->pcHead; -BFD06D3A 0018FC5E LW V0, 24(S8) -BFD06D3E 69A0 LW V1, 0(V0) -BFD06D40 0018FC5E LW V0, 24(S8) -BFD06D44 E9A3 SW V1, 12(V0) -1870: } -1871: else -1872: { -1873: mtCOVERAGE_TEST_MARKER(); -1874: } -1875: ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( size_t ) pxQueue->uxItemSize ); /*lint !e961 !e418 MISRA exception as the casts are only redundant for some ports. Also previous logic ensures a null pointer can only be passed to memcpy() when the count is 0. */ -BFD06D46 0018FC5E LW V0, 24(S8) -BFD06D4A 69A3 LW V1, 12(V0) -BFD06D4C 0018FC5E LW V0, 24(S8) -BFD06D50 0040FC42 LW V0, 64(V0) -BFD06D54 001CFC9E LW A0, 28(S8) -BFD06D58 0CA3 MOVE A1, V1 -BFD06D5A 0CC2 MOVE A2, V0 -BFD06D5C 1BB477E8 JALS 0xBFD03768 -BFD06D5E 0C001BB4 SB SP, 3072(S4) -BFD06D60 0C00 NOP -1876: } -1877: } -BFD06D62 0FBE MOVE SP, S8 -BFD06D64 4BE5 LW RA, 20(SP) -BFD06D66 4BC4 LW S8, 16(SP) -BFD06D68 4C0D ADDIU SP, SP, 24 -BFD06D6A 459F JR16 RA -BFD06D6C 0C00 NOP -1878: /*-----------------------------------------------------------*/ -1879: -1880: static void prvUnlockQueue( Queue_t * const pxQueue ) -1881: { -BFD03BDC 4FF5 ADDIU SP, SP, -24 -BFD03BDE CBE5 SW RA, 20(SP) -BFD03BE0 CBC4 SW S8, 16(SP) -BFD03BE2 0FDD MOVE S8, SP -BFD03BE4 0018F89E SW A0, 24(S8) -1882: /* THIS FUNCTION MUST BE CALLED WITH THE SCHEDULER SUSPENDED. */ -1883: -1884: /* The lock counts contains the number of extra data items placed or -1885: removed from the queue while the queue was locked. When a queue is -1886: locked items can be added or removed, but the event lists cannot be -1887: updated. */ -1888: taskENTER_CRITICAL(); -BFD03BE8 33B877E8 JALS vTaskEnterCritical -BFD03BEA 0C0033B8 ADDIU SP, T8, 3072 -BFD03BEC 0C00 NOP -1889: { -1890: /* See if data was added to the queue while it was locked. */ -1891: while( pxQueue->xTxLock > queueLOCKED_UNMODIFIED ) -BFD03BEE CC32 B 0xBFD03C54 -BFD03BF0 0C00 NOP -BFD03C54 0018FC5E LW V0, 24(S8) -BFD03C58 0048FC42 LW V0, 72(V0) -BFD03C5C FFC940C2 BGTZ V0, 0xBFD03BF2 -BFD03C5E 0C00FFC9 LW S8, 3072(T1) -BFD03C60 0C00 NOP -BFD03C62 CC02 B 0xBFD03C68 -BFD03C64 0C00 NOP -1892: { -1893: /* Data was posted while the queue was locked. Are any tasks -1894: blocked waiting for data to become available? */ -1895: #if ( configUSE_QUEUE_SETS == 1 ) -1896: { -1897: if( pxQueue->pxQueueSetContainer != NULL ) -BFD03BF2 0018FC5E LW V0, 24(S8) -BFD03BF6 004CFC42 LW V0, 76(V0) -BFD03BFA 001040E2 BEQZC V0, 0xBFD03C1E -1898: { -1899: if( prvNotifyQueueSetContainer( pxQueue, queueSEND_TO_BACK ) == pdTRUE ) -BFD03BFE 0018FC9E LW A0, 24(S8) -BFD03C02 0CA0 MOVE A1, ZERO -BFD03C04 21D877E8 JALS prvNotifyQueueSetContainer -BFD03C06 0C0021D8 LWC2 T6, 3072(T8) -BFD03C08 0C00 NOP -BFD03C0A 0C62 MOVE V1, V0 -BFD03C0C ED01 LI V0, 1 -BFD03C0E 0018B443 BNE V1, V0, 0xBFD03C42 -BFD03C10 0C000018 SLL ZERO, T8, 1 -BFD03C12 0C00 NOP -1900: { -1901: /* The queue is a member of a queue set, and posting to -1902: the queue set caused a higher priority task to unblock. -1903: A context switch is required. */ -1904: vTaskMissedYield(); -BFD03C14 4F2A77E8 JALS vTaskMissedYield -BFD03C16 4F2A ADDIU T9, T9, 5 -BFD03C18 0C00 NOP -BFD03C1A CC13 B 0xBFD03C42 -BFD03C1C 0C00 NOP -1905: } -1906: else -1907: { -1908: mtCOVERAGE_TEST_MARKER(); -1909: } -1910: } -1911: else -1912: { -1913: /* Tasks that are removed from the event list will get added to -1914: the pending ready list as the scheduler is still suspended. */ -1915: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -BFD03C1E 0018FC5E LW V0, 24(S8) -BFD03C22 6929 LW V0, 36(V0) -BFD03C24 001F40E2 BEQZC V0, 0xBFD03C66 -1916: { -1917: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -BFD03C28 0018FC5E LW V0, 24(S8) -BFD03C2C 00243042 ADDIU V0, V0, 36 -BFD03C30 0C82 MOVE A0, V0 -BFD03C32 22BC77E8 JALS xTaskRemoveFromEventList -BFD03C34 0C0022BC LWC2 S5, 3072(GP) -BFD03C36 0C00 NOP -BFD03C38 000340E2 BEQZC V0, 0xBFD03C42 -1918: { -1919: /* The task waiting has a higher priority so record that a -1920: context switch is required. */ -1921: vTaskMissedYield(); -BFD03C3C 4F2A77E8 JALS vTaskMissedYield -BFD03C3E 4F2A ADDIU T9, T9, 5 -BFD03C40 0C00 NOP -1922: } -1923: else -1924: { -1925: mtCOVERAGE_TEST_MARKER(); -1926: } -1927: } -1928: else -1929: { -1930: break; -BFD03C66 0C00 NOP -1931: } -1932: } -1933: } -1934: #else /* configUSE_QUEUE_SETS */ -1935: { -1936: /* Tasks that are removed from the event list will get added to -1937: the pending ready list as the scheduler is still suspended. */ -1938: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -1939: { -1940: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -1941: { -1942: /* The task waiting has a higher priority so record that a -1943: context switch is required. */ -1944: vTaskMissedYield(); -1945: } -1946: else -1947: { -1948: mtCOVERAGE_TEST_MARKER(); -1949: } -1950: } -1951: else -1952: { -1953: break; -1954: } -1955: } -1956: #endif /* configUSE_QUEUE_SETS */ -1957: -1958: --( pxQueue->xTxLock ); -BFD03C42 0018FC5E LW V0, 24(S8) -BFD03C46 0048FC42 LW V0, 72(V0) -BFD03C4A 6DAE ADDIU V1, V0, -1 -BFD03C4C 0018FC5E LW V0, 24(S8) -BFD03C50 0048F862 SW V1, 72(V0) -1959: } -1960: -1961: pxQueue->xTxLock = queueUNLOCKED; -BFD03C68 0018FC5E LW V0, 24(S8) -BFD03C6C EDFF LI V1, -1 -BFD03C6E 0048F862 SW V1, 72(V0) -1962: } -1963: taskEXIT_CRITICAL(); -BFD03C72 40AA77E8 JALS vTaskExitCritical -BFD03C74 0C0040AA BNEZC T2, 0xBFD05478 -BFD03C76 0C00 NOP -1964: -1965: /* Do the same for the Rx lock. */ -1966: taskENTER_CRITICAL(); -BFD03C78 33B877E8 JALS vTaskEnterCritical -BFD03C7A 0C0033B8 ADDIU SP, T8, 3072 -BFD03C7C 0C00 NOP -1967: { -1968: while( pxQueue->xRxLock > queueLOCKED_UNMODIFIED ) -BFD03C7E CC1B B 0xBFD03CB6 -BFD03C80 0C00 NOP -BFD03CB6 0018FC5E LW V0, 24(S8) -BFD03CBA 0044FC42 LW V0, 68(V0) -BFD03CBE FFE040C2 BGTZ V0, 0xBFD03C82 -BFD03CC0 0C00FFE0 LW RA, 3072(ZERO) -BFD03CC2 0C00 NOP -BFD03CC4 CC02 B 0xBFD03CCA -BFD03CC6 0C00 NOP -1969: { -1970: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) -BFD03C82 0018FC5E LW V0, 24(S8) -BFD03C86 6924 LW V0, 16(V0) -BFD03C88 001E40E2 BEQZC V0, 0xBFD03CC8 -1971: { -1972: if( xTaskRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) -BFD03C8C 0018FC5E LW V0, 24(S8) -BFD03C90 6D28 ADDIU V0, V0, 16 -BFD03C92 0C82 MOVE A0, V0 -BFD03C94 22BC77E8 JALS xTaskRemoveFromEventList -BFD03C96 0C0022BC LWC2 S5, 3072(GP) -BFD03C98 0C00 NOP -BFD03C9A 000340E2 BEQZC V0, 0xBFD03CA4 -1973: { -1974: vTaskMissedYield(); -BFD03C9E 4F2A77E8 JALS vTaskMissedYield -BFD03CA0 4F2A ADDIU T9, T9, 5 -BFD03CA2 0C00 NOP -1975: } -1976: else -1977: { -1978: mtCOVERAGE_TEST_MARKER(); -1979: } -1980: -1981: --( pxQueue->xRxLock ); -BFD03CA4 0018FC5E LW V0, 24(S8) -BFD03CA8 0044FC42 LW V0, 68(V0) -BFD03CAC 6DAE ADDIU V1, V0, -1 -BFD03CAE 0018FC5E LW V0, 24(S8) -BFD03CB2 0044F862 SW V1, 68(V0) -1982: } -1983: else -1984: { -1985: break; -BFD03CC8 0C00 NOP -1986: } -1987: } -1988: -1989: pxQueue->xRxLock = queueUNLOCKED; -BFD03CCA 0018FC5E LW V0, 24(S8) -BFD03CCE EDFF LI V1, -1 -BFD03CD0 0044F862 SW V1, 68(V0) -1990: } -1991: taskEXIT_CRITICAL(); -BFD03CD4 40AA77E8 JALS vTaskExitCritical -BFD03CD6 0C0040AA BNEZC T2, 0xBFD054DA -BFD03CD8 0C00 NOP -1992: } -BFD03CDA 0FBE MOVE SP, S8 -BFD03CDC 4BE5 LW RA, 20(SP) -BFD03CDE 4BC4 LW S8, 16(SP) -BFD03CE0 4C0D ADDIU SP, SP, 24 -BFD03CE2 459F JR16 RA -BFD03CE4 0C00 NOP -1993: /*-----------------------------------------------------------*/ -1994: -1995: static BaseType_t prvIsQueueEmpty( const Queue_t *pxQueue ) -1996: { -BFD093A0 4FF1 ADDIU SP, SP, -32 -BFD093A2 CBE7 SW RA, 28(SP) -BFD093A4 CBC6 SW S8, 24(SP) -BFD093A6 0FDD MOVE S8, SP -BFD093A8 0020F89E SW A0, 32(S8) -1997: BaseType_t xReturn; -1998: -1999: taskENTER_CRITICAL(); -BFD093AC 33B877E8 JALS vTaskEnterCritical -BFD093AE 0C0033B8 ADDIU SP, T8, 3072 -BFD093B0 0C00 NOP -2000: { -2001: if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0 ) -BFD093B2 0020FC5E LW V0, 32(S8) -BFD093B6 692E LW V0, 56(V0) -BFD093B8 000540A2 BNEZC V0, 0xBFD093C6 -2002: { -2003: xReturn = pdTRUE; -BFD093BC ED01 LI V0, 1 -BFD093BE 0010F85E SW V0, 16(S8) -BFD093C2 CC03 B 0xBFD093CA -BFD093C4 0C00 NOP -2004: } -2005: else -2006: { -2007: xReturn = pdFALSE; -BFD093C6 0010F81E SW ZERO, 16(S8) -2008: } -2009: } -2010: taskEXIT_CRITICAL(); -BFD093CA 40AA77E8 JALS vTaskExitCritical -BFD093CC 0C0040AA BNEZC T2, 0xBFD0ABD0 -BFD093CE 0C00 NOP -2011: -2012: return xReturn; -BFD093D0 0010FC5E LW V0, 16(S8) -2013: } -BFD093D4 0FBE MOVE SP, S8 -BFD093D6 4BE7 LW RA, 28(SP) -BFD093D8 4BC6 LW S8, 24(SP) -BFD093DA 4C11 ADDIU SP, SP, 32 -BFD093DC 459F JR16 RA -BFD093DE 0C00 NOP -2014: /*-----------------------------------------------------------*/ -2015: -2016: BaseType_t xQueueIsQueueEmptyFromISR( const QueueHandle_t xQueue ) -2017: { -BFD08954 4FF1 ADDIU SP, SP, -32 -BFD08956 CBE7 SW RA, 28(SP) -BFD08958 CBC6 SW S8, 24(SP) -BFD0895A 0FDD MOVE S8, SP -BFD0895C 0020F89E SW A0, 32(S8) -2018: BaseType_t xReturn; -2019: -2020: configASSERT( xQueue ); -BFD08960 0020FC5E LW V0, 32(S8) -BFD08964 000940A2 BNEZC V0, 0xBFD0897A -BFD08968 BFD141A2 LUI V0, 0xBFD1 -BFD0896A 3082BFD1 LDC1 F30, 12418(S1) -BFD0896C 9E3C3082 ADDIU A0, V0, -25028 -BFD0896E 30A09E3C LWC1 F17, 12448(GP) -BFD08970 07E430A0 ADDIU A1, ZERO, 2020 -BFD08972 07E4 ADDU A3, V0, A2 -BFD08974 4B7E77E8 JALS vAssertCalled -BFD08976 4B7E LW K1, 120(SP) -BFD08978 0C00 NOP -2021: if( ( ( Queue_t * ) xQueue )->uxMessagesWaiting == ( UBaseType_t ) 0 ) -BFD0897A 0020FC5E LW V0, 32(S8) -BFD0897E 692E LW V0, 56(V0) -BFD08980 000540A2 BNEZC V0, 0xBFD0898E -2022: { -2023: xReturn = pdTRUE; -BFD08984 ED01 LI V0, 1 -BFD08986 0010F85E SW V0, 16(S8) -BFD0898A CC03 B 0xBFD08992 -BFD0898C 0C00 NOP -2024: } -2025: else -2026: { -2027: xReturn = pdFALSE; -BFD0898E 0010F81E SW ZERO, 16(S8) -2028: } -2029: -2030: return xReturn; -BFD08992 0010FC5E LW V0, 16(S8) -2031: } /*lint !e818 xQueue could not be pointer to const because it is a typedef. */ -BFD08996 0FBE MOVE SP, S8 -BFD08998 4BE7 LW RA, 28(SP) -BFD0899A 4BC6 LW S8, 24(SP) -BFD0899C 4C11 ADDIU SP, SP, 32 -BFD0899E 459F JR16 RA -BFD089A0 0C00 NOP -2032: /*-----------------------------------------------------------*/ -2033: -2034: static BaseType_t prvIsQueueFull( const Queue_t *pxQueue ) -2035: { -BFD08F04 4FF1 ADDIU SP, SP, -32 -BFD08F06 CBE7 SW RA, 28(SP) -BFD08F08 CBC6 SW S8, 24(SP) -BFD08F0A 0FDD MOVE S8, SP -BFD08F0C 0020F89E SW A0, 32(S8) -2036: BaseType_t xReturn; -2037: -2038: taskENTER_CRITICAL(); -BFD08F10 33B877E8 JALS vTaskEnterCritical -BFD08F12 0C0033B8 ADDIU SP, T8, 3072 -BFD08F14 0C00 NOP -2039: { -2040: if( pxQueue->uxMessagesWaiting == pxQueue->uxLength ) -BFD08F16 0020FC5E LW V0, 32(S8) -BFD08F1A 69AE LW V1, 56(V0) -BFD08F1C 0020FC5E LW V0, 32(S8) -BFD08F20 692F LW V0, 60(V0) -BFD08F22 0006B443 BNE V1, V0, 0xBFD08F32 -BFD08F24 0C000006 SLL ZERO, A2, 1 -BFD08F26 0C00 NOP -2041: { -2042: xReturn = pdTRUE; -BFD08F28 ED01 LI V0, 1 -BFD08F2A 0010F85E SW V0, 16(S8) -BFD08F2E CC03 B 0xBFD08F36 -BFD08F30 0C00 NOP -2043: } -2044: else -2045: { -2046: xReturn = pdFALSE; -BFD08F32 0010F81E SW ZERO, 16(S8) -2047: } -2048: } -2049: taskEXIT_CRITICAL(); -BFD08F36 40AA77E8 JALS vTaskExitCritical -BFD08F38 0C0040AA BNEZC T2, 0xBFD0A73C -BFD08F3A 0C00 NOP -2050: -2051: return xReturn; -BFD08F3C 0010FC5E LW V0, 16(S8) -2052: } -BFD08F40 0FBE MOVE SP, S8 -BFD08F42 4BE7 LW RA, 28(SP) -BFD08F44 4BC6 LW S8, 24(SP) -BFD08F46 4C11 ADDIU SP, SP, 32 -BFD08F48 459F JR16 RA -BFD08F4A 0C00 NOP -2053: /*-----------------------------------------------------------*/ -2054: -2055: BaseType_t xQueueIsQueueFullFromISR( const QueueHandle_t xQueue ) -2056: { -BFD084F8 4FF1 ADDIU SP, SP, -32 -BFD084FA CBE7 SW RA, 28(SP) -BFD084FC CBC6 SW S8, 24(SP) -BFD084FE 0FDD MOVE S8, SP -BFD08500 0020F89E SW A0, 32(S8) -2057: BaseType_t xReturn; -2058: -2059: configASSERT( xQueue ); -BFD08504 0020FC5E LW V0, 32(S8) -BFD08508 000940A2 BNEZC V0, 0xBFD0851E -BFD0850C BFD141A2 LUI V0, 0xBFD1 -BFD0850E 3082BFD1 LDC1 F30, 12418(S1) -BFD08510 9E3C3082 ADDIU A0, V0, -25028 -BFD08512 30A09E3C LWC1 F17, 12448(GP) -BFD08514 080B30A0 ADDIU A1, ZERO, 2059 -BFD08516 080B LBU S0, 11(S0) -BFD08518 4B7E77E8 JALS vAssertCalled -BFD0851A 4B7E LW K1, 120(SP) -BFD0851C 0C00 NOP -2060: if( ( ( Queue_t * ) xQueue )->uxMessagesWaiting == ( ( Queue_t * ) xQueue )->uxLength ) -BFD0851E 0020FC5E LW V0, 32(S8) -BFD08522 69AE LW V1, 56(V0) -BFD08524 0020FC5E LW V0, 32(S8) -BFD08528 692F LW V0, 60(V0) -BFD0852A 0006B443 BNE V1, V0, 0xBFD0853A -BFD0852C 0C000006 SLL ZERO, A2, 1 -BFD0852E 0C00 NOP -2061: { -2062: xReturn = pdTRUE; -BFD08530 ED01 LI V0, 1 -BFD08532 0010F85E SW V0, 16(S8) -BFD08536 CC03 B 0xBFD0853E -BFD08538 0C00 NOP -2063: } -2064: else -2065: { -2066: xReturn = pdFALSE; -BFD0853A 0010F81E SW ZERO, 16(S8) -2067: } -2068: -2069: return xReturn; -BFD0853E 0010FC5E LW V0, 16(S8) -2070: } /*lint !e818 xQueue could not be pointer to const because it is a typedef. */ -BFD08542 0FBE MOVE SP, S8 -BFD08544 4BE7 LW RA, 28(SP) -BFD08546 4BC6 LW S8, 24(SP) -BFD08548 4C11 ADDIU SP, SP, 32 -BFD0854A 459F JR16 RA -BFD0854C 0C00 NOP -2071: /*-----------------------------------------------------------*/ -2072: -2073: #if ( configUSE_CO_ROUTINES == 1 ) -2074: -2075: BaseType_t xQueueCRSend( QueueHandle_t xQueue, const void *pvItemToQueue, TickType_t xTicksToWait ) -2076: { -2077: BaseType_t xReturn; -2078: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -2079: -2080: /* If the queue is already full we may have to block. A critical section -2081: is required to prevent an interrupt removing something from the queue -2082: between the check to see if the queue is full and blocking on the queue. */ -2083: portDISABLE_INTERRUPTS(); -2084: { -2085: if( prvIsQueueFull( pxQueue ) != pdFALSE ) -2086: { -2087: /* The queue is full - do we want to block or just leave without -2088: posting? */ -2089: if( xTicksToWait > ( TickType_t ) 0 ) -2090: { -2091: /* As this is called from a coroutine we cannot block directly, but -2092: return indicating that we need to block. */ -2093: vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToSend ) ); -2094: portENABLE_INTERRUPTS(); -2095: return errQUEUE_BLOCKED; -2096: } -2097: else -2098: { -2099: portENABLE_INTERRUPTS(); -2100: return errQUEUE_FULL; -2101: } -2102: } -2103: } -2104: portENABLE_INTERRUPTS(); -2105: -2106: portDISABLE_INTERRUPTS(); -2107: { -2108: if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) -2109: { -2110: /* There is room in the queue, copy the data into the queue. */ -2111: prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK ); -2112: xReturn = pdPASS; -2113: -2114: /* Were any co-routines waiting for data to become available? */ -2115: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -2116: { -2117: /* In this instance the co-routine could be placed directly -2118: into the ready list as we are within a critical section. -2119: Instead the same pending ready list mechanism is used as if -2120: the event were caused from within an interrupt. */ -2121: if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -2122: { -2123: /* The co-routine waiting has a higher priority so record -2124: that a yield might be appropriate. */ -2125: xReturn = errQUEUE_YIELD; -2126: } -2127: else -2128: { -2129: mtCOVERAGE_TEST_MARKER(); -2130: } -2131: } -2132: else -2133: { -2134: mtCOVERAGE_TEST_MARKER(); -2135: } -2136: } -2137: else -2138: { -2139: xReturn = errQUEUE_FULL; -2140: } -2141: } -2142: portENABLE_INTERRUPTS(); -2143: -2144: return xReturn; -2145: } -2146: -2147: #endif /* configUSE_CO_ROUTINES */ -2148: /*-----------------------------------------------------------*/ -2149: -2150: #if ( configUSE_CO_ROUTINES == 1 ) -2151: -2152: BaseType_t xQueueCRReceive( QueueHandle_t xQueue, void *pvBuffer, TickType_t xTicksToWait ) -2153: { -2154: BaseType_t xReturn; -2155: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -2156: -2157: /* If the queue is already empty we may have to block. A critical section -2158: is required to prevent an interrupt adding something to the queue -2159: between the check to see if the queue is empty and blocking on the queue. */ -2160: portDISABLE_INTERRUPTS(); -2161: { -2162: if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0 ) -2163: { -2164: /* There are no messages in the queue, do we want to block or just -2165: leave with nothing? */ -2166: if( xTicksToWait > ( TickType_t ) 0 ) -2167: { -2168: /* As this is a co-routine we cannot block directly, but return -2169: indicating that we need to block. */ -2170: vCoRoutineAddToDelayedList( xTicksToWait, &( pxQueue->xTasksWaitingToReceive ) ); -2171: portENABLE_INTERRUPTS(); -2172: return errQUEUE_BLOCKED; -2173: } -2174: else -2175: { -2176: portENABLE_INTERRUPTS(); -2177: return errQUEUE_FULL; -2178: } -2179: } -2180: else -2181: { -2182: mtCOVERAGE_TEST_MARKER(); -2183: } -2184: } -2185: portENABLE_INTERRUPTS(); -2186: -2187: portDISABLE_INTERRUPTS(); -2188: { -2189: if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) -2190: { -2191: /* Data is available from the queue. */ -2192: pxQueue->u.pcReadFrom += pxQueue->uxItemSize; -2193: if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) -2194: { -2195: pxQueue->u.pcReadFrom = pxQueue->pcHead; -2196: } -2197: else -2198: { -2199: mtCOVERAGE_TEST_MARKER(); -2200: } -2201: --( pxQueue->uxMessagesWaiting ); -2202: ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); -2203: -2204: xReturn = pdPASS; -2205: -2206: /* Were any co-routines waiting for space to become available? */ -2207: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) -2208: { -2209: /* In this instance the co-routine could be placed directly -2210: into the ready list as we are within a critical section. -2211: Instead the same pending ready list mechanism is used as if -2212: the event were caused from within an interrupt. */ -2213: if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) -2214: { -2215: xReturn = errQUEUE_YIELD; -2216: } -2217: else -2218: { -2219: mtCOVERAGE_TEST_MARKER(); -2220: } -2221: } -2222: else -2223: { -2224: mtCOVERAGE_TEST_MARKER(); -2225: } -2226: } -2227: else -2228: { -2229: xReturn = pdFAIL; -2230: } -2231: } -2232: portENABLE_INTERRUPTS(); -2233: -2234: return xReturn; -2235: } -2236: -2237: #endif /* configUSE_CO_ROUTINES */ -2238: /*-----------------------------------------------------------*/ -2239: -2240: #if ( configUSE_CO_ROUTINES == 1 ) -2241: -2242: BaseType_t xQueueCRSendFromISR( QueueHandle_t xQueue, const void *pvItemToQueue, BaseType_t xCoRoutinePreviouslyWoken ) -2243: { -2244: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -2245: -2246: /* Cannot block within an ISR so if there is no space on the queue then -2247: exit without doing anything. */ -2248: if( pxQueue->uxMessagesWaiting < pxQueue->uxLength ) -2249: { -2250: prvCopyDataToQueue( pxQueue, pvItemToQueue, queueSEND_TO_BACK ); -2251: -2252: /* We only want to wake one co-routine per ISR, so check that a -2253: co-routine has not already been woken. */ -2254: if( xCoRoutinePreviouslyWoken == pdFALSE ) -2255: { -2256: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToReceive ) ) == pdFALSE ) -2257: { -2258: if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToReceive ) ) != pdFALSE ) -2259: { -2260: return pdTRUE; -2261: } -2262: else -2263: { -2264: mtCOVERAGE_TEST_MARKER(); -2265: } -2266: } -2267: else -2268: { -2269: mtCOVERAGE_TEST_MARKER(); -2270: } -2271: } -2272: else -2273: { -2274: mtCOVERAGE_TEST_MARKER(); -2275: } -2276: } -2277: else -2278: { -2279: mtCOVERAGE_TEST_MARKER(); -2280: } -2281: -2282: return xCoRoutinePreviouslyWoken; -2283: } -2284: -2285: #endif /* configUSE_CO_ROUTINES */ -2286: /*-----------------------------------------------------------*/ -2287: -2288: #if ( configUSE_CO_ROUTINES == 1 ) -2289: -2290: BaseType_t xQueueCRReceiveFromISR( QueueHandle_t xQueue, void *pvBuffer, BaseType_t *pxCoRoutineWoken ) -2291: { -2292: BaseType_t xReturn; -2293: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -2294: -2295: /* We cannot block from an ISR, so check there is data available. If -2296: not then just leave without doing anything. */ -2297: if( pxQueue->uxMessagesWaiting > ( UBaseType_t ) 0 ) -2298: { -2299: /* Copy the data from the queue. */ -2300: pxQueue->u.pcReadFrom += pxQueue->uxItemSize; -2301: if( pxQueue->u.pcReadFrom >= pxQueue->pcTail ) -2302: { -2303: pxQueue->u.pcReadFrom = pxQueue->pcHead; -2304: } -2305: else -2306: { -2307: mtCOVERAGE_TEST_MARKER(); -2308: } -2309: --( pxQueue->uxMessagesWaiting ); -2310: ( void ) memcpy( ( void * ) pvBuffer, ( void * ) pxQueue->u.pcReadFrom, ( unsigned ) pxQueue->uxItemSize ); -2311: -2312: if( ( *pxCoRoutineWoken ) == pdFALSE ) -2313: { -2314: if( listLIST_IS_EMPTY( &( pxQueue->xTasksWaitingToSend ) ) == pdFALSE ) -2315: { -2316: if( xCoRoutineRemoveFromEventList( &( pxQueue->xTasksWaitingToSend ) ) != pdFALSE ) -2317: { -2318: *pxCoRoutineWoken = pdTRUE; -2319: } -2320: else -2321: { -2322: mtCOVERAGE_TEST_MARKER(); -2323: } -2324: } -2325: else -2326: { -2327: mtCOVERAGE_TEST_MARKER(); -2328: } -2329: } -2330: else -2331: { -2332: mtCOVERAGE_TEST_MARKER(); -2333: } -2334: -2335: xReturn = pdPASS; -2336: } -2337: else -2338: { -2339: xReturn = pdFAIL; -2340: } -2341: -2342: return xReturn; -2343: } -2344: -2345: #endif /* configUSE_CO_ROUTINES */ -2346: /*-----------------------------------------------------------*/ -2347: -2348: #if ( configQUEUE_REGISTRY_SIZE > 0 ) -2349: -2350: void vQueueAddToRegistry( QueueHandle_t xQueue, const char *pcQueueName ) /*lint !e971 Unqualified char types are allowed for strings and single characters only. */ -2351: { -2352: UBaseType_t ux; -2353: -2354: /* See if there is an empty space in the registry. A NULL name denotes -2355: a free slot. */ -2356: for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) -2357: { -2358: if( xQueueRegistry[ ux ].pcQueueName == NULL ) -2359: { -2360: /* Store the information on this queue. */ -2361: xQueueRegistry[ ux ].pcQueueName = pcQueueName; -2362: xQueueRegistry[ ux ].xHandle = xQueue; -2363: -2364: traceQUEUE_REGISTRY_ADD( xQueue, pcQueueName ); -2365: break; -2366: } -2367: else -2368: { -2369: mtCOVERAGE_TEST_MARKER(); -2370: } -2371: } -2372: } -2373: -2374: #endif /* configQUEUE_REGISTRY_SIZE */ -2375: /*-----------------------------------------------------------*/ -2376: -2377: #if ( configQUEUE_REGISTRY_SIZE > 0 ) -2378: -2379: void vQueueUnregisterQueue( QueueHandle_t xQueue ) -2380: { -2381: UBaseType_t ux; -2382: -2383: /* See if the handle of the queue being unregistered in actually in the -2384: registry. */ -2385: for( ux = ( UBaseType_t ) 0U; ux < ( UBaseType_t ) configQUEUE_REGISTRY_SIZE; ux++ ) -2386: { -2387: if( xQueueRegistry[ ux ].xHandle == xQueue ) -2388: { -2389: /* Set the name to NULL to show that this slot if free again. */ -2390: xQueueRegistry[ ux ].pcQueueName = NULL; -2391: break; -2392: } -2393: else -2394: { -2395: mtCOVERAGE_TEST_MARKER(); -2396: } -2397: } -2398: -2399: } /*lint !e818 xQueue could not be pointer to const because it is a typedef. */ -2400: -2401: #endif /* configQUEUE_REGISTRY_SIZE */ -2402: /*-----------------------------------------------------------*/ -2403: -2404: #if ( configUSE_TIMERS == 1 ) -2405: -2406: void vQueueWaitForMessageRestricted( QueueHandle_t xQueue, TickType_t xTicksToWait, const BaseType_t xWaitIndefinitely ) -2407: { -BFD06928 4FF1 ADDIU SP, SP, -32 -BFD0692A CBE7 SW RA, 28(SP) -BFD0692C CBC6 SW S8, 24(SP) -BFD0692E 0FDD MOVE S8, SP -BFD06930 0020F89E SW A0, 32(S8) -BFD06934 0024F8BE SW A1, 36(S8) -BFD06938 0028F8DE SW A2, 40(S8) -2408: Queue_t * const pxQueue = ( Queue_t * ) xQueue; -BFD0693C 0020FC5E LW V0, 32(S8) -BFD06940 0010F85E SW V0, 16(S8) -2409: -2410: /* This function should not be called by application code hence the -2411: 'Restricted' in its name. It is not part of the public API. It is -2412: designed for use by kernel code, and has special calling requirements. -2413: It can result in vListInsert() being called on a list that can only -2414: possibly ever have one item in it, so the list will be fast, but even -2415: so it should be called with the scheduler locked and not from a critical -2416: section. */ -2417: -2418: /* Only do anything if there are no messages in the queue. This function -2419: will not actually cause the task to block, just place it on a blocked -2420: list. It will not block until the scheduler is unlocked - at which -2421: time a yield will be performed. If an item is added to the queue while -2422: the queue is locked, and the calling task blocks on the queue, then the -2423: calling task will be immediately unblocked when the queue is unlocked. */ -2424: prvLockQueue( pxQueue ); -BFD06944 33B877E8 JALS vTaskEnterCritical -BFD06946 0C0033B8 ADDIU SP, T8, 3072 -BFD06948 0C00 NOP -BFD0694A 0010FC5E LW V0, 16(S8) -BFD0694E 0044FC62 LW V1, 68(V0) -BFD06952 ED7F LI V0, -1 -BFD06954 0005B443 BNE V1, V0, 0xBFD06962 -BFD06956 0C000005 SLL ZERO, A1, 1 -BFD06958 0C00 NOP -BFD0695A 0010FC5E LW V0, 16(S8) -BFD0695E 0044F802 SW ZERO, 68(V0) -BFD06962 0010FC5E LW V0, 16(S8) -BFD06966 0048FC62 LW V1, 72(V0) -BFD0696A ED7F LI V0, -1 -BFD0696C 0005B443 BNE V1, V0, 0xBFD0697A -BFD0696E 0C000005 SLL ZERO, A1, 1 -BFD06970 0C00 NOP -BFD06972 0010FC5E LW V0, 16(S8) -BFD06976 0048F802 SW ZERO, 72(V0) -BFD0697A 40AA77E8 JALS vTaskExitCritical -BFD0697C 0C0040AA BNEZC T2, 0xBFD08180 -BFD0697E 0C00 NOP -2425: if( pxQueue->uxMessagesWaiting == ( UBaseType_t ) 0U ) -BFD06980 0010FC5E LW V0, 16(S8) -BFD06984 692E LW V0, 56(V0) -BFD06986 000C40A2 BNEZC V0, 0xBFD069A2 -2426: { -2427: /* There is nothing in the queue, block for the specified period. */ -2428: vTaskPlaceOnEventListRestricted( &( pxQueue->xTasksWaitingToReceive ), xTicksToWait, xWaitIndefinitely ); -BFD0698A 0010FC5E LW V0, 16(S8) -BFD0698E 00243042 ADDIU V0, V0, 36 -BFD06992 0C82 MOVE A0, V0 -BFD06994 0024FCBE LW A1, 36(S8) -BFD06998 0028FCDE LW A2, 40(S8) -BFD0699C 2E2C77E8 JALS vTaskPlaceOnEventListRestricted -BFD0699E 2E2C ANDI A0, V0, 0x40 -BFD069A0 0C00 NOP -2429: } -2430: else -2431: { -2432: mtCOVERAGE_TEST_MARKER(); -2433: } -2434: prvUnlockQueue( pxQueue ); -BFD069A2 0010FC9E LW A0, 16(S8) -BFD069A6 1DEE77E8 JALS prvUnlockQueue -BFD069A8 0C001DEE LB T7, 3072(T6) -BFD069AA 0C00 NOP -2435: } -BFD069AC 0FBE MOVE SP, S8 -BFD069AE 4BE7 LW RA, 28(SP) -BFD069B0 4BC6 LW S8, 24(SP) -BFD069B2 4C11 ADDIU SP, SP, 32 -BFD069B4 459F JR16 RA -BFD069B6 0C00 NOP -2436: -2437: #endif /* configUSE_TIMERS */ -2438: /*-----------------------------------------------------------*/ -2439: -2440: #if ( configUSE_QUEUE_SETS == 1 ) -2441: -2442: QueueSetHandle_t xQueueCreateSet( const UBaseType_t uxEventQueueLength ) -2443: { -BFD098AC 4FF1 ADDIU SP, SP, -32 -BFD098AE CBE7 SW RA, 28(SP) -BFD098B0 CBC6 SW S8, 24(SP) -BFD098B2 0FDD MOVE S8, SP -BFD098B4 0020F89E SW A0, 32(S8) -2444: QueueSetHandle_t pxQueue; -2445: -2446: pxQueue = xQueueGenericCreate( uxEventQueueLength, sizeof( Queue_t * ), queueQUEUE_TYPE_SET ); -BFD098B8 0020FC9E LW A0, 32(S8) -BFD098BC EE84 LI A1, 4 -BFD098BE 0CC0 MOVE A2, ZERO -BFD098C0 1EFA77E8 JALS xQueueGenericCreate -BFD098C2 0C001EFA LB S7, 3072(K0) -BFD098C4 0C00 NOP -BFD098C6 0010F85E SW V0, 16(S8) -2447: -2448: return pxQueue; -BFD098CA 0010FC5E LW V0, 16(S8) -2449: } -BFD098CE 0FBE MOVE SP, S8 -BFD098D0 4BE7 LW RA, 28(SP) -BFD098D2 4BC6 LW S8, 24(SP) -BFD098D4 4C11 ADDIU SP, SP, 32 -BFD098D6 459F JR16 RA -BFD098D8 0C00 NOP -2450: -2451: #endif /* configUSE_QUEUE_SETS */ -2452: /*-----------------------------------------------------------*/ -2453: -2454: #if ( configUSE_QUEUE_SETS == 1 ) -2455: -2456: BaseType_t xQueueAddToSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) -2457: { -BFD07E9C 4FF1 ADDIU SP, SP, -32 -BFD07E9E CBE7 SW RA, 28(SP) -BFD07EA0 CBC6 SW S8, 24(SP) -BFD07EA2 0FDD MOVE S8, SP -BFD07EA4 0020F89E SW A0, 32(S8) -BFD07EA8 0024F8BE SW A1, 36(S8) -2458: BaseType_t xReturn; -2459: -2460: taskENTER_CRITICAL(); -BFD07EAC 33B877E8 JALS vTaskEnterCritical -BFD07EAE 0C0033B8 ADDIU SP, T8, 3072 -BFD07EB0 0C00 NOP -2461: { -2462: if( ( ( Queue_t * ) xQueueOrSemaphore )->pxQueueSetContainer != NULL ) -BFD07EB2 0020FC5E LW V0, 32(S8) -BFD07EB6 004CFC42 LW V0, 76(V0) -BFD07EBA 000440E2 BEQZC V0, 0xBFD07EC6 -2463: { -2464: /* Cannot add a queue/semaphore to more than one queue set. */ -2465: xReturn = pdFAIL; -BFD07EBE 0010F81E SW ZERO, 16(S8) -BFD07EC2 CC13 B 0xBFD07EEA -BFD07EC4 0C00 NOP -2466: } -2467: else if( ( ( Queue_t * ) xQueueOrSemaphore )->uxMessagesWaiting != ( UBaseType_t ) 0 ) -BFD07EC6 0020FC5E LW V0, 32(S8) -BFD07ECA 692E LW V0, 56(V0) -BFD07ECC 000440E2 BEQZC V0, 0xBFD07ED8 -2468: { -2469: /* Cannot add a queue/semaphore to a queue set if there are already -2470: items in the queue/semaphore. */ -2471: xReturn = pdFAIL; -BFD07ED0 0010F81E SW ZERO, 16(S8) -BFD07ED4 CC0A B 0xBFD07EEA -BFD07ED6 0C00 NOP -2472: } -2473: else -2474: { -2475: ( ( Queue_t * ) xQueueOrSemaphore )->pxQueueSetContainer = xQueueSet; -BFD07ED8 0020FC5E LW V0, 32(S8) -BFD07EDC 0024FC7E LW V1, 36(S8) -BFD07EE0 004CF862 SW V1, 76(V0) -2476: xReturn = pdPASS; -BFD07EE4 ED01 LI V0, 1 -BFD07EE6 0010F85E SW V0, 16(S8) -2477: } -2478: } -2479: taskEXIT_CRITICAL(); -BFD07EEA 40AA77E8 JALS vTaskExitCritical -BFD07EEC 0C0040AA BNEZC T2, 0xBFD096F0 -BFD07EEE 0C00 NOP -2480: -2481: return xReturn; -BFD07EF0 0010FC5E LW V0, 16(S8) -2482: } -BFD07EF4 0FBE MOVE SP, S8 -BFD07EF6 4BE7 LW RA, 28(SP) -BFD07EF8 4BC6 LW S8, 24(SP) -BFD07EFA 4C11 ADDIU SP, SP, 32 -BFD07EFC 459F JR16 RA -BFD07EFE 0C00 NOP -2483: -2484: #endif /* configUSE_QUEUE_SETS */ -2485: /*-----------------------------------------------------------*/ -2486: -2487: #if ( configUSE_QUEUE_SETS == 1 ) -2488: -2489: BaseType_t xQueueRemoveFromSet( QueueSetMemberHandle_t xQueueOrSemaphore, QueueSetHandle_t xQueueSet ) -2490: { -BFD079FC 4FF1 ADDIU SP, SP, -32 -BFD079FE CBE7 SW RA, 28(SP) -BFD07A00 CBC6 SW S8, 24(SP) -BFD07A02 0FDD MOVE S8, SP -BFD07A04 0020F89E SW A0, 32(S8) -BFD07A08 0024F8BE SW A1, 36(S8) -2491: BaseType_t xReturn; -2492: Queue_t * const pxQueueOrSemaphore = ( Queue_t * ) xQueueOrSemaphore; -BFD07A0C 0020FC5E LW V0, 32(S8) -BFD07A10 0014F85E SW V0, 20(S8) -2493: -2494: if( pxQueueOrSemaphore->pxQueueSetContainer != xQueueSet ) -BFD07A14 0014FC5E LW V0, 20(S8) -BFD07A18 004CFC62 LW V1, 76(V0) -BFD07A1C 0024FC5E LW V0, 36(S8) -BFD07A20 00059443 BEQ V1, V0, 0xBFD07A2E -BFD07A22 0C000005 SLL ZERO, A1, 1 -BFD07A24 0C00 NOP -2495: { -2496: /* The queue was not a member of the set. */ -2497: xReturn = pdFAIL; -BFD07A26 0010F81E SW ZERO, 16(S8) -BFD07A2A CC17 B 0xBFD07A5A -BFD07A2C 0C00 NOP -2498: } -2499: else if( pxQueueOrSemaphore->uxMessagesWaiting != ( UBaseType_t ) 0 ) -BFD07A2E 0014FC5E LW V0, 20(S8) -BFD07A32 692E LW V0, 56(V0) -BFD07A34 000440E2 BEQZC V0, 0xBFD07A40 -2500: { -2501: /* It is dangerous to remove a queue from a set when the queue is -2502: not empty because the queue set will still hold pending events for -2503: the queue. */ -2504: xReturn = pdFAIL; -BFD07A38 0010F81E SW ZERO, 16(S8) -BFD07A3C CC0E B 0xBFD07A5A -BFD07A3E 0C00 NOP -2505: } -2506: else -2507: { -2508: taskENTER_CRITICAL(); -BFD07A40 33B877E8 JALS vTaskEnterCritical -BFD07A42 0C0033B8 ADDIU SP, T8, 3072 -BFD07A44 0C00 NOP -2509: { -2510: /* The queue is no longer contained in the set. */ -2511: pxQueueOrSemaphore->pxQueueSetContainer = NULL; -BFD07A46 0014FC5E LW V0, 20(S8) -BFD07A4A 004CF802 SW ZERO, 76(V0) -2512: } -2513: taskEXIT_CRITICAL(); -BFD07A4E 40AA77E8 JALS vTaskExitCritical -BFD07A50 0C0040AA BNEZC T2, gpio_port_bitmaps -BFD07A52 0C00 NOP -2514: xReturn = pdPASS; -BFD07A54 ED01 LI V0, 1 -BFD07A56 0010F85E SW V0, 16(S8) -2515: } -2516: -2517: return xReturn; -BFD07A5A 0010FC5E LW V0, 16(S8) -2518: } /*lint !e818 xQueueSet could not be declared as pointing to const as it is a typedef. */ -BFD07A5E 0FBE MOVE SP, S8 -BFD07A60 4BE7 LW RA, 28(SP) -BFD07A62 4BC6 LW S8, 24(SP) -BFD07A64 4C11 ADDIU SP, SP, 32 -BFD07A66 459F JR16 RA -BFD07A68 0C00 NOP -2519: -2520: #endif /* configUSE_QUEUE_SETS */ -2521: /*-----------------------------------------------------------*/ -2522: -2523: #if ( configUSE_QUEUE_SETS == 1 ) -2524: -2525: QueueSetMemberHandle_t xQueueSelectFromSet( QueueSetHandle_t xQueueSet, TickType_t const xTicksToWait ) -2526: { -BFD094E0 4FF1 ADDIU SP, SP, -32 -BFD094E2 CBE7 SW RA, 28(SP) -BFD094E4 CBC6 SW S8, 24(SP) -BFD094E6 0FDD MOVE S8, SP -BFD094E8 0020F89E SW A0, 32(S8) -BFD094EC 0024F8BE SW A1, 36(S8) -2527: QueueSetMemberHandle_t xReturn = NULL; -BFD094F0 0010F81E SW ZERO, 16(S8) -2528: -2529: ( void ) xQueueGenericReceive( ( QueueHandle_t ) xQueueSet, &xReturn, xTicksToWait, pdFALSE ); /*lint !e961 Casting from one typedef to another is not redundant. */ -BFD094F4 0020FC9E LW A0, 32(S8) -BFD094F8 0010305E ADDIU V0, S8, 16 -BFD094FC 0CA2 MOVE A1, V0 -BFD094FE 0024FCDE LW A2, 36(S8) -BFD09502 0CE0 MOVE A3, ZERO -BFD09504 081E77E8 JALS xQueueGenericReceive -BFD09506 081E LBU S0, 14(S1) -BFD09508 0C00 NOP -2530: return xReturn; -BFD0950A 0010FC5E LW V0, 16(S8) -2531: } -BFD0950E 0FBE MOVE SP, S8 -BFD09510 4BE7 LW RA, 28(SP) -BFD09512 4BC6 LW S8, 24(SP) -BFD09514 4C11 ADDIU SP, SP, 32 -BFD09516 459F JR16 RA -BFD09518 0C00 NOP -2532: -2533: #endif /* configUSE_QUEUE_SETS */ -2534: /*-----------------------------------------------------------*/ -2535: -2536: #if ( configUSE_QUEUE_SETS == 1 ) -2537: -2538: QueueSetMemberHandle_t xQueueSelectFromSetFromISR( QueueSetHandle_t xQueueSet ) -2539: { -BFD097DC 4FF1 ADDIU SP, SP, -32 -BFD097DE CBE7 SW RA, 28(SP) -BFD097E0 CBC6 SW S8, 24(SP) -BFD097E2 0FDD MOVE S8, SP -BFD097E4 0020F89E SW A0, 32(S8) -2540: QueueSetMemberHandle_t xReturn = NULL; -BFD097E8 0010F81E SW ZERO, 16(S8) -2541: -2542: ( void ) xQueueReceiveFromISR( ( QueueHandle_t ) xQueueSet, &xReturn, NULL ); /*lint !e961 Casting from one typedef to another is not redundant. */ -BFD097EC 0020FC9E LW A0, 32(S8) -BFD097F0 0010305E ADDIU V0, S8, 16 -BFD097F4 0CA2 MOVE A1, V0 -BFD097F6 0CC0 MOVE A2, ZERO -BFD097F8 1D6477E8 JALS xQueueReceiveFromISR -BFD097FA 0C001D64 LB T3, 3072(A0) -BFD097FC 0C00 NOP -2543: return xReturn; -BFD097FE 0010FC5E LW V0, 16(S8) -2544: } -BFD09802 0FBE MOVE SP, S8 -BFD09804 4BE7 LW RA, 28(SP) -BFD09806 4BC6 LW S8, 24(SP) -BFD09808 4C11 ADDIU SP, SP, 32 -BFD0980A 459F JR16 RA -BFD0980C 0C00 NOP -2545: -2546: #endif /* configUSE_QUEUE_SETS */ -2547: /*-----------------------------------------------------------*/ -2548: -2549: #if ( configUSE_QUEUE_SETS == 1 ) -2550: -2551: static BaseType_t prvNotifyQueueSetContainer( const Queue_t * const pxQueue, const BaseType_t xCopyPosition ) -2552: { -BFD043B0 4FF1 ADDIU SP, SP, -32 -BFD043B2 CBE7 SW RA, 28(SP) -BFD043B4 CBC6 SW S8, 24(SP) -BFD043B6 0FDD MOVE S8, SP -BFD043B8 0020F89E SW A0, 32(S8) -BFD043BC 0024F8BE SW A1, 36(S8) -2553: Queue_t *pxQueueSetContainer = pxQueue->pxQueueSetContainer; -BFD043C0 0020FC5E LW V0, 32(S8) -BFD043C4 004CFC42 LW V0, 76(V0) -BFD043C8 0014F85E SW V0, 20(S8) -2554: BaseType_t xReturn = pdFALSE; -BFD043CC 0010F81E SW ZERO, 16(S8) -2555: -2556: /* This function must be called form a critical section. */ -2557: -2558: configASSERT( pxQueueSetContainer ); -BFD043D0 0014FC5E LW V0, 20(S8) -BFD043D4 000940A2 BNEZC V0, 0xBFD043EA -BFD043D8 BFD141A2 LUI V0, 0xBFD1 -BFD043DA 3082BFD1 LDC1 F30, 12418(S1) -BFD043DC 9E3C3082 ADDIU A0, V0, -25028 -BFD043DE 30A09E3C LWC1 F17, 12448(GP) -BFD043E0 09FE30A0 ADDIU A1, ZERO, 2558 -BFD043E2 09FE LBU V1, 14(A3) -BFD043E4 4B7E77E8 JALS vAssertCalled -BFD043E6 4B7E LW K1, 120(SP) -BFD043E8 0C00 NOP -2559: configASSERT( pxQueueSetContainer->uxMessagesWaiting < pxQueueSetContainer->uxLength ); -BFD043EA 0014FC5E LW V0, 20(S8) -BFD043EE 69AE LW V1, 56(V0) -BFD043F0 0014FC5E LW V0, 20(S8) -BFD043F4 692F LW V0, 60(V0) -BFD043F6 13900043 SLTU V0, V1, V0 -BFD043F8 40A21390 ADDI GP, S0, 16546 -BFD043FA 000940A2 BNEZC V0, 0xBFD04410 -BFD043FE BFD141A2 LUI V0, 0xBFD1 -BFD04400 3082BFD1 LDC1 F30, 12418(S1) -BFD04402 9E3C3082 ADDIU A0, V0, -25028 -BFD04404 30A09E3C LWC1 F17, 12448(GP) -BFD04406 09FF30A0 ADDIU A1, ZERO, 2559 -BFD04408 09FF LBU V1, -1(A3) -BFD0440A 4B7E77E8 JALS vAssertCalled -BFD0440C 4B7E LW K1, 120(SP) -BFD0440E 0C00 NOP -2560: -2561: if( pxQueueSetContainer->uxMessagesWaiting < pxQueueSetContainer->uxLength ) -BFD04410 0014FC5E LW V0, 20(S8) -BFD04414 69AE LW V1, 56(V0) -BFD04416 0014FC5E LW V0, 20(S8) -BFD0441A 692F LW V0, 60(V0) -BFD0441C 13900043 SLTU V0, V1, V0 -BFD0441E 40E21390 ADDI GP, S0, 16610 -BFD04420 003040E2 BEQZC V0, 0xBFD04484 -2562: { -2563: traceQUEUE_SEND( pxQueueSetContainer ); -2564: -2565: /* The data copied is the handle of the queue that contains data. */ -2566: xReturn = prvCopyDataToQueue( pxQueueSetContainer, &pxQueue, xCopyPosition ); -BFD04424 0014FC9E LW A0, 20(S8) -BFD04428 002030BE ADDIU A1, S8, 32 -BFD0442C 0024FCDE LW A2, 36(S8) -BFD04430 14E677E8 JALS prvCopyDataToQueue -BFD04432 0C0014E6 LBU A3, 3072(A2) -BFD04434 0C00 NOP -BFD04436 0010F85E SW V0, 16(S8) -2567: -2568: if( pxQueueSetContainer->xTxLock == queueUNLOCKED ) -BFD0443A 0014FC5E LW V0, 20(S8) -BFD0443E 0048FC62 LW V1, 72(V0) -BFD04442 ED7F LI V0, -1 -BFD04444 0015B443 BNE V1, V0, 0xBFD04472 -BFD04446 0C000015 SLL ZERO, S5, 1 -BFD04448 0C00 NOP -2569: { -2570: if( listLIST_IS_EMPTY( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) == pdFALSE ) -BFD0444A 0014FC5E LW V0, 20(S8) -BFD0444E 6929 LW V0, 36(V0) -BFD04450 001840E2 BEQZC V0, 0xBFD04484 -2571: { -2572: if( xTaskRemoveFromEventList( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) != pdFALSE ) -BFD04454 0014FC5E LW V0, 20(S8) -BFD04458 00243042 ADDIU V0, V0, 36 -BFD0445C 0C82 MOVE A0, V0 -BFD0445E 22BC77E8 JALS xTaskRemoveFromEventList -BFD04460 0C0022BC LWC2 S5, 3072(GP) -BFD04462 0C00 NOP -BFD04464 000E40E2 BEQZC V0, 0xBFD04484 -2573: { -2574: /* The task waiting has a higher priority. */ -2575: xReturn = pdTRUE; -BFD04468 ED01 LI V0, 1 -BFD0446A 0010F85E SW V0, 16(S8) -BFD0446E CC0A B 0xBFD04484 -BFD04470 0C00 NOP -2576: } -2577: else -2578: { -2579: mtCOVERAGE_TEST_MARKER(); -2580: } -2581: } -2582: else -2583: { -2584: mtCOVERAGE_TEST_MARKER(); -2585: } -2586: } -2587: else -2588: { -2589: ( pxQueueSetContainer->xTxLock )++; -BFD04472 0014FC5E LW V0, 20(S8) -BFD04476 0048FC42 LW V0, 72(V0) -BFD0447A 6DA0 ADDIU V1, V0, 1 -BFD0447C 0014FC5E LW V0, 20(S8) -BFD04480 0048F862 SW V1, 72(V0) -2590: } -2591: } -2592: else -2593: { -2594: mtCOVERAGE_TEST_MARKER(); -2595: } -2596: -2597: return xReturn; -BFD04484 0010FC5E LW V0, 16(S8) -2598: } -BFD04488 0FBE MOVE SP, S8 -BFD0448A 4BE7 LW RA, 28(SP) -BFD0448C 4BC6 LW S8, 24(SP) -BFD0448E 4C11 ADDIU SP, SP, 32 -BFD04490 459F JR16 RA -BFD04492 0C00 NOP -2599: -2600: #endif /* configUSE_QUEUE_SETS */ -2601: -2602: -2603: -2604: -2605: -2606: -2607: -2608: -2609: -2610: -2611: -2612: ---- c:/e/dev/freertos/workingcopy/freertos/source/portable/mplab/pic32mec14xx/portmacro.h ------------- -1: /* -2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -3: All rights reserved -4: -5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -6: -7: This file is part of the FreeRTOS distribution. -8: -9: FreeRTOS is free software; you can redistribute it and/or modify it under -10: the terms of the GNU General Public License (version 2) as published by the -11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: #ifndef PORTMACRO_H -71: #define PORTMACRO_H -72: -73: #ifdef __cplusplus -74: extern "C" { -75: #endif -76: -77: /*----------------------------------------------------------- -78: * Port specific definitions. -79: * -80: * The settings in this file configure FreeRTOS correctly for the -81: * given hardware and compiler. -82: * -83: * These settings should not be altered. -84: *----------------------------------------------------------- -85: */ -86: -87: /* Type definitions. */ -88: #define portCHAR char -89: #define portFLOAT float -90: #define portDOUBLE double -91: #define portLONG long -92: #define portSHORT short -93: #define portSTACK_TYPE uint32_t -94: #define portBASE_TYPE long -95: -96: typedef portSTACK_TYPE StackType_t; -97: typedef long BaseType_t; -98: typedef unsigned long UBaseType_t; -99: -100: #if( configUSE_16_BIT_TICKS == 1 ) -101: typedef uint16_t TickType_t; -102: #define portMAX_DELAY ( TickType_t ) 0xffff -103: #else -104: typedef uint32_t TickType_t; -105: #define portMAX_DELAY ( TickType_t ) 0xffffffffUL -106: #endif -107: /*-----------------------------------------------------------*/ -108: -109: /* Hardware specifics. */ -110: #define portBYTE_ALIGNMENT 8 -111: #define portSTACK_GROWTH -1 -112: #define portTICK_PERIOD_MS ( ( TickType_t ) 1000 / configTICK_RATE_HZ ) -113: /*-----------------------------------------------------------*/ -114: -115: /* Critical section management. */ -116: #define portIPL_SHIFT ( 10UL ) -117: /* Don't straddle the CEE bit. Interrupts calling FreeRTOS functions should -118: never have higher IPL bits set anyway. */ -119: #define portALL_IPL_BITS ( 0x7FUL << portIPL_SHIFT ) -120: #define portSW0_BIT ( 0x01 << 8 ) -121: -122: /*-----------------------------------------------------------*/ -123: -124: static inline uint32_t ulPortGetCP0Status( void ) -125: { -BFD09B4C 4FF9 ADDIU SP, SP, -16 -BFD09B4E CBC3 SW S8, 12(SP) -BFD09B50 CA02 SW S0, 8(SP) -BFD09B52 0FDD MOVE S8, SP -BFD09C6C 4FF9 ADDIU SP, SP, -16 -BFD09C6E CBC3 SW S8, 12(SP) -BFD09C70 CA02 SW S0, 8(SP) -BFD09C72 0FDD MOVE S8, SP -BFD09D6C 4FF9 ADDIU SP, SP, -16 -BFD09D6E CBC3 SW S8, 12(SP) -BFD09D70 CA02 SW S0, 8(SP) -BFD09D72 0FDD MOVE S8, SP -126: uint32_t rv; -127: -128: __asm volatile( -BFD09B54 00FC020C MFC0 S0, Status -BFD09B58 0000FA1E SW S0, 0(S8) -BFD09C74 00FC020C MFC0 S0, Status -BFD09C78 0000FA1E SW S0, 0(S8) -BFD09D74 00FC020C MFC0 S0, Status -BFD09D78 0000FA1E SW S0, 0(S8) -129: "\n\t" -130: "mfc0 %0,$12,0 \n\t" -131: : "=r" ( rv ) :: ); -132: -133: return rv; -BFD09B5C 0000FC5E LW V0, 0(S8) -BFD09C7C 0000FC5E LW V0, 0(S8) -BFD09D7C 0000FC5E LW V0, 0(S8) -134: } -BFD09B60 0FBE MOVE SP, S8 -BFD09B62 4BC3 LW S8, 12(SP) -BFD09B64 4A02 LW S0, 8(SP) -BFD09B66 459F JR16 RA -BFD09B68 4C09 ADDIU SP, SP, 16 -BFD09C80 0FBE MOVE SP, S8 -BFD09C82 4BC3 LW S8, 12(SP) -BFD09C84 4A02 LW S0, 8(SP) -BFD09C86 459F JR16 RA -BFD09C88 4C09 ADDIU SP, SP, 16 -BFD09D80 0FBE MOVE SP, S8 -BFD09D82 4BC3 LW S8, 12(SP) -BFD09D84 4A02 LW S0, 8(SP) -BFD09D86 459F JR16 RA -BFD09D88 4C09 ADDIU SP, SP, 16 -135: /*-----------------------------------------------------------*/ -136: -137: static inline void vPortSetCP0Status( uint32_t new_status) -138: { -BFD09B6C 4FB0 ADDIU SP, SP, -8 -BFD09B6E CBC1 SW S8, 4(SP) -BFD09B70 0FDD MOVE S8, SP -BFD09B72 0008F89E SW A0, 8(S8) -BFD09C8C 4FB0 ADDIU SP, SP, -8 -BFD09C8E CBC1 SW S8, 4(SP) -BFD09C90 0FDD MOVE S8, SP -BFD09C92 0008F89E SW A0, 8(S8) -BFD09D8C 4FB0 ADDIU SP, SP, -8 -BFD09D8E CBC1 SW S8, 4(SP) -BFD09D90 0FDD MOVE S8, SP -BFD09D92 0008F89E SW A0, 8(S8) -139: ( void ) new_status; -140: -141: __asm__ __volatile__( -BFD09B76 0008FC5E LW V0, 8(S8) -BFD09B78 004C0008 INS ZERO, T0, 1, 0 -BFD09B7A 02FC004C MTC0 V0, Status -BFD09B7C 000002FC SLL S7, GP, 0 -BFD09B7E 18000000 SLL ZERO, ZERO, 3 -BFD09B80 0FBE1800 SB ZERO, 4030(ZERO) -BFD09C96 0008FC5E LW V0, 8(S8) -BFD09C98 004C0008 INS ZERO, T0, 1, 0 -BFD09C9A 02FC004C MTC0 V0, Status -BFD09C9C 000002FC SLL S7, GP, 0 -BFD09C9E 18000000 SLL ZERO, ZERO, 3 -BFD09CA0 0FBE1800 SB ZERO, 4030(ZERO) -BFD09D96 0008FC5E LW V0, 8(S8) -BFD09D98 004C0008 INS ZERO, T0, 1, 0 -BFD09D9A 02FC004C MTC0 V0, Status -BFD09D9C 000002FC SLL S7, GP, 0 -BFD09D9E 18000000 SLL ZERO, ZERO, 3 -BFD09DA0 0FBE1800 SB ZERO, 4030(ZERO) -142: "\n\t" -143: "mtc0 %0,$12,0 \n\t" -144: "ehb \n\t" -145: : -146: :"r" ( new_status ) : ); -147: } -BFD09B82 0FBE MOVE SP, S8 -BFD09B84 4BC1 LW S8, 4(SP) -BFD09B86 459F JR16 RA -BFD09B88 4C05 ADDIU SP, SP, 8 -BFD09CA2 0FBE MOVE SP, S8 -BFD09CA4 4BC1 LW S8, 4(SP) -BFD09CA6 459F JR16 RA -BFD09CA8 4C05 ADDIU SP, SP, 8 -BFD09DA2 0FBE MOVE SP, S8 -BFD09DA4 4BC1 LW S8, 4(SP) -BFD09DA6 459F JR16 RA -BFD09DA8 4C05 ADDIU SP, SP, 8 -148: /*-----------------------------------------------------------*/ -149: -150: static inline uint32_t ulPortGetCP0Cause( void ) -151: { -BFD09B8C 4FF9 ADDIU SP, SP, -16 -BFD09B8E CBC3 SW S8, 12(SP) -BFD09B90 CA02 SW S0, 8(SP) -BFD09B92 0FDD MOVE S8, SP -BFD09BCC 4FF9 ADDIU SP, SP, -16 -BFD09BCE CBC3 SW S8, 12(SP) -BFD09BD0 CA02 SW S0, 8(SP) -BFD09BD2 0FDD MOVE S8, SP -BFD09C2C 4FF9 ADDIU SP, SP, -16 -BFD09C2E CBC3 SW S8, 12(SP) -BFD09C30 CA02 SW S0, 8(SP) -BFD09C32 0FDD MOVE S8, SP -BFD09CAC 4FF9 ADDIU SP, SP, -16 -BFD09CAE CBC3 SW S8, 12(SP) -BFD09CB0 CA02 SW S0, 8(SP) -BFD09CB2 0FDD MOVE S8, SP -BFD09CEC 4FF9 ADDIU SP, SP, -16 -BFD09CEE CBC3 SW S8, 12(SP) -BFD09CF0 CA02 SW S0, 8(SP) -BFD09CF2 0FDD MOVE S8, SP -152: uint32_t rv; -153: -154: __asm volatile( -BFD09B94 00FC020D MFC0 S0, Cause -BFD09B98 0000FA1E SW S0, 0(S8) -BFD09BD4 00FC020D MFC0 S0, Cause -BFD09BD8 0000FA1E SW S0, 0(S8) -BFD09C34 00FC020D MFC0 S0, Cause -BFD09C38 0000FA1E SW S0, 0(S8) -BFD09CB4 00FC020D MFC0 S0, Cause -BFD09CB8 0000FA1E SW S0, 0(S8) -BFD09CF4 00FC020D MFC0 S0, Cause -BFD09CF8 0000FA1E SW S0, 0(S8) -155: "\n\t" -156: "mfc0 %0,$13,0 \n\t" -157: : "=r" ( rv ) :: ); -158: -159: return rv; -BFD09B9C 0000FC5E LW V0, 0(S8) -BFD09BDC 0000FC5E LW V0, 0(S8) -BFD09C3C 0000FC5E LW V0, 0(S8) -BFD09CBC 0000FC5E LW V0, 0(S8) -BFD09CFC 0000FC5E LW V0, 0(S8) -160: } -BFD09BA0 0FBE MOVE SP, S8 -BFD09BA2 4BC3 LW S8, 12(SP) -BFD09BA4 4A02 LW S0, 8(SP) -BFD09BA6 459F JR16 RA -BFD09BA8 4C09 ADDIU SP, SP, 16 -BFD09BE0 0FBE MOVE SP, S8 -BFD09BE2 4BC3 LW S8, 12(SP) -BFD09BE4 4A02 LW S0, 8(SP) -BFD09BE6 459F JR16 RA -BFD09BE8 4C09 ADDIU SP, SP, 16 -BFD09C40 0FBE MOVE SP, S8 -BFD09C42 4BC3 LW S8, 12(SP) -BFD09C44 4A02 LW S0, 8(SP) -BFD09C46 459F JR16 RA -BFD09C48 4C09 ADDIU SP, SP, 16 -BFD09CC0 0FBE MOVE SP, S8 -BFD09CC2 4BC3 LW S8, 12(SP) -BFD09CC4 4A02 LW S0, 8(SP) -BFD09CC6 459F JR16 RA -BFD09CC8 4C09 ADDIU SP, SP, 16 -BFD09D00 0FBE MOVE SP, S8 -BFD09D02 4BC3 LW S8, 12(SP) -BFD09D04 4A02 LW S0, 8(SP) -BFD09D06 459F JR16 RA -BFD09D08 4C09 ADDIU SP, SP, 16 -161: /*-----------------------------------------------------------*/ -162: -163: static inline void vPortSetCP0Cause( uint32_t new_cause ) -164: { -BFD09BAC 4FB0 ADDIU SP, SP, -8 -BFD09BAE CBC1 SW S8, 4(SP) -BFD09BB0 0FDD MOVE S8, SP -BFD09BB2 0008F89E SW A0, 8(S8) -BFD09BEC 4FB0 ADDIU SP, SP, -8 -BFD09BEE CBC1 SW S8, 4(SP) -BFD09BF0 0FDD MOVE S8, SP -BFD09BF2 0008F89E SW A0, 8(S8) -BFD09C4C 4FB0 ADDIU SP, SP, -8 -BFD09C4E CBC1 SW S8, 4(SP) -BFD09C50 0FDD MOVE S8, SP -BFD09C52 0008F89E SW A0, 8(S8) -BFD09CCC 4FB0 ADDIU SP, SP, -8 -BFD09CCE CBC1 SW S8, 4(SP) -BFD09CD0 0FDD MOVE S8, SP -BFD09CD2 0008F89E SW A0, 8(S8) -BFD09D0C 4FB0 ADDIU SP, SP, -8 -BFD09D0E CBC1 SW S8, 4(SP) -BFD09D10 0FDD MOVE S8, SP -BFD09D12 0008F89E SW A0, 8(S8) -165: ( void ) new_cause; -166: -167: __asm__ __volatile__( -BFD09BB6 0008FC5E LW V0, 8(S8) -BFD09BB8 004D0008 ADDQH.PH ZERO, T0, ZERO -BFD09BBA 02FC004D MTC0 V0, Cause -BFD09BBC 000002FC SLL S7, GP, 0 -BFD09BBE 18000000 SLL ZERO, ZERO, 3 -BFD09BC0 0FBE1800 SB ZERO, 4030(ZERO) -BFD09BF6 0008FC5E LW V0, 8(S8) -BFD09BF8 004D0008 ADDQH.PH ZERO, T0, ZERO -BFD09BFA 02FC004D MTC0 V0, Cause -BFD09BFC 000002FC SLL S7, GP, 0 -BFD09BFE 18000000 SLL ZERO, ZERO, 3 -BFD09C00 0FBE1800 SB ZERO, 4030(ZERO) -BFD09C56 0008FC5E LW V0, 8(S8) -BFD09C58 004D0008 ADDQH.PH ZERO, T0, ZERO -BFD09C5A 02FC004D MTC0 V0, Cause -BFD09C5C 000002FC SLL S7, GP, 0 -BFD09C5E 18000000 SLL ZERO, ZERO, 3 -BFD09C60 0FBE1800 SB ZERO, 4030(ZERO) -BFD09CD6 0008FC5E LW V0, 8(S8) -BFD09CD8 004D0008 ADDQH.PH ZERO, T0, ZERO -BFD09CDA 02FC004D MTC0 V0, Cause -BFD09CDC 000002FC SLL S7, GP, 0 -BFD09CDE 18000000 SLL ZERO, ZERO, 3 -BFD09CE0 0FBE1800 SB ZERO, 4030(ZERO) -BFD09D16 0008FC5E LW V0, 8(S8) -BFD09D18 004D0008 ADDQH.PH ZERO, T0, ZERO -BFD09D1A 02FC004D MTC0 V0, Cause -BFD09D1C 000002FC SLL S7, GP, 0 -BFD09D1E 18000000 SLL ZERO, ZERO, 3 -BFD09D20 0FBE1800 SB ZERO, 4030(ZERO) -168: "\n\t" -169: "mtc0 %0,$13,0 \n\t" -170: "ehb \n\t" -171: : -172: :"r" ( new_cause ) : ); -173: } -BFD09BC2 0FBE MOVE SP, S8 -BFD09BC4 4BC1 LW S8, 4(SP) -BFD09BC6 459F JR16 RA -BFD09BC8 4C05 ADDIU SP, SP, 8 -BFD09C02 0FBE MOVE SP, S8 -BFD09C04 4BC1 LW S8, 4(SP) -BFD09C06 459F JR16 RA -BFD09C08 4C05 ADDIU SP, SP, 8 -BFD09C62 0FBE MOVE SP, S8 -BFD09C64 4BC1 LW S8, 4(SP) -BFD09C66 459F JR16 RA -BFD09C68 4C05 ADDIU SP, SP, 8 -BFD09CE2 0FBE MOVE SP, S8 -BFD09CE4 4BC1 LW S8, 4(SP) -BFD09CE6 459F JR16 RA -BFD09CE8 4C05 ADDIU SP, SP, 8 -BFD09D22 0FBE MOVE SP, S8 -BFD09D24 4BC1 LW S8, 4(SP) -BFD09D26 459F JR16 RA -BFD09D28 4C05 ADDIU SP, SP, 8 -174: /*-----------------------------------------------------------*/ -175: -176: /* This clears the IPL bits, then sets them to -177: configMAX_SYSCALL_INTERRUPT_PRIORITY. An extra check is performed if -178: configASSERT() is defined to ensure an assertion handler does not inadvertently -179: attempt to lower the IPL when the call to assert was triggered because the IPL -180: value was found to be above configMAX_SYSCALL_INTERRUPT_PRIORITY when an ISR -181: safe FreeRTOS API function was executed. ISR safe FreeRTOS API functions are -182: those that end in FromISR. FreeRTOS maintains a separate interrupt API to -183: ensure API function and interrupt entry is as fast and as simple as possible. */ -184: #ifdef configASSERT -185: #define portDISABLE_INTERRUPTS() \ -186: { \ -187: uint32_t ulStatus; \ -188: /* Mask interrupts at and below the kernel interrupt priority. */ \ -189: ulStatus = ulPortGetCP0Status(); \ -190: /* Is the current IPL below configMAX_SYSCALL_INTERRUPT_PRIORITY? */ \ -191: if( ( ( ulStatus & portALL_IPL_BITS ) >> portIPL_SHIFT ) < configMAX_SYSCALL_INTERRUPT_PRIORITY ) \ -192: { \ -193: ulStatus &= ~portALL_IPL_BITS; \ -194: vPortSetCP0Status( ( ulStatus | ( configMAX_SYSCALL_INTERRUPT_PRIORITY << portIPL_SHIFT ) ) ); \ -195: } \ -196: } -197: #else /* configASSERT */ -198: #define portDISABLE_INTERRUPTS() \ -199: { \ -200: uint32_t ulStatus; \ -201: /* Mask interrupts at and below the kernel interrupt priority. */ \ -202: ulStatus = ulPortGetCP0Status(); \ -203: ulStatus &= ~portALL_IPL_BITS; \ -204: vPortSetCP0Status( ( ulStatus | ( configMAX_SYSCALL_INTERRUPT_PRIORITY << portIPL_SHIFT ) ) ); \ -205: } -206: #endif /* configASSERT */ -207: -208: #define portENABLE_INTERRUPTS() \ -209: { \ -210: uint32_t ulStatus; \ -211: /* Unmask all interrupts. */ \ -212: ulStatus = ulPortGetCP0Status(); \ -213: ulStatus &= ~portALL_IPL_BITS; \ -214: vPortSetCP0Status( ulStatus ); \ -215: } -216: -217: -218: extern void vTaskEnterCritical( void ); -219: extern void vTaskExitCritical( void ); -220: #define portCRITICAL_NESTING_IN_TCB 1 -221: #define portENTER_CRITICAL() vTaskEnterCritical() -222: #define portEXIT_CRITICAL() vTaskExitCritical() -223: -224: extern UBaseType_t uxPortSetInterruptMaskFromISR(); -225: extern void vPortClearInterruptMaskFromISR( UBaseType_t ); -226: #define portSET_INTERRUPT_MASK_FROM_ISR() uxPortSetInterruptMaskFromISR() -227: #define portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedStatusRegister ) vPortClearInterruptMaskFromISR( uxSavedStatusRegister ) -228: -229: #ifndef configUSE_PORT_OPTIMISED_TASK_SELECTION -230: #define configUSE_PORT_OPTIMISED_TASK_SELECTION 1 -231: #endif -232: -233: #if configUSE_PORT_OPTIMISED_TASK_SELECTION == 1 -234: -235: /* Check the configuration. */ -236: #if( configMAX_PRIORITIES > 32 ) -237: #error configUSE_PORT_OPTIMISED_TASK_SELECTION can only be set to 1 when configMAX_PRIORITIES is less than or equal to 32. It is very rare that a system requires more than 10 to 15 difference priorities as tasks that share a priority will time slice. -238: #endif -239: -240: /* Store/clear the ready priorities in a bit map. */ -241: #define portRECORD_READY_PRIORITY( uxPriority, uxReadyPriorities ) ( uxReadyPriorities ) |= ( 1UL << ( uxPriority ) ) -242: #define portRESET_READY_PRIORITY( uxPriority, uxReadyPriorities ) ( uxReadyPriorities ) &= ~( 1UL << ( uxPriority ) ) -243: -244: /*-----------------------------------------------------------*/ -245: -246: #define portGET_HIGHEST_PRIORITY( uxTopPriority, uxReadyPriorities ) uxTopPriority = ( 31 - _clz( ( uxReadyPriorities ) ) ) -247: -248: #endif /* taskRECORD_READY_PRIORITY */ -249: -250: /*-----------------------------------------------------------*/ -251: -252: /* Task utilities. */ -253: -254: #define portYIELD() \ -255: { \ -256: uint32_t ulCause; \ -257: /* Trigger software interrupt. */ \ -258: ulCause = ulPortGetCP0Cause(); \ -259: ulCause |= portSW0_BIT; \ -260: vPortSetCP0Cause( ulCause ); \ -261: } -262: -263: extern volatile UBaseType_t uxInterruptNesting; -264: #define portASSERT_IF_IN_ISR() configASSERT( uxInterruptNesting == 0 ) -265: -266: #define portNOP() __asm volatile ( "nop" ) -267: -268: /*-----------------------------------------------------------*/ -269: -270: /* Task function macros as described on the FreeRTOS.org WEB site. */ -271: #define portTASK_FUNCTION_PROTO( vFunction, pvParameters ) void vFunction( void *pvParameters ) __attribute__((noreturn)) -272: #define portTASK_FUNCTION( vFunction, pvParameters ) void vFunction( void *pvParameters ) -273: /*-----------------------------------------------------------*/ -274: -275: #define portEND_SWITCHING_ISR( xSwitchRequired ) if( xSwitchRequired ) \ -276: { \ -277: portYIELD(); \ -278: } -279: -280: /* Required by the kernel aware debugger. */ -281: #ifdef __DEBUG -282: #define portREMOVE_STATIC_QUALIFIER -283: #endif -284: -285: #ifdef __cplusplus -286: } -287: #endif -288: -289: #endif /* PORTMACRO_H */ -290: ---- c:/e/dev/freertos/workingcopy/freertos/source/portable/mplab/pic32mec14xx/port.c ------------------ -1: /* -2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -3: All rights reserved -4: -5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -6: -7: This file is part of the FreeRTOS distribution. -8: -9: FreeRTOS is free software; you can redistribute it and/or modify it under -10: the terms of the GNU General Public License (version 2) as published by the -11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: /*----------------------------------------------------------- -71: * Implementation of functions defined in portable.h for the PIC32MZ port. -72: *----------------------------------------------------------*/ -73: -74: #include -75: #include -76: -77: /* Scheduler include files. */ -78: #include "FreeRTOS.h" -79: #include "task.h" -80: -81: #if !defined(__MEC__) -82: #error This port is designed to work with XC32 on MEC14xx. Please update your C compiler version or settings. -83: #endif -84: -85: #if( ( configMAX_SYSCALL_INTERRUPT_PRIORITY >= 0x7 ) || ( configMAX_SYSCALL_INTERRUPT_PRIORITY == 0 ) ) -86: #error configMAX_SYSCALL_INTERRUPT_PRIORITY must be less than 7 and greater than 0 -87: #endif -88: -89: /* Hardware specifics. */ -90: #define portTIMER_PRESCALE 8 -91: #define portPRESCALE_BITS 1 -92: -93: /* Bits within various registers. */ -94: #define portIE_BIT ( 0x00000001 ) -95: #define portEXL_BIT ( 0x00000002 ) -96: #define portMX_BIT ( 0x01000000 ) /* Allow access to DSP instructions. */ -97: -98: /* Bits within the CAUSE register. */ -99: #define portCORE_SW_0 ( 0x00000100 ) -100: #define portCORE_SW_1 ( 0x00000200 ) -101: -102: /* The EXL bit is set to ensure interrupts do not occur while the context of -103: the first task is being restored. */ -104: /* MEC14xx does not have DSP HW */ -105: #define portINITIAL_SR ( portIE_BIT | portEXL_BIT ) -106: -107: /* MEC14xx RTOS Timer MMCR's */ -108: #define portMMCR_RTMR_PRELOAD *((volatile uint32_t *)(0xA0007404ul)) -109: #define portMMCR_RTMR_CONTROL *((volatile uint32_t *)(0xA0007408ul)) -110: -111: /* MEC14xx JTVIC external interrupt controller -112: * is mapped to M14K closely-coupled peripheral space. -113: */ -114: #define portGIRQ23_RTOS_TIMER_BITPOS (4) -115: #define portGIRQ23_RTOS_TIMER_MASK (1ul << (portGIRQ23_RTOS_TIMER_BITPOS)) -116: #define portMMCR_JTVIC_GIRQ23_SRC *((volatile uint32_t *)(0xBFFFC0F0ul)) -117: #define portMMCR_JTVIC_GIRQ23_SETEN *((volatile uint32_t *)(0xBFFFC0F4ul)) -118: #define portMMCR_JTVIC_GIRQ23_CLREN *((volatile uint32_t *)(0xBFFFC0F8ul)) -119: #define portMMCR_JTVIC_GIRQ23_RESULT *((volatile uint32_t *)(0xBFFFC0FCul)) -120: #define portMMCR_JTVIC_GIRQ23_AGCTRL *((volatile uint32_t *)(0xBFFFC23Cul)) -121: #define portMMCR_JTVIC_GIRQ23_PRIA *((volatile uint32_t *)(0xBFFFC3F0ul)) -122: #define portMMCR_JTVIC_GIRQ23_PRIB *((volatile uint32_t *)(0xBFFFC3F4ul)) -123: #define portMMCR_JTVIC_GIRQ23_PRIC *((volatile uint32_t *)(0xBFFFC3F8ul)) -124: #define portMMCR_JTVIC_GIRQ23_PRID *((volatile uint32_t *)(0xBFFFC3FCul)) -125: -126: /* MIPS Software Interrupts are routed through JTVIC GIRQ24 */ -127: #define portGIRQ24_M14K_SOFTIRQ0_BITPOS (1) -128: #define portGIRQ24_M14K_SOFTIRQ0_MASK (1ul << (portGIRQ24_M14K_SOFTIRQ0_BITPOS)) -129: #define portMMCR_JTVIC_GIRQ24_SRC *((volatile uint32_t *)(0xBFFFC100ul)) -130: #define portMMCR_JTVIC_GIRQ24_SETEN *((volatile uint32_t *)(0xBFFFC104ul)) -131: #define portMMCR_JTVIC_GIRQ24_CLREN *((volatile uint32_t *)(0xBFFFC108ul)) -132: #define portMMCR_JTVIC_GIRQ24_RESULT *((volatile uint32_t *)(0xBFFFC10Cul)) -133: #define portMMCR_JTVIC_GIRQ24_AGCTRL *((volatile uint32_t *)(0xBFFFC240ul)) -134: #define portMMCR_JTVIC_GIRQ24_PRIA *((volatile uint32_t *)(0xBFFFC400ul)) -135: #define portMMCR_JTVIC_GIRQ24_PRIB *((volatile uint32_t *)(0xBFFFC404ul)) -136: #define portMMCR_JTVIC_GIRQ24_PRIC *((volatile uint32_t *)(0xBFFFC408ul)) -137: #define portMMCR_JTVIC_GIRQ24_PRID *((volatile uint32_t *)(0xBFFFC40Cul)) -138: -139: /* -140: By default port.c generates its tick interrupt from TIMER1. The user can -141: override this behaviour by: -142: 1: Providing their own implementation of vApplicationSetupTickTimerInterrupt(), -143: which is the function that configures the timer. The function is defined -144: as a weak symbol in this file so if the same function name is used in the -145: application code then the version in the application code will be linked -146: into the application in preference to the version defined in this file. -147: 2: Define configTICK_INTERRUPT_VECTOR to the vector number of the timer used -148: to generate the tick interrupt. For example, when timer 1 is used then -149: configTICK_INTERRUPT_VECTOR is set to _TIMER_1_VECTOR. -150: configTICK_INTERRUPT_VECTOR should be defined in FreeRTOSConfig.h. -151: 3: Define configCLEAR_TICK_TIMER_INTERRUPT() to clear the interrupt in the -152: timer used to generate the tick interrupt. For example, when timer 1 is -153: used configCLEAR_TICK_TIMER_INTERRUPT() is defined to -154: IFS0CLR = _IFS0_T1IF_MASK. -155: */ -156: #ifndef configTICK_INTERRUPT_VECTOR -157: #define configTICK_INTERRUPT_VECTOR girq23_b4 -158: #define configCLEAR_TICK_TIMER_INTERRUPT() portMMCR_JTVIC_GIRQ23_SRC = portGIRQ23_RTOS_TIMER_MASK -159: #else -160: #ifndef configCLEAR_TICK_TIMER_INTERRUPT -161: #error If configTICK_INTERRUPT_VECTOR is defined in application code then configCLEAR_TICK_TIMER_INTERRUPT must also be defined in application code. -162: #endif -163: #endif -164: -165: /* Let the user override the pre-loading of the initial RA with the address of -166: prvTaskExitError() in case is messes up unwinding of the stack in the -167: debugger - in which case configTASK_RETURN_ADDRESS can be defined as 0 (NULL). */ -168: #ifdef configTASK_RETURN_ADDRESS -169: #define portTASK_RETURN_ADDRESS configTASK_RETURN_ADDRESS -170: #else -171: #define portTASK_RETURN_ADDRESS prvTaskExitError -172: #endif -173: -174: /* Set configCHECK_FOR_STACK_OVERFLOW to 3 to add ISR stack checking to task -175: stack checking. A problem in the ISR stack will trigger an assert, not call the -176: stack overflow hook function (because the stack overflow hook is specific to a -177: task stack, not the ISR stack). */ -178: #if( configCHECK_FOR_STACK_OVERFLOW > 2 ) -179: -180: /* Don't use 0xa5 as the stack fill bytes as that is used by the kernerl for -181: the task stacks, and so will legitimately appear in many positions within -182: the ISR stack. */ -183: #define portISR_STACK_FILL_BYTE 0xee -184: -185: static const uint8_t ucExpectedStackBytes[] = { -186: portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, \ -187: portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, \ -188: portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, \ -189: portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, \ -190: portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE, portISR_STACK_FILL_BYTE }; \ -191: -192: #define portCHECK_ISR_STACK() configASSERT( ( memcmp( ( void * ) xISRStack, ( void * ) ucExpectedStackBytes, sizeof( ucExpectedStackBytes ) ) == 0 ) ) -193: #else -194: /* Define the function away. */ -195: #define portCHECK_ISR_STACK() -196: #endif /* configCHECK_FOR_STACK_OVERFLOW > 2 */ -197: -198: -199: /*-----------------------------------------------------------*/ -200: -201: /* -202: * Used to catch tasks that attempt to return from their implementing function. -203: */ -204: static void prvTaskExitError( void ); -205: -206: /*-----------------------------------------------------------*/ -207: -208: /* Records the interrupt nesting depth. This is initialised to one as it is -209: decremented to 0 when the first task starts. */ -210: volatile UBaseType_t uxInterruptNesting = 0x01; -211: -212: /* Stores the task stack pointer when a switch is made to use the system stack. */ -213: UBaseType_t uxSavedTaskStackPointer = 0; -214: -215: /* The stack used by interrupt service routines that cause a context switch. */ -216: StackType_t xISRStack[ configISR_STACK_SIZE ] = { 0 }; -217: -218: /* The top of stack value ensures there is enough space to store 6 registers on -219: the callers stack, as some functions seem to want to do this. */ -220: const StackType_t * const xISRStackTop = &( xISRStack[ configISR_STACK_SIZE - 7 ] ); -221: -222: /*-----------------------------------------------------------*/ -223: -224: /* Local inline assembly routines to read/write MIPS M14K CP0 registers. Avoids -225: the need for compiler intrinsics which vary with compiler. */ -226: static uint32_t prvDisableInterrupt( void ) -227: { -BFD09A98 4FF9 ADDIU SP, SP, -16 -BFD09A9A CBC3 SW S8, 12(SP) -BFD09A9C CA02 SW S0, 8(SP) -BFD09A9E 0FDD MOVE S8, SP -228: uint32_t prev_state; -229: -230: __asm volatile( "di %0; ehb" : "=r" ( prev_state ) :: "memory" ); -BFD09AA0 477C0010 DI S0 -BFD09AA4 18000000 SLL ZERO, ZERO, 3 -BFD09AA6 FA1E1800 SB ZERO, -1506(ZERO) -BFD09AA8 0000FA1E SW S0, 0(S8) -231: return prev_state; -BFD09AAC 0000FC5E LW V0, 0(S8) -232: } -BFD09AB0 0FBE MOVE SP, S8 -BFD09AB2 4BC3 LW S8, 12(SP) -BFD09AB4 4A02 LW S0, 8(SP) -BFD09AB6 459F JR16 RA -BFD09AB8 4C09 ADDIU SP, SP, 16 -233: -234: -235: /* -236: * See header file for description. -237: */ -238: StackType_t *pxPortInitialiseStack( StackType_t *pxTopOfStack, TaskFunction_t pxCode, void *pvParameters ) -239: { -BFD05630 4FF5 ADDIU SP, SP, -24 -BFD05632 CBE5 SW RA, 20(SP) -BFD05634 CBC4 SW S8, 16(SP) -BFD05636 0FDD MOVE S8, SP -BFD05638 0018F89E SW A0, 24(S8) -BFD0563C 001CF8BE SW A1, 28(S8) -BFD05640 0020F8DE SW A2, 32(S8) -240: /* Ensure byte alignment is maintained when leaving this function. */ -241: pxTopOfStack--; -BFD05644 0018FC5E LW V0, 24(S8) -BFD05646 4C580018 MOVZ T1, T8, ZERO -BFD05648 4C58 ADDIU V0, V0, -4 -BFD0564A 0018F85E SW V0, 24(S8) -242: -243: *pxTopOfStack = (StackType_t) 0xDEADBEEF; -BFD0564E 0018FC5E LW V0, 24(S8) -BFD05652 DEAD41A3 LUI V1, 0xDEAD -BFD05656 BEEF5063 ORI V1, V1, -16657 -BFD05658 E9A0BEEF LDC1 F23, -5728(T7) -BFD0565A E9A0 SW V1, 0(V0) -244: pxTopOfStack--; -BFD0565C 0018FC5E LW V0, 24(S8) -BFD0565E 4C580018 MOVZ T1, T8, ZERO -BFD05660 4C58 ADDIU V0, V0, -4 -BFD05662 0018F85E SW V0, 24(S8) -245: -246: *pxTopOfStack = (StackType_t) 0x12345678; /* Word to which the stack pointer will be left pointing after context restore. */ -BFD05666 0018FC5E LW V0, 24(S8) -BFD0566A 123441A3 LUI V1, 0x1234 -BFD0566C 50631234 ADDI S1, S4, 20579 -BFD0566E 56785063 ORI V1, V1, 22136 -BFD05670 E9A05678 PREFX 29, 19(T8) -BFD05672 E9A0 SW V1, 0(V0) -247: pxTopOfStack--; -BFD05674 0018FC5E LW V0, 24(S8) -BFD05676 4C580018 MOVZ T1, T8, ZERO -BFD05678 4C58 ADDIU V0, V0, -4 -BFD0567A 0018F85E SW V0, 24(S8) -248: -249: *pxTopOfStack = (StackType_t) ulPortGetCP0Cause(); -BFD0567E 4DC677E8 JALS ulPortGetCP0Cause -BFD05680 4DC6 ADDIU T6, T6, 3 -BFD05682 0C00 NOP -BFD05684 0C62 MOVE V1, V0 -BFD05686 0018FC5E LW V0, 24(S8) -BFD0568A E9A0 SW V1, 0(V0) -250: pxTopOfStack--; -BFD0568C 0018FC5E LW V0, 24(S8) -BFD0568E 4C580018 MOVZ T1, T8, ZERO -BFD05690 4C58 ADDIU V0, V0, -4 -BFD05692 0018F85E SW V0, 24(S8) -251: -252: *pxTopOfStack = (StackType_t) portINITIAL_SR; /* CP0_STATUS */ -BFD05696 0018FC5E LW V0, 24(S8) -BFD0569A ED83 LI V1, 3 -BFD0569C E9A0 SW V1, 0(V0) -253: pxTopOfStack--; -BFD0569E 0018FC5E LW V0, 24(S8) -BFD056A0 4C580018 MOVZ T1, T8, ZERO -BFD056A2 4C58 ADDIU V0, V0, -4 -BFD056A4 0018F85E SW V0, 24(S8) -254: -255: *pxTopOfStack = (StackType_t) pxCode; /* CP0_EPC */ -BFD056A8 001CFC7E LW V1, 28(S8) -BFD056AC 0018FC5E LW V0, 24(S8) -BFD056B0 E9A0 SW V1, 0(V0) -256: pxTopOfStack--; -BFD056B2 0018FC5E LW V0, 24(S8) -BFD056B4 4C580018 MOVZ T1, T8, ZERO -BFD056B6 4C58 ADDIU V0, V0, -4 -BFD056B8 0018F85E SW V0, 24(S8) -257: -258: *pxTopOfStack = (StackType_t) portTASK_RETURN_ADDRESS; /* ra */ -BFD056BC BFD041A2 LUI V0, 0xBFD0 -BFD056BE 3062BFD0 LDC1 F30, 12386(S0) -BFD056C0 7BBD3062 ADDIU V1, V0, 31677 -BFD056C2 FC5E7BBD ADDIUPC A3, 4062302 -BFD056C4 0018FC5E LW V0, 24(S8) -BFD056C8 E9A0 SW V1, 0(V0) -259: pxTopOfStack -= 15; -BFD056CA 0018FC5E LW V0, 24(S8) -BFD056CE FFC43042 ADDIU V0, V0, -60 -BFD056D0 F85EFFC4 LW S8, -1954(A0) -BFD056D2 0018F85E SW V0, 24(S8) -260: -261: *pxTopOfStack = (StackType_t) pvParameters; /* Parameters to pass in. */ -BFD056D6 0020FC7E LW V1, 32(S8) -BFD056DA 0018FC5E LW V0, 24(S8) -BFD056DE E9A0 SW V1, 0(V0) -262: pxTopOfStack -= 15; -BFD056E0 0018FC5E LW V0, 24(S8) -BFD056E4 FFC43042 ADDIU V0, V0, -60 -BFD056E6 F85EFFC4 LW S8, -1954(A0) -BFD056E8 0018F85E SW V0, 24(S8) -263: -264: return pxTopOfStack; -BFD056EC 0018FC5E LW V0, 24(S8) -265: } -BFD056F0 0FBE MOVE SP, S8 -BFD056F2 4BE5 LW RA, 20(SP) -BFD056F4 4BC4 LW S8, 16(SP) -BFD056F6 4C0D ADDIU SP, SP, 24 -BFD056F8 459F JR16 RA -BFD056FA 0C00 NOP -266: /*-----------------------------------------------------------*/ -267: -268: static void prvTaskExitError( void ) -269: { -BFD07BBC 4FF1 ADDIU SP, SP, -32 -BFD07BBE CBE7 SW RA, 28(SP) -BFD07BC0 CBC6 SW S8, 24(SP) -BFD07BC2 0FDD MOVE S8, SP -270: /* A function that implements a task must not exit or attempt to return to -271: its caller as there is nothing to return to. If a task wants to exit it -272: should instead call vTaskDelete( NULL ). -273: -274: Artificially force an assert() to be triggered if configASSERT() is -275: defined, then stop here so application writers can catch the error. */ -276: configASSERT( uxSavedTaskStackPointer == 0UL ); -BFD07BC4 802CFC5C LW V0, -32724(GP) -BFD07BC8 000940E2 BEQZC V0, 0xBFD07BDE -BFD07BCC BFD141A2 LUI V0, 0xBFD1 -BFD07BCE 3082BFD1 LDC1 F30, 12418(S1) -BFD07BD0 8AAC3082 ADDIU A0, V0, -30036 -BFD07BD2 8AAC SB A1, 12(V0) -BFD07BD4 011430A0 ADDIU A1, ZERO, 276 -BFD07BD8 4B7E77E8 JALS vAssertCalled -BFD07BDA 4B7E LW K1, 120(SP) -BFD07BDC 0C00 NOP -277: portDISABLE_INTERRUPTS(); -BFD07BDE 4DA677E8 JALS ulPortGetCP0Status -BFD07BE0 4DA6 ADDIU T5, T5, 3 -BFD07BE2 0C00 NOP -BFD07BE4 0010F85E SW V0, 16(S8) -BFD07BE8 0010FC7E LW V1, 16(S8) -BFD07BEC 000141A2 LUI V0, 0x1 -BFD07BF0 FC005042 ORI V0, V0, -1024 -BFD07BF2 4493FC00 LW ZERO, 17555(ZERO) -BFD07BF4 4493 AND16 V0, V1 -BFD07BF6 50400042 SRL V0, V0, 10 -BFD07BF8 B0425040 ORI V0, ZERO, -20414 -BFD07BFA 0003B042 SLTIU V0, V0, 3 -BFD07BFE 001140E2 BEQZC V0, 0xBFD07C24 -BFD07C02 0010FC7E LW V1, 16(S8) -BFD07C06 FFFE41A2 LUI V0, 0xFFFE -BFD07C08 5042FFFE LW RA, 20546(S8) -BFD07C0A 03FF5042 ORI V0, V0, 1023 -BFD07C0E 4493 AND16 V0, V1 -BFD07C10 0010F85E SW V0, 16(S8) -BFD07C14 0010FC5E LW V0, 16(S8) -BFD07C18 0C005042 ORI V0, V0, 3072 -BFD07C1A 0C00 NOP -BFD07C1C 0C82 MOVE A0, V0 -BFD07C1E 4DB677E8 JALS vPortSetCP0Status -BFD07C20 4DB6 ADDIU T5, T5, -5 -BFD07C22 0C00 NOP -278: for( ;; ); -BFD07C24 CFFF B 0xBFD07C24 -BFD07C26 0C00 NOP -279: } -280: /*-----------------------------------------------------------*/ -281: -282: /* -283: * Setup a timer for a regular tick. This function uses peripheral timer 1. -284: * The function is declared weak so an application writer can use a different -285: * timer by redefining this implementation. If a different timer is used then -286: * configTICK_INTERRUPT_VECTOR must also be defined in FreeRTOSConfig.h to -287: * ensure the RTOS provided tick interrupt handler is installed on the correct -288: * vector number. When Timer 1 is used the vector number is defined as -289: * _TIMER_1_VECTOR. -290: */ -291: __attribute__(( weak )) void vApplicationSetupTickTimerInterrupt( void ) -292: { -BFD06284 4FF1 ADDIU SP, SP, -32 -BFD06286 CBE7 SW RA, 28(SP) -BFD06288 CBC6 SW S8, 24(SP) -BFD0628A 0FDD MOVE S8, SP -293: /* MEC14xx RTOS Timer whose input clock is 32KHz */ -294: const uint32_t preload = ( 32768ul / ( configTICK_RATE_HZ ) ); -BFD0628C ED20 LI V0, 32 -BFD0628E 0010F85E SW V0, 16(S8) -295: configASSERT( preload != 0UL ); -BFD06292 0010FC5E LW V0, 16(S8) -BFD06296 000940A2 BNEZC V0, 0xBFD062AC -BFD0629A BFD141A2 LUI V0, 0xBFD1 -BFD0629C 3082BFD1 LDC1 F30, 12418(S1) -BFD0629E 8AAC3082 ADDIU A0, V0, -30036 -BFD062A0 8AAC SB A1, 12(V0) -BFD062A2 012730A0 ADDIU A1, ZERO, 295 -BFD062A6 4B7E77E8 JALS vAssertCalled -BFD062A8 4B7E LW K1, 120(SP) -BFD062AA 0C00 NOP -296: -297: portMMCR_RTMR_CONTROL = 0ul; -BFD062AC A00041A2 LUI V0, 0xA000 -BFD062B0 74085042 ORI V0, V0, 29704 -BFD062B2 E8207408 JALS 0xB811D040 -BFD062B4 E820 SW S0, 0(V0) -298: portMMCR_RTMR_PRELOAD = preload; -BFD062B6 A00041A2 LUI V0, 0xA000 -BFD062BA 74045042 ORI V0, V0, 29700 -BFD062BC FC7E7404 JALS 0xB809F8FC -BFD062BE 0010FC7E LW V1, 16(S8) -BFD062C2 E9A0 SW V1, 0(V0) -299: -300: portMMCR_JTVIC_GIRQ23_SRC = ( portGIRQ23_RTOS_TIMER_MASK ); -BFD062C4 BFFF41A2 LUI V0, 0xBFFF -BFD062C6 5042BFFF LDC1 F31, 20546(RA) -BFD062C8 C0F05042 ORI V0, V0, -16144 -BFD062CC ED90 LI V1, 16 -BFD062CE E9A0 SW V1, 0(V0) -301: portMMCR_JTVIC_GIRQ23_PRIA &= ~( 0x0Ful << 16 ); -BFD062D0 BFFF41A2 LUI V0, 0xBFFF -BFD062D2 5042BFFF LDC1 F31, 20546(RA) -BFD062D4 C3F05042 ORI V0, V0, -15376 -BFD062D8 BFFF41A3 LUI V1, 0xBFFF -BFD062DA 5063BFFF LDC1 F31, 20579(RA) -BFD062DC C3F05063 ORI V1, V1, -15376 -BFD062E0 6A30 LW A0, 0(V1) -BFD062E2 FFF041A3 LUI V1, 0xFFF0 -BFD062E4 5063FFF0 LW RA, 20579(S0) -BFD062E6 FFFF5063 ORI V1, V1, -1 -BFD062E8 449CFFFF LW RA, 17564(RA) -BFD062EA 449C AND16 V1, A0 -BFD062EC E9A0 SW V1, 0(V0) -302: portMMCR_JTVIC_GIRQ23_PRIA |= ( ( configKERNEL_INTERRUPT_PRIORITY ) << 16 ); -BFD062EE BFFF41A2 LUI V0, 0xBFFF -BFD062F0 5042BFFF LDC1 F31, 20546(RA) -BFD062F2 C3F05042 ORI V0, V0, -15376 -BFD062F6 BFFF41A3 LUI V1, 0xBFFF -BFD062F8 5063BFFF LDC1 F31, 20579(RA) -BFD062FA C3F05063 ORI V1, V1, -15376 -BFD062FE 69B0 LW V1, 0(V1) -BFD06300 E9A0 SW V1, 0(V0) -303: portMMCR_JTVIC_GIRQ23_SETEN = ( portGIRQ23_RTOS_TIMER_MASK ); -BFD06302 BFFF41A2 LUI V0, 0xBFFF -BFD06304 5042BFFF LDC1 F31, 20546(RA) -BFD06306 C0F45042 ORI V0, V0, -16140 -BFD0630A ED90 LI V1, 16 -BFD0630C E9A0 SW V1, 0(V0) -304: -305: portMMCR_RTMR_CONTROL = 0x0Fu; -BFD0630E A00041A2 LUI V0, 0xA000 -BFD06312 74085042 ORI V0, V0, 29704 -BFD06314 ED8F7408 JALS 0xB811DB1E -BFD06316 ED8F LI V1, 15 -BFD06318 E9A0 SW V1, 0(V0) -306: } -BFD0631A 0FBE MOVE SP, S8 -BFD0631C 4BE7 LW RA, 28(SP) -BFD0631E 4BC6 LW S8, 24(SP) -BFD06320 4C11 ADDIU SP, SP, 32 -BFD06322 459F JR16 RA -BFD06324 0C00 NOP -307: /*-----------------------------------------------------------*/ -308: -309: void vPortEndScheduler(void) -310: { -BFD097A8 4FF5 ADDIU SP, SP, -24 -BFD097AA CBE5 SW RA, 20(SP) -BFD097AC CBC4 SW S8, 16(SP) -BFD097AE 0FDD MOVE S8, SP -311: /* Not implemented in ports where there is nothing to return to. -312: Artificially force an assert. */ -313: configASSERT( uxInterruptNesting == 1000UL ); -BFD097B0 8014FC7C LW V1, -32748(GP) -BFD097B4 03E83040 ADDIU V0, ZERO, 1000 -BFD097B8 000A9443 BEQ V1, V0, 0xBFD097D0 -BFD097BA 0C00000A SLL ZERO, T2, 1 -BFD097BC 0C00 NOP -BFD097BE BFD141A2 LUI V0, 0xBFD1 -BFD097C0 3082BFD1 LDC1 F30, 12418(S1) -BFD097C2 8AAC3082 ADDIU A0, V0, -30036 -BFD097C4 8AAC SB A1, 12(V0) -BFD097C6 013930A0 ADDIU A1, ZERO, 313 -BFD097CA 4B7E77E8 JALS vAssertCalled -BFD097CC 4B7E LW K1, 120(SP) -BFD097CE 0C00 NOP -314: } -BFD097D0 0FBE MOVE SP, S8 -BFD097D2 4BE5 LW RA, 20(SP) -BFD097D4 4BC4 LW S8, 16(SP) -BFD097D6 4C0D ADDIU SP, SP, 24 -BFD097D8 459F JR16 RA -BFD097DA 0C00 NOP -315: /*-----------------------------------------------------------*/ -316: -317: BaseType_t xPortStartScheduler( void ) -318: { -BFD06898 4FF5 ADDIU SP, SP, -24 -BFD0689A CBE5 SW RA, 20(SP) -BFD0689C CBC4 SW S8, 16(SP) -BFD0689E 0FDD MOVE S8, SP -319: extern void vPortStartFirstTask( void ); -320: extern void *pxCurrentTCB; -321: -322: #if ( configCHECK_FOR_STACK_OVERFLOW > 2 ) -323: { -324: /* Fill the ISR stack to make it easy to asses how much is being used. */ -325: memset( ( void * ) xISRStack, portISR_STACK_FILL_BYTE, sizeof( xISRStack ) ); -BFD068A0 BFD241A2 LUI V0, 0xBFD2 -BFD068A2 3082BFD2 LDC1 F30, 12418(S2) -BFD068A4 AD683082 ADDIU A0, V0, -21144 -BFD068A6 AD68 BNEZ V0, 0xBFD06978 -BFD068A8 00EE30A0 ADDIU A1, ZERO, 238 -BFD068AA 30C000EE ROTR A3, T6, 6 -BFD068AC 0BE030C0 ADDIU A2, ZERO, 3040 -BFD068AE 0BE0 LBU A3, 0(A2) -BFD068B0 36F677E8 JALS 0xBFD06DEC -BFD068B2 0C0036F6 LHU S7, 3072(S6) -BFD068B4 0C00 NOP -326: } -327: #endif /* configCHECK_FOR_STACK_OVERFLOW > 2 */ -328: -329: /* Clear the software interrupt flag. */ -330: portMMCR_JTVIC_GIRQ24_SRC = (portGIRQ24_M14K_SOFTIRQ0_MASK); -BFD068B6 BFFF41A2 LUI V0, 0xBFFF -BFD068B8 5042BFFF LDC1 F31, 20546(RA) -BFD068BA C1005042 ORI V0, V0, -16128 -BFD068BE ED82 LI V1, 2 -BFD068C0 E9A0 SW V1, 0(V0) -331: -332: /* Set software timer priority. -333: Each GIRQn has one nibble containing its priority */ -334: portMMCR_JTVIC_GIRQ24_PRIA &= ~(0xF0ul); -BFD068C2 BFFF41A2 LUI V0, 0xBFFF -BFD068C4 5042BFFF LDC1 F31, 20546(RA) -BFD068C6 C4005042 ORI V0, V0, -15360 -BFD068CA BFFF41A3 LUI V1, 0xBFFF -BFD068CC 5063BFFF LDC1 F31, 20579(RA) -BFD068CE C4005063 ORI V1, V1, -15360 -BFD068D2 6A30 LW A0, 0(V1) -BFD068D4 FF0F3060 ADDIU V1, ZERO, -241 -BFD068D6 449CFF0F LW T8, 17564(T7) -BFD068D8 449C AND16 V1, A0 -BFD068DA E9A0 SW V1, 0(V0) -335: portMMCR_JTVIC_GIRQ24_PRIA |= ( configKERNEL_INTERRUPT_PRIORITY << 4 ); -BFD068DC BFFF41A2 LUI V0, 0xBFFF -BFD068DE 5042BFFF LDC1 F31, 20546(RA) -BFD068E0 C4005042 ORI V0, V0, -15360 -BFD068E4 BFFF41A3 LUI V1, 0xBFFF -BFD068E6 5063BFFF LDC1 F31, 20579(RA) -BFD068E8 C4005063 ORI V1, V1, -15360 -BFD068EC 69B0 LW V1, 0(V1) -BFD068EE E9A0 SW V1, 0(V0) -336: -337: /* Enable software interrupt. */ -338: portMMCR_JTVIC_GIRQ24_SETEN = ( portGIRQ24_M14K_SOFTIRQ0_MASK ); -BFD068F0 BFFF41A2 LUI V0, 0xBFFF -BFD068F2 5042BFFF LDC1 F31, 20546(RA) -BFD068F4 C1045042 ORI V0, V0, -16124 -BFD068F8 ED82 LI V1, 2 -BFD068FA E9A0 SW V1, 0(V0) -339: -340: /* Setup the timer to generate the tick. Interrupts will have been -341: disabled by the time we get here. */ -342: vApplicationSetupTickTimerInterrupt(); -BFD068FC 314277E8 JALS vApplicationSetupTickTimerInterrupt -BFD068FE 0C003142 ADDIU T2, V0, 3072 -BFD06900 0C00 NOP -343: -344: /* Kick off the highest priority task that has been created so far. -345: Its stack location is loaded into uxSavedTaskStackPointer. */ -346: uxSavedTaskStackPointer = *( UBaseType_t * ) pxCurrentTCB; -BFD06902 8030FC5C LW V0, -32720(GP) -BFD06906 6920 LW V0, 0(V0) -BFD06908 802CF85C SW V0, -32724(GP) -347: vPortStartFirstTask(); -BFD0690C 055A77E8 JALS 0xBFD00AB4 -BFD0690E 055A ADDU V0, A1, A1 -BFD06910 0C00 NOP -348: -349: /* Should never get here as the tasks will now be executing! Call the task -350: exit error function to prevent compiler warnings about a static function -351: not being called in the case that the application writer overrides this -352: functionality by defining configTASK_RETURN_ADDRESS. */ -353: prvTaskExitError(); -BFD06912 3DDE77E8 JALS prvTaskExitError -BFD06914 0C003DDE LH T6, 3072(S8) -BFD06916 0C00 NOP -354: -355: return pdFALSE; -BFD06918 0C40 MOVE V0, ZERO -356: } -BFD0691A 0FBE MOVE SP, S8 -BFD0691C 4BE5 LW RA, 20(SP) -BFD0691E 4BC4 LW S8, 16(SP) -BFD06920 4C0D ADDIU SP, SP, 24 -BFD06922 459F JR16 RA -BFD06924 0C00 NOP -357: /*-----------------------------------------------------------*/ -358: -359: void vPortIncrementTick( void ) -360: { -BFD069B8 4FF1 ADDIU SP, SP, -32 -BFD069BA CBE7 SW RA, 28(SP) -BFD069BC CBC6 SW S8, 24(SP) -BFD069BE 0FDD MOVE S8, SP -361: UBaseType_t uxSavedStatus; -362: uint32_t ulCause; -363: -364: uxSavedStatus = uxPortSetInterruptMaskFromISR(); -BFD069C0 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD069C4 0C00 NOP -BFD069C6 0010F85E SW V0, 16(S8) -365: { -366: if( xTaskIncrementTick() != pdFALSE ) -BFD069CA 104077E8 JALS xTaskIncrementTick -BFD069CC 0C001040 ADDI V0, ZERO, 3072 -BFD069CE 0C00 NOP -BFD069D0 001040E2 BEQZC V0, 0xBFD069F4 -367: { -368: /* Pend a context switch. */ -369: ulCause = ulPortGetCP0Cause(); -BFD069D4 4DC677E8 JALS ulPortGetCP0Cause -BFD069D6 4DC6 ADDIU T6, T6, 3 -BFD069D8 0C00 NOP -BFD069DA 0014F85E SW V0, 20(S8) -370: ulCause |= ( 1ul << 8UL ); -BFD069DE 0014FC5E LW V0, 20(S8) -BFD069E2 01005042 ORI V0, V0, 256 -BFD069E6 0014F85E SW V0, 20(S8) -371: vPortSetCP0Cause( ulCause ); -BFD069EA 0014FC9E LW A0, 20(S8) -BFD069EE 4DD677E8 JALS vPortSetCP0Cause -BFD069F0 4DD6 ADDIU T6, T6, -5 -BFD069F2 0C00 NOP -372: } -373: } -374: vPortClearInterruptMaskFromISR( uxSavedStatus ); -BFD069F4 0010FC9E LW A0, 16(S8) -BFD069F8 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD069FA 4D5E ADDIU T2, T2, -1 -BFD069FC 0C00 NOP -375: -376: /* Look for the ISR stack getting near or past its limit. */ -377: portCHECK_ISR_STACK(); -BFD069FE BFD241A2 LUI V0, 0xBFD2 -BFD06A00 3082BFD2 LDC1 F30, 12418(S2) -BFD06A02 AD683082 ADDIU A0, V0, -21144 -BFD06A04 AD68 BNEZ V0, 0xBFD06AD6 -BFD06A06 BFD141A2 LUI V0, 0xBFD1 -BFD06A08 30A2BFD1 LDC1 F30, 12450(S1) -BFD06A0A 8A9430A2 ADDIU A1, V0, -30060 -BFD06A0C 8A94 SB A1, 4(S1) -BFD06A0E EF14 LI A2, 20 -BFD06A10 3DA677E8 JALS 0xBFD07B4C -BFD06A12 0C003DA6 LH T5, 3072(A2) -BFD06A14 0C00 NOP -BFD06A16 000940E2 BEQZC V0, 0xBFD06A2C -BFD06A1A BFD141A2 LUI V0, 0xBFD1 -BFD06A1C 3082BFD1 LDC1 F30, 12418(S1) -BFD06A1E 8AAC3082 ADDIU A0, V0, -30036 -BFD06A20 8AAC SB A1, 12(V0) -BFD06A22 017930A0 ADDIU A1, ZERO, 377 -BFD06A26 4B7E77E8 JALS vAssertCalled -BFD06A28 4B7E LW K1, 120(SP) -BFD06A2A 0C00 NOP -378: -379: /* Clear timer interrupt. */ -380: configCLEAR_TICK_TIMER_INTERRUPT(); -BFD06A2C BFFF41A2 LUI V0, 0xBFFF -BFD06A2E 5042BFFF LDC1 F31, 20546(RA) -BFD06A30 C0F05042 ORI V0, V0, -16144 -BFD06A34 ED90 LI V1, 16 -BFD06A36 E9A0 SW V1, 0(V0) -381: } -BFD06A38 0FBE MOVE SP, S8 -BFD06A3A 4BE7 LW RA, 28(SP) -BFD06A3C 4BC6 LW S8, 24(SP) -BFD06A3E 4C11 ADDIU SP, SP, 32 -BFD06A40 459F JR16 RA -BFD06A42 0C00 NOP -382: /*-----------------------------------------------------------*/ -383: -384: UBaseType_t uxPortSetInterruptMaskFromISR( void ) -385: { -BFD08EBC 4FF1 ADDIU SP, SP, -32 -BFD08EBE CBE7 SW RA, 28(SP) -BFD08EC0 CBC6 SW S8, 24(SP) -BFD08EC2 0FDD MOVE S8, SP -386: UBaseType_t uxSavedStatusRegister; -387: -388: prvDisableInterrupt(); -BFD08EC4 4D4C77E8 JALS prvDisableInterrupt -BFD08EC6 4D4C ADDIU T2, T2, 6 -BFD08EC8 0C00 NOP -389: uxSavedStatusRegister = ulPortGetCP0Status() | 0x01; -BFD08ECA 4DA677E8 JALS ulPortGetCP0Status -BFD08ECC 4DA6 ADDIU T5, T5, 3 -BFD08ECE 0C00 NOP -BFD08ED0 00015042 ORI V0, V0, 1 -BFD08ED4 0010F85E SW V0, 16(S8) -390: -391: /* This clears the IPL bits, then sets them to -392: configMAX_SYSCALL_INTERRUPT_PRIORITY. This function should not be called -393: from an interrupt that has a priority above -394: configMAX_SYSCALL_INTERRUPT_PRIORITY so, when used correctly, the action -395: can only result in the IPL being unchanged or raised, and therefore never -396: lowered. */ -397: vPortSetCP0Status( ( ( uxSavedStatusRegister & ( ~portALL_IPL_BITS ) ) ) | ( configMAX_SYSCALL_INTERRUPT_PRIORITY << portIPL_SHIFT ) ); -BFD08ED8 0010FC7E LW V1, 16(S8) -BFD08EDC FFFE41A2 LUI V0, 0xFFFE -BFD08EDE 5042FFFE LW RA, 20546(S8) -BFD08EE0 03FF5042 ORI V0, V0, 1023 -BFD08EE4 4493 AND16 V0, V1 -BFD08EE6 0C005042 ORI V0, V0, 3072 -BFD08EE8 0C00 NOP -BFD08EEA 0C82 MOVE A0, V0 -BFD08EEC 4DB677E8 JALS vPortSetCP0Status -BFD08EEE 4DB6 ADDIU T5, T5, -5 -BFD08EF0 0C00 NOP -398: -399: return uxSavedStatusRegister; -BFD08EF2 0010FC5E LW V0, 16(S8) -400: } -BFD08EF6 0FBE MOVE SP, S8 -BFD08EF8 4BE7 LW RA, 28(SP) -BFD08EFA 4BC6 LW S8, 24(SP) -BFD08EFC 4C11 ADDIU SP, SP, 32 -BFD08EFE 459F JR16 RA -BFD08F00 0C00 NOP -401: /*-----------------------------------------------------------*/ -402: -403: void vPortClearInterruptMaskFromISR( UBaseType_t uxSavedStatusRegister ) -404: { -BFD09ABC 4FF5 ADDIU SP, SP, -24 -BFD09ABE CBE5 SW RA, 20(SP) -BFD09AC0 CBC4 SW S8, 16(SP) -BFD09AC2 0FDD MOVE S8, SP -BFD09AC4 0018F89E SW A0, 24(S8) -405: vPortSetCP0Status( uxSavedStatusRegister ); -BFD09AC8 0018FC9E LW A0, 24(S8) -BFD09ACC 4DB677E8 JALS vPortSetCP0Status -BFD09ACE 4DB6 ADDIU T5, T5, -5 -BFD09AD0 0C00 NOP -406: } -BFD09AD2 0FBE MOVE SP, S8 -BFD09AD4 4BE5 LW RA, 20(SP) -BFD09AD6 4BC4 LW S8, 16(SP) -BFD09AD8 4C0D ADDIU SP, SP, 24 -BFD09ADA 459F JR16 RA -BFD09ADC 0C00 NOP -407: /*-----------------------------------------------------------*/ -408: -409: -410: -411: -412: ---- c:/e/dev/freertos/workingcopy/freertos/source/portable/memmang/heap_2.c --------------------------- -1: /* -2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -3: All rights reserved -4: -5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -6: -7: This file is part of the FreeRTOS distribution. -8: -9: FreeRTOS is free software; you can redistribute it and/or modify it under -10: the terms of the GNU General Public License (version 2) as published by the -11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: /* -71: * A sample implementation of pvPortMalloc() and vPortFree() that permits -72: * allocated blocks to be freed, but does not combine adjacent free blocks -73: * into a single larger block (and so will fragment memory). See heap_4.c for -74: * an equivalent that does combine adjacent blocks into single larger blocks. -75: * -76: * See heap_1.c, heap_3.c and heap_4.c for alternative implementations, and the -77: * memory management pages of http://www.FreeRTOS.org for more information. -78: */ -79: #include -80: -81: /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -82: all the API functions to use the MPU wrappers. That should only be done when -83: task.h is included from an application file. */ -84: #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE -85: -86: #include "FreeRTOS.h" -87: #include "task.h" -88: -89: #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE -90: -91: /* A few bytes might be lost to byte aligning the heap start address. */ -92: #define configADJUSTED_HEAP_SIZE ( configTOTAL_HEAP_SIZE - portBYTE_ALIGNMENT ) -93: -94: /* -95: * Initialises the heap structures before their first use. -96: */ -97: static void prvHeapInit( void ); -98: -99: /* Allocate the memory for the heap. */ -100: static uint8_t ucHeap[ configTOTAL_HEAP_SIZE ]; -101: -102: /* Define the linked list structure. This is used to link free blocks in order -103: of their size. */ -104: typedef struct A_BLOCK_LINK -105: { -106: struct A_BLOCK_LINK *pxNextFreeBlock; /*<< The next free block in the list. */ -107: size_t xBlockSize; /*<< The size of the free block. */ -108: } BlockLink_t; -109: -110: -111: static const uint16_t heapSTRUCT_SIZE = ( ( sizeof ( BlockLink_t ) + ( portBYTE_ALIGNMENT - 1 ) ) & ~portBYTE_ALIGNMENT_MASK ); -112: #define heapMINIMUM_BLOCK_SIZE ( ( size_t ) ( heapSTRUCT_SIZE * 2 ) ) -113: -114: /* Create a couple of list links to mark the start and end of the list. */ -115: static BlockLink_t xStart, xEnd; -116: -117: /* Keeps track of the number of free bytes remaining, but says nothing about -118: fragmentation. */ -119: static size_t xFreeBytesRemaining = configADJUSTED_HEAP_SIZE; -120: -121: /* STATIC FUNCTIONS ARE DEFINED AS MACROS TO MINIMIZE THE FUNCTION CALL DEPTH. */ -122: -123: /* -124: * Insert a block into the list of free blocks - which is ordered by size of -125: * the block. Small blocks at the start of the list and large blocks at the end -126: * of the list. -127: */ -128: #define prvInsertBlockIntoFreeList( pxBlockToInsert ) \ -129: { \ -130: BlockLink_t *pxIterator; \ -131: size_t xBlockSize; \ -132: \ -133: xBlockSize = pxBlockToInsert->xBlockSize; \ -134: \ -135: /* Iterate through the list until a block is found that has a larger size */ \ -136: /* than the block we are inserting. */ \ -137: for( pxIterator = &xStart; pxIterator->pxNextFreeBlock->xBlockSize < xBlockSize; pxIterator = pxIterator->pxNextFreeBlock ) \ -138: { \ -139: /* There is nothing to do here - just iterate to the correct position. */ \ -140: } \ -141: \ -142: /* Update the list to include the block being inserted in the correct */ \ -143: /* position. */ \ -144: pxBlockToInsert->pxNextFreeBlock = pxIterator->pxNextFreeBlock; \ -145: pxIterator->pxNextFreeBlock = pxBlockToInsert; \ -146: } -147: /*-----------------------------------------------------------*/ -148: -149: void *pvPortMalloc( size_t xWantedSize ) -150: { -BFD0222C 4FE9 ADDIU SP, SP, -48 -BFD0222E CBEB SW RA, 44(SP) -BFD02230 CBCA SW S8, 40(SP) -BFD02232 0FDD MOVE S8, SP -BFD02234 0030F89E SW A0, 48(S8) -151: BlockLink_t *pxBlock, *pxPreviousBlock, *pxNewBlockLink; -152: static BaseType_t xHeapHasBeenInitialised = pdFALSE; -153: void *pvReturn = NULL; -BFD02238 0018F81E SW ZERO, 24(S8) -154: -155: vTaskSuspendAll(); -BFD0223C 4EF477E8 JALS vTaskSuspendAll -BFD0223E 4EF4 ADDIU S7, S7, -6 -BFD02240 0C00 NOP -156: { -157: /* If this is the first call to malloc then the heap will require -158: initialisation to setup the list of free blocks. */ -159: if( xHeapHasBeenInitialised == pdFALSE ) -BFD02242 8028FC5C LW V0, -32728(GP) -BFD02246 000640A2 BNEZC V0, 0xBFD02256 -160: { -161: prvHeapInit(); -BFD0224A 425077E8 JALS prvHeapInit -BFD0224E 0C00 NOP -162: xHeapHasBeenInitialised = pdTRUE; -BFD02250 ED01 LI V0, 1 -BFD02252 8028F85C SW V0, -32728(GP) -163: } -164: -165: /* The wanted size is increased so it can contain a BlockLink_t -166: structure in addition to the requested amount of bytes. */ -167: if( xWantedSize > 0 ) -BFD02256 0030FC5E LW V0, 48(S8) -BFD0225A 001640E2 BEQZC V0, 0xBFD0228A -168: { -169: xWantedSize += heapSTRUCT_SIZE; -BFD0225E BFD141A2 LUI V0, 0xBFD1 -BFD02260 3442BFD1 LDC1 F30, 13378(S1) -BFD02262 9F2C3442 LHU V0, -24788(V0) -BFD02264 FC7E9F2C LWC1 F25, -898(T4) -BFD02266 0030FC7E LW V1, 48(S8) -BFD0226A 0526 ADDU V0, V1, V0 -BFD0226C 0030F85E SW V0, 48(S8) -170: -171: /* Ensure that blocks are always aligned to the required number of bytes. */ -172: if( ( xWantedSize & portBYTE_ALIGNMENT_MASK ) != 0 ) -BFD02270 0030FC5E LW V0, 48(S8) -BFD02274 2D25 ANDI V0, V0, 0x7 -BFD02276 000840E2 BEQZC V0, 0xBFD0228A -173: { -174: /* Byte alignment required. */ -175: xWantedSize += ( portBYTE_ALIGNMENT - ( xWantedSize & portBYTE_ALIGNMENT_MASK ) ); -BFD0227A 0030FC7E LW V1, 48(S8) -BFD0227C 30400030 SRL AT, S0, 6 -BFD0227E FFF83040 ADDIU V0, ZERO, -8 -BFD02280 4493FFF8 LW RA, 17555(T8) -BFD02282 4493 AND16 V0, V1 -BFD02284 6D24 ADDIU V0, V0, 8 -BFD02286 0030F85E SW V0, 48(S8) -176: } -177: } -178: -179: if( ( xWantedSize > 0 ) && ( xWantedSize < configADJUSTED_HEAP_SIZE ) ) -BFD0228A 0030FC5E LW V0, 48(S8) -BFD0228E 008F40E2 BEQZC V0, 0xBFD023B0 -BFD02292 0030FC5E LW V0, 48(S8) -BFD02296 1FF8B042 SLTIU V0, V0, 8184 -BFD02298 40E21FF8 LB RA, 16610(T8) -BFD0229A 008940E2 BEQZC V0, 0xBFD023B0 -180: { -181: /* Blocks are stored in byte order - traverse the list from the start -182: (smallest) block until one of adequate size is found. */ -183: pxPreviousBlock = &xStart; -BFD0229E 8018305C ADDIU V0, GP, -32744 -BFD022A2 0014F85E SW V0, 20(S8) -184: pxBlock = xStart.pxNextFreeBlock; -BFD022A6 8018FC5C LW V0, -32744(GP) -BFD022AA 0010F85E SW V0, 16(S8) -185: while( ( pxBlock->xBlockSize < xWantedSize ) && ( pxBlock->pxNextFreeBlock != NULL ) ) -BFD022AE CC0A B 0xBFD022C4 -BFD022B0 0C00 NOP -BFD022C4 0010FC5E LW V0, 16(S8) -BFD022C8 69A1 LW V1, 4(V0) -BFD022CA 0030FC5E LW V0, 48(S8) -BFD022CE 13900043 SLTU V0, V1, V0 -BFD022D0 40E21390 ADDI GP, S0, 16610 -BFD022D2 000540E2 BEQZC V0, 0xBFD022E0 -BFD022D6 0010FC5E LW V0, 16(S8) -BFD022DA 6920 LW V0, 0(V0) -BFD022DC FFE940A2 BNEZC V0, 0xBFD022B2 -BFD022DE FC7EFFE9 LW RA, -898(T1) -186: { -187: pxPreviousBlock = pxBlock; -BFD022B2 0010FC5E LW V0, 16(S8) -BFD022B6 0014F85E SW V0, 20(S8) -188: pxBlock = pxBlock->pxNextFreeBlock; -BFD022BA 0010FC5E LW V0, 16(S8) -BFD022BE 6920 LW V0, 0(V0) -BFD022C0 0010F85E SW V0, 16(S8) -189: } -190: -191: /* If we found the end marker then a block of adequate size was not found. */ -192: if( pxBlock != &xEnd ) -BFD022E0 0010FC7E LW V1, 16(S8) -BFD022E4 8020305C ADDIU V0, GP, -32736 -BFD022E8 00629443 BEQ V1, V0, 0xBFD023B0 -BFD022EA 0C000062 SLL V1, V0, 1 -BFD022EC 0C00 NOP -193: { -194: /* Return the memory space - jumping over the BlockLink_t structure -195: at its start. */ -196: pvReturn = ( void * ) ( ( ( uint8_t * ) pxPreviousBlock->pxNextFreeBlock ) + heapSTRUCT_SIZE ); -BFD022EE 0014FC5E LW V0, 20(S8) -BFD022F2 69A0 LW V1, 0(V0) -BFD022F4 BFD141A2 LUI V0, 0xBFD1 -BFD022F6 3442BFD1 LDC1 F30, 13378(S1) -BFD022F8 9F2C3442 LHU V0, -24788(V0) -BFD022FA 05269F2C LWC1 F25, 1318(T4) -BFD022FC 0526 ADDU V0, V1, V0 -BFD022FE 0018F85E SW V0, 24(S8) -197: -198: /* This block is being returned for use so must be taken out of the -199: list of free blocks. */ -200: pxPreviousBlock->pxNextFreeBlock = pxBlock->pxNextFreeBlock; -BFD02302 0010FC5E LW V0, 16(S8) -BFD02306 69A0 LW V1, 0(V0) -BFD02308 0014FC5E LW V0, 20(S8) -BFD0230C E9A0 SW V1, 0(V0) -201: -202: /* If the block is larger than required it can be split into two. */ -203: if( ( pxBlock->xBlockSize - xWantedSize ) > heapMINIMUM_BLOCK_SIZE ) -BFD0230E 0010FC5E LW V0, 16(S8) -BFD02312 69A1 LW V1, 4(V0) -BFD02314 0030FC5E LW V0, 48(S8) -BFD02318 05A7 SUBU V1, V1, V0 -BFD0231A BFD141A2 LUI V0, 0xBFD1 -BFD0231C 3442BFD1 LDC1 F30, 13378(S1) -BFD0231E 9F2C3442 LHU V0, -24788(V0) -BFD02320 25229F2C LWC1 F25, 9506(T4) -BFD02322 2522 SLL V0, V0, 1 -BFD02324 13900062 SLTU V0, V0, V1 -BFD02326 40E21390 ADDI GP, S0, 16610 -BFD02328 003A40E2 BEQZC V0, 0xBFD023A0 -204: { -205: /* This block is to be split into two. Create a new block -206: following the number of bytes requested. The void cast is -207: used to prevent byte alignment warnings from the compiler. */ -208: pxNewBlockLink = ( void * ) ( ( ( uint8_t * ) pxBlock ) + xWantedSize ); -BFD0232C 0010FC7E LW V1, 16(S8) -BFD02330 0030FC5E LW V0, 48(S8) -BFD02334 0526 ADDU V0, V1, V0 -BFD02336 0020F85E SW V0, 32(S8) -209: -210: /* Calculate the sizes of two blocks split from the single -211: block. */ -212: pxNewBlockLink->xBlockSize = pxBlock->xBlockSize - xWantedSize; -BFD0233A 0010FC5E LW V0, 16(S8) -BFD0233E 69A1 LW V1, 4(V0) -BFD02340 0030FC5E LW V0, 48(S8) -BFD02344 05A7 SUBU V1, V1, V0 -BFD02346 0020FC5E LW V0, 32(S8) -BFD0234A E9A1 SW V1, 4(V0) -213: pxBlock->xBlockSize = xWantedSize; -BFD0234C 0010FC5E LW V0, 16(S8) -BFD02350 0030FC7E LW V1, 48(S8) -BFD02354 E9A1 SW V1, 4(V0) -214: -215: /* Insert the new block into the list of free blocks. */ -216: prvInsertBlockIntoFreeList( ( pxNewBlockLink ) ); -BFD02356 0020FC5E LW V0, 32(S8) -BFD0235A 6921 LW V0, 4(V0) -BFD0235C 0024F85E SW V0, 36(S8) -BFD02360 8018305C ADDIU V0, GP, -32744 -BFD02364 001CF85E SW V0, 28(S8) -BFD02368 CC06 B 0xBFD02376 -BFD0236A 0C00 NOP -BFD0236C 001CFC5E LW V0, 28(S8) -BFD02370 6920 LW V0, 0(V0) -BFD02372 001CF85E SW V0, 28(S8) -BFD02376 001CFC5E LW V0, 28(S8) -BFD0237A 6920 LW V0, 0(V0) -BFD0237C 69A1 LW V1, 4(V0) -BFD0237E 0024FC5E LW V0, 36(S8) -BFD02382 13900043 SLTU V0, V1, V0 -BFD02384 40A21390 ADDI GP, S0, 16546 -BFD02386 FFF140A2 BNEZC V0, 0xBFD0236C -BFD02388 FC5EFFF1 LW RA, -930(S1) -BFD0238A 001CFC5E LW V0, 28(S8) -BFD0238E 69A0 LW V1, 0(V0) -BFD02390 0020FC5E LW V0, 32(S8) -BFD02394 E9A0 SW V1, 0(V0) -BFD02396 001CFC5E LW V0, 28(S8) -BFD0239A 0020FC7E LW V1, 32(S8) -BFD0239E E9A0 SW V1, 0(V0) -217: } -218: -219: xFreeBytesRemaining -= pxBlock->xBlockSize; -BFD023A0 8010FC7C LW V1, -32752(GP) -BFD023A4 0010FC5E LW V0, 16(S8) -BFD023A8 6921 LW V0, 4(V0) -BFD023AA 0527 SUBU V0, V1, V0 -BFD023AC 8010F85C SW V0, -32752(GP) -220: } -221: } -222: -223: traceMALLOC( pvReturn, xWantedSize ); -224: } -225: ( void ) xTaskResumeAll(); -BFD023B0 158E77E8 JALS xTaskResumeAll -BFD023B2 0C00158E LBU T4, 3072(T6) -BFD023B4 0C00 NOP -226: -227: #if( configUSE_MALLOC_FAILED_HOOK == 1 ) -228: { -229: if( pvReturn == NULL ) -BFD023B6 0018FC5E LW V0, 24(S8) -BFD023BA 000340A2 BNEZC V0, 0xBFD023C4 -230: { -231: extern void vApplicationMallocFailedHook( void ); -232: vApplicationMallocFailedHook(); -BFD023BE 448077E8 JALS vApplicationMallocFailedHook -BFD023C0 4480 AND16 S0, S0 -BFD023C2 0C00 NOP -233: } -234: } -235: #endif -236: -237: return pvReturn; -BFD023C4 0018FC5E LW V0, 24(S8) -238: } -BFD023C8 0FBE MOVE SP, S8 -BFD023CA 4BEB LW RA, 44(SP) -BFD023CC 4BCA LW S8, 40(SP) -BFD023CE 4C19 ADDIU SP, SP, 48 -BFD023D0 459F JR16 RA -BFD023D2 0C00 NOP -239: /*-----------------------------------------------------------*/ -240: -241: void vPortFree( void *pv ) -242: { -BFD05FD4 4FED ADDIU SP, SP, -40 -BFD05FD6 CBE9 SW RA, 36(SP) -BFD05FD8 CBC8 SW S8, 32(SP) -BFD05FDA 0FDD MOVE S8, SP -BFD05FDC 0028F89E SW A0, 40(S8) -243: uint8_t *puc = ( uint8_t * ) pv; -BFD05FE0 0028FC5E LW V0, 40(S8) -BFD05FE4 0014F85E SW V0, 20(S8) -244: BlockLink_t *pxLink; -245: -246: if( pv != NULL ) -BFD05FE8 0028FC5E LW V0, 40(S8) -BFD05FEC 004240E2 BEQZC V0, 0xBFD06074 -247: { -248: /* The memory being freed will have an BlockLink_t structure immediately -249: before it. */ -250: puc -= heapSTRUCT_SIZE; -BFD05FF0 BFD141A2 LUI V0, 0xBFD1 -BFD05FF2 3442BFD1 LDC1 F30, 13378(S1) -BFD05FF4 9F2C3442 LHU V0, -24788(V0) -BFD05FF6 00409F2C LWC1 F25, 64(T4) -BFD05FF8 11D00040 SUBU V0, ZERO, V0 -BFD05FFA FC7E11D0 ADDI T6, S0, -898 -BFD05FFC 0014FC7E LW V1, 20(S8) -BFD06000 0526 ADDU V0, V1, V0 -BFD06002 0014F85E SW V0, 20(S8) -251: -252: /* This unexpected casting is to keep some compilers from issuing -253: byte alignment warnings. */ -254: pxLink = ( void * ) puc; -BFD06006 0014FC5E LW V0, 20(S8) -BFD0600A 0018F85E SW V0, 24(S8) -255: -256: vTaskSuspendAll(); -BFD0600E 4EF477E8 JALS vTaskSuspendAll -BFD06010 4EF4 ADDIU S7, S7, -6 -BFD06012 0C00 NOP -257: { -258: /* Add this block to the list of free blocks. */ -259: prvInsertBlockIntoFreeList( ( ( BlockLink_t * ) pxLink ) ); -BFD06014 0018FC5E LW V0, 24(S8) -BFD06018 6921 LW V0, 4(V0) -BFD0601A 001CF85E SW V0, 28(S8) -BFD0601E 8018305C ADDIU V0, GP, -32744 -BFD06022 0010F85E SW V0, 16(S8) -BFD06026 CC06 B 0xBFD06034 -BFD06028 0C00 NOP -BFD0602A 0010FC5E LW V0, 16(S8) -BFD0602E 6920 LW V0, 0(V0) -BFD06030 0010F85E SW V0, 16(S8) -BFD06034 0010FC5E LW V0, 16(S8) -BFD06038 6920 LW V0, 0(V0) -BFD0603A 69A1 LW V1, 4(V0) -BFD0603C 001CFC5E LW V0, 28(S8) -BFD06040 13900043 SLTU V0, V1, V0 -BFD06042 40A21390 ADDI GP, S0, 16546 -BFD06044 FFF140A2 BNEZC V0, 0xBFD0602A -BFD06046 FC5EFFF1 LW RA, -930(S1) -BFD06048 0010FC5E LW V0, 16(S8) -BFD0604C 69A0 LW V1, 0(V0) -BFD0604E 0018FC5E LW V0, 24(S8) -BFD06052 E9A0 SW V1, 0(V0) -BFD06054 0010FC5E LW V0, 16(S8) -BFD06058 0018FC7E LW V1, 24(S8) -BFD0605C E9A0 SW V1, 0(V0) -260: xFreeBytesRemaining += pxLink->xBlockSize; -BFD0605E 0018FC5E LW V0, 24(S8) -BFD06062 69A1 LW V1, 4(V0) -BFD06064 8010FC5C LW V0, -32752(GP) -BFD06068 0526 ADDU V0, V1, V0 -BFD0606A 8010F85C SW V0, -32752(GP) -261: traceFREE( pv, pxLink->xBlockSize ); -262: } -263: ( void ) xTaskResumeAll(); -BFD0606E 158E77E8 JALS xTaskResumeAll -BFD06070 0C00158E LBU T4, 3072(T6) -BFD06072 0C00 NOP -264: } -265: } -BFD06074 0FBE MOVE SP, S8 -BFD06076 4BE9 LW RA, 36(SP) -BFD06078 4BC8 LW S8, 32(SP) -BFD0607A 4C15 ADDIU SP, SP, 40 -BFD0607C 459F JR16 RA -BFD0607E 0C00 NOP -266: /*-----------------------------------------------------------*/ -267: -268: size_t xPortGetFreeHeapSize( void ) -269: { -BFD09E84 4FB0 ADDIU SP, SP, -8 -BFD09E86 CBC1 SW S8, 4(SP) -BFD09E88 0FDD MOVE S8, SP -270: return xFreeBytesRemaining; -BFD09E8A 8010FC5C LW V0, -32752(GP) -271: } -BFD09E8E 0FBE MOVE SP, S8 -BFD09E90 4BC1 LW S8, 4(SP) -BFD09E92 4C05 ADDIU SP, SP, 8 -BFD09E94 459F JR16 RA -BFD09E96 0C00 NOP -272: /*-----------------------------------------------------------*/ -273: -274: void vPortInitialiseBlocks( void ) -275: { -BFD09ED4 4FB0 ADDIU SP, SP, -8 -BFD09ED6 CBC1 SW S8, 4(SP) -BFD09ED8 0FDD MOVE S8, SP -276: /* This just exists to keep the linker quiet. */ -277: } -BFD09EDA 0FBE MOVE SP, S8 -BFD09EDC 4BC1 LW S8, 4(SP) -BFD09EDE 4C05 ADDIU SP, SP, 8 -BFD09EE0 459F JR16 RA -BFD09EE2 0C00 NOP -278: /*-----------------------------------------------------------*/ -279: -280: static void prvHeapInit( void ) -281: { -BFD084A0 4FF9 ADDIU SP, SP, -16 -BFD084A2 CBC3 SW S8, 12(SP) -BFD084A4 0FDD MOVE S8, SP -282: BlockLink_t *pxFirstFreeBlock; -283: uint8_t *pucAlignedHeap; -284: -285: /* Ensure the heap starts on a correctly aligned boundary. */ -286: pucAlignedHeap = ( uint8_t * ) ( ( ( portPOINTER_SIZE_TYPE ) &ucHeap[ portBYTE_ALIGNMENT ] ) & ( ~( ( portPOINTER_SIZE_TYPE ) portBYTE_ALIGNMENT_MASK ) ) ); -BFD084A6 BFD241A2 LUI V0, 0xBFD2 -BFD084A8 3062BFD2 LDC1 F30, 12386(S2) -BFD084AA 8D703062 ADDIU V1, V0, -29328 -BFD084AC 8D70 BEQZ V0, 0xBFD0858E -BFD084AE FFF83040 ADDIU V0, ZERO, -8 -BFD084B0 4493FFF8 LW RA, 17555(T8) -BFD084B2 4493 AND16 V0, V1 -BFD084B4 0000F85E SW V0, 0(S8) -287: -288: /* xStart is used to hold a pointer to the first item in the list of free -289: blocks. The void cast is used to prevent compiler warnings. */ -290: xStart.pxNextFreeBlock = ( void * ) pucAlignedHeap; -BFD084B8 0000FC5E LW V0, 0(S8) -BFD084BC 8018F85C SW V0, -32744(GP) -291: xStart.xBlockSize = ( size_t ) 0; -BFD084C0 801CF81C SW ZERO, -32740(GP) -292: -293: /* xEnd is used to mark the end of the list of free blocks. */ -294: xEnd.xBlockSize = configADJUSTED_HEAP_SIZE; -BFD084C4 1FF83040 ADDIU V0, ZERO, 8184 -BFD084C6 F85C1FF8 LB RA, -1956(T8) -BFD084C8 8024F85C SW V0, -32732(GP) -295: xEnd.pxNextFreeBlock = NULL; -BFD084CC 8020F81C SW ZERO, -32736(GP) -296: -297: /* To start with there is a single free block that is sized to take up the -298: entire heap space. */ -299: pxFirstFreeBlock = ( void * ) pucAlignedHeap; -BFD084D0 0000FC5E LW V0, 0(S8) -BFD084D4 0004F85E SW V0, 4(S8) -300: pxFirstFreeBlock->xBlockSize = configADJUSTED_HEAP_SIZE; -BFD084D8 0004FC5E LW V0, 4(S8) -BFD084DC 1FF83060 ADDIU V1, ZERO, 8184 -BFD084DE E9A11FF8 LB RA, -5727(T8) -BFD084E0 E9A1 SW V1, 4(V0) -301: pxFirstFreeBlock->pxNextFreeBlock = &xEnd; -BFD084E2 0004FC5E LW V0, 4(S8) -BFD084E4 307C0004 MTLO A0, 0 -BFD084E6 8020307C ADDIU V1, GP, -32736 -BFD084EA E9A0 SW V1, 0(V0) -302: } -BFD084EC 0FBE MOVE SP, S8 -BFD084EE 4BC3 LW S8, 12(SP) -BFD084F0 4C09 ADDIU SP, SP, 16 -BFD084F2 459F JR16 RA -BFD084F4 0C00 NOP -303: /*-----------------------------------------------------------*/ ---- c:/e/dev/freertos/workingcopy/freertos/source/list.c ---------------------------------------------- -1: /* -2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -3: All rights reserved -4: -5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -6: -7: This file is part of the FreeRTOS distribution. -8: -9: FreeRTOS is free software; you can redistribute it and/or modify it under -10: the terms of the GNU General Public License (version 2) as published by the -11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: -71: #include -72: #include "FreeRTOS.h" -73: #include "list.h" -74: -75: /*----------------------------------------------------------- -76: * PUBLIC LIST API documented in list.h -77: *----------------------------------------------------------*/ -78: -79: void vListInitialise( List_t * const pxList ) -80: { -BFD08AE0 4FB0 ADDIU SP, SP, -8 -BFD08AE2 CBC1 SW S8, 4(SP) -BFD08AE4 0FDD MOVE S8, SP -BFD08AE6 0008F89E SW A0, 8(S8) -81: /* The list structure contains a list item which is used to mark the -82: end of the list. To initialise the list the list end is inserted -83: as the only list entry. */ -84: pxList->pxIndex = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ -BFD08AEA 0008FC5E LW V0, 8(S8) -BFD08AEE 6D24 ADDIU V0, V0, 8 -BFD08AF0 0C62 MOVE V1, V0 -BFD08AF2 0008FC5E LW V0, 8(S8) -BFD08AF6 E9A1 SW V1, 4(V0) -85: -86: /* The list end value is the highest possible value in the list to -87: ensure it remains at the end of the list. */ -88: pxList->xListEnd.xItemValue = portMAX_DELAY; -BFD08AF8 0008FC5E LW V0, 8(S8) -BFD08AFC EDFF LI V1, -1 -BFD08AFE E9A2 SW V1, 8(V0) -89: -90: /* The list end next and previous pointers point to itself so we know -91: when the list is empty. */ -92: pxList->xListEnd.pxNext = ( ListItem_t * ) &( pxList->xListEnd ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ -BFD08B00 0008FC5E LW V0, 8(S8) -BFD08B04 6D24 ADDIU V0, V0, 8 -BFD08B06 0C62 MOVE V1, V0 -BFD08B08 0008FC5E LW V0, 8(S8) -BFD08B0C E9A3 SW V1, 12(V0) -93: pxList->xListEnd.pxPrevious = ( ListItem_t * ) &( pxList->xListEnd );/*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ -BFD08B0E 0008FC5E LW V0, 8(S8) -BFD08B12 6D24 ADDIU V0, V0, 8 -BFD08B14 0C62 MOVE V1, V0 -BFD08B16 0008FC5E LW V0, 8(S8) -BFD08B1A E9A4 SW V1, 16(V0) -94: -95: pxList->uxNumberOfItems = ( UBaseType_t ) 0U; -BFD08B1C 0008FC5E LW V0, 8(S8) -BFD08B20 E820 SW S0, 0(V0) -96: -97: /* Write known values into the list if -98: configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ -99: listSET_LIST_INTEGRITY_CHECK_1_VALUE( pxList ); -100: listSET_LIST_INTEGRITY_CHECK_2_VALUE( pxList ); -101: } -BFD08B22 0FBE MOVE SP, S8 -BFD08B24 4BC1 LW S8, 4(SP) -BFD08B26 4C05 ADDIU SP, SP, 8 -BFD08B28 459F JR16 RA -BFD08B2A 0C00 NOP -102: /*-----------------------------------------------------------*/ -103: -104: void vListInitialiseItem( ListItem_t * const pxItem ) -105: { -BFD09DCC 4FB0 ADDIU SP, SP, -8 -BFD09DCE CBC1 SW S8, 4(SP) -BFD09DD0 0FDD MOVE S8, SP -BFD09DD2 0008F89E SW A0, 8(S8) -106: /* Make sure the list item is not recorded as being on a list. */ -107: pxItem->pvContainer = NULL; -BFD09DD6 0008FC5E LW V0, 8(S8) -BFD09DDA E824 SW S0, 16(V0) -108: -109: /* Write known values into the list item if -110: configUSE_LIST_DATA_INTEGRITY_CHECK_BYTES is set to 1. */ -111: listSET_FIRST_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ); -112: listSET_SECOND_LIST_ITEM_INTEGRITY_CHECK_VALUE( pxItem ); -113: } -BFD09DDC 0FBE MOVE SP, S8 -BFD09DDE 4BC1 LW S8, 4(SP) -BFD09DE0 4C05 ADDIU SP, SP, 8 -BFD09DE2 459F JR16 RA -BFD09DE4 0C00 NOP -114: /*-----------------------------------------------------------*/ -115: -116: void vListInsertEnd( List_t * const pxList, ListItem_t * const pxNewListItem ) -117: { -BFD07C94 4FF9 ADDIU SP, SP, -16 -BFD07C96 CBC3 SW S8, 12(SP) -BFD07C98 0FDD MOVE S8, SP -BFD07C9A 0010F89E SW A0, 16(S8) -BFD07C9E 0014F8BE SW A1, 20(S8) -118: ListItem_t * const pxIndex = pxList->pxIndex; -BFD07CA2 0010FC5E LW V0, 16(S8) -BFD07CA6 6921 LW V0, 4(V0) -BFD07CA8 0000F85E SW V0, 0(S8) -119: -120: /* Only effective when configASSERT() is also defined, these tests may catch -121: the list data structures being overwritten in memory. They will not catch -122: data errors caused by incorrect configuration or use of FreeRTOS. */ -123: listTEST_LIST_INTEGRITY( pxList ); -124: listTEST_LIST_ITEM_INTEGRITY( pxNewListItem ); -125: -126: /* Insert a new list item into pxList, but rather than sort the list, -127: makes the new list item the last item to be removed by a call to -128: listGET_OWNER_OF_NEXT_ENTRY(). */ -129: pxNewListItem->pxNext = pxIndex; -BFD07CAC 0014FC5E LW V0, 20(S8) -BFD07CB0 0000FC7E LW V1, 0(S8) -BFD07CB4 E9A1 SW V1, 4(V0) -130: pxNewListItem->pxPrevious = pxIndex->pxPrevious; -BFD07CB6 0000FC5E LW V0, 0(S8) -BFD07CBA 69A2 LW V1, 8(V0) -BFD07CBC 0014FC5E LW V0, 20(S8) -BFD07CC0 E9A2 SW V1, 8(V0) -131: -132: /* Only used during decision coverage testing. */ -133: mtCOVERAGE_TEST_DELAY(); -134: -135: pxIndex->pxPrevious->pxNext = pxNewListItem; -BFD07CC2 0000FC5E LW V0, 0(S8) -BFD07CC6 6922 LW V0, 8(V0) -BFD07CC8 0014FC7E LW V1, 20(S8) -BFD07CCC E9A1 SW V1, 4(V0) -136: pxIndex->pxPrevious = pxNewListItem; -BFD07CCE 0000FC5E LW V0, 0(S8) -BFD07CD2 0014FC7E LW V1, 20(S8) -BFD07CD6 E9A2 SW V1, 8(V0) -137: -138: /* Remember which list the item is in. */ -139: pxNewListItem->pvContainer = ( void * ) pxList; -BFD07CD8 0014FC5E LW V0, 20(S8) -BFD07CDC 0010FC7E LW V1, 16(S8) -BFD07CE0 E9A4 SW V1, 16(V0) -140: -141: ( pxList->uxNumberOfItems )++; -BFD07CE2 0010FC5E LW V0, 16(S8) -BFD07CE6 6920 LW V0, 0(V0) -BFD07CE8 6DA0 ADDIU V1, V0, 1 -BFD07CEA 0010FC5E LW V0, 16(S8) -BFD07CEE E9A0 SW V1, 0(V0) -142: } -BFD07CF0 0FBE MOVE SP, S8 -BFD07CF2 4BC3 LW S8, 12(SP) -BFD07CF4 4C09 ADDIU SP, SP, 16 -BFD07CF6 459F JR16 RA -BFD07CF8 0C00 NOP -143: /*-----------------------------------------------------------*/ -144: -145: void vListInsert( List_t * const pxList, ListItem_t * const pxNewListItem ) -146: { -BFD06080 4FF9 ADDIU SP, SP, -16 -BFD06082 CBC3 SW S8, 12(SP) -BFD06084 0FDD MOVE S8, SP -BFD06086 0010F89E SW A0, 16(S8) -BFD0608A 0014F8BE SW A1, 20(S8) -147: ListItem_t *pxIterator; -148: const TickType_t xValueOfInsertion = pxNewListItem->xItemValue; -BFD0608E 0014FC5E LW V0, 20(S8) -BFD06092 6920 LW V0, 0(V0) -BFD06094 0004F85E SW V0, 4(S8) -149: -150: /* Only effective when configASSERT() is also defined, these tests may catch -151: the list data structures being overwritten in memory. They will not catch -152: data errors caused by incorrect configuration or use of FreeRTOS. */ -153: listTEST_LIST_INTEGRITY( pxList ); -154: listTEST_LIST_ITEM_INTEGRITY( pxNewListItem ); -155: -156: /* Insert the new list item into the list, sorted in xItemValue order. -157: -158: If the list already contains a list item with the same item value then the -159: new list item should be placed after it. This ensures that TCB's which are -160: stored in ready lists (all of which have the same xItemValue value) get a -161: share of the CPU. However, if the xItemValue is the same as the back marker -162: the iteration loop below will not end. Therefore the value is checked -163: first, and the algorithm slightly modified if necessary. */ -164: if( xValueOfInsertion == portMAX_DELAY ) -BFD06098 0004FC7E LW V1, 4(S8) -BFD0609C ED7F LI V0, -1 -BFD0609E 0008B443 BNE V1, V0, 0xBFD060B2 -BFD060A0 0C000008 SLL ZERO, T0, 1 -BFD060A2 0C00 NOP -165: { -166: pxIterator = pxList->xListEnd.pxPrevious; -BFD060A4 0010FC5E LW V0, 16(S8) -BFD060A8 6924 LW V0, 16(V0) -BFD060AA 0000F85E SW V0, 0(S8) -BFD060AE CC17 B 0xBFD060DE -BFD060B0 0C00 NOP -167: } -168: else -169: { -170: /* *** NOTE *********************************************************** -171: If you find your application is crashing here then likely causes are -172: listed below. In addition see http://www.freertos.org/FAQHelp.html for -173: more tips, and ensure configASSERT() is defined! -174: http://www.freertos.org/a00110.html#configASSERT -175: -176: 1) Stack overflow - -177: see http://www.freertos.org/Stacks-and-stack-overflow-checking.html -178: 2) Incorrect interrupt priority assignment, especially on Cortex-M -179: parts where numerically high priority values denote low actual -180: interrupt priorities, which can seem counter intuitive. See -181: http://www.freertos.org/RTOS-Cortex-M3-M4.html and the definition -182: of configMAX_SYSCALL_INTERRUPT_PRIORITY on -183: http://www.freertos.org/a00110.html -184: 3) Calling an API function from within a critical section or when -185: the scheduler is suspended, or calling an API function that does -186: not end in "FromISR" from an interrupt. -187: 4) Using a queue or semaphore before it has been initialised or -188: before the scheduler has been started (are interrupts firing -189: before vTaskStartScheduler() has been called?). -190: **********************************************************************/ -191: -192: for( pxIterator = ( ListItem_t * ) &( pxList->xListEnd ); pxIterator->pxNext->xItemValue <= xValueOfInsertion; pxIterator = pxIterator->pxNext ) /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ -BFD060B2 0010FC5E LW V0, 16(S8) -BFD060B6 6D24 ADDIU V0, V0, 8 -BFD060B8 0000F85E SW V0, 0(S8) -BFD060BC CC06 B 0xBFD060CA -BFD060BE 0C00 NOP -BFD060C0 0000FC5E LW V0, 0(S8) -BFD060C4 6921 LW V0, 4(V0) -BFD060C6 0000F85E SW V0, 0(S8) -BFD060CA 0000FC5E LW V0, 0(S8) -BFD060CE 6921 LW V0, 4(V0) -BFD060D0 69A0 LW V1, 0(V0) -BFD060D2 0004FC5E LW V0, 4(S8) -BFD060D6 13900062 SLTU V0, V0, V1 -BFD060D8 40E21390 ADDI GP, S0, 16610 -BFD060DA FFF140E2 BEQZC V0, 0xBFD060C0 -BFD060DC FC5EFFF1 LW RA, -930(S1) -193: { -194: /* There is nothing to do here, just iterating to the wanted -195: insertion position. */ -196: } -197: } -198: -199: pxNewListItem->pxNext = pxIterator->pxNext; -BFD060DE 0000FC5E LW V0, 0(S8) -BFD060E2 69A1 LW V1, 4(V0) -BFD060E4 0014FC5E LW V0, 20(S8) -BFD060E8 E9A1 SW V1, 4(V0) -200: pxNewListItem->pxNext->pxPrevious = pxNewListItem; -BFD060EA 0014FC5E LW V0, 20(S8) -BFD060EE 6921 LW V0, 4(V0) -BFD060F0 0014FC7E LW V1, 20(S8) -BFD060F4 E9A2 SW V1, 8(V0) -201: pxNewListItem->pxPrevious = pxIterator; -BFD060F6 0014FC5E LW V0, 20(S8) -BFD060FA 0000FC7E LW V1, 0(S8) -BFD060FE E9A2 SW V1, 8(V0) -202: pxIterator->pxNext = pxNewListItem; -BFD06100 0000FC5E LW V0, 0(S8) -BFD06104 0014FC7E LW V1, 20(S8) -BFD06108 E9A1 SW V1, 4(V0) -203: -204: /* Remember which list the item is in. This allows fast removal of the -205: item later. */ -206: pxNewListItem->pvContainer = ( void * ) pxList; -BFD0610A 0014FC5E LW V0, 20(S8) -BFD0610E 0010FC7E LW V1, 16(S8) -BFD06112 E9A4 SW V1, 16(V0) -207: -208: ( pxList->uxNumberOfItems )++; -BFD06114 0010FC5E LW V0, 16(S8) -BFD06118 6920 LW V0, 0(V0) -BFD0611A 6DA0 ADDIU V1, V0, 1 -BFD0611C 0010FC5E LW V0, 16(S8) -BFD06120 E9A0 SW V1, 0(V0) -209: } -BFD06122 0FBE MOVE SP, S8 -BFD06124 4BC3 LW S8, 12(SP) -BFD06126 4C09 ADDIU SP, SP, 16 -BFD06128 459F JR16 RA -BFD0612A 0C00 NOP -210: /*-----------------------------------------------------------*/ -211: -212: UBaseType_t uxListRemove( ListItem_t * const pxItemToRemove ) -213: { -BFD00190 4FF9 ADDIU SP, SP, -16 -BFD00192 CBC3 SW S8, 12(SP) -BFD00194 0FDD MOVE S8, SP -BFD00196 0010F89E SW A0, 16(S8) -214: /* The list item knows which list it is in. Obtain the list from the list -215: item. */ -216: List_t * const pxList = ( List_t * ) pxItemToRemove->pvContainer; -BFD0019A 0010FC5E LW V0, 16(S8) -BFD0019E 6924 LW V0, 16(V0) -BFD001A0 0000F85E SW V0, 0(S8) -217: -218: pxItemToRemove->pxNext->pxPrevious = pxItemToRemove->pxPrevious; -BFD001A4 0010FC5E LW V0, 16(S8) -BFD001A8 6921 LW V0, 4(V0) -BFD001AA 0010FC7E LW V1, 16(S8) -BFD001AE 69B2 LW V1, 8(V1) -BFD001B0 E9A2 SW V1, 8(V0) -219: pxItemToRemove->pxPrevious->pxNext = pxItemToRemove->pxNext; -BFD001B2 0010FC5E LW V0, 16(S8) -BFD001B6 6922 LW V0, 8(V0) -BFD001B8 0010FC7E LW V1, 16(S8) -BFD001BC 69B1 LW V1, 4(V1) -BFD001BE E9A1 SW V1, 4(V0) -220: -221: /* Only used during decision coverage testing. */ -222: mtCOVERAGE_TEST_DELAY(); -223: -224: /* Make sure the index is left pointing to a valid item. */ -225: if( pxList->pxIndex == pxItemToRemove ) -BFD001C0 0000FC5E LW V0, 0(S8) -BFD001C4 69A1 LW V1, 4(V0) -BFD001C6 0010FC5E LW V0, 16(S8) -BFD001CA 0007B443 BNE V1, V0, 0xBFD001DC -BFD001CC 0C000007 SLL ZERO, A3, 1 -BFD001CE 0C00 NOP -226: { -227: pxList->pxIndex = pxItemToRemove->pxPrevious; -BFD001D0 0010FC5E LW V0, 16(S8) -BFD001D4 69A2 LW V1, 8(V0) -BFD001D6 0000FC5E LW V0, 0(S8) -BFD001DA E9A1 SW V1, 4(V0) -228: } -229: else -230: { -231: mtCOVERAGE_TEST_MARKER(); -232: } -233: -234: pxItemToRemove->pvContainer = NULL; -BFD001DC 0010FC5E LW V0, 16(S8) -BFD001E0 E824 SW S0, 16(V0) -235: ( pxList->uxNumberOfItems )--; -BFD001E2 0000FC5E LW V0, 0(S8) -BFD001E6 6920 LW V0, 0(V0) -BFD001E8 6DAE ADDIU V1, V0, -1 -BFD001EA 0000FC5E LW V0, 0(S8) -BFD001EE E9A0 SW V1, 0(V0) -236: -237: return pxList->uxNumberOfItems; -BFD001F0 0000FC5E LW V0, 0(S8) -BFD001F4 6920 LW V0, 0(V0) -238: } -BFD001F6 0FBE MOVE SP, S8 -BFD001F8 4BC3 LW S8, 12(SP) -BFD001FA 4C09 ADDIU SP, SP, 16 -BFD001FC 459F JR16 RA -BFD001FE 0C00 NOP -239: /*-----------------------------------------------------------*/ -240: ---- c:/e/dev/freertos/workingcopy/freertos/source/event_groups.c -------------------------------------- -1: /* -2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -3: All rights reserved -4: -5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -6: -7: This file is part of the FreeRTOS distribution. -8: -9: FreeRTOS is free software; you can redistribute it and/or modify it under -10: the terms of the GNU General Public License (version 2) as published by the -11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -12: -13: *************************************************************************** -14: >>! NOTE: The modification to the GPL is included to allow you to !<< -15: >>! distribute a combined work that includes FreeRTOS without being !<< -16: >>! obliged to provide the source code for proprietary components !<< -17: >>! outside of the FreeRTOS kernel. !<< -18: *************************************************************************** -19: -20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -22: FOR A PARTICULAR PURPOSE. Full license text is available on the following -23: link: http://www.freertos.org/a00114.html -24: -25: *************************************************************************** -26: * * -27: * FreeRTOS provides completely free yet professionally developed, * -28: * robust, strictly quality controlled, supported, and cross * -29: * platform software that is more than just the market leader, it * -30: * is the industry's de facto standard. * -31: * * -32: * Help yourself get started quickly while simultaneously helping * -33: * to support the FreeRTOS project by purchasing a FreeRTOS * -34: * tutorial book, reference manual, or both: * -35: * http://www.FreeRTOS.org/Documentation * -36: * * -37: *************************************************************************** -38: -39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -40: the FAQ page "My application does not run, what could be wrong?". Have you -41: defined configASSERT()? -42: -43: http://www.FreeRTOS.org/support - In return for receiving this top quality -44: embedded software for free we request you assist our global community by -45: participating in the support forum. -46: -47: http://www.FreeRTOS.org/training - Investing in training allows your team to -48: be as productive as possible as early as possible. Now you can receive -49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -50: Ltd, and the world's leading authority on the world's leading RTOS. -51: -52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -54: compatible FAT file system, and our tiny thread aware UDP/IP stack. -55: -56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -58: -59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -61: licenses offer ticketed support, indemnification and commercial middleware. -62: -63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -64: engineered and independently SIL3 certified version for use in safety and -65: mission critical applications that require provable dependability. -66: -67: 1 tab == 4 spaces! -68: */ -69: -70: /* Standard includes. */ -71: #include -72: -73: /* Defining MPU_WRAPPERS_INCLUDED_FROM_API_FILE prevents task.h from redefining -74: all the API functions to use the MPU wrappers. That should only be done when -75: task.h is included from an application file. */ -76: #define MPU_WRAPPERS_INCLUDED_FROM_API_FILE -77: -78: /* FreeRTOS includes. */ -79: #include "FreeRTOS.h" -80: #include "task.h" -81: #include "timers.h" -82: #include "event_groups.h" -83: -84: /* Lint e961 and e750 are suppressed as a MISRA exception justified because the -85: MPU ports require MPU_WRAPPERS_INCLUDED_FROM_API_FILE to be defined for the -86: header files above, but not in this file, in order to generate the correct -87: privileged Vs unprivileged linkage and placement. */ -88: #undef MPU_WRAPPERS_INCLUDED_FROM_API_FILE /*lint !e961 !e750. */ -89: -90: #if ( INCLUDE_xEventGroupSetBitsFromISR == 1 ) && ( configUSE_TIMERS == 0 ) -91: #error configUSE_TIMERS must be set to 1 to make the xEventGroupSetBitFromISR() function available. -92: #endif -93: -94: #if ( INCLUDE_xEventGroupSetBitsFromISR == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 0 ) -95: #error INCLUDE_xTimerPendFunctionCall must also be set to one to make the xEventGroupSetBitFromISR() function available. -96: #endif -97: -98: /* The following bit fields convey control information in a task's event list -99: item value. It is important they don't clash with the -100: taskEVENT_LIST_ITEM_VALUE_IN_USE definition. */ -101: #if configUSE_16_BIT_TICKS == 1 -102: #define eventCLEAR_EVENTS_ON_EXIT_BIT 0x0100U -103: #define eventUNBLOCKED_DUE_TO_BIT_SET 0x0200U -104: #define eventWAIT_FOR_ALL_BITS 0x0400U -105: #define eventEVENT_BITS_CONTROL_BYTES 0xff00U -106: #else -107: #define eventCLEAR_EVENTS_ON_EXIT_BIT 0x01000000UL -108: #define eventUNBLOCKED_DUE_TO_BIT_SET 0x02000000UL -109: #define eventWAIT_FOR_ALL_BITS 0x04000000UL -110: #define eventEVENT_BITS_CONTROL_BYTES 0xff000000UL -111: #endif -112: -113: typedef struct xEventGroupDefinition -114: { -115: EventBits_t uxEventBits; -116: List_t xTasksWaitingForBits; /*< List of tasks waiting for a bit to be set. */ -117: -118: #if( configUSE_TRACE_FACILITY == 1 ) -119: UBaseType_t uxEventGroupNumber; -120: #endif -121: -122: } EventGroup_t; -123: -124: /*-----------------------------------------------------------*/ -125: -126: /* -127: * Test the bits set in uxCurrentEventBits to see if the wait condition is met. -128: * The wait condition is defined by xWaitForAllBits. If xWaitForAllBits is -129: * pdTRUE then the wait condition is met if all the bits set in uxBitsToWaitFor -130: * are also set in uxCurrentEventBits. If xWaitForAllBits is pdFALSE then the -131: * wait condition is met if any of the bits set in uxBitsToWait for are also set -132: * in uxCurrentEventBits. -133: */ -134: static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits ); -135: -136: /*-----------------------------------------------------------*/ -137: -138: EventGroupHandle_t xEventGroupCreate( void ) -139: { -BFD09320 4FF1 ADDIU SP, SP, -32 -BFD09322 CBE7 SW RA, 28(SP) -BFD09324 CBC6 SW S8, 24(SP) -BFD09326 0FDD MOVE S8, SP -140: EventGroup_t *pxEventBits; -141: -142: pxEventBits = ( EventGroup_t * ) pvPortMalloc( sizeof( EventGroup_t ) ); -BFD09328 EE18 LI A0, 24 -BFD0932A 111677E8 JALS pvPortMalloc -BFD0932C 0C001116 ADDI T0, S6, 3072 -BFD0932E 0C00 NOP -BFD09330 0010F85E SW V0, 16(S8) -143: if( pxEventBits != NULL ) -BFD09334 0010FC5E LW V0, 16(S8) -BFD09338 000A40E2 BEQZC V0, 0xBFD09350 -144: { -145: pxEventBits->uxEventBits = 0; -BFD0933C 0010FC5E LW V0, 16(S8) -BFD09340 E820 SW S0, 0(V0) -146: vListInitialise( &( pxEventBits->xTasksWaitingForBits ) ); -BFD09342 0010FC5E LW V0, 16(S8) -BFD09346 6D22 ADDIU V0, V0, 4 -BFD09348 0C82 MOVE A0, V0 -BFD0934A 457077E8 JALS vListInitialise -BFD0934C 4570 SWM16 0x3, 0(SP) -BFD0934E 0C00 NOP -147: traceEVENT_GROUP_CREATE( pxEventBits ); -148: } -149: else -150: { -151: traceEVENT_GROUP_CREATE_FAILED(); -152: } -153: -154: return ( EventGroupHandle_t ) pxEventBits; -BFD09350 0010FC5E LW V0, 16(S8) -155: } -BFD09354 0FBE MOVE SP, S8 -BFD09356 4BE7 LW RA, 28(SP) -BFD09358 4BC6 LW S8, 24(SP) -BFD0935A 4C11 ADDIU SP, SP, 32 -BFD0935C 459F JR16 RA -BFD0935E 0C00 NOP -156: /*-----------------------------------------------------------*/ -157: -158: EventBits_t xEventGroupSync( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, const EventBits_t uxBitsToWaitFor, TickType_t xTicksToWait ) -159: { -BFD01B0C 4FE9 ADDIU SP, SP, -48 -BFD01B0E CBEB SW RA, 44(SP) -BFD01B10 CBCA SW S8, 40(SP) -BFD01B12 0FDD MOVE S8, SP -BFD01B14 0030F89E SW A0, 48(S8) -BFD01B18 0034F8BE SW A1, 52(S8) -BFD01B1C 0038F8DE SW A2, 56(S8) -BFD01B20 003CF8FE SW A3, 60(S8) -160: EventBits_t uxOriginalBitValue, uxReturn; -161: EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; -BFD01B24 0030FC5E LW V0, 48(S8) -BFD01B28 0014F85E SW V0, 20(S8) -162: BaseType_t xAlreadyYielded; -163: BaseType_t xTimeoutOccurred = pdFALSE; -BFD01B2C 0018F81E SW ZERO, 24(S8) -164: -165: configASSERT( ( uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); -BFD01B30 0038FC7E LW V1, 56(S8) -BFD01B34 FF0041A2 LUI V0, 0xFF00 -BFD01B36 4493FF00 LW T8, 17555(ZERO) -BFD01B38 4493 AND16 V0, V1 -BFD01B3A 000940E2 BEQZC V0, 0xBFD01B50 -BFD01B3E BFD141A2 LUI V0, 0xBFD1 -BFD01B40 3082BFD1 LDC1 F30, 12418(S1) -BFD01B42 9C0C3082 ADDIU A0, V0, -25588 -BFD01B44 30A09C0C LWC1 F0, 12448(T4) -BFD01B46 00A530A0 ADDIU A1, ZERO, 165 -BFD01B4A 4B7E77E8 JALS vAssertCalled -BFD01B4C 4B7E LW K1, 120(SP) -BFD01B4E 0C00 NOP -166: configASSERT( uxBitsToWaitFor != 0 ); -BFD01B50 0038FC5E LW V0, 56(S8) -BFD01B54 000940A2 BNEZC V0, 0xBFD01B6A -BFD01B58 BFD141A2 LUI V0, 0xBFD1 -BFD01B5A 3082BFD1 LDC1 F30, 12418(S1) -BFD01B5C 9C0C3082 ADDIU A0, V0, -25588 -BFD01B5E 30A09C0C LWC1 F0, 12448(T4) -BFD01B60 00A630A0 ADDIU A1, ZERO, 166 -BFD01B64 4B7E77E8 JALS vAssertCalled -BFD01B66 4B7E LW K1, 120(SP) -BFD01B68 0C00 NOP -167: #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) -168: { -169: configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); -BFD01B6A 4A8E77E8 JALS xTaskGetSchedulerState -BFD01B6C 4A8E LW S4, 56(SP) -BFD01B6E 0C00 NOP -BFD01B70 000440A2 BNEZC V0, 0xBFD01B7C -BFD01B74 003CFC5E LW V0, 60(S8) -BFD01B78 000340A2 BNEZC V0, 0xBFD01B82 -BFD01B7C ED01 LI V0, 1 -BFD01B7E CC02 B 0xBFD01B84 -BFD01B80 0C00 NOP -BFD01B82 0C40 MOVE V0, ZERO -BFD01B84 000940A2 BNEZC V0, 0xBFD01B9A -BFD01B88 BFD141A2 LUI V0, 0xBFD1 -BFD01B8A 3082BFD1 LDC1 F30, 12418(S1) -BFD01B8C 9C0C3082 ADDIU A0, V0, -25588 -BFD01B8E 30A09C0C LWC1 F0, 12448(T4) -BFD01B90 00A930A0 ADDIU A1, ZERO, 169 -BFD01B94 4B7E77E8 JALS vAssertCalled -BFD01B96 4B7E LW K1, 120(SP) -BFD01B98 0C00 NOP -170: } -171: #endif -172: -173: vTaskSuspendAll(); -BFD01B9A 4EF477E8 JALS vTaskSuspendAll -BFD01B9C 4EF4 ADDIU S7, S7, -6 -BFD01B9E 0C00 NOP -174: { -175: uxOriginalBitValue = pxEventBits->uxEventBits; -BFD01BA0 0014FC5E LW V0, 20(S8) -BFD01BA4 6920 LW V0, 0(V0) -BFD01BA6 001CF85E SW V0, 28(S8) -176: -177: ( void ) xEventGroupSetBits( xEventGroup, uxBitsToSet ); -BFD01BAA 0030FC9E LW A0, 48(S8) -BFD01BAE 0034FCBE LW A1, 52(S8) -BFD01BB2 12B477E8 JALS xEventGroupSetBits -BFD01BB4 0C0012B4 ADDI S5, S4, 3072 -BFD01BB6 0C00 NOP -178: -179: if( ( ( uxOriginalBitValue | uxBitsToSet ) & uxBitsToWaitFor ) == uxBitsToWaitFor ) -BFD01BB8 001CFC7E LW V1, 28(S8) -BFD01BBC 0034FC5E LW V0, 52(S8) -BFD01BC0 44DA OR16 V1, V0 -BFD01BC2 0038FC5E LW V0, 56(S8) -BFD01BC6 449A AND16 V1, V0 -BFD01BC8 0038FC5E LW V0, 56(S8) -BFD01BCC 0016B443 BNE V1, V0, 0xBFD01BFC -BFD01BCE 0C000016 SLL ZERO, S6, 1 -BFD01BD0 0C00 NOP -180: { -181: /* All the rendezvous bits are now set - no need to block. */ -182: uxReturn = ( uxOriginalBitValue | uxBitsToSet ); -BFD01BD2 001CFC7E LW V1, 28(S8) -BFD01BD6 0034FC5E LW V0, 52(S8) -BFD01BDA 44D3 OR16 V0, V1 -BFD01BDC 0010F85E SW V0, 16(S8) -183: -184: /* Rendezvous always clear the bits. They will have been cleared -185: already unless this is the only task in the rendezvous. */ -186: pxEventBits->uxEventBits &= ~uxBitsToWaitFor; -BFD01BE0 0014FC5E LW V0, 20(S8) -BFD01BE4 69A0 LW V1, 0(V0) -BFD01BE6 0038FC5E LW V0, 56(S8) -BFD01BEA 4412 NOT16 V0, V0 -BFD01BEC 449A AND16 V1, V0 -BFD01BEE 0014FC5E LW V0, 20(S8) -BFD01BF2 E9A0 SW V1, 0(V0) -187: -188: xTicksToWait = 0; -BFD01BF4 003CF81E SW ZERO, 60(S8) -BFD01BF6 CC1D003C SHILO null, 60 -BFD01BF8 CC1D B 0xBFD01C34 -BFD01BFA 0C00 NOP -189: } -190: else -191: { -192: if( xTicksToWait != ( TickType_t ) 0 ) -BFD01BFC 003CFC5E LW V0, 60(S8) -BFD01C00 001340E2 BEQZC V0, 0xBFD01C2A -193: { -194: traceEVENT_GROUP_SYNC_BLOCK( xEventGroup, uxBitsToSet, uxBitsToWaitFor ); -195: -196: /* Store the bits that the calling task is waiting for in the -197: task's event list item so the kernel knows when a match is -198: found. Then enter the blocked state. */ -199: vTaskPlaceOnUnorderedEventList( &( pxEventBits->xTasksWaitingForBits ), ( uxBitsToWaitFor | eventCLEAR_EVENTS_ON_EXIT_BIT | eventWAIT_FOR_ALL_BITS ), xTicksToWait ); -BFD01C04 0014FC5E LW V0, 20(S8) -BFD01C08 6DA2 ADDIU V1, V0, 4 -BFD01C0A 0038FC9E LW A0, 56(S8) -BFD01C0E 050041A2 LUI V0, 0x500 -BFD01C10 0500 ADDU V0, S0, S0 -BFD01C12 44D4 OR16 V0, A0 -BFD01C14 0C83 MOVE A0, V1 -BFD01C16 0CA2 MOVE A1, V0 -BFD01C18 003CFCDE LW A2, 60(S8) -BFD01C1C 248277E8 JALS vTaskPlaceOnUnorderedEventList -BFD01C1E 2482 SLL S1, S0, 1 -BFD01C20 0C00 NOP -200: -201: /* This assignment is obsolete as uxReturn will get set after -202: the task unblocks, but some compilers mistakenly generate a -203: warning about uxReturn being returned without being set if the -204: assignment is omitted. */ -205: uxReturn = 0; -BFD01C22 0010F81E SW ZERO, 16(S8) -BFD01C26 CC06 B 0xBFD01C34 -BFD01C28 0C00 NOP -206: } -207: else -208: { -209: /* The rendezvous bits were not set, but no block time was -210: specified - just return the current event bit value. */ -211: uxReturn = pxEventBits->uxEventBits; -BFD01C2A 0014FC5E LW V0, 20(S8) -BFD01C2E 6920 LW V0, 0(V0) -BFD01C30 0010F85E SW V0, 16(S8) -212: } -213: } -214: } -215: xAlreadyYielded = xTaskResumeAll(); -BFD01C34 158E77E8 JALS xTaskResumeAll -BFD01C36 0C00158E LBU T4, 3072(T6) -BFD01C38 0C00 NOP -BFD01C3A 0020F85E SW V0, 32(S8) -216: -217: if( xTicksToWait != ( TickType_t ) 0 ) -BFD01C3E 003CFC5E LW V0, 60(S8) -BFD01C42 004840E2 BEQZC V0, 0xBFD01CD6 -218: { -219: if( xAlreadyYielded == pdFALSE ) -BFD01C46 0020FC5E LW V0, 32(S8) -BFD01C4A 001040A2 BNEZC V0, 0xBFD01C6E -220: { -221: portYIELD_WITHIN_API(); -BFD01C4E 4DE677E8 JALS ulPortGetCP0Cause -BFD01C50 4DE6 ADDIU T7, T7, 3 -BFD01C52 0C00 NOP -BFD01C54 0024F85E SW V0, 36(S8) -BFD01C58 0024FC5E LW V0, 36(S8) -BFD01C5C 01005042 ORI V0, V0, 256 -BFD01C60 0024F85E SW V0, 36(S8) -BFD01C64 0024FC9E LW A0, 36(S8) -BFD01C68 4DF677E8 JALS vPortSetCP0Cause -BFD01C6A 4DF6 ADDIU T7, T7, -5 -BFD01C6C 0C00 NOP -222: } -223: else -224: { -225: mtCOVERAGE_TEST_MARKER(); -226: } -227: -228: /* The task blocked to wait for its required bits to be set - at this -229: point either the required bits were set or the block time expired. If -230: the required bits were set they will have been stored in the task's -231: event list item, and they should now be retrieved then cleared. */ -232: uxReturn = uxTaskResetEventItemValue(); -BFD01C6E 4C8677E8 JALS uxTaskResetEventItemValue -BFD01C70 4C86 ADDIU A0, A0, 3 -BFD01C72 0C00 NOP -BFD01C74 0010F85E SW V0, 16(S8) -233: -234: if( ( uxReturn & eventUNBLOCKED_DUE_TO_BIT_SET ) == ( EventBits_t ) 0 ) -BFD01C78 0010FC7E LW V1, 16(S8) -BFD01C7C 020041A2 LUI V0, 0x200 -BFD01C80 4493 AND16 V0, V1 -BFD01C82 002240A2 BNEZC V0, 0xBFD01CCA -235: { -236: /* The task timed out, just return the current event bit value. */ -237: taskENTER_CRITICAL(); -BFD01C86 33B877E8 JALS vTaskEnterCritical -BFD01C88 0C0033B8 ADDIU SP, T8, 3072 -BFD01C8A 0C00 NOP -238: { -239: uxReturn = pxEventBits->uxEventBits; -BFD01C8C 0014FC5E LW V0, 20(S8) -BFD01C90 6920 LW V0, 0(V0) -BFD01C92 0010F85E SW V0, 16(S8) -240: -241: /* Although the task got here because it timed out before the -242: bits it was waiting for were set, it is possible that since it -243: unblocked another task has set the bits. If this is the case -244: then it needs to clear the bits before exiting. */ -245: if( ( uxReturn & uxBitsToWaitFor ) == uxBitsToWaitFor ) -BFD01C96 0010FC7E LW V1, 16(S8) -BFD01C9A 0038FC5E LW V0, 56(S8) -BFD01C9E 449A AND16 V1, V0 -BFD01CA0 0038FC5E LW V0, 56(S8) -BFD01CA4 000BB443 BNE V1, V0, 0xBFD01CBE -BFD01CA6 0C00000B SLL ZERO, T3, 1 -BFD01CA8 0C00 NOP -246: { -247: pxEventBits->uxEventBits &= ~uxBitsToWaitFor; -BFD01CAA 0014FC5E LW V0, 20(S8) -BFD01CAE 69A0 LW V1, 0(V0) -BFD01CB0 0038FC5E LW V0, 56(S8) -BFD01CB4 4412 NOT16 V0, V0 -BFD01CB6 449A AND16 V1, V0 -BFD01CB8 0014FC5E LW V0, 20(S8) -BFD01CBC E9A0 SW V1, 0(V0) -248: } -249: else -250: { -251: mtCOVERAGE_TEST_MARKER(); -252: } -253: } -254: taskEXIT_CRITICAL(); -BFD01CBE 40AA77E8 JALS vTaskExitCritical -BFD01CC0 0C0040AA BNEZC T2, 0xBFD034C4 -BFD01CC2 0C00 NOP -255: -256: xTimeoutOccurred = pdTRUE; -BFD01CC4 ED01 LI V0, 1 -BFD01CC6 0018F85E SW V0, 24(S8) -257: } -258: else -259: { -260: /* The task unblocked because the bits were set. */ -261: } -262: -263: /* Control bits might be set as the task had blocked should not be -264: returned. */ -265: uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES; -BFD01CCA 0010FC5E LW V0, 16(S8) -BFD01CCE B82C0042 EXT V0, V0, 0, 24 -BFD01CD0 F85EB82C SDC1 F1, -1954(T4) -BFD01CD2 0010F85E SW V0, 16(S8) -266: } -267: -268: traceEVENT_GROUP_SYNC_END( xEventGroup, uxBitsToSet, uxBitsToWaitFor, xTimeoutOccurred ); -269: -270: return uxReturn; -BFD01CD6 0010FC5E LW V0, 16(S8) -271: } -BFD01CDA 0FBE MOVE SP, S8 -BFD01CDC 4BEB LW RA, 44(SP) -BFD01CDE 4BCA LW S8, 40(SP) -BFD01CE0 4C19 ADDIU SP, SP, 48 -BFD01CE2 459F JR16 RA -BFD01CE4 0C00 NOP -272: /*-----------------------------------------------------------*/ -273: -274: EventBits_t xEventGroupWaitBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToWaitFor, const BaseType_t xClearOnExit, const BaseType_t xWaitForAllBits, TickType_t xTicksToWait ) -275: { -BFD01310 4FE5 ADDIU SP, SP, -56 -BFD01312 CBED SW RA, 52(SP) -BFD01314 CBCC SW S8, 48(SP) -BFD01316 0FDD MOVE S8, SP -BFD01318 0038F89E SW A0, 56(S8) -BFD0131C 003CF8BE SW A1, 60(S8) -BFD01320 0040F8DE SW A2, 64(S8) -BFD01324 0044F8FE SW A3, 68(S8) -276: EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; -BFD01328 0038FC5E LW V0, 56(S8) -BFD0132C 0018F85E SW V0, 24(S8) -277: EventBits_t uxReturn, uxControlBits = 0; -BFD01330 0014F81E SW ZERO, 20(S8) -278: BaseType_t xWaitConditionMet, xAlreadyYielded; -279: BaseType_t xTimeoutOccurred = pdFALSE; -BFD01334 001CF81E SW ZERO, 28(S8) -280: -281: /* Check the user is not attempting to wait on the bits used by the kernel -282: itself, and that at least one bit is being requested. */ -283: configASSERT( xEventGroup ); -BFD01338 0038FC5E LW V0, 56(S8) -BFD0133C 000940A2 BNEZC V0, 0xBFD01352 -BFD01340 BFD141A2 LUI V0, 0xBFD1 -BFD01342 3082BFD1 LDC1 F30, 12418(S1) -BFD01344 9C0C3082 ADDIU A0, V0, -25588 -BFD01346 30A09C0C LWC1 F0, 12448(T4) -BFD01348 011B30A0 ADDIU A1, ZERO, 283 -BFD0134C 4B7E77E8 JALS vAssertCalled -BFD0134E 4B7E LW K1, 120(SP) -BFD01350 0C00 NOP -284: configASSERT( ( uxBitsToWaitFor & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); -BFD01352 003CFC7E LW V1, 60(S8) -BFD01356 FF0041A2 LUI V0, 0xFF00 -BFD01358 4493FF00 LW T8, 17555(ZERO) -BFD0135A 4493 AND16 V0, V1 -BFD0135C 000940E2 BEQZC V0, 0xBFD01372 -BFD01360 BFD141A2 LUI V0, 0xBFD1 -BFD01362 3082BFD1 LDC1 F30, 12418(S1) -BFD01364 9C0C3082 ADDIU A0, V0, -25588 -BFD01366 30A09C0C LWC1 F0, 12448(T4) -BFD01368 011C30A0 ADDIU A1, ZERO, 284 -BFD0136C 4B7E77E8 JALS vAssertCalled -BFD0136E 4B7E LW K1, 120(SP) -BFD01370 0C00 NOP -285: configASSERT( uxBitsToWaitFor != 0 ); -BFD01372 003CFC5E LW V0, 60(S8) -BFD01376 000940A2 BNEZC V0, 0xBFD0138C -BFD0137A BFD141A2 LUI V0, 0xBFD1 -BFD0137C 3082BFD1 LDC1 F30, 12418(S1) -BFD0137E 9C0C3082 ADDIU A0, V0, -25588 -BFD01380 30A09C0C LWC1 F0, 12448(T4) -BFD01382 011D30A0 ADDIU A1, ZERO, 285 -BFD01386 4B7E77E8 JALS vAssertCalled -BFD01388 4B7E LW K1, 120(SP) -BFD0138A 0C00 NOP -286: #if ( ( INCLUDE_xTaskGetSchedulerState == 1 ) || ( configUSE_TIMERS == 1 ) ) -287: { -288: configASSERT( !( ( xTaskGetSchedulerState() == taskSCHEDULER_SUSPENDED ) && ( xTicksToWait != 0 ) ) ); -BFD0138C 4A8E77E8 JALS xTaskGetSchedulerState -BFD0138E 4A8E LW S4, 56(SP) -BFD01390 0C00 NOP -BFD01392 000440A2 BNEZC V0, 0xBFD0139E -BFD01396 0048FC5E LW V0, 72(S8) -BFD0139A 000340A2 BNEZC V0, 0xBFD013A4 -BFD0139E ED01 LI V0, 1 -BFD013A0 CC02 B 0xBFD013A6 -BFD013A2 0C00 NOP -BFD013A4 0C40 MOVE V0, ZERO -BFD013A6 000940A2 BNEZC V0, 0xBFD013BC -BFD013AA BFD141A2 LUI V0, 0xBFD1 -BFD013AC 3082BFD1 LDC1 F30, 12418(S1) -BFD013AE 9C0C3082 ADDIU A0, V0, -25588 -BFD013B0 30A09C0C LWC1 F0, 12448(T4) -BFD013B2 012030A0 ADDIU A1, ZERO, 288 -BFD013B6 4B7E77E8 JALS vAssertCalled -BFD013B8 4B7E LW K1, 120(SP) -BFD013BA 0C00 NOP -289: } -290: #endif -291: -292: vTaskSuspendAll(); -BFD013BC 4EF477E8 JALS vTaskSuspendAll -BFD013BE 4EF4 ADDIU S7, S7, -6 -BFD013C0 0C00 NOP -293: { -294: const EventBits_t uxCurrentEventBits = pxEventBits->uxEventBits; -BFD013C2 0018FC5E LW V0, 24(S8) -BFD013C6 6920 LW V0, 0(V0) -BFD013C8 0020F85E SW V0, 32(S8) -295: -296: /* Check to see if the wait condition is already met or not. */ -297: xWaitConditionMet = prvTestWaitCondition( uxCurrentEventBits, uxBitsToWaitFor, xWaitForAllBits ); -BFD013CC 0020FC9E LW A0, 32(S8) -BFD013D0 003CFCBE LW A1, 60(S8) -BFD013D4 0044FCDE LW A2, 68(S8) -BFD013D8 407A77E8 JALS prvTestWaitCondition -BFD013DA 0C00407A BGEZAL K0, 0xBFD02BDE -BFD013DC 0C00 NOP -BFD013DE 0024F85E SW V0, 36(S8) -298: -299: if( xWaitConditionMet != pdFALSE ) -BFD013E2 0024FC5E LW V0, 36(S8) -BFD013E6 001640E2 BEQZC V0, 0xBFD01416 -300: { -301: /* The wait condition has already been met so there is no need to -302: block. */ -303: uxReturn = uxCurrentEventBits; -BFD013EA 0020FC5E LW V0, 32(S8) -BFD013EE 0010F85E SW V0, 16(S8) -304: xTicksToWait = ( TickType_t ) 0; -BFD013F2 0048F81E SW ZERO, 72(S8) -305: -306: /* Clear the wait bits if requested to do so. */ -307: if( xClearOnExit != pdFALSE ) -BFD013F6 0040FC5E LW V0, 64(S8) -BFD013FA 003D40E2 BEQZC V0, 0xBFD01478 -308: { -309: pxEventBits->uxEventBits &= ~uxBitsToWaitFor; -BFD013FE 0018FC5E LW V0, 24(S8) -BFD01402 69A0 LW V1, 0(V0) -BFD01404 003CFC5E LW V0, 60(S8) -BFD01408 4412 NOT16 V0, V0 -BFD0140A 449A AND16 V1, V0 -BFD0140C 0018FC5E LW V0, 24(S8) -BFD01410 E9A0 SW V1, 0(V0) -BFD01412 CC32 B 0xBFD01478 -BFD01414 0C00 NOP -310: } -311: else -312: { -313: mtCOVERAGE_TEST_MARKER(); -314: } -315: } -316: else if( xTicksToWait == ( TickType_t ) 0 ) -BFD01416 0048FC5E LW V0, 72(S8) -BFD0141A 000640A2 BNEZC V0, 0xBFD0142A -317: { -318: /* The wait condition has not been met, but no block time was -319: specified, so just return the current value. */ -320: uxReturn = uxCurrentEventBits; -BFD0141E 0020FC5E LW V0, 32(S8) -BFD01422 0010F85E SW V0, 16(S8) -BFD01426 CC28 B 0xBFD01478 -BFD01428 0C00 NOP -321: } -322: else -323: { -324: /* The task is going to block to wait for its required bits to be -325: set. uxControlBits are used to remember the specified behaviour of -326: this call to xEventGroupWaitBits() - for use when the event bits -327: unblock the task. */ -328: if( xClearOnExit != pdFALSE ) -BFD0142A 0040FC5E LW V0, 64(S8) -BFD0142E 000740E2 BEQZC V0, 0xBFD01440 -329: { -330: uxControlBits |= eventCLEAR_EVENTS_ON_EXIT_BIT; -BFD01432 0014FC7E LW V1, 20(S8) -BFD01436 010041A2 LUI V0, 0x100 -BFD0143A 44D3 OR16 V0, V1 -BFD0143C 0014F85E SW V0, 20(S8) -331: } -332: else -333: { -334: mtCOVERAGE_TEST_MARKER(); -335: } -336: -337: if( xWaitForAllBits != pdFALSE ) -BFD01440 0044FC5E LW V0, 68(S8) -BFD01444 000740E2 BEQZC V0, 0xBFD01456 -338: { -339: uxControlBits |= eventWAIT_FOR_ALL_BITS; -BFD01448 0014FC7E LW V1, 20(S8) -BFD0144C 040041A2 LUI V0, 0x400 -BFD0144E 0400 ADDU S0, S0, S0 -BFD01450 44D3 OR16 V0, V1 -BFD01452 0014F85E SW V0, 20(S8) -340: } -341: else -342: { -343: mtCOVERAGE_TEST_MARKER(); -344: } -345: -346: /* Store the bits that the calling task is waiting for in the -347: task's event list item so the kernel knows when a match is -348: found. Then enter the blocked state. */ -349: vTaskPlaceOnUnorderedEventList( &( pxEventBits->xTasksWaitingForBits ), ( uxBitsToWaitFor | uxControlBits ), xTicksToWait ); -BFD01456 0018FC5E LW V0, 24(S8) -BFD0145A 6DA2 ADDIU V1, V0, 4 -BFD0145C 003CFC9E LW A0, 60(S8) -BFD01460 0014FC5E LW V0, 20(S8) -BFD01464 44D4 OR16 V0, A0 -BFD01466 0C83 MOVE A0, V1 -BFD01468 0CA2 MOVE A1, V0 -BFD0146A 0048FCDE LW A2, 72(S8) -BFD0146E 248277E8 JALS vTaskPlaceOnUnorderedEventList -BFD01470 2482 SLL S1, S0, 1 -BFD01472 0C00 NOP -350: -351: /* This is obsolete as it will get set after the task unblocks, but -352: some compilers mistakenly generate a warning about the variable -353: being returned without being set if it is not done. */ -354: uxReturn = 0; -BFD01474 0010F81E SW ZERO, 16(S8) -355: -356: traceEVENT_GROUP_WAIT_BITS_BLOCK( xEventGroup, uxBitsToWaitFor ); -357: } -358: } -359: xAlreadyYielded = xTaskResumeAll(); -BFD01478 158E77E8 JALS xTaskResumeAll -BFD0147A 0C00158E LBU T4, 3072(T6) -BFD0147C 0C00 NOP -BFD0147E 0028F85E SW V0, 40(S8) -360: -361: if( xTicksToWait != ( TickType_t ) 0 ) -BFD01482 0048FC5E LW V0, 72(S8) -BFD01486 004C40E2 BEQZC V0, 0xBFD01522 -362: { -363: if( xAlreadyYielded == pdFALSE ) -BFD0148A 0028FC5E LW V0, 40(S8) -BFD0148E 001040A2 BNEZC V0, 0xBFD014B2 -364: { -365: portYIELD_WITHIN_API(); -BFD01492 4DE677E8 JALS ulPortGetCP0Cause -BFD01494 4DE6 ADDIU T7, T7, 3 -BFD01496 0C00 NOP -BFD01498 002CF85E SW V0, 44(S8) -BFD0149C 002CFC5E LW V0, 44(S8) -BFD014A0 01005042 ORI V0, V0, 256 -BFD014A4 002CF85E SW V0, 44(S8) -BFD014A8 002CFC9E LW A0, 44(S8) -BFD014AC 4DF677E8 JALS vPortSetCP0Cause -BFD014AE 4DF6 ADDIU T7, T7, -5 -BFD014B0 0C00 NOP -366: } -367: else -368: { -369: mtCOVERAGE_TEST_MARKER(); -370: } -371: -372: /* The task blocked to wait for its required bits to be set - at this -373: point either the required bits were set or the block time expired. If -374: the required bits were set they will have been stored in the task's -375: event list item, and they should now be retrieved then cleared. */ -376: uxReturn = uxTaskResetEventItemValue(); -BFD014B2 4C8677E8 JALS uxTaskResetEventItemValue -BFD014B4 4C86 ADDIU A0, A0, 3 -BFD014B6 0C00 NOP -BFD014B8 0010F85E SW V0, 16(S8) -377: -378: if( ( uxReturn & eventUNBLOCKED_DUE_TO_BIT_SET ) == ( EventBits_t ) 0 ) -BFD014BC 0010FC7E LW V1, 16(S8) -BFD014C0 020041A2 LUI V0, 0x200 -BFD014C4 4493 AND16 V0, V1 -BFD014C6 002640A2 BNEZC V0, 0xBFD01516 -379: { -380: taskENTER_CRITICAL(); -BFD014CA 33B877E8 JALS vTaskEnterCritical -BFD014CC 0C0033B8 ADDIU SP, T8, 3072 -BFD014CE 0C00 NOP -381: { -382: /* The task timed out, just return the current event bit value. */ -383: uxReturn = pxEventBits->uxEventBits; -BFD014D0 0018FC5E LW V0, 24(S8) -BFD014D4 6920 LW V0, 0(V0) -BFD014D6 0010F85E SW V0, 16(S8) -384: -385: /* It is possible that the event bits were updated between this -386: task leaving the Blocked state and running again. */ -387: if( prvTestWaitCondition( uxReturn, uxBitsToWaitFor, xWaitForAllBits ) != pdFALSE ) -BFD014DA 0010FC9E LW A0, 16(S8) -BFD014DE 003CFCBE LW A1, 60(S8) -BFD014E2 0044FCDE LW A2, 68(S8) -BFD014E6 407A77E8 JALS prvTestWaitCondition -BFD014E8 0C00407A BGEZAL K0, 0xBFD02CEC -BFD014EA 0C00 NOP -BFD014EC 000E40E2 BEQZC V0, 0xBFD0150C -388: { -389: if( xClearOnExit != pdFALSE ) -BFD014F0 0040FC5E LW V0, 64(S8) -BFD014F4 000A40E2 BEQZC V0, 0xBFD0150C -390: { -391: pxEventBits->uxEventBits &= ~uxBitsToWaitFor; -BFD014F8 0018FC5E LW V0, 24(S8) -BFD014FC 69A0 LW V1, 0(V0) -BFD014FE 003CFC5E LW V0, 60(S8) -BFD01502 4412 NOT16 V0, V0 -BFD01504 449A AND16 V1, V0 -BFD01506 0018FC5E LW V0, 24(S8) -BFD0150A E9A0 SW V1, 0(V0) -392: } -393: else -394: { -395: mtCOVERAGE_TEST_MARKER(); -396: } -397: } -398: else -399: { -400: mtCOVERAGE_TEST_MARKER(); -401: } -402: } -403: taskEXIT_CRITICAL(); -BFD0150C 40AA77E8 JALS vTaskExitCritical -BFD0150E 0C0040AA BNEZC T2, 0xBFD02D12 -BFD01510 0C00 NOP -404: -405: /* Prevent compiler warnings when trace macros are not used. */ -406: xTimeoutOccurred = pdFALSE; -BFD01512 001CF81E SW ZERO, 28(S8) -407: } -408: else -409: { -410: /* The task unblocked because the bits were set. */ -411: } -412: -413: /* The task blocked so control bits may have been set. */ -414: uxReturn &= ~eventEVENT_BITS_CONTROL_BYTES; -BFD01516 0010FC5E LW V0, 16(S8) -BFD0151A B82C0042 EXT V0, V0, 0, 24 -BFD0151C F85EB82C SDC1 F1, -1954(T4) -BFD0151E 0010F85E SW V0, 16(S8) -415: } -416: traceEVENT_GROUP_WAIT_BITS_END( xEventGroup, uxBitsToWaitFor, xTimeoutOccurred ); -417: -418: return uxReturn; -BFD01522 0010FC5E LW V0, 16(S8) -419: } -BFD01526 0FBE MOVE SP, S8 -BFD01528 4BED LW RA, 52(SP) -BFD0152A 4BCC LW S8, 48(SP) -BFD0152C 4C1D ADDIU SP, SP, 56 -BFD0152E 459F JR16 RA -BFD01530 0C00 NOP -420: /*-----------------------------------------------------------*/ -421: -422: EventBits_t xEventGroupClearBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) -423: { -BFD06A44 4FF1 ADDIU SP, SP, -32 -BFD06A46 CBE7 SW RA, 28(SP) -BFD06A48 CBC6 SW S8, 24(SP) -BFD06A4A 0FDD MOVE S8, SP -BFD06A4C 0020F89E SW A0, 32(S8) -BFD06A50 0024F8BE SW A1, 36(S8) -424: EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; -BFD06A54 0020FC5E LW V0, 32(S8) -BFD06A58 0010F85E SW V0, 16(S8) -425: EventBits_t uxReturn; -426: -427: /* Check the user is not attempting to clear the bits used by the kernel -428: itself. */ -429: configASSERT( xEventGroup ); -BFD06A5C 0020FC5E LW V0, 32(S8) -BFD06A60 000940A2 BNEZC V0, 0xBFD06A76 -BFD06A64 BFD141A2 LUI V0, 0xBFD1 -BFD06A66 3082BFD1 LDC1 F30, 12418(S1) -BFD06A68 9C0C3082 ADDIU A0, V0, -25588 -BFD06A6A 30A09C0C LWC1 F0, 12448(T4) -BFD06A6C 01AD30A0 ADDIU A1, ZERO, 429 -BFD06A70 4B7E77E8 JALS vAssertCalled -BFD06A72 4B7E LW K1, 120(SP) -BFD06A74 0C00 NOP -430: configASSERT( ( uxBitsToClear & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); -BFD06A76 0024FC7E LW V1, 36(S8) -BFD06A7A FF0041A2 LUI V0, 0xFF00 -BFD06A7C 4493FF00 LW T8, 17555(ZERO) -BFD06A7E 4493 AND16 V0, V1 -BFD06A80 000940E2 BEQZC V0, 0xBFD06A96 -BFD06A84 BFD141A2 LUI V0, 0xBFD1 -BFD06A86 3082BFD1 LDC1 F30, 12418(S1) -BFD06A88 9C0C3082 ADDIU A0, V0, -25588 -BFD06A8A 30A09C0C LWC1 F0, 12448(T4) -BFD06A8C 01AE30A0 ADDIU A1, ZERO, 430 -BFD06A90 4B7E77E8 JALS vAssertCalled -BFD06A92 4B7E LW K1, 120(SP) -BFD06A94 0C00 NOP -431: -432: taskENTER_CRITICAL(); -BFD06A96 33B877E8 JALS vTaskEnterCritical -BFD06A98 0C0033B8 ADDIU SP, T8, 3072 -BFD06A9A 0C00 NOP -433: { -434: traceEVENT_GROUP_CLEAR_BITS( xEventGroup, uxBitsToClear ); -435: -436: /* The value returned is the event group value prior to the bits being -437: cleared. */ -438: uxReturn = pxEventBits->uxEventBits; -BFD06A9C 0010FC5E LW V0, 16(S8) -BFD06AA0 6920 LW V0, 0(V0) -BFD06AA2 0014F85E SW V0, 20(S8) -439: -440: /* Clear the bits. */ -441: pxEventBits->uxEventBits &= ~uxBitsToClear; -BFD06AA6 0010FC5E LW V0, 16(S8) -BFD06AAA 69A0 LW V1, 0(V0) -BFD06AAC 0024FC5E LW V0, 36(S8) -BFD06AB0 4412 NOT16 V0, V0 -BFD06AB2 449A AND16 V1, V0 -BFD06AB4 0010FC5E LW V0, 16(S8) -BFD06AB8 E9A0 SW V1, 0(V0) -442: } -443: taskEXIT_CRITICAL(); -BFD06ABA 40AA77E8 JALS vTaskExitCritical -BFD06ABC 0C0040AA BNEZC T2, 0xBFD082C0 -BFD06ABE 0C00 NOP -444: -445: return uxReturn; -BFD06AC0 0014FC5E LW V0, 20(S8) -446: } -BFD06AC4 0FBE MOVE SP, S8 -BFD06AC6 4BE7 LW RA, 28(SP) -BFD06AC8 4BC6 LW S8, 24(SP) -BFD06ACA 4C11 ADDIU SP, SP, 32 -BFD06ACC 459F JR16 RA -BFD06ACE 0C00 NOP -447: /*-----------------------------------------------------------*/ -448: -449: #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) -450: -451: BaseType_t xEventGroupClearBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToClear ) -452: { -453: BaseType_t xReturn; -454: -455: traceEVENT_GROUP_CLEAR_BITS_FROM_ISR( xEventGroup, uxBitsToClear ); -456: xReturn = xTimerPendFunctionCallFromISR( vEventGroupClearBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToClear, NULL ); -457: -458: return xReturn; -459: } -460: -461: #endif -462: /*-----------------------------------------------------------*/ -463: -464: EventBits_t xEventGroupGetBitsFromISR( EventGroupHandle_t xEventGroup ) -465: { -BFD09144 4FED ADDIU SP, SP, -40 -BFD09146 CBE9 SW RA, 36(SP) -BFD09148 CBC8 SW S8, 32(SP) -BFD0914A 0FDD MOVE S8, SP -BFD0914C 0028F89E SW A0, 40(S8) -466: UBaseType_t uxSavedInterruptStatus; -467: EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; -BFD09150 0028FC5E LW V0, 40(S8) -BFD09154 0010F85E SW V0, 16(S8) -468: EventBits_t uxReturn; -469: -470: uxSavedInterruptStatus = portSET_INTERRUPT_MASK_FROM_ISR(); -BFD09158 475E77E8 JALS uxPortSetInterruptMaskFromISR -BFD0915C 0C00 NOP -BFD0915E 0014F85E SW V0, 20(S8) -471: { -472: uxReturn = pxEventBits->uxEventBits; -BFD09162 0010FC5E LW V0, 16(S8) -BFD09166 6920 LW V0, 0(V0) -BFD09168 0018F85E SW V0, 24(S8) -473: } -474: portCLEAR_INTERRUPT_MASK_FROM_ISR( uxSavedInterruptStatus ); -BFD0916C 0014FC9E LW A0, 20(S8) -BFD09170 4D5E77E8 JALS vPortClearInterruptMaskFromISR -BFD09172 4D5E ADDIU T2, T2, -1 -BFD09174 0C00 NOP -475: -476: return uxReturn; -BFD09176 0018FC5E LW V0, 24(S8) -477: } -BFD0917A 0FBE MOVE SP, S8 -BFD0917C 4BE9 LW RA, 36(SP) -BFD0917E 4BC8 LW S8, 32(SP) -BFD09180 4C15 ADDIU SP, SP, 40 -BFD09182 459F JR16 RA -BFD09184 0C00 NOP -478: /*-----------------------------------------------------------*/ -479: -480: EventBits_t xEventGroupSetBits( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet ) -481: { -BFD02568 4FE1 ADDIU SP, SP, -64 -BFD0256A CBEF SW RA, 60(SP) -BFD0256C CBCE SW S8, 56(SP) -BFD0256E 0FDD MOVE S8, SP -BFD02570 0040F89E SW A0, 64(S8) -BFD02574 0044F8BE SW A1, 68(S8) -482: ListItem_t *pxListItem, *pxNext; -483: ListItem_t const *pxListEnd; -484: List_t *pxList; -485: EventBits_t uxBitsToClear = 0, uxBitsWaitedFor, uxControlBits; -BFD02578 0014F81E SW ZERO, 20(S8) -486: EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; -BFD0257C 0040FC5E LW V0, 64(S8) -BFD02580 001CF85E SW V0, 28(S8) -487: BaseType_t xMatchFound = pdFALSE; -BFD02584 0018F81E SW ZERO, 24(S8) -488: -489: /* Check the user is not attempting to set the bits used by the kernel -490: itself. */ -491: configASSERT( xEventGroup ); -BFD02588 0040FC5E LW V0, 64(S8) -BFD0258C 000940A2 BNEZC V0, 0xBFD025A2 -BFD02590 BFD141A2 LUI V0, 0xBFD1 -BFD02592 3082BFD1 LDC1 F30, 12418(S1) -BFD02594 9C0C3082 ADDIU A0, V0, -25588 -BFD02596 30A09C0C LWC1 F0, 12448(T4) -BFD02598 01EB30A0 ADDIU A1, ZERO, 491 -BFD0259C 4B7E77E8 JALS vAssertCalled -BFD0259E 4B7E LW K1, 120(SP) -BFD025A0 0C00 NOP -492: configASSERT( ( uxBitsToSet & eventEVENT_BITS_CONTROL_BYTES ) == 0 ); -BFD025A2 0044FC7E LW V1, 68(S8) -BFD025A6 FF0041A2 LUI V0, 0xFF00 -BFD025A8 4493FF00 LW T8, 17555(ZERO) -BFD025AA 4493 AND16 V0, V1 -BFD025AC 000940E2 BEQZC V0, 0xBFD025C2 -BFD025B0 BFD141A2 LUI V0, 0xBFD1 -BFD025B2 3082BFD1 LDC1 F30, 12418(S1) -BFD025B4 9C0C3082 ADDIU A0, V0, -25588 -BFD025B6 30A09C0C LWC1 F0, 12448(T4) -BFD025B8 01EC30A0 ADDIU A1, ZERO, 492 -BFD025BC 4B7E77E8 JALS vAssertCalled -BFD025BE 4B7E LW K1, 120(SP) -BFD025C0 0C00 NOP -493: -494: pxList = &( pxEventBits->xTasksWaitingForBits ); -BFD025C2 001CFC5E LW V0, 28(S8) -BFD025C6 6D22 ADDIU V0, V0, 4 -BFD025C8 0020F85E SW V0, 32(S8) -495: pxListEnd = listGET_END_MARKER( pxList ); /*lint !e826 !e740 The mini list structure is used as the list end to save RAM. This is checked and valid. */ -BFD025CC 0020FC5E LW V0, 32(S8) -BFD025D0 6D24 ADDIU V0, V0, 8 -BFD025D2 0024F85E SW V0, 36(S8) -496: vTaskSuspendAll(); -BFD025D6 4EF477E8 JALS vTaskSuspendAll -BFD025D8 4EF4 ADDIU S7, S7, -6 -BFD025DA 0C00 NOP -497: { -498: traceEVENT_GROUP_SET_BITS( xEventGroup, uxBitsToSet ); -499: -500: pxListItem = listGET_HEAD_ENTRY( pxList ); -BFD025DC 0020FC5E LW V0, 32(S8) -BFD025E0 6923 LW V0, 12(V0) -BFD025E2 0010F85E SW V0, 16(S8) -501: -502: /* Set the bits. */ -503: pxEventBits->uxEventBits |= uxBitsToSet; -BFD025E6 001CFC5E LW V0, 28(S8) -BFD025EA 69A0 LW V1, 0(V0) -BFD025EC 0044FC5E LW V0, 68(S8) -BFD025F0 44DA OR16 V1, V0 -BFD025F2 001CFC5E LW V0, 28(S8) -BFD025F6 E9A0 SW V1, 0(V0) -504: -505: /* See if the new bit value should unblock any tasks. */ -506: while( pxListItem != pxListEnd ) -BFD025F8 CC5E B 0xBFD026B6 -BFD025FA 0C00 NOP -BFD026B6 0010FC7E LW V1, 16(S8) -BFD026BA 0024FC5E LW V0, 36(S8) -BFD026BE FF9DB443 BNE V1, V0, 0xBFD025FC -BFD026C0 0C00FF9D LW GP, 3072(SP) -BFD026C2 0C00 NOP -507: { -508: pxNext = listGET_NEXT( pxListItem ); -BFD025FC 0010FC5E LW V0, 16(S8) -BFD02600 6921 LW V0, 4(V0) -BFD02602 0028F85E SW V0, 40(S8) -509: uxBitsWaitedFor = listGET_LIST_ITEM_VALUE( pxListItem ); -BFD02606 0010FC5E LW V0, 16(S8) -BFD0260A 6920 LW V0, 0(V0) -BFD0260C 002CF85E SW V0, 44(S8) -510: xMatchFound = pdFALSE; -BFD02610 0018F81E SW ZERO, 24(S8) -511: -512: /* Split the bits waited for from the control bits. */ -513: uxControlBits = uxBitsWaitedFor & eventEVENT_BITS_CONTROL_BYTES; -BFD02614 002CFC7E LW V1, 44(S8) -BFD02618 FF0041A2 LUI V0, 0xFF00 -BFD0261A 4493FF00 LW T8, 17555(ZERO) -BFD0261C 4493 AND16 V0, V1 -BFD0261E 0030F85E SW V0, 48(S8) -514: uxBitsWaitedFor &= ~eventEVENT_BITS_CONTROL_BYTES; -BFD02622 002CFC5E LW V0, 44(S8) -BFD02626 B82C0042 EXT V0, V0, 0, 24 -BFD02628 F85EB82C SDC1 F1, -1954(T4) -BFD0262A 002CF85E SW V0, 44(S8) -515: -516: if( ( uxControlBits & eventWAIT_FOR_ALL_BITS ) == ( EventBits_t ) 0 ) -BFD0262E 0030FC7E LW V1, 48(S8) -BFD02632 040041A2 LUI V0, 0x400 -BFD02634 0400 ADDU S0, S0, S0 -BFD02636 4493 AND16 V0, V1 -BFD02638 000D40A2 BNEZC V0, 0xBFD02656 -517: { -518: /* Just looking for single bit being set. */ -519: if( ( uxBitsWaitedFor & pxEventBits->uxEventBits ) != ( EventBits_t ) 0 ) -BFD0263C 001CFC5E LW V0, 28(S8) -BFD02640 69A0 LW V1, 0(V0) -BFD02642 002CFC5E LW V0, 44(S8) -BFD02646 4493 AND16 V0, V1 -BFD02648 001340E2 BEQZC V0, 0xBFD02672 -520: { -521: xMatchFound = pdTRUE; -BFD0264C ED01 LI V0, 1 -BFD0264E 0018F85E SW V0, 24(S8) -BFD02652 CC0F B 0xBFD02672 -BFD02654 0C00 NOP -522: } -523: else -524: { -525: mtCOVERAGE_TEST_MARKER(); -526: } -527: } -528: else if( ( uxBitsWaitedFor & pxEventBits->uxEventBits ) == uxBitsWaitedFor ) -BFD02656 001CFC5E LW V0, 28(S8) -BFD0265A 69A0 LW V1, 0(V0) -BFD0265C 002CFC5E LW V0, 44(S8) -BFD02660 449A AND16 V1, V0 -BFD02662 002CFC5E LW V0, 44(S8) -BFD02666 0004B443 BNE V1, V0, 0xBFD02672 -BFD02668 0C000004 SLL ZERO, A0, 1 -BFD0266A 0C00 NOP -529: { -530: /* All bits are set. */ -531: xMatchFound = pdTRUE; -BFD0266C ED01 LI V0, 1 -BFD0266E 0018F85E SW V0, 24(S8) -532: } -533: else -534: { -535: /* Need all bits to be set, but not all the bits were set. */ -536: } -537: -538: if( xMatchFound != pdFALSE ) -BFD02672 0018FC5E LW V0, 24(S8) -BFD02676 001A40E2 BEQZC V0, 0xBFD026AE -539: { -540: /* The bits match. Should the bits be cleared on exit? */ -541: if( ( uxControlBits & eventCLEAR_EVENTS_ON_EXIT_BIT ) != ( EventBits_t ) 0 ) -BFD0267A 0030FC7E LW V1, 48(S8) -BFD0267E 010041A2 LUI V0, 0x100 -BFD02682 4493 AND16 V0, V1 -BFD02684 000740E2 BEQZC V0, 0xBFD02696 -542: { -543: uxBitsToClear |= uxBitsWaitedFor; -BFD02688 0014FC7E LW V1, 20(S8) -BFD0268C 002CFC5E LW V0, 44(S8) -BFD02690 44D3 OR16 V0, V1 -BFD02692 0014F85E SW V0, 20(S8) -544: } -545: else -546: { -547: mtCOVERAGE_TEST_MARKER(); -548: } -549: -550: /* Store the actual event flag value in the task's event list -551: item before removing the task from the event list. The -552: eventUNBLOCKED_DUE_TO_BIT_SET bit is set so the task knows -553: that is was unblocked due to its required bits matching, rather -554: than because it timed out. */ -555: ( void ) xTaskRemoveFromUnorderedEventList( pxListItem, pxEventBits->uxEventBits | eventUNBLOCKED_DUE_TO_BIT_SET ); -BFD02696 001CFC5E LW V0, 28(S8) -BFD0269A 69A0 LW V1, 0(V0) -BFD0269C 020041A2 LUI V0, 0x200 -BFD026A0 44D3 OR16 V0, V1 -BFD026A2 0010FC9E LW A0, 16(S8) -BFD026A6 0CA2 MOVE A1, V0 -BFD026A8 216277E8 JALS xTaskRemoveFromUnorderedEventList -BFD026AA 0C002162 LWC2 T3, 3072(V0) -BFD026AC 0C00 NOP -556: } -557: -558: /* Move onto the next list item. Note pxListItem->pxNext is not -559: used here as the list item may have been removed from the event list -560: and inserted into the ready/pending reading list. */ -561: pxListItem = pxNext; -BFD026AE 0028FC5E LW V0, 40(S8) -BFD026B2 0010F85E SW V0, 16(S8) -562: } -563: -564: /* Clear any bits that matched when the eventCLEAR_EVENTS_ON_EXIT_BIT -565: bit was set in the control word. */ -566: pxEventBits->uxEventBits &= ~uxBitsToClear; -BFD026C4 001CFC5E LW V0, 28(S8) -BFD026C8 69A0 LW V1, 0(V0) -BFD026CA 0014FC5E LW V0, 20(S8) -BFD026CE 4412 NOT16 V0, V0 -BFD026D0 449A AND16 V1, V0 -BFD026D2 001CFC5E LW V0, 28(S8) -BFD026D6 E9A0 SW V1, 0(V0) -567: } -568: ( void ) xTaskResumeAll(); -BFD026D8 158E77E8 JALS xTaskResumeAll -BFD026DA 0C00158E LBU T4, 3072(T6) -BFD026DC 0C00 NOP -569: -570: return pxEventBits->uxEventBits; -BFD026DE 001CFC5E LW V0, 28(S8) -BFD026E2 6920 LW V0, 0(V0) -571: } -BFD026E4 0FBE MOVE SP, S8 -BFD026E6 4BEF LW RA, 60(SP) -BFD026E8 4BCE LW S8, 56(SP) -BFD026EA 4C21 ADDIU SP, SP, 64 -BFD026EC 459F JR16 RA -BFD026EE 0C00 NOP -572: /*-----------------------------------------------------------*/ -573: -574: void vEventGroupDelete( EventGroupHandle_t xEventGroup ) -575: { -BFD06C70 4FF1 ADDIU SP, SP, -32 -BFD06C72 CBE7 SW RA, 28(SP) -BFD06C74 CBC6 SW S8, 24(SP) -BFD06C76 0FDD MOVE S8, SP -BFD06C78 0020F89E SW A0, 32(S8) -576: EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; -BFD06C7C 0020FC5E LW V0, 32(S8) -BFD06C80 0010F85E SW V0, 16(S8) -577: const List_t *pxTasksWaitingForBits = &( pxEventBits->xTasksWaitingForBits ); -BFD06C84 0010FC5E LW V0, 16(S8) -BFD06C88 6D22 ADDIU V0, V0, 4 -BFD06C8A 0014F85E SW V0, 20(S8) -578: -579: vTaskSuspendAll(); -BFD06C8E 4EF477E8 JALS vTaskSuspendAll -BFD06C90 4EF4 ADDIU S7, S7, -6 -BFD06C92 0C00 NOP -580: { -581: traceEVENT_GROUP_DELETE( xEventGroup ); -582: -583: while( listCURRENT_LIST_LENGTH( pxTasksWaitingForBits ) > ( UBaseType_t ) 0 ) -BFD06C94 CC1C B 0xBFD06CCE -BFD06C96 0C00 NOP -BFD06CCE 0014FC5E LW V0, 20(S8) -BFD06CD2 6920 LW V0, 0(V0) -BFD06CD4 FFE040A2 BNEZC V0, 0xBFD06C98 -BFD06CD6 FC9EFFE0 LW RA, -866(ZERO) -584: { -585: /* Unblock the task, returning 0 as the event list is being deleted -586: and cannot therefore have any bits set. */ -587: configASSERT( pxTasksWaitingForBits->xListEnd.pxNext != ( ListItem_t * ) &( pxTasksWaitingForBits->xListEnd ) ); -BFD06C98 0014FC5E LW V0, 20(S8) -BFD06C9C 69A3 LW V1, 12(V0) -BFD06C9E 0014FC5E LW V0, 20(S8) -BFD06CA2 6D24 ADDIU V0, V0, 8 -BFD06CA4 000AB443 BNE V1, V0, 0xBFD06CBC -BFD06CA6 0C00000A SLL ZERO, T2, 1 -BFD06CA8 0C00 NOP -BFD06CAA BFD141A2 LUI V0, 0xBFD1 -BFD06CAC 3082BFD1 LDC1 F30, 12418(S1) -BFD06CAE 9C0C3082 ADDIU A0, V0, -25588 -BFD06CB0 30A09C0C LWC1 F0, 12448(T4) -BFD06CB2 024B30A0 ADDIU A1, ZERO, 587 -BFD06CB6 4B7E77E8 JALS vAssertCalled -BFD06CB8 4B7E LW K1, 120(SP) -BFD06CBA 0C00 NOP -588: ( void ) xTaskRemoveFromUnorderedEventList( pxTasksWaitingForBits->xListEnd.pxNext, eventUNBLOCKED_DUE_TO_BIT_SET ); -BFD06CBC 0014FC5E LW V0, 20(S8) -BFD06CC0 6923 LW V0, 12(V0) -BFD06CC2 0C82 MOVE A0, V0 -BFD06CC4 020041A5 LUI A1, 0x200 -BFD06CC8 216277E8 JALS xTaskRemoveFromUnorderedEventList -BFD06CCA 0C002162 LWC2 T3, 3072(V0) -BFD06CCC 0C00 NOP -589: } -590: -591: vPortFree( pxEventBits ); -BFD06CD8 0010FC9E LW A0, 16(S8) -BFD06CDC 2FEA77E8 JALS vPortFree -BFD06CDE 2FEA ANDI A3, A2, 0x20 -BFD06CE0 0C00 NOP -592: } -593: ( void ) xTaskResumeAll(); -BFD06CE2 158E77E8 JALS xTaskResumeAll -BFD06CE4 0C00158E LBU T4, 3072(T6) -BFD06CE6 0C00 NOP -594: } -BFD06CE8 0FBE MOVE SP, S8 -BFD06CEA 4BE7 LW RA, 28(SP) -BFD06CEC 4BC6 LW S8, 24(SP) -BFD06CEE 4C11 ADDIU SP, SP, 32 -BFD06CF0 459F JR16 RA -BFD06CF2 0C00 NOP -595: /*-----------------------------------------------------------*/ -596: -597: /* For internal use only - execute a 'set bits' command that was pended from -598: an interrupt. */ -599: void vEventGroupSetBitsCallback( void *pvEventGroup, const uint32_t ulBitsToSet ) -600: { -BFD0993C 4FF5 ADDIU SP, SP, -24 -BFD0993E CBE5 SW RA, 20(SP) -BFD09940 CBC4 SW S8, 16(SP) -BFD09942 0FDD MOVE S8, SP -BFD09944 0018F89E SW A0, 24(S8) -BFD09948 001CF8BE SW A1, 28(S8) -601: ( void ) xEventGroupSetBits( pvEventGroup, ( EventBits_t ) ulBitsToSet ); -BFD0994C 0018FC9E LW A0, 24(S8) -BFD09950 001CFCBE LW A1, 28(S8) -BFD09954 12B477E8 JALS xEventGroupSetBits -BFD09956 0C0012B4 ADDI S5, S4, 3072 -BFD09958 0C00 NOP -602: } -BFD0995A 0FBE MOVE SP, S8 -BFD0995C 4BE5 LW RA, 20(SP) -BFD0995E 4BC4 LW S8, 16(SP) -BFD09960 4C0D ADDIU SP, SP, 24 -BFD09962 459F JR16 RA -BFD09964 0C00 NOP -603: /*-----------------------------------------------------------*/ -604: -605: /* For internal use only - execute a 'clear bits' command that was pended from -606: an interrupt. */ -607: void vEventGroupClearBitsCallback( void *pvEventGroup, const uint32_t ulBitsToClear ) -608: { -BFD09968 4FF5 ADDIU SP, SP, -24 -BFD0996A CBE5 SW RA, 20(SP) -BFD0996C CBC4 SW S8, 16(SP) -BFD0996E 0FDD MOVE S8, SP -BFD09970 0018F89E SW A0, 24(S8) -BFD09974 001CF8BE SW A1, 28(S8) -609: ( void ) xEventGroupClearBits( pvEventGroup, ( EventBits_t ) ulBitsToClear ); -BFD09978 0018FC9E LW A0, 24(S8) -BFD0997C 001CFCBE LW A1, 28(S8) -BFD09980 352277E8 JALS xEventGroupClearBits -BFD09982 0C003522 LHU T1, 3072(V0) -BFD09984 0C00 NOP -610: } -BFD09986 0FBE MOVE SP, S8 -BFD09988 4BE5 LW RA, 20(SP) -BFD0998A 4BC4 LW S8, 16(SP) -BFD0998C 4C0D ADDIU SP, SP, 24 -BFD0998E 459F JR16 RA -BFD09990 0C00 NOP -611: /*-----------------------------------------------------------*/ -612: -613: static BaseType_t prvTestWaitCondition( const EventBits_t uxCurrentEventBits, const EventBits_t uxBitsToWaitFor, const BaseType_t xWaitForAllBits ) -614: { -BFD080F4 4FF9 ADDIU SP, SP, -16 -BFD080F6 CBC3 SW S8, 12(SP) -BFD080F8 0FDD MOVE S8, SP -BFD080FA 0010F89E SW A0, 16(S8) -BFD080FE 0014F8BE SW A1, 20(S8) -BFD08102 0018F8DE SW A2, 24(S8) -615: BaseType_t xWaitConditionMet = pdFALSE; -BFD08106 0000F81E SW ZERO, 0(S8) -616: -617: if( xWaitForAllBits == pdFALSE ) -BFD0810A 0018FC5E LW V0, 24(S8) -BFD0810E 000C40A2 BNEZC V0, 0xBFD0812A -618: { -619: /* Task only has to wait for one bit within uxBitsToWaitFor to be -620: set. Is one already set? */ -621: if( ( uxCurrentEventBits & uxBitsToWaitFor ) != ( EventBits_t ) 0 ) -BFD08112 0010FC7E LW V1, 16(S8) -BFD08116 0014FC5E LW V0, 20(S8) -BFD0811A 4493 AND16 V0, V1 -BFD0811C 001240E2 BEQZC V0, 0xBFD08144 -622: { -623: xWaitConditionMet = pdTRUE; -BFD08120 ED01 LI V0, 1 -BFD08122 0000F85E SW V0, 0(S8) -BFD08126 CC0E B 0xBFD08144 -BFD08128 0C00 NOP -624: } -625: else -626: { -627: mtCOVERAGE_TEST_MARKER(); -628: } -629: } -630: else -631: { -632: /* Task has to wait for all the bits in uxBitsToWaitFor to be set. -633: Are they set already? */ -634: if( ( uxCurrentEventBits & uxBitsToWaitFor ) == uxBitsToWaitFor ) -BFD0812A 0010FC7E LW V1, 16(S8) -BFD0812E 0014FC5E LW V0, 20(S8) -BFD08132 449A AND16 V1, V0 -BFD08134 0014FC5E LW V0, 20(S8) -BFD08138 0004B443 BNE V1, V0, 0xBFD08144 -BFD0813A 0C000004 SLL ZERO, A0, 1 -BFD0813C 0C00 NOP -635: { -636: xWaitConditionMet = pdTRUE; -BFD0813E ED01 LI V0, 1 -BFD08140 0000F85E SW V0, 0(S8) -637: } -638: else -639: { -640: mtCOVERAGE_TEST_MARKER(); -641: } -642: } -643: -644: return xWaitConditionMet; -BFD08144 0000FC5E LW V0, 0(S8) -645: } -BFD08148 0FBE MOVE SP, S8 -BFD0814A 4BC3 LW S8, 12(SP) -BFD0814C 4C09 ADDIU SP, SP, 16 -BFD0814E 459F JR16 RA -BFD08150 0C00 NOP -646: /*-----------------------------------------------------------*/ -647: -648: #if ( ( configUSE_TRACE_FACILITY == 1 ) && ( INCLUDE_xTimerPendFunctionCall == 1 ) && ( configUSE_TIMERS == 1 ) ) -649: -650: BaseType_t xEventGroupSetBitsFromISR( EventGroupHandle_t xEventGroup, const EventBits_t uxBitsToSet, BaseType_t *pxHigherPriorityTaskWoken ) -651: { -652: BaseType_t xReturn; -653: -654: traceEVENT_GROUP_SET_BITS_FROM_ISR( xEventGroup, uxBitsToSet ); -655: xReturn = xTimerPendFunctionCallFromISR( vEventGroupSetBitsCallback, ( void * ) xEventGroup, ( uint32_t ) uxBitsToSet, pxHigherPriorityTaskWoken ); -656: -657: return xReturn; -658: } -659: -660: #endif -661: /*-----------------------------------------------------------*/ -662: -663: #if (configUSE_TRACE_FACILITY == 1) -664: -665: UBaseType_t uxEventGroupGetNumber( void* xEventGroup ) -666: { -667: UBaseType_t xReturn; -668: EventGroup_t *pxEventBits = ( EventGroup_t * ) xEventGroup; -669: -670: if( xEventGroup == NULL ) -671: { -672: xReturn = 0; -673: } -674: else -675: { -676: xReturn = pxEventBits->uxEventGroupNumber; -677: } -678: -679: return xReturn; -680: } -681: -682: #endif -683: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/startup/mplab/on_reset.c -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file on_reset.c -22: *MEC14xx XC32 M14K Startup code _on_reset handler -23: */ -24: /** @defgroup MEC14xx Startup -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_pcr.h" -33: -34: /* -35: * From linker command file -36: */ -37: extern uint32_t _ebase_address[]; -38: -39: -40: /** _on_reset - Very early HW initialization. -41: * @note XC32 startup code has initialized SP & GP. No other -42: * C features have been initialized (before .bss clear and -43: * global data init.) NOTE: MIPS M14K is still in Boot-Strap -44: * mode and EBASE has not been programmed. Any exception or -45: * interrupts will vector to the BEV Exception handler! -46: */ -47: void -48: __attribute__((nomips16)) _on_reset (void) -49: { -BFD091CC 4FB0 ADDIU SP, SP, -8 -BFD091CE CBC1 SW S8, 4(SP) -BFD091D0 0FDD MOVE S8, SP -50: /* Enable JTAG */ -51: ECS_REG->JTAG_ENABLE |= 1u; -BFD091D2 A00041A2 LUI V0, 0xA000 -BFD091D6 FC205042 ORI V0, V0, -992 -BFD091D8 41A3FC20 LW AT, 16803(ZERO) -BFD091DA A00041A3 LUI V1, 0xA000 -BFD091DE FC205063 ORI V1, V1, -992 -BFD091E0 69B0FC20 LW AT, 27056(ZERO) -BFD091E2 69B0 LW V1, 0(V1) -BFD091E4 00015063 ORI V1, V1, 1 -BFD091E8 E9A0 SW V1, 0(V0) -52: -53: /* Disable WDT */ -54: WDT->CONTROL = 0u; -BFD091EA A00041A2 LUI V0, 0xA000 -BFD091EE 04005042 ORI V0, V0, 1024 -BFD091F0 0400 ADDU S0, S0, S0 -BFD091F2 8824 SB S0, 4(V0) -55: -56: /* Set CPU clock divider specified in appcfg.h */ -57: PCR->PROC_CLOCK_CNTRL = ( PCR_CLOCK_DIVIDER ); -BFD091F4 A00841A2 LUI V0, 0xA008 -BFD091F8 01005042 ORI V0, V0, 256 -BFD091FC ED81 LI V1, 1 -BFD091FE E9A8 SW V1, 32(V0) -58: __EHB(); -BFD09200 18000000 SLL ZERO, ZERO, 3 -BFD09202 00001800 SB ZERO, 0(ZERO) -59: CPU_NOP(); -BFD09204 08000000 SSNOP -BFD09206 0800 LBU S0, 0(S0) -60: -61: } -BFD09208 0FBE MOVE SP, S8 -BFD0920A 4BC1 LW S8, 4(SP) -BFD0920C 459F JR16 RA -BFD0920E 4C05 ADDIU SP, SP, 8 -62: -63: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/startup/mplab/default-on-bootstrap.c -1: /********************************************************************* -2: * -3: * Default _on_bootstrap Implementation -4: * -5: ********************************************************************* -6: * Filename: default-on-bootstrap.c -7: * -8: * Processor: PIC32 -9: * -10: * Compiler: MPLAB C Compiler for PIC32 MCUs -11: * MPLAB IDE -12: * Company: Microchip Technology Inc. -13: * -14: * Software License Agreement -15: * -16: * The software supplied herewith by Microchip Technology Incorporated -17: * (the 'Company') for its PIC32/PIC24F Microcontroller is intended -18: * and supplied to you, the Company's customer, for use solely and -19: * exclusively on Microchip PIC32/PIC24F Microcontroller products. -20: * The software is owned by the Company and/or its supplier, and is -21: * protected under applicable copyright laws. All rights are reserved. -22: * Any use in violation of the foregoing restrictions may subject the -23: * user to criminal sanctions under applicable laws, as well as to -24: * civil liability for the breach of the terms and conditions of this -25: * license. -26: * -27: * THIS SOFTWARE IS PROVIDED IN AN "AS IS" CONDITION. NO WARRANTIES, -28: * WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, BUT NOT LIMITED -29: * TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A -30: * PARTICULAR PURPOSE APPLY TO THIS SOFTWARE. THE COMPANY SHALL NOT, -31: * IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL OR -32: * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER. -33: * -34: ********************************************************************/ -35: /* This is a default definition of an _on_bootstrap() function. -36: * It does nothing and just goes returns. If the user -37: * application supplies a handler function, this function will not be -38: * referenced and thus not pulled in from the library. -39: */ -40: void -41: _on_bootstrap (void) -42: { -BFD09EE4 4FB0 ADDIU SP, SP, -8 -BFD09EE6 CBC1 SW S8, 4(SP) -BFD09EE8 0FDD MOVE S8, SP -43: } -BFD09EEA 0FBE MOVE SP, S8 -BFD09EEC 4BC1 LW S8, 4(SP) -BFD09EEE 4C05 ADDIU SP, SP, 8 -BFD09EF0 459F JR16 RA -BFD09EF2 0C00 NOP ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/mec14xx_timers.c ------- -1: /***************************************************************************** -2: * � 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: -22: /** @file mec14xx_timers.c -23: *MEC14xx Timers -24: */ -25: /** @defgroup MEC14xx Peripherals Timers -26: * @{ -27: */ -28: -29: -30: #include "appcfg.h" -31: #include "platform.h" -32: #include "MEC14xx/mec14xx.h" -33: #include "MEC14xx/mec14xx_pcr.h" -34: #include "MEC14xx/mec14xx_timers.h" -35: -36: -37: // pairs of bytes (sleep reg, bit position) -38: // sleep reg = 0 for EC_SLEEP_EN or 1 for EC_SLEEP_EN2 -39: // -40: struct btmr_sleep_info_s { -41: uint8_t slp_reg; -42: uint8_t bit_pos; -43: }; -44: -45: static const struct btmr_sleep_info_s btmr_slp_info[BTMR_MAX_INSTANCE] = { -46: { 0, PCR_EC_TIMER0_SLP_BITPOS }, -47: { 0, PCR_EC_TIMER1_SLP_BITPOS }, -48: { 1, PCR_EC2_TIMER2_SLP_BITPOS }, -49: { 1, PCR_EC2_TIMER3_SLP_BITPOS } -50: }; -51: -52: -53: #ifdef MEC14XX_BTIMER_CHECK_ID -54: -55: /** -56: * tmr_valid - Local helper that checks if logical Timer ID is -57: * valid. -58: * -59: * @author sworley -60: * -61: * @param tmr_id 0-based Timer ID -62: * -63: * @return uint8_t Non-zero(VALID), 0(Invalid) -64: */ -65: static uint8_t btmr_valid(uint8_t tmr_id) -66: { -BFD09A44 4FB0 ADDIU SP, SP, -8 -BFD09A46 CBC1 SW S8, 4(SP) -BFD09A48 0FDD MOVE S8, SP -BFD09A4A 0C44 MOVE V0, A0 -BFD09A4C 0008185E SB V0, 8(S8) -67: if ( tmr_id < (BTMR_ID_MAX ) ) { -BFD09A50 0008145E LBU V0, 8(S8) -BFD09A54 0004B042 SLTIU V0, V0, 4 -BFD09A58 000340E2 BEQZC V0, 0xBFD09A62 -68: return true; -BFD09A5C ED01 LI V0, 1 -BFD09A5E CC02 B 0xBFD09A64 -BFD09A60 0C00 NOP -69: } -70: return false; -BFD09A62 0C40 MOVE V0, ZERO -71: } -BFD09A64 0FBE MOVE SP, S8 -BFD09A66 4BC1 LW S8, 4(SP) -BFD09A68 4C05 ADDIU SP, SP, 8 -BFD09A6A 459F JR16 RA -BFD09A6C 0C00 NOP -72: -73: #else -74: -75: /** -76: * @brief - This version of tmr_valid skips checking always -77: * returning TRUE. Compiler may optimize it out. -78: * -79: */ -80: static uint8_t btmr_valid(uint8_t tmr_id) -81: { -82: (void) tmr_id; -83: return true; -84: } -85: -86: #endif -87: -88: uint32_t btmr_get_hw_addr(uint8_t btmr_id) -89: { -BFD09A70 4FB0 ADDIU SP, SP, -8 -BFD09A72 CBC1 SW S8, 4(SP) -BFD09A74 0FDD MOVE S8, SP -BFD09A76 0C44 MOVE V0, A0 -BFD09A78 0008185E SB V0, 8(S8) -90: return (uint32_t)(BTMR0_BASE) + -BFD09A82 A00041A2 LUI V0, 0xA000 -BFD09A86 0C005042 ORI V0, V0, 3072 -BFD09A88 0C00 NOP -BFD09A8A 0526 ADDU V0, V1, V0 -91: ((uint32_t)(btmr_id) << (BTMR_INSTANCE_BITPOS)); -BFD09A7C 0008145E LBU V0, 8(S8) -BFD09A80 25AA SLL V1, V0, 5 -92: } -BFD09A8C 0FBE MOVE SP, S8 -BFD09A8E 4BC1 LW S8, 4(SP) -BFD09A90 4C05 ADDIU SP, SP, 8 -BFD09A92 459F JR16 RA -BFD09A94 0C00 NOP -93: -94: /** -95: * btmr_sleep_en - Enable/Disable clock gating on idle of a -96: * timer -97: * -98: * @author sworley (8/16/2013) -99: * -100: * @param tmr_id zero based timer ID. -101: * @param pwr_on boolean true=ON, false=OFF -102: */ -103: void btmr_sleep_en(uint8_t tmr_id, uint8_t sleep_en) -104: { -BFD05DC0 4FF1 ADDIU SP, SP, -32 -BFD05DC2 CBE7 SW RA, 28(SP) -BFD05DC4 CBC6 SW S8, 24(SP) -BFD05DC6 0FDD MOVE S8, SP -BFD05DC8 0C64 MOVE V1, A0 -BFD05DCA 0C45 MOVE V0, A1 -BFD05DCC 0020187E SB V1, 32(S8) -BFD05DD0 0024185E SB V0, 36(S8) -105: uint32_t sleep_mask; -106: uint32_t volatile * p; -107: -108: sleep_mask = 0ul; -BFD05DD4 0014F81E SW ZERO, 20(S8) -109: if ( btmr_valid(tmr_id) ) { -BFD05DD8 0020145E LBU V0, 32(S8) -BFD05DDC 0C82 MOVE A0, V0 -BFD05DDE 4D2277E8 JALS btmr_valid -BFD05DE0 4D22 ADDIU T1, T1, 1 -BFD05DE2 0C00 NOP -BFD05DE4 004040E2 BEQZC V0, 0xBFD05E68 -110: if (btmr_slp_info[tmr_id].slp_reg) { -BFD05DE8 0020147E LBU V1, 32(S8) -BFD05DEC BFD141A2 LUI V0, 0xBFD1 -BFD05DEE 25B2BFD1 LDC1 F30, 9650(S1) -BFD05DF0 25B2 SLL V1, V1, 1 -BFD05DF2 9F243042 ADDIU V0, V0, -24796 -BFD05DF4 05269F24 LWC1 F25, 1318(A0) -BFD05DF6 0526 ADDU V0, V1, V0 -BFD05DF8 0920 LBU V0, 0(V0) -BFD05DFA 000840E2 BEQZC V0, 0xBFD05E0E -111: p = (uint32_t volatile *)&(PCR->EC_SLEEP_EN2); -BFD05DFE A00841A2 LUI V0, 0xA008 -BFD05E02 01245042 ORI V0, V0, 292 -BFD05E06 0010F85E SW V0, 16(S8) -BFD05E08 CC070010 BREAK -BFD05E0A CC07 B 0xBFD05E1A -BFD05E0C 0C00 NOP -112: } else { -113: p = (uint32_t volatile *)&(PCR->EC_SLEEP_EN); -BFD05E0E A00841A2 LUI V0, 0xA008 -BFD05E12 01085042 ORI V0, V0, 264 -BFD05E16 0010F85E SW V0, 16(S8) -114: } -115: sleep_mask = (1ul << btmr_slp_info[tmr_id].bit_pos); -BFD05E1A 0020147E LBU V1, 32(S8) -BFD05E1E BFD141A2 LUI V0, 0xBFD1 -BFD05E20 25B2BFD1 LDC1 F30, 9650(S1) -BFD05E22 25B2 SLL V1, V1, 1 -BFD05E24 9F243042 ADDIU V0, V0, -24796 -BFD05E26 05269F24 LWC1 F25, 1318(A0) -BFD05E28 0526 ADDU V0, V1, V0 -BFD05E2A 0921 LBU V0, 1(V0) -BFD05E2C ED81 LI V1, 1 -BFD05E2E 10100062 SLLV V0, V0, V1 -BFD05E30 F85E1010 ADDI ZERO, S0, -1954 -BFD05E32 0014F85E SW V0, 20(S8) -116: if (sleep_en) { -BFD05E36 0024145E LBU V0, 36(S8) -BFD05E3A 000B40E2 BEQZC V0, 0xBFD05E54 -117: *p |= (sleep_mask); -BFD05E3E 0010FC5E LW V0, 16(S8) -BFD05E42 69A0 LW V1, 0(V0) -BFD05E44 0014FC5E LW V0, 20(S8) -BFD05E48 44DA OR16 V1, V0 -BFD05E4A 0010FC5E LW V0, 16(S8) -BFD05E4E E9A0 SW V1, 0(V0) -BFD05E50 CC0B B 0xBFD05E68 -BFD05E52 0C00 NOP -118: } else { -119: *p &= ~(sleep_mask); -BFD05E54 0010FC5E LW V0, 16(S8) -BFD05E58 69A0 LW V1, 0(V0) -BFD05E5A 0014FC5E LW V0, 20(S8) -BFD05E5E 4412 NOT16 V0, V0 -BFD05E60 449A AND16 V1, V0 -BFD05E62 0010FC5E LW V0, 16(S8) -BFD05E66 E9A0 SW V1, 0(V0) -120: } -121: } -122: } -BFD05E68 0FBE MOVE SP, S8 -BFD05E6A 4BE7 LW RA, 28(SP) -BFD05E6C 4BC6 LW S8, 24(SP) -BFD05E6E 4C11 ADDIU SP, SP, 32 -BFD05E70 459F JR16 RA -BFD05E72 0C00 NOP -123: -124: /** -125: * btmr_reset - Peform soft reset of specified timer. -126: * -127: * @author sworley -128: * -129: * @param tmr_id 0-based Timer ID -130: * @note Soft reset set all registers to POR values. -131: * Spins 256 times waiting on hardware to clear reset bit. -132: */ -133: void btmr_reset(uint8_t tmr_id) -134: { -BFD07988 4FF1 ADDIU SP, SP, -32 -BFD0798A CBE7 SW RA, 28(SP) -BFD0798C CBC6 SW S8, 24(SP) -BFD0798E 0FDD MOVE S8, SP -BFD07990 0C44 MOVE V0, A0 -BFD07992 0020185E SB V0, 32(S8) -135: BTMR_TypeDef * p; -136: uint32_t wait_cnt; -137: -138: if (btmr_valid(tmr_id)) { -BFD07996 0020145E LBU V0, 32(S8) -BFD0799A 0C82 MOVE A0, V0 -BFD0799C 4D2277E8 JALS btmr_valid -BFD0799E 4D22 ADDIU T1, T1, 1 -BFD079A0 0C00 NOP -BFD079A2 002540E2 BEQZC V0, 0xBFD079F0 -139: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD079A6 0020145E LBU V0, 32(S8) -BFD079AA 0C82 MOVE A0, V0 -BFD079AC 4D3877E8 JALS btmr_get_hw_addr -BFD079AE 4D38 ADDIU T1, T1, -4 -BFD079B0 0C00 NOP -BFD079B2 0014F85E SW V0, 20(S8) -140: -141: p->CONTROL = (BTMR_CNTL_SOFT_RESET); -BFD079B6 0014FC5E LW V0, 20(S8) -BFD079B8 ED900014 SUB SP, S4, ZERO -BFD079BA ED90 LI V1, 16 -BFD079BC E9A4 SW V1, 16(V0) -142: -143: wait_cnt = 256ul; -BFD079BE 01003040 ADDIU V0, ZERO, 256 -BFD079C2 0010F85E SW V0, 16(S8) -144: do { -145: if ( 0ul == (p->CONTROL & BTMR_CNTL_SOFT_RESET) ) { -BFD079C6 0014FC5E LW V0, 20(S8) -BFD079CA 6924 LW V0, 16(V0) -BFD079CC 2D28 ANDI V0, V0, 0x10 -BFD079CE 000E40E2 BEQZC V0, 0xBFD079EE -146: break; -BFD079EE 0C00 NOP -147: } -148: } -149: while ( wait_cnt-- ); -BFD079D2 0010FC5E LW V0, 16(S8) -BFD079D4 00400010 SRL ZERO, S0, 0 -BFD079D6 13900040 SLTU V0, ZERO, V0 -BFD079D8 2D2D1390 ADDI GP, S0, 11565 -BFD079DA 2D2D ANDI V0, V0, 0xFF -BFD079DC 0010FC7E LW V1, 16(S8) -BFD079E0 6DBE ADDIU V1, V1, -1 -BFD079E2 0010F87E SW V1, 16(S8) -BFD079E6 FFEE40A2 BNEZC V0, 0xBFD079C6 -BFD079E8 CC02FFEE LW RA, -13310(T6) -BFD079EA CC02 B 0xBFD079F0 -BFD079EC 0C00 NOP -150: } -151: } -BFD079F0 0FBE MOVE SP, S8 -BFD079F2 4BE7 LW RA, 28(SP) -BFD079F4 4BC6 LW S8, 24(SP) -BFD079F6 4C11 ADDIU SP, SP, 32 -BFD079F8 459F JR16 RA -BFD079FA 0C00 NOP -152: -153: /** -154: * btmr_init - Initialize specified timer -155: * @param zero based timer ID -156: * @param tmr_cntl b[15:0] = timer configuration flags. -157: * @param initial_count -158: * @param preload_count -159: * @note performs a soft reset of the timer before -160: * configuration. -161: */ -162: void btmr_init(uint8_t tmr_id, -163: uint16_t tmr_cntl, -164: uint16_t prescaler, -165: uint32_t initial_count, -166: uint32_t preload_count) -167: { -BFD056FC 4FF1 ADDIU SP, SP, -32 -BFD056FE CBE7 SW RA, 28(SP) -BFD05700 CBC6 SW S8, 24(SP) -BFD05702 0FDD MOVE S8, SP -BFD05704 0C65 MOVE V1, A1 -BFD05706 0C46 MOVE V0, A2 -BFD05708 002CF8FE SW A3, 44(S8) -BFD0570C 0020189E SB A0, 32(S8) -BFD05710 0024387E SH V1, 36(S8) -BFD05714 0028385E SH V0, 40(S8) -168: BTMR_TypeDef * pTMR; -169: -170: pTMR = NULL; -BFD05718 0010F81E SW ZERO, 16(S8) -171: -172: if (btmr_valid(tmr_id)) { -BFD0571C 0020145E LBU V0, 32(S8) -BFD05720 0C82 MOVE A0, V0 -BFD05722 4D2277E8 JALS btmr_valid -BFD05724 4D22 ADDIU T1, T1, 1 -BFD05726 0C00 NOP -BFD05728 004840E2 BEQZC V0, 0xBFD057BC -173: btmr_reset(tmr_id); -BFD0572C 0020145E LBU V0, 32(S8) -BFD05730 0C82 MOVE A0, V0 -BFD05732 3CC477E8 JALS btmr_reset -BFD05734 0C003CC4 LH A2, 3072(A0) -BFD05736 0C00 NOP -174: -175: pTMR = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD05738 0020145E LBU V0, 32(S8) -BFD0573C 0C82 MOVE A0, V0 -BFD0573E 4D3877E8 JALS btmr_get_hw_addr -BFD05740 4D38 ADDIU T1, T1, -4 -BFD05742 0C00 NOP -BFD05744 0010F85E SW V0, 16(S8) -176: -177: // Ungate timer clocks and program prescale -178: pTMR->CONTROL = ((uint32_t)prescaler << 16) + (BTMR_CNTL_ENABLE); -BFD05748 0028345E LHU V0, 40(S8) -BFD0574C 80000042 SLL V0, V0, 16 -BFD05750 6DA0 ADDIU V1, V0, 1 -BFD05752 0010FC5E LW V0, 16(S8) -BFD05756 E9A4 SW V1, 16(V0) -179: -180: // Program Preload & initial counter value -181: pTMR->PRELOAD = preload_count; -BFD05758 0010FC5E LW V0, 16(S8) -BFD0575C 0030FC7E LW V1, 48(S8) -BFD05760 E9A1 SW V1, 4(V0) -182: pTMR->COUNT = initial_count; -BFD05762 0010FC5E LW V0, 16(S8) -BFD05766 002CFC7E LW V1, 44(S8) -BFD0576A E9A0 SW V1, 0(V0) -183: -184: // Program control register, interrupt enable, and clear status -185: if (tmr_cntl & BTMR_COUNT_UP) { -BFD0576C 0024345E LHU V0, 36(S8) -BFD05770 2D24 ANDI V0, V0, 0x4 -BFD05772 000840E2 BEQZC V0, 0xBFD05786 -186: pTMR->CONTROL |= BTMR_CNTL_COUNT_UP; -BFD05776 0010FC5E LW V0, 16(S8) -BFD0577A 6924 LW V0, 16(V0) -BFD0577C 00045062 ORI V1, V0, 4 -BFD05780 0010FC5E LW V0, 16(S8) -BFD05784 E9A4 SW V1, 16(V0) -187: } -188: if (tmr_cntl & BTMR_AUTO_RESTART) { -BFD05786 0024345E LHU V0, 36(S8) -BFD0578A 2D26 ANDI V0, V0, 0x8 -BFD0578C 000840E2 BEQZC V0, 0xBFD057A0 -189: pTMR->CONTROL |= BTMR_CNTL_AUTO_RESTART; -BFD05790 0010FC5E LW V0, 16(S8) -BFD05794 6924 LW V0, 16(V0) -BFD05796 00085062 ORI V1, V0, 8 -BFD0579A 0010FC5E LW V0, 16(S8) -BFD0579E E9A4 SW V1, 16(V0) -190: } -191: -192: if (tmr_cntl & BTMR_INT_EN) { -BFD057A0 0024345E LHU V0, 36(S8) -BFD057A4 2D21 ANDI V0, V0, 0x1 -BFD057A6 2D2D ANDI V0, V0, 0xFF -BFD057A8 000840E2 BEQZC V0, 0xBFD057BC -193: pTMR->INTEN = 0x01u; // enable first -BFD057AC 0010FC5E LW V0, 16(S8) -BFD057B0 ED81 LI V1, 1 -BFD057B2 89AC SB V1, 12(V0) -194: pTMR->STATUS = 0x01u; // clear status -BFD057B4 0010FC5E LW V0, 16(S8) -BFD057B8 ED81 LI V1, 1 -BFD057BA 89A8 SB V1, 8(V0) -195: } -196: } -197: } -BFD057BC 0FBE MOVE SP, S8 -BFD057BE 4BE7 LW RA, 28(SP) -BFD057C0 4BC6 LW S8, 24(SP) -BFD057C2 4C11 ADDIU SP, SP, 32 -BFD057C4 459F JR16 RA -BFD057C6 0C00 NOP -198: -199: /** -200: * btmr_ien - Enable specified timer's interrupt. -201: * -202: * @author sworley -203: * -204: * @param tmr_id zero based timer ID. -205: * @param ien Non-zero enable interrupt in timer block, 0 -206: * disable. -207: * @note Write 0 or 1 to timer's INTEN register. -208: */ -209: void btmr_ien(uint8_t tmr_id, uint8_t ien) -210: { -BFD08330 4FF1 ADDIU SP, SP, -32 -BFD08332 CBE7 SW RA, 28(SP) -BFD08334 CBC6 SW S8, 24(SP) -BFD08336 0FDD MOVE S8, SP -BFD08338 0C64 MOVE V1, A0 -BFD0833A 0C45 MOVE V0, A1 -BFD0833C 0020187E SB V1, 32(S8) -BFD08340 0024185E SB V0, 36(S8) -211: BTMR_TypeDef * p; -212: -213: if (btmr_valid(tmr_id)) { -BFD08344 0020145E LBU V0, 32(S8) -BFD08348 0C82 MOVE A0, V0 -BFD0834A 4D2277E8 JALS btmr_valid -BFD0834C 4D22 ADDIU T1, T1, 1 -BFD0834E 0C00 NOP -BFD08350 001540E2 BEQZC V0, 0xBFD0837E -214: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD08354 0020145E LBU V0, 32(S8) -BFD08358 0C82 MOVE A0, V0 -BFD0835A 4D3877E8 JALS btmr_get_hw_addr -BFD0835C 4D38 ADDIU T1, T1, -4 -BFD0835E 0C00 NOP -BFD08360 0010F85E SW V0, 16(S8) -215: -216: if (ien) { -BFD08364 0024145E LBU V0, 36(S8) -BFD08368 000640E2 BEQZC V0, 0xBFD08378 -217: p->INTEN = (BTMR_INTEN); -BFD0836C 0010FC5E LW V0, 16(S8) -BFD08370 ED81 LI V1, 1 -BFD08372 89AC SB V1, 12(V0) -BFD08374 CC04 B 0xBFD0837E -BFD08376 0C00 NOP -218: } else { -219: p->INTEN = (BTMR_INTDIS); -BFD08378 0010FC5E LW V0, 16(S8) -BFD0837A 882C0010 EXT ZERO, S0, 0, 18 -BFD0837C 882C SB S0, 12(V0) -220: } -221: } -222: } -BFD0837E 0FBE MOVE SP, S8 -BFD08380 4BE7 LW RA, 28(SP) -BFD08382 4BC6 LW S8, 24(SP) -BFD08384 4C11 ADDIU SP, SP, 32 -BFD08386 459F JR16 RA -BFD08388 0C00 NOP -223: -224: /** -225: * tmr_get_clr_ists - Read Timer interrupt status and clear if -226: * set. -227: * -228: * @author sworley -229: * -230: * @param tmr_id zero based timer ID. -231: * -232: * @return uint8_t true (Timer interrupt status set) else false. -233: * @note If timer interrupt status is set then clear it before -234: * returning. -235: */ -236: uint8_t btmr_get_clr_ists(uint8_t tmr_id) -237: { -BFD0838C 4FF1 ADDIU SP, SP, -32 -BFD0838E CBE7 SW RA, 28(SP) -BFD08390 CBC6 SW S8, 24(SP) -BFD08392 0FDD MOVE S8, SP -BFD08394 0C44 MOVE V0, A0 -BFD08396 0020185E SB V0, 32(S8) -238: BTMR_TypeDef * p; -239: uint8_t rc; -240: -241: rc = (MEC14XX_FALSE); -BFD0839A 0010181E SB ZERO, 16(S8) -242: if (btmr_valid(tmr_id)) { -BFD0839E 0020145E LBU V0, 32(S8) -BFD083A2 0C82 MOVE A0, V0 -BFD083A4 4D2277E8 JALS btmr_valid -BFD083A6 4D22 ADDIU T1, T1, 1 -BFD083A8 0C00 NOP -BFD083AA 001540E2 BEQZC V0, 0xBFD083D8 -243: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD083AE 0020145E LBU V0, 32(S8) -BFD083B2 0C82 MOVE A0, V0 -BFD083B4 4D3877E8 JALS btmr_get_hw_addr -BFD083B6 4D38 ADDIU T1, T1, -4 -BFD083B8 0C00 NOP -BFD083BA 0014F85E SW V0, 20(S8) -244: -245: if ( p->STATUS ) { -BFD083BE 0014FC5E LW V0, 20(S8) -BFD083C2 0928 LBU V0, 8(V0) -BFD083C4 2D2D ANDI V0, V0, 0xFF -BFD083C6 000740E2 BEQZC V0, 0xBFD083D8 -246: p->STATUS = (BTMR_STATUS_ACTIVE); -BFD083CA 0014FC5E LW V0, 20(S8) -BFD083CE ED81 LI V1, 1 -BFD083D0 89A8 SB V1, 8(V0) -247: rc = true; -BFD083D2 ED01 LI V0, 1 -BFD083D4 0010185E SB V0, 16(S8) -248: } -249: } -250: return rc; -BFD083D8 0010145E LBU V0, 16(S8) -251: } -BFD083DC 0FBE MOVE SP, S8 -BFD083DE 4BE7 LW RA, 28(SP) -BFD083E0 4BC6 LW S8, 24(SP) -BFD083E2 4C11 ADDIU SP, SP, 32 -BFD083E4 459F JR16 RA -BFD083E6 0C00 NOP -252: -253: /** -254: * btmr_reload - Force timer to reload counter from preload -255: * register. -256: * -257: * @param tmr_id zero based timer ID. -258: * @note Hardware will only reload counter if timer is running. -259: */ -260: void btmr_reload(uint8_t tmr_id) -261: { -BFD086B0 4FF1 ADDIU SP, SP, -32 -BFD086B2 CBE7 SW RA, 28(SP) -BFD086B4 CBC6 SW S8, 24(SP) -BFD086B6 0FDD MOVE S8, SP -BFD086B8 0C44 MOVE V0, A0 -BFD086BA 0020185E SB V0, 32(S8) -262: BTMR_TypeDef * p; -263: -264: if ( btmr_valid(tmr_id) ) { -BFD086BE 0020145E LBU V0, 32(S8) -BFD086C2 0C82 MOVE A0, V0 -BFD086C4 4D2277E8 JALS btmr_valid -BFD086C6 4D22 ADDIU T1, T1, 1 -BFD086C8 0C00 NOP -BFD086CA 001640E2 BEQZC V0, 0xBFD086FA -265: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD086CE 0020145E LBU V0, 32(S8) -BFD086D2 0C82 MOVE A0, V0 -BFD086D4 4D3877E8 JALS btmr_get_hw_addr -BFD086D6 4D38 ADDIU T1, T1, -4 -BFD086D8 0C00 NOP -BFD086DA 0010F85E SW V0, 16(S8) -266: -267: if (p->CONTROL & BTMR_CNTL_START) { -BFD086DE 0010FC5E LW V0, 16(S8) -BFD086E2 6924 LW V0, 16(V0) -BFD086E4 2D2A ANDI V0, V0, 0x20 -BFD086E6 000840E2 BEQZC V0, 0xBFD086FA -268: p->CONTROL |= BTMR_CNTL_RELOAD; -BFD086EA 0010FC5E LW V0, 16(S8) -BFD086EE 6924 LW V0, 16(V0) -BFD086F0 00405062 ORI V1, V0, 64 -BFD086F4 0010FC5E LW V0, 16(S8) -BFD086F8 E9A4 SW V1, 16(V0) -269: } -270: } -271: } -BFD086FA 0FBE MOVE SP, S8 -BFD086FC 4BE7 LW RA, 28(SP) -BFD086FE 4BC6 LW S8, 24(SP) -BFD08700 4C11 ADDIU SP, SP, 32 -BFD08702 459F JR16 RA -BFD08704 0C00 NOP -272: -273: /** -274: * btmr_set_count - Program timer's counter register. -275: * -276: * @author sworley -277: * -278: * @param tmr_id zero based timer ID -279: * @param count new counter value -280: * @note Timer hardware may implement a 16-bit or 32-bit -281: * hardware counter. If the timer is 16-bit only the lower -282: * 16-bits of the count paramter are used. -283: */ -284: void btmr_set_count(uint8_t tmr_id, uint32_t count) -285: { -BFD090FC 4FF1 ADDIU SP, SP, -32 -BFD090FE CBE7 SW RA, 28(SP) -BFD09100 CBC6 SW S8, 24(SP) -BFD09102 0FDD MOVE S8, SP -BFD09104 0C44 MOVE V0, A0 -BFD09106 0024F8BE SW A1, 36(S8) -BFD0910A 0020185E SB V0, 32(S8) -286: BTMR_TypeDef * p; -287: -288: if (btmr_valid(tmr_id)) { -BFD0910E 0020145E LBU V0, 32(S8) -BFD09112 0C82 MOVE A0, V0 -BFD09114 4D2277E8 JALS btmr_valid -BFD09116 4D22 ADDIU T1, T1, 1 -BFD09118 0C00 NOP -BFD0911A 000D40E2 BEQZC V0, 0xBFD09138 -289: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD0911E 0020145E LBU V0, 32(S8) -BFD09122 0C82 MOVE A0, V0 -BFD09124 4D3877E8 JALS btmr_get_hw_addr -BFD09126 4D38 ADDIU T1, T1, -4 -BFD09128 0C00 NOP -BFD0912A 0010F85E SW V0, 16(S8) -290: -291: p->COUNT = count; -BFD0912E 0010FC5E LW V0, 16(S8) -BFD09132 0024FC7E LW V1, 36(S8) -BFD09136 E9A0 SW V1, 0(V0) -292: } -293: } -BFD09138 0FBE MOVE SP, S8 -BFD0913A 4BE7 LW RA, 28(SP) -BFD0913C 4BC6 LW S8, 24(SP) -BFD0913E 4C11 ADDIU SP, SP, 32 -BFD09140 459F JR16 RA -BFD09142 0C00 NOP -294: -295: /** -296: * btmr_count - Return current value of timer's count register. -297: * -298: * @author sworley -299: * -300: * @param tmr_id zero based timer ID. -301: * -302: * @return uint32_t timer count may be 32 or 16 bits depending -303: * upon the hardware. On MEC1322 Timers 0-3 are 16-bit -304: * and Timers 4-5 are 32-bit. -305: */ -306: uint32_t btmr_count(uint8_t tmr_id) -307: { -BFD08D40 4FF1 ADDIU SP, SP, -32 -BFD08D42 CBE7 SW RA, 28(SP) -BFD08D44 CBC6 SW S8, 24(SP) -BFD08D46 0FDD MOVE S8, SP -BFD08D48 0C44 MOVE V0, A0 -BFD08D4A 0020185E SB V0, 32(S8) -308: BTMR_TypeDef * p; -309: uint32_t cnt; -310: -311: cnt = 0ul; -BFD08D4E 0010F81E SW ZERO, 16(S8) -312: if ( btmr_valid(tmr_id) ) { -BFD08D52 0020145E LBU V0, 32(S8) -BFD08D56 0C82 MOVE A0, V0 -BFD08D58 4D2277E8 JALS btmr_valid -BFD08D5A 4D22 ADDIU T1, T1, 1 -BFD08D5C 0C00 NOP -BFD08D5E 000D40E2 BEQZC V0, 0xBFD08D7C -313: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD08D62 0020145E LBU V0, 32(S8) -BFD08D66 0C82 MOVE A0, V0 -BFD08D68 4D3877E8 JALS btmr_get_hw_addr -BFD08D6A 4D38 ADDIU T1, T1, -4 -BFD08D6C 0C00 NOP -BFD08D6E 0014F85E SW V0, 20(S8) -314: cnt = (uint32_t)(p->COUNT); -BFD08D72 0014FC5E LW V0, 20(S8) -BFD08D76 6920 LW V0, 0(V0) -BFD08D78 0010F85E SW V0, 16(S8) -315: } -316: -317: return cnt; -BFD08D7C 0010FC5E LW V0, 16(S8) -318: } -BFD08D80 0FBE MOVE SP, S8 -BFD08D82 4BE7 LW RA, 28(SP) -BFD08D84 4BC6 LW S8, 24(SP) -BFD08D86 4C11 ADDIU SP, SP, 32 -BFD08D88 459F JR16 RA -BFD08D8A 0C00 NOP -319: -320: /** -321: * btmr_start - Start timer counting. -322: * -323: * @author sworley -324: * -325: * @param tmr_id zero based timer ID. -326: */ -327: void btmr_start(uint8_t btmr_id) -328: { -BFD08D8C 4FF1 ADDIU SP, SP, -32 -BFD08D8E CBE7 SW RA, 28(SP) -BFD08D90 CBC6 SW S8, 24(SP) -BFD08D92 0FDD MOVE S8, SP -BFD08D94 0C44 MOVE V0, A0 -BFD08D96 0020185E SB V0, 32(S8) -329: BTMR_TypeDef * p; -330: -331: if ( btmr_valid(btmr_id) ) { -BFD08D9A 0020145E LBU V0, 32(S8) -BFD08D9E 0C82 MOVE A0, V0 -BFD08DA0 4D2277E8 JALS btmr_valid -BFD08DA2 4D22 ADDIU T1, T1, 1 -BFD08DA4 0C00 NOP -BFD08DA6 001040E2 BEQZC V0, 0xBFD08DCA -332: p = (BTMR_TypeDef *)btmr_get_hw_addr(btmr_id); -BFD08DAA 0020145E LBU V0, 32(S8) -BFD08DAE 0C82 MOVE A0, V0 -BFD08DB0 4D3877E8 JALS btmr_get_hw_addr -BFD08DB2 4D38 ADDIU T1, T1, -4 -BFD08DB4 0C00 NOP -BFD08DB6 0010F85E SW V0, 16(S8) -333: p->CONTROL |= BTMR_CNTL_START; -BFD08DBA 0010FC5E LW V0, 16(S8) -BFD08DBE 6924 LW V0, 16(V0) -BFD08DC0 00205062 ORI V1, V0, 32 -BFD08DC4 0010FC5E LW V0, 16(S8) -BFD08DC8 E9A4 SW V1, 16(V0) -334: } -335: } -BFD08DCA 0FBE MOVE SP, S8 -BFD08DCC 4BE7 LW RA, 28(SP) -BFD08DCE 4BC6 LW S8, 24(SP) -BFD08DD0 4C11 ADDIU SP, SP, 32 -BFD08DD2 459F JR16 RA -BFD08DD4 0C00 NOP -336: -337: /** -338: * btmr_stop - Stop timer. -339: * -340: * @author sworley -341: * -342: * @param tmr_id zero based timer ID. -343: * @note When a stopped timer is started again it will reload -344: * the count register from preload value. -345: */ -346: void btmr_stop(uint8_t tmr_id) -347: { -BFD08DD8 4FF1 ADDIU SP, SP, -32 -BFD08DDA CBE7 SW RA, 28(SP) -BFD08DDC CBC6 SW S8, 24(SP) -BFD08DDE 0FDD MOVE S8, SP -BFD08DE0 0C44 MOVE V0, A0 -BFD08DE2 0020185E SB V0, 32(S8) -348: BTMR_TypeDef * p; -349: -350: if (btmr_valid(tmr_id)) { -BFD08DE6 0020145E LBU V0, 32(S8) -BFD08DEA 0C82 MOVE A0, V0 -BFD08DEC 4D2277E8 JALS btmr_valid -BFD08DEE 4D22 ADDIU T1, T1, 1 -BFD08DF0 0C00 NOP -BFD08DF2 001140E2 BEQZC V0, 0xBFD08E18 -351: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD08DF6 0020145E LBU V0, 32(S8) -BFD08DFA 0C82 MOVE A0, V0 -BFD08DFC 4D3877E8 JALS btmr_get_hw_addr -BFD08DFE 4D38 ADDIU T1, T1, -4 -BFD08E00 0C00 NOP -BFD08E02 0010F85E SW V0, 16(S8) -352: p->CONTROL &= ~(BTMR_CNTL_START); -BFD08E06 0010FC5E LW V0, 16(S8) -BFD08E0A 69A4 LW V1, 16(V0) -BFD08E0C FFDF3040 ADDIU V0, ZERO, -33 -BFD08E0E 449AFFDF LW S8, 17562(RA) -BFD08E10 449A AND16 V1, V0 -BFD08E12 0010FC5E LW V0, 16(S8) -BFD08E16 E9A4 SW V1, 16(V0) -353: } -354: } -BFD08E18 0FBE MOVE SP, S8 -BFD08E1A 4BE7 LW RA, 28(SP) -BFD08E1C 4BC6 LW S8, 24(SP) -BFD08E1E 4C11 ADDIU SP, SP, 32 -BFD08E20 459F JR16 RA -BFD08E22 0C00 NOP -355: -356: /** -357: * btmr_is_stopped - Return state of timer's START bit. -358: * -359: * @author sworley -360: * -361: * @param tmr_id zero based timer ID. -362: * -363: * @return uint8_t false(timer not started), true(timer started) -364: */ -365: uint8_t btmr_is_stopped(uint8_t tmr_id) -366: { -BFD083E8 4FF1 ADDIU SP, SP, -32 -BFD083EA CBE7 SW RA, 28(SP) -BFD083EC CBC6 SW S8, 24(SP) -BFD083EE 0FDD MOVE S8, SP -BFD083F0 0C44 MOVE V0, A0 -BFD083F2 0020185E SB V0, 32(S8) -367: BTMR_TypeDef * p; -368: uint8_t rc; -369: -370: rc = (MEC14XX_TRUE); -BFD083F6 ED01 LI V0, 1 -BFD083F8 0010185E SB V0, 16(S8) -371: if (btmr_valid(tmr_id)) { -BFD083FC 0020145E LBU V0, 32(S8) -BFD08400 0C82 MOVE A0, V0 -BFD08402 4D2277E8 JALS btmr_valid -BFD08404 4D22 ADDIU T1, T1, 1 -BFD08406 0C00 NOP -BFD08408 001340E2 BEQZC V0, 0xBFD08432 -372: rc = (MEC14XX_FALSE); -BFD0840C 0010181E SB ZERO, 16(S8) -373: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD08410 0020145E LBU V0, 32(S8) -BFD08414 0C82 MOVE A0, V0 -BFD08416 4D3877E8 JALS btmr_get_hw_addr -BFD08418 4D38 ADDIU T1, T1, -4 -BFD0841A 0C00 NOP -BFD0841C 0014F85E SW V0, 20(S8) -374: if ((p->CONTROL & BTMR_CNTL_START) == 0) { -BFD08420 0014FC5E LW V0, 20(S8) -BFD08424 6924 LW V0, 16(V0) -BFD08426 2D2A ANDI V0, V0, 0x20 -BFD08428 000340A2 BNEZC V0, 0xBFD08432 -375: rc = (MEC14XX_TRUE); -BFD0842C ED01 LI V0, 1 -BFD0842E 0010185E SB V0, 16(S8) -376: } -377: } -378: return rc; -BFD08432 0010145E LBU V0, 16(S8) -379: } -BFD08436 0FBE MOVE SP, S8 -BFD08438 4BE7 LW RA, 28(SP) -BFD0843A 4BC6 LW S8, 24(SP) -BFD0843C 4C11 ADDIU SP, SP, 32 -BFD0843E 459F JR16 RA -BFD08440 0C00 NOP -380: -381: -382: /** -383: * btmr_halt - Halt timer counting with no reload on unhalt. -384: * -385: * @author sworley -386: * -387: * @param tmr_id zero based timer ID. -388: * @note A halted timer will not reload the count register when -389: * unhalted, it will continue counting from the current -390: * count value. -391: */ -392: void btmr_halt(uint8_t tmr_id) -393: { -BFD08E24 4FF1 ADDIU SP, SP, -32 -BFD08E26 CBE7 SW RA, 28(SP) -BFD08E28 CBC6 SW S8, 24(SP) -BFD08E2A 0FDD MOVE S8, SP -BFD08E2C 0C44 MOVE V0, A0 -BFD08E2E 0020185E SB V0, 32(S8) -394: BTMR_TypeDef * p; -395: -396: if ( btmr_valid(tmr_id) ) { -BFD08E32 0020145E LBU V0, 32(S8) -BFD08E36 0C82 MOVE A0, V0 -BFD08E38 4D2277E8 JALS btmr_valid -BFD08E3A 4D22 ADDIU T1, T1, 1 -BFD08E3C 0C00 NOP -BFD08E3E 001040E2 BEQZC V0, 0xBFD08E62 -397: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD08E42 0020145E LBU V0, 32(S8) -BFD08E46 0C82 MOVE A0, V0 -BFD08E48 4D3877E8 JALS btmr_get_hw_addr -BFD08E4A 4D38 ADDIU T1, T1, -4 -BFD08E4C 0C00 NOP -BFD08E4E 0010F85E SW V0, 16(S8) -398: p->CONTROL |= (BTMR_CNTL_HALT); -BFD08E52 0010FC5E LW V0, 16(S8) -BFD08E56 6924 LW V0, 16(V0) -BFD08E58 00805062 ORI V1, V0, 128 -BFD08E5C 0010FC5E LW V0, 16(S8) -BFD08E60 E9A4 SW V1, 16(V0) -399: } -400: } -BFD08E62 0FBE MOVE SP, S8 -BFD08E64 4BE7 LW RA, 28(SP) -BFD08E66 4BC6 LW S8, 24(SP) -BFD08E68 4C11 ADDIU SP, SP, 32 -BFD08E6A 459F JR16 RA -BFD08E6C 0C00 NOP -401: -402: -403: /** -404: * btmr_unhalt - Unhalt timer counting. -405: * -406: * @author sworley -407: * -408: * @param tmr_id zero based timer ID. -409: */ -410: void btmr_unhalt(uint8_t tmr_id) -411: { -BFD08E70 4FF1 ADDIU SP, SP, -32 -BFD08E72 CBE7 SW RA, 28(SP) -BFD08E74 CBC6 SW S8, 24(SP) -BFD08E76 0FDD MOVE S8, SP -BFD08E78 0C44 MOVE V0, A0 -BFD08E7A 0020185E SB V0, 32(S8) -412: BTMR_TypeDef * p; -413: -414: if ( btmr_valid(tmr_id) ) { -BFD08E7E 0020145E LBU V0, 32(S8) -BFD08E82 0C82 MOVE A0, V0 -BFD08E84 4D2277E8 JALS btmr_valid -BFD08E86 4D22 ADDIU T1, T1, 1 -BFD08E88 0C00 NOP -BFD08E8A 001140E2 BEQZC V0, 0xBFD08EB0 -415: p = (BTMR_TypeDef *)btmr_get_hw_addr(tmr_id); -BFD08E8E 0020145E LBU V0, 32(S8) -BFD08E92 0C82 MOVE A0, V0 -BFD08E94 4D3877E8 JALS btmr_get_hw_addr -BFD08E96 4D38 ADDIU T1, T1, -4 -BFD08E98 0C00 NOP -BFD08E9A 0010F85E SW V0, 16(S8) -416: p->CONTROL &= ~(BTMR_CNTL_HALT); -BFD08E9E 0010FC5E LW V0, 16(S8) -BFD08EA2 69A4 LW V1, 16(V0) -BFD08EA4 FF7F3040 ADDIU V0, ZERO, -129 -BFD08EA6 449AFF7F LW K1, 17562(RA) -BFD08EA8 449A AND16 V1, V0 -BFD08EAA 0010FC5E LW V0, 16(S8) -BFD08EAE E9A4 SW V1, 16(V0) -417: } -418: } -BFD08EB0 0FBE MOVE SP, S8 -BFD08EB2 4BE7 LW RA, 28(SP) -BFD08EB4 4BC6 LW S8, 24(SP) -BFD08EB6 4C11 ADDIU SP, SP, 32 -BFD08EB8 459F JR16 RA -BFD08EBA 0C00 NOP -419: -420: -421: /* end mec14xx_timers.c */ -422: /** @} -423: */ ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/mec14xx_tfdp.c --------- -1: /***************************************************************************** -2: * � 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file mec14xx_tfdp.c -22: *MEC14xx Trace FIFO Data Port hardware access -23: */ -24: /** @defgroup MEC14xx Peripherals TFDP -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_pcr.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #ifdef ENABLE_TFDP_TRACE -37: -38: #undef TFDP_PIN_1 -39: #undef TFDP_PIN_2 -40: -41: -42: #define TFDP_PIN_1 (GPIO_0116_ID) // Func1 PullUp enabled -43: #define TFDP_PIN_2 (GPIO_0117_ID) // Func1 PullUp enabled -44: -45: -46: -47: static void tfdp_xmit_header(uint16_t nbr) -48: { -BFD0906C 4FB0 ADDIU SP, SP, -8 -BFD0906E CBC1 SW S8, 4(SP) -BFD09070 0FDD MOVE S8, SP -BFD09072 0C44 MOVE V0, A0 -BFD09074 0008385E SH V0, 8(S8) -49: TFDP->DATA = TFDP_FRAME_START; -BFD09078 A00041A2 LUI V0, 0xA000 -BFD0907C 8C005042 ORI V0, V0, -29696 -BFD0907E 8C00 BEQZ S0, 0xBFD09080 -BFD09080 FFFD3060 ADDIU V1, ZERO, -3 -BFD09082 89A0FFFD LW RA, -30304(SP) -BFD09084 89A0 SB V1, 0(V0) -50: TFDP_DELAY(); -51: -52: TFDP->DATA = (uint8_t)nbr; -BFD09086 A00041A2 LUI V0, 0xA000 -BFD0908A 8C005042 ORI V0, V0, -29696 -BFD0908C 8C00 BEQZ S0, 0xBFD0908E -BFD0908E 0008347E LHU V1, 8(S8) -BFD09092 2DBD ANDI V1, V1, 0xFF -BFD09094 89A0 SB V1, 0(V0) -53: TFDP_DELAY(); -54: TFDP->DATA = (uint8_t)(nbr >> 8); -BFD09096 A00041A2 LUI V0, 0xA000 -BFD0909A 8C005042 ORI V0, V0, -29696 -BFD0909C 8C00 BEQZ S0, 0xBFD0909E -BFD0909E 0008347E LHU V1, 8(S8) -BFD090A2 25B1 SRL V1, V1, 8 -BFD090A4 2DBF ANDI V1, V1, 0xFFFF -BFD090A6 2DBD ANDI V1, V1, 0xFF -BFD090A8 89A0 SB V1, 0(V0) -55: TFDP_DELAY(); -56: } -BFD090AA 0FBE MOVE SP, S8 -BFD090AC 4BC1 LW S8, 4(SP) -BFD090AE 4C05 ADDIU SP, SP, 8 -BFD090B0 459F JR16 RA -BFD090B2 0C00 NOP -57: -58: -59: static void tfdp_xmit_hword(uint16_t hword) -60: { -BFD09648 4FB0 ADDIU SP, SP, -8 -BFD0964A CBC1 SW S8, 4(SP) -BFD0964C 0FDD MOVE S8, SP -BFD0964E 0C44 MOVE V0, A0 -BFD09650 0008385E SH V0, 8(S8) -61: TFDP->DATA = (uint8_t)hword; -BFD09654 A00041A2 LUI V0, 0xA000 -BFD09658 8C005042 ORI V0, V0, -29696 -BFD0965A 8C00 BEQZ S0, 0xBFD0965C -BFD0965C 0008347E LHU V1, 8(S8) -BFD09660 2DBD ANDI V1, V1, 0xFF -BFD09662 89A0 SB V1, 0(V0) -62: TFDP_DELAY(); -63: TFDP->DATA = (uint8_t)(hword >> 8); -BFD09664 A00041A2 LUI V0, 0xA000 -BFD09668 8C005042 ORI V0, V0, -29696 -BFD0966A 8C00 BEQZ S0, 0xBFD0966C -BFD0966C 0008347E LHU V1, 8(S8) -BFD09670 25B1 SRL V1, V1, 8 -BFD09672 2DBF ANDI V1, V1, 0xFFFF -BFD09674 2DBD ANDI V1, V1, 0xFF -BFD09676 89A0 SB V1, 0(V0) -64: TFDP_DELAY(); -65: } -BFD09678 0FBE MOVE SP, S8 -BFD0967A 4BC1 LW S8, 4(SP) -BFD0967C 4C05 ADDIU SP, SP, 8 -BFD0967E 459F JR16 RA -BFD09680 0C00 NOP -66: -67: -68: static void tfdp_xmit_word(uint32_t word) -69: { -BFD08CF4 4FF9 ADDIU SP, SP, -16 -BFD08CF6 CBC3 SW S8, 12(SP) -BFD08CF8 0FDD MOVE S8, SP -BFD08CFA 0010F89E SW A0, 16(S8) -70: uint8_t i; -71: -72: for (i = 0u; i < 4; i++) { -BFD08CFE 0000181E SB ZERO, 0(S8) -BFD08D02 CC13 B 0xBFD08D2A -BFD08D04 0C00 NOP -BFD08D20 0000145E LBU V0, 0(S8) -BFD08D24 6D20 ADDIU V0, V0, 1 -BFD08D26 0000185E SB V0, 0(S8) -BFD08D2A 0000145E LBU V0, 0(S8) -BFD08D2E 0004B042 SLTIU V0, V0, 4 -BFD08D32 FFE840A2 BNEZC V0, 0xBFD08D06 -BFD08D34 0FBEFFE8 LW RA, 4030(T0) -73: TFDP->DATA = (uint8_t)word; -BFD08D06 A00041A2 LUI V0, 0xA000 -BFD08D0A 8C005042 ORI V0, V0, -29696 -BFD08D0C 8C00 BEQZ S0, 0xBFD08D0E -BFD08D0E 0010FC7E LW V1, 16(S8) -BFD08D12 2DBD ANDI V1, V1, 0xFF -BFD08D14 89A0 SB V1, 0(V0) -74: word >>= 8; -BFD08D16 0010FC5E LW V0, 16(S8) -BFD08D1A 2521 SRL V0, V0, 8 -BFD08D1C 0010F85E SW V0, 16(S8) -75: TFDP_DELAY(); -76: } -77: } -BFD08D36 0FBE MOVE SP, S8 -BFD08D38 4BC3 LW S8, 12(SP) -BFD08D3A 4C09 ADDIU SP, SP, 16 -BFD08D3C 459F JR16 RA -BFD08D3E 0C00 NOP -78: -79: -80: /** -81: * tfdp_sleep_en - Gate clocks On/Off to TFDP block when idle -82: * -83: * @author C21969 (2/4/2014) -84: * -85: * @param sleep_en (1=Gate clocks when idle), (0=Do not gate -86: * clocks when idle) -87: */ -88: void tfdp_sleep_en(uint8_t sleep_en) -89: { -BFD088AC 4FB0 ADDIU SP, SP, -8 -BFD088AE CBC1 SW S8, 4(SP) -BFD088B0 0FDD MOVE S8, SP -BFD088B2 0C44 MOVE V0, A0 -BFD088B4 0008185E SB V0, 8(S8) -90: if ( sleep_en ) { -BFD088B8 0008145E LBU V0, 8(S8) -BFD088BC 000E40E2 BEQZC V0, 0xBFD088DC -91: PCR->EC_SLEEP_EN |= (PCR_EC_TFDP_SLP_CLK); -BFD088C0 A00841A2 LUI V0, 0xA008 -BFD088C4 01005042 ORI V0, V0, 256 -BFD088C8 A00841A3 LUI V1, 0xA008 -BFD088CC 01005063 ORI V1, V1, 256 -BFD088D0 69B2 LW V1, 8(V1) -BFD088D2 00805063 ORI V1, V1, 128 -BFD088D6 E9A2 SW V1, 8(V0) -BFD088D8 CC0E B 0xBFD088F6 -BFD088DA 0C00 NOP -92: } else { -93: PCR->EC_SLEEP_EN &= ~(PCR_EC_TFDP_SLP_CLK); -BFD088DC A00841A2 LUI V0, 0xA008 -BFD088E0 01005042 ORI V0, V0, 256 -BFD088E4 A00841A3 LUI V1, 0xA008 -BFD088E8 01005063 ORI V1, V1, 256 -BFD088EC 6A32 LW A0, 8(V1) -BFD088EE FF7F3060 ADDIU V1, ZERO, -129 -BFD088F0 449CFF7F LW K1, 17564(RA) -BFD088F2 449C AND16 V1, A0 -BFD088F4 E9A2 SW V1, 8(V0) -94: } -95: } -BFD088F6 0FBE MOVE SP, S8 -BFD088F8 4BC1 LW S8, 4(SP) -BFD088FA 4C05 ADDIU SP, SP, 8 -BFD088FC 459F JR16 RA -BFD088FE 0C00 NOP -96: -97: -98: /** -99: * tfdp_enable - Init Trace FIFO Data Port -100: * @param boolean true=enable TFDP, false=disable TFDP -101: * @param boolean true=change TFDP pin configuration. -102: * If TFDP is enabled then GPIO103/104 set to Alt. Func. 1 -103: * Else GPIO103/104 set to GPIO input, internal PU enabled. -104: * @note - -105: */ -106: void tfdp_enable(uint8_t en, uint8_t pin_cfg) -107: { -BFD032C4 4FF9 ADDIU SP, SP, -16 -BFD032C6 CBC3 SW S8, 12(SP) -BFD032C8 0FDD MOVE S8, SP -BFD032CA 0C64 MOVE V1, A0 -BFD032CC 0C45 MOVE V0, A1 -BFD032CE 0010187E SB V1, 16(S8) -BFD032D2 0014185E SB V0, 20(S8) -108: uint32_t delay; -109: -110: if (en) { -BFD032D6 0010145E LBU V0, 16(S8) -BFD032DA 007240E2 BEQZC V0, 0xBFD033C2 -111: -112: if (pin_cfg) { -BFD032DE 0014145E LBU V0, 20(S8) -BFD032E2 006740E2 BEQZC V0, 0xBFD033B4 -113: // Input with AltOut=1 to drive high when switched to output -114: GPIO_CTRL->REG[TFDP_PIN_1].w = (1ul << 16); -BFD032E6 A00841A2 LUI V0, 0xA008 -BFD032EA 10005042 ORI V0, V0, 4096 -BFD032EC 41A31000 ADDI ZERO, ZERO, 16803 -BFD032EE 000141A3 LUI V1, 0x1 -BFD032F2 0138F862 SW V1, 312(V0) -115: GPIO_CTRL->REG[TFDP_PIN_2].w = (1ul << 16); -BFD032F6 A00841A2 LUI V0, 0xA008 -BFD032FA 10005042 ORI V0, V0, 4096 -BFD032FC 41A31000 ADDI ZERO, ZERO, 16803 -BFD032FE 000141A3 LUI V1, 0x1 -BFD03302 013CF862 SW V1, 316(V0) -BFD03304 3040013C SRL T1, GP, 6 -116: -117: delay = 128; -BFD03306 00803040 ADDIU V0, ZERO, 128 -BFD0330A 0000F85E SW V0, 0(S8) -118: while ( delay-- ) -BFD0330E CC03 B 0xBFD03316 -BFD03310 0C00 NOP -BFD03316 0000FC5E LW V0, 0(S8) -BFD03318 00400000 SRL ZERO, ZERO, 0 -BFD0331A 13900040 SLTU V0, ZERO, V0 -BFD0331C 2D2D1390 ADDI GP, S0, 11565 -BFD0331E 2D2D ANDI V0, V0, 0xFF -BFD03320 0000FC7E LW V1, 0(S8) -BFD03324 6DBE ADDIU V1, V1, -1 -BFD03326 0000F87E SW V1, 0(S8) -BFD0332A FFF240A2 BNEZC V0, 0xBFD03312 -BFD0332C 41A2FFF2 LW RA, 16802(S2) -119: { -120: CPU_NOP(); -BFD03312 08000000 SSNOP -BFD03314 0800 LBU S0, 0(S0) -121: } -122: -123: // GPIO Output enabled (drive based on above settings) -124: GPIO_CTRL->REG[TFDP_PIN_1].w |= (1ul << 9); -BFD0332E A00841A2 LUI V0, 0xA008 -BFD03332 10005042 ORI V0, V0, 4096 -BFD03334 41A31000 ADDI ZERO, ZERO, 16803 -BFD03336 A00841A3 LUI V1, 0xA008 -BFD0333A 10005063 ORI V1, V1, 4096 -BFD0333C FC631000 ADDI ZERO, ZERO, -925 -BFD0333E 0138FC63 LW V1, 312(V1) -BFD03342 02005063 ORI V1, V1, 512 -BFD03346 0138F862 SW V1, 312(V0) -125: GPIO_CTRL->REG[TFDP_PIN_2].w |= (1ul << 9); -BFD0334A A00841A2 LUI V0, 0xA008 -BFD0334E 10005042 ORI V0, V0, 4096 -BFD03350 41A31000 ADDI ZERO, ZERO, 16803 -BFD03352 A00841A3 LUI V1, 0xA008 -BFD03356 10005063 ORI V1, V1, 4096 -BFD03358 FC631000 ADDI ZERO, ZERO, -925 -BFD0335A 013CFC63 LW V1, 316(V1) -BFD0335E 02005063 ORI V1, V1, 512 -BFD03362 013CF862 SW V1, 316(V0) -BFD03364 3040013C SRL T1, GP, 6 -126: -127: delay = 128; -BFD03366 00803040 ADDIU V0, ZERO, 128 -128: while ( delay-- ) -BFD0336A CC04 B 0xBFD03374 -BFD0336C 0000F85E SW V0, 0(S8) -BFD0336E 00000000 NOP -BFD03374 0000FC5E LW V0, 0(S8) -BFD03376 00400000 SRL ZERO, ZERO, 0 -BFD03378 13900040 SLTU V0, ZERO, V0 -BFD0337A 2D2D1390 ADDI GP, S0, 11565 -BFD0337C 2D2D ANDI V0, V0, 0xFF -BFD0337E 0000FC7E LW V1, 0(S8) -BFD03382 6DBE ADDIU V1, V1, -1 -BFD03384 0000F87E SW V1, 0(S8) -BFD03388 FFF240A2 BNEZC V0, 0xBFD03370 -BFD0338A 41A2FFF2 LW RA, 16802(S2) -129: { -130: CPU_NOP(); -BFD03370 08000000 SSNOP -BFD03372 0800 LBU S0, 0(S0) -131: } -132: -133: // Switch to Function 1 (TFDP mode b[13:12]=01b) -134: GPIO_CTRL->REG[TFDP_PIN_1].w = (1ul << 16) + (1ul << 12); -BFD0338C A00841A2 LUI V0, 0xA008 -BFD03390 10005042 ORI V0, V0, 4096 -BFD03392 41A31000 ADDI ZERO, ZERO, 16803 -BFD03394 000141A3 LUI V1, 0x1 -BFD03398 10005063 ORI V1, V1, 4096 -BFD0339A F8621000 ADDI ZERO, ZERO, -1950 -BFD0339C 0138F862 SW V1, 312(V0) -135: GPIO_CTRL->REG[TFDP_PIN_2].w = (1ul << 16) + (1ul << 12); -BFD033A0 A00841A2 LUI V0, 0xA008 -BFD033A4 10005042 ORI V0, V0, 4096 -BFD033A6 41A31000 ADDI ZERO, ZERO, 16803 -BFD033A8 000141A3 LUI V1, 0x1 -BFD033AC 10005063 ORI V1, V1, 4096 -BFD033AE F8621000 ADDI ZERO, ZERO, -1950 -BFD033B0 013CF862 SW V1, 316(V0) -136: -137: } -138: /* b[0]=1(Enable) -139: * b[1]=0(Shift data out on rising edge) -140: * b[3:2]=00b TFDP shift clocks = AHB_CLK/2 -141: * b[6:4]=000b 1 clock inter-packet delay -142: */ -143: TFDP->CONTROL = 0x01u; -BFD033B4 A00041A2 LUI V0, 0xA000 -BFD033B8 8C005042 ORI V0, V0, -29696 -BFD033BA 8C00 BEQZ S0, 0xBFD033BC -BFD033BC ED81 LI V1, 1 -BFD033BE CC16 B 0xBFD033EC -BFD033C0 89A4 SB V1, 4(V0) -144: -145: } -146: else -147: { -148: TFDP->CONTROL = 0x00u; -BFD033C2 A00041A2 LUI V0, 0xA000 -BFD033C6 8C005042 ORI V0, V0, -29696 -BFD033C8 8C00 BEQZ S0, 0xBFD033CA -BFD033CA 8824 SB S0, 4(V0) -149: if (pin_cfg) -BFD033CC 0014145E LBU V0, 20(S8) -BFD033D0 000C40E2 BEQZC V0, 0xBFD033EC -150: { /* Set to POR value (tri-stated input) */ -151: GPIO_CTRL->REG[TFDP_PIN_1].w = 0; -BFD033D4 A00841A2 LUI V0, 0xA008 -BFD033D8 10005042 ORI V0, V0, 4096 -BFD033DA F8021000 ADDI ZERO, ZERO, -2046 -BFD033DC 0138F802 SW ZERO, 312(V0) -152: GPIO_CTRL->REG[TFDP_PIN_2].w = 0; -BFD033E0 A00841A2 LUI V0, 0xA008 -BFD033E4 10005042 ORI V0, V0, 4096 -BFD033E6 F8021000 ADDI ZERO, ZERO, -2046 -BFD033E8 013CF802 SW ZERO, 316(V0) -153: } -154: } -155: } // end tfdp_enable() -BFD033EC 0FBE MOVE SP, S8 -BFD033EE 4BC3 LW S8, 12(SP) -BFD033F0 459F JR16 RA -BFD033F2 4C09 ADDIU SP, SP, 16 -156: -157: -158: /** -159: * TFDPTrace0 - TRACE0: transmit 16-bit trace number lsb first -160: * over TFDP. -161: * -162: * @author sworley -163: * -164: * @param nbr 16-bit trace number -165: * @param b unused -166: * -167: * @return uint8_t always TRUE -168: * @note Function implements critical section. -169: * Uses tool kit __disable_irq()/__enable_irq() pair which may use -170: * priviledged Cortex-Mx instructions. -171: */ -172: void TFDPTrace0 ( uint16_t nbr, uint8_t b ) -173: { -BFD09A18 4FF5 ADDIU SP, SP, -24 -BFD09A1A CBE5 SW RA, 20(SP) -BFD09A1C CBC4 SW S8, 16(SP) -BFD09A1E 0FDD MOVE S8, SP -BFD09A20 0C64 MOVE V1, A0 -BFD09A22 0C45 MOVE V0, A1 -BFD09A24 0018387E SH V1, 24(S8) -BFD09A28 001C185E SB V0, 28(S8) -174: #ifdef ENABLE_TRACE_MASK_IRQ -175: uint32_t isave; -176: -177: isave = mips32r2_dis_intr(); -178: #endif -179: -180: (void)b; -181: tfdp_xmit_header(nbr); -BFD09A2C 0018345E LHU V0, 24(S8) -BFD09A30 0C82 MOVE A0, V0 -BFD09A32 483677E8 JALS tfdp_xmit_header -BFD09A34 4836 LW AT, 88(SP) -BFD09A36 0C00 NOP -182: -183: #ifdef ENABLE_TRACE_MASK_IRQ -184: mips32r2_restore_intr(isave); -185: #endif -186: } -BFD09A38 0FBE MOVE SP, S8 -BFD09A3A 4BE5 LW RA, 20(SP) -BFD09A3C 4BC4 LW S8, 16(SP) -BFD09A3E 4C0D ADDIU SP, SP, 24 -BFD09A40 459F JR16 RA -BFD09A42 0C00 NOP -187: -188: -189: /** -190: * TRDPTrace1 - TRACE1: transmit 16-bit trace number lsb first -191: * and 16-bit data lsb first over TFDP. -192: * -193: * @author sworley -194: * -195: * @param nbr 16-bit trace number -196: * @param b unused -197: * @param uint32_t p1 16-bit data1 in b[15:0] -198: * -199: * @return uint8_t always TRUE -200: * @note Function implements critical section. -201: * Uses tool kit __disable_irq()/__enable_irq() pair which may use -202: * priviledged Cortex-Mx instructions. -203: */ -204: void TFDPTrace1 ( uint16_t nbr, uint8_t b, uint32_t p1 ) -205: { -BFD094A0 4FF5 ADDIU SP, SP, -24 -BFD094A2 CBE5 SW RA, 20(SP) -BFD094A4 CBC4 SW S8, 16(SP) -BFD094A6 0FDD MOVE S8, SP -BFD094A8 0C64 MOVE V1, A0 -BFD094AA 0C45 MOVE V0, A1 -BFD094AC 0020F8DE SW A2, 32(S8) -BFD094B0 0018387E SH V1, 24(S8) -BFD094B4 001C185E SB V0, 28(S8) -206: #ifdef ENABLE_TRACE_MASK_IRQ -207: uint32_t isave; -208: -209: isave = mips32r2_dis_intr(); -210: #endif -211: (void)b; -212: tfdp_xmit_header(nbr); -BFD094B8 0018345E LHU V0, 24(S8) -BFD094BC 0C82 MOVE A0, V0 -BFD094BE 483677E8 JALS tfdp_xmit_header -BFD094C0 4836 LW AT, 88(SP) -BFD094C2 0C00 NOP -213: tfdp_xmit_hword(p1); -BFD094C4 0020FC5E LW V0, 32(S8) -BFD094C8 2D2F ANDI V0, V0, 0xFFFF -BFD094CA 0C82 MOVE A0, V0 -BFD094CC 4B2477E8 JALS tfdp_xmit_hword -BFD094CE 4B24 LW T9, 16(SP) -BFD094D0 0C00 NOP -214: -215: #ifdef ENABLE_TRACE_MASK_IRQ -216: mips32r2_restore_intr(isave); -217: #endif -218: } -BFD094D2 0FBE MOVE SP, S8 -BFD094D4 4BE5 LW RA, 20(SP) -BFD094D6 4BC4 LW S8, 16(SP) -BFD094D8 4C0D ADDIU SP, SP, 24 -BFD094DA 459F JR16 RA -BFD094DC 0C00 NOP -219: -220: -221: /** -222: * TFDPTrace2 - TRACE2: transmit 16-bit trace number lsb first -223: * and two 16-bit data parameters lsb first over TFDP. -224: * -225: * @author sworley -226: * -227: * @param nbr trace number -228: * @param b unused -229: * @param uint32_t p1 16-bit data1 in b[15:0] -230: * @param uint32_t p2 16-bit data2 in b[15:0] -231: * -232: * @return uint8_t always TRUE -233: * @note Uses tool kit functions to save/disable/restore -234: * interrupts for critical section. These may use -235: * priviledged instructions. -236: */ -237: void TFDPTrace2 ( uint16_t nbr, uint8_t b, uint32_t p1, uint32_t p2 ) -238: { -BFD08A44 4FF5 ADDIU SP, SP, -24 -BFD08A46 CBE5 SW RA, 20(SP) -BFD08A48 CBC4 SW S8, 16(SP) -BFD08A4A 0FDD MOVE S8, SP -BFD08A4C 0C64 MOVE V1, A0 -BFD08A4E 0C45 MOVE V0, A1 -BFD08A50 0020F8DE SW A2, 32(S8) -BFD08A54 0024F8FE SW A3, 36(S8) -BFD08A58 0018387E SH V1, 24(S8) -BFD08A5C 001C185E SB V0, 28(S8) -239: #ifdef ENABLE_TRACE_MASK_IRQ -240: uint32_t isave; -241: -242: isave = mips32r2_dis_intr(); -243: #endif -244: (void)b; -245: tfdp_xmit_header(nbr); -BFD08A60 0018345E LHU V0, 24(S8) -BFD08A64 0C82 MOVE A0, V0 -BFD08A66 483677E8 JALS tfdp_xmit_header -BFD08A68 4836 LW AT, 88(SP) -BFD08A6A 0C00 NOP -246: tfdp_xmit_hword(p1); -BFD08A6C 0020FC5E LW V0, 32(S8) -BFD08A70 2D2F ANDI V0, V0, 0xFFFF -BFD08A72 0C82 MOVE A0, V0 -BFD08A74 4B2477E8 JALS tfdp_xmit_hword -BFD08A76 4B24 LW T9, 16(SP) -BFD08A78 0C00 NOP -247: tfdp_xmit_hword(p2); -BFD08A7A 0024FC5E LW V0, 36(S8) -BFD08A7E 2D2F ANDI V0, V0, 0xFFFF -BFD08A80 0C82 MOVE A0, V0 -BFD08A82 4B2477E8 JALS tfdp_xmit_hword -BFD08A84 4B24 LW T9, 16(SP) -BFD08A86 0C00 NOP -248: -249: #ifdef ENABLE_TRACE_MASK_IRQ -250: mips32r2_restore_intr(isave); -251: #endif -252: } -BFD08A88 0FBE MOVE SP, S8 -BFD08A8A 4BE5 LW RA, 20(SP) -BFD08A8C 4BC4 LW S8, 16(SP) -BFD08A8E 4C0D ADDIU SP, SP, 24 -BFD08A90 459F JR16 RA -BFD08A92 0C00 NOP -253: -254: -255: /** -256: * TFDPTrace3 - TRACE3: transmit 16-bit trace number lsb first -257: * and three 16-bit data parameters lsb first over TFDP. -258: * -259: * @author sworley -260: * -261: * @param nbr trace number -262: * @param b unused -263: * @param uint32_t p1 16-bit data1 in b[15:0] -264: * @param uint32_t p2 16-bit data2 in b[15:0] -265: * @param uint32_t p3 16-bit data3 in b[15:0] -266: * -267: * @return uint8_t always TRUE -268: * @note Uses tool kit functions to save/disable/restore -269: * interrupts for critical section. These may use -270: * priviledged instructions. -271: */ -272: void TFDPTrace3 ( uint16_t nbr, uint8_t b, uint32_t p1, uint32_t p2, uint32_t p3) -273: { -BFD08274 4FF5 ADDIU SP, SP, -24 -BFD08276 CBE5 SW RA, 20(SP) -BFD08278 CBC4 SW S8, 16(SP) -BFD0827A 0FDD MOVE S8, SP -BFD0827C 0C64 MOVE V1, A0 -BFD0827E 0C45 MOVE V0, A1 -BFD08280 0020F8DE SW A2, 32(S8) -BFD08284 0024F8FE SW A3, 36(S8) -BFD08288 0018387E SH V1, 24(S8) -BFD0828C 001C185E SB V0, 28(S8) -274: #ifdef ENABLE_TRACE_MASK_IRQ -275: uint32_t isave; -276: -277: isave = mips32r2_dis_intr(); -278: #endif -279: (void)b; -280: tfdp_xmit_header(nbr); -BFD08290 0018345E LHU V0, 24(S8) -BFD08294 0C82 MOVE A0, V0 -BFD08296 483677E8 JALS tfdp_xmit_header -BFD08298 4836 LW AT, 88(SP) -BFD0829A 0C00 NOP -281: tfdp_xmit_hword(p1); -BFD0829C 0020FC5E LW V0, 32(S8) -BFD082A0 2D2F ANDI V0, V0, 0xFFFF -BFD082A2 0C82 MOVE A0, V0 -BFD082A4 4B2477E8 JALS tfdp_xmit_hword -BFD082A6 4B24 LW T9, 16(SP) -BFD082A8 0C00 NOP -282: tfdp_xmit_hword(p2); -BFD082AA 0024FC5E LW V0, 36(S8) -BFD082AE 2D2F ANDI V0, V0, 0xFFFF -BFD082B0 0C82 MOVE A0, V0 -BFD082B2 4B2477E8 JALS tfdp_xmit_hword -BFD082B4 4B24 LW T9, 16(SP) -BFD082B6 0C00 NOP -283: tfdp_xmit_hword(p3); -BFD082B8 0028FC5E LW V0, 40(S8) -BFD082BC 2D2F ANDI V0, V0, 0xFFFF -BFD082BE 0C82 MOVE A0, V0 -BFD082C0 4B2477E8 JALS tfdp_xmit_hword -BFD082C2 4B24 LW T9, 16(SP) -BFD082C4 0C00 NOP -284: -285: #ifdef ENABLE_TRACE_MASK_IRQ -286: if ( isave & (1ul<<0) ) -287: { -288: mips32r2_en_intr(); -289: } -290: #endif -291: } -BFD082C6 0FBE MOVE SP, S8 -BFD082C8 4BE5 LW RA, 20(SP) -BFD082CA 4BC4 LW S8, 16(SP) -BFD082CC 4C0D ADDIU SP, SP, 24 -BFD082CE 459F JR16 RA -BFD082D0 0C00 NOP -292: -293: -294: /** -295: * TFDPTrace4 - TRACE3: transmit 16-bit trace number lsb first -296: * and four 16-bit data parameters lsb first over TFDP. -297: * -298: * @author sworley -299: * -300: * @param nbr trace number -301: * @param b unused -302: * @param uint32_t p1 16-bit data1 in b[15:0] -303: * @param uint32_t p2 16-bit data2 in b[15:0] -304: * @param uint32_t p3 16-bit data3 in b[15:0] -305: * @param uint32_t p4 16-bit data4 in b[15:0] -306: * -307: * @return uint8_t always TRUE -308: * @note Uses tool kit functions to save/disable/restore -309: * interrupts for critical section. These may use -310: * priviledged instructions. -311: */ -312: void TFDPTrace4 ( uint16_t nbr, uint8_t b, uint32_t p1, uint32_t p2, uint32_t p3, uint32_t p4) -313: { -BFD07C28 4FF5 ADDIU SP, SP, -24 -BFD07C2A CBE5 SW RA, 20(SP) -BFD07C2C CBC4 SW S8, 16(SP) -BFD07C2E 0FDD MOVE S8, SP -BFD07C30 0C64 MOVE V1, A0 -BFD07C32 0C45 MOVE V0, A1 -BFD07C34 0020F8DE SW A2, 32(S8) -BFD07C38 0024F8FE SW A3, 36(S8) -BFD07C3C 0018387E SH V1, 24(S8) -BFD07C40 001C185E SB V0, 28(S8) -314: #ifdef ENABLE_TRACE_MASK_IRQ -315: uint32_t isave; -316: -317: isave = mips32r2_dis_intr(); -318: #endif -319: (void)b; -320: tfdp_xmit_header(nbr); -BFD07C44 0018345E LHU V0, 24(S8) -BFD07C48 0C82 MOVE A0, V0 -BFD07C4A 483677E8 JALS tfdp_xmit_header -BFD07C4C 4836 LW AT, 88(SP) -BFD07C4E 0C00 NOP -321: tfdp_xmit_hword(p1); -BFD07C50 0020FC5E LW V0, 32(S8) -BFD07C54 2D2F ANDI V0, V0, 0xFFFF -BFD07C56 0C82 MOVE A0, V0 -BFD07C58 4B2477E8 JALS tfdp_xmit_hword -BFD07C5A 4B24 LW T9, 16(SP) -BFD07C5C 0C00 NOP -322: tfdp_xmit_hword(p2); -BFD07C5E 0024FC5E LW V0, 36(S8) -BFD07C62 2D2F ANDI V0, V0, 0xFFFF -BFD07C64 0C82 MOVE A0, V0 -BFD07C66 4B2477E8 JALS tfdp_xmit_hword -BFD07C68 4B24 LW T9, 16(SP) -BFD07C6A 0C00 NOP -323: tfdp_xmit_hword(p3); -BFD07C6C 0028FC5E LW V0, 40(S8) -BFD07C70 2D2F ANDI V0, V0, 0xFFFF -BFD07C72 0C82 MOVE A0, V0 -BFD07C74 4B2477E8 JALS tfdp_xmit_hword -BFD07C76 4B24 LW T9, 16(SP) -BFD07C78 0C00 NOP -324: tfdp_xmit_hword(p4); -BFD07C7A 002CFC5E LW V0, 44(S8) -BFD07C7E 2D2F ANDI V0, V0, 0xFFFF -BFD07C80 0C82 MOVE A0, V0 -BFD07C82 4B2477E8 JALS tfdp_xmit_hword -BFD07C84 4B24 LW T9, 16(SP) -BFD07C86 0C00 NOP -325: -326: #ifdef ENABLE_TRACE_MASK_IRQ -327: if ( isave & (1ul<<0) ) -328: { -329: mips32r2_en_intr(); -330: } -331: #endif -332: } -BFD07C88 0FBE MOVE SP, S8 -BFD07C8A 4BE5 LW RA, 20(SP) -BFD07C8C 4BC4 LW S8, 16(SP) -BFD07C8E 4C0D ADDIU SP, SP, 24 -BFD07C90 459F JR16 RA -BFD07C92 0C00 NOP -333: -334: -335: /** -336: * TFDPTrace11 - Transmit one 32-bit data item over TFDP -337: * -338: * @param nbr trace number -339: * @param b unused -340: * @param uint32_t p1 32-bit data to be transmitted -341: * -342: */ -343: void TFDPTrace11( uint16_t nbr, uint8_t b, uint32_t p1) -344: { -BFD09684 4FF5 ADDIU SP, SP, -24 -BFD09686 CBE5 SW RA, 20(SP) -BFD09688 CBC4 SW S8, 16(SP) -BFD0968A 0FDD MOVE S8, SP -BFD0968C 0C64 MOVE V1, A0 -BFD0968E 0C45 MOVE V0, A1 -BFD09690 0020F8DE SW A2, 32(S8) -BFD09694 0018387E SH V1, 24(S8) -BFD09698 001C185E SB V0, 28(S8) -345: #ifdef ENABLE_TRACE_MASK_IRQ -346: uint32_t isave; -347: -348: isave = mips32r2_dis_intr(); -349: #endif -350: (void)b; -351: tfdp_xmit_header(nbr); -BFD0969C 0018345E LHU V0, 24(S8) -BFD096A0 0C82 MOVE A0, V0 -BFD096A2 483677E8 JALS tfdp_xmit_header -BFD096A4 4836 LW AT, 88(SP) -BFD096A6 0C00 NOP -352: tfdp_xmit_word(p1); -BFD096A8 0020FC9E LW A0, 32(S8) -BFD096AC 467A77E8 JALS tfdp_xmit_word -BFD096B0 0C00 NOP -353: -354: #ifdef ENABLE_TRACE_MASK_IRQ -355: if ( isave & (1ul<<0) ) -356: { -357: mips32r2_en_intr(); -358: } -359: #endif -360: } -BFD096B2 0FBE MOVE SP, S8 -BFD096B4 4BE5 LW RA, 20(SP) -BFD096B6 4BC4 LW S8, 16(SP) -BFD096B8 4C0D ADDIU SP, SP, 24 -BFD096BA 459F JR16 RA -BFD096BC 0C00 NOP -361: -362: -363: /** -364: * TFDPTrace12 - Transmit two 32-bit data items over TFDP -365: * -366: * @param nbr trace number -367: * @param b unused -368: * @param uint32_t p1 32-bit data1 to be transmitted -369: * @param uint32_t p2 32-bit data2 to be transmitted -370: * -371: */ -372: void TFDPTrace12( uint16_t nbr, uint8_t b, uint32_t p1, uint32_t p2 ) -373: { -BFD090B4 4FF5 ADDIU SP, SP, -24 -BFD090B6 CBE5 SW RA, 20(SP) -BFD090B8 CBC4 SW S8, 16(SP) -BFD090BA 0FDD MOVE S8, SP -BFD090BC 0C64 MOVE V1, A0 -BFD090BE 0C45 MOVE V0, A1 -BFD090C0 0020F8DE SW A2, 32(S8) -BFD090C4 0024F8FE SW A3, 36(S8) -BFD090C8 0018387E SH V1, 24(S8) -BFD090CC 001C185E SB V0, 28(S8) -374: #ifdef ENABLE_TRACE_MASK_IRQ -375: uint32_t isave; -376: -377: isave = mips32r2_dis_intr(); -378: #endif -379: (void)b; -380: tfdp_xmit_header(nbr); -BFD090D0 0018345E LHU V0, 24(S8) -BFD090D4 0C82 MOVE A0, V0 -BFD090D6 483677E8 JALS tfdp_xmit_header -BFD090D8 4836 LW AT, 88(SP) -BFD090DA 0C00 NOP -381: tfdp_xmit_word(p1); -BFD090DC 0020FC9E LW A0, 32(S8) -BFD090E0 467A77E8 JALS tfdp_xmit_word -BFD090E4 0C00 NOP -382: tfdp_xmit_word(p2); -BFD090E6 0024FC9E LW A0, 36(S8) -BFD090EA 467A77E8 JALS tfdp_xmit_word -BFD090EE 0C00 NOP -383: -384: #ifdef ENABLE_TRACE_MASK_IRQ -385: if ( isave & (1ul<<0) ) -386: { -387: mips32r2_en_intr(); -388: } -389: #endif -390: } -BFD090F0 0FBE MOVE SP, S8 -BFD090F2 4BE5 LW RA, 20(SP) -BFD090F4 4BC4 LW S8, 16(SP) -BFD090F6 4C0D ADDIU SP, SP, 24 -BFD090F8 459F JR16 RA -BFD090FA 0C00 NOP -391: -392: #endif // #ifdef ENABLE_TFDP_TRACE -393: -394: -395: /* end mec14xx_tfdp.c */ -396: /** @} -397: */ ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/mec14xx_system.c ------- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file mec14xx_system.c -22: *MEC14xx system functions -23: */ -24: /** @defgroup MEC14xx System -25: * @{ -26: */ -27: -28: -29: -30: #include "appcfg.h" -31: #include "platform.h" -32: #include "MEC14xx/mec14xx.h" -33: #include "MEC14xx/mec14xx_system.h" -34: #include "MEC14xx/mec14xx_jtvic.h" -35: -36: -37: -38: -39: /** -40: * Initialize the system -41: * -42: * @param none -43: * @return none -44: * -45: * @brief Setup the microcontroller system. -46: * Initialize the System. -47: */ -48: void SystemInit (void) -49: { -BFD09E20 4FB0 ADDIU SP, SP, -8 -BFD09E22 CBC1 SW S8, 4(SP) -BFD09E24 0FDD MOVE S8, SP -50: -51: PCR->PROC_CLOCK_CNTRL = (PCR_CLOCK_DIVIDER); -BFD09E26 A00841A2 LUI V0, 0xA008 -BFD09E2A 01005042 ORI V0, V0, 256 -BFD09E2E ED81 LI V1, 1 -BFD09E30 E9A8 SW V1, 32(V0) -52: -53: } -BFD09E32 0FBE MOVE SP, S8 -BFD09E34 4BC1 LW S8, 4(SP) -BFD09E36 4C05 ADDIU SP, SP, 8 -BFD09E38 459F JR16 RA -BFD09E3A 0C00 NOP -54: /*---------------------------------------------------------------------------*/ -55: -56: uint32_t sys_code_sram_base(void) -57: { -BFD09EAC 4FB0 ADDIU SP, SP, -8 -BFD09EAE CBC1 SW S8, 4(SP) -BFD09EB0 0FDD MOVE S8, SP -58: #if MEC14XX_DEVID == MEC1418_DEVID -59: return (uint32_t)(MEC1418_ICODE_PSRAM_BASE); -60: #else -61: return (uint32_t)(MEC1404_ICODE_PSRAM_BASE); -BFD09EB2 1FD041A2 LUI V0, 0x1FD0 -BFD09EB4 0FBE1FD0 LB S8, 4030(S0) -62: #endif -63: } -BFD09EB6 0FBE MOVE SP, S8 -BFD09EB8 4BC1 LW S8, 4(SP) -BFD09EBA 4C05 ADDIU SP, SP, 8 -BFD09EBC 459F JR16 RA -BFD09EBE 0C00 NOP -64: /*---------------------------------------------------------------------------*/ -65: -66: uint8_t sys_valid_sram_addr(void * const p) -67: { -BFD08CA8 4FF1 ADDIU SP, SP, -32 -BFD08CAA CBE7 SW RA, 28(SP) -BFD08CAC CBC6 SW S8, 24(SP) -BFD08CAE 0FDD MOVE S8, SP -BFD08CB0 0020F89E SW A0, 32(S8) -68: uint32_t base; -69: -70: base = sys_code_sram_base(); -BFD08CB4 4F5677E8 JALS sys_code_sram_base -BFD08CB6 4F56 ADDIU K0, K0, -5 -BFD08CB8 0C00 NOP -BFD08CBA 0010F85E SW V0, 16(S8) -71: -72: if ((uint32_t)p >= base) { -BFD08CBE 0020FC7E LW V1, 32(S8) -BFD08CC2 0010FC5E LW V0, 16(S8) -BFD08CC6 13900043 SLTU V0, V1, V0 -BFD08CC8 40A21390 ADDI GP, S0, 16546 -BFD08CCA 000B40A2 BNEZC V0, 0xBFD08CE4 -73: if ((uint32_t)p < (MEC14XX_DCODE_VSRAM_LIMIT)) { -BFD08CCE 0020FC7E LW V1, 32(S8) -BFD08CD2 BFD241A2 LUI V0, 0xBFD2 -BFD08CD4 0043BFD2 LDC1 F30, 67(S2) -BFD08CD6 13900043 SLTU V0, V1, V0 -BFD08CD8 40E21390 ADDI GP, S0, 16610 -BFD08CDA 000340E2 BEQZC V0, 0xBFD08CE4 -74: return 1u; -BFD08CDE ED01 LI V0, 1 -BFD08CE0 CC02 B 0xBFD08CE6 -BFD08CE2 0C00 NOP -75: } -76: } -77: return 0u; -BFD08CE4 0C40 MOVE V0, ZERO -78: } -BFD08CE6 0FBE MOVE SP, S8 -BFD08CE8 4BE7 LW RA, 28(SP) -BFD08CEA 4BC6 LW S8, 24(SP) -BFD08CEC 4C11 ADDIU SP, SP, 32 -BFD08CEE 459F JR16 RA -BFD08CF0 0C00 NOP -79: /*---------------------------------------------------------------------------*/ -80: -81: uint8_t sys_valid_sram_range(void * const p, const uint32_t byte_len) -82: { -BFD08858 4FF1 ADDIU SP, SP, -32 -BFD0885A CBE7 SW RA, 28(SP) -BFD0885C CBC6 SW S8, 24(SP) -BFD0885E 0FDD MOVE S8, SP -BFD08860 0020F89E SW A0, 32(S8) -BFD08864 0024F8BE SW A1, 36(S8) -83: uint32_t base; -84: -85: base = sys_code_sram_base(); -BFD08868 4F5677E8 JALS sys_code_sram_base -BFD0886A 4F56 ADDIU K0, K0, -5 -BFD0886C 0C00 NOP -BFD0886E 0010F85E SW V0, 16(S8) -86: -87: if ((uint32_t)p >= base) { -BFD08872 0020FC7E LW V1, 32(S8) -BFD08876 0010FC5E LW V0, 16(S8) -BFD0887A 13900043 SLTU V0, V1, V0 -BFD0887C 40A21390 ADDI GP, S0, 16546 -BFD0887E 000E40A2 BNEZC V0, 0xBFD0889E -88: if (((uint32_t)p + byte_len) < (MEC14XX_DCODE_VSRAM_LIMIT)) { -BFD08882 0020FC7E LW V1, 32(S8) -BFD08886 0024FC5E LW V0, 36(S8) -BFD0888A 05A6 ADDU V1, V1, V0 -BFD0888C BFD241A2 LUI V0, 0xBFD2 -BFD0888E 0043BFD2 LDC1 F30, 67(S2) -BFD08890 13900043 SLTU V0, V1, V0 -BFD08892 40E21390 ADDI GP, S0, 16610 -BFD08894 000340E2 BEQZC V0, 0xBFD0889E -89: return 1u; -BFD08898 ED01 LI V0, 1 -BFD0889A CC02 B 0xBFD088A0 -BFD0889C 0C00 NOP -90: } -91: } -92: return 0u; -BFD0889E 0C40 MOVE V0, ZERO -93: } -BFD088A0 0FBE MOVE SP, S8 -BFD088A2 4BE7 LW RA, 28(SP) -BFD088A4 4BC6 LW S8, 24(SP) -BFD088A6 4C11 ADDIU SP, SP, 32 -BFD088A8 459F JR16 RA -BFD088AA 0C00 NOP -94: /*---------------------------------------------------------------------------*/ -95: -96: void sys_cpu_en_timer(uint32_t counts, uint8_t ien) -97: { -BFD07570 4FF5 ADDIU SP, SP, -24 -BFD07572 CBE5 SW RA, 20(SP) -BFD07574 CBC4 SW S8, 16(SP) -BFD07576 0FDD MOVE S8, SP -BFD07578 0018F89E SW A0, 24(S8) -BFD0757A 0C450018 CMP.LT.PH ZERO, T8 -BFD0757C 0C45 MOVE V0, A1 -BFD0757E 001C185E SB V0, 28(S8) -98: /* Disable Counter by setting DC bit to 1 in CP0.Cause */ -99: _CP0_BIS_CAUSE(_CP0_CAUSE_DC_MASK); -BFD07582 080041A2 LUI V0, 0x800 -BFD07584 0800 LBU S0, 0(S0) -BFD07586 00FC006D MFC0 V1, Cause -BFD07588 0C0000FC SLL A3, GP, 1 -BFD0758A 0C00 NOP -BFD0758C 44D3 OR16 V0, V1 -BFD0758E 02FC004D MTC0 V0, Cause -BFD07590 000002FC SLL S7, GP, 0 -BFD07592 18000000 SLL ZERO, ZERO, 3 -BFD07594 FC5E1800 SB ZERO, -930(ZERO) -100: -101: _CP0_SET_COUNT(counts); -BFD07596 0018FC5E LW V0, 24(S8) -BFD0759A 02FC0049 MTC0 V0, Count -BFD0759C 000002FC SLL S7, GP, 0 -BFD0759E 18000000 SLL ZERO, ZERO, 3 -BFD075A0 145E1800 SB ZERO, 5214(ZERO) -102: if (ien) { -BFD075A2 001C145E LBU V0, 28(S8) -BFD075A6 000840E2 BEQZC V0, 0xBFD075BA -BFD075A8 EE100008 MUL SP, T0, ZERO -103: jtvic_en_source(MEC14xx_GIRQ24_ID, 0, 0); -BFD075AA EE10 LI A0, 16 -BFD075AC 0CA0 MOVE A1, ZERO -BFD075AE 0CC0 MOVE A2, ZERO -BFD075B0 3A7C77E8 JALS jtvic_en_source -BFD075B2 0C003A7C SH S3, 3072(GP) -BFD075B4 0C00 NOP -BFD075B6 CC07 B 0xBFD075C6 -BFD075B8 0C00 NOP -104: } else { -105: jtvic_dis_clr_source(MEC14xx_GIRQ24_ID, 0, 1); -BFD075BA EE10 LI A0, 16 -BFD075BC 0CA0 MOVE A1, ZERO -BFD075BE EF01 LI A2, 1 -BFD075C0 3A4077E8 JALS jtvic_dis_clr_source -BFD075C2 0C003A40 SH S2, 3072(ZERO) -BFD075C4 0C00 NOP -106: } -107: -108: /* Enable Counter */ -109: _CP0_BIC_CAUSE(_CP0_CAUSE_DC_MASK); -BFD075C6 080041A2 LUI V0, 0x800 -BFD075C8 0800 LBU S0, 0(S0) -BFD075CA 00FC006D MFC0 V1, Cause -BFD075CC 0C0000FC SLL A3, GP, 1 -BFD075CE 0C00 NOP -BFD075D0 4412 NOT16 V0, V0 -BFD075D2 4493 AND16 V0, V1 -BFD075D4 02FC004D MTC0 V0, Cause -BFD075D6 000002FC SLL S7, GP, 0 -BFD075D8 18000000 SLL ZERO, ZERO, 3 -BFD075DA 0FBE1800 SB ZERO, 4030(ZERO) -110: -111: } -BFD075DC 0FBE MOVE SP, S8 -BFD075DE 4BE5 LW RA, 20(SP) -BFD075E0 4BC4 LW S8, 16(SP) -BFD075E2 4C0D ADDIU SP, SP, 24 -BFD075E4 459F JR16 RA -BFD075E6 0C00 NOP -112: /*---------------------------------------------------------------------------*/ -113: -114: uint32_t cpu_microsecond_count(void) -115: { -BFD09EC0 4FB0 ADDIU SP, SP, -8 -BFD09EC2 CBC1 SW S8, 4(SP) -BFD09EC4 0FDD MOVE S8, SP -116: return _CP0_GET_COUNT(); -BFD09EC6 00FC0049 MFC0 V0, Count -117: } -BFD09ECA 0FBE MOVE SP, S8 -BFD09ECC 4BC1 LW S8, 4(SP) -BFD09ECE 4C05 ADDIU SP, SP, 8 -BFD09ED0 459F JR16 RA -BFD09ED2 0C00 NOP -118: /*---------------------------------------------------------------------------*/ -119: -120: /* -121: * Assumes M14K CPU is running at clock divide by 1 (48MHz) -122: * 1us = 48 counts. -123: * NOTE: We need to find out from DE what the pipeline rate is. -124: * M14K counter ticks at pipeline rate. -125: */ -126: uint32_t cpu_microsecond_interval(uint32_t start_count) -127: { -BFD07DCC 4FF9 ADDIU SP, SP, -16 -BFD07DCE CBC3 SW S8, 12(SP) -BFD07DD0 0FDD MOVE S8, SP -BFD07DD2 0010F89E SW A0, 16(S8) -128: uint32_t curr_count; -129: -130: curr_count = _CP0_GET_COUNT(); -BFD07DD6 00FC0049 MFC0 V0, Count -BFD07DDA 0000F85E SW V0, 0(S8) -131: if (curr_count >= start_count) { -BFD07DDE 0000FC7E LW V1, 0(S8) -BFD07DE2 0010FC5E LW V0, 16(S8) -BFD07DE6 13900043 SLTU V0, V1, V0 -BFD07DE8 40A21390 ADDI GP, S0, 16546 -BFD07DEA 000F40A2 BNEZC V0, 0xBFD07E0C -132: return ((curr_count - start_count) >> 4)/ 3ul; -BFD07DEE 0000FC7E LW V1, 0(S8) -BFD07DF2 0010FC5E LW V0, 16(S8) -BFD07DF6 0527 SUBU V0, V1, V0 -BFD07DF8 25A9 SRL V1, V0, 4 -BFD07DFA ED03 LI V0, 3 -BFD07DFC BB3C0043 DIVU V0, V1 -BFD07DFE 0002BB3C SDC1 F25, 2(GP) -BFD07E00 703C0002 TEQ V0, ZERO -BFD07E02 4603703C XORI AT, GP, 17923 -BFD07E04 4603 MFHI V1 -BFD07E06 4642 MFLO V0 -BFD07E08 CC0F B 0xBFD07E28 -BFD07E0A 0C00 NOP -133: } else { -134: return (((0xFFFFFFFFul - start_count) + curr_count) >> 4) / 3ul; -BFD07E0C 0010FC5E LW V0, 16(S8) -BFD07E10 441A NOT16 V1, V0 -BFD07E12 0000FC5E LW V0, 0(S8) -BFD07E16 0526 ADDU V0, V1, V0 -BFD07E18 25A9 SRL V1, V0, 4 -BFD07E1A ED03 LI V0, 3 -BFD07E1C BB3C0043 DIVU V0, V1 -BFD07E1E 0002BB3C SDC1 F25, 2(GP) -BFD07E20 703C0002 TEQ V0, ZERO -BFD07E22 4603703C XORI AT, GP, 17923 -BFD07E24 4603 MFHI V1 -BFD07E26 4642 MFLO V0 -135: } -136: } -BFD07E28 0FBE MOVE SP, S8 -BFD07E2A 4BC3 LW S8, 12(SP) -BFD07E2C 4C09 ADDIU SP, SP, 16 -BFD07E2E 459F JR16 RA -BFD07E30 0C00 NOP -137: /*---------------------------------------------------------------------------*/ -138: -139: /* end mec14xx_system.c */ -140: /** @} -141: */ -142: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/mec14xx_jtvic.c -------- -1: /***************************************************************************** -2: * � 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file mec14xx_jtvic.c -22: *MEC14xx JTVIC -23: */ -24: /** @defgroup MEC14xx Peripherals JTVIC -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_jtvic.h" -33: -34: -35: void jtvic_init(const JTVIC_CFG *ih_table, uint32_t disagg_bitmap, uint32_t cflags) -36: { -BFD03644 4FF9 ADDIU SP, SP, -16 -BFD03646 CBC3 SW S8, 12(SP) -BFD03648 0FDD MOVE S8, SP -BFD0364A 0010F89E SW A0, 16(S8) -BFD0364E 0014F8BE SW A1, 20(S8) -BFD03652 0018F8DE SW A2, 24(S8) -37: uint32_t d; -38: uint8_t i, j, pidx; -39: -40: JTVIC_CTRL->w = (1ul << 0); // Soft-Reset -BFD03656 BFFF41A2 LUI V0, 0xBFFF -BFD03658 5042BFFF LDC1 F31, 20546(RA) -BFD0365A C5005042 ORI V0, V0, -15104 -BFD0365E ED81 LI V1, 1 -BFD03660 E9A0 SW V1, 0(V0) -41: d = 0ul; -BFD03662 0000F81E SW ZERO, 0(S8) -42: if ( cflags & (1ul << 0) ) -BFD03666 0018FC5E LW V0, 24(S8) -BFD0366A 2D21 ANDI V0, V0, 0x1 -BFD0366C 2D2D ANDI V0, V0, 0xFF -BFD0366E 000440E2 BEQZC V0, 0xBFD0367A -BFD03670 30400004 SRL ZERO, A0, 6 -43: { -44: d = (1ul << 8); -BFD03672 01003040 ADDIU V0, ZERO, 256 -BFD03676 0000F85E SW V0, 0(S8) -45: } -46: JTVIC_CTRL->w = d; // HW does not automatically clear Soft-Reset -BFD0367A BFFF41A2 LUI V0, 0xBFFF -BFD0367C 5042BFFF LDC1 F31, 20546(RA) -BFD0367E C5005042 ORI V0, V0, -15104 -BFD03682 0000FC7E LW V1, 0(S8) -BFD03686 E9A0 SW V1, 0(V0) -47: -48: for (i = 0u; i < (MEC14xx_NUM_JTVIC_INTS); i++) { -BFD03688 0004181E SB ZERO, 4(S8) -BFD0368C CC5C B 0xBFD03746 -BFD0368E 0C00 NOP -BFD0373C 0004145E LBU V0, 4(S8) -BFD03740 6D20 ADDIU V0, V0, 1 -BFD03742 0004185E SB V0, 4(S8) -BFD03746 0004145E LBU V0, 4(S8) -BFD0374A 0013B042 SLTIU V0, V0, 19 -BFD0374E FF9F40A2 BNEZC V0, 0xBFD03690 -BFD03750 41A2FF9F LW GP, 16802(RA) -49: pidx = i << 2; -BFD03690 0004145E LBU V0, 4(S8) -BFD03694 2524 SLL V0, V0, 2 -BFD03696 0006185E SB V0, 6(S8) -50: for (j = 0u; j < 4u; j++) { -BFD0369A 0005181E SB ZERO, 5(S8) -BFD0369E CC1F B 0xBFD036DE -BFD036A0 0C00 NOP -BFD036D4 0005145E LBU V0, 5(S8) -BFD036D8 6D20 ADDIU V0, V0, 1 -BFD036DA 0005185E SB V0, 5(S8) -BFD036DE 0005145E LBU V0, 5(S8) -BFD036E2 0004B042 SLTIU V0, V0, 4 -BFD036E6 FFDC40A2 BNEZC V0, 0xBFD036A2 -BFD036E8 145EFFDC LW S8, 5214(GP) -51: JTVIC_PRI->REG32[pidx+j] = (uint32_t)(ih_table[i].pri[j]); -BFD036A2 BFFF41A2 LUI V0, 0xBFFF -BFD036A4 5082BFFF LDC1 F31, 20610(RA) -BFD036A6 C3005082 ORI A0, V0, -15616 -BFD036AA 0006147E LBU V1, 6(S8) -BFD036AE 0005145E LBU V0, 5(S8) -BFD036B2 06A6 ADDU A1, V1, V0 -BFD036B4 0004145E LBU V0, 4(S8) -BFD036B8 2524 SLL V0, V0, 2 -BFD036BA 25A4 SLL V1, V0, 2 -BFD036BC 0534 ADDU V0, V0, V1 -BFD036BE 0010FC7E LW V1, 16(S8) -BFD036C2 05A6 ADDU V1, V1, V0 -BFD036C4 0005145E LBU V0, 5(S8) -BFD036C8 2524 SLL V0, V0, 2 -BFD036CA 0526 ADDU V0, V1, V0 -BFD036CC 69A1 LW V1, 4(V0) -BFD036CE 2554 SLL V0, A1, 2 -BFD036D0 0528 ADDU V0, A0, V0 -BFD036D2 E9A0 SW V1, 0(V0) -52: } -53: d = ih_table[i].isr_addr & ~(1ul << 0); -BFD036EA 0004145E LBU V0, 4(S8) -BFD036EE 2524 SLL V0, V0, 2 -BFD036F0 25A4 SLL V1, V0, 2 -BFD036F2 0534 ADDU V0, V0, V1 -BFD036F4 0010FC7E LW V1, 16(S8) -BFD036F8 0526 ADDU V0, V1, V0 -BFD036FA 69A0 LW V1, 0(V0) -BFD036FC FFFE3040 ADDIU V0, ZERO, -2 -BFD036FE 4493FFFE LW RA, 17555(S8) -BFD03700 4493 AND16 V0, V1 -BFD03702 0000F85E SW V0, 0(S8) -54: if (disagg_bitmap & (1ul << i)) { -BFD03706 0004145E LBU V0, 4(S8) -BFD0370A 0014FC7E LW V1, 20(S8) -BFD0370E 10500062 SRLV V0, V0, V1 -BFD03710 2D211050 ADDI V0, S0, 11553 -BFD03712 2D21 ANDI V0, V0, 0x1 -BFD03714 2D2D ANDI V0, V0, 0xFF -BFD03716 000640E2 BEQZC V0, 0xBFD03726 -55: d |= (1ul << 0); // dis-aggregate this GIRQ -BFD0371A 0000FC5E LW V0, 0(S8) -BFD0371E 00015042 ORI V0, V0, 1 -BFD03722 0000F85E SW V0, 0(S8) -56: } -57: JTVIC_ACTRL->REG32[i] = d; -BFD03726 BFFF41A2 LUI V0, 0xBFFF -BFD03728 5062BFFF LDC1 F31, 20578(RA) -BFD0372A C2005062 ORI V1, V0, -15872 -BFD0372E 0004145E LBU V0, 4(S8) -BFD03732 2524 SLL V0, V0, 2 -BFD03734 0526 ADDU V0, V1, V0 -BFD03736 0000FC7E LW V1, 0(S8) -BFD0373A E9A0 SW V1, 0(V0) -58: } -59: -60: JTVIC_GROUP_EN_SET->w = 0xFFFFFFFFul; // Enable GIRQ08 - GIRQ18 (all) -BFD03752 BFFF41A2 LUI V0, 0xBFFF -BFD03754 5042BFFF LDC1 F31, 20546(RA) -BFD03756 C5085042 ORI V0, V0, -15096 -BFD0375A EDFF LI V1, -1 -BFD0375C E9A0 SW V1, 0(V0) -61: -62: } -BFD0375E 0FBE MOVE SP, S8 -BFD03760 4BC3 LW S8, 12(SP) -BFD03762 4C09 ADDIU SP, SP, 16 -BFD03764 459F JR16 RA -BFD03766 0C00 NOP -63: -64: /* Clear JTVIC GIRQn source bit -65: * -66: */ -67: void jtvic_clr_source(uint8_t girq_num, uint8_t bit_num) -68: { -BFD089F4 4FB0 ADDIU SP, SP, -8 -BFD089F6 CBC1 SW S8, 4(SP) -BFD089F8 0FDD MOVE S8, SP -BFD089FA 0C64 MOVE V1, A0 -BFD089FC 0C45 MOVE V0, A1 -BFD089FE 0008187E SB V1, 8(S8) -BFD08A02 000C185E SB V0, 12(S8) -69: if (girq_num < (MEC14xx_NUM_JTVIC_INTS)) -BFD08A06 0008145E LBU V0, 8(S8) -BFD08A0A 0013B042 SLTIU V0, V0, 19 -BFD08A0E 001340E2 BEQZC V0, 0xBFD08A38 -70: { -71: bit_num &= 0x1Fu; -BFD08A12 000C145E LBU V0, 12(S8) -BFD08A16 2D29 ANDI V0, V0, 0x1F -BFD08A18 000C185E SB V0, 12(S8) -72: JTVIC_GIRQ->REGS[girq_num].SOURCE = (1ul << bit_num); -BFD08A1C BFFF41A2 LUI V0, 0xBFFF -BFD08A1E 5082BFFF LDC1 F31, 20610(RA) -BFD08A20 C0005082 ORI A0, V0, -16384 -BFD08A24 0008145E LBU V0, 8(S8) -BFD08A28 000C147E LBU V1, 12(S8) -BFD08A2C EE81 LI A1, 1 -BFD08A2E 181000A3 SLLV V1, V1, A1 -BFD08A30 25281810 SB ZERO, 9512(S0) -BFD08A32 2528 SLL V0, V0, 4 -BFD08A34 0528 ADDU V0, A0, V0 -BFD08A36 E9A0 SW V1, 0(V0) -73: } -74: } -BFD08A38 0FBE MOVE SP, S8 -BFD08A3A 4BC1 LW S8, 4(SP) -BFD08A3C 4C05 ADDIU SP, SP, 8 -BFD08A3E 459F JR16 RA -BFD08A40 0C00 NOP -75: -76: -77: /* Disable GIRQn source with optional clearing of source. -78: * girq_num = [0, 18], 0=GIRQ08, 1=GIRQ09, ..., 18=GIRQ26 -79: * bit_num = [0, 31] -80: */ -81: void jtvic_dis_clr_source(uint8_t girq_num, uint8_t bit_num, uint8_t clr_src) -82: { -BFD07480 4FB0 ADDIU SP, SP, -8 -BFD07482 CBC1 SW S8, 4(SP) -BFD07484 0FDD MOVE S8, SP -BFD07486 0C65 MOVE V1, A1 -BFD07488 0C46 MOVE V0, A2 -BFD0748A 0008189E SB A0, 8(S8) -BFD0748E 000C187E SB V1, 12(S8) -BFD07492 0010185E SB V0, 16(S8) -83: if (girq_num < (MEC14xx_NUM_JTVIC_INTS)) -BFD07496 0008145E LBU V0, 8(S8) -BFD0749A 0013B042 SLTIU V0, V0, 19 -BFD0749E 002540E2 BEQZC V0, 0xBFD074EC -84: { -85: bit_num &= 0x1Fu; -BFD074A2 000C145E LBU V0, 12(S8) -BFD074A6 2D29 ANDI V0, V0, 0x1F -BFD074A8 000C185E SB V0, 12(S8) -86: JTVIC_GIRQ->REGS[girq_num].EN_CLR = (1ul << bit_num); -BFD074AC BFFF41A2 LUI V0, 0xBFFF -BFD074AE 5082BFFF LDC1 F31, 20610(RA) -BFD074B0 C0005082 ORI A0, V0, -16384 -BFD074B4 0008145E LBU V0, 8(S8) -BFD074B8 000C147E LBU V1, 12(S8) -BFD074BC EE81 LI A1, 1 -BFD074BE 181000A3 SLLV V1, V1, A1 -BFD074C0 25281810 SB ZERO, 9512(S0) -BFD074C2 2528 SLL V0, V0, 4 -BFD074C4 0528 ADDU V0, A0, V0 -BFD074C6 E9A2 SW V1, 8(V0) -87: if ( 0 != clr_src ) -BFD074C8 0010145E LBU V0, 16(S8) -BFD074CC 000E40E2 BEQZC V0, 0xBFD074EC -88: { -89: JTVIC_GIRQ->REGS[girq_num].SOURCE = (1ul << bit_num); -BFD074D0 BFFF41A2 LUI V0, 0xBFFF -BFD074D2 5082BFFF LDC1 F31, 20610(RA) -BFD074D4 C0005082 ORI A0, V0, -16384 -BFD074D8 0008145E LBU V0, 8(S8) -BFD074DC 000C147E LBU V1, 12(S8) -BFD074E0 EE81 LI A1, 1 -BFD074E2 181000A3 SLLV V1, V1, A1 -BFD074E4 25281810 SB ZERO, 9512(S0) -BFD074E6 2528 SLL V0, V0, 4 -BFD074E8 0528 ADDU V0, A0, V0 -BFD074EA E9A0 SW V1, 0(V0) -90: } -91: } -92: } -BFD074EC 0FBE MOVE SP, S8 -BFD074EE 4BC1 LW S8, 4(SP) -BFD074F0 4C05 ADDIU SP, SP, 8 -BFD074F2 459F JR16 RA -BFD074F4 0C00 NOP -93: -94: -95: /* Enable with optional source clear before enable. -96: * girq_num = [0, 18], 0=GIRQ08, 1=GIRQ09, ..., 18=GIRQ26 -97: * bit_num = [0, 31] -98: */ -99: void jtvic_en_source(uint8_t girq_num, uint8_t bit_num, uint8_t clr_src) -100: { -BFD074F8 4FB0 ADDIU SP, SP, -8 -BFD074FA CBC1 SW S8, 4(SP) -BFD074FC 0FDD MOVE S8, SP -BFD074FE 0C65 MOVE V1, A1 -BFD07500 0C46 MOVE V0, A2 -BFD07502 0008189E SB A0, 8(S8) -BFD07506 000C187E SB V1, 12(S8) -BFD0750A 0010185E SB V0, 16(S8) -101: if (girq_num < (MEC14xx_NUM_JTVIC_INTS)) -BFD0750E 0008145E LBU V0, 8(S8) -BFD07512 0013B042 SLTIU V0, V0, 19 -BFD07516 002540E2 BEQZC V0, 0xBFD07564 -102: { -103: bit_num &= 0x1Fu; -BFD0751A 000C145E LBU V0, 12(S8) -BFD0751E 2D29 ANDI V0, V0, 0x1F -BFD07520 000C185E SB V0, 12(S8) -104: if ( 0 != clr_src ) -BFD07524 0010145E LBU V0, 16(S8) -BFD07528 000E40E2 BEQZC V0, 0xBFD07548 -105: { -106: JTVIC_GIRQ->REGS[girq_num].SOURCE = (1ul << bit_num); -BFD0752C BFFF41A2 LUI V0, 0xBFFF -BFD0752E 5082BFFF LDC1 F31, 20610(RA) -BFD07530 C0005082 ORI A0, V0, -16384 -BFD07534 0008145E LBU V0, 8(S8) -BFD07538 000C147E LBU V1, 12(S8) -BFD0753C EE81 LI A1, 1 -BFD0753E 181000A3 SLLV V1, V1, A1 -BFD07540 25281810 SB ZERO, 9512(S0) -BFD07542 2528 SLL V0, V0, 4 -BFD07544 0528 ADDU V0, A0, V0 -BFD07546 E9A0 SW V1, 0(V0) -107: } -108: JTVIC_GIRQ->REGS[girq_num].EN_SET = (1ul << bit_num); -BFD07548 BFFF41A2 LUI V0, 0xBFFF -BFD0754A 5082BFFF LDC1 F31, 20610(RA) -BFD0754C C0005082 ORI A0, V0, -16384 -BFD07550 0008145E LBU V0, 8(S8) -BFD07554 000C147E LBU V1, 12(S8) -BFD07558 EE81 LI A1, 1 -BFD0755A 181000A3 SLLV V1, V1, A1 -BFD0755C 25281810 SB ZERO, 9512(S0) -BFD0755E 2528 SLL V0, V0, 4 -BFD07560 0528 ADDU V0, A0, V0 -BFD07562 E9A1 SW V1, 4(V0) -109: } -110: } -BFD07564 0FBE MOVE SP, S8 -BFD07566 4BC1 LW S8, 4(SP) -BFD07568 4C05 ADDIU SP, SP, 8 -BFD0756A 459F JR16 RA -BFD0756C 0C00 NOP -111: -112: -113: /* end mec14xx_jtvic.c */ -114: /** @} -115: */ -116: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/mec14xx_gpio.c --------- -1: /***************************************************************************** -2: * � 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: -22: /** @file mec14xx_gpio.c -23: *MEC14xx GPIO hardware access -24: */ -25: /** @defgroup MEC14xx Peripherals GPIO -26: * @{ -27: */ -28: -29: -30: #include "appcfg.h" -31: #include "platform.h" -32: #include "MEC14xx/mec14xx.h" -33: #include "MEC14xx/mec14xx_gpio.h" -34: -35: -36: -37: static uint32_t gpio_has_drv_str ( enum gpio_id_t gpio_id ); -38: -39: -40: #ifdef ENABLE_GPIO_PIN_VALIDATION -41: -42: static const uint32_t gpio_port_bitmaps[NUM_GPIO_PORTS] = -43: { -44: (GPIO_PORT_A_BITMAP), -45: (GPIO_PORT_B_BITMAP), -46: (GPIO_PORT_C_BITMAP), -47: (GPIO_PORT_D_BITMAP) -48: }; -49: -50: #endif -51: -52: // -53: // Drive Strength Register bitmap -54: // -55: static const uint32_t gpio_drv_str_bitmap[NUM_GPIO_PORTS] = -56: { -57: (GPIO_PORT_A_DRVSTR_BITMAP), -58: (GPIO_PORT_B_DRVSTR_BITMAP), -59: (GPIO_PORT_C_DRVSTR_BITMAP), -60: (GPIO_PORT_D_DRVSTR_BITMAP) -61: }; -62: -63: -64: struct gpio_cfg -65: { -66: uint16_t bit_mask; -67: uint8_t bit_pos; -68: }; -69: -70: static const struct gpio_cfg gpio_cfg_tbl[GPIO_PROP_MAX] = -71: { -72: { 0x0003u, 0x00u }, -73: { 0x000Cu, 0x02u }, -74: { 0x00F0u, 0x04u }, -75: { 0x0100u, 0x08u }, -76: { 0x0200u, 0x09u }, -77: { 0x0400u, 0x0Au }, -78: { 0x0800u, 0x0Bu }, -79: { 0x3000u, 0x0Cu }, -80: { 0x3FFFu, 0x00u } -81: }; -82: -83: static uint32_t gpio_pin_ctrl_addr(enum gpio_id_t gpio_id) -84: { -BFD09B28 4FB0 ADDIU SP, SP, -8 -BFD09B2A CBC1 SW S8, 4(SP) -BFD09B2C 0FDD MOVE S8, SP -BFD09B2E 0008F89E SW A0, 8(S8) -85: return ((uint32_t)(GPIO_BASE) + (uint32_t)(gpio_id << 2)); -BFD09B32 0008FC5E LW V0, 8(S8) -BFD09B36 25A4 SLL V1, V0, 2 -BFD09B38 A00841A2 LUI V0, 0xA008 -BFD09B3C 10005042 ORI V0, V0, 4096 -BFD09B3E 05261000 ADDI ZERO, ZERO, 1318 -BFD09B40 0526 ADDU V0, V1, V0 -86: } -BFD09B42 0FBE MOVE SP, S8 -BFD09B44 4BC1 LW S8, 4(SP) -BFD09B46 4C05 ADDIU SP, SP, 8 -BFD09B48 459F JR16 RA -BFD09B4A 0C00 NOP -87: -88: #ifdef ENABLE_GPIO_PIN_VALIDATION -89: -90: /** -91: * gpio_is_valid - local helper checks if GPIO pin is -92: * implemented in this hardware. -93: * -94: * @author sworley -95: * -96: * @param gpio_id 0-based GPIO ID -97: * -98: * @return uint8_t Non-zero(GPIO Pin implemented), 0(not -99: * implemented). -100: */ -101: static uint8_t gpio_is_valid ( enum gpio_id_t gpio_id ) -102: { -BFD081B4 4FF9 ADDIU SP, SP, -16 -BFD081B6 CBC3 SW S8, 12(SP) -BFD081B8 0FDD MOVE S8, SP -BFD081BA 0010F89E SW A0, 16(S8) -103: uint16_t gp_bank; -104: -105: gp_bank = 0; -BFD081BE 0000381E SH ZERO, 0(S8) -106: -107: if ( (uint16_t)gpio_id < (uint16_t)(MAX_GPIO_ID) ) -BFD081C2 0010FC5E LW V0, 16(S8) -BFD081C6 2D2F ANDI V0, V0, 0xFFFF -BFD081C8 0078B042 SLTIU V0, V0, 120 -BFD081CC 001B40E2 BEQZC V0, 0xBFD08206 -108: { -109: gp_bank = (uint16_t)gpio_id >> 5; -BFD081D0 0010FC5E LW V0, 16(S8) -BFD081D4 2D2F ANDI V0, V0, 0xFFFF -BFD081D6 252B SRL V0, V0, 5 -BFD081D8 0000385E SH V0, 0(S8) -110: if ( gpio_port_bitmaps[gp_bank] & (1 << (gpio_id & 0x001Fu)) ) -BFD081DC 0000347E LHU V1, 0(S8) -BFD081E0 BFD141A2 LUI V0, 0xBFD1 -BFD081E2 25B4BFD1 LDC1 F30, 9652(S1) -BFD081E4 25B4 SLL V1, V1, 2 -BFD081E6 92543042 ADDIU V0, V0, -28076 -BFD081E8 05269254 SLTI S2, S4, 1318 -BFD081EA 0526 ADDU V0, V1, V0 -BFD081EC 69A0 LW V1, 0(V0) -BFD081EE 0010FC5E LW V0, 16(S8) -BFD081F2 2D29 ANDI V0, V0, 0x1F -BFD081F4 EE01 LI A0, 1 -BFD081F6 10100082 SLLV V0, V0, A0 -BFD081F8 44931010 ADDI ZERO, S0, 17555 -BFD081FA 4493 AND16 V0, V1 -BFD081FC 000340E2 BEQZC V0, 0xBFD08206 -111: { -112: return true; -BFD08200 ED01 LI V0, 1 -BFD08202 CC02 B 0xBFD08208 -BFD08204 0C00 NOP -113: } -114: } -115: -116: return false; -BFD08206 0C40 MOVE V0, ZERO -117: } -BFD08208 0FBE MOVE SP, S8 -BFD0820A 4BC3 LW S8, 12(SP) -BFD0820C 4C09 ADDIU SP, SP, 16 -BFD0820E 459F JR16 RA -BFD08210 0C00 NOP -118: -119: #else -120: static uint32_t gpio_is_valid(enum gpio_id_t gpio_id) { return true; } -121: -122: #endif -123: -124: static uint8_t gpio_bank_num(enum gpio_id_t gpio_id) -125: { -BFD09D2C 4FB0 ADDIU SP, SP, -8 -BFD09D2E CBC1 SW S8, 4(SP) -BFD09D30 0FDD MOVE S8, SP -BFD09D32 0008F89E SW A0, 8(S8) -126: return (uint8_t)(gpio_id) >> 5; -BFD09D36 0008FC5E LW V0, 8(S8) -BFD09D3A 2D2D ANDI V0, V0, 0xFF -BFD09D3C 252B SRL V0, V0, 5 -BFD09D3E 2D2D ANDI V0, V0, 0xFF -127: } -BFD09D40 0FBE MOVE SP, S8 -BFD09D42 4BC1 LW S8, 4(SP) -BFD09D44 4C05 ADDIU SP, SP, 8 -BFD09D46 459F JR16 RA -BFD09D48 0C00 NOP -128: -129: -130: static uint8_t gpio_pin_num(enum gpio_id_t gpio_id) -131: { -BFD09D4C 4FB0 ADDIU SP, SP, -8 -BFD09D4E CBC1 SW S8, 4(SP) -BFD09D50 0FDD MOVE S8, SP -BFD09D52 0008F89E SW A0, 8(S8) -132: return (uint8_t)(gpio_id) & 0x1Fu; -BFD09D56 0008FC5E LW V0, 8(S8) -BFD09D5A 2D2D ANDI V0, V0, 0xFF -BFD09D5C 2D29 ANDI V0, V0, 0x1F -BFD09D5E 2D2D ANDI V0, V0, 0xFF -133: } -BFD09D60 0FBE MOVE SP, S8 -BFD09D62 4BC1 LW S8, 4(SP) -BFD09D64 4C05 ADDIU SP, SP, 8 -BFD09D66 459F JR16 RA -BFD09D68 0C00 NOP -134: -135: -136: /** -137: * gpio_has_drv_str - Local helper to check if GPIO pin has -138: * associated drive strength register. -139: * -140: * @author sworley -141: * -142: * @param gpio_id 0-based GPIO ID -143: * -144: * @return uint32_t 0(No Drive Strength), Non-zero(Physical -145: * address of Drive Strength Register). -146: */ -147: static uint32_t gpio_has_drv_str ( enum gpio_id_t gpio_id ) -148: { -BFD06644 4FED ADDIU SP, SP, -40 -BFD06646 CBE9 SW RA, 36(SP) -BFD06648 CBC8 SW S8, 32(SP) -BFD0664A 0FDD MOVE S8, SP -BFD0664C 0028F89E SW A0, 40(S8) -149: uint32_t bank, bitpos, addr; -150: -151: addr = 0ul; -BFD06650 0010F81E SW ZERO, 16(S8) -152: if ( gpio_id < MAX_GPIO_ID ) -BFD06654 0028FC5E LW V0, 40(S8) -BFD06658 0078B042 SLTIU V0, V0, 120 -BFD0665C 003540E2 BEQZC V0, 0xBFD066CA -153: { -154: bank = gpio_bank_num(gpio_id); -BFD06660 0028FC9E LW A0, 40(S8) -BFD06664 4E9677E8 JALS gpio_bank_num -BFD06666 4E96 ADDIU S4, S4, -5 -BFD06668 0C00 NOP -BFD0666A 0014F85E SW V0, 20(S8) -155: bitpos = gpio_pin_num(gpio_id); -BFD0666E 0028FC9E LW A0, 40(S8) -BFD06672 4EA677E8 JALS gpio_pin_num -BFD06674 4EA6 ADDIU S5, S5, 3 -BFD06676 0C00 NOP -BFD06678 0018F85E SW V0, 24(S8) -156: if ( gpio_drv_str_bitmap[bank] & (1ul << bitpos) ) -BFD0667C BFD141A2 LUI V0, 0xBFD1 -BFD0667E FC7EBFD1 LDC1 F30, -898(S1) -BFD06680 0014FC7E LW V1, 20(S8) -BFD06684 25B4 SLL V1, V1, 2 -BFD06686 92643042 ADDIU V0, V0, -28060 -BFD06688 05269264 SLTI S3, A0, 1318 -BFD0668A 0526 ADDU V0, V1, V0 -BFD0668C 69A0 LW V1, 0(V0) -BFD0668E 0018FC5E LW V0, 24(S8) -BFD06692 10500062 SRLV V0, V0, V1 -BFD06694 2D211050 ADDI V0, S0, 11553 -BFD06696 2D21 ANDI V0, V0, 0x1 -BFD06698 2D2D ANDI V0, V0, 0xFF -BFD0669A 001640E2 BEQZC V0, 0xBFD066CA -157: { -158: addr = (GPIO_PCTRL2_BASE) + ((uint32_t)(gpio_id) << 2); -BFD0669E 0028FC5E LW V0, 40(S8) -BFD066A2 25A4 SLL V1, V0, 2 -BFD066A4 A00841A2 LUI V0, 0xA008 -BFD066A8 15005042 ORI V0, V0, 5376 -BFD066AA 05261500 LBU T0, 1318(ZERO) -BFD066AC 0526 ADDU V0, V1, V0 -BFD066AE 0010F85E SW V0, 16(S8) -159: if ( gpio_id > GPIO_0077_ID ) -BFD066B2 0028FC5E LW V0, 40(S8) -BFD066B6 0040B042 SLTIU V0, V0, 64 -BFD066BA 000640A2 BNEZC V0, 0xBFD066CA -160: { -161: addr -= 0x20ul; -BFD066BE 0010FC5E LW V0, 16(S8) -BFD066C2 FFE03042 ADDIU V0, V0, -32 -BFD066C4 F85EFFE0 LW RA, -1954(ZERO) -BFD066C6 0010F85E SW V0, 16(S8) -162: } -163: } -164: } -165: -166: return addr; -BFD066CA 0010FC5E LW V0, 16(S8) -167: } -BFD066CE 0FBE MOVE SP, S8 -BFD066D0 4BE9 LW RA, 36(SP) -BFD066D2 4BC8 LW S8, 32(SP) -BFD066D4 4C15 ADDIU SP, SP, 40 -BFD066D6 459F JR16 RA -BFD066D8 0C00 NOP -168: -169: -170: uint16_t GPIOGetConfig(enum gpio_id_t gpio_id) -171: { -BFD09558 4FF5 ADDIU SP, SP, -24 -BFD0955A CBE5 SW RA, 20(SP) -BFD0955C CBC4 SW S8, 16(SP) -BFD0955E 0FDD MOVE S8, SP -BFD09560 0018F89E SW A0, 24(S8) -172: if (gpio_is_valid(gpio_id)) { -BFD09564 0018FC9E LW A0, 24(S8) -BFD09568 40DA77E8 JALS gpio_is_valid -BFD0956A 0C0040DA BGTZ K0, 0xBFD0AD6E -BFD0956C 0C00 NOP -BFD0956E 000940E2 BEQZC V0, 0xBFD09584 -173: return *((volatile uint16_t *)gpio_pin_ctrl_addr(gpio_id)); -BFD09572 0018FC9E LW A0, 24(S8) -BFD09576 4D9477E8 JALS gpio_pin_ctrl_addr -BFD09578 4D94 ADDIU T4, T4, -6 -BFD0957A 0C00 NOP -BFD0957C 2920 LHU V0, 0(V0) -BFD0957E 2D2F ANDI V0, V0, 0xFFFF -BFD09580 CC02 B 0xBFD09586 -BFD09582 0C00 NOP -174: } else { -175: return 0u; -BFD09584 0C40 MOVE V0, ZERO -176: } -177: } -BFD09586 0FBE MOVE SP, S8 -BFD09588 4BE5 LW RA, 20(SP) -BFD0958A 4BC4 LW S8, 16(SP) -BFD0958C 4C0D ADDIU SP, SP, 24 -BFD0958E 459F JR16 RA -BFD09590 0C00 NOP -178: -179: -180: void GPIOSetConfig(enum gpio_id_t gpio_id, uint16_t config) -181: { -BFD09298 4FF1 ADDIU SP, SP, -32 -BFD0929A CBE7 SW RA, 28(SP) -BFD0929C CBC6 SW S8, 24(SP) -BFD0929E 0FDD MOVE S8, SP -BFD092A0 0020F89E SW A0, 32(S8) -BFD092A2 0C450020 CMP.LT.PH AT, ZERO -BFD092A4 0C45 MOVE V0, A1 -BFD092A6 0024385E SH V0, 36(S8) -182: volatile uint16_t * p; -183: -184: if (gpio_is_valid(gpio_id)) { -BFD092AA 0020FC9E LW A0, 32(S8) -BFD092AE 40DA77E8 JALS gpio_is_valid -BFD092B0 0C0040DA BGTZ K0, 0xBFD0AAB4 -BFD092B2 0C00 NOP -BFD092B4 000C40E2 BEQZC V0, 0xBFD092D0 -185: p = (volatile uint16_t *)gpio_pin_ctrl_addr(gpio_id); -BFD092B8 0020FC9E LW A0, 32(S8) -BFD092BC 4D9477E8 JALS gpio_pin_ctrl_addr -BFD092BE 4D94 ADDIU T4, T4, -6 -BFD092C0 0C00 NOP -BFD092C2 0010F85E SW V0, 16(S8) -186: *p = config; -BFD092C6 0010FC5E LW V0, 16(S8) -BFD092CA 0024347E LHU V1, 36(S8) -BFD092CE A9A0 SH V1, 0(V0) -187: } -188: } -BFD092D0 0FBE MOVE SP, S8 -BFD092D2 4BE7 LW RA, 28(SP) -BFD092D4 4BC6 LW S8, 24(SP) -BFD092D6 4C11 ADDIU SP, SP, 32 -BFD092D8 459F JR16 RA -BFD092DA 0C00 NOP -189: -190: -191: void GPIOConfigAndOr(enum gpio_id_t gpio_id, uint16_t and_mask, uint16_t or_mask) -192: { -BFD08214 4FF1 ADDIU SP, SP, -32 -BFD08216 CBE7 SW RA, 28(SP) -BFD08218 CBC6 SW S8, 24(SP) -BFD0821A 0FDD MOVE S8, SP -BFD0821C 0020F89E SW A0, 32(S8) -BFD0821E 0C650020 MULEQ_S.W.PHR AT, ZERO, AT -BFD08220 0C65 MOVE V1, A1 -BFD08222 0C46 MOVE V0, A2 -BFD08224 0024387E SH V1, 36(S8) -BFD08228 0028385E SH V0, 40(S8) -193: volatile uint16_t * p; -194: -195: -196: if (gpio_is_valid(gpio_id)) { -BFD0822C 0020FC9E LW A0, 32(S8) -BFD08230 40DA77E8 JALS gpio_is_valid -BFD08232 0C0040DA BGTZ K0, 0xBFD09A36 -BFD08234 0C00 NOP -BFD08236 001640E2 BEQZC V0, 0xBFD08266 -197: p = (volatile uint16_t *)gpio_pin_ctrl_addr(gpio_id); -BFD0823A 0020FC9E LW A0, 32(S8) -BFD0823E 4D9477E8 JALS gpio_pin_ctrl_addr -BFD08240 4D94 ADDIU T4, T4, -6 -BFD08242 0C00 NOP -BFD08244 0010F85E SW V0, 16(S8) -198: *p = (*p & and_mask) | or_mask; -BFD08248 0010FC5E LW V0, 16(S8) -BFD0824C 2920 LHU V0, 0(V0) -BFD0824E 2DAF ANDI V1, V0, 0xFFFF -BFD08250 0024345E LHU V0, 36(S8) -BFD08254 4493 AND16 V0, V1 -BFD08256 2DAF ANDI V1, V0, 0xFFFF -BFD08258 0028345E LHU V0, 40(S8) -BFD0825C 44D3 OR16 V0, V1 -BFD0825E 2DAF ANDI V1, V0, 0xFFFF -BFD08260 0010FC5E LW V0, 16(S8) -BFD08264 A9A0 SH V1, 0(V0) -199: } -200: } -BFD08266 0FBE MOVE SP, S8 -BFD08268 4BE7 LW RA, 28(SP) -BFD0826A 4BC6 LW S8, 24(SP) -BFD0826C 4C11 ADDIU SP, SP, 32 -BFD0826E 459F JR16 RA -BFD08270 0C00 NOP -201: -202: -203: uint32_t GPIOGetControl(enum gpio_id_t gpio_id) -204: { -BFD09770 4FF5 ADDIU SP, SP, -24 -BFD09772 CBE5 SW RA, 20(SP) -BFD09774 CBC4 SW S8, 16(SP) -BFD09776 0FDD MOVE S8, SP -BFD09778 0018F89E SW A0, 24(S8) -205: if (gpio_is_valid(gpio_id)) { -BFD0977C 0018FC9E LW A0, 24(S8) -BFD09780 40DA77E8 JALS gpio_is_valid -BFD09782 0C0040DA BGTZ K0, 0xBFD0AF86 -BFD09784 0C00 NOP -BFD09786 000840E2 BEQZC V0, 0xBFD0979A -206: return *((volatile uint32_t *)gpio_pin_ctrl_addr(gpio_id)); -BFD0978A 0018FC9E LW A0, 24(S8) -BFD0978E 4D9477E8 JALS gpio_pin_ctrl_addr -BFD09790 4D94 ADDIU T4, T4, -6 -BFD09792 0C00 NOP -BFD09794 6920 LW V0, 0(V0) -BFD09796 CC02 B 0xBFD0979C -BFD09798 0C00 NOP -207: } else { -208: return 0xFFFFFFFFul; -BFD0979A ED7F LI V0, -1 -209: } -210: } -BFD0979C 0FBE MOVE SP, S8 -BFD0979E 4BE5 LW RA, 20(SP) -BFD097A0 4BC4 LW S8, 16(SP) -BFD097A2 4C0D ADDIU SP, SP, 24 -BFD097A4 459F JR16 RA -BFD097A6 0C00 NOP -211: -212: -213: void GPIOSetControl(enum gpio_id_t gpio_id, uint32_t ctrl_val) -214: { -BFD092DC 4FF1 ADDIU SP, SP, -32 -BFD092DE CBE7 SW RA, 28(SP) -BFD092E0 CBC6 SW S8, 24(SP) -BFD092E2 0FDD MOVE S8, SP -BFD092E4 0020F89E SW A0, 32(S8) -BFD092E8 0024F8BE SW A1, 36(S8) -215: volatile uint32_t * p; -216: -217: if (gpio_is_valid(gpio_id)) { -BFD092EC 0020FC9E LW A0, 32(S8) -BFD092F0 40DA77E8 JALS gpio_is_valid -BFD092F2 0C0040DA BGTZ K0, 0xBFD0AAF6 -BFD092F4 0C00 NOP -BFD092F6 000C40E2 BEQZC V0, 0xBFD09312 -218: p = (volatile uint32_t *)gpio_pin_ctrl_addr(gpio_id); -BFD092FA 0020FC9E LW A0, 32(S8) -BFD092FE 4D9477E8 JALS gpio_pin_ctrl_addr -BFD09300 4D94 ADDIU T4, T4, -6 -BFD09302 0C00 NOP -BFD09304 0010F85E SW V0, 16(S8) -219: *p = ctrl_val; -BFD09308 0010FC5E LW V0, 16(S8) -BFD0930C 0024FC7E LW V1, 36(S8) -BFD09310 E9A0 SW V1, 0(V0) -220: } -221: } -BFD09312 0FBE MOVE SP, S8 -BFD09314 4BE7 LW RA, 28(SP) -BFD09316 4BC6 LW S8, 24(SP) -BFD09318 4C11 ADDIU SP, SP, 32 -BFD0931A 459F JR16 RA -BFD0931C 0C00 NOP -222: -223: -224: void GPIOControlAndOr(enum gpio_id_t gpio_id, uint32_t and_mask, uint32_t or_mask) -225: { -BFD08804 4FF1 ADDIU SP, SP, -32 -BFD08806 CBE7 SW RA, 28(SP) -BFD08808 CBC6 SW S8, 24(SP) -BFD0880A 0FDD MOVE S8, SP -BFD0880C 0020F89E SW A0, 32(S8) -BFD08810 0024F8BE SW A1, 36(S8) -BFD08814 0028F8DE SW A2, 40(S8) -226: volatile uint32_t * p; -227: -228: if (gpio_is_valid(gpio_id)) { -BFD08818 0020FC9E LW A0, 32(S8) -BFD0881C 40DA77E8 JALS gpio_is_valid -BFD0881E 0C0040DA BGTZ K0, 0xBFD0A022 -BFD08820 0C00 NOP -BFD08822 001340E2 BEQZC V0, 0xBFD0884C -229: p = (volatile uint32_t *)gpio_pin_ctrl_addr(gpio_id); -BFD08826 0020FC9E LW A0, 32(S8) -BFD0882A 4D9477E8 JALS gpio_pin_ctrl_addr -BFD0882C 4D94 ADDIU T4, T4, -6 -BFD0882E 0C00 NOP -BFD08830 0010F85E SW V0, 16(S8) -230: *p = (*p & and_mask) | or_mask; -BFD08834 0010FC5E LW V0, 16(S8) -BFD08838 69A0 LW V1, 0(V0) -BFD0883A 0024FC5E LW V0, 36(S8) -BFD0883E 449A AND16 V1, V0 -BFD08840 0028FC5E LW V0, 40(S8) -BFD08844 44DA OR16 V1, V0 -BFD08846 0010FC5E LW V0, 16(S8) -BFD0884A E9A0 SW V1, 0(V0) -231: } -232: } -BFD0884C 0FBE MOVE SP, S8 -BFD0884E 4BE7 LW RA, 28(SP) -BFD08850 4BC6 LW S8, 24(SP) -BFD08852 4C11 ADDIU SP, SP, 32 -BFD08854 459F JR16 RA -BFD08856 0C00 NOP -233: -234: -235: /** -236: * GPIOPropertySet - Program specified GPIO Pin configuration -237: * item. -238: * -239: * @author sworley -240: * -241: * @param gpio_id 0-based GPIO ID -242: * @param gpio_prop enumerated GPIO Property(configuration item) -243: * @param prop_val new property value -244: */ -245: void GPIOPropertySet ( enum gpio_id_t gpio_id, -246: enum gpio_prop_t gpio_prop, -247: uint16_t prop_val -248: ) -249: { -BFD04B98 4FF1 ADDIU SP, SP, -32 -BFD04B9A CBE7 SW RA, 28(SP) -BFD04B9C CBC6 SW S8, 24(SP) -BFD04B9E 0FDD MOVE S8, SP -BFD04BA0 0020F89E SW A0, 32(S8) -BFD04BA4 0024F8BE SW A1, 36(S8) -BFD04BA8 0C46 MOVE V0, A2 -BFD04BAA 0028385E SH V0, 40(S8) -250: volatile uint16_t * p; -251: uint16_t gp_cfg; -252: -253: gp_cfg = 0u; -BFD04BAE 0010381E SH ZERO, 16(S8) -254: -255: if ( gpio_is_valid(gpio_id) && ((uint16_t)gpio_prop < (uint16_t)GPIO_PROP_MAX) ) -BFD04BB2 0020FC9E LW A0, 32(S8) -BFD04BB6 40DA77E8 JALS gpio_is_valid -BFD04BB8 0C0040DA BGTZ K0, 0xBFD063BC -BFD04BBA 0C00 NOP -BFD04BBC 005140E2 BEQZC V0, 0xBFD04C62 -BFD04BC0 0024FC5E LW V0, 36(S8) -BFD04BC4 2D2F ANDI V0, V0, 0xFFFF -BFD04BC6 0009B042 SLTIU V0, V0, 9 -BFD04BCA 004A40E2 BEQZC V0, 0xBFD04C62 -256: { -257: p = (volatile uint16_t *)gpio_pin_ctrl_addr(gpio_id); -BFD04BCE 0020FC9E LW A0, 32(S8) -BFD04BD2 4D9477E8 JALS gpio_pin_ctrl_addr -BFD04BD4 4D94 ADDIU T4, T4, -6 -BFD04BD6 0C00 NOP -BFD04BD8 0014F85E SW V0, 20(S8) -258: gp_cfg = *p; -BFD04BDC 0014FC5E LW V0, 20(S8) -BFD04BE0 2920 LHU V0, 0(V0) -BFD04BE2 0010385E SH V0, 16(S8) -259: gp_cfg &= ~(gpio_cfg_tbl[gpio_prop].bit_mask); -BFD04BE6 BFD141A2 LUI V0, 0xBFD1 -BFD04BE8 FC7EBFD1 LDC1 F30, -898(S1) -BFD04BEA 0024FC7E LW V1, 36(S8) -BFD04BEE 25B4 SLL V1, V1, 2 -BFD04BF0 92743042 ADDIU V0, V0, -28044 -BFD04BF2 05269274 SLTI S3, S4, 1318 -BFD04BF4 0526 ADDU V0, V1, V0 -BFD04BF6 2920 LHU V0, 0(V0) -BFD04BF8 3B3C0042 SEH V0, V0 -BFD04BFA 44123B3C SH T9, 17426(GP) -BFD04BFC 4412 NOT16 V0, V0 -BFD04BFE 3B3C0062 SEH V1, V0 -BFD04C00 3C5E3B3C SH T9, 15454(GP) -BFD04C02 00103C5E LH V0, 16(S8) -BFD04C06 4493 AND16 V0, V1 -BFD04C08 3B3C0042 SEH V0, V0 -BFD04C0A 385E3B3C SH T9, 14430(GP) -BFD04C0C 0010385E SH V0, 16(S8) -260: gp_cfg |= (prop_val << gpio_cfg_tbl[gpio_prop].bit_pos) & -BFD04C10 0028347E LHU V1, 40(S8) -BFD04C14 BFD141A2 LUI V0, 0xBFD1 -BFD04C16 FC9EBFD1 LDC1 F30, -866(S1) -BFD04C18 0024FC9E LW A0, 36(S8) -BFD04C1C 2644 SLL A0, A0, 2 -BFD04C1E 92743042 ADDIU V0, V0, -28044 -BFD04C20 05289274 SLTI S3, S4, 1320 -BFD04C22 0528 ADDU V0, A0, V0 -BFD04C24 0922 LBU V0, 2(V0) -BFD04C26 10100062 SLLV V0, V0, V1 -BFD04C28 00621010 ADDI ZERO, S0, 98 -BFD04C2A 3B3C0062 SEH V1, V0 -BFD04C2C 41A23B3C SH T9, 16802(GP) -BFD04C40 3B3C0042 SEH V0, V0 -BFD04C42 44933B3C SH T9, 17555(GP) -BFD04C44 4493 AND16 V0, V1 -BFD04C46 3B3C0062 SEH V1, V0 -BFD04C48 3C5E3B3C SH T9, 15454(GP) -BFD04C4A 00103C5E LH V0, 16(S8) -BFD04C4E 44D3 OR16 V0, V1 -BFD04C50 3B3C0042 SEH V0, V0 -BFD04C52 385E3B3C SH T9, 14430(GP) -BFD04C54 0010385E SH V0, 16(S8) -261: gpio_cfg_tbl[gpio_prop].bit_mask; -BFD04C2E BFD141A2 LUI V0, 0xBFD1 -BFD04C30 FC9EBFD1 LDC1 F30, -866(S1) -BFD04C32 0024FC9E LW A0, 36(S8) -BFD04C36 2644 SLL A0, A0, 2 -BFD04C38 92743042 ADDIU V0, V0, -28044 -BFD04C3A 05289274 SLTI S3, S4, 1320 -BFD04C3C 0528 ADDU V0, A0, V0 -BFD04C3E 2920 LHU V0, 0(V0) -262: *p = gp_cfg; -BFD04C58 0014FC5E LW V0, 20(S8) -BFD04C5C 0010347E LHU V1, 16(S8) -BFD04C60 A9A0 SH V1, 0(V0) -263: } -264: } -BFD04C62 0FBE MOVE SP, S8 -BFD04C64 4BE7 LW RA, 28(SP) -BFD04C66 4BC6 LW S8, 24(SP) -BFD04C68 4C11 ADDIU SP, SP, 32 -BFD04C6A 459F JR16 RA -BFD04C6C 0C00 NOP -265: -266: -267: /** -268: * GPIOGetSlewRate - Return GPIO Pin Slew Rate -269: * -270: * @author sworley -271: * -272: * @param gpio_id 0-based GPIO ID -273: * -274: * @return uint8_t GPIO Pin Slew Rate: 0(Slow) or 1(Fast) -275: */ -276: uint8_t GPIOGetSlewRate( enum gpio_id_t gpio_id ) -277: { -BFD09024 4FF1 ADDIU SP, SP, -32 -BFD09026 CBE7 SW RA, 28(SP) -BFD09028 CBC6 SW S8, 24(SP) -BFD0902A 0FDD MOVE S8, SP -BFD0902C 0020F89E SW A0, 32(S8) -278: uint32_t addr; -279: uint8_t slew; -280: -281: addr = gpio_has_drv_str(gpio_id); -BFD09030 0020FC9E LW A0, 32(S8) -BFD09034 332277E8 JALS gpio_has_drv_str -BFD09036 0C003322 ADDIU T9, V0, 3072 -BFD09038 0C00 NOP -BFD0903A 0014F85E SW V0, 20(S8) -282: if ( 0ul != addr ) -BFD0903E 0014FC5E LW V0, 20(S8) -BFD09042 000940E2 BEQZC V0, 0xBFD09058 -283: { -284: slew = ((*(volatile uint8_t *)addr) >> GPIO_DRV_SLEW_BITPOS) & 0x01u; -BFD09046 0014FC5E LW V0, 20(S8) -BFD0904A 0920 LBU V0, 0(V0) -BFD0904C 2D2D ANDI V0, V0, 0xFF -BFD0904E 2D21 ANDI V0, V0, 0x1 -BFD09050 0010185E SB V0, 16(S8) -BFD09054 CC03 B 0xBFD0905C -BFD09056 0C00 NOP -285: } -286: else -287: { -288: slew = 0u; -BFD09058 0010181E SB ZERO, 16(S8) -289: } -290: -291: return slew; -BFD0905C 0010145E LBU V0, 16(S8) -292: } -BFD09060 0FBE MOVE SP, S8 -BFD09062 4BE7 LW RA, 28(SP) -BFD09064 4BC6 LW S8, 24(SP) -BFD09066 4C11 ADDIU SP, SP, 32 -BFD09068 459F JR16 RA -BFD0906A 0C00 NOP -293: -294: -295: /** -296: * GPIOSetSlewRate - Program GPIO Pin's Slew Rate -297: * -298: * @author sworley -299: * -300: * @param gpio_id 0-based GPIO ID -301: * @param slew_rate new slew rate: 0(Slow), Non-zero(Fast) -302: */ -303: void GPIOSetSlewRate ( enum gpio_id_t gpio_id, -304: enum gpio_slew_rate_t slew_rate ) -305: { -BFD08600 4FF1 ADDIU SP, SP, -32 -BFD08602 CBE7 SW RA, 28(SP) -BFD08604 CBC6 SW S8, 24(SP) -BFD08606 0FDD MOVE S8, SP -BFD08608 0020F89E SW A0, 32(S8) -BFD0860C 0024F8BE SW A1, 36(S8) -306: uint32_t addr; -307: -308: addr = gpio_has_drv_str(gpio_id ); -BFD08610 0020FC9E LW A0, 32(S8) -BFD08614 332277E8 JALS gpio_has_drv_str -BFD08616 0C003322 ADDIU T9, V0, 3072 -BFD08618 0C00 NOP -BFD0861A 0010F85E SW V0, 16(S8) -309: if ( addr ) -BFD0861E 0010FC5E LW V0, 16(S8) -BFD08622 001240E2 BEQZC V0, 0xBFD0864A -310: { -311: *(volatile uint8_t *)addr = (*(volatile uint8_t *)addr & -BFD08626 0010FC5E LW V0, 16(S8) -BFD0862A 0010FC7E LW V1, 16(S8) -BFD0862E 09B0 LBU V1, 0(V1) -BFD08630 2E3D ANDI A0, V1, 0xFF -BFD08632 FFFE3060 ADDIU V1, ZERO, -2 -BFD08634 449CFFFE LW RA, 17564(S8) -BFD08636 449C AND16 V1, A0 -BFD08638 2E3D ANDI A0, V1, 0xFF -BFD0863A 0024FC7E LW V1, 36(S8) -BFD0863E 2DBD ANDI V1, V1, 0xFF -BFD08640 2DB1 ANDI V1, V1, 0x1 -BFD08642 2DBD ANDI V1, V1, 0xFF -BFD08644 44DC OR16 V1, A0 -BFD08646 2DBD ANDI V1, V1, 0xFF -BFD08648 89A0 SB V1, 0(V0) -312: ~(GPIO_DRV_SLEW_MASK)) | -313: ((slew_rate << (GPIO_DRV_SLEW_BITPOS)) & (GPIO_DRV_SLEW_MASK)); -314: } -315: } -BFD0864A 0FBE MOVE SP, S8 -BFD0864C 4BE7 LW RA, 28(SP) -BFD0864E 4BC6 LW S8, 24(SP) -BFD08650 4C11 ADDIU SP, SP, 32 -BFD08652 459F JR16 RA -BFD08654 0C00 NOP -316: -317: -318: /** -319: * GPIOGetDriveStr - Get GPIO Pin's Drive Strength -320: * -321: * @author sworley -322: * -323: * @param gpio_id 0-based GPIO ID -324: * -325: * @return uint8_t Pin Drive Strength: 0=2mA, 1=4mA, 2=8mA, -326: * 3=12mA. -327: */ -328: uint8_t GPIOGetDriveStr ( enum gpio_id_t gpio_id ) -329: { -BFD09594 4FF1 ADDIU SP, SP, -32 -BFD09596 CBE7 SW RA, 28(SP) -BFD09598 CBC6 SW S8, 24(SP) -BFD0959A 0FDD MOVE S8, SP -BFD0959C 0020F89E SW A0, 32(S8) -330: uint32_t addr; -331: -332: addr = gpio_has_drv_str(gpio_id ); -BFD095A0 0020FC9E LW A0, 32(S8) -BFD095A4 332277E8 JALS gpio_has_drv_str -BFD095A6 0C003322 ADDIU T9, V0, 3072 -BFD095A8 0C00 NOP -BFD095AA 0010F85E SW V0, 16(S8) -333: if ( addr ) -BFD095AE 0010FC5E LW V0, 16(S8) -BFD095B2 000640E2 BEQZC V0, 0xBFD095C2 -334: { -335: return ((*(volatile uint8_t *)addr) >> GPIO_DRV_STR_BITPOS) & (GPIO_DRV_STR_MASK); -BFD095B6 0010FC5E LW V0, 16(S8) -BFD095BA 0920 LBU V0, 0(V0) -BFD095BC 0C40 MOVE V0, ZERO -BFD095BE CC02 B 0xBFD095C4 -BFD095C0 0C00 NOP -336: } -337: else -338: { -339: return 0u; -BFD095C2 0C40 MOVE V0, ZERO -340: } -341: } -BFD095C4 0FBE MOVE SP, S8 -BFD095C6 4BE7 LW RA, 28(SP) -BFD095C8 4BC6 LW S8, 24(SP) -BFD095CA 4C11 ADDIU SP, SP, 32 -BFD095CC 459F JR16 RA -BFD095CE 0C00 NOP -342: -343: -344: /** -345: * GPIOSetDriveStr - Program GPIO Pin's Drive Strength -346: * -347: * @author sworley -348: * -349: * @param gpio_id 0-based GPIO ID -350: * @param drv_str enumerated drive strength: 0=2mA, 1=4mA, -351: * 2=8mA, 3=12mA -352: */ -353: void GPIOSetDriveStr ( enum gpio_id_t gpio_id, -354: enum gpio_drv_str_t drv_str ) -355: { -BFD07D64 4FF1 ADDIU SP, SP, -32 -BFD07D66 CBE7 SW RA, 28(SP) -BFD07D68 CBC6 SW S8, 24(SP) -BFD07D6A 0FDD MOVE S8, SP -BFD07D6C 0020F89E SW A0, 32(S8) -BFD07D70 0024F8BE SW A1, 36(S8) -356: uint32_t addr; -357: uint8_t r8; -358: -359: addr = gpio_has_drv_str(gpio_id); -BFD07D74 0020FC9E LW A0, 32(S8) -BFD07D78 332277E8 JALS gpio_has_drv_str -BFD07D7A 0C003322 ADDIU T9, V0, 3072 -BFD07D7C 0C00 NOP -BFD07D7E 0010F85E SW V0, 16(S8) -360: if ( addr ) -BFD07D82 0010FC5E LW V0, 16(S8) -BFD07D86 001B40E2 BEQZC V0, 0xBFD07DC0 -361: { -362: r8 = *(volatile uint8_t *)addr & ~(GPIO_DRV_STR_MASK); -BFD07D8A 0010FC5E LW V0, 16(S8) -BFD07D8E 0920 LBU V0, 0(V0) -BFD07D90 2DAD ANDI V1, V0, 0xFF -BFD07D92 FFCF3040 ADDIU V0, ZERO, -49 -BFD07D94 4493FFCF LW S8, 17555(T7) -BFD07D96 4493 AND16 V0, V1 -BFD07D98 0014185E SB V0, 20(S8) -363: r8 += ((drv_str << GPIO_DRV_STR_BITPOS) & GPIO_DRV_STR_MASK); -BFD07D9C 0024FC5E LW V0, 36(S8) -BFD07DA0 2D2D ANDI V0, V0, 0xFF -BFD07DA2 2528 SLL V0, V0, 4 -BFD07DA4 2D2D ANDI V0, V0, 0xFF -BFD07DA6 0030D042 ANDI V0, V0, 48 -BFD07DAA 2DAD ANDI V1, V0, 0xFF -BFD07DAC 0014145E LBU V0, 20(S8) -BFD07DB0 0526 ADDU V0, V1, V0 -BFD07DB2 0014185E SB V0, 20(S8) -364: *(volatile uint8_t *)addr = r8; -BFD07DB6 0010FC5E LW V0, 16(S8) -BFD07DBA 0014147E LBU V1, 20(S8) -BFD07DBE 89A0 SB V1, 0(V0) -365: } -366: } -BFD07DC0 0FBE MOVE SP, S8 -BFD07DC2 4BE7 LW RA, 28(SP) -BFD07DC4 4BC6 LW S8, 24(SP) -BFD07DC6 4C11 ADDIU SP, SP, 32 -BFD07DC8 459F JR16 RA -BFD07DCA 0C00 NOP -367: -368: -369: /** -370: * GPIOGetDriveStrAndSlew - Return combined value representing -371: * Drive Strength and Slew Rate. -372: * -373: * @author sworley -374: * -375: * @param gpio_id 0-based GPIO ID -376: * -377: * @return uint8_t bit[0] = Slew Rate, bits[3:1]=0(Reserved), -378: * bits[5:4]=Drive Strength, bits[7:6]=0(Reserved) -379: */ -380: uint8_t GPIOGetDriveStrAndSlew ( enum gpio_id_t gpio_id ) -381: { -BFD095D0 4FF1 ADDIU SP, SP, -32 -BFD095D2 CBE7 SW RA, 28(SP) -BFD095D4 CBC6 SW S8, 24(SP) -BFD095D6 0FDD MOVE S8, SP -BFD095D8 0020F89E SW A0, 32(S8) -382: uint32_t addr; -383: -384: addr = gpio_has_drv_str(gpio_id ); -BFD095DC 0020FC9E LW A0, 32(S8) -BFD095E0 332277E8 JALS gpio_has_drv_str -BFD095E2 0C003322 ADDIU T9, V0, 3072 -BFD095E4 0C00 NOP -BFD095E6 0010F85E SW V0, 16(S8) -385: if ( addr ) -BFD095EA 0010FC5E LW V0, 16(S8) -BFD095EE 000640E2 BEQZC V0, 0xBFD095FE -386: { -387: return (*(volatile uint8_t *)addr); -BFD095F2 0010FC5E LW V0, 16(S8) -BFD095F6 0920 LBU V0, 0(V0) -BFD095F8 2D2D ANDI V0, V0, 0xFF -BFD095FA CC02 B 0xBFD09600 -BFD095FC 0C00 NOP -388: } -389: else -390: { -391: return 0u; -BFD095FE 0C40 MOVE V0, ZERO -392: } -393: } -BFD09600 0FBE MOVE SP, S8 -BFD09602 4BE7 LW RA, 28(SP) -BFD09604 4BC6 LW S8, 24(SP) -BFD09606 4C11 ADDIU SP, SP, 32 -BFD09608 459F JR16 RA -BFD0960A 0C00 NOP -394: -395: -396: /** -397: * GPIOSetDriveStrAndSlew - Program GPIO Pin's drive strength -398: * and slew rate. -399: * -400: * @author sworley -401: * -402: * @param gpio_id 0-based GPIO ID -403: * @param drv_and_slew bit[0] = Slew Rate, bits[3:1]=0(Reserved), -404: * bits[5:4]=Drive Strength, bits[7:6]=0(Reserved) -405: */ -406: void GPIOSetDriveStrAndSlew ( enum gpio_id_t gpio_id, -407: uint8_t drv_and_slew ) -408: { -BFD0802C 4FF1 ADDIU SP, SP, -32 -BFD0802E CBE7 SW RA, 28(SP) -BFD08030 CBC6 SW S8, 24(SP) -BFD08032 0FDD MOVE S8, SP -BFD08034 0020F89E SW A0, 32(S8) -BFD08036 0C450020 CMP.LT.PH AT, ZERO -BFD08038 0C45 MOVE V0, A1 -BFD0803A 0024185E SB V0, 36(S8) -409: uint32_t addr; -410: uint8_t r8; -411: -412: addr = gpio_has_drv_str(gpio_id); -BFD0803E 0020FC9E LW A0, 32(S8) -BFD08042 332277E8 JALS gpio_has_drv_str -BFD08044 0C003322 ADDIU T9, V0, 3072 -BFD08046 0C00 NOP -BFD08048 0010F85E SW V0, 16(S8) -413: if ( addr ) -BFD0804C 0010FC5E LW V0, 16(S8) -BFD08050 001840E2 BEQZC V0, 0xBFD08084 -414: { -415: r8 = *(volatile uint8_t *)addr & ~(GPIO_DRV_SLEW_MASK + GPIO_DRV_STR_MASK); -BFD08054 0010FC5E LW V0, 16(S8) -BFD08058 0920 LBU V0, 0(V0) -BFD0805A 2DAD ANDI V1, V0, 0xFF -BFD0805C FFCE3040 ADDIU V0, ZERO, -50 -BFD0805E 4493FFCE LW S8, 17555(T6) -BFD08060 4493 AND16 V0, V1 -BFD08062 0014185E SB V0, 20(S8) -416: r8 |= (drv_and_slew & (GPIO_DRV_SLEW_MASK + GPIO_DRV_STR_MASK)); -BFD08066 0024145E LBU V0, 36(S8) -BFD0806A 0031D042 ANDI V0, V0, 49 -BFD0806E 2DAD ANDI V1, V0, 0xFF -BFD08070 0014145E LBU V0, 20(S8) -BFD08074 44D3 OR16 V0, V1 -BFD08076 0014185E SB V0, 20(S8) -417: *(volatile uint8_t *)addr = r8; -BFD0807A 0010FC5E LW V0, 16(S8) -BFD0807E 0014147E LBU V1, 20(S8) -BFD08082 89A0 SB V1, 0(V0) -418: } -419: } -BFD08084 0FBE MOVE SP, S8 -BFD08086 4BE7 LW RA, 28(SP) -BFD08088 4BC6 LW S8, 24(SP) -BFD0808A 4C11 ADDIU SP, SP, 32 -BFD0808C 459F JR16 RA -BFD0808E 0C00 NOP -420: -421: -422: /** -423: * GPIOSetOutput - Program GPIO Pin's output state using Pin -424: * configuration register (not parallel output register). -425: * -426: * @author sworley -427: * -428: * @param gpio_id 0-based GPIO ID -429: * @param gpio_state pin state: actual pin state at pad will -430: * depend upon GPIO Output invert -431: * configuration. -432: * @note peforms a byte wide write to byte offset 2 of the GPIO -433: * Pin's 32-bit configuration register. No -434: * read-modify-write. -435: */ -436: void GPIOSetOutput ( enum gpio_id_t gpio_id, -437: uint8_t gpio_state -438: ) -439: { -BFD08658 4FF1 ADDIU SP, SP, -32 -BFD0865A CBE7 SW RA, 28(SP) -BFD0865C CBC6 SW S8, 24(SP) -BFD0865E 0FDD MOVE S8, SP -BFD08660 0020F89E SW A0, 32(S8) -BFD08662 0C450020 CMP.LT.PH AT, ZERO -BFD08664 0C45 MOVE V0, A1 -BFD08666 0024185E SB V0, 36(S8) -440: volatile uint8_t * p; -441: -442: if ( gpio_is_valid(gpio_id) ) -BFD0866A 0020FC9E LW A0, 32(S8) -BFD0866E 40DA77E8 JALS gpio_is_valid -BFD08670 0C0040DA BGTZ K0, 0xBFD09E74 -BFD08672 0C00 NOP -BFD08674 001540E2 BEQZC V0, 0xBFD086A2 -443: { -444: p = (volatile uint8_t *)(gpio_pin_ctrl_addr(gpio_id) + 2ul); -BFD08678 0020FC9E LW A0, 32(S8) -BFD0867C 4D9477E8 JALS gpio_pin_ctrl_addr -BFD0867E 4D94 ADDIU T4, T4, -6 -BFD08680 0C00 NOP -BFD08682 4C44 ADDIU V0, V0, 2 -BFD08684 0010F85E SW V0, 16(S8) -445: if (gpio_state) { -BFD08688 0024145E LBU V0, 36(S8) -BFD0868C 000640E2 BEQZC V0, 0xBFD0869C -446: *p = 0x01u; -BFD08690 0010FC5E LW V0, 16(S8) -BFD08694 ED81 LI V1, 1 -BFD08696 89A0 SB V1, 0(V0) -BFD08698 CC04 B 0xBFD086A2 -BFD0869A 0C00 NOP -447: } else { -448: *p = 0u; -BFD0869C 0010FC5E LW V0, 16(S8) -BFD086A0 8820 SB S0, 0(V0) -449: } -450: } -451: } -BFD086A2 0FBE MOVE SP, S8 -BFD086A4 4BE7 LW RA, 28(SP) -BFD086A6 4BC6 LW S8, 24(SP) -BFD086A8 4C11 ADDIU SP, SP, 32 -BFD086AA 459F JR16 RA -BFD086AC 0C00 NOP -452: -453: -454: void GPIOToggleOutput ( enum gpio_id_t gpio_id ) -455: { -BFD08C5C 4FF1 ADDIU SP, SP, -32 -BFD08C5E CBE7 SW RA, 28(SP) -BFD08C60 CBC6 SW S8, 24(SP) -BFD08C62 0FDD MOVE S8, SP -BFD08C64 0020F89E SW A0, 32(S8) -456: volatile uint8_t * p; -457: -458: if ( gpio_is_valid(gpio_id) ) -BFD08C68 0020FC9E LW A0, 32(S8) -BFD08C6C 40DA77E8 JALS gpio_is_valid -BFD08C6E 0C0040DA BGTZ K0, 0xBFD0A472 -BFD08C70 0C00 NOP -BFD08C72 001240E2 BEQZC V0, 0xBFD08C9A -459: { -460: p = (volatile uint8_t *)(gpio_pin_ctrl_addr(gpio_id) + 2ul); -BFD08C76 0020FC9E LW A0, 32(S8) -BFD08C7A 4D9477E8 JALS gpio_pin_ctrl_addr -BFD08C7C 4D94 ADDIU T4, T4, -6 -BFD08C7E 0C00 NOP -BFD08C80 4C44 ADDIU V0, V0, 2 -BFD08C82 0010F85E SW V0, 16(S8) -461: *p ^= 0x01u; -BFD08C86 0010FC5E LW V0, 16(S8) -BFD08C8A 0920 LBU V0, 0(V0) -BFD08C8C 2D2D ANDI V0, V0, 0xFF -BFD08C8E 00017042 XORI V0, V0, 1 -BFD08C92 2DAD ANDI V1, V0, 0xFF -BFD08C94 0010FC5E LW V0, 16(S8) -BFD08C98 89A0 SB V1, 0(V0) -462: } -463: } -BFD08C9A 0FBE MOVE SP, S8 -BFD08C9C 4BE7 LW RA, 28(SP) -BFD08C9E 4BC6 LW S8, 24(SP) -BFD08CA0 4C11 ADDIU SP, SP, 32 -BFD08CA2 459F JR16 RA -BFD08CA4 0C00 NOP -464: -465: -466: /** -467: * GPIOReadPin - Read GPIO Pin's Pad Input from configuration -468: * register. -469: * -470: * @author sworley -471: * -472: * @param gpio_id 0-based GPIO ID. -473: * -474: * @return uint8_t 0 or 1 depending upon the state of the GPIO -475: * pad. -476: * @note performs a byte read of offset 3 of the GPIO Pin's -477: * 32-bit configuration register. -478: */ -479: uint8_t GPIOReadPin( enum gpio_id_t gpio_id ) -480: { -BFD0960C 4FF5 ADDIU SP, SP, -24 -BFD0960E CBE5 SW RA, 20(SP) -BFD09610 CBC4 SW S8, 16(SP) -BFD09612 0FDD MOVE S8, SP -BFD09614 0018F89E SW A0, 24(S8) -481: if ( gpio_is_valid(gpio_id) ) -BFD09618 0018FC9E LW A0, 24(S8) -BFD0961C 40DA77E8 JALS gpio_is_valid -BFD0961E 0C0040DA BGTZ K0, 0xBFD0AE22 -BFD09620 0C00 NOP -BFD09622 000A40E2 BEQZC V0, 0xBFD0963A -482: { -483: return *((volatile uint8_t *)(gpio_pin_ctrl_addr(gpio_id) + 3ul)); -BFD09626 0018FC9E LW A0, 24(S8) -BFD0962A 4D9477E8 JALS gpio_pin_ctrl_addr -BFD0962C 4D94 ADDIU T4, T4, -6 -BFD0962E 0C00 NOP -BFD09630 4C46 ADDIU V0, V0, 3 -BFD09632 0920 LBU V0, 0(V0) -BFD09634 2D2D ANDI V0, V0, 0xFF -BFD09636 CC02 B 0xBFD0963C -BFD09638 0C00 NOP -484: } -485: else -486: { -487: return 0u; -BFD0963A 0C40 MOVE V0, ZERO -488: } -489: } -BFD0963C 0FBE MOVE SP, S8 -BFD0963E 4BE5 LW RA, 20(SP) -BFD09640 4BC4 LW S8, 16(SP) -BFD09642 4C0D ADDIU SP, SP, 24 -BFD09644 459F JR16 RA -BFD09646 0C00 NOP -490: -491: -492: /** GPIOPinLock - Lock specified GPIO's control register. -493: * @param enum gpio_id_t zero based GPIO ID -494: * @note Lock bit is only cleared on POR. Lock registers -495: * are in reverse order, first register is at top address. -496: * GPIO_LOCK_BASE defined to top(first) register address. -497: * */ -498: void GPIOPinLock(enum gpio_id_t gpio_id) -499: { -BFD07ADC 4FF1 ADDIU SP, SP, -32 -BFD07ADE CBE7 SW RA, 28(SP) -BFD07AE0 CBC6 SW S8, 24(SP) -BFD07AE2 0FDD MOVE S8, SP -BFD07AE4 0020F89E SW A0, 32(S8) -500: uint32_t addr; -501: uint8_t bank, bitpos; -502: -503: if (gpio_is_valid(gpio_id)) { -BFD07AE8 0020FC9E LW A0, 32(S8) -BFD07AEC 40DA77E8 JALS gpio_is_valid -BFD07AEE 0C0040DA BGTZ K0, 0xBFD092F2 -BFD07AF0 0C00 NOP -BFD07AF2 002440E2 BEQZC V0, 0xBFD07B3E -504: bank = gpio_bank_num(gpio_id); // 0 - 4 -BFD07AF6 0020FC9E LW A0, 32(S8) -BFD07AFA 4E9677E8 JALS gpio_bank_num -BFD07AFC 4E96 ADDIU S4, S4, -5 -BFD07AFE 0C00 NOP -BFD07B00 0010185E SB V0, 16(S8) -505: bitpos = gpio_pin_num(gpio_id); // 0 - 31 -BFD07B04 0020FC9E LW A0, 32(S8) -BFD07B08 4EA677E8 JALS gpio_pin_num -BFD07B0A 4EA6 ADDIU S5, S5, 3 -BFD07B0C 0C00 NOP -BFD07B0E 0011185E SB V0, 17(S8) -506: addr = (uint32_t)(GPIO_LOCK_BASE) - (bank << 2); -BFD07B12 0010145E LBU V0, 16(S8) -BFD07B16 2524 SLL V0, V0, 2 -BFD07B18 A00841A3 LUI V1, 0xA008 -BFD07B1C 13F05063 ORI V1, V1, 5104 -BFD07B1E 052713F0 ADDI RA, S0, 1319 -BFD07B20 0527 SUBU V0, V1, V0 -BFD07B22 0014F85E SW V0, 20(S8) -507: *(volatile uint32_t *)addr |= (1ul << bitpos); -BFD07B26 0014FC5E LW V0, 20(S8) -BFD07B2A 0014FC7E LW V1, 20(S8) -BFD07B2E 6A30 LW A0, 0(V1) -BFD07B30 0011147E LBU V1, 17(S8) -BFD07B34 EE81 LI A1, 1 -BFD07B36 181000A3 SLLV V1, V1, A1 -BFD07B38 44DC1810 SB ZERO, 17628(S0) -BFD07B3A 44DC OR16 V1, A0 -BFD07B3C E9A0 SW V1, 0(V0) -508: } -509: } -BFD07B3E 0FBE MOVE SP, S8 -BFD07B40 4BE7 LW RA, 28(SP) -BFD07B42 4BC6 LW S8, 24(SP) -BFD07B44 4C11 ADDIU SP, SP, 32 -BFD07B46 459F JR16 RA -BFD07B48 0C00 NOP -510: -511: -512: /* end mec14xx_gpio.c */ -513: /** @} -514: */ -515: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/mec14xx_bbled.c -------- -1: /***************************************************************************** -2: * Copyright 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file mec14xx_bbled.c -22: *MEC14xx Breating-Blinking LED definitions -23: */ -24: /** @defgroup MEC14xx Peripherals BBLED -25: */ -26: -27: #include "appcfg.h" -28: #include "platform.h" -29: #include "MEC14xx/mec14xx.h" -30: #include "MEC14xx/mec14xx_pcr.h" -31: #include "MEC14xx/mec14xx_bbled.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_bbled.h" -34: -35: #ifdef __cplusplus -36: extern "C" { -37: #endif -38: -39: -40: static uint32_t led_addr(uint8_t led_id) -41: { -BFD09420 4FB0 ADDIU SP, SP, -8 -BFD09422 CBC1 SW S8, 4(SP) -BFD09424 0FDD MOVE S8, SP -BFD09426 0C44 MOVE V0, A0 -BFD09428 0008185E SB V0, 8(S8) -42: if (led_id < (LED_ID_MAX) ) -BFD0942C 0008145E LBU V0, 8(S8) -BFD09430 0003B042 SLTIU V0, V0, 3 -BFD09434 000B40E2 BEQZC V0, 0xBFD0944E -43: { -44: return ((LED0_BASE) + (led_id << 8)); -BFD09438 0008145E LBU V0, 8(S8) -BFD0943C 2520 SLL V0, V0, 8 -BFD0943E 0C62 MOVE V1, V0 -BFD09440 A00041A2 LUI V0, 0xA000 -BFD09444 B8005042 ORI V0, V0, -18432 -BFD09446 0526B800 SDC1 F0, 1318(ZERO) -BFD09448 0526 ADDU V0, V1, V0 -BFD0944A CC05 B 0xBFD09456 -BFD0944C 0C00 NOP -45: } -46: else -47: { -48: return (LED0_BASE); -BFD0944E A00041A2 LUI V0, 0xA000 -BFD09452 B8005042 ORI V0, V0, -18432 -BFD09454 0FBEB800 SDC1 F0, 4030(ZERO) -49: } -50: } -BFD09456 0FBE MOVE SP, S8 -BFD09458 4BC1 LW S8, 4(SP) -BFD0945A 4C05 ADDIU SP, SP, 8 -BFD0945C 459F JR16 RA -BFD0945E 0C00 NOP -51: -52: #ifdef LED_ENABLE_VALID_CHECK -53: -54: static uint8_t led_is_valid(uint8_t led_id) -55: { -56: if (led_id < (LED_ID_MAX)) { -57: return true; -58: } -59: return false; -60: } -61: -62: #else -63: -64: static uint8_t led_is_valid(uint8_t led_id) { ( void ) led_id; return (MEC14XX_TRUE); } -BFD09E6C 4FB0 ADDIU SP, SP, -8 -BFD09E6E CBC1 SW S8, 4(SP) -BFD09E70 0FDD MOVE S8, SP -BFD09E72 0C44 MOVE V0, A0 -BFD09E74 0008185E SB V0, 8(S8) -BFD09E78 ED01 LI V0, 1 -BFD09E7A 0FBE MOVE SP, S8 -BFD09E7C 4BC1 LW S8, 4(SP) -BFD09E7E 4C05 ADDIU SP, SP, 8 -BFD09E80 459F JR16 RA -BFD09E82 0C00 NOP -65: -66: #endif -67: -68: -69: /** -70: @brief MEC1404 LED are alternate functions of GPIO pins. -71: @note - -72: LED0 is GPIO157 Function 1 -73: LED1 is GPIO156 Function 1 -74: LED2 is GPIO104 Function 1 -75: */ -76: -77: static const uint8_t led_pcr_slp2_bitpos[LED_ID_MAX] = { -78: (PCR_EC2_LED0_SLP_BITPOS), -79: (PCR_EC2_LED1_SLP_BITPOS), -80: (PCR_EC2_LED2_SLP_BITPOS) -81: }; -82: -83: -84: static const uint16_t led_gpio_tbl[LED_ID_MAX] = { -85: (((uint16_t)(GPIO_FUNC_1)<<8) + (uint16_t)GPIO_0157_ID), -86: (((uint16_t)(GPIO_FUNC_1)<<8) + (uint16_t)GPIO_0156_ID), -87: (((uint16_t)(GPIO_FUNC_1)<<8) + (uint16_t)GPIO_0104_ID) -88: }; -89: -90: -91: -92: /** -93: * led_sleep_en - Enable/Disable gating of clocks on idle to the -94: * BBLED block -95: * -96: * -97: * @param uint8_t sleep_en (1=Enable sleep on idle), (0=No sleep -98: * on idle). -99: * @param uint8_t LED ID (0-3) -100: * @note if LED ID > 3 no action taken. -101: */ -102: void led_sleep_en(uint8_t led_id, uint8_t sleep_en) -103: { -BFD05D0C 4FF1 ADDIU SP, SP, -32 -BFD05D0E CBE7 SW RA, 28(SP) -BFD05D10 CBC6 SW S8, 24(SP) -BFD05D12 0FDD MOVE S8, SP -BFD05D14 0C64 MOVE V1, A0 -BFD05D16 0C45 MOVE V0, A1 -BFD05D18 0020187E SB V1, 32(S8) -BFD05D1C 0024185E SB V0, 36(S8) -104: uint32_t slp_mask; -105: uint32_t laddr; -106: -107: slp_mask = 0ul; -BFD05D20 0010F81E SW ZERO, 16(S8) -108: if ( led_is_valid(led_id) ) { -BFD05D24 0020145E LBU V0, 32(S8) -BFD05D28 0C82 MOVE A0, V0 -BFD05D2A 4F3677E8 JALS led_is_valid -BFD05D2C 4F36 ADDIU T9, T9, -5 -BFD05D2E 0C00 NOP -BFD05D30 003F40E2 BEQZC V0, 0xBFD05DB2 -109: slp_mask = (1ul << led_pcr_slp2_bitpos[led_id]); -BFD05D34 0020147E LBU V1, 32(S8) -BFD05D38 BFD041A2 LUI V0, 0xBFD0 -BFD05D3A 3042BFD0 LDC1 F30, 12354(S0) -BFD05D3C 01743042 ADDIU V0, V0, 372 -BFD05D40 0526 ADDU V0, V1, V0 -BFD05D42 0920 LBU V0, 0(V0) -BFD05D44 ED81 LI V1, 1 -BFD05D46 10100062 SLLV V0, V0, V1 -BFD05D48 F85E1010 ADDI ZERO, S0, -1954 -BFD05D4A 0010F85E SW V0, 16(S8) -110: if ( sleep_en ) { -BFD05D4E 0024145E LBU V0, 36(S8) -BFD05D52 002040E2 BEQZC V0, 0xBFD05D96 -111: PCR->EC_SLEEP_EN2 |= slp_mask; -BFD05D56 A00841A2 LUI V0, 0xA008 -BFD05D5A 01005042 ORI V0, V0, 256 -BFD05D5E A00841A3 LUI V1, 0xA008 -BFD05D62 01005063 ORI V1, V1, 256 -BFD05D66 6A39 LW A0, 36(V1) -BFD05D68 0010FC7E LW V1, 16(S8) -BFD05D6C 44DC OR16 V1, A0 -BFD05D6E E9A9 SW V1, 36(V0) -112: laddr = led_addr(led_id); -BFD05D70 0020145E LBU V0, 32(S8) -BFD05D74 0C82 MOVE A0, V0 -BFD05D76 4A1077E8 JALS led_addr -BFD05D78 4A10 LW S0, 64(SP) -BFD05D7A 0C00 NOP -BFD05D7C 0014F85E SW V0, 20(S8) -113: ((BBLED_TypeDef *)laddr)->CONFIG &= ~(0x03ul); -BFD05D80 0014FC5E LW V0, 20(S8) -BFD05D84 0014FC7E LW V1, 20(S8) -BFD05D88 6A30 LW A0, 0(V1) -BFD05D8A FFFC3060 ADDIU V1, ZERO, -4 -BFD05D8C 449CFFFC LW RA, 17564(GP) -BFD05D8E 449C AND16 V1, A0 -BFD05D90 E9A0 SW V1, 0(V0) -BFD05D92 CC0F B 0xBFD05DB2 -BFD05D94 0C00 NOP -114: } else { -115: PCR->EC_SLEEP_EN2 &= ~(slp_mask); -BFD05D96 A00841A2 LUI V0, 0xA008 -BFD05D9A 01005042 ORI V0, V0, 256 -BFD05D9E A00841A3 LUI V1, 0xA008 -BFD05DA2 01005063 ORI V1, V1, 256 -BFD05DA6 6A39 LW A0, 36(V1) -BFD05DA8 0010FC7E LW V1, 16(S8) -BFD05DAC 441B NOT16 V1, V1 -BFD05DAE 449C AND16 V1, A0 -BFD05DB0 E9A9 SW V1, 36(V0) -116: } -117: } -118: } -BFD05DB2 0FBE MOVE SP, S8 -BFD05DB4 4BE7 LW RA, 28(SP) -BFD05DB6 4BC6 LW S8, 24(SP) -BFD05DB8 4C11 ADDIU SP, SP, 32 -BFD05DBA 459F JR16 RA -BFD05DBC 0C00 NOP -119: -120: -121: /** -122: * led_reset - Reset the specified LED hardware block. -123: * -124: * @author sworley -125: * -126: * @param led_id 0-based LED ID -127: * @note Sets the LED's soft reset bit and waits for hardware to -128: * clear it. Will wait up to 0x10000 times. -129: */ -130: void led_reset(uint8_t led_id) -131: { -BFD07FC8 4FF1 ADDIU SP, SP, -32 -BFD07FCA CBE7 SW RA, 28(SP) -BFD07FCC CBC6 SW S8, 24(SP) -BFD07FCE 0FDD MOVE S8, SP -BFD07FD0 0C44 MOVE V0, A0 -BFD07FD2 0020185E SB V0, 32(S8) -132: uint32_t p; -133: uint32_t cnt; -134: -135: p = led_addr(led_id); -BFD07FD6 0020145E LBU V0, 32(S8) -BFD07FDA 0C82 MOVE A0, V0 -BFD07FDC 4A1077E8 JALS led_addr -BFD07FDE 4A10 LW S0, 64(SP) -BFD07FE0 0C00 NOP -BFD07FE2 0014F85E SW V0, 20(S8) -136: ((BBLED_TypeDef *)p)->CONFIG = (LED_CFG_RESET); -BFD07FE6 0014FC5E LW V0, 20(S8) -BFD07FEA 00803060 ADDIU V1, ZERO, 128 -BFD07FEE E9A0 SW V1, 0(V0) -137: -138: cnt = 0x100000UL; -BFD07FF0 001041A2 LUI V0, 0x10 -BFD07FF4 0010F85E SW V0, 16(S8) -139: while ( ((BBLED_TypeDef *)p)->CONFIG & (LED_CFG_RESET) ) { -BFD07FF8 CC0A B 0xBFD0800E -BFD07FFA 0C00 NOP -BFD0800E 0014FC5E LW V0, 20(S8) -BFD08012 6920 LW V0, 0(V0) -BFD08014 2D20 ANDI V0, V0, 0x80 -BFD08016 FFF140A2 BNEZC V0, 0xBFD07FFC -BFD08018 CC02FFF1 LW RA, -13310(S1) -BFD0801A CC02 B 0xBFD08020 -BFD0801C 0C00 NOP -140: if ( cnt != 0UL ) { -BFD07FFC 0010FC5E LW V0, 16(S8) -BFD08000 000D40E2 BEQZC V0, 0xBFD0801E -141: cnt--; -BFD08004 0010FC5E LW V0, 16(S8) -BFD08008 6D2E ADDIU V0, V0, -1 -BFD0800A 0010F85E SW V0, 16(S8) -142: } else { -143: break; -BFD0801E 0C00 NOP -144: } -145: } -146: } -BFD08020 0FBE MOVE SP, S8 -BFD08022 4BE7 LW RA, 28(SP) -BFD08024 4BC6 LW S8, 24(SP) -BFD08026 4C11 ADDIU SP, SP, 32 -BFD08028 459F JR16 RA -BFD0802A 0C00 NOP -147: -148: -149: uint8_t led_get_gpio_num(uint8_t led_id) -150: { -BFD099EC 4FB0 ADDIU SP, SP, -8 -BFD099EE CBC1 SW S8, 4(SP) -BFD099F0 0FDD MOVE S8, SP -BFD099F2 0C44 MOVE V0, A0 -BFD099F4 0008185E SB V0, 8(S8) -151: return led_gpio_tbl[(led_id & ((LED_ID_MAX)-1u))]; -BFD099F8 0008145E LBU V0, 8(S8) -BFD099FC 2DA2 ANDI V1, V0, 0x2 -BFD099FE BFD041A2 LUI V0, 0xBFD0 -BFD09A00 25B2BFD0 LDC1 F30, 9650(S0) -BFD09A02 25B2 SLL V1, V1, 1 -BFD09A04 01783042 ADDIU V0, V0, 376 -BFD09A08 0526 ADDU V0, V1, V0 -BFD09A0A 2920 LHU V0, 0(V0) -BFD09A0C 2D2D ANDI V0, V0, 0xFF -152: } -BFD09A0E 0FBE MOVE SP, S8 -BFD09A10 4BC1 LW S8, 4(SP) -BFD09A12 4C05 ADDIU SP, SP, 8 -BFD09A14 459F JR16 RA -BFD09A16 0C00 NOP -153: -154: -155: /** -156: * led_init - Initialize the specified LED -157: * -158: * @author sworley -159: * -160: * @param led_id 0-based LED ID -161: * @note Configures the LED's GPIO pin for LED function and then -162: * peforms a soft reset of the LED hardware. -163: */ -164: void led_init(uint8_t led_id) -165: { -BFD07CFC 4FF1 ADDIU SP, SP, -32 -BFD07CFE CBE7 SW RA, 28(SP) -BFD07D00 CBC6 SW S8, 24(SP) -BFD07D02 0FDD MOVE S8, SP -BFD07D04 0C44 MOVE V0, A0 -BFD07D06 0020185E SB V0, 32(S8) -166: uint16_t ledi; -167: -168: if ( led_id < LED_ID_MAX ) -BFD07D0A 0020145E LBU V0, 32(S8) -BFD07D0E 0003B042 SLTIU V0, V0, 3 -BFD07D12 002040E2 BEQZC V0, 0xBFD07D56 -169: { -170: /* bits[7:0] = GPIO_ID, bits[15:8] = GPIO Function */ -171: ledi = led_gpio_tbl[led_id]; -BFD07D16 0020147E LBU V1, 32(S8) -BFD07D1A BFD041A2 LUI V0, 0xBFD0 -BFD07D1C 25B2BFD0 LDC1 F30, 9650(S0) -BFD07D1E 25B2 SLL V1, V1, 1 -BFD07D20 01783042 ADDIU V0, V0, 376 -BFD07D24 0526 ADDU V0, V1, V0 -BFD07D26 2920 LHU V0, 0(V0) -BFD07D28 0010385E SH V0, 16(S8) -172: GPIOPropertySet((ledi & 0xFF), GPIO_PROP_MUX_SEL, (ledi >> 8) & 0xFF); -BFD07D2C 0010345E LHU V0, 16(S8) -BFD07D30 2D2D ANDI V0, V0, 0xFF -BFD07D32 0C62 MOVE V1, V0 -BFD07D34 0010345E LHU V0, 16(S8) -BFD07D38 2521 SRL V0, V0, 8 -BFD07D3A 2D2F ANDI V0, V0, 0xFFFF -BFD07D3C 0C83 MOVE A0, V1 -BFD07D3E EE87 LI A1, 7 -BFD07D40 0CC2 MOVE A2, V0 -BFD07D42 25CC77E8 JALS GPIOPropertySet -BFD07D44 25CC SLL V1, A0, 6 -BFD07D46 0C00 NOP -173: led_reset(ledi & 0xFF); -BFD07D48 0010345E LHU V0, 16(S8) -BFD07D4C 2D2D ANDI V0, V0, 0xFF -BFD07D4E 0C82 MOVE A0, V0 -BFD07D50 3FE477E8 JALS led_reset -BFD07D52 0C003FE4 LH RA, 3072(A0) -BFD07D54 0C00 NOP -174: } -175: } -BFD07D56 0FBE MOVE SP, S8 -BFD07D58 4BE7 LW RA, 28(SP) -BFD07D5A 4BC6 LW S8, 24(SP) -BFD07D5C 4C11 ADDIU SP, SP, 32 -BFD07D5E 459F JR16 RA -BFD07D60 0C00 NOP -176: -177: -178: /** -179: * led_mode_blink - Enable LED hardware blink -180: * -181: * @author sworley -182: * -183: * @param led_id 0-based LED ID -184: * @param duty_cycle duty cycle (0x80 = 50%) -185: * @param prescale sets the blink frequency -186: * @note Blink frequency is (32768 * 255)/(prescale + 1) Hz -187: */ -188: void led_mode_blink(uint8_t led_id, -189: uint8_t duty_cycle, -190: uint16_t prescale) -191: { -BFD07914 4FF1 ADDIU SP, SP, -32 -BFD07916 CBE7 SW RA, 28(SP) -BFD07918 CBC6 SW S8, 24(SP) -BFD0791A 0FDD MOVE S8, SP -BFD0791C 0C65 MOVE V1, A1 -BFD0791E 0C46 MOVE V0, A2 -BFD07920 0020189E SB A0, 32(S8) -BFD07924 0024187E SB V1, 36(S8) -BFD07928 0028385E SH V0, 40(S8) -192: uint32_t pLed; -193: -194: pLed = 0UL; -BFD0792C 0010F81E SW ZERO, 16(S8) -195: -196: if (led_is_valid(led_id)) { -BFD07930 0020145E LBU V0, 32(S8) -BFD07934 0C82 MOVE A0, V0 -BFD07936 4F3677E8 JALS led_is_valid -BFD07938 4F36 ADDIU T9, T9, -5 -BFD0793A 0C00 NOP -BFD0793C 001E40E2 BEQZC V0, 0xBFD0797C -197: pLed = led_addr(led_id); -BFD07940 0020145E LBU V0, 32(S8) -BFD07944 0C82 MOVE A0, V0 -BFD07946 4A1077E8 JALS led_addr -BFD07948 4A10 LW S0, 64(SP) -BFD0794A 0C00 NOP -BFD0794C 0010F85E SW V0, 16(S8) -198: -199: ((BBLED_TypeDef *)pLed)->CONFIG = LED_CFG_CNTL_BLINK; -BFD07950 0010FC5E LW V0, 16(S8) -BFD07954 ED82 LI V1, 2 -BFD07956 E9A0 SW V1, 0(V0) -200: ((BBLED_TypeDef *)pLed)->LIMIT = (uint32_t)duty_cycle; -BFD07958 0010FC5E LW V0, 16(S8) -BFD0795C 0024147E LBU V1, 36(S8) -BFD07960 E9A1 SW V1, 4(V0) -201: ((BBLED_TypeDef *)pLed)->DELAY = (uint32_t)prescale; -BFD07962 0010FC5E LW V0, 16(S8) -BFD07966 0028347E LHU V1, 40(S8) -BFD0796A E9A2 SW V1, 8(V0) -202: ((BBLED_TypeDef *)pLed)->CONFIG |= (LED_CFG_EN_UPDATE); -BFD0796C 0010FC5E LW V0, 16(S8) -BFD07970 0010FC7E LW V1, 16(S8) -BFD07974 69B0 LW V1, 0(V1) -BFD07976 00405063 ORI V1, V1, 64 -BFD0797A E9A0 SW V1, 0(V0) -203: } -204: } -BFD0797C 0FBE MOVE SP, S8 -BFD0797E 4BE7 LW RA, 28(SP) -BFD07980 4BC6 LW S8, 24(SP) -BFD07982 4C11 ADDIU SP, SP, 32 -BFD07984 459F JR16 RA -BFD07986 0C00 NOP -205: -206: -207: /** -208: * led_out_toggle - Toggle the LED output pin. -209: * -210: * @author sworley -211: * -212: * @param led_id 0-based LED ID. -213: */ -214: void led_out_toggle(uint8_t led_id) -215: { -BFD085A8 4FF1 ADDIU SP, SP, -32 -BFD085AA CBE7 SW RA, 28(SP) -BFD085AC CBC6 SW S8, 24(SP) -BFD085AE 0FDD MOVE S8, SP -BFD085B0 0C44 MOVE V0, A0 -BFD085B2 0020185E SB V0, 32(S8) -216: uint32_t p; -217: -218: if (led_is_valid(led_id)) { -BFD085B6 0020145E LBU V0, 32(S8) -BFD085BA 0C82 MOVE A0, V0 -BFD085BC 4F3677E8 JALS led_is_valid -BFD085BE 4F36 ADDIU T9, T9, -5 -BFD085C0 0C00 NOP -BFD085C2 001740E2 BEQZC V0, 0xBFD085F4 -219: p = led_addr(led_id); -BFD085C6 0020145E LBU V0, 32(S8) -BFD085CA 0C82 MOVE A0, V0 -BFD085CC 4A1077E8 JALS led_addr -BFD085CE 4A10 LW S0, 64(SP) -BFD085D0 0C00 NOP -BFD085D2 0010F85E SW V0, 16(S8) -220: -221: if (((BBLED_TypeDef *)p)->CONFIG & LED_CFG_CNTL_MASK) { -BFD085D6 0010FC5E LW V0, 16(S8) -BFD085DA 6920 LW V0, 0(V0) -BFD085DC 2D23 ANDI V0, V0, 0x3 -BFD085DE 000540E2 BEQZC V0, 0xBFD085EC -222: ((BBLED_TypeDef *)p)->CONFIG = LED_CFG_CNTL_LO; -BFD085E2 0010FC5E LW V0, 16(S8) -BFD085E6 E820 SW S0, 0(V0) -BFD085E8 CC05 B 0xBFD085F4 -BFD085EA 0C00 NOP -223: } else { -224: ((BBLED_TypeDef *)p)->CONFIG = LED_CFG_CNTL_HI; -BFD085EC 0010FC5E LW V0, 16(S8) -BFD085F0 ED83 LI V1, 3 -BFD085F2 E9A0 SW V1, 0(V0) -225: } -226: } -227: } -BFD085F4 0FBE MOVE SP, S8 -BFD085F6 4BE7 LW RA, 28(SP) -BFD085F8 4BC6 LW S8, 24(SP) -BFD085FA 4C11 ADDIU SP, SP, 32 -BFD085FC 459F JR16 RA -BFD085FE 0C00 NOP -228: -229: -230: /** -231: * led_out_high - Set the LED block to drive the pin High -232: * -233: * @author sworley -234: * -235: * @param led_id 0-based LED ID -236: * @note The LED controller will drive the pin High. Depending -237: * upon the external circuit the LED may be in ON or OFF -238: * state. -239: */ -240: void led_out_high(uint8_t led_id) -241: { -BFD09210 4FF1 ADDIU SP, SP, -32 -BFD09212 CBE7 SW RA, 28(SP) -BFD09214 CBC6 SW S8, 24(SP) -BFD09216 0FDD MOVE S8, SP -BFD09218 0C44 MOVE V0, A0 -BFD0921A 0020185E SB V0, 32(S8) -242: uint32_t p; -243: -244: if (led_is_valid(led_id)) { -BFD0921E 0020145E LBU V0, 32(S8) -BFD09222 0C82 MOVE A0, V0 -BFD09224 4F3677E8 JALS led_is_valid -BFD09226 4F36 ADDIU T9, T9, -5 -BFD09228 0C00 NOP -BFD0922A 000C40E2 BEQZC V0, 0xBFD09246 -245: p = led_addr(led_id); -BFD0922E 0020145E LBU V0, 32(S8) -BFD09232 0C82 MOVE A0, V0 -BFD09234 4A1077E8 JALS led_addr -BFD09236 4A10 LW S0, 64(SP) -BFD09238 0C00 NOP -BFD0923A 0010F85E SW V0, 16(S8) -246: ((BBLED_TypeDef *)p)->CONFIG = LED_CFG_CNTL_HI; -BFD0923E 0010FC5E LW V0, 16(S8) -BFD09242 ED83 LI V1, 3 -BFD09244 E9A0 SW V1, 0(V0) -247: } -248: } -BFD09246 0FBE MOVE SP, S8 -BFD09248 4BE7 LW RA, 28(SP) -BFD0924A 4BC6 LW S8, 24(SP) -BFD0924C 4C11 ADDIU SP, SP, 32 -BFD0924E 459F JR16 RA -BFD09250 0C00 NOP -249: -250: -251: /** -252: * led_out_low - Set the LED block to drive the pin Low -253: * -254: * @author sworley -255: * -256: * @param led_id 0-based LED ID -257: * @note The LED controller will drive the pin Low. Depending -258: * upon the external circuit the LED may be in ON or OFF -259: * state. -260: */ -261: void led_out_low(uint8_t led_id) -262: { -BFD09460 4FF1 ADDIU SP, SP, -32 -BFD09462 CBE7 SW RA, 28(SP) -BFD09464 CBC6 SW S8, 24(SP) -BFD09466 0FDD MOVE S8, SP -BFD09468 0C44 MOVE V0, A0 -BFD0946A 0020185E SB V0, 32(S8) -263: uint32_t p; -264: -265: if (led_is_valid(led_id)) { -BFD0946E 0020145E LBU V0, 32(S8) -BFD09472 0C82 MOVE A0, V0 -BFD09474 4F3677E8 JALS led_is_valid -BFD09476 4F36 ADDIU T9, T9, -5 -BFD09478 0C00 NOP -BFD0947A 000B40E2 BEQZC V0, 0xBFD09494 -266: p = led_addr(led_id); -BFD0947E 0020145E LBU V0, 32(S8) -BFD09482 0C82 MOVE A0, V0 -BFD09484 4A1077E8 JALS led_addr -BFD09486 4A10 LW S0, 64(SP) -BFD09488 0C00 NOP -BFD0948A 0010F85E SW V0, 16(S8) -267: ((BBLED_TypeDef *)p)->CONFIG = LED_CFG_CNTL_LO; -BFD0948E 0010FC5E LW V0, 16(S8) -BFD09492 E820 SW S0, 0(V0) -268: } -269: } -BFD09494 0FBE MOVE SP, S8 -BFD09496 4BE7 LW RA, 28(SP) -BFD09498 4BC6 LW S8, 24(SP) -BFD0949A 4C11 ADDIU SP, SP, 32 -BFD0949C 459F JR16 RA -BFD0949E 0C00 NOP -270: -271: -272: #ifdef __cplusplus -273: } -274: #endif -275: -276: /* end mec14xx_bbled.h */ -277: /** @} -278: */ ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq26.c ---- -1: /***************************************************************************** -2: * (c) 2013 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq26.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_girqs.h" -33: #include "MEC14xx/mec14xx_gpio.h" -34: #include "MEC14xx/mec14xx_trace_func.h" -35: -36: -37: #if GIRQ26_DISAGG == 0 -38: -39: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -40: girq26_isr(void) -41: { -BFD07408 E17C03BD RDPGPR SP, SP -BFD0740C 00FC036E MFC0 K1, EPC -BFD0740E 034C00FC INS A3, GP, 13, -12 -BFD07410 10FC034C MFC0 K0, SRSCtl -BFD07412 4FF110FC ADDI A3, GP, 20465 -BFD07414 4FF1 ADDIU SP, SP, -32 -BFD07416 CB67 SW K1, 28(SP) -BFD07418 00FC036C MFC0 K1, Status -BFD0741C CB46 SW K0, 24(SP) -BFD0741E 00FC034D MFC0 K0, Cause -BFD07422 CB65 SW K1, 20(SP) -BFD07424 5040035A SRL K0, K0, 10 -BFD07426 037A5040 ORI V0, ZERO, 890 -BFD07428 7A8C037A INS K1, K0, 10, 6 -BFD0742A 03607A8C ADDIUPC A1, 787296 -BFD0742C 204C0360 INS K1, ZERO, 1, 4 -BFD0742E 036C204C LWC2 V0, 876(T4) -BFD07430 02FC036C MTC0 K1, Status -BFD07434 C862 SW V1, 8(SP) -BFD07436 C841 SW V0, 4(SP) -BFD07438 4866 LW V1, 24(SP) -BFD0743A 2DB7 ANDI V1, V1, 0xF -BFD0743C CBC3 SW S8, 12(SP) -BFD0743E 0FDD MOVE S8, SP -42: JTVIC_GROUP_EN_CLR->w = (1ul<<16); -BFD07440 BFFF41A2 LUI V0, 0xBFFF -BFD07442 5042BFFF LDC1 F31, 20546(RA) -BFD07444 C50C5042 ORI V0, V0, -15092 -BFD07448 000141A3 LUI V1, 0x1 -BFD0744C E9A0 SW V1, 0(V0) -43: } -BFD0744E 0FBE MOVE SP, S8 -BFD07450 4846 LW V0, 24(SP) -BFD07452 2D27 ANDI V0, V0, 0xF -BFD07454 4BC3 LW S8, 12(SP) -BFD07456 4862 LW V1, 8(SP) -BFD07458 4841 LW V0, 4(SP) -BFD0745A 477C0000 DI ZERO -BFD0745E 18000000 SLL ZERO, ZERO, 3 -BFD07460 4B471800 SB ZERO, 19271(ZERO) -BFD07462 4B47 LW K0, 28(SP) -BFD07464 4B65 LW K1, 20(SP) -BFD07466 02FC034E MTC0 K0, EPC -BFD0746A 4B46 LW K0, 24(SP) -BFD0746C 4C11 ADDIU SP, SP, 32 -BFD0746E 12FC034C MTC0 K0, SRSCtl -BFD07470 03BD12FC ADDI S7, GP, 957 -BFD07472 F17C03BD WRPGPR SP, SP -BFD07474 036CF17C JALX 0xBDF00DB0 -BFD07476 02FC036C MTC0 K1, Status -BFD07478 000002FC SLL S7, GP, 0 -BFD0747A F37C0000 ERET -BFD0747C 0C00F37C JALX 0xBDF03000 -44: -45: #else -46: -47: void __attribute__((weak, interrupt, nomips16)) -48: girq26_b0(void) -49: { -50: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 0); -51: } -52: -53: void __attribute__((weak, interrupt, nomips16)) -54: girq26_b1(void) -55: { -56: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 1); -57: } -58: -59: void __attribute__((weak, interrupt, nomips16)) -60: girq26_b2(void) -61: { -62: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 2); -63: } -64: -65: void __attribute__((weak, interrupt, nomips16)) -66: girq26_b3(void) -67: { -68: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 3); -69: } -70: -71: void __attribute__((weak, interrupt, nomips16)) -72: girq26_b4(void) -73: { -74: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 4); -75: } -76: -77: void __attribute__((weak, interrupt, nomips16)) -78: girq26_b5(void) -79: { -80: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 5); -81: } -82: -83: void __attribute__((weak, interrupt, nomips16)) -84: girq26_b6(void) -85: { -86: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 6); -87: } -88: -89: void __attribute__((weak, interrupt, nomips16)) -90: girq26_b7(void) -91: { -92: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 7); -93: } -94: -95: void __attribute__((weak, interrupt, nomips16)) -96: girq26_b8(void) -97: { -98: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 8); -99: } -100: -101: void __attribute__((weak, interrupt, nomips16)) -102: girq26_b9(void) -103: { -104: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 9); -105: } -106: -107: void __attribute__((weak, interrupt, nomips16)) -108: girq26_b10(void) -109: { -110: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 10); -111: } -112: -113: void __attribute__((weak, interrupt, nomips16)) -114: girq26_b11(void) -115: { -116: jtvic_dis_clr_source(MEC14xx_GIRQ26_ID, 11); -117: } -118: -119: -120: #endif -121: -122: /* end girq26.c */ -123: /** @} -124: */ -125: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq25.c ---- -1: /***************************************************************************** -2: * (c) 2013 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq25.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ25_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq25_isr(void) -40: { -BFD07390 E17C03BD RDPGPR SP, SP -BFD07394 00FC036E MFC0 K1, EPC -BFD07396 034C00FC INS A3, GP, 13, -12 -BFD07398 10FC034C MFC0 K0, SRSCtl -BFD0739A 4FF110FC ADDI A3, GP, 20465 -BFD0739C 4FF1 ADDIU SP, SP, -32 -BFD0739E CB67 SW K1, 28(SP) -BFD073A0 00FC036C MFC0 K1, Status -BFD073A4 CB46 SW K0, 24(SP) -BFD073A6 00FC034D MFC0 K0, Cause -BFD073AA CB65 SW K1, 20(SP) -BFD073AC 5040035A SRL K0, K0, 10 -BFD073AE 037A5040 ORI V0, ZERO, 890 -BFD073B0 7A8C037A INS K1, K0, 10, 6 -BFD073B2 03607A8C ADDIUPC A1, 787296 -BFD073B4 204C0360 INS K1, ZERO, 1, 4 -BFD073B6 036C204C LWC2 V0, 876(T4) -BFD073B8 02FC036C MTC0 K1, Status -BFD073BC C862 SW V1, 8(SP) -BFD073BE C841 SW V0, 4(SP) -BFD073C0 4866 LW V1, 24(SP) -BFD073C2 2DB7 ANDI V1, V1, 0xF -BFD073C4 CBC3 SW S8, 12(SP) -BFD073C6 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<15); -BFD073C8 BFFF41A2 LUI V0, 0xBFFF -BFD073CA 5042BFFF LDC1 F31, 20546(RA) -BFD073CC C50C5042 ORI V0, V0, -15092 -BFD073D0 80005060 ORI V1, ZERO, -32768 -BFD073D4 E9A0 SW V1, 0(V0) -42: } -BFD073D6 0FBE MOVE SP, S8 -BFD073D8 4846 LW V0, 24(SP) -BFD073DA 2D27 ANDI V0, V0, 0xF -BFD073DC 4BC3 LW S8, 12(SP) -BFD073DE 4862 LW V1, 8(SP) -BFD073E0 4841 LW V0, 4(SP) -BFD073E2 477C0000 DI ZERO -BFD073E6 18000000 SLL ZERO, ZERO, 3 -BFD073E8 4B471800 SB ZERO, 19271(ZERO) -BFD073EA 4B47 LW K0, 28(SP) -BFD073EC 4B65 LW K1, 20(SP) -BFD073EE 02FC034E MTC0 K0, EPC -BFD073F2 4B46 LW K0, 24(SP) -BFD073F4 4C11 ADDIU SP, SP, 32 -BFD073F6 12FC034C MTC0 K0, SRSCtl -BFD073F8 03BD12FC ADDI S7, GP, 957 -BFD073FA F17C03BD WRPGPR SP, SP -BFD073FC 036CF17C JALX 0xBDF00DB0 -BFD073FE 02FC036C MTC0 K1, Status -BFD07400 000002FC SLL S7, GP, 0 -BFD07402 F37C0000 ERET -BFD07404 0C00F37C JALX 0xBDF03000 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq25_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 0); -50: } -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq25_b1(void) -54: { -55: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 1); -56: } -57: -58: void __attribute__((weak, interrupt, nomips16)) -59: girq25_b2(void) -60: { -61: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 2); -62: } -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq25_b3(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 3); -68: } -69: -70: void __attribute__((weak, interrupt, nomips16)) -71: girq25_b4(void) -72: { -73: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 4); -74: } -75: -76: void __attribute__((weak, interrupt, nomips16)) -77: girq25_b5(void) -78: { -79: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 5); -80: } -81: -82: void __attribute__((weak, interrupt, nomips16)) -83: girq25_b6(void) -84: { -85: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 6); -86: } -87: -88: void __attribute__((weak, interrupt, nomips16)) -89: girq25_b7(void) -90: { -91: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 7); -92: } -93: -94: void __attribute__((weak, interrupt, nomips16)) -95: girq25_b8(void) -96: { -97: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 8); -98: } -99: -100: void __attribute__((weak, interrupt, nomips16)) -101: girq25_b9(void) -102: { -103: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 9); -104: } -105: -106: void __attribute__((weak, interrupt, nomips16)) -107: girq25_b10(void) -108: { -109: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 10); -110: } -111: -112: void __attribute__((weak, interrupt, nomips16)) -113: girq25_b11(void) -114: { -115: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 11); -116: } -117: -118: void __attribute__((weak, interrupt, nomips16)) -119: girq25_b12(void) -120: { -121: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 12); -122: } -123: -124: void __attribute__((weak, interrupt, nomips16)) -125: girq25_b13(void) -126: { -127: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 13); -128: } -129: -130: void __attribute__((weak, interrupt, nomips16)) -131: girq25_b14(void) -132: { -133: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 14); -134: } -135: -136: void __attribute__((weak, interrupt, nomips16)) -137: girq25_b15(void) -138: { -139: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 15); -140: } -141: -142: void __attribute__((weak, interrupt, nomips16)) -143: girq25_b16(void) -144: { -145: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 16); -146: } -147: -148: void __attribute__((weak, interrupt, nomips16)) -149: girq25_b17(void) -150: { -151: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 17); -152: } -153: -154: void __attribute__((weak, interrupt, nomips16)) -155: girq25_b18(void) -156: { -157: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 18); -158: } -159: -160: void __attribute__((weak, interrupt, nomips16)) -161: girq25_b19(void) -162: { -163: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 19); -164: } -165: -166: void __attribute__((weak, interrupt, nomips16)) -167: girq25_b20(void) -168: { -169: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 20); -170: } -171: -172: void __attribute__((weak, interrupt, nomips16)) -173: girq25_b21(void) -174: { -175: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 21); -176: } -177: -178: void __attribute__((weak, interrupt, nomips16)) -179: girq25_b22(void) -180: { -181: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 22); -182: } -183: -184: void __attribute__((weak, interrupt, nomips16)) -185: girq25_b23(void) -186: { -187: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 23); -188: } -189: -190: void __attribute__((weak, interrupt, nomips16)) -191: girq25_b24(void) -192: { -193: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 24); -194: } -195: -196: void __attribute__((weak, interrupt, nomips16)) -197: girq25_b25(void) -198: { -199: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 25); -200: } -201: -202: void __attribute__((weak, interrupt, nomips16)) -203: girq25_b26(void) -204: { -205: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 26); -206: } -207: -208: void __attribute__((weak, interrupt, nomips16)) -209: girq25_b27(void) -210: { -211: jtvic_dis_clr_source(MEC14xx_GIRQ25_ID, 27); -212: } -213: -214: -215: #endif -216: -217: /* end girq25.c */ -218: /** @} -219: */ -220: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq24.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq24.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_bbled.h" -34: #include "MEC14xx/mec14xx_trace_func.h" -35: -36: -37: typedef void (* GIRQ24_FPVU8)(uint8_t); -38: -39: -40: /* MIPS M14K internal counter is connected to GIRQ24 bit[0] -41: * It is a simple counter which fires an interrupt when its -42: * count value is equal to a match value. -43: * -44: */ -45: -46: #if GIRQ24_DISAGG == 0 -47: -48: -49: void girq24_dflt_handler(uint8_t inum) -50: { -51: JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].EN_CLR = (1ul << inum); -52: JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].SOURCE = (1ul << inum); -53: } -54: -55: void __attribute__((weak)) m14k_counter_handler(uint8_t inum) -56: { -57: uint32_t r; -58: -59: (void) inum; -60: -61: r = _CP0_GET_COUNT(); -62: r += (M14K_TIMER_COMPARE); -63: /* Write of CP0.Compare clears status in M14K */ -64: _CP0_SET_COUNT(r); -65: -66: JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].SOURCE = (1ul << 0); -67: -68: } -69: -70: /* -71: * TODO - FreeRTOS M14K Software Interrupt 0 handler -72: * is vPortYieldISR in port_asm.S -73: * vPortYieldISR was designed to be entered directly by the -74: * CPU not via a higher level ISR handler. -75: * One work-around is to modify vPortYieldISR to do the work -76: * of girq24_handler below. It must determine which GIRQ24 source -77: * was active: M14K counter, SoftIRQ0, or SoftIRQ1. -78: */ -79: void __attribute__((weak)) m14k_soft_irq0(uint8_t inum) -80: { -81: (void) inum; -82: -83: JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].SOURCE = (1ul << 1); -84: -85: } -86: -87: void __attribute__((weak)) m14k_soft_irq1(uint8_t inum) -88: { -89: (void) inum; -90: -91: JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].SOURCE = (1ul << 2); -92: -93: } -94: -95: void girq24_b_0_2( void ) -96: { -97: uint32_t d; -98: -99: d = JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].RESULT & (GIRQ24_SRC_MASK); -100: -101: if ( d & (1ul << 0) ) -102: { -103: m14k_counter_handler(0); -104: } -105: -106: if ( d & (1ul << 2) ) -107: { -108: m14k_soft_irq1(2); -109: } -110: } -111: -112: -113: const GIRQ24_FPVU8 girq24_htable[GIRQ24_NUM_SOURCES] = -114: { -115: m14k_counter_handler, /* m14k_counter_handler, */ -116: m14k_soft_irq0, /* m14k_soft_irq0, */ -117: m14k_soft_irq1, /* m14k_soft_irq1 */ -118: }; -119: -120: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -121: girq24_isr(void) -122: { -123: uint32_t d; -124: uint8_t bitpos; -125: -126: d = JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].RESULT & (GIRQ24_SRC_MASK); -127: while ( 0 != d ) -128: { -129: bitpos = 31 - ((uint8_t)__builtin_clz(d) & 0x1F); -130: (girq24_htable[bitpos])(bitpos); -131: d &= ~(1ul << bitpos); -132: } -133: } -134: -135: #else -136: -137: void __attribute__((weak, interrupt, nomips16)) -138: girq24_b0(void) -139: { -BFD065A8 E17C03BD RDPGPR SP, SP -BFD065AC 00FC036E MFC0 K1, EPC -BFD065AE 034C00FC INS A3, GP, 13, -12 -BFD065B0 10FC034C MFC0 K0, SRSCtl -BFD065B2 4FED10FC ADDI A3, GP, 20461 -BFD065B4 4FED ADDIU SP, SP, -40 -BFD065B6 CB69 SW K1, 36(SP) -BFD065B8 00FC036C MFC0 K1, Status -BFD065BC CB48 SW K0, 32(SP) -BFD065BE 00FC034D MFC0 K0, Cause -BFD065C2 CB67 SW K1, 28(SP) -BFD065C4 5040035A SRL K0, K0, 10 -BFD065C6 037A5040 ORI V0, ZERO, 890 -BFD065C8 7A8C037A INS K1, K0, 10, 6 -BFD065CA 03607A8C ADDIUPC A1, 787296 -BFD065CC 204C0360 INS K1, ZERO, 1, 4 -BFD065CE 036C204C LWC2 V0, 876(T4) -BFD065D0 02FC036C MTC0 K1, Status -BFD065D4 C864 SW V1, 16(SP) -BFD065D6 C843 SW V0, 12(SP) -BFD065D8 4868 LW V1, 32(SP) -BFD065DA 2DB7 ANDI V1, V1, 0xF -BFD065DC CBC5 SW S8, 20(SP) -BFD065DE 0FDD MOVE S8, SP -140: uint32_t r; -141: -142: r = _CP0_GET_COUNT(); -BFD065E0 00FC0049 MFC0 V0, Count -BFD065E4 0000F85E SW V0, 0(S8) -143: r += (M14K_TIMER_COMPARE); -BFD065E8 0000FC7E LW V1, 0(S8) -BFD065EC 00B741A2 LUI V0, 0xB7 -BFD065F0 1B005042 ORI V0, V0, 6912 -BFD065F2 05261B00 SB T8, 1318(ZERO) -BFD065F4 0526 ADDU V0, V1, V0 -BFD065F6 0000F85E SW V0, 0(S8) -144: _CP0_SET_COUNT(r); -BFD065FA 0000FC5E LW V0, 0(S8) -BFD065FE 02FC0049 MTC0 V0, Count -BFD06600 000002FC SLL S7, GP, 0 -BFD06602 18000000 SLL ZERO, ZERO, 3 -BFD06604 41A21800 SB ZERO, 16802(ZERO) -145: -146: JTVIC_GIRQ->REGS[MEC14xx_GIRQ24_ID].SOURCE = (1ul << 0); -BFD06606 BFFF41A2 LUI V0, 0xBFFF -BFD06608 5042BFFF LDC1 F31, 20546(RA) -BFD0660A C0005042 ORI V0, V0, -16384 -BFD0660E ED81 LI V1, 1 -BFD06610 0100F862 SW V1, 256(V0) -147: } -BFD06614 0FBE MOVE SP, S8 -BFD06616 4848 LW V0, 32(SP) -BFD06618 2D27 ANDI V0, V0, 0xF -BFD0661A 4BC5 LW S8, 20(SP) -BFD0661C 4864 LW V1, 16(SP) -BFD0661E 4843 LW V0, 12(SP) -BFD06620 477C0000 DI ZERO -BFD06624 18000000 SLL ZERO, ZERO, 3 -BFD06626 4B491800 SB ZERO, 19273(ZERO) -BFD06628 4B49 LW K0, 36(SP) -BFD0662A 4B67 LW K1, 28(SP) -BFD0662C 02FC034E MTC0 K0, EPC -BFD06630 4B48 LW K0, 32(SP) -BFD06632 4C15 ADDIU SP, SP, 40 -BFD06634 12FC034C MTC0 K0, SRSCtl -BFD06636 03BD12FC ADDI S7, GP, 957 -BFD06638 F17C03BD WRPGPR SP, SP -BFD0663A 036CF17C JALX 0xBDF00DB0 -BFD0663C 02FC036C MTC0 K1, Status -BFD0663E 000002FC SLL S7, GP, 0 -BFD06640 F37C0000 ERET -BFD06642 4FEDF37C JALX 0xBDF13FB4 -148: -149: void __attribute__((weak, interrupt, nomips16)) -150: girq24_b1(void) -151: { -BFD0465C E17C03BD RDPGPR SP, SP -BFD04660 00FC036E MFC0 K1, EPC -BFD04662 034C00FC INS A3, GP, 13, -12 -BFD04664 10FC034C MFC0 K0, SRSCtl -BFD04666 4FC510FC ADDI A3, GP, 20421 -BFD04668 4FC5 ADDIU SP, SP, -120 -BFD0466A CB7D SW K1, 116(SP) -BFD0466C 00FC036C MFC0 K1, Status -BFD04670 CB5C SW K0, 112(SP) -BFD04672 00FC034D MFC0 K0, Cause -BFD04676 CB7B SW K1, 108(SP) -BFD04678 5040035A SRL K0, K0, 10 -BFD0467A 037A5040 ORI V0, ZERO, 890 -BFD0467C 7A8C037A INS K1, K0, 10, 6 -BFD0467E 03607A8C ADDIUPC A1, 787296 -BFD04680 204C0360 INS K1, ZERO, 1, 4 -BFD04682 036C204C LWC2 V0, 876(T4) -BFD04684 02FC036C MTC0 K1, Status -BFD04688 C867 SW V1, 28(SP) -BFD0468A C846 SW V0, 24(SP) -BFD0468C 487C LW V1, 112(SP) -BFD0468E 2DB7 ANDI V1, V1, 0xF -BFD04690 001140A3 BNEZC V1, 0xBFD046B6 -BFD04694 CBF7 SW RA, 92(SP) -BFD04696 CBD6 SW S8, 88(SP) -BFD04698 CB35 SW T9, 84(SP) -BFD0469A CB14 SW T8, 80(SP) -BFD0469C C9F3 SW T7, 76(SP) -BFD0469E C9D2 SW T6, 72(SP) -BFD046A0 C9B1 SW T5, 68(SP) -BFD046A2 C990 SW T4, 64(SP) -BFD046A4 C96F SW T3, 60(SP) -BFD046A6 C94E SW T2, 56(SP) -BFD046A8 C92D SW T1, 52(SP) -BFD046AA C90C SW T0, 48(SP) -BFD046AC C8EB SW A3, 44(SP) -BFD046AE C8CA SW A2, 40(SP) -BFD046B0 C8A9 SW A1, 36(SP) -BFD046B2 C888 SW A0, 32(SP) -BFD046B4 C825 SW AT, 20(SP) -BFD046B6 4642 MFLO V0 -BFD046B8 C859 SW V0, 100(SP) -BFD046BA 4603 MFHI V1 -BFD046BC C878 SW V1, 96(SP) -BFD046BE 0FDD MOVE S8, SP -152: -153: _CP0_BIC_CAUSE(0x100ul); -BFD046C0 01003040 ADDIU V0, ZERO, 256 -BFD046C2 006D0100 PRECR.QB.PH ZERO, ZERO, T0 -BFD046C4 00FC006D MFC0 V1, Cause -BFD046C6 0C0000FC SLL A3, GP, 1 -BFD046C8 0C00 NOP -BFD046CA 4412 NOT16 V0, V0 -BFD046CC 4493 AND16 V0, V1 -BFD046CE 02FC004D MTC0 V0, Cause -BFD046D0 000002FC SLL S7, GP, 0 -BFD046D2 18000000 SLL ZERO, ZERO, 3 -BFD046D4 EE101800 SB ZERO, -4592(ZERO) -154: -155: jtvic_clr_source(MEC14xx_GIRQ24_ID, 1); -BFD046D6 EE10 LI A0, 16 -BFD046D8 EE81 LI A1, 1 -BFD046DA 44FA77E8 JALS jtvic_clr_source -BFD046DC 44FA OR16 A3, V0 -BFD046DE 0C00 NOP -156: } -BFD046E0 0FBE MOVE SP, S8 -BFD046E2 4859 LW V0, 100(SP) -BFD046E4 3D7C0002 MTLO V0 -BFD046E6 48783D7C LH T3, 18552(GP) -BFD046E8 4878 LW V1, 96(SP) -BFD046EA 2D7C0003 MTHI V1 -BFD046EC 2D7C ANDI V0, A3, 0x40 -BFD046EE 485C LW V0, 112(SP) -BFD046F0 2D27 ANDI V0, V0, 0xF -BFD046F2 001340A2 BNEZC V0, 0xBFD0471C -BFD046F6 4BF7 LW RA, 92(SP) -BFD046F8 4BD6 LW S8, 88(SP) -BFD046FA 4B35 LW T9, 84(SP) -BFD046FC 4B14 LW T8, 80(SP) -BFD046FE 49F3 LW T7, 76(SP) -BFD04700 49D2 LW T6, 72(SP) -BFD04702 49B1 LW T5, 68(SP) -BFD04704 4990 LW T4, 64(SP) -BFD04706 496F LW T3, 60(SP) -BFD04708 494E LW T2, 56(SP) -BFD0470A 492D LW T1, 52(SP) -BFD0470C 490C LW T0, 48(SP) -BFD0470E 48EB LW A3, 44(SP) -BFD04710 48CA LW A2, 40(SP) -BFD04712 48A9 LW A1, 36(SP) -BFD04714 4888 LW A0, 32(SP) -BFD04716 4867 LW V1, 28(SP) -BFD04718 4846 LW V0, 24(SP) -BFD0471A 4825 LW AT, 20(SP) -BFD0471C 477C0000 DI ZERO -BFD04720 18000000 SLL ZERO, ZERO, 3 -BFD04722 4B5D1800 SB ZERO, 19293(ZERO) -BFD04724 4B5D LW K0, 116(SP) -BFD04726 4B7B LW K1, 108(SP) -BFD04728 02FC034E MTC0 K0, EPC -BFD0472C 4B5C LW K0, 112(SP) -BFD0472E 4C3D ADDIU SP, SP, 120 -BFD04730 12FC034C MTC0 K0, SRSCtl -BFD04732 03BD12FC ADDI S7, GP, 957 -BFD04734 F17C03BD WRPGPR SP, SP -BFD04736 036CF17C JALX 0xBDF00DB0 -BFD04738 02FC036C MTC0 K1, Status -BFD0473A 000002FC SLL S7, GP, 0 -BFD0473C F37C0000 ERET -BFD0473E 03BDF37C JALX 0xBDF00EF4 -157: -158: void __attribute__((weak, interrupt, nomips16)) -159: girq24_b2(void) -160: { -BFD04740 E17C03BD RDPGPR SP, SP -BFD04744 00FC036E MFC0 K1, EPC -BFD04746 034C00FC INS A3, GP, 13, -12 -BFD04748 10FC034C MFC0 K0, SRSCtl -BFD0474A 4FC510FC ADDI A3, GP, 20421 -BFD0474C 4FC5 ADDIU SP, SP, -120 -BFD0474E CB7D SW K1, 116(SP) -BFD04750 00FC036C MFC0 K1, Status -BFD04754 CB5C SW K0, 112(SP) -BFD04756 00FC034D MFC0 K0, Cause -BFD0475A CB7B SW K1, 108(SP) -BFD0475C 5040035A SRL K0, K0, 10 -BFD0475E 037A5040 ORI V0, ZERO, 890 -BFD04760 7A8C037A INS K1, K0, 10, 6 -BFD04762 03607A8C ADDIUPC A1, 787296 -BFD04764 204C0360 INS K1, ZERO, 1, 4 -BFD04766 036C204C LWC2 V0, 876(T4) -BFD04768 02FC036C MTC0 K1, Status -BFD0476C C867 SW V1, 28(SP) -BFD0476E C846 SW V0, 24(SP) -BFD04770 487C LW V1, 112(SP) -BFD04772 2DB7 ANDI V1, V1, 0xF -BFD04774 001140A3 BNEZC V1, 0xBFD0479A -BFD04778 CBF7 SW RA, 92(SP) -BFD0477A CBD6 SW S8, 88(SP) -BFD0477C CB35 SW T9, 84(SP) -BFD0477E CB14 SW T8, 80(SP) -BFD04780 C9F3 SW T7, 76(SP) -BFD04782 C9D2 SW T6, 72(SP) -BFD04784 C9B1 SW T5, 68(SP) -BFD04786 C990 SW T4, 64(SP) -BFD04788 C96F SW T3, 60(SP) -BFD0478A C94E SW T2, 56(SP) -BFD0478C C92D SW T1, 52(SP) -BFD0478E C90C SW T0, 48(SP) -BFD04790 C8EB SW A3, 44(SP) -BFD04792 C8CA SW A2, 40(SP) -BFD04794 C8A9 SW A1, 36(SP) -BFD04796 C888 SW A0, 32(SP) -BFD04798 C825 SW AT, 20(SP) -BFD0479A 4642 MFLO V0 -BFD0479C C859 SW V0, 100(SP) -BFD0479E 4603 MFHI V1 -BFD047A0 C878 SW V1, 96(SP) -BFD047A2 0FDD MOVE S8, SP -161: -162: _CP0_BIC_CAUSE(0x200ul); -BFD047A4 02003040 ADDIU V0, ZERO, 512 -BFD047A6 006D0200 PRECR.QB.PH ZERO, ZERO, S0 -BFD047A8 00FC006D MFC0 V1, Cause -BFD047AA 0C0000FC SLL A3, GP, 1 -BFD047AC 0C00 NOP -BFD047AE 4412 NOT16 V0, V0 -BFD047B0 4493 AND16 V0, V1 -BFD047B2 02FC004D MTC0 V0, Cause -BFD047B4 000002FC SLL S7, GP, 0 -BFD047B6 18000000 SLL ZERO, ZERO, 3 -BFD047B8 EE101800 SB ZERO, -4592(ZERO) -163: -164: jtvic_clr_source(MEC14xx_GIRQ24_ID, 2); -BFD047BA EE10 LI A0, 16 -BFD047BC EE82 LI A1, 2 -BFD047BE 44FA77E8 JALS jtvic_clr_source -BFD047C0 44FA OR16 A3, V0 -BFD047C2 0C00 NOP -165: } -BFD047C4 0FBE MOVE SP, S8 -BFD047C6 4859 LW V0, 100(SP) -BFD047C8 3D7C0002 MTLO V0 -BFD047CA 48783D7C LH T3, 18552(GP) -BFD047CC 4878 LW V1, 96(SP) -BFD047CE 2D7C0003 MTHI V1 -BFD047D0 2D7C ANDI V0, A3, 0x40 -BFD047D2 485C LW V0, 112(SP) -BFD047D4 2D27 ANDI V0, V0, 0xF -BFD047D6 001340A2 BNEZC V0, 0xBFD04800 -BFD047DA 4BF7 LW RA, 92(SP) -BFD047DC 4BD6 LW S8, 88(SP) -BFD047DE 4B35 LW T9, 84(SP) -BFD047E0 4B14 LW T8, 80(SP) -BFD047E2 49F3 LW T7, 76(SP) -BFD047E4 49D2 LW T6, 72(SP) -BFD047E6 49B1 LW T5, 68(SP) -BFD047E8 4990 LW T4, 64(SP) -BFD047EA 496F LW T3, 60(SP) -BFD047EC 494E LW T2, 56(SP) -BFD047EE 492D LW T1, 52(SP) -BFD047F0 490C LW T0, 48(SP) -BFD047F2 48EB LW A3, 44(SP) -BFD047F4 48CA LW A2, 40(SP) -BFD047F6 48A9 LW A1, 36(SP) -BFD047F8 4888 LW A0, 32(SP) -BFD047FA 4867 LW V1, 28(SP) -BFD047FC 4846 LW V0, 24(SP) -BFD047FE 4825 LW AT, 20(SP) -BFD04800 477C0000 DI ZERO -BFD04804 18000000 SLL ZERO, ZERO, 3 -BFD04806 4B5D1800 SB ZERO, 19293(ZERO) -BFD04808 4B5D LW K0, 116(SP) -BFD0480A 4B7B LW K1, 108(SP) -BFD0480C 02FC034E MTC0 K0, EPC -BFD04810 4B5C LW K0, 112(SP) -BFD04812 4C3D ADDIU SP, SP, 120 -BFD04814 12FC034C MTC0 K0, SRSCtl -BFD04816 03BD12FC ADDI S7, GP, 957 -BFD04818 F17C03BD WRPGPR SP, SP -BFD0481A 036CF17C JALX 0xBDF00DB0 -BFD0481C 02FC036C MTC0 K1, Status -BFD0481E 000002FC SLL S7, GP, 0 -BFD04820 F37C0000 ERET -BFD04822 4FEDF37C JALX 0xBDF13FB4 -166: -167: #endif -168: -169: /* end girq24.c */ -170: /** @} -171: */ -172: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq23.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq23.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_bbled.h" -34: #include "MEC14xx/mec14xx_trace_func.h" -35: -36: -37: typedef void (* GIRQ23_FPVU8)(uint8_t); -38: -39: #if GIRQ23_DISAGG == 0 -40: -41: /* -42: * FreeRTOS ISR for HW timer used as RTOS tick. -43: * Implemented in MEC14xx FreeRTOS porting layer, port_asm.S -44: * It save/restores CPU context and clears HW timer interrupt -45: * status in JTVIC. On each timer tick it checks if any task -46: * requires service. If yes then it triggers the PendSV low -47: * priority software interrupt. -48: * Issue: -49: * When aggregated girq23_isr save CPU context but this context -50: * is not the same as a FreeRTOS context save. If the RTOS timer -51: * is active then girq23_isr would call vPortTickInterruptHandler -52: * which uses FreeRTOS portSAVE_CONTEXT macro to save RTOS + CPU -53: * context. At this point you have two context saves on the stack. -54: * There is a problem: -55: * vPortTickInterruptHandler does not return but exits using -56: * portRESTORE_CONTEXT. This means the context save performed -57: * by aggregated girq23_isr is left on the stack. Eventually -58: * a stack overflow will occur. -59: * -60: * Solutions: -61: * 1. vPortTickInterruptHandler must be modified to handle scan -62: * GIRQ23 Result bits and all the respective handler. All -63: * other GIRQ23 source are called as hook functions. -64: * -65: * 2. Do not use vPortTickInterruptHandler. -66: * Modify girq23_isr here to use FreeRTOS portSAVE_CONTEXT -67: * and portRESTORE_CONTEXT macros. -68: * If RTOS timer is active interrupt then call vPortIncrementTick -69: * as vPortTickInterruptHandler does. -70: * For all other GIRQ23 sources call the respective handlers. -71: * -72: * NOTE: for both of the above solutions a we must either: -73: * A. Service one source only resulting in GIRQ23 firing multiple -74: * times if more than one source is active. -75: * B. Service all active sources with RTOS Timer checked first. -76: * -77: * We will implement 1A with a single hook for all other sources. -78: * -79: */ -80: -81: extern void vPortIncrementTick(void); -82: -83: void girq23_dflt_handler(uint8_t inum) -84: { -85: JTVIC_GIRQ->REGS[MEC14xx_GIRQ23_ID].EN_CLR = (1ul << inum); -86: JTVIC_GIRQ->REGS[MEC14xx_GIRQ23_ID].SOURCE = (1ul << inum); -87: } -88: -89: void __attribute__((weak)) rtos_tmr_handler(uint8_t inum) -90: { -91: (void) inum; -92: -93: JTVIC_GIRQ->REGS[MEC14xx_GIRQ23_ID].SOURCE = (1ul << 4); -94: } -95: -96: const GIRQ23_FPVU8 girq23_htable[GIRQ23_NUM_SOURCES] = -97: { -98: girq23_dflt_handler, /* btmr0_handler, */ -99: girq23_dflt_handler, /* btmr1_handler, */ -100: girq23_dflt_handler, /* btmr2_handler, */ -101: girq23_dflt_handler, /* btmr3_handler, */ -102: vPortIncrementTick, -103: girq23_dflt_handler, /* hib_tmr_handler, */ -104: girq23_dflt_handler, /* week_tmr_handler, */ -105: girq23_dflt_handler, /* week_tmr_handler, */ -106: girq23_dflt_handler, /* week_tmr_handler, */ -107: girq23_dflt_handler, /* week_tmr_handler, */ -108: girq23_dflt_handler, /* week_tmr_handler, */ -109: girq23_dflt_handler, /* vci_handler, */ -110: girq23_dflt_handler, /* vci_handler, */ -111: girq23_dflt_handler, /* vci_handler, */ -112: }; -113: -114: /* Called by FreeRTOS vPortTickInterruptHandler(girq23_isr) -115: * after saving FreeRTOS context -116: */ -117: void girq23_handler(void) -118: { -119: uint32_t d; -120: uint8_t bitpos; -121: -122: d = JTVIC_GIRQ->REGS[MEC14xx_GIRQ23_ID].RESULT & (GIRQ23_SRC_MASK); -123: while ( 0 != d ) -124: { -125: bitpos = 31 - ((uint8_t)__builtin_clz(d) & 0x1F); -126: (girq23_htable[bitpos])(bitpos); -127: d &= ~(1ul << bitpos); -128: } -129: } -130: -131: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -132: girq23_isr(void) -133: { -134: uint32_t d; -135: uint8_t bitpos; -136: -137: d = JTVIC_GIRQ->REGS[MEC14xx_GIRQ23_ID].RESULT & (GIRQ23_SRC_MASK); -138: while ( 0 != d ) -139: { -140: bitpos = 31 - ((uint8_t)__builtin_clz(d) & 0x1F); -141: (girq23_htable[bitpos])(bitpos); -142: d &= ~(1ul << bitpos); -143: } -144: } -145: -146: #else -147: -148: -149: /* 16-bit Basic Timer 0 */ -150: void __attribute__((weak, interrupt, nomips16)) -151: girq23_b0(void) -152: { -BFD072A0 E17C03BD RDPGPR SP, SP -BFD072A4 00FC036E MFC0 K1, EPC -BFD072A6 034C00FC INS A3, GP, 13, -12 -BFD072A8 10FC034C MFC0 K0, SRSCtl -BFD072AA 4FF110FC ADDI A3, GP, 20465 -BFD072AC 4FF1 ADDIU SP, SP, -32 -BFD072AE CB67 SW K1, 28(SP) -BFD072B0 00FC036C MFC0 K1, Status -BFD072B4 CB46 SW K0, 24(SP) -BFD072B6 00FC034D MFC0 K0, Cause -BFD072BA CB65 SW K1, 20(SP) -BFD072BC 5040035A SRL K0, K0, 10 -BFD072BE 037A5040 ORI V0, ZERO, 890 -BFD072C0 7A8C037A INS K1, K0, 10, 6 -BFD072C2 03607A8C ADDIUPC A1, 787296 -BFD072C4 204C0360 INS K1, ZERO, 1, 4 -BFD072C6 036C204C LWC2 V0, 876(T4) -BFD072C8 02FC036C MTC0 K1, Status -BFD072CC C862 SW V1, 8(SP) -BFD072CE C841 SW V0, 4(SP) -BFD072D0 4866 LW V1, 24(SP) -BFD072D2 2DB7 ANDI V1, V1, 0xF -BFD072D4 CBC3 SW S8, 12(SP) -BFD072D6 0FDD MOVE S8, SP -153: JTVIC_GIRQ->REGS[MEC14xx_GIRQ23_ID].SOURCE = (1ul << 0); -BFD072D8 BFFF41A2 LUI V0, 0xBFFF -BFD072DA 5042BFFF LDC1 F31, 20546(RA) -BFD072DC C0005042 ORI V0, V0, -16384 -BFD072E0 ED81 LI V1, 1 -BFD072E2 00F0F862 SW V1, 240(V0) -154: } -BFD072E6 0FBE MOVE SP, S8 -BFD072E8 4846 LW V0, 24(SP) -BFD072EA 2D27 ANDI V0, V0, 0xF -BFD072EC 4BC3 LW S8, 12(SP) -BFD072EE 4862 LW V1, 8(SP) -BFD072F0 4841 LW V0, 4(SP) -BFD072F2 477C0000 DI ZERO -BFD072F6 18000000 SLL ZERO, ZERO, 3 -BFD072F8 4B471800 SB ZERO, 19271(ZERO) -BFD072FA 4B47 LW K0, 28(SP) -BFD072FC 4B65 LW K1, 20(SP) -BFD072FE 02FC034E MTC0 K0, EPC -BFD07302 4B46 LW K0, 24(SP) -BFD07304 4C11 ADDIU SP, SP, 32 -BFD07306 12FC034C MTC0 K0, SRSCtl -BFD07308 03BD12FC ADDI S7, GP, 957 -BFD0730A F17C03BD WRPGPR SP, SP -BFD0730C 036CF17C JALX 0xBDF00DB0 -BFD0730E 02FC036C MTC0 K1, Status -BFD07310 000002FC SLL S7, GP, 0 -BFD07312 F37C0000 ERET -BFD07314 0C00F37C JALX 0xBDF03000 -155: -156: /* 16-bit Basic Timer 1 */ -157: void __attribute__((weak, interrupt, nomips16)) -158: girq23_b1(void) -159: { -BFD04C70 E17C03BD RDPGPR SP, SP -BFD04C74 00FC036E MFC0 K1, EPC -BFD04C76 034C00FC INS A3, GP, 13, -12 -BFD04C78 10FC034C MFC0 K0, SRSCtl -BFD04C7A 4FC510FC ADDI A3, GP, 20421 -BFD04C7C 4FC5 ADDIU SP, SP, -120 -BFD04C7E CB7D SW K1, 116(SP) -BFD04C80 00FC036C MFC0 K1, Status -BFD04C84 CB5C SW K0, 112(SP) -BFD04C86 00FC034D MFC0 K0, Cause -BFD04C8A CB7B SW K1, 108(SP) -BFD04C8C 5040035A SRL K0, K0, 10 -BFD04C8E 037A5040 ORI V0, ZERO, 890 -BFD04C90 7A8C037A INS K1, K0, 10, 6 -BFD04C92 03607A8C ADDIUPC A1, 787296 -BFD04C94 204C0360 INS K1, ZERO, 1, 4 -BFD04C96 036C204C LWC2 V0, 876(T4) -BFD04C98 02FC036C MTC0 K1, Status -BFD04C9C C867 SW V1, 28(SP) -BFD04C9E C846 SW V0, 24(SP) -BFD04CA0 487C LW V1, 112(SP) -BFD04CA2 2DB7 ANDI V1, V1, 0xF -BFD04CA4 001140A3 BNEZC V1, 0xBFD04CCA -BFD04CA8 CBF7 SW RA, 92(SP) -BFD04CAA CBD6 SW S8, 88(SP) -BFD04CAC CB35 SW T9, 84(SP) -BFD04CAE CB14 SW T8, 80(SP) -BFD04CB0 C9F3 SW T7, 76(SP) -BFD04CB2 C9D2 SW T6, 72(SP) -BFD04CB4 C9B1 SW T5, 68(SP) -BFD04CB6 C990 SW T4, 64(SP) -BFD04CB8 C96F SW T3, 60(SP) -BFD04CBA C94E SW T2, 56(SP) -BFD04CBC C92D SW T1, 52(SP) -BFD04CBE C90C SW T0, 48(SP) -BFD04CC0 C8EB SW A3, 44(SP) -BFD04CC2 C8CA SW A2, 40(SP) -BFD04CC4 C8A9 SW A1, 36(SP) -BFD04CC6 C888 SW A0, 32(SP) -BFD04CC8 C825 SW AT, 20(SP) -BFD04CCA 4642 MFLO V0 -BFD04CCC C859 SW V0, 100(SP) -BFD04CCE 4603 MFHI V1 -BFD04CD0 C878 SW V1, 96(SP) -BFD04CD2 0FDD MOVE S8, SP -160: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 1, TRUE); -BFD04CD4 EE0F LI A0, 15 -BFD04CD6 EE81 LI A1, 1 -BFD04CD8 EF01 LI A2, 1 -BFD04CDA 3A4077E8 JALS jtvic_dis_clr_source -BFD04CDC 0C003A40 SH S2, 3072(ZERO) -BFD04CDE 0C00 NOP -161: } -BFD04CE0 0FBE MOVE SP, S8 -BFD04CE2 4859 LW V0, 100(SP) -BFD04CE4 3D7C0002 MTLO V0 -BFD04CE6 48783D7C LH T3, 18552(GP) -BFD04CE8 4878 LW V1, 96(SP) -BFD04CEA 2D7C0003 MTHI V1 -BFD04CEC 2D7C ANDI V0, A3, 0x40 -BFD04CEE 485C LW V0, 112(SP) -BFD04CF0 2D27 ANDI V0, V0, 0xF -BFD04CF2 001340A2 BNEZC V0, 0xBFD04D1C -BFD04CF6 4BF7 LW RA, 92(SP) -BFD04CF8 4BD6 LW S8, 88(SP) -BFD04CFA 4B35 LW T9, 84(SP) -BFD04CFC 4B14 LW T8, 80(SP) -BFD04CFE 49F3 LW T7, 76(SP) -BFD04D00 49D2 LW T6, 72(SP) -BFD04D02 49B1 LW T5, 68(SP) -BFD04D04 4990 LW T4, 64(SP) -BFD04D06 496F LW T3, 60(SP) -BFD04D08 494E LW T2, 56(SP) -BFD04D0A 492D LW T1, 52(SP) -BFD04D0C 490C LW T0, 48(SP) -BFD04D0E 48EB LW A3, 44(SP) -BFD04D10 48CA LW A2, 40(SP) -BFD04D12 48A9 LW A1, 36(SP) -BFD04D14 4888 LW A0, 32(SP) -BFD04D16 4867 LW V1, 28(SP) -BFD04D18 4846 LW V0, 24(SP) -BFD04D1A 4825 LW AT, 20(SP) -BFD04D1C 477C0000 DI ZERO -BFD04D20 18000000 SLL ZERO, ZERO, 3 -BFD04D22 4B5D1800 SB ZERO, 19293(ZERO) -BFD04D24 4B5D LW K0, 116(SP) -BFD04D26 4B7B LW K1, 108(SP) -BFD04D28 02FC034E MTC0 K0, EPC -BFD04D2C 4B5C LW K0, 112(SP) -BFD04D2E 4C3D ADDIU SP, SP, 120 -BFD04D30 12FC034C MTC0 K0, SRSCtl -BFD04D32 03BD12FC ADDI S7, GP, 957 -BFD04D34 F17C03BD WRPGPR SP, SP -BFD04D36 036CF17C JALX 0xBDF00DB0 -BFD04D38 02FC036C MTC0 K1, Status -BFD04D3A 000002FC SLL S7, GP, 0 -BFD04D3C F37C0000 ERET -BFD04D3E 03BDF37C JALX 0xBDF00EF4 -162: -163: /* 16-bit Basic Timer 2 */ -164: void __attribute__((weak, interrupt, nomips16)) -165: girq23_b2(void) -166: { -BFD04D40 E17C03BD RDPGPR SP, SP -BFD04D44 00FC036E MFC0 K1, EPC -BFD04D46 034C00FC INS A3, GP, 13, -12 -BFD04D48 10FC034C MFC0 K0, SRSCtl -BFD04D4A 4FC510FC ADDI A3, GP, 20421 -BFD04D4C 4FC5 ADDIU SP, SP, -120 -BFD04D4E CB7D SW K1, 116(SP) -BFD04D50 00FC036C MFC0 K1, Status -BFD04D54 CB5C SW K0, 112(SP) -BFD04D56 00FC034D MFC0 K0, Cause -BFD04D5A CB7B SW K1, 108(SP) -BFD04D5C 5040035A SRL K0, K0, 10 -BFD04D5E 037A5040 ORI V0, ZERO, 890 -BFD04D60 7A8C037A INS K1, K0, 10, 6 -BFD04D62 03607A8C ADDIUPC A1, 787296 -BFD04D64 204C0360 INS K1, ZERO, 1, 4 -BFD04D66 036C204C LWC2 V0, 876(T4) -BFD04D68 02FC036C MTC0 K1, Status -BFD04D6C C867 SW V1, 28(SP) -BFD04D6E C846 SW V0, 24(SP) -BFD04D70 487C LW V1, 112(SP) -BFD04D72 2DB7 ANDI V1, V1, 0xF -BFD04D74 001140A3 BNEZC V1, 0xBFD04D9A -BFD04D78 CBF7 SW RA, 92(SP) -BFD04D7A CBD6 SW S8, 88(SP) -BFD04D7C CB35 SW T9, 84(SP) -BFD04D7E CB14 SW T8, 80(SP) -BFD04D80 C9F3 SW T7, 76(SP) -BFD04D82 C9D2 SW T6, 72(SP) -BFD04D84 C9B1 SW T5, 68(SP) -BFD04D86 C990 SW T4, 64(SP) -BFD04D88 C96F SW T3, 60(SP) -BFD04D8A C94E SW T2, 56(SP) -BFD04D8C C92D SW T1, 52(SP) -BFD04D8E C90C SW T0, 48(SP) -BFD04D90 C8EB SW A3, 44(SP) -BFD04D92 C8CA SW A2, 40(SP) -BFD04D94 C8A9 SW A1, 36(SP) -BFD04D96 C888 SW A0, 32(SP) -BFD04D98 C825 SW AT, 20(SP) -BFD04D9A 4642 MFLO V0 -BFD04D9C C859 SW V0, 100(SP) -BFD04D9E 4603 MFHI V1 -BFD04DA0 C878 SW V1, 96(SP) -BFD04DA2 0FDD MOVE S8, SP -167: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 2, TRUE); -BFD04DA4 EE0F LI A0, 15 -BFD04DA6 EE82 LI A1, 2 -BFD04DA8 EF01 LI A2, 1 -BFD04DAA 3A4077E8 JALS jtvic_dis_clr_source -BFD04DAC 0C003A40 SH S2, 3072(ZERO) -BFD04DAE 0C00 NOP -168: } -BFD04DB0 0FBE MOVE SP, S8 -BFD04DB2 4859 LW V0, 100(SP) -BFD04DB4 3D7C0002 MTLO V0 -BFD04DB6 48783D7C LH T3, 18552(GP) -BFD04DB8 4878 LW V1, 96(SP) -BFD04DBA 2D7C0003 MTHI V1 -BFD04DBC 2D7C ANDI V0, A3, 0x40 -BFD04DBE 485C LW V0, 112(SP) -BFD04DC0 2D27 ANDI V0, V0, 0xF -BFD04DC2 001340A2 BNEZC V0, 0xBFD04DEC -BFD04DC6 4BF7 LW RA, 92(SP) -BFD04DC8 4BD6 LW S8, 88(SP) -BFD04DCA 4B35 LW T9, 84(SP) -BFD04DCC 4B14 LW T8, 80(SP) -BFD04DCE 49F3 LW T7, 76(SP) -BFD04DD0 49D2 LW T6, 72(SP) -BFD04DD2 49B1 LW T5, 68(SP) -BFD04DD4 4990 LW T4, 64(SP) -BFD04DD6 496F LW T3, 60(SP) -BFD04DD8 494E LW T2, 56(SP) -BFD04DDA 492D LW T1, 52(SP) -BFD04DDC 490C LW T0, 48(SP) -BFD04DDE 48EB LW A3, 44(SP) -BFD04DE0 48CA LW A2, 40(SP) -BFD04DE2 48A9 LW A1, 36(SP) -BFD04DE4 4888 LW A0, 32(SP) -BFD04DE6 4867 LW V1, 28(SP) -BFD04DE8 4846 LW V0, 24(SP) -BFD04DEA 4825 LW AT, 20(SP) -BFD04DEC 477C0000 DI ZERO -BFD04DF0 18000000 SLL ZERO, ZERO, 3 -BFD04DF2 4B5D1800 SB ZERO, 19293(ZERO) -BFD04DF4 4B5D LW K0, 116(SP) -BFD04DF6 4B7B LW K1, 108(SP) -BFD04DF8 02FC034E MTC0 K0, EPC -BFD04DFC 4B5C LW K0, 112(SP) -BFD04DFE 4C3D ADDIU SP, SP, 120 -BFD04E00 12FC034C MTC0 K0, SRSCtl -BFD04E02 03BD12FC ADDI S7, GP, 957 -BFD04E04 F17C03BD WRPGPR SP, SP -BFD04E06 036CF17C JALX 0xBDF00DB0 -BFD04E08 02FC036C MTC0 K1, Status -BFD04E0A 000002FC SLL S7, GP, 0 -BFD04E0C F37C0000 ERET -BFD04E0E 03BDF37C JALX 0xBDF00EF4 -169: -170: /* 16-bit Basic Timer 3 */ -171: void __attribute__((weak, interrupt, nomips16)) -172: girq23_b3(void) -173: { -BFD04E10 E17C03BD RDPGPR SP, SP -BFD04E14 00FC036E MFC0 K1, EPC -BFD04E16 034C00FC INS A3, GP, 13, -12 -BFD04E18 10FC034C MFC0 K0, SRSCtl -BFD04E1A 4FC510FC ADDI A3, GP, 20421 -BFD04E1C 4FC5 ADDIU SP, SP, -120 -BFD04E1E CB7D SW K1, 116(SP) -BFD04E20 00FC036C MFC0 K1, Status -BFD04E24 CB5C SW K0, 112(SP) -BFD04E26 00FC034D MFC0 K0, Cause -BFD04E2A CB7B SW K1, 108(SP) -BFD04E2C 5040035A SRL K0, K0, 10 -BFD04E2E 037A5040 ORI V0, ZERO, 890 -BFD04E30 7A8C037A INS K1, K0, 10, 6 -BFD04E32 03607A8C ADDIUPC A1, 787296 -BFD04E34 204C0360 INS K1, ZERO, 1, 4 -BFD04E36 036C204C LWC2 V0, 876(T4) -BFD04E38 02FC036C MTC0 K1, Status -BFD04E3C C867 SW V1, 28(SP) -BFD04E3E C846 SW V0, 24(SP) -BFD04E40 487C LW V1, 112(SP) -BFD04E42 2DB7 ANDI V1, V1, 0xF -BFD04E44 001140A3 BNEZC V1, 0xBFD04E6A -BFD04E48 CBF7 SW RA, 92(SP) -BFD04E4A CBD6 SW S8, 88(SP) -BFD04E4C CB35 SW T9, 84(SP) -BFD04E4E CB14 SW T8, 80(SP) -BFD04E50 C9F3 SW T7, 76(SP) -BFD04E52 C9D2 SW T6, 72(SP) -BFD04E54 C9B1 SW T5, 68(SP) -BFD04E56 C990 SW T4, 64(SP) -BFD04E58 C96F SW T3, 60(SP) -BFD04E5A C94E SW T2, 56(SP) -BFD04E5C C92D SW T1, 52(SP) -BFD04E5E C90C SW T0, 48(SP) -BFD04E60 C8EB SW A3, 44(SP) -BFD04E62 C8CA SW A2, 40(SP) -BFD04E64 C8A9 SW A1, 36(SP) -BFD04E66 C888 SW A0, 32(SP) -BFD04E68 C825 SW AT, 20(SP) -BFD04E6A 4642 MFLO V0 -BFD04E6C C859 SW V0, 100(SP) -BFD04E6E 4603 MFHI V1 -BFD04E70 C878 SW V1, 96(SP) -BFD04E72 0FDD MOVE S8, SP -174: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 3, TRUE); -BFD04E74 EE0F LI A0, 15 -BFD04E76 EE83 LI A1, 3 -BFD04E78 EF01 LI A2, 1 -BFD04E7A 3A4077E8 JALS jtvic_dis_clr_source -BFD04E7C 0C003A40 SH S2, 3072(ZERO) -BFD04E7E 0C00 NOP -175: } -BFD04E80 0FBE MOVE SP, S8 -BFD04E82 4859 LW V0, 100(SP) -BFD04E84 3D7C0002 MTLO V0 -BFD04E86 48783D7C LH T3, 18552(GP) -BFD04E88 4878 LW V1, 96(SP) -BFD04E8A 2D7C0003 MTHI V1 -BFD04E8C 2D7C ANDI V0, A3, 0x40 -BFD04E8E 485C LW V0, 112(SP) -BFD04E90 2D27 ANDI V0, V0, 0xF -BFD04E92 001340A2 BNEZC V0, 0xBFD04EBC -BFD04E96 4BF7 LW RA, 92(SP) -BFD04E98 4BD6 LW S8, 88(SP) -BFD04E9A 4B35 LW T9, 84(SP) -BFD04E9C 4B14 LW T8, 80(SP) -BFD04E9E 49F3 LW T7, 76(SP) -BFD04EA0 49D2 LW T6, 72(SP) -BFD04EA2 49B1 LW T5, 68(SP) -BFD04EA4 4990 LW T4, 64(SP) -BFD04EA6 496F LW T3, 60(SP) -BFD04EA8 494E LW T2, 56(SP) -BFD04EAA 492D LW T1, 52(SP) -BFD04EAC 490C LW T0, 48(SP) -BFD04EAE 48EB LW A3, 44(SP) -BFD04EB0 48CA LW A2, 40(SP) -BFD04EB2 48A9 LW A1, 36(SP) -BFD04EB4 4888 LW A0, 32(SP) -BFD04EB6 4867 LW V1, 28(SP) -BFD04EB8 4846 LW V0, 24(SP) -BFD04EBA 4825 LW AT, 20(SP) -BFD04EBC 477C0000 DI ZERO -BFD04EC0 18000000 SLL ZERO, ZERO, 3 -BFD04EC2 4B5D1800 SB ZERO, 19293(ZERO) -BFD04EC4 4B5D LW K0, 116(SP) -BFD04EC6 4B7B LW K1, 108(SP) -BFD04EC8 02FC034E MTC0 K0, EPC -BFD04ECC 4B5C LW K0, 112(SP) -BFD04ECE 4C3D ADDIU SP, SP, 120 -BFD04ED0 12FC034C MTC0 K0, SRSCtl -BFD04ED2 03BD12FC ADDI S7, GP, 957 -BFD04ED4 F17C03BD WRPGPR SP, SP -BFD04ED6 036CF17C JALX 0xBDF00DB0 -BFD04ED8 02FC036C MTC0 K1, Status -BFD04EDA 000002FC SLL S7, GP, 0 -BFD04EDC F37C0000 ERET -BFD04EDE 03BDF37C JALX 0xBDF00EF4 -176: -177: /* RTOS Timer */ -178: void __attribute__((weak, interrupt, nomips16)) -179: girq23_b4(void) -180: { -BFD07318 E17C03BD RDPGPR SP, SP -BFD0731C 00FC036E MFC0 K1, EPC -BFD0731E 034C00FC INS A3, GP, 13, -12 -BFD07320 10FC034C MFC0 K0, SRSCtl -BFD07322 4FF110FC ADDI A3, GP, 20465 -BFD07324 4FF1 ADDIU SP, SP, -32 -BFD07326 CB67 SW K1, 28(SP) -BFD07328 00FC036C MFC0 K1, Status -BFD0732C CB46 SW K0, 24(SP) -BFD0732E 00FC034D MFC0 K0, Cause -BFD07332 CB65 SW K1, 20(SP) -BFD07334 5040035A SRL K0, K0, 10 -BFD07336 037A5040 ORI V0, ZERO, 890 -BFD07338 7A8C037A INS K1, K0, 10, 6 -BFD0733A 03607A8C ADDIUPC A1, 787296 -BFD0733C 204C0360 INS K1, ZERO, 1, 4 -BFD0733E 036C204C LWC2 V0, 876(T4) -BFD07340 02FC036C MTC0 K1, Status -BFD07344 C862 SW V1, 8(SP) -BFD07346 C841 SW V0, 4(SP) -BFD07348 4866 LW V1, 24(SP) -BFD0734A 2DB7 ANDI V1, V1, 0xF -BFD0734C CBC3 SW S8, 12(SP) -BFD0734E 0FDD MOVE S8, SP -181: JTVIC_GIRQ->REGS[MEC14xx_GIRQ23_ID].SOURCE = (1ul << 4); -BFD07350 BFFF41A2 LUI V0, 0xBFFF -BFD07352 5042BFFF LDC1 F31, 20546(RA) -BFD07354 C0005042 ORI V0, V0, -16384 -BFD07358 ED90 LI V1, 16 -BFD0735A 00F0F862 SW V1, 240(V0) -182: -183: } -BFD0735E 0FBE MOVE SP, S8 -BFD07360 4846 LW V0, 24(SP) -BFD07362 2D27 ANDI V0, V0, 0xF -BFD07364 4BC3 LW S8, 12(SP) -BFD07366 4862 LW V1, 8(SP) -BFD07368 4841 LW V0, 4(SP) -BFD0736A 477C0000 DI ZERO -BFD0736E 18000000 SLL ZERO, ZERO, 3 -BFD07370 4B471800 SB ZERO, 19271(ZERO) -BFD07372 4B47 LW K0, 28(SP) -BFD07374 4B65 LW K1, 20(SP) -BFD07376 02FC034E MTC0 K0, EPC -BFD0737A 4B46 LW K0, 24(SP) -BFD0737C 4C11 ADDIU SP, SP, 32 -BFD0737E 12FC034C MTC0 K0, SRSCtl -BFD07380 03BD12FC ADDI S7, GP, 957 -BFD07382 F17C03BD WRPGPR SP, SP -BFD07384 036CF17C JALX 0xBDF00DB0 -BFD07386 02FC036C MTC0 K1, Status -BFD07388 000002FC SLL S7, GP, 0 -BFD0738A F37C0000 ERET -BFD0738C 0C00F37C JALX 0xBDF03000 -184: -185: /* Hibernation Timer */ -186: void __attribute__((weak, interrupt, nomips16)) -187: girq23_b5(void) -188: { -BFD04EE0 E17C03BD RDPGPR SP, SP -BFD04EE4 00FC036E MFC0 K1, EPC -BFD04EE6 034C00FC INS A3, GP, 13, -12 -BFD04EE8 10FC034C MFC0 K0, SRSCtl -BFD04EEA 4FC510FC ADDI A3, GP, 20421 -BFD04EEC 4FC5 ADDIU SP, SP, -120 -BFD04EEE CB7D SW K1, 116(SP) -BFD04EF0 00FC036C MFC0 K1, Status -BFD04EF4 CB5C SW K0, 112(SP) -BFD04EF6 00FC034D MFC0 K0, Cause -BFD04EFA CB7B SW K1, 108(SP) -BFD04EFC 5040035A SRL K0, K0, 10 -BFD04EFE 037A5040 ORI V0, ZERO, 890 -BFD04F00 7A8C037A INS K1, K0, 10, 6 -BFD04F02 03607A8C ADDIUPC A1, 787296 -BFD04F04 204C0360 INS K1, ZERO, 1, 4 -BFD04F06 036C204C LWC2 V0, 876(T4) -BFD04F08 02FC036C MTC0 K1, Status -BFD04F0C C867 SW V1, 28(SP) -BFD04F0E C846 SW V0, 24(SP) -BFD04F10 487C LW V1, 112(SP) -BFD04F12 2DB7 ANDI V1, V1, 0xF -BFD04F14 001140A3 BNEZC V1, 0xBFD04F3A -BFD04F18 CBF7 SW RA, 92(SP) -BFD04F1A CBD6 SW S8, 88(SP) -BFD04F1C CB35 SW T9, 84(SP) -BFD04F1E CB14 SW T8, 80(SP) -BFD04F20 C9F3 SW T7, 76(SP) -BFD04F22 C9D2 SW T6, 72(SP) -BFD04F24 C9B1 SW T5, 68(SP) -BFD04F26 C990 SW T4, 64(SP) -BFD04F28 C96F SW T3, 60(SP) -BFD04F2A C94E SW T2, 56(SP) -BFD04F2C C92D SW T1, 52(SP) -BFD04F2E C90C SW T0, 48(SP) -BFD04F30 C8EB SW A3, 44(SP) -BFD04F32 C8CA SW A2, 40(SP) -BFD04F34 C8A9 SW A1, 36(SP) -BFD04F36 C888 SW A0, 32(SP) -BFD04F38 C825 SW AT, 20(SP) -BFD04F3A 4642 MFLO V0 -BFD04F3C C859 SW V0, 100(SP) -BFD04F3E 4603 MFHI V1 -BFD04F40 C878 SW V1, 96(SP) -BFD04F42 0FDD MOVE S8, SP -189: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 5, TRUE); -BFD04F44 EE0F LI A0, 15 -BFD04F46 EE85 LI A1, 5 -BFD04F48 EF01 LI A2, 1 -BFD04F4A 3A4077E8 JALS jtvic_dis_clr_source -BFD04F4C 0C003A40 SH S2, 3072(ZERO) -BFD04F4E 0C00 NOP -190: } -BFD04F50 0FBE MOVE SP, S8 -BFD04F52 4859 LW V0, 100(SP) -BFD04F54 3D7C0002 MTLO V0 -BFD04F56 48783D7C LH T3, 18552(GP) -BFD04F58 4878 LW V1, 96(SP) -BFD04F5A 2D7C0003 MTHI V1 -BFD04F5C 2D7C ANDI V0, A3, 0x40 -BFD04F5E 485C LW V0, 112(SP) -BFD04F60 2D27 ANDI V0, V0, 0xF -BFD04F62 001340A2 BNEZC V0, 0xBFD04F8C -BFD04F66 4BF7 LW RA, 92(SP) -BFD04F68 4BD6 LW S8, 88(SP) -BFD04F6A 4B35 LW T9, 84(SP) -BFD04F6C 4B14 LW T8, 80(SP) -BFD04F6E 49F3 LW T7, 76(SP) -BFD04F70 49D2 LW T6, 72(SP) -BFD04F72 49B1 LW T5, 68(SP) -BFD04F74 4990 LW T4, 64(SP) -BFD04F76 496F LW T3, 60(SP) -BFD04F78 494E LW T2, 56(SP) -BFD04F7A 492D LW T1, 52(SP) -BFD04F7C 490C LW T0, 48(SP) -BFD04F7E 48EB LW A3, 44(SP) -BFD04F80 48CA LW A2, 40(SP) -BFD04F82 48A9 LW A1, 36(SP) -BFD04F84 4888 LW A0, 32(SP) -BFD04F86 4867 LW V1, 28(SP) -BFD04F88 4846 LW V0, 24(SP) -BFD04F8A 4825 LW AT, 20(SP) -BFD04F8C 477C0000 DI ZERO -BFD04F90 18000000 SLL ZERO, ZERO, 3 -BFD04F92 4B5D1800 SB ZERO, 19293(ZERO) -BFD04F94 4B5D LW K0, 116(SP) -BFD04F96 4B7B LW K1, 108(SP) -BFD04F98 02FC034E MTC0 K0, EPC -BFD04F9C 4B5C LW K0, 112(SP) -BFD04F9E 4C3D ADDIU SP, SP, 120 -BFD04FA0 12FC034C MTC0 K0, SRSCtl -BFD04FA2 03BD12FC ADDI S7, GP, 957 -BFD04FA4 F17C03BD WRPGPR SP, SP -BFD04FA6 036CF17C JALX 0xBDF00DB0 -BFD04FA8 02FC036C MTC0 K1, Status -BFD04FAA 000002FC SLL S7, GP, 0 -BFD04FAC F37C0000 ERET -BFD04FAE 03BDF37C JALX 0xBDF00EF4 -191: -192: /* Week Alarm */ -193: void __attribute__((weak, interrupt, nomips16)) -194: girq23_b6(void) -195: { -BFD04FB0 E17C03BD RDPGPR SP, SP -BFD04FB4 00FC036E MFC0 K1, EPC -BFD04FB6 034C00FC INS A3, GP, 13, -12 -BFD04FB8 10FC034C MFC0 K0, SRSCtl -BFD04FBA 4FC510FC ADDI A3, GP, 20421 -BFD04FBC 4FC5 ADDIU SP, SP, -120 -BFD04FBE CB7D SW K1, 116(SP) -BFD04FC0 00FC036C MFC0 K1, Status -BFD04FC4 CB5C SW K0, 112(SP) -BFD04FC6 00FC034D MFC0 K0, Cause -BFD04FCA CB7B SW K1, 108(SP) -BFD04FCC 5040035A SRL K0, K0, 10 -BFD04FCE 037A5040 ORI V0, ZERO, 890 -BFD04FD0 7A8C037A INS K1, K0, 10, 6 -BFD04FD2 03607A8C ADDIUPC A1, 787296 -BFD04FD4 204C0360 INS K1, ZERO, 1, 4 -BFD04FD6 036C204C LWC2 V0, 876(T4) -BFD04FD8 02FC036C MTC0 K1, Status -BFD04FDC C867 SW V1, 28(SP) -BFD04FDE C846 SW V0, 24(SP) -BFD04FE0 487C LW V1, 112(SP) -BFD04FE2 2DB7 ANDI V1, V1, 0xF -BFD04FE4 001140A3 BNEZC V1, 0xBFD0500A -BFD04FE8 CBF7 SW RA, 92(SP) -BFD04FEA CBD6 SW S8, 88(SP) -BFD04FEC CB35 SW T9, 84(SP) -BFD04FEE CB14 SW T8, 80(SP) -BFD04FF0 C9F3 SW T7, 76(SP) -BFD04FF2 C9D2 SW T6, 72(SP) -BFD04FF4 C9B1 SW T5, 68(SP) -BFD04FF6 C990 SW T4, 64(SP) -BFD04FF8 C96F SW T3, 60(SP) -BFD04FFA C94E SW T2, 56(SP) -BFD04FFC C92D SW T1, 52(SP) -BFD04FFE C90C SW T0, 48(SP) -BFD05000 C8EB SW A3, 44(SP) -BFD05002 C8CA SW A2, 40(SP) -BFD05004 C8A9 SW A1, 36(SP) -BFD05006 C888 SW A0, 32(SP) -BFD05008 C825 SW AT, 20(SP) -BFD0500A 4642 MFLO V0 -BFD0500C C859 SW V0, 100(SP) -BFD0500E 4603 MFHI V1 -BFD05010 C878 SW V1, 96(SP) -BFD05012 0FDD MOVE S8, SP -196: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 6, TRUE); -BFD05014 EE0F LI A0, 15 -BFD05016 EE86 LI A1, 6 -BFD05018 EF01 LI A2, 1 -BFD0501A 3A4077E8 JALS jtvic_dis_clr_source -BFD0501C 0C003A40 SH S2, 3072(ZERO) -BFD0501E 0C00 NOP -197: } -BFD05020 0FBE MOVE SP, S8 -BFD05022 4859 LW V0, 100(SP) -BFD05024 3D7C0002 MTLO V0 -BFD05026 48783D7C LH T3, 18552(GP) -BFD05028 4878 LW V1, 96(SP) -BFD0502A 2D7C0003 MTHI V1 -BFD0502C 2D7C ANDI V0, A3, 0x40 -BFD0502E 485C LW V0, 112(SP) -BFD05030 2D27 ANDI V0, V0, 0xF -BFD05032 001340A2 BNEZC V0, 0xBFD0505C -BFD05036 4BF7 LW RA, 92(SP) -BFD05038 4BD6 LW S8, 88(SP) -BFD0503A 4B35 LW T9, 84(SP) -BFD0503C 4B14 LW T8, 80(SP) -BFD0503E 49F3 LW T7, 76(SP) -BFD05040 49D2 LW T6, 72(SP) -BFD05042 49B1 LW T5, 68(SP) -BFD05044 4990 LW T4, 64(SP) -BFD05046 496F LW T3, 60(SP) -BFD05048 494E LW T2, 56(SP) -BFD0504A 492D LW T1, 52(SP) -BFD0504C 490C LW T0, 48(SP) -BFD0504E 48EB LW A3, 44(SP) -BFD05050 48CA LW A2, 40(SP) -BFD05052 48A9 LW A1, 36(SP) -BFD05054 4888 LW A0, 32(SP) -BFD05056 4867 LW V1, 28(SP) -BFD05058 4846 LW V0, 24(SP) -BFD0505A 4825 LW AT, 20(SP) -BFD0505C 477C0000 DI ZERO -BFD05060 18000000 SLL ZERO, ZERO, 3 -BFD05062 4B5D1800 SB ZERO, 19293(ZERO) -BFD05064 4B5D LW K0, 116(SP) -BFD05066 4B7B LW K1, 108(SP) -BFD05068 02FC034E MTC0 K0, EPC -BFD0506C 4B5C LW K0, 112(SP) -BFD0506E 4C3D ADDIU SP, SP, 120 -BFD05070 12FC034C MTC0 K0, SRSCtl -BFD05072 03BD12FC ADDI S7, GP, 957 -BFD05074 F17C03BD WRPGPR SP, SP -BFD05076 036CF17C JALX 0xBDF00DB0 -BFD05078 02FC036C MTC0 K1, Status -BFD0507A 000002FC SLL S7, GP, 0 -BFD0507C F37C0000 ERET -BFD0507E 03BDF37C JALX 0xBDF00EF4 -198: -199: /* Sub-Week Alarm */ -200: void __attribute__((weak, interrupt, nomips16)) -201: girq23_b7(void) -202: { -BFD05080 E17C03BD RDPGPR SP, SP -BFD05084 00FC036E MFC0 K1, EPC -BFD05086 034C00FC INS A3, GP, 13, -12 -BFD05088 10FC034C MFC0 K0, SRSCtl -BFD0508A 4FC510FC ADDI A3, GP, 20421 -BFD0508C 4FC5 ADDIU SP, SP, -120 -BFD0508E CB7D SW K1, 116(SP) -BFD05090 00FC036C MFC0 K1, Status -BFD05094 CB5C SW K0, 112(SP) -BFD05096 00FC034D MFC0 K0, Cause -BFD0509A CB7B SW K1, 108(SP) -BFD0509C 5040035A SRL K0, K0, 10 -BFD0509E 037A5040 ORI V0, ZERO, 890 -BFD050A0 7A8C037A INS K1, K0, 10, 6 -BFD050A2 03607A8C ADDIUPC A1, 787296 -BFD050A4 204C0360 INS K1, ZERO, 1, 4 -BFD050A6 036C204C LWC2 V0, 876(T4) -BFD050A8 02FC036C MTC0 K1, Status -BFD050AC C867 SW V1, 28(SP) -BFD050AE C846 SW V0, 24(SP) -BFD050B0 487C LW V1, 112(SP) -BFD050B2 2DB7 ANDI V1, V1, 0xF -BFD050B4 001140A3 BNEZC V1, 0xBFD050DA -BFD050B8 CBF7 SW RA, 92(SP) -BFD050BA CBD6 SW S8, 88(SP) -BFD050BC CB35 SW T9, 84(SP) -BFD050BE CB14 SW T8, 80(SP) -BFD050C0 C9F3 SW T7, 76(SP) -BFD050C2 C9D2 SW T6, 72(SP) -BFD050C4 C9B1 SW T5, 68(SP) -BFD050C6 C990 SW T4, 64(SP) -BFD050C8 C96F SW T3, 60(SP) -BFD050CA C94E SW T2, 56(SP) -BFD050CC C92D SW T1, 52(SP) -BFD050CE C90C SW T0, 48(SP) -BFD050D0 C8EB SW A3, 44(SP) -BFD050D2 C8CA SW A2, 40(SP) -BFD050D4 C8A9 SW A1, 36(SP) -BFD050D6 C888 SW A0, 32(SP) -BFD050D8 C825 SW AT, 20(SP) -BFD050DA 4642 MFLO V0 -BFD050DC C859 SW V0, 100(SP) -BFD050DE 4603 MFHI V1 -BFD050E0 C878 SW V1, 96(SP) -BFD050E2 0FDD MOVE S8, SP -203: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 7, TRUE); -BFD050E4 EE0F LI A0, 15 -BFD050E6 EE87 LI A1, 7 -BFD050E8 EF01 LI A2, 1 -BFD050EA 3A4077E8 JALS jtvic_dis_clr_source -BFD050EC 0C003A40 SH S2, 3072(ZERO) -BFD050EE 0C00 NOP -204: } -BFD050F0 0FBE MOVE SP, S8 -BFD050F2 4859 LW V0, 100(SP) -BFD050F4 3D7C0002 MTLO V0 -BFD050F6 48783D7C LH T3, 18552(GP) -BFD050F8 4878 LW V1, 96(SP) -BFD050FA 2D7C0003 MTHI V1 -BFD050FC 2D7C ANDI V0, A3, 0x40 -BFD050FE 485C LW V0, 112(SP) -BFD05100 2D27 ANDI V0, V0, 0xF -BFD05102 001340A2 BNEZC V0, 0xBFD0512C -BFD05106 4BF7 LW RA, 92(SP) -BFD05108 4BD6 LW S8, 88(SP) -BFD0510A 4B35 LW T9, 84(SP) -BFD0510C 4B14 LW T8, 80(SP) -BFD0510E 49F3 LW T7, 76(SP) -BFD05110 49D2 LW T6, 72(SP) -BFD05112 49B1 LW T5, 68(SP) -BFD05114 4990 LW T4, 64(SP) -BFD05116 496F LW T3, 60(SP) -BFD05118 494E LW T2, 56(SP) -BFD0511A 492D LW T1, 52(SP) -BFD0511C 490C LW T0, 48(SP) -BFD0511E 48EB LW A3, 44(SP) -BFD05120 48CA LW A2, 40(SP) -BFD05122 48A9 LW A1, 36(SP) -BFD05124 4888 LW A0, 32(SP) -BFD05126 4867 LW V1, 28(SP) -BFD05128 4846 LW V0, 24(SP) -BFD0512A 4825 LW AT, 20(SP) -BFD0512C 477C0000 DI ZERO -BFD05130 18000000 SLL ZERO, ZERO, 3 -BFD05132 4B5D1800 SB ZERO, 19293(ZERO) -BFD05134 4B5D LW K0, 116(SP) -BFD05136 4B7B LW K1, 108(SP) -BFD05138 02FC034E MTC0 K0, EPC -BFD0513C 4B5C LW K0, 112(SP) -BFD0513E 4C3D ADDIU SP, SP, 120 -BFD05140 12FC034C MTC0 K0, SRSCtl -BFD05142 03BD12FC ADDI S7, GP, 957 -BFD05144 F17C03BD WRPGPR SP, SP -BFD05146 036CF17C JALX 0xBDF00DB0 -BFD05148 02FC036C MTC0 K1, Status -BFD0514A 000002FC SLL S7, GP, 0 -BFD0514C F37C0000 ERET -BFD0514E 03BDF37C JALX 0xBDF00EF4 -205: -206: /* Week Alarm One Second */ -207: void __attribute__((weak, interrupt, nomips16)) -208: girq23_b8(void) -209: { -BFD05150 E17C03BD RDPGPR SP, SP -BFD05154 00FC036E MFC0 K1, EPC -BFD05156 034C00FC INS A3, GP, 13, -12 -BFD05158 10FC034C MFC0 K0, SRSCtl -BFD0515A 4FC510FC ADDI A3, GP, 20421 -BFD0515C 4FC5 ADDIU SP, SP, -120 -BFD0515E CB7D SW K1, 116(SP) -BFD05160 00FC036C MFC0 K1, Status -BFD05164 CB5C SW K0, 112(SP) -BFD05166 00FC034D MFC0 K0, Cause -BFD0516A CB7B SW K1, 108(SP) -BFD0516C 5040035A SRL K0, K0, 10 -BFD0516E 037A5040 ORI V0, ZERO, 890 -BFD05170 7A8C037A INS K1, K0, 10, 6 -BFD05172 03607A8C ADDIUPC A1, 787296 -BFD05174 204C0360 INS K1, ZERO, 1, 4 -BFD05176 036C204C LWC2 V0, 876(T4) -BFD05178 02FC036C MTC0 K1, Status -BFD0517C C867 SW V1, 28(SP) -BFD0517E C846 SW V0, 24(SP) -BFD05180 487C LW V1, 112(SP) -BFD05182 2DB7 ANDI V1, V1, 0xF -BFD05184 001140A3 BNEZC V1, 0xBFD051AA -BFD05188 CBF7 SW RA, 92(SP) -BFD0518A CBD6 SW S8, 88(SP) -BFD0518C CB35 SW T9, 84(SP) -BFD0518E CB14 SW T8, 80(SP) -BFD05190 C9F3 SW T7, 76(SP) -BFD05192 C9D2 SW T6, 72(SP) -BFD05194 C9B1 SW T5, 68(SP) -BFD05196 C990 SW T4, 64(SP) -BFD05198 C96F SW T3, 60(SP) -BFD0519A C94E SW T2, 56(SP) -BFD0519C C92D SW T1, 52(SP) -BFD0519E C90C SW T0, 48(SP) -BFD051A0 C8EB SW A3, 44(SP) -BFD051A2 C8CA SW A2, 40(SP) -BFD051A4 C8A9 SW A1, 36(SP) -BFD051A6 C888 SW A0, 32(SP) -BFD051A8 C825 SW AT, 20(SP) -BFD051AA 4642 MFLO V0 -BFD051AC C859 SW V0, 100(SP) -BFD051AE 4603 MFHI V1 -BFD051B0 C878 SW V1, 96(SP) -BFD051B2 0FDD MOVE S8, SP -210: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 8, TRUE); -BFD051B4 EE0F LI A0, 15 -BFD051B6 EE88 LI A1, 8 -BFD051B8 EF01 LI A2, 1 -BFD051BA 3A4077E8 JALS jtvic_dis_clr_source -BFD051BC 0C003A40 SH S2, 3072(ZERO) -BFD051BE 0C00 NOP -211: } -BFD051C0 0FBE MOVE SP, S8 -BFD051C2 4859 LW V0, 100(SP) -BFD051C4 3D7C0002 MTLO V0 -BFD051C6 48783D7C LH T3, 18552(GP) -BFD051C8 4878 LW V1, 96(SP) -BFD051CA 2D7C0003 MTHI V1 -BFD051CC 2D7C ANDI V0, A3, 0x40 -BFD051CE 485C LW V0, 112(SP) -BFD051D0 2D27 ANDI V0, V0, 0xF -BFD051D2 001340A2 BNEZC V0, 0xBFD051FC -BFD051D6 4BF7 LW RA, 92(SP) -BFD051D8 4BD6 LW S8, 88(SP) -BFD051DA 4B35 LW T9, 84(SP) -BFD051DC 4B14 LW T8, 80(SP) -BFD051DE 49F3 LW T7, 76(SP) -BFD051E0 49D2 LW T6, 72(SP) -BFD051E2 49B1 LW T5, 68(SP) -BFD051E4 4990 LW T4, 64(SP) -BFD051E6 496F LW T3, 60(SP) -BFD051E8 494E LW T2, 56(SP) -BFD051EA 492D LW T1, 52(SP) -BFD051EC 490C LW T0, 48(SP) -BFD051EE 48EB LW A3, 44(SP) -BFD051F0 48CA LW A2, 40(SP) -BFD051F2 48A9 LW A1, 36(SP) -BFD051F4 4888 LW A0, 32(SP) -BFD051F6 4867 LW V1, 28(SP) -BFD051F8 4846 LW V0, 24(SP) -BFD051FA 4825 LW AT, 20(SP) -BFD051FC 477C0000 DI ZERO -BFD05200 18000000 SLL ZERO, ZERO, 3 -BFD05202 4B5D1800 SB ZERO, 19293(ZERO) -BFD05204 4B5D LW K0, 116(SP) -BFD05206 4B7B LW K1, 108(SP) -BFD05208 02FC034E MTC0 K0, EPC -BFD0520C 4B5C LW K0, 112(SP) -BFD0520E 4C3D ADDIU SP, SP, 120 -BFD05210 12FC034C MTC0 K0, SRSCtl -BFD05212 03BD12FC ADDI S7, GP, 957 -BFD05214 F17C03BD WRPGPR SP, SP -BFD05216 036CF17C JALX 0xBDF00DB0 -BFD05218 02FC036C MTC0 K1, Status -BFD0521A 000002FC SLL S7, GP, 0 -BFD0521C F37C0000 ERET -BFD0521E 03BDF37C JALX 0xBDF00EF4 -212: -213: /* Week Alarm Sub Second */ -214: void __attribute__((weak, interrupt, nomips16)) -215: girq23_b9(void) -216: { -BFD05220 E17C03BD RDPGPR SP, SP -BFD05224 00FC036E MFC0 K1, EPC -BFD05226 034C00FC INS A3, GP, 13, -12 -BFD05228 10FC034C MFC0 K0, SRSCtl -BFD0522A 4FC510FC ADDI A3, GP, 20421 -BFD0522C 4FC5 ADDIU SP, SP, -120 -BFD0522E CB7D SW K1, 116(SP) -BFD05230 00FC036C MFC0 K1, Status -BFD05234 CB5C SW K0, 112(SP) -BFD05236 00FC034D MFC0 K0, Cause -BFD0523A CB7B SW K1, 108(SP) -BFD0523C 5040035A SRL K0, K0, 10 -BFD0523E 037A5040 ORI V0, ZERO, 890 -BFD05240 7A8C037A INS K1, K0, 10, 6 -BFD05242 03607A8C ADDIUPC A1, 787296 -BFD05244 204C0360 INS K1, ZERO, 1, 4 -BFD05246 036C204C LWC2 V0, 876(T4) -BFD05248 02FC036C MTC0 K1, Status -BFD0524C C867 SW V1, 28(SP) -BFD0524E C846 SW V0, 24(SP) -BFD05250 487C LW V1, 112(SP) -BFD05252 2DB7 ANDI V1, V1, 0xF -BFD05254 001140A3 BNEZC V1, 0xBFD0527A -BFD05258 CBF7 SW RA, 92(SP) -BFD0525A CBD6 SW S8, 88(SP) -BFD0525C CB35 SW T9, 84(SP) -BFD0525E CB14 SW T8, 80(SP) -BFD05260 C9F3 SW T7, 76(SP) -BFD05262 C9D2 SW T6, 72(SP) -BFD05264 C9B1 SW T5, 68(SP) -BFD05266 C990 SW T4, 64(SP) -BFD05268 C96F SW T3, 60(SP) -BFD0526A C94E SW T2, 56(SP) -BFD0526C C92D SW T1, 52(SP) -BFD0526E C90C SW T0, 48(SP) -BFD05270 C8EB SW A3, 44(SP) -BFD05272 C8CA SW A2, 40(SP) -BFD05274 C8A9 SW A1, 36(SP) -BFD05276 C888 SW A0, 32(SP) -BFD05278 C825 SW AT, 20(SP) -BFD0527A 4642 MFLO V0 -BFD0527C C859 SW V0, 100(SP) -BFD0527E 4603 MFHI V1 -BFD05280 C878 SW V1, 96(SP) -BFD05282 0FDD MOVE S8, SP -217: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 9, TRUE); -BFD05284 EE0F LI A0, 15 -BFD05286 EE89 LI A1, 9 -BFD05288 EF01 LI A2, 1 -BFD0528A 3A4077E8 JALS jtvic_dis_clr_source -BFD0528C 0C003A40 SH S2, 3072(ZERO) -BFD0528E 0C00 NOP -218: } -BFD05290 0FBE MOVE SP, S8 -BFD05292 4859 LW V0, 100(SP) -BFD05294 3D7C0002 MTLO V0 -BFD05296 48783D7C LH T3, 18552(GP) -BFD05298 4878 LW V1, 96(SP) -BFD0529A 2D7C0003 MTHI V1 -BFD0529C 2D7C ANDI V0, A3, 0x40 -BFD0529E 485C LW V0, 112(SP) -BFD052A0 2D27 ANDI V0, V0, 0xF -BFD052A2 001340A2 BNEZC V0, 0xBFD052CC -BFD052A6 4BF7 LW RA, 92(SP) -BFD052A8 4BD6 LW S8, 88(SP) -BFD052AA 4B35 LW T9, 84(SP) -BFD052AC 4B14 LW T8, 80(SP) -BFD052AE 49F3 LW T7, 76(SP) -BFD052B0 49D2 LW T6, 72(SP) -BFD052B2 49B1 LW T5, 68(SP) -BFD052B4 4990 LW T4, 64(SP) -BFD052B6 496F LW T3, 60(SP) -BFD052B8 494E LW T2, 56(SP) -BFD052BA 492D LW T1, 52(SP) -BFD052BC 490C LW T0, 48(SP) -BFD052BE 48EB LW A3, 44(SP) -BFD052C0 48CA LW A2, 40(SP) -BFD052C2 48A9 LW A1, 36(SP) -BFD052C4 4888 LW A0, 32(SP) -BFD052C6 4867 LW V1, 28(SP) -BFD052C8 4846 LW V0, 24(SP) -BFD052CA 4825 LW AT, 20(SP) -BFD052CC 477C0000 DI ZERO -BFD052D0 18000000 SLL ZERO, ZERO, 3 -BFD052D2 4B5D1800 SB ZERO, 19293(ZERO) -BFD052D4 4B5D LW K0, 116(SP) -BFD052D6 4B7B LW K1, 108(SP) -BFD052D8 02FC034E MTC0 K0, EPC -BFD052DC 4B5C LW K0, 112(SP) -BFD052DE 4C3D ADDIU SP, SP, 120 -BFD052E0 12FC034C MTC0 K0, SRSCtl -BFD052E2 03BD12FC ADDI S7, GP, 957 -BFD052E4 F17C03BD WRPGPR SP, SP -BFD052E6 036CF17C JALX 0xBDF00DB0 -BFD052E8 02FC036C MTC0 K1, Status -BFD052EA 000002FC SLL S7, GP, 0 -BFD052EC F37C0000 ERET -BFD052EE 03BDF37C JALX 0xBDF00EF4 -219: -220: /* Week Alarm System Power Present Pin */ -221: void __attribute__((weak, interrupt, nomips16)) -222: girq23_b10(void) -223: { -BFD052F0 E17C03BD RDPGPR SP, SP -BFD052F4 00FC036E MFC0 K1, EPC -BFD052F6 034C00FC INS A3, GP, 13, -12 -BFD052F8 10FC034C MFC0 K0, SRSCtl -BFD052FA 4FC510FC ADDI A3, GP, 20421 -BFD052FC 4FC5 ADDIU SP, SP, -120 -BFD052FE CB7D SW K1, 116(SP) -BFD05300 00FC036C MFC0 K1, Status -BFD05304 CB5C SW K0, 112(SP) -BFD05306 00FC034D MFC0 K0, Cause -BFD0530A CB7B SW K1, 108(SP) -BFD0530C 5040035A SRL K0, K0, 10 -BFD0530E 037A5040 ORI V0, ZERO, 890 -BFD05310 7A8C037A INS K1, K0, 10, 6 -BFD05312 03607A8C ADDIUPC A1, 787296 -BFD05314 204C0360 INS K1, ZERO, 1, 4 -BFD05316 036C204C LWC2 V0, 876(T4) -BFD05318 02FC036C MTC0 K1, Status -BFD0531C C867 SW V1, 28(SP) -BFD0531E C846 SW V0, 24(SP) -BFD05320 487C LW V1, 112(SP) -BFD05322 2DB7 ANDI V1, V1, 0xF -BFD05324 001140A3 BNEZC V1, 0xBFD0534A -BFD05328 CBF7 SW RA, 92(SP) -BFD0532A CBD6 SW S8, 88(SP) -BFD0532C CB35 SW T9, 84(SP) -BFD0532E CB14 SW T8, 80(SP) -BFD05330 C9F3 SW T7, 76(SP) -BFD05332 C9D2 SW T6, 72(SP) -BFD05334 C9B1 SW T5, 68(SP) -BFD05336 C990 SW T4, 64(SP) -BFD05338 C96F SW T3, 60(SP) -BFD0533A C94E SW T2, 56(SP) -BFD0533C C92D SW T1, 52(SP) -BFD0533E C90C SW T0, 48(SP) -BFD05340 C8EB SW A3, 44(SP) -BFD05342 C8CA SW A2, 40(SP) -BFD05344 C8A9 SW A1, 36(SP) -BFD05346 C888 SW A0, 32(SP) -BFD05348 C825 SW AT, 20(SP) -BFD0534A 4642 MFLO V0 -BFD0534C C859 SW V0, 100(SP) -BFD0534E 4603 MFHI V1 -BFD05350 C878 SW V1, 96(SP) -BFD05352 0FDD MOVE S8, SP -224: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 10, TRUE); -BFD05354 EE0F LI A0, 15 -BFD05356 EE8A LI A1, 10 -BFD05358 EF01 LI A2, 1 -BFD0535A 3A4077E8 JALS jtvic_dis_clr_source -BFD0535C 0C003A40 SH S2, 3072(ZERO) -BFD0535E 0C00 NOP -225: } -BFD05360 0FBE MOVE SP, S8 -BFD05362 4859 LW V0, 100(SP) -BFD05364 3D7C0002 MTLO V0 -BFD05366 48783D7C LH T3, 18552(GP) -BFD05368 4878 LW V1, 96(SP) -BFD0536A 2D7C0003 MTHI V1 -BFD0536C 2D7C ANDI V0, A3, 0x40 -BFD0536E 485C LW V0, 112(SP) -BFD05370 2D27 ANDI V0, V0, 0xF -BFD05372 001340A2 BNEZC V0, 0xBFD0539C -BFD05376 4BF7 LW RA, 92(SP) -BFD05378 4BD6 LW S8, 88(SP) -BFD0537A 4B35 LW T9, 84(SP) -BFD0537C 4B14 LW T8, 80(SP) -BFD0537E 49F3 LW T7, 76(SP) -BFD05380 49D2 LW T6, 72(SP) -BFD05382 49B1 LW T5, 68(SP) -BFD05384 4990 LW T4, 64(SP) -BFD05386 496F LW T3, 60(SP) -BFD05388 494E LW T2, 56(SP) -BFD0538A 492D LW T1, 52(SP) -BFD0538C 490C LW T0, 48(SP) -BFD0538E 48EB LW A3, 44(SP) -BFD05390 48CA LW A2, 40(SP) -BFD05392 48A9 LW A1, 36(SP) -BFD05394 4888 LW A0, 32(SP) -BFD05396 4867 LW V1, 28(SP) -BFD05398 4846 LW V0, 24(SP) -BFD0539A 4825 LW AT, 20(SP) -BFD0539C 477C0000 DI ZERO -BFD053A0 18000000 SLL ZERO, ZERO, 3 -BFD053A2 4B5D1800 SB ZERO, 19293(ZERO) -BFD053A4 4B5D LW K0, 116(SP) -BFD053A6 4B7B LW K1, 108(SP) -BFD053A8 02FC034E MTC0 K0, EPC -BFD053AC 4B5C LW K0, 112(SP) -BFD053AE 4C3D ADDIU SP, SP, 120 -BFD053B0 12FC034C MTC0 K0, SRSCtl -BFD053B2 03BD12FC ADDI S7, GP, 957 -BFD053B4 F17C03BD WRPGPR SP, SP -BFD053B6 036CF17C JALX 0xBDF00DB0 -BFD053B8 02FC036C MTC0 K1, Status -BFD053BA 000002FC SLL S7, GP, 0 -BFD053BC F37C0000 ERET -BFD053BE 03BDF37C JALX 0xBDF00EF4 -226: -227: /* VCI OVRD Input */ -228: void __attribute__((weak, interrupt, nomips16)) -229: girq23_b11(void) -230: { -BFD053C0 E17C03BD RDPGPR SP, SP -BFD053C4 00FC036E MFC0 K1, EPC -BFD053C6 034C00FC INS A3, GP, 13, -12 -BFD053C8 10FC034C MFC0 K0, SRSCtl -BFD053CA 4FC510FC ADDI A3, GP, 20421 -BFD053CC 4FC5 ADDIU SP, SP, -120 -BFD053CE CB7D SW K1, 116(SP) -BFD053D0 00FC036C MFC0 K1, Status -BFD053D4 CB5C SW K0, 112(SP) -BFD053D6 00FC034D MFC0 K0, Cause -BFD053DA CB7B SW K1, 108(SP) -BFD053DC 5040035A SRL K0, K0, 10 -BFD053DE 037A5040 ORI V0, ZERO, 890 -BFD053E0 7A8C037A INS K1, K0, 10, 6 -BFD053E2 03607A8C ADDIUPC A1, 787296 -BFD053E4 204C0360 INS K1, ZERO, 1, 4 -BFD053E6 036C204C LWC2 V0, 876(T4) -BFD053E8 02FC036C MTC0 K1, Status -BFD053EC C867 SW V1, 28(SP) -BFD053EE C846 SW V0, 24(SP) -BFD053F0 487C LW V1, 112(SP) -BFD053F2 2DB7 ANDI V1, V1, 0xF -BFD053F4 001140A3 BNEZC V1, 0xBFD0541A -BFD053F8 CBF7 SW RA, 92(SP) -BFD053FA CBD6 SW S8, 88(SP) -BFD053FC CB35 SW T9, 84(SP) -BFD053FE CB14 SW T8, 80(SP) -BFD05400 C9F3 SW T7, 76(SP) -BFD05402 C9D2 SW T6, 72(SP) -BFD05404 C9B1 SW T5, 68(SP) -BFD05406 C990 SW T4, 64(SP) -BFD05408 C96F SW T3, 60(SP) -BFD0540A C94E SW T2, 56(SP) -BFD0540C C92D SW T1, 52(SP) -BFD0540E C90C SW T0, 48(SP) -BFD05410 C8EB SW A3, 44(SP) -BFD05412 C8CA SW A2, 40(SP) -BFD05414 C8A9 SW A1, 36(SP) -BFD05416 C888 SW A0, 32(SP) -BFD05418 C825 SW AT, 20(SP) -BFD0541A 4642 MFLO V0 -BFD0541C C859 SW V0, 100(SP) -BFD0541E 4603 MFHI V1 -BFD05420 C878 SW V1, 96(SP) -BFD05422 0FDD MOVE S8, SP -231: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 11, TRUE); -BFD05424 EE0F LI A0, 15 -BFD05426 EE8B LI A1, 11 -BFD05428 EF01 LI A2, 1 -BFD0542A 3A4077E8 JALS jtvic_dis_clr_source -BFD0542C 0C003A40 SH S2, 3072(ZERO) -BFD0542E 0C00 NOP -232: } -BFD05430 0FBE MOVE SP, S8 -BFD05432 4859 LW V0, 100(SP) -BFD05434 3D7C0002 MTLO V0 -BFD05436 48783D7C LH T3, 18552(GP) -BFD05438 4878 LW V1, 96(SP) -BFD0543A 2D7C0003 MTHI V1 -BFD0543C 2D7C ANDI V0, A3, 0x40 -BFD0543E 485C LW V0, 112(SP) -BFD05440 2D27 ANDI V0, V0, 0xF -BFD05442 001340A2 BNEZC V0, 0xBFD0546C -BFD05446 4BF7 LW RA, 92(SP) -BFD05448 4BD6 LW S8, 88(SP) -BFD0544A 4B35 LW T9, 84(SP) -BFD0544C 4B14 LW T8, 80(SP) -BFD0544E 49F3 LW T7, 76(SP) -BFD05450 49D2 LW T6, 72(SP) -BFD05452 49B1 LW T5, 68(SP) -BFD05454 4990 LW T4, 64(SP) -BFD05456 496F LW T3, 60(SP) -BFD05458 494E LW T2, 56(SP) -BFD0545A 492D LW T1, 52(SP) -BFD0545C 490C LW T0, 48(SP) -BFD0545E 48EB LW A3, 44(SP) -BFD05460 48CA LW A2, 40(SP) -BFD05462 48A9 LW A1, 36(SP) -BFD05464 4888 LW A0, 32(SP) -BFD05466 4867 LW V1, 28(SP) -BFD05468 4846 LW V0, 24(SP) -BFD0546A 4825 LW AT, 20(SP) -BFD0546C 477C0000 DI ZERO -BFD05470 18000000 SLL ZERO, ZERO, 3 -BFD05472 4B5D1800 SB ZERO, 19293(ZERO) -BFD05474 4B5D LW K0, 116(SP) -BFD05476 4B7B LW K1, 108(SP) -BFD05478 02FC034E MTC0 K0, EPC -BFD0547C 4B5C LW K0, 112(SP) -BFD0547E 4C3D ADDIU SP, SP, 120 -BFD05480 12FC034C MTC0 K0, SRSCtl -BFD05482 03BD12FC ADDI S7, GP, 957 -BFD05484 F17C03BD WRPGPR SP, SP -BFD05486 036CF17C JALX 0xBDF00DB0 -BFD05488 02FC036C MTC0 K1, Status -BFD0548A 000002FC SLL S7, GP, 0 -BFD0548C F37C0000 ERET -BFD0548E 03BDF37C JALX 0xBDF00EF4 -233: -234: /* VCI IN0 */ -235: void __attribute__((weak, interrupt, nomips16)) -236: girq23_b12(void) -237: { -BFD05490 E17C03BD RDPGPR SP, SP -BFD05494 00FC036E MFC0 K1, EPC -BFD05496 034C00FC INS A3, GP, 13, -12 -BFD05498 10FC034C MFC0 K0, SRSCtl -BFD0549A 4FC510FC ADDI A3, GP, 20421 -BFD0549C 4FC5 ADDIU SP, SP, -120 -BFD0549E CB7D SW K1, 116(SP) -BFD054A0 00FC036C MFC0 K1, Status -BFD054A4 CB5C SW K0, 112(SP) -BFD054A6 00FC034D MFC0 K0, Cause -BFD054AA CB7B SW K1, 108(SP) -BFD054AC 5040035A SRL K0, K0, 10 -BFD054AE 037A5040 ORI V0, ZERO, 890 -BFD054B0 7A8C037A INS K1, K0, 10, 6 -BFD054B2 03607A8C ADDIUPC A1, 787296 -BFD054B4 204C0360 INS K1, ZERO, 1, 4 -BFD054B6 036C204C LWC2 V0, 876(T4) -BFD054B8 02FC036C MTC0 K1, Status -BFD054BC C867 SW V1, 28(SP) -BFD054BE C846 SW V0, 24(SP) -BFD054C0 487C LW V1, 112(SP) -BFD054C2 2DB7 ANDI V1, V1, 0xF -BFD054C4 001140A3 BNEZC V1, 0xBFD054EA -BFD054C8 CBF7 SW RA, 92(SP) -BFD054CA CBD6 SW S8, 88(SP) -BFD054CC CB35 SW T9, 84(SP) -BFD054CE CB14 SW T8, 80(SP) -BFD054D0 C9F3 SW T7, 76(SP) -BFD054D2 C9D2 SW T6, 72(SP) -BFD054D4 C9B1 SW T5, 68(SP) -BFD054D6 C990 SW T4, 64(SP) -BFD054D8 C96F SW T3, 60(SP) -BFD054DA C94E SW T2, 56(SP) -BFD054DC C92D SW T1, 52(SP) -BFD054DE C90C SW T0, 48(SP) -BFD054E0 C8EB SW A3, 44(SP) -BFD054E2 C8CA SW A2, 40(SP) -BFD054E4 C8A9 SW A1, 36(SP) -BFD054E6 C888 SW A0, 32(SP) -BFD054E8 C825 SW AT, 20(SP) -BFD054EA 4642 MFLO V0 -BFD054EC C859 SW V0, 100(SP) -BFD054EE 4603 MFHI V1 -BFD054F0 C878 SW V1, 96(SP) -BFD054F2 0FDD MOVE S8, SP -238: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 12, TRUE); -BFD054F4 EE0F LI A0, 15 -BFD054F6 EE8C LI A1, 12 -BFD054F8 EF01 LI A2, 1 -BFD054FA 3A4077E8 JALS jtvic_dis_clr_source -BFD054FC 0C003A40 SH S2, 3072(ZERO) -BFD054FE 0C00 NOP -239: } -BFD05500 0FBE MOVE SP, S8 -BFD05502 4859 LW V0, 100(SP) -BFD05504 3D7C0002 MTLO V0 -BFD05506 48783D7C LH T3, 18552(GP) -BFD05508 4878 LW V1, 96(SP) -BFD0550A 2D7C0003 MTHI V1 -BFD0550C 2D7C ANDI V0, A3, 0x40 -BFD0550E 485C LW V0, 112(SP) -BFD05510 2D27 ANDI V0, V0, 0xF -BFD05512 001340A2 BNEZC V0, 0xBFD0553C -BFD05516 4BF7 LW RA, 92(SP) -BFD05518 4BD6 LW S8, 88(SP) -BFD0551A 4B35 LW T9, 84(SP) -BFD0551C 4B14 LW T8, 80(SP) -BFD0551E 49F3 LW T7, 76(SP) -BFD05520 49D2 LW T6, 72(SP) -BFD05522 49B1 LW T5, 68(SP) -BFD05524 4990 LW T4, 64(SP) -BFD05526 496F LW T3, 60(SP) -BFD05528 494E LW T2, 56(SP) -BFD0552A 492D LW T1, 52(SP) -BFD0552C 490C LW T0, 48(SP) -BFD0552E 48EB LW A3, 44(SP) -BFD05530 48CA LW A2, 40(SP) -BFD05532 48A9 LW A1, 36(SP) -BFD05534 4888 LW A0, 32(SP) -BFD05536 4867 LW V1, 28(SP) -BFD05538 4846 LW V0, 24(SP) -BFD0553A 4825 LW AT, 20(SP) -BFD0553C 477C0000 DI ZERO -BFD05540 18000000 SLL ZERO, ZERO, 3 -BFD05542 4B5D1800 SB ZERO, 19293(ZERO) -BFD05544 4B5D LW K0, 116(SP) -BFD05546 4B7B LW K1, 108(SP) -BFD05548 02FC034E MTC0 K0, EPC -BFD0554C 4B5C LW K0, 112(SP) -BFD0554E 4C3D ADDIU SP, SP, 120 -BFD05550 12FC034C MTC0 K0, SRSCtl -BFD05552 03BD12FC ADDI S7, GP, 957 -BFD05554 F17C03BD WRPGPR SP, SP -BFD05556 036CF17C JALX 0xBDF00DB0 -BFD05558 02FC036C MTC0 K1, Status -BFD0555A 000002FC SLL S7, GP, 0 -BFD0555C F37C0000 ERET -BFD0555E 03BDF37C JALX 0xBDF00EF4 -240: -241: /* VCI IN1 */ -242: void __attribute__((weak, interrupt, nomips16)) -243: girq23_b13(void) -244: { -BFD05560 E17C03BD RDPGPR SP, SP -BFD05564 00FC036E MFC0 K1, EPC -BFD05566 034C00FC INS A3, GP, 13, -12 -BFD05568 10FC034C MFC0 K0, SRSCtl -BFD0556A 4FC510FC ADDI A3, GP, 20421 -BFD0556C 4FC5 ADDIU SP, SP, -120 -BFD0556E CB7D SW K1, 116(SP) -BFD05570 00FC036C MFC0 K1, Status -BFD05574 CB5C SW K0, 112(SP) -BFD05576 00FC034D MFC0 K0, Cause -BFD0557A CB7B SW K1, 108(SP) -BFD0557C 5040035A SRL K0, K0, 10 -BFD0557E 037A5040 ORI V0, ZERO, 890 -BFD05580 7A8C037A INS K1, K0, 10, 6 -BFD05582 03607A8C ADDIUPC A1, 787296 -BFD05584 204C0360 INS K1, ZERO, 1, 4 -BFD05586 036C204C LWC2 V0, 876(T4) -BFD05588 02FC036C MTC0 K1, Status -BFD0558C C867 SW V1, 28(SP) -BFD0558E C846 SW V0, 24(SP) -BFD05590 487C LW V1, 112(SP) -BFD05592 2DB7 ANDI V1, V1, 0xF -BFD05594 001140A3 BNEZC V1, 0xBFD055BA -BFD05598 CBF7 SW RA, 92(SP) -BFD0559A CBD6 SW S8, 88(SP) -BFD0559C CB35 SW T9, 84(SP) -BFD0559E CB14 SW T8, 80(SP) -BFD055A0 C9F3 SW T7, 76(SP) -BFD055A2 C9D2 SW T6, 72(SP) -BFD055A4 C9B1 SW T5, 68(SP) -BFD055A6 C990 SW T4, 64(SP) -BFD055A8 C96F SW T3, 60(SP) -BFD055AA C94E SW T2, 56(SP) -BFD055AC C92D SW T1, 52(SP) -BFD055AE C90C SW T0, 48(SP) -BFD055B0 C8EB SW A3, 44(SP) -BFD055B2 C8CA SW A2, 40(SP) -BFD055B4 C8A9 SW A1, 36(SP) -BFD055B6 C888 SW A0, 32(SP) -BFD055B8 C825 SW AT, 20(SP) -BFD055BA 4642 MFLO V0 -BFD055BC C859 SW V0, 100(SP) -BFD055BE 4603 MFHI V1 -BFD055C0 C878 SW V1, 96(SP) -BFD055C2 0FDD MOVE S8, SP -245: jtvic_dis_clr_source(MEC14xx_GIRQ23_ID, 13, TRUE); -BFD055C4 EE0F LI A0, 15 -BFD055C6 EE8D LI A1, 13 -BFD055C8 EF01 LI A2, 1 -BFD055CA 3A4077E8 JALS jtvic_dis_clr_source -BFD055CC 0C003A40 SH S2, 3072(ZERO) -BFD055CE 0C00 NOP -246: } -BFD055D0 0FBE MOVE SP, S8 -BFD055D2 4859 LW V0, 100(SP) -BFD055D4 3D7C0002 MTLO V0 -BFD055D6 48783D7C LH T3, 18552(GP) -BFD055D8 4878 LW V1, 96(SP) -BFD055DA 2D7C0003 MTHI V1 -BFD055DC 2D7C ANDI V0, A3, 0x40 -BFD055DE 485C LW V0, 112(SP) -BFD055E0 2D27 ANDI V0, V0, 0xF -BFD055E2 001340A2 BNEZC V0, 0xBFD0560C -BFD055E6 4BF7 LW RA, 92(SP) -BFD055E8 4BD6 LW S8, 88(SP) -BFD055EA 4B35 LW T9, 84(SP) -BFD055EC 4B14 LW T8, 80(SP) -BFD055EE 49F3 LW T7, 76(SP) -BFD055F0 49D2 LW T6, 72(SP) -BFD055F2 49B1 LW T5, 68(SP) -BFD055F4 4990 LW T4, 64(SP) -BFD055F6 496F LW T3, 60(SP) -BFD055F8 494E LW T2, 56(SP) -BFD055FA 492D LW T1, 52(SP) -BFD055FC 490C LW T0, 48(SP) -BFD055FE 48EB LW A3, 44(SP) -BFD05600 48CA LW A2, 40(SP) -BFD05602 48A9 LW A1, 36(SP) -BFD05604 4888 LW A0, 32(SP) -BFD05606 4867 LW V1, 28(SP) -BFD05608 4846 LW V0, 24(SP) -BFD0560A 4825 LW AT, 20(SP) -BFD0560C 477C0000 DI ZERO -BFD05610 18000000 SLL ZERO, ZERO, 3 -BFD05612 4B5D1800 SB ZERO, 19293(ZERO) -BFD05614 4B5D LW K0, 116(SP) -BFD05616 4B7B LW K1, 108(SP) -BFD05618 02FC034E MTC0 K0, EPC -BFD0561C 4B5C LW K0, 112(SP) -BFD0561E 4C3D ADDIU SP, SP, 120 -BFD05620 12FC034C MTC0 K0, SRSCtl -BFD05622 03BD12FC ADDI S7, GP, 957 -BFD05624 F17C03BD WRPGPR SP, SP -BFD05626 036CF17C JALX 0xBDF00DB0 -BFD05628 02FC036C MTC0 K1, Status -BFD0562A 000002FC SLL S7, GP, 0 -BFD0562C F37C0000 ERET -BFD0562E 4FF5F37C JALX 0xBDF13FD4 -247: -248: -249: #endif -250: -251: -252: /* end girq23.c */ -253: /** @} -254: */ -255: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq22.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq22.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ22_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq22_isr(void) -40: { -BFD07228 E17C03BD RDPGPR SP, SP -BFD0722C 00FC036E MFC0 K1, EPC -BFD0722E 034C00FC INS A3, GP, 13, -12 -BFD07230 10FC034C MFC0 K0, SRSCtl -BFD07232 4FF110FC ADDI A3, GP, 20465 -BFD07234 4FF1 ADDIU SP, SP, -32 -BFD07236 CB67 SW K1, 28(SP) -BFD07238 00FC036C MFC0 K1, Status -BFD0723C CB46 SW K0, 24(SP) -BFD0723E 00FC034D MFC0 K0, Cause -BFD07242 CB65 SW K1, 20(SP) -BFD07244 5040035A SRL K0, K0, 10 -BFD07246 037A5040 ORI V0, ZERO, 890 -BFD07248 7A8C037A INS K1, K0, 10, 6 -BFD0724A 03607A8C ADDIUPC A1, 787296 -BFD0724C 204C0360 INS K1, ZERO, 1, 4 -BFD0724E 036C204C LWC2 V0, 876(T4) -BFD07250 02FC036C MTC0 K1, Status -BFD07254 C862 SW V1, 8(SP) -BFD07256 C841 SW V0, 4(SP) -BFD07258 4866 LW V1, 24(SP) -BFD0725A 2DB7 ANDI V1, V1, 0xF -BFD0725C CBC3 SW S8, 12(SP) -BFD0725E 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<14); -BFD07260 BFFF41A2 LUI V0, 0xBFFF -BFD07262 5042BFFF LDC1 F31, 20546(RA) -BFD07264 C50C5042 ORI V0, V0, -15092 -BFD07268 40003060 ADDIU V1, ZERO, 16384 -BFD0726A E9A04000 BLTZ ZERO, 0xBFD045AE -BFD0726C E9A0 SW V1, 0(V0) -42: } -BFD0726E 0FBE MOVE SP, S8 -BFD07270 4846 LW V0, 24(SP) -BFD07272 2D27 ANDI V0, V0, 0xF -BFD07274 4BC3 LW S8, 12(SP) -BFD07276 4862 LW V1, 8(SP) -BFD07278 4841 LW V0, 4(SP) -BFD0727A 477C0000 DI ZERO -BFD0727E 18000000 SLL ZERO, ZERO, 3 -BFD07280 4B471800 SB ZERO, 19271(ZERO) -BFD07282 4B47 LW K0, 28(SP) -BFD07284 4B65 LW K1, 20(SP) -BFD07286 02FC034E MTC0 K0, EPC -BFD0728A 4B46 LW K0, 24(SP) -BFD0728C 4C11 ADDIU SP, SP, 32 -BFD0728E 12FC034C MTC0 K0, SRSCtl -BFD07290 03BD12FC ADDI S7, GP, 957 -BFD07292 F17C03BD WRPGPR SP, SP -BFD07294 036CF17C JALX 0xBDF00DB0 -BFD07296 02FC036C MTC0 K1, Status -BFD07298 000002FC SLL S7, GP, 0 -BFD0729A F37C0000 ERET -BFD0729C 0C00F37C JALX 0xBDF03000 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq22_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 0); -50: } -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq22_b1(void) -54: { -55: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 1); -56: } -57: -58: void __attribute__((weak, interrupt, nomips16)) -59: girq22_b2(void) -60: { -61: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 2); -62: } -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq22_b3(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 3); -68: } -69: -70: void __attribute__((weak, interrupt, nomips16)) -71: girq22_b4(void) -72: { -73: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 4); -74: } -75: -76: void __attribute__((weak, interrupt, nomips16)) -77: girq22_b5(void) -78: { -79: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 5); -80: } -81: -82: void __attribute__((weak, interrupt, nomips16)) -83: girq22_b6(void) -84: { -85: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 6); -86: } -87: -88: void __attribute__((weak, interrupt, nomips16)) -89: girq22_b7(void) -90: { -91: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 7); -92: } -93: -94: void __attribute__((weak, interrupt, nomips16)) -95: girq22_b8(void) -96: { -97: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 8); -98: } -99: -100: void __attribute__((weak, interrupt, nomips16)) -101: girq22_b9(void) -102: { -103: jtvic_dis_clr_source(MEC14xx_GIRQ22_ID, 9); -104: } -105: -106: -107: #endif -108: -109: /* end girq22.c */ -110: /** @} -111: */ -112: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq21.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq21.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ21_DISAGG == 0 -37: -38: /* -39: * GIRQ21 is a wake peripheral logic only interrupt. -40: * It's purpose is to allow the peripheral logic such as SMBus or LPC to -41: * wake an service HW event without waking the EC. -42: * This handler is superfluous. -43: */ -44: -45: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -46: girq21_isr(void) -47: { -BFD071B0 E17C03BD RDPGPR SP, SP -BFD071B4 00FC036E MFC0 K1, EPC -BFD071B6 034C00FC INS A3, GP, 13, -12 -BFD071B8 10FC034C MFC0 K0, SRSCtl -BFD071BA 4FF110FC ADDI A3, GP, 20465 -BFD071BC 4FF1 ADDIU SP, SP, -32 -BFD071BE CB67 SW K1, 28(SP) -BFD071C0 00FC036C MFC0 K1, Status -BFD071C4 CB46 SW K0, 24(SP) -BFD071C6 00FC034D MFC0 K0, Cause -BFD071CA CB65 SW K1, 20(SP) -BFD071CC 5040035A SRL K0, K0, 10 -BFD071CE 037A5040 ORI V0, ZERO, 890 -BFD071D0 7A8C037A INS K1, K0, 10, 6 -BFD071D2 03607A8C ADDIUPC A1, 787296 -BFD071D4 204C0360 INS K1, ZERO, 1, 4 -BFD071D6 036C204C LWC2 V0, 876(T4) -BFD071D8 02FC036C MTC0 K1, Status -BFD071DC C862 SW V1, 8(SP) -BFD071DE C841 SW V0, 4(SP) -BFD071E0 4866 LW V1, 24(SP) -BFD071E2 2DB7 ANDI V1, V1, 0xF -BFD071E4 CBC3 SW S8, 12(SP) -BFD071E6 0FDD MOVE S8, SP -48: JTVIC_GROUP_EN_CLR->w = (1ul<<13); -BFD071E8 BFFF41A2 LUI V0, 0xBFFF -BFD071EA 5042BFFF LDC1 F31, 20546(RA) -BFD071EC C50C5042 ORI V0, V0, -15092 -BFD071F0 20003060 ADDIU V1, ZERO, 8192 -BFD071F4 E9A0 SW V1, 0(V0) -49: } -BFD071F6 0FBE MOVE SP, S8 -BFD071F8 4846 LW V0, 24(SP) -BFD071FA 2D27 ANDI V0, V0, 0xF -BFD071FC 4BC3 LW S8, 12(SP) -BFD071FE 4862 LW V1, 8(SP) -BFD07200 4841 LW V0, 4(SP) -BFD07202 477C0000 DI ZERO -BFD07206 18000000 SLL ZERO, ZERO, 3 -BFD07208 4B471800 SB ZERO, 19271(ZERO) -BFD0720A 4B47 LW K0, 28(SP) -BFD0720C 4B65 LW K1, 20(SP) -BFD0720E 02FC034E MTC0 K0, EPC -BFD07212 4B46 LW K0, 24(SP) -BFD07214 4C11 ADDIU SP, SP, 32 -BFD07216 12FC034C MTC0 K0, SRSCtl -BFD07218 03BD12FC ADDI S7, GP, 957 -BFD0721A F17C03BD WRPGPR SP, SP -BFD0721C 036CF17C JALX 0xBDF00DB0 -BFD0721E 02FC036C MTC0 K1, Status -BFD07220 000002FC SLL S7, GP, 0 -BFD07222 F37C0000 ERET -BFD07224 0C00F37C JALX 0xBDF03000 -50: -51: #else -52: -53: void __attribute__((weak, interrupt, nomips16)) -54: girq21_b0(void) -55: { -56: JTVIC_GROUP_EN_CLR->w = (1ul<<13); -57: } -58: -59: #endif -60: -61: /* end girq21.c */ -62: /** @} -63: */ -64: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq20.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq20.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ20_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq20_isr(void) -40: { -BFD07138 E17C03BD RDPGPR SP, SP -BFD0713C 00FC036E MFC0 K1, EPC -BFD0713E 034C00FC INS A3, GP, 13, -12 -BFD07140 10FC034C MFC0 K0, SRSCtl -BFD07142 4FF110FC ADDI A3, GP, 20465 -BFD07144 4FF1 ADDIU SP, SP, -32 -BFD07146 CB67 SW K1, 28(SP) -BFD07148 00FC036C MFC0 K1, Status -BFD0714C CB46 SW K0, 24(SP) -BFD0714E 00FC034D MFC0 K0, Cause -BFD07152 CB65 SW K1, 20(SP) -BFD07154 5040035A SRL K0, K0, 10 -BFD07156 037A5040 ORI V0, ZERO, 890 -BFD07158 7A8C037A INS K1, K0, 10, 6 -BFD0715A 03607A8C ADDIUPC A1, 787296 -BFD0715C 204C0360 INS K1, ZERO, 1, 4 -BFD0715E 036C204C LWC2 V0, 876(T4) -BFD07160 02FC036C MTC0 K1, Status -BFD07164 C862 SW V1, 8(SP) -BFD07166 C841 SW V0, 4(SP) -BFD07168 4866 LW V1, 24(SP) -BFD0716A 2DB7 ANDI V1, V1, 0xF -BFD0716C CBC3 SW S8, 12(SP) -BFD0716E 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<12); -BFD07170 BFFF41A2 LUI V0, 0xBFFF -BFD07172 5042BFFF LDC1 F31, 20546(RA) -BFD07174 C50C5042 ORI V0, V0, -15092 -BFD07178 10003060 ADDIU V1, ZERO, 4096 -BFD0717A E9A01000 ADDI ZERO, ZERO, -5728 -BFD0717C E9A0 SW V1, 0(V0) -42: } -BFD0717E 0FBE MOVE SP, S8 -BFD07180 4846 LW V0, 24(SP) -BFD07182 2D27 ANDI V0, V0, 0xF -BFD07184 4BC3 LW S8, 12(SP) -BFD07186 4862 LW V1, 8(SP) -BFD07188 4841 LW V0, 4(SP) -BFD0718A 477C0000 DI ZERO -BFD0718E 18000000 SLL ZERO, ZERO, 3 -BFD07190 4B471800 SB ZERO, 19271(ZERO) -BFD07192 4B47 LW K0, 28(SP) -BFD07194 4B65 LW K1, 20(SP) -BFD07196 02FC034E MTC0 K0, EPC -BFD0719A 4B46 LW K0, 24(SP) -BFD0719C 4C11 ADDIU SP, SP, 32 -BFD0719E 12FC034C MTC0 K0, SRSCtl -BFD071A0 03BD12FC ADDI S7, GP, 957 -BFD071A2 F17C03BD WRPGPR SP, SP -BFD071A4 036CF17C JALX 0xBDF00DB0 -BFD071A6 02FC036C MTC0 K1, Status -BFD071A8 000002FC SLL S7, GP, 0 -BFD071AA F37C0000 ERET -BFD071AC 0C00F37C JALX 0xBDF03000 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq20_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ20_ID, 0); -50: } -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq20_b1(void) -54: { -55: jtvic_dis_clr_source(MEC14xx_GIRQ20_ID, 1); -56: } -57: -58: void __attribute__((weak, interrupt, nomips16)) -59: girq20_b2(void) -60: { -61: jtvic_dis_clr_source(MEC14xx_GIRQ20_ID, 2); -62: } -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq20_b3(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ20_ID, 3); -68: } -69: -70: void __attribute__((weak, interrupt, nomips16)) -71: girq20_b4(void) -72: { -73: jtvic_dis_clr_source(MEC14xx_GIRQ20_ID, 4); -74: } -75: -76: void __attribute__((weak, interrupt, nomips16)) -77: girq20_b5(void) -78: { -79: jtvic_dis_clr_source(MEC14xx_GIRQ20_ID, 5); -80: } -81: -82: -83: #endif -84: -85: /* end girq20.c */ -86: /** @} -87: */ -88: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq19.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq19.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ19_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq19_isr(void) -40: { -BFD070C0 E17C03BD RDPGPR SP, SP -BFD070C4 00FC036E MFC0 K1, EPC -BFD070C6 034C00FC INS A3, GP, 13, -12 -BFD070C8 10FC034C MFC0 K0, SRSCtl -BFD070CA 4FF110FC ADDI A3, GP, 20465 -BFD070CC 4FF1 ADDIU SP, SP, -32 -BFD070CE CB67 SW K1, 28(SP) -BFD070D0 00FC036C MFC0 K1, Status -BFD070D4 CB46 SW K0, 24(SP) -BFD070D6 00FC034D MFC0 K0, Cause -BFD070DA CB65 SW K1, 20(SP) -BFD070DC 5040035A SRL K0, K0, 10 -BFD070DE 037A5040 ORI V0, ZERO, 890 -BFD070E0 7A8C037A INS K1, K0, 10, 6 -BFD070E2 03607A8C ADDIUPC A1, 787296 -BFD070E4 204C0360 INS K1, ZERO, 1, 4 -BFD070E6 036C204C LWC2 V0, 876(T4) -BFD070E8 02FC036C MTC0 K1, Status -BFD070EC C862 SW V1, 8(SP) -BFD070EE C841 SW V0, 4(SP) -BFD070F0 4866 LW V1, 24(SP) -BFD070F2 2DB7 ANDI V1, V1, 0xF -BFD070F4 CBC3 SW S8, 12(SP) -BFD070F6 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<11); -BFD070F8 BFFF41A2 LUI V0, 0xBFFF -BFD070FA 5042BFFF LDC1 F31, 20546(RA) -BFD070FC C50C5042 ORI V0, V0, -15092 -BFD07100 08003060 ADDIU V1, ZERO, 2048 -BFD07102 0800 LBU S0, 0(S0) -BFD07104 E9A0 SW V1, 0(V0) -42: } -BFD07106 0FBE MOVE SP, S8 -BFD07108 4846 LW V0, 24(SP) -BFD0710A 2D27 ANDI V0, V0, 0xF -BFD0710C 4BC3 LW S8, 12(SP) -BFD0710E 4862 LW V1, 8(SP) -BFD07110 4841 LW V0, 4(SP) -BFD07112 477C0000 DI ZERO -BFD07116 18000000 SLL ZERO, ZERO, 3 -BFD07118 4B471800 SB ZERO, 19271(ZERO) -BFD0711A 4B47 LW K0, 28(SP) -BFD0711C 4B65 LW K1, 20(SP) -BFD0711E 02FC034E MTC0 K0, EPC -BFD07122 4B46 LW K0, 24(SP) -BFD07124 4C11 ADDIU SP, SP, 32 -BFD07126 12FC034C MTC0 K0, SRSCtl -BFD07128 03BD12FC ADDI S7, GP, 957 -BFD0712A F17C03BD WRPGPR SP, SP -BFD0712C 036CF17C JALX 0xBDF00DB0 -BFD0712E 02FC036C MTC0 K1, Status -BFD07130 000002FC SLL S7, GP, 0 -BFD07132 F37C0000 ERET -BFD07134 0C00F37C JALX 0xBDF03000 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq19_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 0); -50: } -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq19_b1(void) -54: { -55: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 1); -56: } -57: -58: void __attribute__((weak, interrupt, nomips16)) -59: girq19_b2(void) -60: { -61: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 2); -62: } -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq19_b3(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 3); -68: } -69: -70: void __attribute__((weak, interrupt, nomips16)) -71: girq19_b4(void) -72: { -73: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 4); -74: } -75: -76: void __attribute__((weak, interrupt, nomips16)) -77: girq19_b5(void) -78: { -79: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 5); -80: } -81: -82: void __attribute__((weak, interrupt, nomips16)) -83: girq19_b6(void) -84: { -85: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 6); -86: } -87: -88: void __attribute__((weak, interrupt, nomips16)) -89: girq19_b7(void) -90: { -91: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 7); -92: } -93: -94: void __attribute__((weak, interrupt, nomips16)) -95: girq19_b8(void) -96: { -97: jtvic_dis_clr_source(MEC14xx_GIRQ19_ID, 8); -98: } -99: -100: -101: #endif -102: -103: /* end girq19.c */ -104: /** @} -105: */ -106: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq18.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq18.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ18_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq18_isr(void) -40: { -BFD07048 E17C03BD RDPGPR SP, SP -BFD0704C 00FC036E MFC0 K1, EPC -BFD0704E 034C00FC INS A3, GP, 13, -12 -BFD07050 10FC034C MFC0 K0, SRSCtl -BFD07052 4FF110FC ADDI A3, GP, 20465 -BFD07054 4FF1 ADDIU SP, SP, -32 -BFD07056 CB67 SW K1, 28(SP) -BFD07058 00FC036C MFC0 K1, Status -BFD0705C CB46 SW K0, 24(SP) -BFD0705E 00FC034D MFC0 K0, Cause -BFD07062 CB65 SW K1, 20(SP) -BFD07064 5040035A SRL K0, K0, 10 -BFD07066 037A5040 ORI V0, ZERO, 890 -BFD07068 7A8C037A INS K1, K0, 10, 6 -BFD0706A 03607A8C ADDIUPC A1, 787296 -BFD0706C 204C0360 INS K1, ZERO, 1, 4 -BFD0706E 036C204C LWC2 V0, 876(T4) -BFD07070 02FC036C MTC0 K1, Status -BFD07074 C862 SW V1, 8(SP) -BFD07076 C841 SW V0, 4(SP) -BFD07078 4866 LW V1, 24(SP) -BFD0707A 2DB7 ANDI V1, V1, 0xF -BFD0707C CBC3 SW S8, 12(SP) -BFD0707E 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<10); -BFD07080 BFFF41A2 LUI V0, 0xBFFF -BFD07082 5042BFFF LDC1 F31, 20546(RA) -BFD07084 C50C5042 ORI V0, V0, -15092 -BFD07088 04003060 ADDIU V1, ZERO, 1024 -BFD0708A 0400 ADDU S0, S0, S0 -BFD0708C E9A0 SW V1, 0(V0) -42: } -BFD0708E 0FBE MOVE SP, S8 -BFD07090 4846 LW V0, 24(SP) -BFD07092 2D27 ANDI V0, V0, 0xF -BFD07094 4BC3 LW S8, 12(SP) -BFD07096 4862 LW V1, 8(SP) -BFD07098 4841 LW V0, 4(SP) -BFD0709A 477C0000 DI ZERO -BFD0709E 18000000 SLL ZERO, ZERO, 3 -BFD070A0 4B471800 SB ZERO, 19271(ZERO) -BFD070A2 4B47 LW K0, 28(SP) -BFD070A4 4B65 LW K1, 20(SP) -BFD070A6 02FC034E MTC0 K0, EPC -BFD070AA 4B46 LW K0, 24(SP) -BFD070AC 4C11 ADDIU SP, SP, 32 -BFD070AE 12FC034C MTC0 K0, SRSCtl -BFD070B0 03BD12FC ADDI S7, GP, 957 -BFD070B2 F17C03BD WRPGPR SP, SP -BFD070B4 036CF17C JALX 0xBDF00DB0 -BFD070B6 02FC036C MTC0 K1, Status -BFD070B8 000002FC SLL S7, GP, 0 -BFD070BA F37C0000 ERET -BFD070BC 0C00F37C JALX 0xBDF03000 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq18_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ18_ID, 0); -50: } -51: -52: #endif -53: -54: /* end girq18.c */ -55: /** @} -56: */ -57: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq17.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq17.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ17_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq17_isr(void) -40: { -BFD06FD0 E17C03BD RDPGPR SP, SP -BFD06FD4 00FC036E MFC0 K1, EPC -BFD06FD6 034C00FC INS A3, GP, 13, -12 -BFD06FD8 10FC034C MFC0 K0, SRSCtl -BFD06FDA 4FF110FC ADDI A3, GP, 20465 -BFD06FDC 4FF1 ADDIU SP, SP, -32 -BFD06FDE CB67 SW K1, 28(SP) -BFD06FE0 00FC036C MFC0 K1, Status -BFD06FE4 CB46 SW K0, 24(SP) -BFD06FE6 00FC034D MFC0 K0, Cause -BFD06FEA CB65 SW K1, 20(SP) -BFD06FEC 5040035A SRL K0, K0, 10 -BFD06FEE 037A5040 ORI V0, ZERO, 890 -BFD06FF0 7A8C037A INS K1, K0, 10, 6 -BFD06FF2 03607A8C ADDIUPC A1, 787296 -BFD06FF4 204C0360 INS K1, ZERO, 1, 4 -BFD06FF6 036C204C LWC2 V0, 876(T4) -BFD06FF8 02FC036C MTC0 K1, Status -BFD06FFC C862 SW V1, 8(SP) -BFD06FFE C841 SW V0, 4(SP) -BFD07000 4866 LW V1, 24(SP) -BFD07002 2DB7 ANDI V1, V1, 0xF -BFD07004 CBC3 SW S8, 12(SP) -BFD07006 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<9); -BFD07008 BFFF41A2 LUI V0, 0xBFFF -BFD0700A 5042BFFF LDC1 F31, 20546(RA) -BFD0700C C50C5042 ORI V0, V0, -15092 -BFD07010 02003060 ADDIU V1, ZERO, 512 -BFD07014 E9A0 SW V1, 0(V0) -42: } -BFD07016 0FBE MOVE SP, S8 -BFD07018 4846 LW V0, 24(SP) -BFD0701A 2D27 ANDI V0, V0, 0xF -BFD0701C 4BC3 LW S8, 12(SP) -BFD0701E 4862 LW V1, 8(SP) -BFD07020 4841 LW V0, 4(SP) -BFD07022 477C0000 DI ZERO -BFD07026 18000000 SLL ZERO, ZERO, 3 -BFD07028 4B471800 SB ZERO, 19271(ZERO) -BFD0702A 4B47 LW K0, 28(SP) -BFD0702C 4B65 LW K1, 20(SP) -BFD0702E 02FC034E MTC0 K0, EPC -BFD07032 4B46 LW K0, 24(SP) -BFD07034 4C11 ADDIU SP, SP, 32 -BFD07036 12FC034C MTC0 K0, SRSCtl -BFD07038 03BD12FC ADDI S7, GP, 957 -BFD0703A F17C03BD WRPGPR SP, SP -BFD0703C 036CF17C JALX 0xBDF00DB0 -BFD0703E 02FC036C MTC0 K1, Status -BFD07040 000002FC SLL S7, GP, 0 -BFD07042 F37C0000 ERET -BFD07044 0C00F37C JALX 0xBDF03000 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq17_b0(void) -48: { -49: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 0); -50: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 0); -51: } -52: -53: void __attribute__((weak, interrupt, nomips16)) -54: girq17_b1(void) -55: { -56: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 1); -57: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 1); -58: } -59: -60: void __attribute__((weak, interrupt, nomips16)) -61: girq17_b2(void) -62: { -63: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 2); -64: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 2); -65: } -66: -67: void __attribute__((weak, interrupt, nomips16)) -68: girq17_b3(void) -69: { -70: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 3); -71: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 3); -72: } -73: -74: void __attribute__((weak, interrupt, nomips16)) -75: girq17_b4(void) -76: { -77: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 4); -78: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 4); -79: } -80: -81: void __attribute__((weak, interrupt, nomips16)) -82: girq17_b5(void) -83: { -84: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 5); -85: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 5); -86: } -87: -88: void __attribute__((weak, interrupt, nomips16)) -89: girq17_b6(void) -90: { -91: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 6); -92: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 6); -93: } -94: -95: void __attribute__((weak, interrupt, nomips16)) -96: girq17_b7(void) -97: { -98: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 7); -99: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 7); -100: } -101: -102: void __attribute__((weak, interrupt, nomips16)) -103: girq17_b8(void) -104: { -105: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 8); -106: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 8); -107: } -108: -109: void __attribute__((weak, interrupt, nomips16)) -110: girq17_b9(void) -111: { -112: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 9); -113: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 9); -114: } -115: -116: void __attribute__((weak, interrupt, nomips16)) -117: girq17_b10(void) -118: { -119: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].EN_CLR = (1ul << 10); -120: JTVIC_GIRQ->REGS[MEC14xx_GIRQ17_ID].SOURCE = (1ul << 10); -121: } -122: -123: #endif -124: -125: /* end girq17.c */ -126: /** @} -127: */ -128: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq16.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq16.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_girqs.h" -33: #include "MEC14xx/mec14xx_gpio.h" -34: #include "MEC14xx/mec14xx_trace_func.h" -35: -36: -37: #if GIRQ16_DISAGG == 0 -38: -39: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -40: girq16_isr(void) -41: { -BFD06F58 E17C03BD RDPGPR SP, SP -BFD06F5C 00FC036E MFC0 K1, EPC -BFD06F5E 034C00FC INS A3, GP, 13, -12 -BFD06F60 10FC034C MFC0 K0, SRSCtl -BFD06F62 4FF110FC ADDI A3, GP, 20465 -BFD06F64 4FF1 ADDIU SP, SP, -32 -BFD06F66 CB67 SW K1, 28(SP) -BFD06F68 00FC036C MFC0 K1, Status -BFD06F6C CB46 SW K0, 24(SP) -BFD06F6E 00FC034D MFC0 K0, Cause -BFD06F72 CB65 SW K1, 20(SP) -BFD06F74 5040035A SRL K0, K0, 10 -BFD06F76 037A5040 ORI V0, ZERO, 890 -BFD06F78 7A8C037A INS K1, K0, 10, 6 -BFD06F7A 03607A8C ADDIUPC A1, 787296 -BFD06F7C 204C0360 INS K1, ZERO, 1, 4 -BFD06F7E 036C204C LWC2 V0, 876(T4) -BFD06F80 02FC036C MTC0 K1, Status -BFD06F84 C862 SW V1, 8(SP) -BFD06F86 C841 SW V0, 4(SP) -BFD06F88 4866 LW V1, 24(SP) -BFD06F8A 2DB7 ANDI V1, V1, 0xF -BFD06F8C CBC3 SW S8, 12(SP) -BFD06F8E 0FDD MOVE S8, SP -42: JTVIC_GROUP_EN_CLR->w = (1ul<<8); -BFD06F90 BFFF41A2 LUI V0, 0xBFFF -BFD06F92 5042BFFF LDC1 F31, 20546(RA) -BFD06F94 C50C5042 ORI V0, V0, -15092 -BFD06F98 01003060 ADDIU V1, ZERO, 256 -BFD06F9C E9A0 SW V1, 0(V0) -43: } -BFD06F9E 0FBE MOVE SP, S8 -BFD06FA0 4846 LW V0, 24(SP) -BFD06FA2 2D27 ANDI V0, V0, 0xF -BFD06FA4 4BC3 LW S8, 12(SP) -BFD06FA6 4862 LW V1, 8(SP) -BFD06FA8 4841 LW V0, 4(SP) -BFD06FAA 477C0000 DI ZERO -BFD06FAE 18000000 SLL ZERO, ZERO, 3 -BFD06FB0 4B471800 SB ZERO, 19271(ZERO) -BFD06FB2 4B47 LW K0, 28(SP) -BFD06FB4 4B65 LW K1, 20(SP) -BFD06FB6 02FC034E MTC0 K0, EPC -BFD06FBA 4B46 LW K0, 24(SP) -BFD06FBC 4C11 ADDIU SP, SP, 32 -BFD06FBE 12FC034C MTC0 K0, SRSCtl -BFD06FC0 03BD12FC ADDI S7, GP, 957 -BFD06FC2 F17C03BD WRPGPR SP, SP -BFD06FC4 036CF17C JALX 0xBDF00DB0 -BFD06FC6 02FC036C MTC0 K1, Status -BFD06FC8 000002FC SLL S7, GP, 0 -BFD06FCA F37C0000 ERET -BFD06FCC 0C00F37C JALX 0xBDF03000 -44: -45: #else -46: -47: void __attribute__((weak, interrupt, nomips16)) -48: girq16_b0(void) -49: { -50: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 0); -51: } -52: -53: void __attribute__((weak, interrupt, nomips16)) -54: girq16_b1(void) -55: { -56: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 1); -57: } -58: -59: void __attribute__((weak, interrupt, nomips16)) -60: girq16_b2(void) -61: { -62: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 2); -63: } -64: -65: void __attribute__((weak, interrupt, nomips16)) -66: girq16_b3(void) -67: { -68: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 3); -69: } -70: -71: void __attribute__((weak, interrupt, nomips16)) -72: girq16_b4(void) -73: { -74: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 4); -75: } -76: -77: void __attribute__((weak, interrupt, nomips16)) -78: girq16_b5(void) -79: { -80: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 5); -81: } -82: -83: void __attribute__((weak, interrupt, nomips16)) -84: girq16_b6(void) -85: { -86: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 6); -87: } -88: -89: void __attribute__((weak, interrupt, nomips16)) -90: girq16_b7(void) -91: { -92: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 7); -93: } -94: -95: void __attribute__((weak, interrupt, nomips16)) -96: girq16_b8(void) -97: { -98: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 8); -99: } -100: -101: void __attribute__((weak, interrupt, nomips16)) -102: girq16_b9(void) -103: { -104: jtvic_dis_clr_source(MEC14xx_GIRQ16_ID, 9); -105: } -106: -107: #endif -108: -109: /* end girq16.c */ -110: /** @} -111: */ -112: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq15.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq15.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ15_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq15_isr(void) -40: { -BFD06EE0 E17C03BD RDPGPR SP, SP -BFD06EE4 00FC036E MFC0 K1, EPC -BFD06EE6 034C00FC INS A3, GP, 13, -12 -BFD06EE8 10FC034C MFC0 K0, SRSCtl -BFD06EEA 4FF110FC ADDI A3, GP, 20465 -BFD06EEC 4FF1 ADDIU SP, SP, -32 -BFD06EEE CB67 SW K1, 28(SP) -BFD06EF0 00FC036C MFC0 K1, Status -BFD06EF4 CB46 SW K0, 24(SP) -BFD06EF6 00FC034D MFC0 K0, Cause -BFD06EFA CB65 SW K1, 20(SP) -BFD06EFC 5040035A SRL K0, K0, 10 -BFD06EFE 037A5040 ORI V0, ZERO, 890 -BFD06F00 7A8C037A INS K1, K0, 10, 6 -BFD06F02 03607A8C ADDIUPC A1, 787296 -BFD06F04 204C0360 INS K1, ZERO, 1, 4 -BFD06F06 036C204C LWC2 V0, 876(T4) -BFD06F08 02FC036C MTC0 K1, Status -BFD06F0C C862 SW V1, 8(SP) -BFD06F0E C841 SW V0, 4(SP) -BFD06F10 4866 LW V1, 24(SP) -BFD06F12 2DB7 ANDI V1, V1, 0xF -BFD06F14 CBC3 SW S8, 12(SP) -BFD06F16 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<7); -BFD06F18 BFFF41A2 LUI V0, 0xBFFF -BFD06F1A 5042BFFF LDC1 F31, 20546(RA) -BFD06F1C C50C5042 ORI V0, V0, -15092 -BFD06F20 00803060 ADDIU V1, ZERO, 128 -BFD06F24 E9A0 SW V1, 0(V0) -42: } -BFD06F26 0FBE MOVE SP, S8 -BFD06F28 4846 LW V0, 24(SP) -BFD06F2A 2D27 ANDI V0, V0, 0xF -BFD06F2C 4BC3 LW S8, 12(SP) -BFD06F2E 4862 LW V1, 8(SP) -BFD06F30 4841 LW V0, 4(SP) -BFD06F32 477C0000 DI ZERO -BFD06F36 18000000 SLL ZERO, ZERO, 3 -BFD06F38 4B471800 SB ZERO, 19271(ZERO) -BFD06F3A 4B47 LW K0, 28(SP) -BFD06F3C 4B65 LW K1, 20(SP) -BFD06F3E 02FC034E MTC0 K0, EPC -BFD06F42 4B46 LW K0, 24(SP) -BFD06F44 4C11 ADDIU SP, SP, 32 -BFD06F46 12FC034C MTC0 K0, SRSCtl -BFD06F48 03BD12FC ADDI S7, GP, 957 -BFD06F4A F17C03BD WRPGPR SP, SP -BFD06F4C 036CF17C JALX 0xBDF00DB0 -BFD06F4E 02FC036C MTC0 K1, Status -BFD06F50 000002FC SLL S7, GP, 0 -BFD06F52 F37C0000 ERET -BFD06F54 0C00F37C JALX 0xBDF03000 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq15_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 0); -50: } -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq15_b1(void) -54: { -55: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 1); -56: } -57: -58: void __attribute__((weak, interrupt, nomips16)) -59: girq15_b2(void) -60: { -61: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 2); -62: } -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq15_b3(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 3); -68: } -69: -70: void __attribute__((weak, interrupt, nomips16)) -71: girq15_b4(void) -72: { -73: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 4); -74: } -75: -76: void __attribute__((weak, interrupt, nomips16)) -77: girq15_b5(void) -78: { -79: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 5); -80: } -81: -82: void __attribute__((weak, interrupt, nomips16)) -83: girq15_b6(void) -84: { -85: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 6); -86: } -87: -88: void __attribute__((weak, interrupt, nomips16)) -89: girq15_b7(void) -90: { -91: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 7); -92: } -93: -94: void __attribute__((weak, interrupt, nomips16)) -95: girq15_b8(void) -96: { -97: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 8); -98: } -99: -100: void __attribute__((weak, interrupt, nomips16)) -101: girq15_b9(void) -102: { -103: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 9); -104: } -105: -106: void __attribute__((weak, interrupt, nomips16)) -107: girq15_b10(void) -108: { -109: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 10); -110: } -111: -112: void __attribute__((weak, interrupt, nomips16)) -113: girq15_b11(void) -114: { -115: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 11); -116: } -117: -118: void __attribute__((weak, interrupt, nomips16)) -119: girq15_b12(void) -120: { -121: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 12); -122: } -123: -124: void __attribute__((weak, interrupt, nomips16)) -125: girq15_b13(void) -126: { -127: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 13); -128: } -129: -130: void __attribute__((weak, interrupt, nomips16)) -131: girq15_b14(void) -132: { -133: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 14); -134: } -135: -136: void __attribute__((weak, interrupt, nomips16)) -137: girq15_b15(void) -138: { -139: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 15); -140: } -141: -142: void __attribute__((weak, interrupt, nomips16)) -143: girq15_b16(void) -144: { -145: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 16); -146: } -147: -148: void __attribute__((weak, interrupt, nomips16)) -149: girq15_b17(void) -150: { -151: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 17); -152: } -153: -154: void __attribute__((weak, interrupt, nomips16)) -155: girq15_b18(void) -156: { -157: jtvic_dis_clr_source(MEC14xx_GIRQ15_ID, 18); -158: } -159: -160: -161: #endif -162: -163: /* end girq15.c */ -164: /** @} -165: */ -166: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq14.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq14.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ14_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq14_isr(void) -40: { -BFD078A0 E17C03BD RDPGPR SP, SP -BFD078A4 00FC036E MFC0 K1, EPC -BFD078A6 034C00FC INS A3, GP, 13, -12 -BFD078A8 10FC034C MFC0 K0, SRSCtl -BFD078AA 4FF110FC ADDI A3, GP, 20465 -BFD078AC 4FF1 ADDIU SP, SP, -32 -BFD078AE CB67 SW K1, 28(SP) -BFD078B0 00FC036C MFC0 K1, Status -BFD078B4 CB46 SW K0, 24(SP) -BFD078B6 00FC034D MFC0 K0, Cause -BFD078BA CB65 SW K1, 20(SP) -BFD078BC 5040035A SRL K0, K0, 10 -BFD078BE 037A5040 ORI V0, ZERO, 890 -BFD078C0 7A8C037A INS K1, K0, 10, 6 -BFD078C2 03607A8C ADDIUPC A1, 787296 -BFD078C4 204C0360 INS K1, ZERO, 1, 4 -BFD078C6 036C204C LWC2 V0, 876(T4) -BFD078C8 02FC036C MTC0 K1, Status -BFD078CC C862 SW V1, 8(SP) -BFD078CE C841 SW V0, 4(SP) -BFD078D0 4866 LW V1, 24(SP) -BFD078D2 2DB7 ANDI V1, V1, 0xF -BFD078D4 CBC3 SW S8, 12(SP) -BFD078D6 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<6); -BFD078D8 BFFF41A2 LUI V0, 0xBFFF -BFD078DA 5042BFFF LDC1 F31, 20546(RA) -BFD078DC C50C5042 ORI V0, V0, -15092 -BFD078E0 EDC0 LI V1, 64 -BFD078E2 E9A0 SW V1, 0(V0) -42: } -BFD078E4 0FBE MOVE SP, S8 -BFD078E6 4846 LW V0, 24(SP) -BFD078E8 2D27 ANDI V0, V0, 0xF -BFD078EA 4BC3 LW S8, 12(SP) -BFD078EC 4862 LW V1, 8(SP) -BFD078EE 4841 LW V0, 4(SP) -BFD078F0 477C0000 DI ZERO -BFD078F4 18000000 SLL ZERO, ZERO, 3 -BFD078F6 4B471800 SB ZERO, 19271(ZERO) -BFD078F8 4B47 LW K0, 28(SP) -BFD078FA 4B65 LW K1, 20(SP) -BFD078FC 02FC034E MTC0 K0, EPC -BFD07900 4B46 LW K0, 24(SP) -BFD07902 4C11 ADDIU SP, SP, 32 -BFD07904 12FC034C MTC0 K0, SRSCtl -BFD07906 03BD12FC ADDI S7, GP, 957 -BFD07908 F17C03BD WRPGPR SP, SP -BFD0790A 036CF17C JALX 0xBDF00DB0 -BFD0790C 02FC036C MTC0 K1, Status -BFD0790E 000002FC SLL S7, GP, 0 -BFD07910 F37C0000 ERET -BFD07912 4FF1F37C JALX 0xBDF13FC4 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq14_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ14_ID, 0); -50: } -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq14_b1(void) -54: { -55: jtvic_dis_clr_source(MEC14xx_GIRQ14_ID, 1); -56: } -57: -58: void __attribute__((weak, interrupt, nomips16)) -59: girq14_b2(void) -60: { -61: jtvic_dis_clr_source(MEC14xx_GIRQ14_ID, 2); -62: } -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq14_b3(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ14_ID, 3); -68: } -69: -70: void __attribute__((weak, interrupt, nomips16)) -71: girq14_b4(void) -72: { -73: jtvic_dis_clr_source(MEC14xx_GIRQ14_ID, 4); -74: } -75: -76: void __attribute__((weak, interrupt, nomips16)) -77: girq14_b5(void) -78: { -79: jtvic_dis_clr_source(MEC14xx_GIRQ14_ID, 5); -80: } -81: -82: -83: #endif -84: -85: /* end girq14.c */ -86: /** @} -87: */ -88: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq13.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq13.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: #if GIRQ13_DISAGG == 0 -37: -38: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -39: girq13_isr(void) -40: { -BFD0782C E17C03BD RDPGPR SP, SP -BFD07830 00FC036E MFC0 K1, EPC -BFD07832 034C00FC INS A3, GP, 13, -12 -BFD07834 10FC034C MFC0 K0, SRSCtl -BFD07836 4FF110FC ADDI A3, GP, 20465 -BFD07838 4FF1 ADDIU SP, SP, -32 -BFD0783A CB67 SW K1, 28(SP) -BFD0783C 00FC036C MFC0 K1, Status -BFD07840 CB46 SW K0, 24(SP) -BFD07842 00FC034D MFC0 K0, Cause -BFD07846 CB65 SW K1, 20(SP) -BFD07848 5040035A SRL K0, K0, 10 -BFD0784A 037A5040 ORI V0, ZERO, 890 -BFD0784C 7A8C037A INS K1, K0, 10, 6 -BFD0784E 03607A8C ADDIUPC A1, 787296 -BFD07850 204C0360 INS K1, ZERO, 1, 4 -BFD07852 036C204C LWC2 V0, 876(T4) -BFD07854 02FC036C MTC0 K1, Status -BFD07858 C862 SW V1, 8(SP) -BFD0785A C841 SW V0, 4(SP) -BFD0785C 4866 LW V1, 24(SP) -BFD0785E 2DB7 ANDI V1, V1, 0xF -BFD07860 CBC3 SW S8, 12(SP) -BFD07862 0FDD MOVE S8, SP -41: JTVIC_GROUP_EN_CLR->w = (1ul<<5); -BFD07864 BFFF41A2 LUI V0, 0xBFFF -BFD07866 5042BFFF LDC1 F31, 20546(RA) -BFD07868 C50C5042 ORI V0, V0, -15092 -BFD0786C EDA0 LI V1, 32 -BFD0786E E9A0 SW V1, 0(V0) -42: } -BFD07870 0FBE MOVE SP, S8 -BFD07872 4846 LW V0, 24(SP) -BFD07874 2D27 ANDI V0, V0, 0xF -BFD07876 4BC3 LW S8, 12(SP) -BFD07878 4862 LW V1, 8(SP) -BFD0787A 4841 LW V0, 4(SP) -BFD0787C 477C0000 DI ZERO -BFD07880 18000000 SLL ZERO, ZERO, 3 -BFD07882 4B471800 SB ZERO, 19271(ZERO) -BFD07884 4B47 LW K0, 28(SP) -BFD07886 4B65 LW K1, 20(SP) -BFD07888 02FC034E MTC0 K0, EPC -BFD0788C 4B46 LW K0, 24(SP) -BFD0788E 4C11 ADDIU SP, SP, 32 -BFD07890 12FC034C MTC0 K0, SRSCtl -BFD07892 03BD12FC ADDI S7, GP, 957 -BFD07894 F17C03BD WRPGPR SP, SP -BFD07896 036CF17C JALX 0xBDF00DB0 -BFD07898 02FC036C MTC0 K1, Status -BFD0789A 000002FC SLL S7, GP, 0 -BFD0789C F37C0000 ERET -BFD0789E 03BDF37C JALX 0xBDF00EF4 -43: -44: #else -45: -46: void __attribute__((weak, interrupt, nomips16)) -47: girq13_b0(void) -48: { -49: jtvic_dis_clr_source(MEC14xx_GIRQ13_ID, 0); -50: } -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq13_b1(void) -54: { -55: jtvic_dis_clr_source(MEC14xx_GIRQ13_ID, 1); -56: } -57: -58: void __attribute__((weak, interrupt, nomips16)) -59: girq13_b2(void) -60: { -61: jtvic_dis_clr_source(MEC14xx_GIRQ13_ID, 2); -62: } -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq13_b3(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ13_ID, 3); -68: } -69: -70: void __attribute__((weak, interrupt, nomips16)) -71: girq13_b4(void) -72: { -73: jtvic_dis_clr_source(MEC14xx_GIRQ13_ID, 4); -74: } -75: -76: void __attribute__((weak, interrupt, nomips16)) -77: girq13_b5(void) -78: { -79: jtvic_dis_clr_source(MEC14xx_GIRQ13_ID, 5); -80: } -81: -82: void __attribute__((weak, interrupt, nomips16)) -83: girq13_b6(void) -84: { -85: jtvic_dis_clr_source(MEC14xx_GIRQ13_ID, 6); -86: } -87: -88: #endif -89: -90: /* end girq13.c */ -91: /** @} -92: */ -93: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq12.c ---- -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq12.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_girqs.h" -33: #include "MEC14xx/mec14xx_gpio.h" -34: #include "MEC14xx/mec14xx_trace_func.h" -35: -36: -37: #if GIRQ12_DISAGG == 0 -38: -39: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -40: girq12_isr(void) -41: { -BFD077B8 E17C03BD RDPGPR SP, SP -BFD077BC 00FC036E MFC0 K1, EPC -BFD077BE 034C00FC INS A3, GP, 13, -12 -BFD077C0 10FC034C MFC0 K0, SRSCtl -BFD077C2 4FF110FC ADDI A3, GP, 20465 -BFD077C4 4FF1 ADDIU SP, SP, -32 -BFD077C6 CB67 SW K1, 28(SP) -BFD077C8 00FC036C MFC0 K1, Status -BFD077CC CB46 SW K0, 24(SP) -BFD077CE 00FC034D MFC0 K0, Cause -BFD077D2 CB65 SW K1, 20(SP) -BFD077D4 5040035A SRL K0, K0, 10 -BFD077D6 037A5040 ORI V0, ZERO, 890 -BFD077D8 7A8C037A INS K1, K0, 10, 6 -BFD077DA 03607A8C ADDIUPC A1, 787296 -BFD077DC 204C0360 INS K1, ZERO, 1, 4 -BFD077DE 036C204C LWC2 V0, 876(T4) -BFD077E0 02FC036C MTC0 K1, Status -BFD077E4 C862 SW V1, 8(SP) -BFD077E6 C841 SW V0, 4(SP) -BFD077E8 4866 LW V1, 24(SP) -BFD077EA 2DB7 ANDI V1, V1, 0xF -BFD077EC CBC3 SW S8, 12(SP) -BFD077EE 0FDD MOVE S8, SP -42: JTVIC_GROUP_EN_CLR->w = (1ul<<4); -BFD077F0 BFFF41A2 LUI V0, 0xBFFF -BFD077F2 5042BFFF LDC1 F31, 20546(RA) -BFD077F4 C50C5042 ORI V0, V0, -15092 -BFD077F8 ED90 LI V1, 16 -BFD077FA E9A0 SW V1, 0(V0) -43: } -BFD077FC 0FBE MOVE SP, S8 -BFD077FE 4846 LW V0, 24(SP) -BFD07800 2D27 ANDI V0, V0, 0xF -BFD07802 4BC3 LW S8, 12(SP) -BFD07804 4862 LW V1, 8(SP) -BFD07806 4841 LW V0, 4(SP) -BFD07808 477C0000 DI ZERO -BFD0780C 18000000 SLL ZERO, ZERO, 3 -BFD0780E 4B471800 SB ZERO, 19271(ZERO) -BFD07810 4B47 LW K0, 28(SP) -BFD07812 4B65 LW K1, 20(SP) -BFD07814 02FC034E MTC0 K0, EPC -BFD07818 4B46 LW K0, 24(SP) -BFD0781A 4C11 ADDIU SP, SP, 32 -BFD0781C 12FC034C MTC0 K0, SRSCtl -BFD0781E 03BD12FC ADDI S7, GP, 957 -BFD07820 F17C03BD WRPGPR SP, SP -BFD07822 036CF17C JALX 0xBDF00DB0 -BFD07824 02FC036C MTC0 K1, Status -BFD07826 000002FC SLL S7, GP, 0 -BFD07828 F37C0000 ERET -BFD0782A 03BDF37C JALX 0xBDF00EF4 -44: -45: #else -46: -47: void __attribute__((weak, interrupt, nomips16)) -48: girq12_b0(void) -49: { -50: jtvic_dis_clr_source(MEC14xx_GIRQ12_ID, 0); -51: } -52: -53: void __attribute__((weak, interrupt, nomips16)) -54: girq12_b1(void) -55: { -56: jtvic_dis_clr_source(MEC14xx_GIRQ12_ID, 1); -57: } -58: -59: void __attribute__((weak, interrupt, nomips16)) -60: girq12_b2(void) -61: { -62: jtvic_dis_clr_source(MEC14xx_GIRQ12_ID, 2); -63: } -64: -65: #endif -66: -67: /* end girq12.c */ -68: /** @} -69: */ -70: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq11.c ---- -1: /***************************************************************************** -2: * Copyright 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq11.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_girqs.h" -33: #include "MEC14xx/mec14xx_gpio.h" -34: #include "MEC14xx/mec14xx_trace_func.h" -35: -36: -37: #if GIRQ11_DISAGG == 0 -38: -39: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -40: girq11_isr(void) -41: { -BFD07744 E17C03BD RDPGPR SP, SP -BFD07748 00FC036E MFC0 K1, EPC -BFD0774A 034C00FC INS A3, GP, 13, -12 -BFD0774C 10FC034C MFC0 K0, SRSCtl -BFD0774E 4FF110FC ADDI A3, GP, 20465 -BFD07750 4FF1 ADDIU SP, SP, -32 -BFD07752 CB67 SW K1, 28(SP) -BFD07754 00FC036C MFC0 K1, Status -BFD07758 CB46 SW K0, 24(SP) -BFD0775A 00FC034D MFC0 K0, Cause -BFD0775E CB65 SW K1, 20(SP) -BFD07760 5040035A SRL K0, K0, 10 -BFD07762 037A5040 ORI V0, ZERO, 890 -BFD07764 7A8C037A INS K1, K0, 10, 6 -BFD07766 03607A8C ADDIUPC A1, 787296 -BFD07768 204C0360 INS K1, ZERO, 1, 4 -BFD0776A 036C204C LWC2 V0, 876(T4) -BFD0776C 02FC036C MTC0 K1, Status -BFD07770 C862 SW V1, 8(SP) -BFD07772 C841 SW V0, 4(SP) -BFD07774 4866 LW V1, 24(SP) -BFD07776 2DB7 ANDI V1, V1, 0xF -BFD07778 CBC3 SW S8, 12(SP) -BFD0777A 0FDD MOVE S8, SP -42: JTVIC_GROUP_EN_CLR->w = (1ul<<3); -BFD0777C BFFF41A2 LUI V0, 0xBFFF -BFD0777E 5042BFFF LDC1 F31, 20546(RA) -BFD07780 C50C5042 ORI V0, V0, -15092 -BFD07784 ED88 LI V1, 8 -BFD07786 E9A0 SW V1, 0(V0) -43: } -BFD07788 0FBE MOVE SP, S8 -BFD0778A 4846 LW V0, 24(SP) -BFD0778C 2D27 ANDI V0, V0, 0xF -BFD0778E 4BC3 LW S8, 12(SP) -BFD07790 4862 LW V1, 8(SP) -BFD07792 4841 LW V0, 4(SP) -BFD07794 477C0000 DI ZERO -BFD07798 18000000 SLL ZERO, ZERO, 3 -BFD0779A 4B471800 SB ZERO, 19271(ZERO) -BFD0779C 4B47 LW K0, 28(SP) -BFD0779E 4B65 LW K1, 20(SP) -BFD077A0 02FC034E MTC0 K0, EPC -BFD077A4 4B46 LW K0, 24(SP) -BFD077A6 4C11 ADDIU SP, SP, 32 -BFD077A8 12FC034C MTC0 K0, SRSCtl -BFD077AA 03BD12FC ADDI S7, GP, 957 -BFD077AC F17C03BD WRPGPR SP, SP -BFD077AE 036CF17C JALX 0xBDF00DB0 -BFD077B0 02FC036C MTC0 K1, Status -BFD077B2 000002FC SLL S7, GP, 0 -BFD077B4 F37C0000 ERET -BFD077B6 03BDF37C JALX 0xBDF00EF4 -44: -45: #else -46: -47: void __attribute__((weak, interrupt, nomips16)) -48: girq11_b0(void) -49: { -50: return; -51: } -52: -53: void __attribute__((weak, interrupt, nomips16)) -54: girq11_b1(void) -55: { -56: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 1, JTVIC_CLR_SRC); -57: } -58: -59: void __attribute__((weak, interrupt, nomips16)) -60: girq11_b2(void) -61: { -62: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 2, JTVIC_CLR_SRC); -63: } -64: -65: void __attribute__((weak, interrupt, nomips16)) -66: girq11_b3(void) -67: { -68: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 3, JTVIC_CLR_SRC); -69: } -70: -71: void __attribute__((weak, interrupt, nomips16)) -72: girq11_b4(void) -73: { -74: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 4, JTVIC_CLR_SRC); -75: } -76: -77: void __attribute__((weak, interrupt, nomips16)) -78: girq11_b5(void) -79: { -80: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 5, JTVIC_CLR_SRC); -81: } -82: -83: void __attribute__((weak, interrupt, nomips16)) -84: girq11_b6(void) -85: { -86: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 6, JTVIC_CLR_SRC); -87: } -88: -89: void __attribute__((weak, interrupt, nomips16)) -90: girq11_b7(void) -91: { -92: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 7, JTVIC_CLR_SRC); -93: } -94: -95: void __attribute__((weak, interrupt, nomips16)) -96: girq11_b8(void) -97: { -98: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 8, JTVIC_CLR_SRC); -99: } -100: -101: void __attribute__((weak, interrupt, nomips16)) -102: girq11_b9(void) -103: { -104: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 9, JTVIC_CLR_SRC); -105: } -106: -107: void __attribute__((weak, interrupt, nomips16)) -108: girq11_b10(void) -109: { -110: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 10, JTVIC_CLR_SRC); -111: } -112: -113: void __attribute__((weak, interrupt, nomips16)) -114: girq11_b11(void) -115: { -116: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 11, JTVIC_CLR_SRC); -117: } -118: -119: void __attribute__((weak, interrupt, nomips16)) -120: girq11_b12(void) -121: { -122: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 12, JTVIC_CLR_SRC); -123: } -124: -125: void __attribute__((weak, interrupt, nomips16)) -126: girq11_b13(void) -127: { -128: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 13, JTVIC_CLR_SRC); -129: } -130: -131: void __attribute__((weak, interrupt, nomips16)) -132: girq11_b14(void) -133: { -134: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 14, JTVIC_CLR_SRC); -135: } -136: -137: void __attribute__((weak, interrupt, nomips16)) -138: girq11_b15(void) -139: { -140: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 15, JTVIC_CLR_SRC); -141: } -142: -143: void __attribute__((weak, interrupt, nomips16)) -144: girq11_b16(void) -145: { -146: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 16, JTVIC_CLR_SRC); -147: } -148: -149: void __attribute__((weak, interrupt, nomips16)) -150: girq11_b17(void) -151: { -152: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 17, JTVIC_CLR_SRC); -153: } -154: -155: void __attribute__((weak, interrupt, nomips16)) -156: girq11_b18(void) -157: { -158: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 18, JTVIC_CLR_SRC); -159: } -160: -161: void __attribute__((weak, interrupt, nomips16)) -162: girq11_b19(void) -163: { -164: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 19, JTVIC_CLR_SRC); -165: } -166: -167: void __attribute__((weak, interrupt, nomips16)) -168: girq11_b20(void) -169: { -170: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 20, JTVIC_CLR_SRC); -171: } -172: -173: void __attribute__((weak, interrupt, nomips16)) -174: girq11_b21(void) -175: { -176: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 21, JTVIC_CLR_SRC); -177: } -178: -179: void __attribute__((weak, interrupt, nomips16)) -180: girq11_b22(void) -181: { -182: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 22, JTVIC_CLR_SRC); -183: } -184: -185: void __attribute__((weak, interrupt, nomips16)) -186: girq11_b23(void) -187: { -188: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 23, JTVIC_CLR_SRC); -189: } -190: -191: void __attribute__((weak, interrupt, nomips16)) -192: girq11_b24(void) -193: { -194: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 24, JTVIC_CLR_SRC); -195: } -196: -197: void __attribute__((weak, interrupt, nomips16)) -198: girq11_b25(void) -199: { -200: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 25, JTVIC_CLR_SRC); -201: } -202: -203: void __attribute__((weak, interrupt, nomips16)) -204: girq11_b26(void) -205: { -206: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 26, JTVIC_CLR_SRC); -207: } -208: -209: void __attribute__((weak, interrupt, nomips16)) -210: girq11_b27(void) -211: { -212: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 27, JTVIC_CLR_SRC); -213: } -214: -215: void __attribute__((weak, interrupt, nomips16)) -216: girq11_b28(void) -217: { -218: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 28, JTVIC_CLR_SRC); -219: } -220: -221: void __attribute__((weak, interrupt, nomips16)) -222: girq11_b29(void) -223: { -224: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 29, JTVIC_CLR_SRC); -225: } -226: -227: void __attribute__((weak, interrupt, nomips16)) -228: girq11_b30(void) -229: { -230: jtvic_dis_clr_source(MEC14xx_GIRQ11_ID, 30, JTVIC_CLR_SRC); -231: } -232: -233: #endif -234: -235: /* end girq11.c */ -236: /** @} -237: */ -238: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq10.c ---- -1: /***************************************************************************** -2: * Copyright 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq10.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_girqs.h" -33: #include "MEC14xx/mec14xx_gpio.h" -34: #include "MEC14xx/mec14xx_trace_func.h" -35: -36: -37: #if GIRQ10_DISAGG == 0 -38: -39: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -40: girq10_isr(void) -41: { -BFD076D0 E17C03BD RDPGPR SP, SP -BFD076D4 00FC036E MFC0 K1, EPC -BFD076D6 034C00FC INS A3, GP, 13, -12 -BFD076D8 10FC034C MFC0 K0, SRSCtl -BFD076DA 4FF110FC ADDI A3, GP, 20465 -BFD076DC 4FF1 ADDIU SP, SP, -32 -BFD076DE CB67 SW K1, 28(SP) -BFD076E0 00FC036C MFC0 K1, Status -BFD076E4 CB46 SW K0, 24(SP) -BFD076E6 00FC034D MFC0 K0, Cause -BFD076EA CB65 SW K1, 20(SP) -BFD076EC 5040035A SRL K0, K0, 10 -BFD076EE 037A5040 ORI V0, ZERO, 890 -BFD076F0 7A8C037A INS K1, K0, 10, 6 -BFD076F2 03607A8C ADDIUPC A1, 787296 -BFD076F4 204C0360 INS K1, ZERO, 1, 4 -BFD076F6 036C204C LWC2 V0, 876(T4) -BFD076F8 02FC036C MTC0 K1, Status -BFD076FC C862 SW V1, 8(SP) -BFD076FE C841 SW V0, 4(SP) -BFD07700 4866 LW V1, 24(SP) -BFD07702 2DB7 ANDI V1, V1, 0xF -BFD07704 CBC3 SW S8, 12(SP) -BFD07706 0FDD MOVE S8, SP -42: JTVIC_GROUP_EN_CLR->w = (1ul<<2); -BFD07708 BFFF41A2 LUI V0, 0xBFFF -BFD0770A 5042BFFF LDC1 F31, 20546(RA) -BFD0770C C50C5042 ORI V0, V0, -15092 -BFD07710 ED84 LI V1, 4 -BFD07712 E9A0 SW V1, 0(V0) -43: } -BFD07714 0FBE MOVE SP, S8 -BFD07716 4846 LW V0, 24(SP) -BFD07718 2D27 ANDI V0, V0, 0xF -BFD0771A 4BC3 LW S8, 12(SP) -BFD0771C 4862 LW V1, 8(SP) -BFD0771E 4841 LW V0, 4(SP) -BFD07720 477C0000 DI ZERO -BFD07724 18000000 SLL ZERO, ZERO, 3 -BFD07726 4B471800 SB ZERO, 19271(ZERO) -BFD07728 4B47 LW K0, 28(SP) -BFD0772A 4B65 LW K1, 20(SP) -BFD0772C 02FC034E MTC0 K0, EPC -BFD07730 4B46 LW K0, 24(SP) -BFD07732 4C11 ADDIU SP, SP, 32 -BFD07734 12FC034C MTC0 K0, SRSCtl -BFD07736 03BD12FC ADDI S7, GP, 957 -BFD07738 F17C03BD WRPGPR SP, SP -BFD0773A 036CF17C JALX 0xBDF00DB0 -BFD0773C 02FC036C MTC0 K1, Status -BFD0773E 000002FC SLL S7, GP, 0 -BFD07740 F37C0000 ERET -BFD07742 03BDF37C JALX 0xBDF00EF4 -44: -45: #else -46: -47: void __attribute__((weak, interrupt, nomips16)) -48: girq10_b0(void) -49: { -50: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 0, JTVIC_CLR_SRC); -51: } -52: -53: void __attribute__((weak, interrupt, nomips16)) -54: girq10_b1(void) -55: { -56: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 1, JTVIC_CLR_SRC); -57: } -58: -59: void __attribute__((weak, interrupt, nomips16)) -60: girq10_b2(void) -61: { -62: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 2, JTVIC_CLR_SRC); -63: } -64: -65: void __attribute__((weak, interrupt, nomips16)) -66: girq10_b3(void) -67: { -68: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 3, JTVIC_CLR_SRC); -69: } -70: -71: void __attribute__((weak, interrupt, nomips16)) -72: girq10_b4(void) -73: { -74: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 4, JTVIC_CLR_SRC); -75: } -76: -77: void __attribute__((weak, interrupt, nomips16)) -78: girq10_b5(void) -79: { -80: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 5, JTVIC_CLR_SRC); -81: } -82: -83: void __attribute__((weak, interrupt, nomips16)) -84: girq10_b6(void) -85: { -86: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 6, JTVIC_CLR_SRC); -87: } -88: -89: void __attribute__((weak, interrupt, nomips16)) -90: girq10_b7(void) -91: { -92: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 7, JTVIC_CLR_SRC); -93: } -94: -95: void __attribute__((weak, interrupt, nomips16)) -96: girq10_b8(void) -97: { -98: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 8, JTVIC_CLR_SRC); -99: } -100: -101: void __attribute__((weak, interrupt, nomips16)) -102: girq10_b9(void) -103: { -104: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 9, JTVIC_CLR_SRC); -105: } -106: -107: void __attribute__((weak, interrupt, nomips16)) -108: girq10_b10(void) -109: { -110: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 10, JTVIC_CLR_SRC); -111: } -112: -113: void __attribute__((weak, interrupt, nomips16)) -114: girq10_b11(void) -115: { -116: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 11, JTVIC_CLR_SRC); -117: } -118: -119: -120: void __attribute__((weak, interrupt, nomips16)) -121: girq10_b12(void) -122: { -123: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 12, JTVIC_CLR_SRC); -124: } -125: -126: void __attribute__((weak, interrupt, nomips16)) -127: girq10_b13(void) -128: { -129: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 13, JTVIC_CLR_SRC); -130: } -131: -132: void __attribute__((weak, interrupt, nomips16)) -133: girq10_b14(void) -134: { -135: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 14, JTVIC_CLR_SRC); -136: } -137: -138: void __attribute__((weak, interrupt, nomips16)) -139: girq10_b15(void) -140: { -141: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 15, JTVIC_CLR_SRC); -142: } -143: -144: void __attribute__((weak, interrupt, nomips16)) -145: girq10_b16(void) -146: { -147: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 16, JTVIC_CLR_SRC); -148: } -149: -150: void __attribute__((weak, interrupt, nomips16)) -151: girq10_b17(void) -152: { -153: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 17, JTVIC_CLR_SRC); -154: } -155: -156: void __attribute__((weak, interrupt, nomips16)) -157: girq10_b18(void) -158: { -159: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 18, JTVIC_CLR_SRC); -160: } -161: -162: void __attribute__((weak, interrupt, nomips16)) -163: girq10_b19(void) -164: { -165: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 19, JTVIC_CLR_SRC); -166: } -167: -168: void __attribute__((weak, interrupt, nomips16)) -169: girq10_b20(void) -170: { -171: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 20, JTVIC_CLR_SRC); -172: } -173: -174: void __attribute__((weak, interrupt, nomips16)) -175: girq10_b21(void) -176: { -177: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 21, JTVIC_CLR_SRC); -178: } -179: -180: void __attribute__((weak, interrupt, nomips16)) -181: girq10_b22(void) -182: { -183: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 22, JTVIC_CLR_SRC); -184: } -185: -186: void __attribute__((weak, interrupt, nomips16)) -187: girq10_b23(void) -188: { -189: jtvic_dis_clr_source(MEC14xx_GIRQ10_ID, 23, JTVIC_CLR_SRC); -190: } -191: -192: #endif -193: -194: /* end girq10.c */ -195: /** @} -196: */ -197: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq09.c ---- -1: /***************************************************************************** -2: * Copyright 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq09.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: -29: -30: #include "appcfg.h" -31: #include "platform.h" -32: #include "MEC14xx/mec14xx.h" -33: #include "MEC14xx/mec14xx_girqs.h" -34: #include "MEC14xx/mec14xx_gpio.h" -35: #include "MEC14xx/mec14xx_trace_func.h" -36: -37: -38: #if GIRQ09_DISAGG == 0 -39: -40: /* -41: * Aggregated mode handler, must handle all enabled -42: * GIRQ08 sources. -43: */ -44: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -45: girq09_isr( void ) -46: { -BFD0765C E17C03BD RDPGPR SP, SP -BFD07660 00FC036E MFC0 K1, EPC -BFD07662 034C00FC INS A3, GP, 13, -12 -BFD07664 10FC034C MFC0 K0, SRSCtl -BFD07666 4FF110FC ADDI A3, GP, 20465 -BFD07668 4FF1 ADDIU SP, SP, -32 -BFD0766A CB67 SW K1, 28(SP) -BFD0766C 00FC036C MFC0 K1, Status -BFD07670 CB46 SW K0, 24(SP) -BFD07672 00FC034D MFC0 K0, Cause -BFD07676 CB65 SW K1, 20(SP) -BFD07678 5040035A SRL K0, K0, 10 -BFD0767A 037A5040 ORI V0, ZERO, 890 -BFD0767C 7A8C037A INS K1, K0, 10, 6 -BFD0767E 03607A8C ADDIUPC A1, 787296 -BFD07680 204C0360 INS K1, ZERO, 1, 4 -BFD07682 036C204C LWC2 V0, 876(T4) -BFD07684 02FC036C MTC0 K1, Status -BFD07688 C862 SW V1, 8(SP) -BFD0768A C841 SW V0, 4(SP) -BFD0768C 4866 LW V1, 24(SP) -BFD0768E 2DB7 ANDI V1, V1, 0xF -BFD07690 CBC3 SW S8, 12(SP) -BFD07692 0FDD MOVE S8, SP -47: JTVIC_GROUP_EN_CLR->w = (1ul<<1); -BFD07694 BFFF41A2 LUI V0, 0xBFFF -BFD07696 5042BFFF LDC1 F31, 20546(RA) -BFD07698 C50C5042 ORI V0, V0, -15092 -BFD0769C ED82 LI V1, 2 -BFD0769E E9A0 SW V1, 0(V0) -48: } -BFD076A0 0FBE MOVE SP, S8 -BFD076A2 4846 LW V0, 24(SP) -BFD076A4 2D27 ANDI V0, V0, 0xF -BFD076A6 4BC3 LW S8, 12(SP) -BFD076A8 4862 LW V1, 8(SP) -BFD076AA 4841 LW V0, 4(SP) -BFD076AC 477C0000 DI ZERO -BFD076B0 18000000 SLL ZERO, ZERO, 3 -BFD076B2 4B471800 SB ZERO, 19271(ZERO) -BFD076B4 4B47 LW K0, 28(SP) -BFD076B6 4B65 LW K1, 20(SP) -BFD076B8 02FC034E MTC0 K0, EPC -BFD076BC 4B46 LW K0, 24(SP) -BFD076BE 4C11 ADDIU SP, SP, 32 -BFD076C0 12FC034C MTC0 K0, SRSCtl -BFD076C2 03BD12FC ADDI S7, GP, 957 -BFD076C4 F17C03BD WRPGPR SP, SP -BFD076C6 036CF17C JALX 0xBDF00DB0 -BFD076C8 02FC036C MTC0 K1, Status -BFD076CA 000002FC SLL S7, GP, 0 -BFD076CC F37C0000 ERET -BFD076CE 03BDF37C JALX 0xBDF00EF4 -49: -50: #else -51: -52: void __attribute__((weak, interrupt, nomips16)) -53: girq09_b0(void) -54: { -55: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 0); -56: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 0); -57: } -58: -59: void __attribute__((weak, interrupt, nomips16)) -60: girq09_b1(void) -61: { -62: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 1); -63: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 1); -64: } -65: -66: void __attribute__((weak, interrupt, nomips16)) -67: girq09_b2(void) -68: { -69: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 2); -70: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 2); -71: } -72: -73: void __attribute__((weak, interrupt, nomips16)) -74: girq09_b3(void) -75: { -76: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 3); -77: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 3); -78: } -79: -80: void __attribute__((weak, interrupt, nomips16)) -81: girq09_b4(void) -82: { -83: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 4); -84: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 4); -85: } -86: -87: void __attribute__((weak, interrupt, nomips16)) -88: girq09_b5(void) -89: { -90: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 5); -91: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 5); -92: } -93: -94: void __attribute__((weak, interrupt, nomips16)) -95: girq09_b6(void) -96: { -97: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 6); -98: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 6); -99: } -100: -101: void __attribute__((weak, interrupt, nomips16)) -102: girq09_b7(void) -103: { -104: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 7); -105: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 7); -106: } -107: -108: void __attribute__((weak, interrupt, nomips16)) -109: girq09_b8(void) -110: { -111: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 8); -112: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 8); -113: } -114: -115: void __attribute__((weak, interrupt, nomips16)) -116: girq09_b9(void) -117: { -118: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 9); -119: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 9); -120: } -121: -122: void __attribute__((weak, interrupt, nomips16)) -123: girq09_b10(void) -124: { -125: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 10); -126: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 10); -127: } -128: -129: void __attribute__((weak, interrupt, nomips16)) -130: girq09_b11(void) -131: { -132: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 11); -133: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 11); -134: } -135: -136: void __attribute__((weak, interrupt, nomips16)) -137: girq09_b12(void) -138: { -139: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 12); -140: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 12); -141: } -142: -143: void __attribute__((weak, interrupt, nomips16)) -144: girq09_b13(void) -145: { -146: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 13); -147: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 13); -148: } -149: -150: void __attribute__((weak, interrupt, nomips16)) -151: girq09_b14(void) -152: { -153: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 14); -154: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 14); -155: } -156: -157: void __attribute__((weak, interrupt, nomips16)) -158: girq09_b15(void) -159: { -160: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 15); -161: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 15); -162: } -163: -164: void __attribute__((weak, interrupt, nomips16)) -165: girq09_b16(void) -166: { -167: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 16); -168: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 16); -169: } -170: -171: void __attribute__((weak, interrupt, nomips16)) -172: girq09_b17(void) -173: { -174: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 17); -175: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 17); -176: } -177: -178: void __attribute__((weak, interrupt, nomips16)) -179: girq09_b18(void) -180: { -181: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 18); -182: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 18); -183: } -184: -185: void __attribute__((weak, interrupt, nomips16)) -186: girq09_b19(void) -187: { -188: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 19); -189: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 19); -190: } -191: -192: void __attribute__((weak, interrupt, nomips16)) -193: girq09_b20(void) -194: { -195: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 20); -196: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 20); -197: } -198: -199: void __attribute__((weak, interrupt, nomips16)) -200: girq09_b21(void) -201: { -202: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 21); -203: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 21); -204: } -205: -206: void __attribute__((weak, interrupt, nomips16)) -207: girq09_b22(void) -208: { -209: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 22); -210: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 22); -211: } -212: -213: void __attribute__((weak, interrupt, nomips16)) -214: girq09_b23(void) -215: { -216: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 23); -217: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 23); -218: } -219: -220: void __attribute__((weak, interrupt, nomips16)) -221: girq09_b24(void) -222: { -223: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 24); -224: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 24); -225: } -226: -227: void __attribute__((weak, interrupt, nomips16)) -228: girq09_b25(void) -229: { -230: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 25); -231: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 25); -232: } -233: -234: void __attribute__((weak, interrupt, nomips16)) -235: girq09_b26(void) -236: { -237: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 26); -238: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 26); -239: } -240: -241: void __attribute__((weak, interrupt, nomips16)) -242: girq09_b27(void) -243: { -244: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 27); -245: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 27); -246: } -247: -248: void __attribute__((weak, interrupt, nomips16)) -249: girq09_b28(void) -250: { -251: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 28); -252: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 28); -253: } -254: -255: void __attribute__((weak, interrupt, nomips16)) -256: girq09_b29(void) -257: { -258: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 29); -259: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 29); -260: } -261: -262: void __attribute__((weak, interrupt, nomips16)) -263: girq09_b30(void) -264: { -265: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].EN_CLR = (1ul << 30); -266: JTVIC_GIRQ->REGS[MEC14xx_GIRQ09_ID].SOURCE = (1ul << 30); -267: } -268: -269: -270: #endif -271: -272: /* end girq09.c */ -273: /** @} -274: */ -275: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/interrupts/girq08.c ---- -1: /***************************************************************************** -2: * Copyright 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file girq08.c -22: *Interrupt service routines for MIPS using vanilla GCC and MCHP XC32 -23: */ -24: /** @defgroup MEC14xx ISR -25: * @{ -26: */ -27: -28: #include "appcfg.h" -29: #include "platform.h" -30: #include "MEC14xx/mec14xx.h" -31: #include "MEC14xx/mec14xx_girqs.h" -32: #include "MEC14xx/mec14xx_gpio.h" -33: #include "MEC14xx/mec14xx_trace_func.h" -34: -35: -36: -37: #if GIRQ08_DISAGG == 0 -38: -39: /* -40: * Aggregated mode handler, must handle all enabled -41: * GIRQ08 sources. -42: */ -43: void __attribute__((weak, interrupt, nomips16, section(".girqs"))) -44: girq08_isr( void ) -45: { -BFD075E8 E17C03BD RDPGPR SP, SP -BFD075EC 00FC036E MFC0 K1, EPC -BFD075EE 034C00FC INS A3, GP, 13, -12 -BFD075F0 10FC034C MFC0 K0, SRSCtl -BFD075F2 4FF110FC ADDI A3, GP, 20465 -BFD075F4 4FF1 ADDIU SP, SP, -32 -BFD075F6 CB67 SW K1, 28(SP) -BFD075F8 00FC036C MFC0 K1, Status -BFD075FC CB46 SW K0, 24(SP) -BFD075FE 00FC034D MFC0 K0, Cause -BFD07602 CB65 SW K1, 20(SP) -BFD07604 5040035A SRL K0, K0, 10 -BFD07606 037A5040 ORI V0, ZERO, 890 -BFD07608 7A8C037A INS K1, K0, 10, 6 -BFD0760A 03607A8C ADDIUPC A1, 787296 -BFD0760C 204C0360 INS K1, ZERO, 1, 4 -BFD0760E 036C204C LWC2 V0, 876(T4) -BFD07610 02FC036C MTC0 K1, Status -BFD07614 C862 SW V1, 8(SP) -BFD07616 C841 SW V0, 4(SP) -BFD07618 4866 LW V1, 24(SP) -BFD0761A 2DB7 ANDI V1, V1, 0xF -BFD0761C CBC3 SW S8, 12(SP) -BFD0761E 0FDD MOVE S8, SP -46: JTVIC_GROUP_EN_CLR->w = (1ul<<0); -BFD07620 BFFF41A2 LUI V0, 0xBFFF -BFD07622 5042BFFF LDC1 F31, 20546(RA) -BFD07624 C50C5042 ORI V0, V0, -15092 -BFD07628 ED81 LI V1, 1 -BFD0762A E9A0 SW V1, 0(V0) -47: } -BFD0762C 0FBE MOVE SP, S8 -BFD0762E 4846 LW V0, 24(SP) -BFD07630 2D27 ANDI V0, V0, 0xF -BFD07632 4BC3 LW S8, 12(SP) -BFD07634 4862 LW V1, 8(SP) -BFD07636 4841 LW V0, 4(SP) -BFD07638 477C0000 DI ZERO -BFD0763C 18000000 SLL ZERO, ZERO, 3 -BFD0763E 4B471800 SB ZERO, 19271(ZERO) -BFD07640 4B47 LW K0, 28(SP) -BFD07642 4B65 LW K1, 20(SP) -BFD07644 02FC034E MTC0 K0, EPC -BFD07648 4B46 LW K0, 24(SP) -BFD0764A 4C11 ADDIU SP, SP, 32 -BFD0764C 12FC034C MTC0 K0, SRSCtl -BFD0764E 03BD12FC ADDI S7, GP, 957 -BFD07650 F17C03BD WRPGPR SP, SP -BFD07652 036CF17C JALX 0xBDF00DB0 -BFD07654 02FC036C MTC0 K1, Status -BFD07656 000002FC SLL S7, GP, 0 -BFD07658 F37C0000 ERET -BFD0765A 03BDF37C JALX 0xBDF00EF4 -48: -49: #else -50: -51: /* -52: * Disaggregated GIRQ08 subhandlers, one for each -53: * source. Called by assembly language wrapper. -54: */ -55: -56: -57: void __attribute__((weak, interrupt, nomips16)) -58: girq08_b0(void) -59: { -60: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 0); -61: } -62: -63: -64: void __attribute__((weak, interrupt, nomips16)) -65: girq08_b1(void) -66: { -67: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 1); -68: } -69: -70: -71: void __attribute__((weak, interrupt, nomips16)) -72: girq08_b2(void) -73: { -74: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 2); -75: } -76: -77: -78: void __attribute__((weak, interrupt, nomips16)) -79: girq08_b3(void) -80: { -81: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 3); -82: } -83: -84: -85: void __attribute__((weak, interrupt, nomips16)) -86: girq08_b4(void) -87: { -88: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 4); -89: } -90: -91: -92: void __attribute__((weak, interrupt, nomips16)) -93: girq08_b5(void) -94: { -95: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 5); -96: } -97: -98: -99: void __attribute__((weak, interrupt, nomips16)) -100: girq08_b6(void) -101: { -102: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 6); -103: } -104: -105: -106: void __attribute__((weak, interrupt, nomips16)) -107: girq08_b7(void) -108: { -109: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 7); -110: } -111: -112: -113: void __attribute__((weak, interrupt, nomips16)) -114: girq08_b8(void) -115: { -116: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 8); -117: } -118: -119: -120: void __attribute__((weak, interrupt, nomips16)) -121: girq08_b9(void) -122: { -123: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 9); -124: } -125: -126: -127: void __attribute__((weak, interrupt, nomips16)) -128: girq08_b10(void) -129: { -130: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 10); -131: } -132: -133: -134: void __attribute__((weak, interrupt, nomips16)) -135: girq08_b11(void) -136: { -137: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 11); -138: } -139: -140: -141: void __attribute__((weak, interrupt, nomips16)) -142: girq08_b12(void) -143: { -144: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 12); -145: } -146: -147: -148: void __attribute__((weak, interrupt, nomips16)) -149: girq08_b13(void) -150: { -151: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 13); -152: } -153: -154: -155: void __attribute__((weak, interrupt, nomips16)) -156: girq08_b14(void) -157: { -158: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 14); -159: } -160: -161: -162: void __attribute__((weak, interrupt, nomips16)) -163: girq08_b15(void) -164: { -165: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 15); -166: } -167: -168: -169: void __attribute__((weak, interrupt, nomips16)) -170: girq08_b16(void) -171: { -172: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 16); -173: } -174: -175: -176: void __attribute__((weak, interrupt, nomips16)) -177: girq08_b17(void) -178: { -179: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 17); -180: } -181: -182: -183: void __attribute__((weak, interrupt, nomips16)) -184: girq08_b18(void) -185: { -186: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 18); -187: } -188: -189: -190: void __attribute__((weak, interrupt, nomips16)) -191: girq08_b19(void) -192: { -193: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 19); -194: } -195: -196: -197: void __attribute__((weak, interrupt, nomips16)) -198: girq08_b20(void) -199: { -200: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 20); -201: } -202: -203: -204: void __attribute__((weak, interrupt, nomips16)) -205: girq08_b21(void) -206: { -207: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 21); -208: } -209: -210: -211: void __attribute__((weak, interrupt, nomips16)) -212: girq08_b22(void) -213: { -214: jtvic_dis_clr_source(MEC14xx_GIRQ08_ID, 22); -215: } -216: -217: -218: #endif -219: -220: -221: /* end girq08.c */ -222: /** @} -223: */ -224: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/mec14xx/exceptions/mplab/general_exception.c -1: /***************************************************************************** -2: * (c) 2014 Microchip Technology Inc. and its subsidiaries. -3: * You may use this software and any derivatives exclusively with -4: * Microchip products. -5: * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". -6: * NO WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, -7: * INCLUDING ANY IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, -8: * AND FITNESS FOR A PARTICULAR PURPOSE, OR ITS INTERACTION WITH MICROCHIP -9: * PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. -10: * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE, -11: * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND -12: * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS -13: * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. -14: * TO THE FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL -15: * CLAIMS IN ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF -16: * FEES, IF ANY, THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE. -17: * MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE -18: * OF THESE TERMS. -19: *****************************************************************************/ -20: -21: /** @file general_exception.c -22: *MEC14xx General Exception Handler -23: */ -24: /** @defgroup MEC14xx Exceptions -25: * @{ -26: */ -27: -28: -29: #include "appcfg.h" -30: #include "platform.h" -31: #include "MEC14xx/mec14xx.h" -32: #include "MEC14xx/mec14xx_trace_inline.h" -33: -34: typedef struct gen_except_capture -35: { -36: uint32_t stack_ptr; -37: uint32_t cp0_status; -38: uint32_t cp0_cause; -39: uint32_t cp0_epc; -40: uint32_t cp0_error_epc; -41: uint32_t cp0_nexc; -42: uint32_t cp0_nepc; -43: uint32_t cp0_badvaddr; -44: uint32_t ahb_err; -45: } GEN_EXCEPT_CAPTURE; -46: -47: GEN_EXCEPT_CAPTURE gexc_cap; -48: -49: void -50: __attribute__((nomips16, noreturn)) _general_exception_handler (void) -51: { -BFD00460 4FF9 ADDIU SP, SP, -16 -BFD00462 CBE3 SW RA, 12(SP) -BFD00464 CBC2 SW S8, 8(SP) -BFD00466 0FDD MOVE S8, SP -52: /* -53: * MEC14xx Application General Exception handler -54: */ -55: uint32_t e; -56: -57: /* Get current Stack Pointer. Note: this is not SP at -58: * exception. XC32 wraps _general_exception_handler in -59: * assembly code which saves state resulting is a -60: * modified SP. Wrapper allocates 88 bytes for context -61: * save. Original SP = SPcurrent + 88. -62: */ -63: __asm__ __volatile ( -BFD00468 0FFD MOVE RA, SP -BFD0046A 0C00 NOP -BFD0046C 0000FBFE SW RA, 0(S8) -64: "move %0,$sp \n\t" -65: "nop \n\t" -66: :"=r" (e) -67: ::); -68: gexc_cap.stack_ptr = e; -BFD00470 BFD241A2 LUI V0, 0xBFD2 -BFD00472 FC7EBFD2 LDC1 F30, -898(S2) -BFD00474 0000FC7E LW V1, 0(S8) -BFD00478 8134F862 SW V1, -32460(V0) -69: -70: gexc_cap.cp0_status = _CP0_GET_STATUS(); -BFD0047C 00FC006C MFC0 V1, Status -BFD00480 BFD241A2 LUI V0, 0xBFD2 -BFD00482 3042BFD2 LDC1 F30, 12354(S2) -BFD00484 81343042 ADDIU V0, V0, -32460 -BFD00488 E9A1 SW V1, 4(V0) -71: gexc_cap.cp0_cause = _CP0_GET_CAUSE(); -BFD0048A 00FC006D MFC0 V1, Cause -BFD0048E BFD241A2 LUI V0, 0xBFD2 -BFD00490 3042BFD2 LDC1 F30, 12354(S2) -BFD00492 81343042 ADDIU V0, V0, -32460 -BFD00496 E9A2 SW V1, 8(V0) -72: gexc_cap.cp0_epc = _CP0_GET_EPC(); -BFD00498 00FC006E MFC0 V1, EPC -BFD0049C BFD241A2 LUI V0, 0xBFD2 -BFD0049E 3042BFD2 LDC1 F30, 12354(S2) -BFD004A0 81343042 ADDIU V0, V0, -32460 -BFD004A4 E9A3 SW V1, 12(V0) -73: gexc_cap.cp0_error_epc = _CP0_GET_ERROREPC(); -BFD004A6 00FC007E MFC0 V1, ErrorEPC -BFD004AA BFD241A2 LUI V0, 0xBFD2 -BFD004AC 3042BFD2 LDC1 F30, 12354(S2) -BFD004AE 81343042 ADDIU V0, V0, -32460 -BFD004B2 E9A4 SW V1, 16(V0) -74: gexc_cap.cp0_nexc = _CP0_GET_NESTEDEXC(); -BFD004B4 10FC006D MFC0 V1, $13, 2 -BFD004B6 41A210FC ADDI A3, GP, 16802 -BFD004B8 BFD241A2 LUI V0, 0xBFD2 -BFD004BA 3042BFD2 LDC1 F30, 12354(S2) -BFD004BC 81343042 ADDIU V0, V0, -32460 -BFD004C0 E9A5 SW V1, 20(V0) -75: gexc_cap.cp0_nepc = _CP0_GET_NESTEDEPC(); -BFD004C2 08FC006E MFC0 V1, $14, 1 -BFD004C4 08FC LBU S1, 12(A3) -BFD004C6 BFD241A2 LUI V0, 0xBFD2 -BFD004C8 3042BFD2 LDC1 F30, 12354(S2) -BFD004CA 81343042 ADDIU V0, V0, -32460 -BFD004CE E9A6 SW V1, 24(V0) -76: gexc_cap.cp0_badvaddr = _CP0_GET_BADVADDR(); -BFD004D0 00FC0068 MFC0 V1, BadVAddr -BFD004D4 BFD241A2 LUI V0, 0xBFD2 -BFD004D6 3042BFD2 LDC1 F30, 12354(S2) -BFD004D8 81343042 ADDIU V0, V0, -32460 -BFD004DC E9A7 SW V1, 28(V0) -77: -78: trace0(0, AP3GENEXCEPT, 0, "Application General Exception Handler (BEV=0)"); -79: TRACE11(601, AP3GENEXCEPT, 0, "Current SP = 0x%08x",gexc_cap.stack_ptr); -BFD004DE A00041A2 LUI V0, 0xA000 -BFD004E2 8C005042 ORI V0, V0, -29696 -BFD004E4 8C00 BEQZ S0, 0xBFD004E6 -BFD004E6 FFFD3060 ADDIU V1, ZERO, -3 -BFD004E8 89A0FFFD LW RA, -30304(SP) -BFD004EA 89A0 SB V1, 0(V0) -BFD004EC A00041A2 LUI V0, 0xA000 -BFD004F0 8C005042 ORI V0, V0, -29696 -BFD004F2 8C00 BEQZ S0, 0xBFD004F4 -BFD004F4 EDD9 LI V1, 89 -BFD004F6 89A0 SB V1, 0(V0) -BFD004F8 A00041A2 LUI V0, 0xA000 -BFD004FC 8C005042 ORI V0, V0, -29696 -BFD004FE 8C00 BEQZ S0, 0xBFD00500 -BFD00500 ED82 LI V1, 2 -BFD00502 89A0 SB V1, 0(V0) -BFD00504 A00041A2 LUI V0, 0xA000 -BFD00508 8C005042 ORI V0, V0, -29696 -BFD0050A 8C00 BEQZ S0, 0xBFD0050C -BFD0050C BFD241A3 LUI V1, 0xBFD2 -BFD0050E FC63BFD2 LDC1 F30, -925(S2) -BFD00510 8134FC63 LW V1, -32460(V1) -BFD00514 2DBD ANDI V1, V1, 0xFF -BFD00516 89A0 SB V1, 0(V0) -BFD00518 A00041A2 LUI V0, 0xA000 -BFD0051C 8C005042 ORI V0, V0, -29696 -BFD0051E 8C00 BEQZ S0, 0xBFD00520 -BFD00520 BFD241A3 LUI V1, 0xBFD2 -BFD00522 FC63BFD2 LDC1 F30, -925(S2) -BFD00524 8134FC63 LW V1, -32460(V1) -BFD00528 25B1 SRL V1, V1, 8 -BFD0052A 2DBD ANDI V1, V1, 0xFF -BFD0052C 89A0 SB V1, 0(V0) -BFD0052E A00041A2 LUI V0, 0xA000 -BFD00532 8C005042 ORI V0, V0, -29696 -BFD00534 8C00 BEQZ S0, 0xBFD00536 -BFD00536 BFD241A3 LUI V1, 0xBFD2 -BFD00538 FC63BFD2 LDC1 F30, -925(S2) -BFD0053A 8134FC63 LW V1, -32460(V1) -BFD0053E 80400063 SRL V1, V1, 16 -BFD00542 2DBD ANDI V1, V1, 0xFF -BFD00544 89A0 SB V1, 0(V0) -BFD00546 A00041A2 LUI V0, 0xA000 -BFD0054A 8C005042 ORI V0, V0, -29696 -BFD0054C 8C00 BEQZ S0, 0xBFD0054E -BFD0054E BFD241A3 LUI V1, 0xBFD2 -BFD00550 FC63BFD2 LDC1 F30, -925(S2) -BFD00552 8134FC63 LW V1, -32460(V1) -BFD00556 C0400063 SRL V1, V1, 24 -BFD0055A 2DBD ANDI V1, V1, 0xFF -BFD0055C 89A0 SB V1, 0(V0) -80: TRACE11(602, AP3GENEXCEPT, 0, "CP0 STATUS = 0x%08x",gexc_cap.cp0_status); -BFD0055E A00041A2 LUI V0, 0xA000 -BFD00562 8C005042 ORI V0, V0, -29696 -BFD00564 8C00 BEQZ S0, 0xBFD00566 -BFD00566 FFFD3060 ADDIU V1, ZERO, -3 -BFD00568 89A0FFFD LW RA, -30304(SP) -BFD0056A 89A0 SB V1, 0(V0) -BFD0056C A00041A2 LUI V0, 0xA000 -BFD00570 8C005042 ORI V0, V0, -29696 -BFD00572 8C00 BEQZ S0, 0xBFD00574 -BFD00574 EDDA LI V1, 90 -BFD00576 89A0 SB V1, 0(V0) -BFD00578 A00041A2 LUI V0, 0xA000 -BFD0057C 8C005042 ORI V0, V0, -29696 -BFD0057E 8C00 BEQZ S0, 0xBFD00580 -BFD00580 ED82 LI V1, 2 -BFD00582 89A0 SB V1, 0(V0) -BFD00584 A00041A2 LUI V0, 0xA000 -BFD00588 8C005042 ORI V0, V0, -29696 -BFD0058A 8C00 BEQZ S0, 0xBFD0058C -BFD0058C BFD241A3 LUI V1, 0xBFD2 -BFD0058E 3063BFD2 LDC1 F30, 12387(S2) -BFD00590 81343063 ADDIU V1, V1, -32460 -BFD00594 69B1 LW V1, 4(V1) -BFD00596 2DBD ANDI V1, V1, 0xFF -BFD00598 89A0 SB V1, 0(V0) -BFD0059A A00041A2 LUI V0, 0xA000 -BFD0059E 8C005042 ORI V0, V0, -29696 -BFD005A0 8C00 BEQZ S0, 0xBFD005A2 -BFD005A2 BFD241A3 LUI V1, 0xBFD2 -BFD005A4 3063BFD2 LDC1 F30, 12387(S2) -BFD005A6 81343063 ADDIU V1, V1, -32460 -BFD005AA 69B1 LW V1, 4(V1) -BFD005AC 25B1 SRL V1, V1, 8 -BFD005AE 2DBD ANDI V1, V1, 0xFF -BFD005B0 89A0 SB V1, 0(V0) -BFD005B2 A00041A2 LUI V0, 0xA000 -BFD005B6 8C005042 ORI V0, V0, -29696 -BFD005B8 8C00 BEQZ S0, 0xBFD005BA -BFD005BA BFD241A3 LUI V1, 0xBFD2 -BFD005BC 3063BFD2 LDC1 F30, 12387(S2) -BFD005BE 81343063 ADDIU V1, V1, -32460 -BFD005C2 69B1 LW V1, 4(V1) -BFD005C4 80400063 SRL V1, V1, 16 -BFD005C8 2DBD ANDI V1, V1, 0xFF -BFD005CA 89A0 SB V1, 0(V0) -BFD005CC A00041A2 LUI V0, 0xA000 -BFD005D0 8C005042 ORI V0, V0, -29696 -BFD005D2 8C00 BEQZ S0, 0xBFD005D4 -BFD005D4 BFD241A3 LUI V1, 0xBFD2 -BFD005D6 3063BFD2 LDC1 F30, 12387(S2) -BFD005D8 81343063 ADDIU V1, V1, -32460 -BFD005DC 69B1 LW V1, 4(V1) -BFD005DE C0400063 SRL V1, V1, 24 -BFD005E2 2DBD ANDI V1, V1, 0xFF -BFD005E4 89A0 SB V1, 0(V0) -81: TRACE11(603, AP3GENEXCEPT, 0, "CP0 CAUSE = 0x%08x",gexc_cap.cp0_cause); -BFD005E6 A00041A2 LUI V0, 0xA000 -BFD005EA 8C005042 ORI V0, V0, -29696 -BFD005EC 8C00 BEQZ S0, 0xBFD005EE -BFD005EE FFFD3060 ADDIU V1, ZERO, -3 -BFD005F0 89A0FFFD LW RA, -30304(SP) -BFD005F2 89A0 SB V1, 0(V0) -BFD005F4 A00041A2 LUI V0, 0xA000 -BFD005F8 8C005042 ORI V0, V0, -29696 -BFD005FA 8C00 BEQZ S0, 0xBFD005FC -BFD005FC EDDB LI V1, 91 -BFD005FE 89A0 SB V1, 0(V0) -BFD00600 A00041A2 LUI V0, 0xA000 -BFD00604 8C005042 ORI V0, V0, -29696 -BFD00606 8C00 BEQZ S0, 0xBFD00608 -BFD00608 ED82 LI V1, 2 -BFD0060A 89A0 SB V1, 0(V0) -BFD0060C A00041A2 LUI V0, 0xA000 -BFD00610 8C005042 ORI V0, V0, -29696 -BFD00612 8C00 BEQZ S0, 0xBFD00614 -BFD00614 BFD241A3 LUI V1, 0xBFD2 -BFD00616 3063BFD2 LDC1 F30, 12387(S2) -BFD00618 81343063 ADDIU V1, V1, -32460 -BFD0061C 69B2 LW V1, 8(V1) -BFD0061E 2DBD ANDI V1, V1, 0xFF -BFD00620 89A0 SB V1, 0(V0) -BFD00622 A00041A2 LUI V0, 0xA000 -BFD00626 8C005042 ORI V0, V0, -29696 -BFD00628 8C00 BEQZ S0, 0xBFD0062A -BFD0062A BFD241A3 LUI V1, 0xBFD2 -BFD0062C 3063BFD2 LDC1 F30, 12387(S2) -BFD0062E 81343063 ADDIU V1, V1, -32460 -BFD00632 69B2 LW V1, 8(V1) -BFD00634 25B1 SRL V1, V1, 8 -BFD00636 2DBD ANDI V1, V1, 0xFF -BFD00638 89A0 SB V1, 0(V0) -BFD0063A A00041A2 LUI V0, 0xA000 -BFD0063E 8C005042 ORI V0, V0, -29696 -BFD00640 8C00 BEQZ S0, 0xBFD00642 -BFD00642 BFD241A3 LUI V1, 0xBFD2 -BFD00644 3063BFD2 LDC1 F30, 12387(S2) -BFD00646 81343063 ADDIU V1, V1, -32460 -BFD0064A 69B2 LW V1, 8(V1) -BFD0064C 80400063 SRL V1, V1, 16 -BFD00650 2DBD ANDI V1, V1, 0xFF -BFD00652 89A0 SB V1, 0(V0) -BFD00654 A00041A2 LUI V0, 0xA000 -BFD00658 8C005042 ORI V0, V0, -29696 -BFD0065A 8C00 BEQZ S0, 0xBFD0065C -BFD0065C BFD241A3 LUI V1, 0xBFD2 -BFD0065E 3063BFD2 LDC1 F30, 12387(S2) -BFD00660 81343063 ADDIU V1, V1, -32460 -BFD00664 69B2 LW V1, 8(V1) -BFD00666 C0400063 SRL V1, V1, 24 -BFD0066A 2DBD ANDI V1, V1, 0xFF -BFD0066C 89A0 SB V1, 0(V0) -82: TRACE11(604, AP3GENEXCEPT, 0, "CP0 EPC = 0x%08x",gexc_cap.cp0_epc); -BFD0066E A00041A2 LUI V0, 0xA000 -BFD00672 8C005042 ORI V0, V0, -29696 -BFD00674 8C00 BEQZ S0, 0xBFD00676 -BFD00676 FFFD3060 ADDIU V1, ZERO, -3 -BFD00678 89A0FFFD LW RA, -30304(SP) -BFD0067A 89A0 SB V1, 0(V0) -BFD0067C A00041A2 LUI V0, 0xA000 -BFD00680 8C005042 ORI V0, V0, -29696 -BFD00682 8C00 BEQZ S0, 0xBFD00684 -BFD00684 EDDC LI V1, 92 -BFD00686 89A0 SB V1, 0(V0) -BFD00688 A00041A2 LUI V0, 0xA000 -BFD0068C 8C005042 ORI V0, V0, -29696 -BFD0068E 8C00 BEQZ S0, 0xBFD00690 -BFD00690 ED82 LI V1, 2 -BFD00692 89A0 SB V1, 0(V0) -BFD00694 A00041A2 LUI V0, 0xA000 -BFD00698 8C005042 ORI V0, V0, -29696 -BFD0069A 8C00 BEQZ S0, 0xBFD0069C -BFD0069C BFD241A3 LUI V1, 0xBFD2 -BFD0069E 3063BFD2 LDC1 F30, 12387(S2) -BFD006A0 81343063 ADDIU V1, V1, -32460 -BFD006A4 69B3 LW V1, 12(V1) -BFD006A6 2DBD ANDI V1, V1, 0xFF -BFD006A8 89A0 SB V1, 0(V0) -BFD006AA A00041A2 LUI V0, 0xA000 -BFD006AE 8C005042 ORI V0, V0, -29696 -BFD006B0 8C00 BEQZ S0, 0xBFD006B2 -BFD006B2 BFD241A3 LUI V1, 0xBFD2 -BFD006B4 3063BFD2 LDC1 F30, 12387(S2) -BFD006B6 81343063 ADDIU V1, V1, -32460 -BFD006BA 69B3 LW V1, 12(V1) -BFD006BC 25B1 SRL V1, V1, 8 -BFD006BE 2DBD ANDI V1, V1, 0xFF -BFD006C0 89A0 SB V1, 0(V0) -BFD006C2 A00041A2 LUI V0, 0xA000 -BFD006C6 8C005042 ORI V0, V0, -29696 -BFD006C8 8C00 BEQZ S0, 0xBFD006CA -BFD006CA BFD241A3 LUI V1, 0xBFD2 -BFD006CC 3063BFD2 LDC1 F30, 12387(S2) -BFD006CE 81343063 ADDIU V1, V1, -32460 -BFD006D2 69B3 LW V1, 12(V1) -BFD006D4 80400063 SRL V1, V1, 16 -BFD006D8 2DBD ANDI V1, V1, 0xFF -BFD006DA 89A0 SB V1, 0(V0) -BFD006DC A00041A2 LUI V0, 0xA000 -BFD006E0 8C005042 ORI V0, V0, -29696 -BFD006E2 8C00 BEQZ S0, 0xBFD006E4 -BFD006E4 BFD241A3 LUI V1, 0xBFD2 -BFD006E6 3063BFD2 LDC1 F30, 12387(S2) -BFD006E8 81343063 ADDIU V1, V1, -32460 -BFD006EC 69B3 LW V1, 12(V1) -BFD006EE C0400063 SRL V1, V1, 24 -BFD006F2 2DBD ANDI V1, V1, 0xFF -BFD006F4 89A0 SB V1, 0(V0) -83: TRACE11(605, AP3GENEXCEPT, 0, "CP0 ERROREPC = 0x%08x",gexc_cap.cp0_error_epc); -BFD006F6 A00041A2 LUI V0, 0xA000 -BFD006FA 8C005042 ORI V0, V0, -29696 -BFD006FC 8C00 BEQZ S0, 0xBFD006FE -BFD006FE FFFD3060 ADDIU V1, ZERO, -3 -BFD00700 89A0FFFD LW RA, -30304(SP) -BFD00702 89A0 SB V1, 0(V0) -BFD00704 A00041A2 LUI V0, 0xA000 -BFD00708 8C005042 ORI V0, V0, -29696 -BFD0070A 8C00 BEQZ S0, 0xBFD0070C -BFD0070C EDDD LI V1, 93 -BFD0070E 89A0 SB V1, 0(V0) -BFD00710 A00041A2 LUI V0, 0xA000 -BFD00714 8C005042 ORI V0, V0, -29696 -BFD00716 8C00 BEQZ S0, 0xBFD00718 -BFD00718 ED82 LI V1, 2 -BFD0071A 89A0 SB V1, 0(V0) -BFD0071C A00041A2 LUI V0, 0xA000 -BFD00720 8C005042 ORI V0, V0, -29696 -BFD00722 8C00 BEQZ S0, 0xBFD00724 -BFD00724 BFD241A3 LUI V1, 0xBFD2 -BFD00726 3063BFD2 LDC1 F30, 12387(S2) -BFD00728 81343063 ADDIU V1, V1, -32460 -BFD0072C 69B4 LW V1, 16(V1) -BFD0072E 2DBD ANDI V1, V1, 0xFF -BFD00730 89A0 SB V1, 0(V0) -BFD00732 A00041A2 LUI V0, 0xA000 -BFD00736 8C005042 ORI V0, V0, -29696 -BFD00738 8C00 BEQZ S0, 0xBFD0073A -BFD0073A BFD241A3 LUI V1, 0xBFD2 -BFD0073C 3063BFD2 LDC1 F30, 12387(S2) -BFD0073E 81343063 ADDIU V1, V1, -32460 -BFD00742 69B4 LW V1, 16(V1) -BFD00744 25B1 SRL V1, V1, 8 -BFD00746 2DBD ANDI V1, V1, 0xFF -BFD00748 89A0 SB V1, 0(V0) -BFD0074A A00041A2 LUI V0, 0xA000 -BFD0074E 8C005042 ORI V0, V0, -29696 -BFD00750 8C00 BEQZ S0, 0xBFD00752 -BFD00752 BFD241A3 LUI V1, 0xBFD2 -BFD00754 3063BFD2 LDC1 F30, 12387(S2) -BFD00756 81343063 ADDIU V1, V1, -32460 -BFD0075A 69B4 LW V1, 16(V1) -BFD0075C 80400063 SRL V1, V1, 16 -BFD00760 2DBD ANDI V1, V1, 0xFF -BFD00762 89A0 SB V1, 0(V0) -BFD00764 A00041A2 LUI V0, 0xA000 -BFD00768 8C005042 ORI V0, V0, -29696 -BFD0076A 8C00 BEQZ S0, 0xBFD0076C -BFD0076C BFD241A3 LUI V1, 0xBFD2 -BFD0076E 3063BFD2 LDC1 F30, 12387(S2) -BFD00770 81343063 ADDIU V1, V1, -32460 -BFD00774 69B4 LW V1, 16(V1) -BFD00776 C0400063 SRL V1, V1, 24 -BFD0077A 2DBD ANDI V1, V1, 0xFF -BFD0077C 89A0 SB V1, 0(V0) -84: TRACE11(606, AP3GENEXCEPT, 0, "CP0 NEXC = 0x%08x",gexc_cap.cp0_nexc); -BFD0077E A00041A2 LUI V0, 0xA000 -BFD00782 8C005042 ORI V0, V0, -29696 -BFD00784 8C00 BEQZ S0, 0xBFD00786 -BFD00786 FFFD3060 ADDIU V1, ZERO, -3 -BFD00788 89A0FFFD LW RA, -30304(SP) -BFD0078A 89A0 SB V1, 0(V0) -BFD0078C A00041A2 LUI V0, 0xA000 -BFD00790 8C005042 ORI V0, V0, -29696 -BFD00792 8C00 BEQZ S0, 0xBFD00794 -BFD00794 EDDE LI V1, 94 -BFD00796 89A0 SB V1, 0(V0) -BFD00798 A00041A2 LUI V0, 0xA000 -BFD0079C 8C005042 ORI V0, V0, -29696 -BFD0079E 8C00 BEQZ S0, 0xBFD007A0 -BFD007A0 ED82 LI V1, 2 -BFD007A2 89A0 SB V1, 0(V0) -BFD007A4 A00041A2 LUI V0, 0xA000 -BFD007A8 8C005042 ORI V0, V0, -29696 -BFD007AA 8C00 BEQZ S0, 0xBFD007AC -BFD007AC BFD241A3 LUI V1, 0xBFD2 -BFD007AE 3063BFD2 LDC1 F30, 12387(S2) -BFD007B0 81343063 ADDIU V1, V1, -32460 -BFD007B4 69B5 LW V1, 20(V1) -BFD007B6 2DBD ANDI V1, V1, 0xFF -BFD007B8 89A0 SB V1, 0(V0) -BFD007BA A00041A2 LUI V0, 0xA000 -BFD007BE 8C005042 ORI V0, V0, -29696 -BFD007C0 8C00 BEQZ S0, 0xBFD007C2 -BFD007C2 BFD241A3 LUI V1, 0xBFD2 -BFD007C4 3063BFD2 LDC1 F30, 12387(S2) -BFD007C6 81343063 ADDIU V1, V1, -32460 -BFD007CA 69B5 LW V1, 20(V1) -BFD007CC 25B1 SRL V1, V1, 8 -BFD007CE 2DBD ANDI V1, V1, 0xFF -BFD007D0 89A0 SB V1, 0(V0) -BFD007D2 A00041A2 LUI V0, 0xA000 -BFD007D6 8C005042 ORI V0, V0, -29696 -BFD007D8 8C00 BEQZ S0, 0xBFD007DA -BFD007DA BFD241A3 LUI V1, 0xBFD2 -BFD007DC 3063BFD2 LDC1 F30, 12387(S2) -BFD007DE 81343063 ADDIU V1, V1, -32460 -BFD007E2 69B5 LW V1, 20(V1) -BFD007E4 80400063 SRL V1, V1, 16 -BFD007E8 2DBD ANDI V1, V1, 0xFF -BFD007EA 89A0 SB V1, 0(V0) -BFD007EC A00041A2 LUI V0, 0xA000 -BFD007F0 8C005042 ORI V0, V0, -29696 -BFD007F2 8C00 BEQZ S0, 0xBFD007F4 -BFD007F4 BFD241A3 LUI V1, 0xBFD2 -BFD007F6 3063BFD2 LDC1 F30, 12387(S2) -BFD007F8 81343063 ADDIU V1, V1, -32460 -BFD007FC 69B5 LW V1, 20(V1) -BFD007FE C0400063 SRL V1, V1, 24 -BFD00802 2DBD ANDI V1, V1, 0xFF -BFD00804 89A0 SB V1, 0(V0) -85: TRACE11(607, AP3GENEXCEPT, 0, "CP0 NEPC = 0x%08x",gexc_cap.cp0_nepc); -BFD00806 A00041A2 LUI V0, 0xA000 -BFD0080A 8C005042 ORI V0, V0, -29696 -BFD0080C 8C00 BEQZ S0, 0xBFD0080E -BFD0080E FFFD3060 ADDIU V1, ZERO, -3 -BFD00810 89A0FFFD LW RA, -30304(SP) -BFD00812 89A0 SB V1, 0(V0) -BFD00814 A00041A2 LUI V0, 0xA000 -BFD00818 8C005042 ORI V0, V0, -29696 -BFD0081A 8C00 BEQZ S0, 0xBFD0081C -BFD0081C EDDF LI V1, 95 -BFD0081E 89A0 SB V1, 0(V0) -BFD00820 A00041A2 LUI V0, 0xA000 -BFD00824 8C005042 ORI V0, V0, -29696 -BFD00826 8C00 BEQZ S0, 0xBFD00828 -BFD00828 ED82 LI V1, 2 -BFD0082A 89A0 SB V1, 0(V0) -BFD0082C A00041A2 LUI V0, 0xA000 -BFD00830 8C005042 ORI V0, V0, -29696 -BFD00832 8C00 BEQZ S0, 0xBFD00834 -BFD00834 BFD241A3 LUI V1, 0xBFD2 -BFD00836 3063BFD2 LDC1 F30, 12387(S2) -BFD00838 81343063 ADDIU V1, V1, -32460 -BFD0083C 69B6 LW V1, 24(V1) -BFD0083E 2DBD ANDI V1, V1, 0xFF -BFD00840 89A0 SB V1, 0(V0) -BFD00842 A00041A2 LUI V0, 0xA000 -BFD00846 8C005042 ORI V0, V0, -29696 -BFD00848 8C00 BEQZ S0, 0xBFD0084A -BFD0084A BFD241A3 LUI V1, 0xBFD2 -BFD0084C 3063BFD2 LDC1 F30, 12387(S2) -BFD0084E 81343063 ADDIU V1, V1, -32460 -BFD00852 69B6 LW V1, 24(V1) -BFD00854 25B1 SRL V1, V1, 8 -BFD00856 2DBD ANDI V1, V1, 0xFF -BFD00858 89A0 SB V1, 0(V0) -BFD0085A A00041A2 LUI V0, 0xA000 -BFD0085E 8C005042 ORI V0, V0, -29696 -BFD00860 8C00 BEQZ S0, 0xBFD00862 -BFD00862 BFD241A3 LUI V1, 0xBFD2 -BFD00864 3063BFD2 LDC1 F30, 12387(S2) -BFD00866 81343063 ADDIU V1, V1, -32460 -BFD0086A 69B6 LW V1, 24(V1) -BFD0086C 80400063 SRL V1, V1, 16 -BFD00870 2DBD ANDI V1, V1, 0xFF -BFD00872 89A0 SB V1, 0(V0) -BFD00874 A00041A2 LUI V0, 0xA000 -BFD00878 8C005042 ORI V0, V0, -29696 -BFD0087A 8C00 BEQZ S0, 0xBFD0087C -BFD0087C BFD241A3 LUI V1, 0xBFD2 -BFD0087E 3063BFD2 LDC1 F30, 12387(S2) -BFD00880 81343063 ADDIU V1, V1, -32460 -BFD00884 69B6 LW V1, 24(V1) -BFD00886 C0400063 SRL V1, V1, 24 -BFD0088A 2DBD ANDI V1, V1, 0xFF -BFD0088C 89A0 SB V1, 0(V0) -86: TRACE11(608, AP3GENEXCEPT, 0, "CP0 BADVADDR = 0x%08x",gexc_cap.cp0_badvaddr); -BFD0088E A00041A2 LUI V0, 0xA000 -BFD00892 8C005042 ORI V0, V0, -29696 -BFD00894 8C00 BEQZ S0, 0xBFD00896 -BFD00896 FFFD3060 ADDIU V1, ZERO, -3 -BFD00898 89A0FFFD LW RA, -30304(SP) -BFD0089A 89A0 SB V1, 0(V0) -BFD0089C A00041A2 LUI V0, 0xA000 -BFD008A0 8C005042 ORI V0, V0, -29696 -BFD008A2 8C00 BEQZ S0, 0xBFD008A4 -BFD008A4 EDE0 LI V1, 96 -BFD008A6 89A0 SB V1, 0(V0) -BFD008A8 A00041A2 LUI V0, 0xA000 -BFD008AC 8C005042 ORI V0, V0, -29696 -BFD008AE 8C00 BEQZ S0, 0xBFD008B0 -BFD008B0 ED82 LI V1, 2 -BFD008B2 89A0 SB V1, 0(V0) -BFD008B4 A00041A2 LUI V0, 0xA000 -BFD008B8 8C005042 ORI V0, V0, -29696 -BFD008BA 8C00 BEQZ S0, 0xBFD008BC -BFD008BC BFD241A3 LUI V1, 0xBFD2 -BFD008BE 3063BFD2 LDC1 F30, 12387(S2) -BFD008C0 81343063 ADDIU V1, V1, -32460 -BFD008C4 69B7 LW V1, 28(V1) -BFD008C6 2DBD ANDI V1, V1, 0xFF -BFD008C8 89A0 SB V1, 0(V0) -BFD008CA A00041A2 LUI V0, 0xA000 -BFD008CE 8C005042 ORI V0, V0, -29696 -BFD008D0 8C00 BEQZ S0, 0xBFD008D2 -BFD008D2 BFD241A3 LUI V1, 0xBFD2 -BFD008D4 3063BFD2 LDC1 F30, 12387(S2) -BFD008D6 81343063 ADDIU V1, V1, -32460 -BFD008DA 69B7 LW V1, 28(V1) -BFD008DC 25B1 SRL V1, V1, 8 -BFD008DE 2DBD ANDI V1, V1, 0xFF -BFD008E0 89A0 SB V1, 0(V0) -BFD008E2 A00041A2 LUI V0, 0xA000 -BFD008E6 8C005042 ORI V0, V0, -29696 -BFD008E8 8C00 BEQZ S0, 0xBFD008EA -BFD008EA BFD241A3 LUI V1, 0xBFD2 -BFD008EC 3063BFD2 LDC1 F30, 12387(S2) -BFD008EE 81343063 ADDIU V1, V1, -32460 -BFD008F2 69B7 LW V1, 28(V1) -BFD008F4 80400063 SRL V1, V1, 16 -BFD008F8 2DBD ANDI V1, V1, 0xFF -BFD008FA 89A0 SB V1, 0(V0) -BFD008FC A00041A2 LUI V0, 0xA000 -BFD00900 8C005042 ORI V0, V0, -29696 -BFD00902 8C00 BEQZ S0, 0xBFD00904 -BFD00904 BFD241A3 LUI V1, 0xBFD2 -BFD00906 3063BFD2 LDC1 F30, 12387(S2) -BFD00908 81343063 ADDIU V1, V1, -32460 -BFD0090C 69B7 LW V1, 28(V1) -BFD0090E C0400063 SRL V1, V1, 24 -BFD00912 2DBD ANDI V1, V1, 0xFF -BFD00914 89A0 SB V1, 0(V0) -87: -88: for (;;) { -89: __asm__ __volatile ("%(ssnop%)" : :); -BFD00916 08000000 SSNOP -BFD00918 0800 LBU S0, 0(S0) -90: } -BFD0091A CFFD B 0xBFD00916 -BFD0091C 0C00 NOP -91: } -92: -93: -94: /* end general_exception.c */ -95: /** @} -96: */ -97: ---- c:/e/dev/freertos/workingcopy/freertos/demo/pic32mec14xx_mplab/src/main.c ------------------------- -1: #warning configTIMERS_DISAGGREGATED_ISRS and configCPU_DISAGGREGATED_ISRS need documenting. -2: -3: /* -4: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. -5: All rights reserved -6: -7: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. -8: -9: This file is part of the FreeRTOS distribution. -10: -11: FreeRTOS is free software; you can redistribute it and/or modify it under -12: the terms of the GNU General Public License (version 2) as published by the -13: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. -14: -15: *************************************************************************** -16: >>! NOTE: The modification to the GPL is included to allow you to !<< -17: >>! distribute a combined work that includes FreeRTOS without being !<< -18: >>! obliged to provide the source code for proprietary components !<< -19: >>! outside of the FreeRTOS kernel. !<< -20: *************************************************************************** -21: -22: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY -23: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -24: FOR A PARTICULAR PURPOSE. Full license text is available on the following -25: link: http://www.freertos.org/a00114.html -26: -27: *************************************************************************** -28: * * -29: * FreeRTOS provides completely free yet professionally developed, * -30: * robust, strictly quality controlled, supported, and cross * -31: * platform software that is more than just the market leader, it * -32: * is the industry's de facto standard. * -33: * * -34: * Help yourself get started quickly while simultaneously helping * -35: * to support the FreeRTOS project by purchasing a FreeRTOS * -36: * tutorial book, reference manual, or both: * -37: * http://www.FreeRTOS.org/Documentation * -38: * * -39: *************************************************************************** -40: -41: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading -42: the FAQ page "My application does not run, what could be wrong?". Have you -43: defined configASSERT()? -44: -45: http://www.FreeRTOS.org/support - In return for receiving this top quality -46: embedded software for free we request you assist our global community by -47: participating in the support forum. -48: -49: http://www.FreeRTOS.org/training - Investing in training allows your team to -50: be as productive as possible as early as possible. Now you can receive -51: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers -52: Ltd, and the world's leading authority on the world's leading RTOS. -53: -54: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, -55: including FreeRTOS+Trace - an indispensable productivity tool, a DOS -56: compatible FAT file system, and our tiny thread aware UDP/IP stack. -57: -58: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. -59: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. -60: -61: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High -62: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS -63: licenses offer ticketed support, indemnification and commercial middleware. -64: -65: http://www.SafeRTOS.com - High Integrity Systems also provide a safety -66: engineered and independently SIL3 certified version for use in safety and -67: mission critical applications that require provable dependability. -68: -69: 1 tab == 4 spaces! -70: */ -71: -72: /****************************************************************************** -73: * This project only provides a simple blinky demonstration. -74: * -75: * main() creates one queue, two tasks, and one software timer. It then starts -76: * the scheduler. -77: * -78: * The Blinky Software Timer: -79: * This demonstrates an auto-reload software timer. The timer callback function -80: * does nothing but toggle an LED. -81: * -82: * The Queue Send Task: -83: * The queue send task is implemented by prvQueueSendTask(). It sends the value -84: * 100 to the queue every 200 milliseconds. -85: * -86: * The Queue Receive Task: -87: * The queue receive task is implemented by prvQueueReceiveTask(). -88: * prvQueueReceiveTask() repeatedly blocks on attempts to read from the queue, -89: * toggling an LED each time data is received. The queue send task sends data -90: * to the queue every 200 milliseconds, so the LED will toggle every 200 -91: * milliseconds. -92: */ -93: -94: /* Kernel includes. */ -95: #include "FreeRTOS.h" -96: #include "task.h" -97: #include "queue.h" -98: #include "timers.h" -99: -100: /* Target includes. */ -101: #include "appcfg.h" -102: #include "MEC14xx/mec14xx.h" -103: #include "MEC14xx/mec14xx_jtvic.h" -104: #include "MEC14xx/mec14xx_bbled.h" -105: #include "MEC14xx/mec14xx_girqs.h" -106: -107: /* Priorities at which the tasks are created. */ -108: #define mainQUEUE_SEND_TASK_PRIORITY ( tskIDLE_PRIORITY + 1 ) -109: #define mainQUEUE_RECEIVE_TASK_PRIORITY ( tskIDLE_PRIORITY + 2 ) -110: -111: /* The rate at which data is sent to the queue. The 200ms value is converted -112: to ticks using the pdMS_TO_TICKS() macro. */ -113: #define mainQUEUE_SEND_FREQUENCY_MS ( pdMS_TO_TICKS( 200UL ) ) -114: -115: /* The number of items the queue can hold. This is 1 as the receive task -116: will remove items as they are added, meaning the send task should always find -117: the queue empty. */ -118: #define mainQUEUE_LENGTH ( 1 ) -119: -120: /* Values passed to the two tasks just to check the task parameter -121: functionality. */ -122: #define mainQUEUE_SEND_PARAMETER ( 0x1111UL ) -123: #define mainQUEUE_RECEIVE_PARAMETER ( 0x22UL ) -124: -125: /* The period of the software timer. The period is specified in ms and -126: converted to ticks using the pdMS_TO_TICKS() macro. */ -127: #define mainBLINKY_TIMER_PERIOD ( pdMS_TO_TICKS( 50UL ) ) -128: -129: /* The LED used by the communicating tasks and the timer respectively. */ -130: #define mainTASKS_LED ( LED0_ID ) -131: #define mainTIMER_LED ( LED1_ID ) -132: -133: /* Misc. */ -134: #define mainDONT_BLOCK ( 0 ) -135: -136: -137: /*-----------------------------------------------------------*/ -138: -139: /* -140: * The tasks as described in the comments at the top of this file. -141: */ -142: static void prvQueueReceiveTask( void *pvParameters ); -143: static void prvQueueSendTask( void *pvParameters ); -144: -145: /* -146: * The callback function for the software timer, as described at the top of this -147: * file. -148: */ -149: static void prvBlinkyTimerCallback( TimerHandle_t xTimer ); -150: -151: /* -152: * Performs any hardware setup necessary. -153: */ -154: static void prvSetupHardware( void ); -155: -156: /* -157: * Add some thread safety to the LED toggle function. -158: */ -159: static void prvToggleLED( uint8_t ucLED ); -160: -161: /*-----------------------------------------------------------*/ -162: -163: /* The queue used by both tasks. */ -164: static QueueHandle_t xQueue = NULL; -165: -166: /*-----------------------------------------------------------*/ -167: -168: int main( void ) -169: { -BFD096C0 4FF1 ADDIU SP, SP, -32 -BFD096C2 CBE7 SW RA, 28(SP) -BFD096C4 CBC6 SW S8, 24(SP) -BFD096C6 0FDD MOVE S8, SP -170: TimerHandle_t xTimer; -171: -172: /* Perform any hardware initialisation necessary. */ -173: //prvSetupHardware(); -174: -175: __asm volatile( "di" ); -BFD096C8 477C0000 DI ZERO -176: -177: -178: { -179: volatile uint32_t ulx = 0; -BFD096CC 0010F81E SW ZERO, 16(S8) -180: -181: for( ;; ) -182: { -183: for( ulx = 0; ulx < 0x1fff; ulx++ ) -BFD096D0 CC0A B 0xBFD096E6 -BFD096D2 0010F81E SW ZERO, 16(S8) -BFD096D4 0C000010 SLL ZERO, S0, 1 -BFD096DC 0010FC5E LW V0, 16(S8) -BFD096E0 6D20 ADDIU V0, V0, 1 -BFD096E2 0010F85E SW V0, 16(S8) -BFD096E6 0010FC5E LW V0, 16(S8) -BFD096EA 1FFFB042 SLTIU V0, V0, 8191 -BFD096EC 40A21FFF LB RA, 16546(RA) -BFD096EE FFF240A2 BNEZC V0, 0xBFD096D6 -BFD096F0 77E8FFF2 LW RA, 30696(S2) -184: { -185: __asm volatile( "NOP" ); -BFD096D6 0C00 NOP -186: __asm volatile( "NOP" ); -BFD096D8 0C00 NOP -187: __asm volatile( "NOP" ); -BFD096DA 0C00 NOP -188: } -189: -190: led_out_toggle( 0 ); -BFD096F2 42D477E8 JALS led_out_toggle -BFD096F6 0C80 MOVE A0, ZERO -191: } -BFD096F8 CFEB B 0xBFD096D0 -BFD096FA 0C00 NOP -192: } -193: -194: -195: -196: /* Create the queue. */ -197: xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) ); -198: configASSERT( xQueue ); -199: -200: if( xQueue != NULL ) -201: { -202: /* Create the two tasks as described in the comments at the top of this -203: file. */ -204: xTaskCreate( prvQueueReceiveTask, /* The function that implements the task. */ -205: "Rx", /* The text name assigned to the task - for debug only as it is not used by the kernel. */ -206: configMINIMAL_STACK_SIZE, /* The size of the stack to allocate to the task. */ -207: ( void * ) mainQUEUE_RECEIVE_PARAMETER, /* The parameter passed to the task - just to check the functionality. */ -208: mainQUEUE_RECEIVE_TASK_PRIORITY, /* The priority assigned to the task. */ -209: NULL ); /* The task handle is not required, so NULL is passed. */ -210: -211: xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, ( void * ) mainQUEUE_SEND_PARAMETER, mainQUEUE_SEND_TASK_PRIORITY, NULL ); -212: -213: -214: /* Create the blinky software timer as described at the top of this file. */ -215: xTimer = xTimerCreate( "Blinky", /* A text name, purely to help debugging. */ -216: ( mainBLINKY_TIMER_PERIOD ),/* The timer period. */ -217: pdTRUE, /* This is an auto-reload timer, so xAutoReload is set to pdTRUE. */ -218: ( void * ) 0, /* The ID is not used, so can be set to anything. */ -219: prvBlinkyTimerCallback ); /* The callback function that inspects the status of all the other tasks. */ -220: configASSERT( xTimer ); -221: -222: if( xTimer != NULL ) -223: { -224: xTimerStart( xTimer, mainDONT_BLOCK ); -225: } -226: -227: /* Start the tasks and timer running. */ -228: vTaskStartScheduler(); -229: } -230: -231: /* If all is well, the scheduler will now be running, and the following -232: line will never be reached. If the following line does execute, then -233: there was insufficient FreeRTOS heap memory available for the idle and/or -234: timer tasks to be created. See the memory management section on the -235: FreeRTOS web site for more details. http://www.freertos.org/a00111.html */ -236: for( ;; ); -237: } -238: /*-----------------------------------------------------------*/ -239: -240: static void prvQueueSendTask( void *pvParameters ) -241: { -BFD07E34 4FF1 ADDIU SP, SP, -32 -BFD07E36 CBE7 SW RA, 28(SP) -BFD07E38 CBC6 SW S8, 24(SP) -BFD07E3A 0FDD MOVE S8, SP -BFD07E3C 0020F89E SW A0, 32(S8) -242: TickType_t xNextWakeTime; -243: const unsigned long ulValueToSend = 100UL; -BFD07E40 ED64 LI V0, 100 -BFD07E42 0014F85E SW V0, 20(S8) -244: -245: /* Remove compiler warnigns in the case that configASSERT() is not dfined. */ -246: ( void ) pvParameters; -247: -248: /* Check the task parameter is as expected. */ -249: configASSERT( ( ( unsigned long ) pvParameters ) == mainQUEUE_SEND_PARAMETER ); -BFD07E46 0020FC7E LW V1, 32(S8) -BFD07E48 30400020 SRL AT, ZERO, 6 -BFD07E4A 11113040 ADDIU V0, ZERO, 4369 -BFD07E4C 94431111 ADDI T0, S1, -27581 -BFD07E4E 000A9443 BEQ V1, V0, 0xBFD07E66 -BFD07E50 0C00000A SLL ZERO, T2, 1 -BFD07E52 0C00 NOP -BFD07E54 BFD141A2 LUI V0, 0xBFD1 -BFD07E56 3082BFD1 LDC1 F30, 12418(S1) -BFD07E58 9EF43082 ADDIU A0, V0, -24844 -BFD07E5A 30A09EF4 LWC1 F23, 12448(S4) -BFD07E5C 00F930A0 ADDIU A1, ZERO, 249 -BFD07E60 4B7E77E8 JALS vAssertCalled -BFD07E62 4B7E LW K1, 120(SP) -BFD07E64 0C00 NOP -250: -251: /* Initialise xNextWakeTime - this only needs to be done once. */ -252: xNextWakeTime = xTaskGetTickCount(); -BFD07E66 4CCA77E8 JALS xTaskGetTickCount -BFD07E68 4CCA ADDIU A2, A2, 5 -BFD07E6A 0C00 NOP -BFD07E6C 0010F85E SW V0, 16(S8) -253: -254: for( ;; ) -255: { -256: /* Place this task in the blocked state until it is time to run again. -257: The block time is specified in ticks, the constant used converts ticks -258: to ms. While in the Blocked state this task will not consume any CPU -259: time. */ -260: vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS ); -BFD07E70 0010305E ADDIU V0, S8, 16 -BFD07E74 0C82 MOVE A0, V0 -BFD07E76 00C830A0 ADDIU A1, ZERO, 200 -BFD07E7A 000477E8 JALS vTaskDelayUntil -BFD07E7C 0C000004 SLL ZERO, A0, 1 -BFD07E7E 0C00 NOP -261: -262: /* Send to the queue - causing the queue receive task to unblock and -263: toggle the LED. 0 is used as the block time so the sending operation -264: will not block - it shouldn't need to block as the queue should always -265: be empty at this point in the code. */ -266: xQueueSend( xQueue, &ulValueToSend, 0U ); -BFD07E80 8070FC7C LW V1, -32656(GP) -BFD07E84 0014305E ADDIU V0, S8, 20 -BFD07E88 0C83 MOVE A0, V1 -BFD07E8A 0CA2 MOVE A1, V0 -BFD07E8C 0CC0 MOVE A2, ZERO -BFD07E8E 0CE0 MOVE A3, ZERO -BFD07E90 06A277E8 JALS xQueueGenericSend -BFD07E92 06A2 ADDU A1, S1, V0 -BFD07E94 0C00 NOP -267: } -BFD07E96 CFEC B 0xBFD07E70 -BFD07E98 0C00 NOP -268: } -269: /*-----------------------------------------------------------*/ -270: -271: static void prvQueueReceiveTask( void *pvParameters ) -272: { -BFD08090 4FF1 ADDIU SP, SP, -32 -BFD08092 CBE7 SW RA, 28(SP) -BFD08094 CBC6 SW S8, 24(SP) -BFD08096 0FDD MOVE S8, SP -BFD08098 0020F89E SW A0, 32(S8) -273: unsigned long ulReceivedValue; -274: -275: /* Remove compiler warnings in the case where configASSERT() is not defined. */ -276: ( void ) pvParameters; -277: -278: /* Check the task parameter is as expected. */ -279: configASSERT( ( ( unsigned long ) pvParameters ) == mainQUEUE_RECEIVE_PARAMETER ); -BFD0809C 0020FC7E LW V1, 32(S8) -BFD080A0 ED22 LI V0, 34 -BFD080A2 000D9443 BEQ V1, V0, 0xBFD080C0 -BFD080A4 0C00000D SLL ZERO, T5, 1 -BFD080A6 0C00 NOP -BFD080A8 BFD141A2 LUI V0, 0xBFD1 -BFD080AA 3082BFD1 LDC1 F30, 12418(S1) -BFD080AC 9EF43082 ADDIU A0, V0, -24844 -BFD080AE 30A09EF4 LWC1 F23, 12448(S4) -BFD080B0 011730A0 ADDIU A1, ZERO, 279 -BFD080B4 4B7E77E8 JALS vAssertCalled -BFD080B6 4B7E LW K1, 120(SP) -BFD080B8 0C00 NOP -BFD080BA CC02 B 0xBFD080C0 -BFD080BC 0C00 NOP -280: -281: for( ;; ) -282: { -283: /* Wait until something arrives in the queue - this task will block -284: indefinitely provided INCLUDE_vTaskSuspend is set to 1 in -285: FreeRTOSConfig.h. */ -286: xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY ); -BFD080C0 8070FC5C LW V0, -32656(GP) -BFD080C4 0C82 MOVE A0, V0 -BFD080C6 0010305E ADDIU V0, S8, 16 -BFD080CA 0CA2 MOVE A1, V0 -BFD080CC EF7F LI A2, -1 -BFD080CE 0CE0 MOVE A3, ZERO -BFD080D0 081E77E8 JALS xQueueGenericReceive -BFD080D2 081E LBU S0, 14(S1) -BFD080D4 0C00 NOP -287: -288: /* To get here something must have been received from the queue, but -289: is it the expected value? If it is, toggle the LED. */ -290: if( ulReceivedValue == 100UL ) -BFD080D6 0010FC7E LW V1, 16(S8) -BFD080DA ED64 LI V0, 100 -BFD080DC FFEFB443 BNE V1, V0, 0xBFD080BE -BFD080DE 0C00FFEF LW RA, 3072(T7) -BFD080E0 0C00 NOP -291: { -292: prvToggleLED( mainTASKS_LED ); -BFD080E2 0C80 MOVE A0, ZERO -BFD080E4 4C3C77E8 JALS prvToggleLED -BFD080E6 4C3C ADDIU AT, AT, -2 -BFD080E8 0C00 NOP -293: ulReceivedValue = 0U; -BFD080EA 0010F81E SW ZERO, 16(S8) -294: } -295: } -BFD080BE 0C00 NOP -BFD080EE CFE8 B 0xBFD080C0 -BFD080F0 0C00 NOP -296: } -297: /*-----------------------------------------------------------*/ -298: -299: static void prvBlinkyTimerCallback( TimerHandle_t xTimer ) -300: { -BFD09DAC 4FF5 ADDIU SP, SP, -24 -BFD09DAE CBE5 SW RA, 20(SP) -BFD09DB0 CBC4 SW S8, 16(SP) -BFD09DB2 0FDD MOVE S8, SP -BFD09DB4 0018F89E SW A0, 24(S8) -301: /* Avoid compiler warnings. */ -302: ( void ) xTimer; -303: -304: /* This function is called when the blinky software time expires. All the -305: function does is toggle the LED. LED mainTIMER_LED should therefore toggle -306: with the period set by mainBLINKY_TIMER_PERIOD. */ -307: prvToggleLED( mainTIMER_LED ); -BFD09DB8 EE01 LI A0, 1 -BFD09DBA 4C3C77E8 JALS prvToggleLED -BFD09DBC 4C3C ADDIU AT, AT, -2 -BFD09DBE 0C00 NOP -308: } -BFD09DC0 0FBE MOVE SP, S8 -BFD09DC2 4BE5 LW RA, 20(SP) -BFD09DC4 4BC4 LW S8, 16(SP) -BFD09DC6 4C0D ADDIU SP, SP, 24 -BFD09DC8 459F JR16 RA -BFD09DCA 0C00 NOP -309: /*-----------------------------------------------------------*/ -310: -311: static void prvToggleLED( uint8_t ucLED ) -312: { -BFD09878 4FF5 ADDIU SP, SP, -24 -BFD0987A CBE5 SW RA, 20(SP) -BFD0987C CBC4 SW S8, 16(SP) -BFD0987E 0FDD MOVE S8, SP -BFD09880 0C44 MOVE V0, A0 -BFD09882 0018185E SB V0, 24(S8) -313: taskENTER_CRITICAL(); -BFD09886 33B877E8 JALS vTaskEnterCritical -BFD09888 0C0033B8 ADDIU SP, T8, 3072 -BFD0988A 0C00 NOP -314: { -315: led_out_toggle( ucLED ); -BFD0988C 0018145E LBU V0, 24(S8) -BFD09890 0C82 MOVE A0, V0 -BFD09892 42D477E8 JALS led_out_toggle -BFD09896 0C00 NOP -316: } -317: taskEXIT_CRITICAL(); -BFD09898 40AA77E8 JALS vTaskExitCritical -BFD0989A 0C0040AA BNEZC T2, 0xBFD0B09E -BFD0989C 0C00 NOP -318: } -BFD0989E 0FBE MOVE SP, S8 -BFD098A0 4BE5 LW RA, 20(SP) -BFD098A2 4BC4 LW S8, 16(SP) -BFD098A4 4C0D ADDIU SP, SP, 24 -BFD098A6 459F JR16 RA -BFD098A8 0C00 NOP -319: /*-----------------------------------------------------------*/ -320: -321: static void prvSetupHardware( void ) -322: { -BFD05890 4FF1 ADDIU SP, SP, -32 -BFD05892 CBE7 SW RA, 28(SP) -BFD05894 CBC6 SW S8, 24(SP) -BFD05896 0FDD MOVE S8, SP -323: volatile uint32_t ulTemp; -324: -325: /* Interrupts are automatically re-enabled when the scheduler is started. */ -326: __asm volatile( "di" ); -BFD05898 477C0000 DI ZERO -327: -328: /* Enable M14K Vector Pre-fetch: CP0.IntCtl b[22]=1 -329: IRET (interrupt chaining): b[21]=1 -330: Enable Auto-Prolog: b[14]=1 */ -331: ulTemp = _CP0_GET_INTCTL(); -BFD0589C 08FC004C MFC0 V0, IntCtl -BFD0589E 08FC LBU S1, 12(A3) -BFD058A0 0010F85E SW V0, 16(S8) -332: ulTemp |= ( 1ul << 22 ) + ( 1ul << 21 ) + ( 1ul << 14 ); -BFD058A4 0010FC7E LW V1, 16(S8) -BFD058A8 006041A2 LUI V0, 0x60 -BFD058AC 40005042 ORI V0, V0, 16384 -BFD058AE 44D34000 BLTZ ZERO, 0xBFD0E258 -BFD058B0 44D3 OR16 V0, V1 -BFD058B2 0010F85E SW V0, 16(S8) -333: _CP0_SET_INTCTL( ulTemp ); -BFD058B6 0010FC5E LW V0, 16(S8) -BFD058B8 004C0010 INS ZERO, S0, 1, 0 -BFD058BA 0AFC004C MTC0 V0, IntCtl -BFD058BC 0AFC LBU A1, 12(A3) -BFD058BE 18000000 SLL ZERO, ZERO, 3 -BFD058C0 41A21800 SB ZERO, 16802(ZERO) -334: -335: /* Configure 32KHz for Switched Clock Source always ON -336: b[ 0 ] = XOSEL = 1 -337: b[ 1 ] = EXT_32K_OSC_EN = 1 -338: b[ 2 ] = INT_32K_OSC_EN = 1 -339: b[ 3 ] = INT_32K_VTR_PWR_WELL_EMUL = 0 -340: b[ 4 ] = 32K_SWITCHER_CTRL = 0 */ -341: VBAT_REGS->CLOCK_ENABLE = 0x07; -BFD058C2 A00041A2 LUI V0, 0xA000 -BFD058C6 A4005042 ORI V0, V0, -23552 -BFD058CA ED87 LI V1, 7 -BFD058CC E9A2 SW V1, 8(V0) -342: -343: ulTemp = 256; -BFD058CE 01003040 ADDIU V0, ZERO, 256 -344: while (ulTemp--) -BFD058D2 CC06 B 0xBFD058E0 -BFD058D4 0010F85E SW V0, 16(S8) -BFD058D6 0C000010 SLL ZERO, S0, 1 -BFD058E0 0010FC5E LW V0, 16(S8) -BFD058E2 00400010 SRL ZERO, S0, 0 -BFD058E4 1B900040 SLTU V1, ZERO, V0 -BFD058E6 2DBD1B90 SB GP, 11709(S0) -BFD058E8 2DBD ANDI V1, V1, 0xFF -BFD058EA 6D2E ADDIU V0, V0, -1 -BFD058EC 0010F85E SW V0, 16(S8) -BFD058F0 FFF240A3 BNEZC V1, 0xBFD058D8 -BFD058F2 41A2FFF2 LW RA, 16802(S2) -345: { -346: __asm volatile( "NOP" ); -BFD058D8 0C00 NOP -347: __asm volatile( "NOP" ); -BFD058DA 0C00 NOP -348: __asm volatile( "NOP" ); -BFD058DC 0C00 NOP -349: __asm volatile( "NOP" ); -BFD058DE 0C00 NOP -350: } -351: -352: /* Disaggregate GIRQ23 & GIRQ24 for FreeRTOS. Second parameter is a bit-map -353: for each GIRQ where -354: 0 = Aggregated, 1 = Dis-aggregate -355: Bit position = GIRQ_Number - 8 -356: Example: GIRQ23 ( 23 - 8 ) = 15 -357: Dis-aggregate GIRQ23 & GIRQ24 -358: The symbols JTVIC_DISAGR_BITMAP is generated in header file mec14xx_girqm.h -359: -360: Each disaggregated interrupt handler is spaced 8-bytes apart starting at -361: base address for that GIRQ. */ -362: jtvic_init( dflt_ih_table, ( JTVIC_DISAGR_BITMAP ), ( JTVIC_FLAG_DISAGR_SPACING_8 ) ); -BFD058F4 BFD041A2 LUI V0, 0xBFD0 -BFD058F6 3082BFD0 LDC1 F30, 12418(S0) -BFD058F8 26F03082 ADDIU A0, V0, 9968 -BFD058FA 26F0 SLL A1, A3, 8 -BFD058FC 000141A2 LUI V0, 0x1 -BFD05900 800050A2 ORI A1, V0, -32768 -BFD05904 1B2277E8 JALS jtvic_init -BFD05906 0CC01B22 SB T9, 3264(V0) -BFD05908 0CC0 MOVE A2, ZERO -363: -364: /* Initialise the LEDs. */ -365: for( ulTemp = 0; ulTemp < LED_ID_MAX; ulTemp++ ) -BFD0590A CC1A B 0xBFD05940 -BFD0590C 0010F81E SW ZERO, 16(S8) -BFD05936 0010FC5E LW V0, 16(S8) -BFD0593A 6D20 ADDIU V0, V0, 1 -BFD0593C 0010F85E SW V0, 16(S8) -BFD05940 0010FC5E LW V0, 16(S8) -BFD05944 0003B042 SLTIU V0, V0, 3 -BFD05948 FFE240A2 BNEZC V0, 0xBFD05910 -BFD0594A 0FBEFFE2 LW RA, 4030(V0) -366: { -367: led_sleep_en( ulTemp, ADISABLE ); -BFD05910 0010FC5E LW V0, 16(S8) -BFD05914 2D2D ANDI V0, V0, 0xFF -BFD05916 0C82 MOVE A0, V0 -BFD05918 2E8677E8 JALS led_sleep_en -BFD0591A 2E86 ANDI A1, S0, 0x8 -BFD0591C 0CA0 MOVE A1, ZERO -368: led_init( ulTemp ); -BFD0591E 0010FC5E LW V0, 16(S8) -BFD05922 2D2D ANDI V0, V0, 0xFF -BFD05924 3E7E77E8 JALS led_init -BFD05926 0C823E7E LH S3, 3202(S8) -BFD05928 0C82 MOVE A0, V0 -369: led_out_low( ulTemp ); -BFD0592A 0010FC5E LW V0, 16(S8) -BFD0592E 2D2D ANDI V0, V0, 0xFF -BFD05930 4A3077E8 JALS led_out_low -BFD05932 4A30 LW S1, 64(SP) -BFD05934 0C82 MOVE A0, V0 -370: } -371: } -BFD0594C 0FBE MOVE SP, S8 -BFD0594E 4BE7 LW RA, 28(SP) -BFD05950 4BC6 LW S8, 24(SP) -BFD05952 459F JR16 RA -BFD05954 4C11 ADDIU SP, SP, 32 -372: /*-----------------------------------------------------------*/ -373: -374: void vApplicationMallocFailedHook( void ) -375: { -BFD08900 4FF1 ADDIU SP, SP, -32 -BFD08902 CBE7 SW RA, 28(SP) -BFD08904 CBC6 SW S8, 24(SP) -BFD08906 0FDD MOVE S8, SP -376: /* vApplicationMallocFailedHook() will only be called if -377: configUSE_MALLOC_FAILED_HOOK is set to 1 in FreeRTOSConfig.h. It is a hook -378: function that will get called if a call to pvPortMalloc() fails. -379: pvPortMalloc() is called internally by the kernel whenever a task, queue, -380: timer or semaphore is created. It is also called by various parts of the -381: demo application. If heap_1.c or heap_2.c are used, then the size of the -382: heap available to pvPortMalloc() is defined by configTOTAL_HEAP_SIZE in -383: FreeRTOSConfig.h, and the xPortGetFreeHeapSize() API function can be used -384: to query the size of free heap space that remains (although it does not -385: provide information on how the remaining heap might be fragmented). */ -386: taskDISABLE_INTERRUPTS(); -BFD08908 4EB677E8 JALS ulPortGetCP0Status -BFD0890A 4EB6 ADDIU S5, S5, -5 -BFD0890C 0C00 NOP -BFD0890E 0010F85E SW V0, 16(S8) -BFD08912 0010FC7E LW V1, 16(S8) -BFD08916 000141A2 LUI V0, 0x1 -BFD0891A FC005042 ORI V0, V0, -1024 -BFD0891C 4493FC00 LW ZERO, 17555(ZERO) -BFD0891E 4493 AND16 V0, V1 -BFD08920 50400042 SRL V0, V0, 10 -BFD08922 B0425040 ORI V0, ZERO, -20414 -BFD08924 0003B042 SLTIU V0, V0, 3 -BFD08928 001140E2 BEQZC V0, 0xBFD0894E -BFD0892C 0010FC7E LW V1, 16(S8) -BFD08930 FFFE41A2 LUI V0, 0xFFFE -BFD08932 5042FFFE LW RA, 20546(S8) -BFD08934 03FF5042 ORI V0, V0, 1023 -BFD08938 4493 AND16 V0, V1 -BFD0893A 0010F85E SW V0, 16(S8) -BFD0893E 0010FC5E LW V0, 16(S8) -BFD08942 0C005042 ORI V0, V0, 3072 -BFD08944 0C00 NOP -BFD08946 0C82 MOVE A0, V0 -BFD08948 4EC677E8 JALS vPortSetCP0Status -BFD0894A 4EC6 ADDIU S6, S6, 3 -BFD0894C 0C00 NOP -387: for( ;; ); -BFD0894E CFFF B 0xBFD0894E -BFD08950 0C00 NOP -388: } -389: /*-----------------------------------------------------------*/ -390: -391: void vApplicationIdleHook( void ) -392: { -BFD09F04 4FB0 ADDIU SP, SP, -8 -BFD09F06 CBC1 SW S8, 4(SP) -BFD09F08 0FDD MOVE S8, SP -393: /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set -394: to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle -395: task. It is essential that code added to this hook function never attempts -396: to block in any way (for example, call xQueueReceive() with a block time -397: specified, or call vTaskDelay()). If the application makes use of the -398: vTaskDelete() API function (as this demo application does) then it is also -399: important that vApplicationIdleHook() is permitted to return to its calling -400: function, because it is the responsibility of the idle task to clean up -401: memory allocated by the kernel to any task that has since been deleted. */ -402: } -BFD09F0A 0FBE MOVE SP, S8 -BFD09F0C 4BC1 LW S8, 4(SP) -BFD09F0E 4C05 ADDIU SP, SP, 8 -BFD09F10 459F JR16 RA -BFD09F12 0C00 NOP -403: /*-----------------------------------------------------------*/ -404: -405: void vApplicationStackOverflowHook( TaskHandle_t pxTask, char *pcTaskName ) -406: { -BFD08444 4FF1 ADDIU SP, SP, -32 -BFD08446 CBE7 SW RA, 28(SP) -BFD08448 CBC6 SW S8, 24(SP) -BFD0844A 0FDD MOVE S8, SP -BFD0844C 0020F89E SW A0, 32(S8) -BFD08450 0024F8BE SW A1, 36(S8) -407: ( void ) pcTaskName; -408: ( void ) pxTask; -409: -410: /* Run time task stack overflow checking is performed if -411: configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2. This hook function is -412: called if a task stack overflow is detected. Note the system/interrupt -413: stack is not checked. */ -414: taskDISABLE_INTERRUPTS(); -BFD08454 4EB677E8 JALS ulPortGetCP0Status -BFD08456 4EB6 ADDIU S5, S5, -5 -BFD08458 0C00 NOP -BFD0845A 0010F85E SW V0, 16(S8) -BFD0845E 0010FC7E LW V1, 16(S8) -BFD08462 000141A2 LUI V0, 0x1 -BFD08466 FC005042 ORI V0, V0, -1024 -BFD08468 4493FC00 LW ZERO, 17555(ZERO) -BFD0846A 4493 AND16 V0, V1 -BFD0846C 50400042 SRL V0, V0, 10 -BFD0846E B0425040 ORI V0, ZERO, -20414 -BFD08470 0003B042 SLTIU V0, V0, 3 -BFD08474 001140E2 BEQZC V0, 0xBFD0849A -BFD08478 0010FC7E LW V1, 16(S8) -BFD0847C FFFE41A2 LUI V0, 0xFFFE -BFD0847E 5042FFFE LW RA, 20546(S8) -BFD08480 03FF5042 ORI V0, V0, 1023 -BFD08484 4493 AND16 V0, V1 -BFD08486 0010F85E SW V0, 16(S8) -BFD0848A 0010FC5E LW V0, 16(S8) -BFD0848E 0C005042 ORI V0, V0, 3072 -BFD08490 0C00 NOP -BFD08492 0C82 MOVE A0, V0 -BFD08494 4EC677E8 JALS vPortSetCP0Status -BFD08496 4EC6 ADDIU S6, S6, 3 -BFD08498 0C00 NOP -415: for( ;; ); -BFD0849A CFFF B 0xBFD0849A -BFD0849C 0C00 NOP -416: } -417: /*-----------------------------------------------------------*/ -418: -419: void vApplicationTickHook( void ) -420: { -BFD09F14 4FB0 ADDIU SP, SP, -8 -BFD09F16 CBC1 SW S8, 4(SP) -BFD09F18 0FDD MOVE S8, SP -421: /* This function will be called by each tick interrupt if -422: configUSE_TICK_HOOK is set to 1 in FreeRTOSConfig.h. User code can be -423: added here, but the tick hook is called from an interrupt context, so -424: code must not attempt to block, and only the interrupt safe FreeRTOS API -425: functions can be used (those that end in FromISR()). */ -426: } -BFD09F1A 0FBE MOVE SP, S8 -BFD09F1C 4BC1 LW S8, 4(SP) -BFD09F1E 4C05 ADDIU SP, SP, 8 -BFD09F20 459F JR16 RA -BFD09F22 0C00 NOP -427: /*-----------------------------------------------------------*/ -428: -429: void vAssertCalled( const char * pcFile, unsigned long ulLine ) -430: { -BFD096FC 4FF9 ADDIU SP, SP, -16 -BFD096FE CBC3 SW S8, 12(SP) -BFD09700 0FDD MOVE S8, SP -BFD09702 0010F89E SW A0, 16(S8) -BFD09706 0014F8BE SW A1, 20(S8) -431: volatile char *pcFileName; -432: volatile unsigned long ulLineNumber; -433: -434: /* Prevent things that are useful to view in the debugger from being -435: optimised away. */ -436: pcFileName = ( char * ) pcFile; -BFD0970A 0010FC5E LW V0, 16(S8) -BFD0970E 0000F85E SW V0, 0(S8) -437: ( void ) pcFileName; -438: ulLineNumber = ulLine; -BFD09712 0014FC5E LW V0, 20(S8) -BFD09716 0004F85E SW V0, 4(S8) -439: -440: /* Set ulLineNumber to 0 in the debugger to break out of this loop and -441: return to the line that triggered the assert. */ -442: while( ulLineNumber != 0 ) -BFD0971A CC06 B 0xBFD09728 -BFD0971C 0C00 NOP -BFD09728 0004FC5E LW V0, 4(S8) -BFD0972C FFF740A2 BNEZC V0, 0xBFD0971E -BFD0972E 0FBEFFF7 LW RA, 4030(S7) -443: { -444: __asm volatile( "NOP" ); -BFD0971E 0C00 NOP -445: __asm volatile( "NOP" ); -BFD09720 0C00 NOP -446: __asm volatile( "NOP" ); -BFD09722 0C00 NOP -447: __asm volatile( "NOP" ); -BFD09724 0C00 NOP -448: __asm volatile( "NOP" ); -BFD09726 0C00 NOP -449: } -450: } -BFD09730 0FBE MOVE SP, S8 -BFD09732 4BC3 LW S8, 12(SP) -BFD09734 459F JR16 RA -BFD09736 4C09 ADDIU SP, SP, 16 -451: ---- C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Source/portable/MPLAB/PIC32MEC14xx/port_asm.S -------------- - 1: /* - 2: FreeRTOS V8.2.1 - Copyright (C) 2015 Real Time Engineers Ltd. - 3: All rights reserved - 4: - 5: VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION. - 6: - 7: This file is part of the FreeRTOS distribution. - 8: - 9: FreeRTOS is free software; you can redistribute it and/or modify it under - 10: the terms of the GNU General Public License (version 2) as published by the - 11: Free Software Foundation >>>> AND MODIFIED BY <<<< the FreeRTOS exception. - 12: - 13: *************************************************************************** - 14: >>! NOTE: The modification to the GPL is included to allow you to !<< - 15: >>! distribute a combined work that includes FreeRTOS without being !<< - 16: >>! obliged to provide the source code for proprietary components !<< - 17: >>! outside of the FreeRTOS kernel. !<< - 18: *************************************************************************** - 19: - 20: FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY - 21: WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS - 22: FOR A PARTICULAR PURPOSE. Full license text is available on the following - 23: link: http://www.freertos.org/a00114.html - 24: - 25: *************************************************************************** - 26: * * - 27: * FreeRTOS provides completely free yet professionally developed, * - 28: * robust, strictly quality controlled, supported, and cross * - 29: * platform software that is more than just the market leader, it * - 30: * is the industry's de facto standard. * - 31: * * - 32: * Help yourself get started quickly while simultaneously helping * - 33: * to support the FreeRTOS project by purchasing a FreeRTOS * - 34: * tutorial book, reference manual, or both: * - 35: * http://www.FreeRTOS.org/Documentation * - 36: * * - 37: *************************************************************************** - 38: - 39: http://www.FreeRTOS.org/FAQHelp.html - Having a problem? Start by reading - 40: the FAQ page "My application does not run, what could be wrong?". Have you - 41: defined configASSERT()? - 42: - 43: http://www.FreeRTOS.org/support - In return for receiving this top quality - 44: embedded software for free we request you assist our global community by - 45: participating in the support forum. - 46: - 47: http://www.FreeRTOS.org/training - Investing in training allows your team to - 48: be as productive as possible as early as possible. Now you can receive - 49: FreeRTOS training directly from Richard Barry, CEO of Real Time Engineers - 50: Ltd, and the world's leading authority on the world's leading RTOS. - 51: - 52: http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products, - 53: including FreeRTOS+Trace - an indispensable productivity tool, a DOS - 54: compatible FAT file system, and our tiny thread aware UDP/IP stack. - 55: - 56: http://www.FreeRTOS.org/labs - Where new FreeRTOS products go to incubate. - 57: Come and try FreeRTOS+TCP, our new open source TCP/IP stack for FreeRTOS. - 58: - 59: http://www.OpenRTOS.com - Real Time Engineers ltd. license FreeRTOS to High - 60: Integrity Systems ltd. to sell under the OpenRTOS brand. Low cost OpenRTOS - 61: licenses offer ticketed support, indemnification and commercial middleware. - 62: - 63: http://www.SafeRTOS.com - High Integrity Systems also provide a safety - 64: engineered and independently SIL3 certified version for use in safety and - 65: mission critical applications that require provable dependability. - 66: - 67: 1 tab == 4 spaces! - 68: */ - 69: - 70: #include - 71: #include - 72: #include "FreeRTOSConfig.h" - 73: #include "ISR_Support.h" - 74: - 75: - 76: .extern pxCurrentTCB - 77: .extern vTaskSwitchContext - 78: .extern vPortIncrementTick - 79: .extern xISRStackTop - 80: - 81: PORT_CPP_JTVIC_BASE = 0xBFFFC000 - 82: PORT_CCP_JTVIC_GIRQ24_SRC = 0xBFFFC100 - 83: - 84: .global vPortStartFirstTask .text - 85: .global vPortYieldISR .text - 86: .global vPortTickInterruptHandler .text - 87: - 88: - 89: /******************************************************************/ - 90: - 91: - 92: /*************************************************************** - 93: * The following is needed to locate the - 94: * vPortTickInterruptHandler function into the correct vector - 95: * MEC14xx - This ISR will only be used if HW timers' interrupts - 96: * in GIRQ23 are disaggregated. - 97: * - 98: ***************************************************************/ - 99: - 100: .set noreorder - 101: .set noat - 102: .set micromips - 103: - 104: .section .text, code - 105: .ent vPortTickInterruptHandler - 106: - 107: #if configTIMERS_DISAGGREGATED_ISRS == 0 - 108: - 109: .globl girq23_isr - 110: - 111: girq23_isr: - 112: vPortTickInterruptHandler: - 113: - 114: portSAVE_CONTEXT2 vpti - 115: - 116: jal girq23_handler - 117: nop - 118: - 119: portRESTORE_CONTEXT - 120: - 121: .end vPortTickInterruptHandler - 122: - 123: #else - 124: - 125: .globl girq23_b4 - 126: - 127: girq23_b4: - 128: vPortTickInterruptHandler: - 129: - 130: /* portSAVE_CONTEXT */ -BFD00920 00FC034D MFC0 K0, Cause 131: portSAVE_CONTEXT2 vpti - 132: -BFD009F0 34DCF7E8 JAL 0xBFD069B8 133: jal vPortIncrementTick -BFD009F4 00000000 NOP 134: nop - 135: -BFD009F8 BFD241B6 LUI S6, 0xBFD2 136: portRESTORE_CONTEXT - 137: - 138: .end vPortTickInterruptHandler - 139: - 140: #endif /* #if configTIMERS_DISAGGREGATED_ISRS == 0 */ - 141: - 142: /******************************************************************/ - 143: - 144: .set micromips - 145: .set noreorder - 146: .set noat - 147: - 148: .section .text, code - 149: .ent vPortStartFirstTask - 150: - 151: vPortStartFirstTask: - 152: - 153: /* Simply restore the context of the highest priority task that has - 154: been created so far. */ -BFD00AB4 BFD241B6 LUI S6, 0xBFD2 155: portRESTORE_CONTEXT - 156: - 157: .end vPortStartFirstTask - 158: - 159: - 160: - 161: /*******************************************************************/ - 162: - 163: /*************************************************************** - 164: * The following is needed to locate the vPortYieldISR function - 165: * into the correct vector - 166: ***************************************************************/ - 167: - 168: .set micromips - 169: .set noreorder - 170: .set noat - 171: - 172: .section .text, code - 173: - 174: .global vPortYieldISR - 175: - 176: - 177: #if configCPU_DISAGGREGATED_ISRS == 0 - 178: .global girq24_isr - 179: .ent girq24_isr - 180: girq24_isr: - 181: la k0, PORT_CPP_JTVIC_BASE - 182: lw k0, 0x10C(k0) - 183: andi k1, k0, 0x2 - 184: bgtz k1, vPortYieldISR - 185: nop - 186: - 187: portSAVE_CONTEXT - 188: - 189: jal girq24_b_0_2 - 190: - 191: portRESTORE_CONTEXT - 192: - 193: .end girq24_isr - 194: - 195: #else - 196: .global girq24_b1 - 197: girq24_b1: - 198: #endif - 199: .ent vPortYieldISR - 200: vPortYieldISR: - 201: - 202: /* Make room for the context. First save the current status so it can be - 203: manipulated, and the cause and EPC registers so thier original values - 204: are captured. */ -BFD00B70 4FBF ADDIU SP, SP, -132 205: addiu sp, sp, -portCONTEXT_SIZE -BFD00B72 00FC036C MFC0 K1, Status 206: mfc0 k1, _CP0_STATUS - 207: - 208: /* Also save s6 and s5 so they can be used. Any nesting interrupts should - 209: maintain the values of these registers across the ISR. */ -BFD00B76 CACB SW S6, 44(SP) 210: sw s6, 44(sp) -BFD00B78 CAAA SW S5, 40(SP) 211: sw s5, 40(sp) -BFD00B7A 0080FB7D SW K1, 128(SP) 212: sw k1, portSTATUS_STACK_LOCATION(sp) - 213: - 214: /* Prepare to re-enabled interrupts above the kernel priority. */ -BFD00B7E 828C0360 INS K1, ZERO, 10, 7 215: ins k1, zero, 10, 7 /* Clear IPL bits 0:6. */ -BFD00B82 948C0360 INS K1, ZERO, 18, 1 216: ins k1, zero, 18, 1 /* Clear IPL bit 7 */ -BFD00B86 0C00537B ORI K1, K1, 3072 217: ori k1, k1, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 ) -BFD00B8A 204C0360 INS K1, ZERO, 1, 4 218: ins k1, zero, 1, 4 /* Clear EXL, ERL and UM. */ - 219: - 220: /* s5 is used as the frame pointer. */ -BFD00B8E A91003A0 ADD S5, ZERO, SP 221: add s5, zero, sp - 222: - 223: /* Swap to the system stack. This is not conditional on the nesting - 224: count as this interrupt is always the lowest priority and therefore - 225: the nesting is always 0. */ -BFD00B92 BFD141BD LUI SP, 0xBFD1 226: la sp, xISRStackTop -BFD00B9A 4BA0 LW SP, 0(SP) 227: lw sp, (sp) - 228: - 229: /* Set the nesting count. */ -BFD00B9C BFD241BA LUI K0, 0xBFD2 230: la k0, uxInterruptNesting -BFD00BA4 000132C0 ADDIU S6, ZERO, 1 231: addiu s6, zero, 1 -BFD00BA8 0000FADA SW S6, 0(K0) 232: sw s6, 0(k0) - 233: - 234: /* s6 holds the EPC value, this is saved with the rest of the context - 235: after interrupts are enabled. */ -BFD00BAC 00FC02CE MFC0 S6, EPC 236: mfc0 s6, _CP0_EPC - 237: - 238: /* Re-enable interrupts above configMAX_SYSCALL_INTERRUPT_PRIORITY. */ -BFD00BB0 02FC036C MTC0 K1, Status 239: mtc0 k1, _CP0_STATUS - 240: - 241: /* Save the context into the space just created. s6 is saved again - 242: here as it now contains the EPC value. */ -BFD00BB4 0078FBF5 SW RA, 120(S5) 243: sw ra, 120(s5) -BFD00BB8 0074FBD5 SW S8, 116(S5) 244: sw s8, 116(s5) -BFD00BBC 0070FB35 SW T9, 112(S5) 245: sw t9, 112(s5) -BFD00BC0 006CFB15 SW T8, 108(S5) 246: sw t8, 108(s5) -BFD00BC4 0068F9F5 SW T7, 104(S5) 247: sw t7, 104(s5) -BFD00BC8 0064F9D5 SW T6, 100(S5) 248: sw t6, 100(s5) -BFD00BCC 0060F9B5 SW T5, 96(S5) 249: sw t5, 96(s5) -BFD00BD0 005CF995 SW T4, 92(S5) 250: sw t4, 92(s5) -BFD00BD4 0058F975 SW T3, 88(S5) 251: sw t3, 88(s5) -BFD00BD8 0054F955 SW T2, 84(S5) 252: sw t2, 84(s5) -BFD00BDC 0050F935 SW T1, 80(S5) 253: sw t1, 80(s5) -BFD00BE0 004CF915 SW T0, 76(S5) 254: sw t0, 76(s5) -BFD00BE4 0048F8F5 SW A3, 72(S5) 255: sw a3, 72(s5) -BFD00BE8 0044F8D5 SW A2, 68(S5) 256: sw a2, 68(s5) -BFD00BEC 0040F8B5 SW A1, 64(S5) 257: sw a1, 64(s5) -BFD00BF0 003CF895 SW A0, 60(S5) 258: sw a0, 60(s5) -BFD00BF4 0038F875 SW V1, 56(S5) 259: sw v1, 56(s5) -BFD00BF8 0034F855 SW V0, 52(S5) 260: sw v0, 52(s5) -BFD00BFC 0030FAF5 SW S7, 48(S5) 261: sw s7, 48(s5) -BFD00C00 007CFAD5 SW S6, 124(S5) 262: sw s6, portEPC_STACK_LOCATION(s5) - 263: /* s5 and s6 has already been saved. */ -BFD00C04 0024FA95 SW S4, 36(S5) 264: sw s4, 36(s5) -BFD00C08 0020FA75 SW S3, 32(S5) 265: sw s3, 32(s5) -BFD00C0C 001CFA55 SW S2, 28(S5) 266: sw s2, 28(s5) -BFD00C10 0018FA35 SW S1, 24(S5) 267: sw s1, 24(s5) -BFD00C14 0014FA15 SW S0, 20(S5) 268: sw s0, 20(s5) -BFD00C18 0010F835 SW AT, 16(S5) 269: sw $1, 16(s5) - 270: - 271: /* s7 is used as a scratch register as this should always be saved acro ss - 272: nesting interrupts. */ -BFD00C1C 4617 MFHI S7 273: mfhi s7 -BFD00C1E 000CFAF5 SW S7, 12(S5) 274: sw s7, 12(s5) -BFD00C22 4657 MFLO S7 275: mflo s7 -BFD00C24 0008FAF5 SW S7, 8(S5) 276: sw s7, 8(s5) - 277: - 278: /* Save the stack pointer to the task. */ -BFD00C28 BFD241B7 LUI S7, 0xBFD2 279: la s7, pxCurrentTCB -BFD00C30 0000FEF7 LW S7, 0(S7) 280: lw s7, (s7) -BFD00C34 0000FAB7 SW S5, 0(S7) 281: sw s5, (s7) - 282: - 283: /* Set the interrupt mask to the max priority that can use the API. - 284: The yield handler will only be called at configKERNEL_INTERRUPT_PRIORITY - 285: which is below configMAX_SYSCALL_INTERRUPT_PRIORITY - so this can only - 286: ever raise the IPL value and never lower it. */ -BFD00C38 477C0000 DI ZERO 287: di -BFD00C3C 18000000 SLL ZERO, ZERO, 3 288: ehb -BFD00C40 00FC02EC MFC0 S7, Status 289: mfc0 s7, _CP0_STATUS -BFD00C44 828C02E0 INS S7, ZERO, 10, 7 290: ins s7, zero, 10, 7 -BFD00C48 948C02E0 INS S7, ZERO, 18, 1 291: ins s7, zero, 18, 1 -BFD00C4C 0C0152D7 ORI S6, S7, 3073 292: ori s6, s7, ( configMAX_SYSCALL_INTERRUPT_PRIORITY << 10 ) | 1 - 293: - 294: /* This mtc0 re-enables interrupts, but only above - 295: configMAX_SYSCALL_INTERRUPT_PRIORITY. */ -BFD00C50 02FC02CC MTC0 S6, Status 296: mtc0 s6, _CP0_STATUS -BFD00C54 18000000 SLL ZERO, ZERO, 3 297: ehb - 298: - 299: /* Clear the software interrupt in the core. */ -BFD00C58 00FC02CD MFC0 S6, Cause 300: mfc0 s6, _CP0_CAUSE -BFD00C5C 420C02C0 INS S6, ZERO, 8, 1 301: ins s6, zero, 8, 1 -BFD00C60 02FC02CD MTC0 S6, Cause 302: mtc0 s6, _CP0_CAUSE -BFD00C64 18000000 SLL ZERO, ZERO, 3 303: ehb - 304: - 305: /* Clear the interrupt in the interrupt controller. - 306: MEC14xx GIRQ24 Source bit[1] = 1 to clear */ -BFD00C68 BFFF41B6 LUI S6, 0xBFFF 307: la s6, PORT_CCP_JTVIC_GIRQ24_SRC -BFD00C70 00023280 ADDIU S4, ZERO, 2 308: addiu s4, zero, 2 -BFD00C74 0000FA96 SW S4, 0(S6) 309: sw s4, (s6) -BFD00C78 16DEF7E8 JAL 0xBFD02DBC 310: jal vTaskSwitchContext -BFD00C7C 00000000 NOP 311: nop - 312: - 313: /* Clear the interrupt mask again. The saved status value is still in s7 */ -BFD00C80 02FC02EC MTC0 S7, Status 314: mtc0 s7, _CP0_STATUS -BFD00C84 18000000 SLL ZERO, ZERO, 3 315: ehb - 316: - 317: /* Restore the stack pointer from the TCB. */ -BFD00C88 BFD241B0 LUI S0, 0xBFD2 318: la s0, pxCurrentTCB -BFD00C90 6800 LW S0, 0(S0) 319: lw s0, (s0) -BFD00C92 0000FEB0 LW S5, 0(S0) 320: lw s5, (s0) - 321: - 322: /* Restore the rest of the context. */ -BFD00C96 0008FE15 LW S0, 8(S5) 323: lw s0, 8(s5) -BFD00C9A 3D7C0010 MTLO S0 324: mtlo s0 -BFD00C9E 000CFE15 LW S0, 12(S5) 325: lw s0, 12(s5) -BFD00CA2 2D7C0010 MTHI S0 326: mthi s0 - 327: -BFD00CA6 0010FC35 LW AT, 16(S5) 328: lw $1, 16(s5) -BFD00CAA 0014FE15 LW S0, 20(S5) 329: lw s0, 20(s5) -BFD00CAE 0018FE35 LW S1, 24(S5) 330: lw s1, 24(s5) -BFD00CB2 001CFE55 LW S2, 28(S5) 331: lw s2, 28(s5) -BFD00CB6 0020FE75 LW S3, 32(S5) 332: lw s3, 32(s5) -BFD00CBA 0024FE95 LW S4, 36(S5) 333: lw s4, 36(s5) - 334: - 335: /* s5 is loaded later. */ -BFD00CBE 002CFED5 LW S6, 44(S5) 336: lw s6, 44(s5) -BFD00CC2 0030FEF5 LW S7, 48(S5) 337: lw s7, 48(s5) -BFD00CC6 0034FC55 LW V0, 52(S5) 338: lw v0, 52(s5) -BFD00CCA 0038FC75 LW V1, 56(S5) 339: lw v1, 56(s5) -BFD00CCE 003CFC95 LW A0, 60(S5) 340: lw a0, 60(s5) -BFD00CD2 0040FCB5 LW A1, 64(S5) 341: lw a1, 64(s5) -BFD00CD6 0044FCD5 LW A2, 68(S5) 342: lw a2, 68(s5) -BFD00CDA 0048FCF5 LW A3, 72(S5) 343: lw a3, 72(s5) -BFD00CDE 004CFD15 LW T0, 76(S5) 344: lw t0, 76(s5) -BFD00CE2 0050FD35 LW T1, 80(S5) 345: lw t1, 80(s5) -BFD00CE6 0054FD55 LW T2, 84(S5) 346: lw t2, 84(s5) -BFD00CEA 0058FD75 LW T3, 88(S5) 347: lw t3, 88(s5) -BFD00CEE 005CFD95 LW T4, 92(S5) 348: lw t4, 92(s5) -BFD00CF2 0060FDB5 LW T5, 96(S5) 349: lw t5, 96(s5) -BFD00CF6 0064FDD5 LW T6, 100(S5) 350: lw t6, 100(s5) -BFD00CFA 0068FDF5 LW T7, 104(S5) 351: lw t7, 104(s5) -BFD00CFE 006CFF15 LW T8, 108(S5) 352: lw t8, 108(s5) -BFD00D02 0070FF35 LW T9, 112(S5) 353: lw t9, 112(s5) -BFD00D06 0074FFD5 LW S8, 116(S5) 354: lw s8, 116(s5) -BFD00D0A 0078FFF5 LW RA, 120(S5) 355: lw ra, 120(s5) - 356: - 357: /* Protect access to the k registers, and others. */ -BFD00D0E 477C0000 DI ZERO 358: di -BFD00D12 18000000 SLL ZERO, ZERO, 3 359: ehb - 360: - 361: /* Set nesting back to zero. As the lowest priority interrupt this - 362: interrupt cannot have nested. */ -BFD00D16 BFD241BA LUI K0, 0xBFD2 363: la k0, uxInterruptNesting -BFD00D1E 0000F81A SW ZERO, 0(K0) 364: sw zero, 0(k0) - 365: - 366: /* Switch back to use the real stack pointer. */ -BFD00D22 E91002A0 ADD SP, ZERO, S5 367: add sp, zero, s5 - 368: - 369: /* Restore the real s5 value. */ -BFD00D26 4AAA LW S5, 40(SP) 370: lw s5, 40(sp) - 371: - 372: /* Pop the status and epc values. */ -BFD00D28 0080FF7D LW K1, 128(SP) 373: lw k1, portSTATUS_STACK_LOCATION(sp) -BFD00D2C 4B5F LW K0, 124(SP) 374: lw k0, portEPC_STACK_LOCATION(sp) - 375: - 376: /* Remove stack frame. */ -BFD00D2E 4C43 ADDIU SP, SP, 132 377: addiu sp, sp, portCONTEXT_SIZE - 378: -BFD00D30 02FC036C MTC0 K1, Status 379: mtc0 k1, _CP0_STATUS -BFD00D34 02FC034E MTC0 K0, EPC 380: mtc0 k0, _CP0_EPC -BFD00D38 18000000 SLL ZERO, ZERO, 3 381: ehb -BFD00D3C F37C0000 ERET 382: eret -BFD00D40 0C00 NOP 383: nop - 384: - 385: .end vPortYieldISR - 386: - 387: - 388: - 389: ---- C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/startup/MPLAB/crtn.S --- - 1: /********************************************************************* - 2: * - 3: * C Runtime Startup - 4: * - 5: ********************************************************************* - 6: * Filename: crtn.s - 7: * - 8: * Processor: PIC32 - 9: * - 10: * Compiler: MPLAB XC32 - 11: * MPLAB X IDE - 12: * Company: Microchip Technology Inc. - 13: * - 14: * Software License Agreement - 15: * - 16: * This software is developed by Microchip Technology Inc. and its - 17: * subsidiaries ("Microchip"). - 18: * - 19: * Redistribution and use in source and binary forms, with or without - 20: * modification, are permitted provided that the following conditions are met: - 21: * - 22: * 1. Redistributions of source code must retain the above copyright - 23: * notice, this list of conditions and the following disclaimer. - 24: * - 25: * 2. Redistributions in binary form must reproduce the above copyright - 26: * notice, this list of conditions and the following disclaimer in the - 27: * documentation and/or other materials provided with the distribution. - 28: * - 29: * 3. Microchip's name may not be used to endorse or promote products - 30: * derived from this software without specific prior written permission. - 31: * - 32: * THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED - 33: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - 34: * MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - 35: * MICROCHIP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - 36: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO - 37: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; - 38: * OR BUSINESS INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, - 39: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - 40: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - 41: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - 42: * - 43: ********************************************************************/ - 44: - 45: #ifdef __LIBBUILD__ - 46: # Replace the standard debugging information with a simple filename. This - 47: # prevents the library build directory from showing up in MPLAB IDE. It - 48: # also effectively disables source-line debugging. - 49: .file 1 "libpic32/startup/crtn.s" - 50: .loc 1 0 - 51: #endif - 52: - 53: .section .init, code -BFD00440 8FBF0014 LW RA, 20(SP) 54: lw $31,20($sp) - 55: addu $sp,$sp,32 -BFD00444 03E00008 JR RA 56: j $31 - 57: - 58: .section .fini, code -BFD00454 8FBF0014 LW RA, 20(SP) 59: lw $31,20($sp) - 60: addu $sp,$sp,32 -BFD00458 03E00008 JR RA 61: j $31 - 62: ---- C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/startup/MPLAB/crti.S --- - 1: /********************************************************************* - 2: * - 3: * C Runtime Startup - 4: * - 5: ********************************************************************* - 6: * Filename: crti.s - 7: * - 8: * Processor: PIC32 - 9: * - 10: * Compiler: MPLAB XC32 - 11: * MPLAB X IDE - 12: * Company: Microchip Technology Inc. - 13: * - 14: * Software License Agreement - 15: * - 16: * This software is developed by Microchip Technology Inc. and its - 17: * subsidiaries ("Microchip"). - 18: * - 19: * Redistribution and use in source and binary forms, with or without - 20: * modification, are permitted provided that the following conditions are met: - 21: * - 22: * 1. Redistributions of source code must retain the above copyright - 23: * notice, this list of conditions and the following disclaimer. - 24: * - 25: * 2. Redistributions in binary form must reproduce the above copyright - 26: * notice, this list of conditions and the following disclaimer in the - 27: * documentation and/or other materials provided with the distribution. - 28: * - 29: * 3. Microchip's name may not be used to endorse or promote products - 30: * derived from this software without specific prior written permission. - 31: * - 32: * THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED - 33: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - 34: * MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - 35: * MICROCHIP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - 36: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO - 37: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; - 38: * OR BUSINESS INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, - 39: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - 40: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - 41: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - 42: * - 43: ********************************************************************/ - 44: - 45: #ifdef __LIBBUILD__ - 46: # Replace the standard debugging information with a simple filename. This - 47: # prevents the library build directory from showing up in MPLAB IDE. It - 48: # also effectively disables source-line debugging. - 49: .file 1 "libpic32/startup/crti.s" - 50: .loc 1 0 - 51: #endif - 52: - 53: /* 4 slots for argument spill area. 1 for cpreturn, 1 for stack. - 54: Return spill offset of 40 and 20. Aligned to 16 bytes for n32. */ - 55: - 56: .section .init, code - 57: .globl _init - 58: .type _init,@function - 59: _init: -BFD00438 27BDFFE0 ADDIU SP, SP, -32 60: addu $sp,$sp,-32 -BFD0043C AFBF0014 SW RA, 20(SP) 61: sw $31,20($sp) - 62: - 63: .section .fini, code - 64: .globl _fini - 65: .type _fini,@function - 66: _fini: -BFD0044C 27BDFFE0 ADDIU SP, SP, -32 67: addu $sp,$sp,-32 -BFD00450 AFBF0014 SW RA, 20(SP) 68: sw $31,20($sp) ---- C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/startup/MPLAB/crt0.S --- - 1: /********************************************************************* - 2: * - 3: * C Runtime Startup - 4: * - 5: ********************************************************************* - 6: * Filename: crt0.S - 7: * - 8: * Processor: PIC32 - 9: * - 10: * Compiler: MPLAB XC32 - 11: * MPLAB X IDE - 12: * Company: Microchip Technology Inc. - 13: * - 14: * Software License Agreement - 15: * - 16: * This software is developed by Microchip Technology Inc. and its - 17: * subsidiaries ("Microchip"). - 18: * - 19: * Redistribution and use in source and binary forms, with or without - 20: * modification, are permitted provided that the following conditions are met: - 21: * - 22: * 1. Redistributions of source code must retain the above copyright - 23: * notice, this list of conditions and the following disclaimer. - 24: * - 25: * 2. Redistributions in binary form must reproduce the above copyright - 26: * notice, this list of conditions and the following disclaimer in the - 27: * documentation and/or other materials provided with the distribution. - 28: * - 29: * 3. Microchip's name may not be used to endorse or promote products - 30: * derived from this software without specific prior written permission. - 31: * - 32: * THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED - 33: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - 34: * MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - 35: * MICROCHIP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - 36: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO - 37: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; - 38: * OR BUSINESS INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, - 39: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - 40: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - 41: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - 42: * - 43: ********************************************************************/ - 44: - 45: #include - 46: #include - 47: - 48: /* MEC14xx */ - 49: #define PIC32_SRS_SET_COUNT 1 - 50: #define INIT_SSX - 51: #undef INIT_MMU_MZ_FIXED - 52: #undef INIT_L1_CACHE - 53: - 54: /* MEC14xx fill stack with sentinel value */ - 55: #define EN_STACK_FILL */ - 56: - 57: #if (__XC32_VERSION > 1000) && !defined(CPP_INIT) - 58: #define CPP_INIT - 59: #endif - 60: - 61: #if !defined(PIC32_SRS_SET_COUNT) - 62: # warning PIC32_SRS_SET_COUNT not defined on build line - 63: # define PIC32_SRS_SET_COUNT 2 - 64: #endif - 65: - 66: #if !defined(STACK_FILL_VALUE) - 67: # define STACK_FILL_VALUE 0xDEADBEEFul - 68: #endif - 69: - 70: /* This file contains 32-bit assembly code */ - 71: .set nomips16 - 72: - 73: ################################################################## - 74: # Entry point of the entire application - 75: ################################################################## - 76: .section .reset,code,keep - 77: .align 2 - 78: .set noreorder - 79: .ent _reset - 80: - 81: ############################ - 82: # Begin ISA switching code # - 83: ############################ - 84: - 85: #if defined(__PIC32_HAS_MICROMIPS) || defined(__mips_micromips) - 86: #if defined (__mips_micromips) - 87: .set micromips - 88: #endif - 89: _reset: - 90: .word 0x10000003 /* MIPS32: branch to 0xBFC00010 from here */ - 91: /* MicroMIPS: ADDI32 $0, $0, 0x0007 (nop) */ - 92: /* DO NOT change the relative branch */ - 93: - 94: .word 0x00000000 /* NOP */ - 95: __reset_micromips_isa: - 96: .set micromips - 97: jal _startup - 98: nop - 99: - 100: .align 2 - 101: /* Device not in proper ISA mode */ - 102: .set nomicromips - 103: __reset_switch_isa: - 104: jal _startup - 105: nop - 106: - 107: #else - 108: - 109: _reset: -BFD00000 0FF400A2 JAL 0xBFD00288 110: jal _startup -BFD00004 00000000 NOP 111: nop - 112: - 113: #endif /* __PIC32_HAS_MICROMIPS */ - 114: - 115: .align 2 - 116: .end _reset - 117: .globl _reset - 118: .size _reset, .-_reset - 119: - 120: .section .reset.startup,code,keep - 121: .align 2 - 122: .set noreorder - 123: - 124: #if defined (__mips_micromips) - 125: .set micromips - 126: #else - 127: .set nomicromips - 128: #endif - 129: - 130: ############################ - 131: # End ISA switching code # - 132: ############################ - 133: - 134: - 135: ################################################################## - 136: # Startup code - 137: ################################################################## - 138: .align 2 - 139: .set noreorder - 140: .ent _startup - 141: _startup: - 142: - 143: ################################################################## - 144: # New - Set BEV=1 for the cases where M14K instruction pointer - 145: # is changed to force ROM to run again. CP0.BEV must be 1 to - 146: # safely write CP0.EBASE - 147: ################################################################## -BFD00288 401A6000 MFC0 K0, Status 148: mfc0 k0, _CP0_STATUS -BFD0028C 3C1B0040 LUI K1, 64 149: lui k1, 0x0040 -BFD00290 035BD025 OR K0, K0, K1 150: or k0, k0, k1 # CP0.STATUS.BEV(bit[22]) = 1 -BFD00294 409A6000 MTC0 K0, Status 151: mtc0 k0, _CP0_STATUS -BFD00298 000000C0 EHB 152: ehb - 153: - 154: ################################################################## - 155: # Initialize Stack Pointer - 156: # _stack is initialized by the linker script to point to the - 157: # starting location of the stack in DRM - 158: ################################################################## -BFD0029C 3C1DBFD2 LUI SP, -16430 159: la sp,_stack - 160: - 161: ################################################################## - 162: # Initialize Global Pointer - 163: # _gp is initialized by the linker script to point to "middle" - 164: # of the small variables region - 165: ################################################################## -BFD002A4 3C1CBFD2 LUI GP, -16430 166: la gp,_gp - 167: - 168: #if (PIC32_SRS_SET_COUNT == 2) - 169: ################################################################## - 170: # Initialize Global Pointer in Shadow Set - 171: # The SRSCtl's PSS field must be set to the shadow set in which - 172: # to initialize the global pointer. Since we have only a - 173: # single shadow set (besides the normal), we will initialize - 174: # SRSCtl to SRSCtl. We then write the global pointer - 175: # to the previous shadow set to ensure that on interrupt, the - 176: # global pointer has been initialized. - 177: ################################################################## - 178: mfc0 t1,_CP0_SRSCTL # Read SRSCtl register - 179: add t3,t1,zero # Save off current SRSCtl - 180: ext t2,t1,26,4 # to obtain HSS field - 181: ins t1,t2,6,4 # Put HSS field - 182: mtc0 t1,_CP0_SRSCTL # into SRSCtl - 183: ehb # Clear hazard before using new SRSCTL - 184: wrpgpr gp,gp # Set global pointer in PSS - 185: mtc0 t3,_CP0_SRSCTL # Restore SRSCtl - 186: ehb - 187: - 188: #elif (PIC32_SRS_SET_COUNT > 2) - 189: ################################################################## - 190: # Initialize Global Pointer in Shadow Set(s) - 191: # The SRSCtl PSS field must be set to the shadow set in which - 192: # to initialize the global pointer. We will initialize - 193: # SRSCtl to the number of reg sets and work down to set zero. - 194: # We write the global pointer to the previous shadow set to - 195: # ensure that on interrupt, the global pointer has been - 196: # initialized. - 197: ################################################################## - 198: mfc0 t1,_CP0_SRSCTL # Read SRSCtl register - 199: add t3,t1,zero # Save off current SRSCtl - 200: - 201: li t2,(PIC32_SRS_SET_COUNT-1) - 202: - 203: 1: ins t1,t2,6,4 # Put next shadow set field - 204: mtc0 t1,_CP0_SRSCTL # into SRSCtl - 205: ehb # Clear hazard before using new SRSCTL - 206: wrpgpr gp,gp # Set global pointer in PSS - 207: - 208: addiu t2,t2,-1 # Next lower shadow set - 209: # Loop for all sets - 210: bne t2,$0,1b # Down to zero (normal GPR set) - 211: nop - 212: - 213: mtc0 t3,_CP0_SRSCTL # Restore SRSCtl - 214: ehb - 215: - 216: #endif /* (PIC32_SRS_SET_COUNT > 2) */ - 217: - 218: ################################################################## - 219: # Call the "on reset" procedure - 220: ################################################################## -BFD002AC 3C08BFD1 LUI T0, -16431 221: la t0,_on_reset -BFD002B4 0100F809 JALR T0 222: jalr t0 -BFD002B8 00000000 NOP 223: nop - 224: - 225: #if defined(INIT_MMU_MZ_FIXED) - 226: ################################################################## - 227: # Initialize TLB for fixed mapping to EBI and SQI - 228: ################################################################## - 229: .extern __pic32_tlb_init_ebi_sqi - 230: la t0,__pic32_tlb_init_ebi_sqi - 231: jalr t0 - 232: nop - 233: #endif - 234: - 235: #if defined(INIT_L1_CACHE) - 236: ################################################################## - 237: # Initialize L1 cache register - 238: ################################################################## - 239: .extern __pic32_init_cache - 240: la t0,__pic32_init_cache - 241: jalr t0 - 242: nop - 243: #endif - 244: - 245: #if defined(EN_STACK_FILL) - 246: ################################################################## - 247: # Fill stack - 248: # TODO - handle different stack lengths: - 249: # mulitple of 4, 8, 16, or 32 - 250: ################################################################## -BFD002BC 3C08BFD2 LUI T0, -16430 251: la t0,_stack_start -BFD002C4 3C09BFD2 LUI T1, -16430 252: la t1,_stack -BFD002CC 10000005 BEQ ZERO, ZERO, 0xBFD002E4 253: b _stack_check - 254: - 255: _stack_init: -BFD002D0 AD000000 SW ZERO, 0(T0) 256: sw zero,0x0(t0) -BFD002D4 AD000004 SW ZERO, 4(T0) 257: sw zero,0x4(t0) -BFD002D8 AD000008 SW ZERO, 8(T0) 258: sw zero,0x8(t0) -BFD002DC AD00000C SW ZERO, 12(T0) 259: sw zero,0xc(t0) -BFD002E0 25080010 ADDIU T0, T0, 16 260: addu t0,16 - 261: - 262: _stack_check: -BFD002E4 0109082B SLTU AT, T0, T1 263: bltu t0,t1,_stack_init -BFD002EC 00000000 NOP 264: nop - 265: #endif - 266: - 267: ################################################################## - 268: # Clear uninitialized data sections - 269: ################################################################## -BFD002F0 3C08BFD2 LUI T0, -16430 270: la t0,_bss_begin -BFD002F8 3C09BFD2 LUI T1, -16430 271: la t1,_bss_end -BFD00300 10000006 BEQ ZERO, ZERO, 0xBFD0031C 272: b _bss_check -BFD00304 00000000 NOP 273: nop - 274: - 275: _bss_init: -BFD00308 AD000000 SW ZERO, 0(T0) 276: sw zero,0x0(t0) -BFD0030C AD000004 SW ZERO, 4(T0) 277: sw zero,0x4(t0) -BFD00310 AD000008 SW ZERO, 8(T0) 278: sw zero,0x8(t0) -BFD00314 AD00000C SW ZERO, 12(T0) 279: sw zero,0xc(t0) -BFD00318 25080010 ADDIU T0, T0, 16 280: addu t0,16 - 281: _bss_check: -BFD0031C 0109082B SLTU AT, T0, T1 282: bltu t0,t1,_bss_init -BFD00324 00000000 NOP 283: nop - 284: - 285: ################################################################## - 286: # Initialize data using the linker-generated .dinit table - 287: ################################################################## - 288: .equiv FMT_CLEAR,0 - 289: .equiv FMT_COPY,1 - 290: _dinit_init: -BFD00328 3C08BFD0 LUI T0, -16432 291: la t0,_dinit_addr - 292: - 293: #define SRC t0 - 294: #define DST t1 - 295: #define LEN t2 - 296: #define FMT t3 - 297: -BFD00330 8D090000 LW T1, 0(T0) 298: 0: lw DST,0(SRC) -BFD00334 11200018 BEQ T1, ZERO, 0xBFD00398 299: beqz DST,9f -BFD00338 25080004 ADDIU T0, T0, 4 300: addu SRC,4 -BFD0033C 8D0A0000 LW T2, 0(T0) 301: lw LEN,0(SRC) -BFD00340 25080004 ADDIU T0, T0, 4 302: addu SRC,4 -BFD00344 8D0B0000 LW T3, 0(T0) 303: lw FMT,0(SRC) -BFD00348 11600009 BEQ T3, ZERO, 0xBFD00370 304: beq FMT,$0,_dinit_clear -BFD0034C 25080004 ADDIU T0, T0, 4 305: addu SRC,4 - 306: - 307: _dinit_copy: -BFD00350 910C0000 LBU T4, 0(T0) 308: lbu t4,0(SRC) -BFD00354 254AFFFF ADDIU T2, T2, -1 309: subu LEN,1 -BFD00358 25080001 ADDIU T0, T0, 1 310: addu SRC,1 -BFD0035C A12C0000 SB T4, 0(T1) 311: sb t4,0(DST) -BFD00360 1540FFFB BNE T2, ZERO, 0xBFD00350 312: bne LEN,$0,_dinit_copy -BFD00364 25290001 ADDIU T1, T1, 1 313: addu DST,1 - 314: -BFD00368 10000005 BEQ ZERO, ZERO, 0xBFD00380 315: b _dinit_end -BFD0036C 00000000 NOP 316: nop - 317: - 318: _dinit_clear: -BFD00370 A1200000 SB ZERO, 0(T1) 319: sb $0,(DST) -BFD00374 254AFFFF ADDIU T2, T2, -1 320: subu LEN,1 -BFD00378 1540FFFD BNE T2, ZERO, 0xBFD00370 321: bne LEN,$0,_dinit_clear -BFD0037C 25290001 ADDIU T1, T1, 1 322: addu DST,1 - 323: - 324: _dinit_end: -BFD00380 25080003 ADDIU T0, T0, 3 325: addu SRC,3 -BFD00384 240AFFFC ADDIU T2, ZERO, -4 326: addiu LEN,$0,0xFFFFFFFC -BFD00388 01484024 AND T0, T2, T0 327: and SRC,LEN,SRC -BFD0038C 8D090000 LW T1, 0(T0) 328: lw DST,0(SRC) -BFD00390 1520FFE7 BNE T1, ZERO, 0xBFD00330 329: bne DST,$0,0b -BFD00394 00000000 NOP 330: nop - 331: 9: - 332: - 333: ################################################################## - 334: # If there are no RAM functions, skip the next section -- - 335: # initializing bus matrix registers. - 336: ################################################################## -BFD00398 3C090000 LUI T1, 0 337: la t1,_ramfunc_begin -BFD003A0 11200001 BEQ T1, ZERO, 0xBFD003A8 338: beqz t1,_ramfunc_done -BFD003A4 00000000 NOP 339: nop - 340: - 341: #if defined(INIT_SSX) - 342: /* No initialization required */ - 343: #else /* Use BMX */ - 344: ################################################################## - 345: # Initialize bus matrix registers if RAM functions exist in the - 346: # application - 347: ################################################################## - 348: la t1,_bmxdkpba_address - 349: la t2,BMXDKPBA - 350: sw t1,0(t2) - 351: la t1,_bmxdudba_address - 352: la t2,BMXDUDBA - 353: sw t1,0(t2) - 354: la t1,_bmxdupba_address - 355: la t2,BMXDUPBA - 356: sw t1,0(t2) - 357: #endif /* INIT_SSX */ - 358: - 359: _ramfunc_done: - 360: - 361: ################################################################## - 362: # Initialize CP0 registers - 363: ################################################################## - 364: # Initialize Count register - 365: ################################################################## -BFD003A8 40804800 MTC0 ZERO, Count 366: mtc0 zero,_CP0_COUNT - 367: - 368: ################################################################## - 369: # Initialize Compare register - 370: ################################################################## -BFD003AC 240AFFFF ADDIU T2, ZERO, -1 371: li t2,-1 -BFD003B0 408A5800 MTC0 T2, Compare 372: mtc0 t2,_CP0_COMPARE - 373: - 374: ################################################################## - 375: # Initialize EBase register - 376: ################################################################## -BFD003B4 3C09BFD0 LUI T1, -16432 377: la t1,_ebase_address -BFD003BC 40897801 MTC0 T1, EBase 378: mtc0 t1,_CP0_EBASE - 379: - 380: ################################################################## - 381: # Initialize IntCtl register - 382: ################################################################## -BFD003C0 3C090000 LUI T1, 0 383: la t1,_vector_spacing -BFD003C8 240A0000 ADDIU T2, ZERO, 0 384: li t2,0 # Clear t2 and -BFD003CC 7D2A4944 INS T2, T1, 5, 5 385: ins t2,t1,5,5 # shift value to VS field -BFD003D0 408A6001 MTC0 T2, IntCtl 386: mtc0 t2,_CP0_INTCTL - 387: - 388: ################################################################## - 389: # Initialize CAUSE registers - 390: # - Enable counting of Count register - 391: # - Use special exception vector - 392: # - Clear pending software interrupts - 393: ################################################################## -BFD003D4 3C090080 LUI T1, 128 394: li t1,0x00800000 -BFD003D8 40896800 MTC0 T1, Cause 395: mtc0 t1,_CP0_CAUSE - 396: - 397: ################################################################## - 398: # Initialize STATUS register - 399: # - Access to Coprocessor 0 not allowed in user mode - 400: # - User mode uses configured endianness - 401: # - Preserve Bootstrap Exception vectors - 402: # - Preserve soft reset and non-maskable interrupt - 403: # - CorExtend enabled based on whether CorExtend User Defined - 404: # Instructions have been implemented > - 405: # - Disable any pending interrups - 406: # - Disable hardware interrupts - 407: # - Base mode is Kernel mode - 408: # - Error level is normal - 409: # - Exception level is normal - 410: # - Interrupts are disabled - 411: # - DSPr2 ASE is enabled for devices that support it - 412: ################################################################## -BFD003DC 40088000 MFC0 T0, Config 413: mfc0 t0,_CP0_CONFIG -BFD003E0 7D090580 EXT T1, T0, 22, 1 414: ext t1,t0,22,1 # Extract UDI from Config register -BFD003E4 00094C40 SLL T1, T1, 17 415: sll t1,t1,17 # Move UDI to Status.CEE location -BFD003E8 40086000 MFC0 T0, Status 416: mfc0 t0,_CP0_STATUS -BFD003EC 3C010058 LUI AT, 88 417: and t0,t0,0x00580000 # Preserve SR, NMI, and BEV - 418: #if defined(INIT_DSPR2) - 419: li t2, 0x01000000 # Set the Status.MX bit to enable DSP - 420: or t0,t2,t0 - 421: #endif -BFD003F4 01284025 OR T0, T1, T0 422: or t0,t1,t0 # Include Status.CEE (from UDI) -BFD003F8 40886000 MTC0 T0, Status 423: mtc0 t0,_CP0_STATUS - 424: - 425: ################################################################## - 426: # Call the "on bootstrap" procedure - 427: ################################################################## -BFD003FC 3C08BFD1 LUI T0, -16431 428: la t0,_on_bootstrap -BFD00404 0100F809 JALR T0 429: jalr t0 -BFD00408 00000000 NOP 430: nop - 431: - 432: ################################################################## - 433: # Initialize Status for normal exception vectors - 434: ################################################################## -BFD0040C 40086000 MFC0 T0, Status 435: mfc0 t0,_CP0_STATUS -BFD00410 3C01FFBF LUI AT, -65 436: and t0,t0,0xffbfffff # Clear BEV -BFD0041C 40886000 MTC0 T0, Status 437: mtc0 t0,_CP0_STATUS - 438: - 439: ################################################################## - 440: # Call main. We do this via a thunk in the text section so that - 441: # a normal jump and link can be used, enabling the startup code - 442: # to work properly whether main is written in MIPS16 or MIPS32 - 443: # code. I.e., the linker will correctly adjust the JAL to JALX if - 444: # necessary - 445: ################################################################## -BFD00420 30840000 ANDI A0, A0, 0 446: and a0,a0,0 -BFD00424 30A50000 ANDI A1, A1, 0 447: and a1,a1,0 -BFD00428 3C08BFD0 LUI T0, -16432 448: la t0,_main_entry -BFD00430 01000008 JR T0 449: jr t0 -BFD00434 00000000 NOP 450: nop - 451: - 452: .end _startup - 453: - 454: - 455: ################################################################## - 456: # General Exception Vector Handler - 457: # Jumps to _general_exception_context - 458: ################################################################## - 459: .section .gen_handler,code - 460: .set noreorder - 461: .ent _gen_exception - 462: _gen_exception: -BFD00180 3C1ABFD0 LUI K0, -16432 463: 0: la k0,_general_exception_context -BFD00188 03400008 JR K0 464: jr k0 -BFD0018C 00000000 NOP 465: nop - 466: - 467: .end _gen_exception - 468: - 469: #if defined(INIT_MMU_MZ_FIXED) - 470: ################################################################## - 471: # Simple TLB-Refill Exception Vector - 472: # Jumps to _simple_tlb_refill_exception_context - 473: ################################################################## - 474: .section .simple_tlb_refill_vector,code,keep - 475: .set noreorder - 476: .ent simple_tlb_refill_vector - 477: simple_tlb_refill_vector: - 478: la k0,_simple_tlb_refill_exception_context - 479: jr k0 - 480: nop - 481: - 482: .end simple_tlb_refill_vector - 483: #endif - 484: - 485: #if defined(INIT_L1_CACHE) - 486: ################################################################## - 487: # Cache-Error Exception Vector Handler - 488: # Jumps to _cache_err_exception_context - 489: ################################################################## - 490: .section .cache_err_vector,code,keep - 491: .set noreorder - 492: .ent _cache_err_vector - 493: _cache_err_vector: - 494: la k0,_cache_err_exception_context - 495: jr k0 - 496: nop - 497: - 498: .end _cache_err_vector - 499: #endif - 500: - 501: .section .text.main_entry,code,keep - 502: .ent _main_entry - 503: _main_entry: - 504: - 505: #if defined(CPP_INIT) - 506: .weak _init - 507: # call .init section to run constructors etc -BFD06804 3C04BFD0 LUI A0, -16432 508: lui a0,%hi(_init) -BFD06808 27BDFFE8 ADDIU SP, SP, -24 509: addiu sp,sp,-24 -BFD0680C 24840438 ADDIU A0, A0, 1080 510: addiu a0,a0,%lo(_init) -BFD06810 10800003 BEQ A0, ZERO, 0xBFD06820 511: beq a0,$0,2f -BFD06814 AFBF0014 SW RA, 20(SP) 512: sw $31,20(sp) #, -BFD06818 0080F809 JALR A0 513: jalr a0 -BFD0681C 00000000 NOP 514: nop - 515: 2: - 516: #endif -BFD06820 30840000 ANDI A0, A0, 0 517: and a0,a0,0 -BFD06824 30A50000 ANDI A1, A1, 0 518: and a1,a1,0 - 519: - 520: ################################################################## - 521: - 522: # Call main - 523: ################################################################## -BFD06828 77F425B0 JALX 0xBFD096C0 524: jal main -BFD0682C 00000000 NOP 525: nop - 526: - 527: #if defined(CALL_EXIT) - 528: ################################################################## - 529: # Call exit() - 530: ################################################################## - 531: jal exit - 532: nop - 533: #endif - 534: - 535: ################################################################## - 536: # Just in case, go into infinite loop - 537: # Call a software breakpoint only with -mdebugger compiler option - 538: ################################################################## - 539: .weak __exception_handler_break - 540: __crt0_exit: - 541: 1: -BFD06830 3C020000 LUI V0, 0 542: la v0,__exception_handler_break -BFD06838 10400003 BEQ V0, ZERO, 0xBFD06848 543: beq v0,0,0f -BFD0683C 00000000 NOP 544: nop -BFD06840 0040F809 JALR V0 545: jalr v0 -BFD06844 00000000 NOP 546: nop - 547: -BFD06848 1000FFF9 BEQ ZERO, ZERO, 0xBFD06830 548: 0: b 1b -BFD0684C 00000000 NOP 549: nop - 550: - 551: .globl __crt0_exit - 552: .end _main_entry - 553: - 554: ############################################################### - 555: # launch_fw - 556: ############################################################### - 557: .globl rom_launch_fw - 558: .set nomips16 - 559: .set micromips - 560: .ent rom_launch_fw - 561: .type rom_launch_fw, @function - 562: - 563: rom_launch_fw: - 564: - 565: .set noreorder - 566: .set nomacro - 567: - 568: lfw1: -BFD06850 477C0000 DI ZERO 569: di - 570: lfw2: -BFD06854 18000000 SLL ZERO, ZERO, 3 571: ehb - 572: lfw3: -BFD06858 0C00 NOP 573: nop - 574: - 575: # turn off core timer - 576: lfw4: -BFD0685A 00FC010D MFC0 T0, Cause 577: mfc0 t0, _CP0_CAUSE - 578: lfw5: -BFD0685E F7FF41A9 LUI T1, 0xF7FF 579: lui t1, 0xf7ff - 580: lfw6: -BFD06862 FFFF5129 ORI T1, T1, -1 581: ori t1, t1, 0xffff - 582: lfw7: -BFD06866 42500128 AND T0, T0, T1 583: and t0, t0, t1 - 584: lfw8: -BFD0686A 02FC010D MTC0 T0, Cause 585: mtc0 t0, _CP0_CAUSE - 586: lfw9: -BFD0686E 18000000 SLL ZERO, ZERO, 3 587: ehb - 588: lfw10: -BFD06872 0C00 NOP 589: nop - 590: lfw11: -BFD06874 00FC010C MFC0 T0, Status 591: mfc0 t0, _CP0_STATUS - 592: lfw12: -BFD06878 004041A9 LUI T1, 0x40 593: lui t1, 0x0040 - 594: lfw13: -BFD0687C 42900128 OR T0, T0, T1 595: or t0, t0, t1 # BEV(bit[22]) = 1 - 596: lfw14: -BFD06880 02FC010C MTC0 T0, Status 597: mtc0 t0, _CP0_STATUS - 598: lfw15: -BFD06884 18000000 SLL ZERO, ZERO, 3 599: ehb - 600: lfw16: -BFD06888 0C00 NOP 601: nop - 602: lfw17: -BFD0688A 1F3C0004 JALR.HB ZERO, A0 603: JR.HB a0 - 604: lfw18: -BFD0688E 00000000 NOP 605: nop - 606: 0: -BFD06892 3449D7E8 J 0xBFD06892 607: j 0b # should not get here - 608: lfw19: -BFD06896 0C00 NOP 609: nop - 610: - 611: .set macro - 612: .set reorder - 613: - 614: .end rom_launch_fw - 615: .size rom_launch_fw, .-rom_launch_fw - 616: ---- C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/interrupts/girq24d.S --- - 1: /* - 2: Copyright (C) 2014 Microchip Inc. - 3: All rights reserved - 4: - 5: 1 tab == 4 spaces! - 6: */ - 7: - 8: #ifdef __XC32 - 9: #include - 10: #include - 11: #else - 12: #include "Regs.S" - 13: #endif - 14: - 15: #include "MEC14xx/mec14xx_girqm.h" - 16: - 17: /******************************************************************/ - 18: - 19: /*************************************************************** - 20: * MEC14xx GIRQ24 Disaggregated Vector Jump table - 21: * - 22: ***************************************************************/ - 23: - 24: .extern girq24_b0 - 25: .extern girq24_b1 - 26: .extern girq24_b2 - 27: - 28: #if GIRQ24_DISAGG != 0 - 29: - 30: /* - 31: * FreeRTOS Handler for MIPS M14K Software Interrupt 0 - 32: * implemented in the porting layer. - 33: */ - 34: .extern vPortYieldISR - 35: - 36: /* - 37: * Disaggregated girq24_isr - 38: * Program address of this version of girq24_isr into JTVIC GIRQ24 - 39: * Aggregator Control register with bit[0] = 1. - 40: */ - 41: - 42: /* - 43: * NOTE: All the additional labels surrounding every instruction are - 44: * there to force GCC OBJDUMP to disassemble microMIPS correctly. - 45: */ - 46: - 47: .insn - 48: #ifdef __XC32 - 49: .section .girqs.girq24_isr, code - 50: #else - 51: .section .girqs.girq24_isr,"x" - 52: #endif - 53: .set nomips16 - 54: .set micromips - 55: .set noreorder - 56: .set noat - 57: .ent girq24_isr - 58: .global girq24_isr - 59: .align 2 - 60: - 61: girq24_isr: -BFD00270 32D4D7E8 J 0xBFD065A8 62: J girq24_b0 - 63: g24b0b: -BFD00274 0C00 NOP 64: NOP - 65: - 66: .align 2 - 67: g24b1a: -BFD00278 05B8D7E8 J 0xBFD00B70 68: J vPortYieldISR /* girq24_b1 */ - 69: g24b1b: -BFD0027C 0C00 NOP 70: NOP - 71: - 72: .align 2 - 73: g24b2a: -BFD00280 23A0D7E8 J 0xBFD04740 74: J girq24_b2 - 75: g24b2b: -BFD00284 0C00 NOP 76: NOP - 77: g24end: - 78: .end girq24_isr - 79: - 80: #endif - 81: - 82: /******************************************************************/ - 83: - 84: ---- C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/interrupts/girq23d.S --- - 1: /* - 2: Copyright (C) 2014 Microchip Inc. - 3: All rights reserved - 4: - 5: 1 tab == 4 spaces! - 6: */ - 7: - 8: #ifdef __XC32 - 9: #include - 10: #include - 11: #else - 12: #include "Regs.S" - 13: #endif - 14: - 15: #include "MEC14xx/mec14xx_girqm.h" - 16: - 17: - 18: /*************************************************************** - 19: * MEC14xx GIRQ23 Disaggregated Vector Jump table - 20: * - 21: ***************************************************************/ - 22: - 23: .extern girq23_b0 - 24: .extern girq23_b1 - 25: .extern girq23_b2 - 26: .extern girq23_b3 - 27: .extern girq23_b4 - 28: .extern girq23_b5 - 29: .extern girq23_b6 - 30: .extern girq23_b7 - 31: .extern girq23_b8 - 32: .extern girq23_b9 - 33: .extern girq23_b10 - 34: .extern girq23_b11 - 35: .extern girq23_b12 - 36: .extern girq23_b13 - 37: - 38: #if GIRQ23_DISAGG != 0 - 39: - 40: /* - 41: * FreeRTOS Handler for MEC14xx RTOS Timer - 42: * implemented in the porting layer. - 43: */ - 44: .extern vPortTickInterruptHandler - 45: - 46: /* - 47: * Disaggregated girq23_isr - 48: * Program address of this version of girq23_isr into JTVIC GIRQ23 - 49: * Aggregator Control register with bit[0] = 1. - 50: */ - 51: - 52: /* - 53: * NOTE: All the additional labels surrounding every instruction are - 54: * there to force GCC OBJDUMP to disassemble microMIPS correctly. - 55: */ - 56: - 57: .insn - 58: #ifdef __XC32 - 59: .section .girqs.girq23_isr, code - 60: #else - 61: .section .girqs.girq23_isr,"x" - 62: #endif - 63: .set nomips16 - 64: .set micromips - 65: .set noreorder - 66: .set noat - 67: .ent girq23_isr - 68: .global girq23_isr - 69: .align 2 - 70: - 71: girq23_isr: - 72: -BFD00200 3950D7E8 J 0xBFD072A0 73: J girq23_b0 - 74: g23b0b: -BFD00204 0C00 NOP 75: NOP - 76: - 77: .align 2 - 78: g23b1a: -BFD00208 2638D7E8 J 0xBFD04C70 79: J girq23_b1 - 80: g23b1b: -BFD0020C 0C00 NOP 81: NOP - 82: - 83: .align 2 - 84: g23b2a: -BFD00210 26A0D7E8 J 0xBFD04D40 85: J girq23_b2 - 86: g23b2b: -BFD00214 0C00 NOP 87: NOP - 88: - 89: .align 2 - 90: g23b3a: -BFD00218 2708D7E8 J 0xBFD04E10 91: J girq23_b3 - 92: g23b3b: -BFD0021C 0C00 NOP 93: NOP - 94: - 95: .align 2 - 96: g23b4a: -BFD00220 0490D7E8 J 0xBFD00920 97: J girq23_b4 - 98: g23b4b: -BFD00224 0C00 NOP 99: NOP - 100: - 101: .align 2 - 102: g23b5a: -BFD00228 2770D7E8 J 0xBFD04EE0 103: J girq23_b5 - 104: g23b5b: -BFD0022C 0C00 NOP 105: NOP - 106: - 107: .align 2 - 108: g23b6a: -BFD00230 27D8D7E8 J 0xBFD04FB0 109: J girq23_b6 - 110: g23b6b: -BFD00234 0C00 NOP 111: NOP - 112: - 113: .align 2 - 114: g23b7a: -BFD00238 2840D7E8 J 0xBFD05080 115: J girq23_b7 - 116: g23b7b: -BFD0023C 0C00 NOP 117: NOP - 118: - 119: .align 2 - 120: g23b8a: -BFD00240 28A8D7E8 J 0xBFD05150 121: J girq23_b8 - 122: g23b8b: -BFD00244 0C00 NOP 123: NOP - 124: - 125: .align 2 - 126: g23b9a: -BFD00248 2910D7E8 J 0xBFD05220 127: J girq23_b9 - 128: g23b9b: -BFD0024C 0C00 NOP 129: NOP - 130: - 131: .align 2 - 132: g23b10a: -BFD00250 2978D7E8 J 0xBFD052F0 133: J girq23_b10 - 134: g23b10b: -BFD00254 0C00 NOP 135: NOP - 136: - 137: .align 2 - 138: g23b11a: -BFD00258 29E0D7E8 J 0xBFD053C0 139: J girq23_b11 - 140: g23b11b: -BFD0025C 0C00 NOP 141: NOP - 142: - 143: .align 2 - 144: g23b12a: -BFD00260 2A48D7E8 J 0xBFD05490 145: J girq23_b12 - 146: g23b12b: -BFD00264 0C00 NOP 147: NOP - 148: - 149: .align 2 - 150: g23b13a: -BFD00268 2AB0D7E8 J 0xBFD05560 151: J girq23_b13 - 152: g23b13b: -BFD0026C 0C00 NOP 153: NOP - 154: g23end: - 155: .end girq23_isr - 156: - 157: #endif - 158: - 159: /******************************************************************/ - 160: - 161: - 162: - 163: ---- C:/E/Dev/FreeRTOS/WorkingCopy/FreeRTOS/Demo/PIC32MEC14xx_MPLAB/src/MEC14xx/exceptions/MPLAB/general_exception_ctx.S - 1: /********************************************************************* - 2: * - 3: * General Exception - 4: * - 5: ********************************************************************* - 6: * Filename: general-exception.S - 7: * - 8: * Processor: PIC32 - 9: * - 10: * Compiler: MPLAB XC32 v1.00 - 11: * MPLAB X IDE - 12: * Company: Microchip Technology Inc. - 13: * - 14: * Software License Agreement - 15: * - 16: * This software is developed by Microchip Technology Inc. and its - 17: * subsidiaries ("Microchip"). - 18: * - 19: * Redistribution and use in source and binary forms, with or without - 20: * modification, are permitted provided that the following conditions are met: - 21: * - 22: * 1. Redistributions of source code must retain the above copyright - 23: * notice, this list of conditions and the following disclaimer. - 24: * - 25: * 2. Redistributions in binary form must reproduce the above copyright - 26: * notice, this list of conditions and the following disclaimer in the - 27: * documentation and/or other materials provided with the distribution. - 28: * - 29: * 3. Microchip's name may not be used to endorse or promote products - 30: * derived from this software without specific prior written permission. - 31: * - 32: * THIS SOFTWARE IS PROVIDED BY MICROCHIP "AS IS" AND ANY EXPRESS OR IMPLIED - 33: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - 34: * MERCHANTABILITY AND FITNESS FOR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - 35: * MICROCHIP BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - 36: * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO - 37: * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA OR PROFITS; - 38: * OR BUSINESS INTERRUPTION) HOWSOEVER CAUSED AND ON ANY THEORY OF LIABILITY, - 39: * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - 40: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - 41: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - 42: * - 43: ********************************************************************/ - 44: - 45: #include - 46: #ifdef __LIBBUILD__ - 47: .file 1 "general-exception.S" - 48: .loc 1 0 - 49: #endif - 50: ################### - 51: # Default general exception handler - 52: ################### - 53: - 54: .extern _general_exception_handler - 55: - 56: .section .text.general_exception, code - 57: .set noreorder - 58: .set noat - 59: .set nomips16 - 60: .globl _general_exception_context - 61: .ent _general_exception_context - 62: - 63: _general_exception_context: - 64: - 65: # Save off the non-callee saved registers that may get mucked with -BFD049E4 27BDFFA8 ADDIU SP, SP, -88 66: addiu sp, sp, -88 -BFD049E8 AFA10004 SW AT, 4(SP) 67: sw $1, 4(sp) -BFD049EC AFA20008 SW V0, 8(SP) 68: sw v0, 8(sp) -BFD049F0 AFA3000C SW V1, 12(SP) 69: sw v1, 12(sp) -BFD049F4 AFA40010 SW A0, 16(SP) 70: sw a0, 16(sp) -BFD049F8 AFA50014 SW A1, 20(SP) 71: sw a1, 20(sp) -BFD049FC AFA60018 SW A2, 24(SP) 72: sw a2, 24(sp) -BFD04A00 AFA7001C SW A3, 28(SP) 73: sw a3, 28(sp) -BFD04A04 AFA80020 SW T0, 32(SP) 74: sw t0, 32(sp) -BFD04A08 AFA90024 SW T1, 36(SP) 75: sw t1, 36(sp) -BFD04A0C AFAA0028 SW T2, 40(SP) 76: sw t2, 40(sp) -BFD04A10 AFAB002C SW T3, 44(SP) 77: sw t3, 44(sp) -BFD04A14 AFAC0030 SW T4, 48(SP) 78: sw t4, 48(sp) -BFD04A18 AFAD0034 SW T5, 52(SP) 79: sw t5, 52(sp) -BFD04A1C AFAE0038 SW T6, 56(SP) 80: sw t6, 56(sp) -BFD04A20 AFAF003C SW T7, 60(SP) 81: sw t7, 60(sp) -BFD04A24 AFB80040 SW T8, 64(SP) 82: sw t8, 64(sp) -BFD04A28 AFB90044 SW T9, 68(SP) 83: sw t9, 68(sp) -BFD04A2C AFBF0048 SW RA, 72(SP) 84: sw ra, 72(sp) -BFD04A30 00004012 MFLO T0, 0 85: mflo t0 -BFD04A34 AFA8004C SW T0, 76(SP) 86: sw t0, 76(sp) -BFD04A38 00004010 MFHI T0, 0 87: mfhi t0 -BFD04A3C AFA80050 SW T0, 80(SP) 88: sw t0, 80(sp) - 89: -BFD04A40 3C1ABFD0 LUI K0, -16432 90: la k0,_general_exception_handler -BFD04A48 00000000 NOP 91: nop - 92: - 93: # Pass Cause and Status to the handler function -BFD04A4C 40046800 MFC0 A0, Cause 94: mfc0 a0, _CP0_CAUSE -BFD04A50 40056000 MFC0 A1, Status 95: mfc0 a1, _CP0_STATUS -BFD04A54 0340F809 JALR K0 96: jalr k0 -BFD04A58 00000000 NOP 97: nop - 98: -BFD04A5C 8FA80050 LW T0, 80(SP) 99: lw t0, 80(sp) -BFD04A60 01000011 MTHI T0, 0 100: mthi t0 -BFD04A64 8FA8004C LW T0, 76(SP) 101: lw t0, 76(sp) -BFD04A68 01000013 MTLO T0, 0 102: mtlo t0 - 103: -BFD04A6C 8FA10004 LW AT, 4(SP) 104: lw $1, 4(sp) -BFD04A70 8FA20008 LW V0, 8(SP) 105: lw v0, 8(sp) -BFD04A74 8FA3000C LW V1, 12(SP) 106: lw v1, 12(sp) -BFD04A78 8FA40010 LW A0, 16(SP) 107: lw a0, 16(sp) -BFD04A7C 8FA50014 LW A1, 20(SP) 108: lw a1, 20(sp) -BFD04A80 8FA60018 LW A2, 24(SP) 109: lw a2, 24(sp) -BFD04A84 8FA7001C LW A3, 28(SP) 110: lw a3, 28(sp) -BFD04A88 8FA80020 LW T0, 32(SP) 111: lw t0, 32(sp) -BFD04A8C 8FA90024 LW T1, 36(SP) 112: lw t1, 36(sp) -BFD04A90 8FAA0028 LW T2, 40(SP) 113: lw t2, 40(sp) -BFD04A94 8FAB002C LW T3, 44(SP) 114: lw t3, 44(sp) -BFD04A98 8FAC0030 LW T4, 48(SP) 115: lw t4, 48(sp) -BFD04A9C 8FAD0034 LW T5, 52(SP) 116: lw t5, 52(sp) -BFD04AA0 8FAE0038 LW T6, 56(SP) 117: lw t6, 56(sp) -BFD04AA4 8FAF003C LW T7, 60(SP) 118: lw t7, 60(sp) -BFD04AA8 8FB80040 LW T8, 64(SP) 119: lw t8, 64(sp) -BFD04AAC 8FB90044 LW T9, 68(SP) 120: lw t9, 68(sp) -BFD04AB0 8FBF0048 LW RA, 72(SP) 121: lw ra, 72(sp) -BFD04AB4 27BD0058 ADDIU SP, SP, 88 122: addiu sp, sp, 88 - 123: -BFD04AB8 000000C0 EHB 124: ehb -BFD04ABC 42000018 ERET 125: eret - 126: - 127: .end _general_exception_context - 128: diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl deleted file mode 100644 index bf9bf948866..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl deleted file mode 100644 index 8de3842e476..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl deleted file mode 100644 index 990af6c6b8c..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl deleted file mode 100644 index db7f0f354fd..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl +++ /dev/null @@ -1,580 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UNKNOWN Text style class - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl deleted file mode 100644 index cf3864ebcbc..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl +++ /dev/null @@ -1,2757 +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/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl deleted file mode 100644 index 3fc2afe861f..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowInitiator - BusArrowSouth - - - - - - BusArrowInitiator - BusArrowNorth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowWest - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl deleted file mode 100644 index b91a5790e99..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl +++ /dev/null @@ -1,1110 +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/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl deleted file mode 100644 index 9d6fe70b132..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__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/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl deleted file mode 100644 index ec0c0e54e9e..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl +++ /dev/null @@ -1,490 +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/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl deleted file mode 100644 index a2f9a448023..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl +++ /dev/null @@ -1,1549 +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/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl deleted file mode 100644 index d4c458d2ec6..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__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/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl deleted file mode 100644 index 9eb7a20bf82..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SLAVES OF - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "_no_interrupt_cntlr_" - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl deleted file mode 100644 index 7cbfab27813..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd deleted file mode 100644 index 110f5ced590..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd +++ /dev/null @@ -1,1704 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt deleted file mode 100644 index a0575e42f18..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt +++ /dev/null @@ -1 +0,0 @@ - $(PPC440_0_BOOTLOOP) diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise deleted file mode 100644 index fb514ece41c..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 11.1 - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise deleted file mode 100644 index ba61ba886c24361b99393f390d6263f11a7540ff..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170265 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 qE6bZt0x?XDzklJ(#%68f%w_(O+ - - -

- - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock deleted file mode 100644 index 8adf82efb9aae27c45f8568b74226ea7a017c36e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcma)$I}5@v6os9If{S~1L8I2etf>`TEWYY+;ZpS?(IzcPl=R;lU33)AbRK-CCpau1 zr6**DXtP^yp{UJW>Z_=mb{Y~@L!OHyVVLHa<$FBJN@|Y>X&m_(E`R0CH#$2Dg>;T|s7VcmDk|Tzrv_C@J^9}FCI5*XesJ5;#jA&o T$I~D_W;|i>gt2+l?RN$*)ksqz diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject deleted file mode 100644 index 4627dbf5dfe60866a01bc5d29f2ac892555cdb9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmb78K@I>Q2tuv@Ke@p4*jj9Y6E+0g!C3_mCL(Agj2G>JXsetfQONA;BNZ-^;^C1O-+=drXl2AD)TA$Zu!+H0*x5iM*|Gm%5 z?ViseQL7qc`R-=t^_gepHa6t*^~P5lR!wzPs$7%4RR!Id!q_`nJo@DRK{>_E(z~3F zbm&+5t@f31mKICgC!$IR8sqB(`lvHDg~r8BxC@>3(=!#WsUx?#^vc)~g=`J9e>SUegIC!APYF0qr(VLV0 zB~{@b<{+TG3eL+BGp5A=dX1gH!n9Og({`cl1n&Msy(|lP@u4hK7&|}ROh2}$Ge-<= zUUjbM#S7YvxrpfyAD)X3XYnYRiWI%857DjiMp*<^Ihs}M)6{I|u5ebITBgj^MUmXW z6~w%G*?-+Xx!hs_xIQp;>`334DpXVp9RC?bt~gI96N}=*xoN2ze00eBpukCvl2tb+ zskaimq8_5TVkP2LmrmTA3g>RPZd&Enl74byDGQf^W;U3D=3HLXSBURDXs(@X( z04J%TgYP4!EBg)TB)C%G&IA#eieuV=EVp!3%|N3FNd4-z8GygTh#c60Q;Q6{eQz~6`|O>Xz)BYMUh~$D_t0Q znWtkj%n03?E`I#JlN^t_0Dy>5>+JU5+9MCj1H3he%=n2YMvsvK@mH=`Q?L)vpn@De zCh*i$yhZ@?j)b<{cuaF|f*N8G2u)64Tau*$7=1VkXtrJ(*tFeNrncv?9!t^%(9c zRBECx^c@=F-OKZn{>f2RGfV>KTva4gQGr@VG&dNuDnd2&L~K^{JfUIDM7EswmQj$@ zNXP<)A&3bbyb7L|k($Q>)Wc;SKaesO`=J>rAen~u5CI6H#b)$$sb6n#yrnr%UA-Q~ zG{|7)8=5M&$Wv#eeevJ6{kmR+14W?A9X=xAnMo1w>2 zrK>2)Sv7qNo*VOuyW6@Q{WvgKKGc2lNSZH>$|xPH)6z4zlr1&O_Dwj;GA280rOLtt zwy5MC{OM;||G2K|K{4qc2q!T>)(W0{81z~;L}_yTKWi1f`y{l-Yny3py-UZ+0&9S! zBg{>Jh^Yoshw04GD5gc>mnz((*-=ecWo12z3lmWBPTvY=1+JJ34aVWy__nZl!lb&D zc81!QHuUdHP0!XWK&DI2;2maD1qVmM6$+El%ZRG|!ywL!cV3m8^bdWD#>&gGncsk( zw4S!JDUgf+A)fH`&y9V74hb!&DkLA7Oz1fNRU7v?kk%>%88{1_}MC z;wx-WdQ_*exneG8E;u`T_-k%NM?0s#cd+o`zXh;mbY@8c=W|_Q0l9iO8nBu$t6-FC z@11|bBr#M&klIk^ir-7HhhTx>J%~A-xJBz1ujcg(Df}GMz65=MCgxzil*3{ cDbt^8+H{O#ifhl_qow?<8cyh-z5Hza1MrurlmGw# diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main deleted file mode 100644 index 336370f8091a49f5e89f82fedc83a9ed04bd24ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 VcmZQzU}9nb;{Q;<00ev>0sw562oC@N diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl deleted file mode 100644 index 359501c5e254de720bb0edd97879dcdaa4c50d01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10 NcmZQz00RyN1^@se00{s9 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module deleted file mode 100644 index 8947873d0af86aefd32bad2f1c40d57033091203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27 XcmZQzU}9nb;{Q;<00fL6f`JhLd|Lny_T*f!EcE^S z4;rsO(R_<6yz#*oKl}+GkRXByA(Sw}iNHpr(I}#cA(lAexgmi>>?Co^9rrwllX>Kc zXI{i9ypl>9={U$BlPt2yQJ%{idE`?-Aw?8ZLMdgG>mToYP@!8TRa9%Q5!X^jJqqoh|!AN`^M1{q?Q5%DNvjLScDonTTlC7NbNWM`H+ z=C#{cFuKT+e3=y`tE{ok2Ak%xWptYzcG+W}1G67;#Id?3oN^{V=YmW5m)^eO8h!zw CA~(YT diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl deleted file mode 100644 index 286be7aed9225129b667af166a2155222d704586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23174 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 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default deleted file mode 100644 index 7417703108b2e8c410dea5ab66c830d5ddee97a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 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 G`QZNuOk=SC diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys deleted file mode 100644 index 044eba96975..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys +++ /dev/null @@ -1,24 +0,0 @@ -CommandLine-Map - -s -CommandLine-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/implementation/system.ngc -uc system.ucf system.ngd -s -CommandLine-Par - -s -CommandLine-Xst - -s -Previous-NGD - -s -Previous-NGM - -s -Previous-Packed-NCD - -s -Previous-Routed-NCD - -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys deleted file mode 100644 index 4bd7af1202f..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ISE_VERSION_LAST_SAVED_WITH -11.1 -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys deleted file mode 100644 index f90e0607f3b..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys +++ /dev/null @@ -1,6 +0,0 @@ -ISE_VERSION_LAST_SAVED_WITH -11.1 -s -XISE_FILE -system.xise -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys deleted file mode 100644 index 87cda855f52..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/XSLTProcess.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys deleted file mode 100644 index 9e6460f85c7..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys +++ /dev/null @@ -1,21 +0,0 @@ -ISE_VERSION_CREATED_WITH -11.1 -s -ISE_VERSION_LAST_SAVED_WITH -11.2 -s -LastRepoDir -E:\my_projects\Wittenstein\release\svn\main2\FreeRTOS\Demo\PPC440_FPU_Xilinx_Virtex5_GCC\__xps\ise\ -s -OBJSTORE_VERSION -1.3 -s -PROJECT_CREATION_TIMESTAMP -2009-06-13T13:10:25 -s -REGISTRY_VERSION -1.1 -s -REPOSITORY_VERSION -1.1 -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys deleted file mode 100644 index 949818c6173..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/bitgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys deleted file mode 100644 index dae1ec74d53..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/bitinit.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys deleted file mode 100644 index fac2f6efe86..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys +++ /dev/null @@ -1,12 +0,0 @@ -IncrementalMessagingEnabled -true -s -MessageCaptureEnabled -true -s -MessageFilterFile -filter.filter -s -MessageFilteringEnabled -true -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys deleted file mode 100644 index f3969b3ea31..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/cpldfit.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys deleted file mode 100644 index 7e5b4bbcd93..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/dumpngdio.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys deleted file mode 100644 index 77fa32d329a..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/fuse.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys deleted file mode 100644 index e654ecd77a8..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/hprep6.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys deleted file mode 100644 index 7b9c3214a38..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/idem.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys deleted file mode 100644 index a2612daebe2..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/libgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys deleted file mode 100644 index 447e64cb99d..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/map.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys deleted file mode 100644 index b15e57f9706..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/netgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys deleted file mode 100644 index 2cb66e46713..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngc2edif.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys deleted file mode 100644 index af67ad18649..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngcbuild.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys deleted file mode 100644 index 47ac460f454..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngdbuild.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys deleted file mode 100644 index 17ae8fbf3d2..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/par.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys deleted file mode 100644 index d4497d267ef..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/platgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys deleted file mode 100644 index d5e13d0a748..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/runner.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys deleted file mode 100644 index e12ea3860cc..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/simgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys deleted file mode 100644 index fc0b0383246..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/taengine.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys deleted file mode 100644 index cffe0cfaa0d..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/trce.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys deleted file mode 100644 index 52a3e8bb03d..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/tsim.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys deleted file mode 100644 index 2d5cd6a1f48..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/vhpcomp.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys deleted file mode 100644 index 9a5c2fab9fd..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/vlogcomp.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys deleted file mode 100644 index c3f895c3925..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/xpwr.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys deleted file mode 100644 index 5b1ae90bb07..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/xst.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version deleted file mode 100644 index 9ec2fe0a6f4..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version +++ /dev/null @@ -1,10 +0,0 @@ -REPOSITORY_VERSION -1.1 -REGISTRY_VERSION -1.1 -OBJSTORE_VERSION -1.3 -ISE_VERSION_CREATED_WITH -11.1 -ISE_VERSION_LAST_SAVED_WITH -11.2 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt deleted file mode 100644 index 55880074d8a..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex5 -msg __xps/ise/xmsgprops.lst diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt deleted file mode 100644 index 58d810347af..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt +++ /dev/null @@ -1,2 +0,0 @@ - -p xc5vfx70tff1136-1 -lang vhdl -msg __xps/ise/xmsgprops.lst - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt deleted file mode 100644 index 2ed7b3daaba..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt +++ /dev/null @@ -1,20 +0,0 @@ -ppc440_0 -RTOSDEMO_SOURCES = /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 -RTOSDEMO_HEADERS = -RTOSDEMO_CC = powerpc-eabi-gcc -RTOSDEMO_CC_SIZE = powerpc-eabi-size -RTOSDEMO_CC_OPT = -O0 -RTOSDEMO_CFLAGS = -D USE_DP_FPU -D GCC_PPC440 -mregnames -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_PROFILE_FLAG = # -pg -RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi -RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=dp_full -mcpu=440 -RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE= -RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE= - $(RTOSDEMO_CC_INFERRED_FLAGS) \ diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt deleted file mode 100644 index c1e3ad5aa7d..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex5 -lang vhdl $(PPC440_0_BOOTLOOP) -msg __xps/ise/xmsgprops.lst -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/ diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters deleted file mode 100644 index 2b612924130..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui deleted file mode 100644 index b275593be3d..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui +++ /dev/null @@ -1,110 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt deleted file mode 100644 index 53ea0c72f27..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc5vfx70tff1136-1 data/system.ucf 7 0 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt deleted file mode 100644 index b8fbf7ab12d..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc5vfx70tff1136-1 data/system.ucf 0 diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd deleted file mode 100644 index 110f5ced590..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd +++ /dev/null @@ -1,1704 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css deleted file mode 100644 index 0d7b46bd6e5..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css +++ /dev/null @@ -1,446 +0,0 @@ - - text.bif_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.debug_label { - fill: #555555; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - text.ionum_label { - fill: #555555; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iogrp_label { - fill: #000088; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - tspan.iogrp_label_super { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - baseline-shift:super; - font-family: Arial Courier san-serif; - } - - text.p2pbus_label { - fill: #000000; - stroke: none; - font-size: 10pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - writing-mode: tb; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.multip_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - writing-mode: tb; - font-family: Verdana Arial Helvetica sans-serif; - } - - - - text.bc_iplabel { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.bc_iptype { - fill: #AA0017; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.splitbus_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: sans-serif; - } - - text.sharedbus_label { - fill: #000000; - stroke: none; - font-size: 10pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - - text.p2pbus_label_horiz { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - - - text.key_title { - fill: #AA0017; - stroke: none; - font-size: 12pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Helvetica sans-serif; - } - - text.key_header { - fill: #000000; - stroke: none; - font-size: 10pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Helvetica sans-serif; - } - - text.key_label { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.key_label_ul { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - text-decoration: underline; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.specs_header { - fill: #000000; - stroke: none; - font-size: 10pt; - font-weight: bold; - text-anchor: start; - font-family: Arial Helvetica sans-serif; - } - - text.specs_start { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.specs_middle { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.intr_symbol { - fill: #000000; - stroke: none; - font-size: 8pt; - font-weight: bold; - text-anchor: start; - font-family: Arial Helvetica sans-serif; - } - - text.busintlabel { - fill: #810017; - stroke: none; - font-size: 7pt; - font-style: italic; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mpmctitle { - fill: #FFFFFF; - stroke: none; - font-size: 16pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Verdana Helvetica sans-serif; - } - - text.mpmcbiflabel { - fill: #FFFFFF; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - - } - - text.buslabel { - fill: #CC3333; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iplabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: 800; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.iptype { - fill: #AA0017; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: start; - font-family: Times Arial Helvetica sans-serif; - } - - text.procclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - - text.portlabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipdbiflbl { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmMHeader { - fill: #FFFFFF; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmSHeader { - fill: #810017; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.busintlabel { - fill: #810017; - stroke: none; - font-size: 7pt; - font-style: italic; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mpmctitle { - fill: #FFFFFF; - stroke: none; - font-size: 16pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Verdana Helvetica sans-serif; - } - - text.mpmcbiflabel { - fill: #FFFFFF; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - - } - - text.buslabel { - fill: #CC3333; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iplabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: 800; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.iptype { - fill: #AA0017; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: start; - font-family: Times Arial Helvetica sans-serif; - } - - text.procclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - - text.portlabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipdbiflbl { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmMHeader { - fill: #FFFFFF; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmSHeader { - fill: #810017; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg deleted file mode 100644 index e6c7704854e..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg +++ /dev/null @@ -1,1113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - plb_v46_0 - - - - - - - - - - xps_ethernetlite - Ethernet_MAC - - - SPLB - - - - - xps_gpio - LEDs_8Bit - - - SPLB - - - - - xps_gpio - LEDs_Positions - - - SPLB - - - - - xps_gpio - Push_Buttons_5Bit - - - SPLB - - - - - xps_gpio - DIP_Switches_8Bit - - - SPLB - - - - - xps_iic - IIC_EEPROM - - - SPLB - - - - - xps_intc - xps_intc_0 - - - SPLB - - - 0 - - - - - xps_mch_emc - SRAM - - - SPLB - - - - - xps_sysace - SysACE_CompactFlash - - - SPLB - - - - - xps_uartlite - RS232_Uart_1 - - - SPLB - - - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - clock_generator - clock_generator_0 - - - - - - - - - plbv46_pcie - PCIe_Bridge - - - SPLB - - - MPLB - - - - - ppc440mc_ddr2 - DDR2_SDRAM - - - PPC4 - - - - - apu_fpu_virtex5 - ppc440_0_apu_fpu_virtex5 - - - SFCB2 - - - - - jtagppc_cntlr - jtagppc_cntlr_inst - - - JTAG - - - - - proc_sys_reset - proc_sys_reset_0 - - - RESE - - - - - ppc440_virtex5 - ppc440_0 - - - MPLB - - - SPLB0 - - - PPC4 - - - MFCB - - - JTAG - - - RESE - - - - 0 - - - - - - - - - - SLAVES OF plb_v46_0 - - PROCESSOR - - - - - bram_block - xps_bram_if_cntlr_1_bram - - PORTA - - - - - xps_bram_if_cntlr - xps_bram_if_cntlr_1 - - - SPLB - - PORTA - - - - - - - - - - - - - ppc440_0_SPLB0 - - - - - - - - ppc440_0_PPC440MC - - - - - - - - ppc_reset_bus - - - - - - - - - - - - - - - ppc440_0_fcb_v20 - - - - - - - - ppc440_0_jtagppc_bus - - - - - - - - - - - - - - - - - - x - - - - - - x - - - - - y - x - - - - - KEY - - SYMBOLS - - bus interface - - shared bus - Bus connections - - master or initiator - - slave or target - - master slave - - monitor - External Ports - - monitor - - output - - inout - Interrupts - - interrupt - controller - - interrupted - processor - - interrupt - source - x = controller ID - y = priority - - COLORS - Bus Standards - - DCR - - FCB - - FSL - - LMB - - OPB - - PLB - - SOCM - - Xilinx P2P - - USER P2P - - - - - SPECS - - EDK VERSION - 11.1 - - ARCH - virtex5 - - PART - xc5vfx70tff1136-1 - - GENERATED - Fri Jun 26 10:41:59 2009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IP - - - - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make deleted file mode 100644 index 61c2dadac50..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system.make +++ /dev/null @@ -1,278 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -# Name of the Microprocessor system -# The hardware specification of the system is in file : -# C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mhs -# The software specification of the system is in file : -# C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.mss - -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 " libs : Configures the sw libraries for this system" - @echo " program : Compiles the program sources for all the processor instances" - @echo " " - @echo " init_bram: Initializes bitstream with BRAM data" - @echo " ace : Generate ace file from bitstream and elf" - @echo " download : Downloads the bitstream onto the board" - @echo " " - @echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode" - @echo " simmodel : Generates HDL simulation models for chosen simulation mode" - @echo " behavioral_model : Generates behavioral HDL models with BRAM initialization" - @echo " structural_model : Generates structural simulation HDL models with BRAM initialization" - @echo " timing : Generates timing simulation HDL models with BRAM initialization" - @echo " " - @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 " 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) - -exporttosdk: $(SYSTEM_HW_HANDOFF_DEP) - -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) - -clean: hwclean libsclean programclean 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 __xps/$(SYSTEM)_routed - -simclean: - rm -rf simulation/behavioral - rm -f simgen.log - rm -f __xps/ise/_xmsgs/simgen.xmsgs - -swclean: libsclean programclean - @echo "" - -libsclean: $(LIBSCLEAN_TARGETS) - rm -f libgen.log - rm -f __xps/ise/_xmsgs/libgen.xmsgs - -programclean: $(PROGRAMCLEAN_TARGETS) - -################################################################# -# SOFTWARE PLATFORM FLOW -################################################################# - - -$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt - @echo "*********************************************" - @echo "Creating software libraries..." - @echo "*********************************************" - libgen $(LIBGEN_OPTIONS) $(MSSFILE) - - -ppc440_0_libsclean: - rm -rf ppc440_0/ - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDemo_program: $(RTOSDEMO_OUTPUT) - -$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \ - $(LIBRARIES) __xps/rtosdemo_compiler.opt - @mkdir -p $(RTOSDEMO_OUTPUT_DIR) - $(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \ - $(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \ - $(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) - $(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) - @echo "" - -RTOSDemo_programclean: - rm -f $(RTOSDEMO_OUTPUT) - -################################################################# -# BOOTLOOP ELF FILES -################################################################# - - - -$(PPC440_0_BOOTLOOP): $(PPC440_BOOTLOOP) - @mkdir -p $(BOOTLOOP_DIR) - cp -f $(PPC440_BOOTLOOP) $(PPC440_0_BOOTLOOP) - -################################################################# -# HARDWARE IMPLEMENTATION FLOW -################################################################# - - -$(BMM_FILE) \ -$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \ - $(CORE_STATE_DEVELOPMENT_FILES) - @echo "****************************************************" - @echo "Creating system netlist for hardware specification.." - @echo "****************************************************" - platgen $(PLATGEN_OPTIONS) $(MHSFILE) - -$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES) - @echo "Running synthesis..." - bash -c "cd synthesis; ./synthesis.sh" - -__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY) - @echo "*********************************************" - @echo "Running Xilinx Implementation tools.." - @echo "*********************************************" - @cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf - @cp -f etc/fast_runtime.opt implementation/xflow.opt - xflow -wd implementation -p $(DEVICE) -implement xflow.opt -ise ../__xps/ise/$(SYSTEM).ise $(SYSTEM).ngc - touch __xps/$(SYSTEM)_routed - -$(SYSTEM_BIT): __xps/$(SYSTEM)_routed $(BITGEN_UT_FILE) - xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par - @echo "*********************************************" - @echo "Running Bitgen.." - @echo "*********************************************" - @cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut - cd implementation; bitgen -w -f bitgen.ut $(SYSTEM); cd .. - -$(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 -p $(DEVICE) $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \ - -bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT) - @rm -f $(SYSTEM)_bd.bmm - -$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) - @echo "*********************************************" - @echo "Creating system ace file" - @echo "*********************************************" - xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT) -target ppc_hw -ace $(SYSTEM_ACE) - -################################################################# -# EXPORT_TO_SDK FLOW -################################################################# - - -$(SYSTEM_HW_HANDOFF): $(MHSFILE) __xps/platgen.opt - mkdir -p $(SDK_EXPORT_DIR) - psf2Edward.exe -inp $(SYSTEM).xmp -xml $(SDK_EXPORT_DIR)/$(SYSTEM).xml $(SEARCHPATHOPT) - xdsgen.exe -inp $(SYSTEM).xmp -report $(SDK_EXPORT_DIR)/$(SYSTEM).html $(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 \ - $(WRAPPER_NGC_FILES) \ - $(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 ################## - -implementation/$(SYSTEM).ncd: __xps/$(SYSTEM)_routed - -$(TIMING_SIM_SCRIPT): implementation/$(SYSTEM).ncd __xps/simgen.opt \ - $(BRAMINIT_ELF_FILES) - @echo "*********************************************" - @echo "Creating timing simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE) - -dummy: - @echo "" - diff --git a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make b/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make deleted file mode 100644 index 8330c1299f9..00000000000 --- a/FreeRTOS/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/system_incl.make +++ /dev/null @@ -1,153 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_DP_FPU_Xilinx_Virtex5_GCC\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/11.1/EDK -NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/11.1/EDK - -SYSTEM = system - -MHSFILE = system.mhs - -MSSFILE = system.mss - -FPGA_ARCH = virtex5 - -DEVICE = xc5vfx70tff1136-1 - -LANGUAGE = vhdl - -SEARCHPATHOPT = - -SUBMODULE_OPT = - -PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) -msg __xps/ise/xmsgprops.lst - -LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst - -OBSERVE_PAR_OPTIONS = -error yes - -RTOSDEMO_OUTPUT_DIR = RTOSDemo -RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf - -MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf -PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf -PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf -BOOTLOOP_DIR = bootloops - -PPC440_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc440_0.elf - -BRAMINIT_ELF_FILES = $(PPC440_0_BOOTLOOP) -BRAMINIT_ELF_FILE_ARGS = -pe ppc440_0 $(PPC440_0_BOOTLOOP) - -ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) - -SIM_CMD = vsim - -BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do - -STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do - -TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do - -DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT) - -MIX_LANG_SIM_OPT = -mixed no - -SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT) -msg __xps/ise/xmsgprops.lst -sd implementation/ -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/ - - -LIBRARIES = \ - ppc440_0/lib/libxil.a - -LIBSCLEAN_TARGETS = ppc440_0_libsclean - -PROGRAMCLEAN_TARGETS = RTOSDemo_programclean - -CORE_STATE_DEVELOPMENT_FILES = - -WRAPPER_NGC_FILES = implementation/ppc440_0_wrapper.ngc \ -implementation/plb_v46_0_wrapper.ngc \ -implementation/xps_bram_if_cntlr_1_wrapper.ngc \ -implementation/xps_bram_if_cntlr_1_bram_wrapper.ngc \ -implementation/rs232_uart_1_wrapper.ngc \ -implementation/leds_8bit_wrapper.ngc \ -implementation/leds_positions_wrapper.ngc \ -implementation/push_buttons_5bit_wrapper.ngc \ -implementation/dip_switches_8bit_wrapper.ngc \ -implementation/iic_eeprom_wrapper.ngc \ -implementation/sram_wrapper.ngc \ -implementation/pcie_bridge_wrapper.ngc \ -implementation/ppc440_0_splb0_wrapper.ngc \ -implementation/ethernet_mac_wrapper.ngc \ -implementation/ddr2_sdram_wrapper.ngc \ -implementation/sysace_compactflash_wrapper.ngc \ -implementation/ppc440_0_fcb_v20_wrapper.ngc \ -implementation/ppc440_0_apu_fpu_virtex5_wrapper.ngc \ -implementation/clock_generator_0_wrapper.ngc \ -implementation/jtagppc_cntlr_inst_wrapper.ngc \ -implementation/proc_sys_reset_0_wrapper.ngc \ -implementation/xps_intc_0_wrapper.ngc - -POSTSYN_NETLIST = implementation/$(SYSTEM).ngc - -SYSTEM_BIT = implementation/$(SYSTEM).bit - -DOWNLOAD_BIT = implementation/download.bit - -SYSTEM_ACE = implementation/$(SYSTEM).ace - -UCF_FILE = data/system.ucf - -BMM_FILE = implementation/$(SYSTEM).bmm - -BITGEN_UT_FILE = etc/bitgen.ut - -XFLOW_OPT_FILE = etc/fast_runtime.opt -XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE) - -XPLORER_DEPENDENCY = __xps/xplorer.opt -XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7 - -FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(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) - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDEMO_SOURCES = /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 - -RTOSDEMO_HEADERS = - -RTOSDEMO_CC = powerpc-eabi-gcc -RTOSDEMO_CC_SIZE = powerpc-eabi-size -RTOSDEMO_CC_OPT = -O0 -RTOSDEMO_CFLAGS = -D USE_DP_FPU -D GCC_PPC440 -mregnames -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_DP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_PROFILE_FLAG = # -pg -RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi -RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=dp_full -mcpu=440 -RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE= -RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE= -RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \ - $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG) \ - $(RTOSDEMO_CC_INFERRED_FLAGS) \ - $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG) diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl deleted file mode 100644 index bf9bf948866..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl deleted file mode 100644 index 8de3842e476..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl deleted file mode 100644 index 990af6c6b8c..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl deleted file mode 100644 index db7f0f354fd..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl +++ /dev/null @@ -1,580 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UNKNOWN Text style class - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl deleted file mode 100644 index cf3864ebcbc..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl +++ /dev/null @@ -1,2757 +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/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl deleted file mode 100644 index 3fc2afe861f..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowInitiator - BusArrowSouth - - - - - - BusArrowInitiator - BusArrowNorth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowWest - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl deleted file mode 100644 index b91a5790e99..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl +++ /dev/null @@ -1,1110 +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/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl deleted file mode 100644 index 9d6fe70b132..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__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/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl deleted file mode 100644 index ec0c0e54e9e..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl +++ /dev/null @@ -1,490 +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/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl deleted file mode 100644 index a2f9a448023..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl +++ /dev/null @@ -1,1549 +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/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl deleted file mode 100644 index d4c458d2ec6..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__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/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl deleted file mode 100644 index 9eb7a20bf82..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SLAVES OF - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "_no_interrupt_cntlr_" - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl deleted file mode 100644 index 7cbfab27813..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd deleted file mode 100644 index 110f5ced590..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd +++ /dev/null @@ -1,1704 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt deleted file mode 100644 index a0575e42f18..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/bitinit.opt +++ /dev/null @@ -1 +0,0 @@ - $(PPC440_0_BOOTLOOP) diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise deleted file mode 100644 index fb514ece41c..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.gise +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 11.1 - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.ise deleted file mode 100644 index 2d12c2ceed546a48c6817f98a069aa4b35147b04..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 170265 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 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise deleted file mode 100644 index 510ac7ebfcc..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system.xise +++ /dev/null @@ -1,42 +0,0 @@ - - - -
- - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock deleted file mode 100644 index 87a4f5bfa3fdae0745e0f467407b4aafdf2a90ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 240 zcma)$OACTP6op$GLO;QMkmI98ZYK@eB-v|m;bL`(DQA?KN%Y@mZE6{u)p_up2~Qw} zCAE-gqU~-|z_Hd3p>Dix`e;aG4SCMvm|>A)mhbT-Dxo?&2yLmG>2~Y5SZRr zlGt6(zLkwXSgw;MAbV_deW!~xa1_>(8frp;ri#k}W7 T7es@SfF&{WLdF)ZGagM};HFb1 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject deleted file mode 100644 index 4627dbf5dfe60866a01bc5d29f2ac892555cdb9c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 201 zcmb78K@I>Q2tuv@Ke@p4*jj9Y6E+0g!C3_mCL(Agj2G>JXsetfQONA;BNZ-^;^C1O-+=drXl2AD)TA$Zu!+H0*x5iM*|Gm%5 z?ViseQL7qc`R-=t^_gepHa6t*^~P5lR!wzPs$7%4RR!Id!q_`nJo@DRK{>_E(z~3F zbm&+5t@f31mKICgC!$IR8sqB(`lvHDg~r8BxC@>3(=!#WsUx?#^vc)~g=`J9e>SUegIC!APYF0qr(VLV0 zB~{@b<{+TG3eL+BGp5A=dX1gH!n9Og({`cl1n&Msy(|lP@u4hK7&|}ROh2}$Ge-<= zUUjbM#S7YvxrpfyAD)X3XYnYRiWI%857DjiMp*<^Ihs}M)6{I|u5ebITBgj^MUmXW z6~w%G*?-+Xx!hs_xIQp;>`334DpXVp9RC?bt~gI96N}=*xoN2ze00eBpukCvl2tb+ zskaimq8_5TVkP2LmrmTA3g>RPZd&Enl74byDGQf^W;U3D=3HLXSBURDXs(@X( z04J%TgYP4!EBg)TB)C%G&IA#eieuV=EVp!3%|N3FNd4-z8GygTh#c60Q;Q6{eQz~6`|O>Xz)BYMUh~$D_t0Q znWtkj%n03?E`I#JlN^t_0Dy>5>+JU5+9MCj1H3he%=n2YMvsvK@mH=`Q?L)vpn@De zCh*i$yhZ@?j)b<{cuaF|f*N8G2u)64Tau*$7=1VkXtrJ(*tFeNrncv?9!t^%(9c zRBECx^c@=F-OKZn{>f2RGfV>KTva4gQGr@VG&dNuDnd2&L~K^{JfUIDM7EswmQj$@ zNXP<)A&3bbyb7L|k($Q>)Wc;SKaesO`=J>rAen~u5CI6H#b)$$sb6n#yrnr%UA-Q~ zG{|7)8=5M&$Wv#eeevJ6{kmR+14W?A9X=xAnMo1w>2 zrK>2)Sv7qNo*VOuyW6@Q{WvgKKGc2lNSZH>$|xPH)6z4zlr1&O_Dwj;GA280rOLtt zwy5MC{OM;||G2K|K{4qc2q!T>)(W0{81z~;L}_yTKWi1f`y{l-Yny3py-UZ+0&9S! zBg{>Jh^Yoshw04GD5gc>mnz((*-=ecWo12z3lmWBPTvY=1+JJ34aVWy__nZl!lb&D zc81!QHuUdHP0!XWK&DI2;2maD1qVmM6$+El%ZRG|!ywL!cV3m8^bdWD#>&gGncsk( zw4S!JDUgf+A)fH`&y9V74hb!&DkLA7Oz1fNRU7v?kk%>%88{1_}MC z;wx-WdQ_*exneG8E;u`T_-k%NM?0s#cd+o`zXh;mbY@8c=W|_Q0l9iO8nBu$t6-FC z@11|bBr#M&klIk^ir-7HhhTx>J%~A-xJBz1ujcg(Df}GMz65=MCgxzil*3{ cDbt^8+H{O#ifhl_qow?<8cyh-z5Hza1MrurlmGw# diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main deleted file mode 100644 index 336370f8091a49f5e89f82fedc83a9ed04bd24ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 VcmZQzU}9nb;{Q;<00ev>0sw562oC@N diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl deleted file mode 100644 index 359501c5e254de720bb0edd97879dcdaa4c50d01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10 NcmZQz00RyN1^@se00{s9 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module deleted file mode 100644 index 8947873d0af86aefd32bad2f1c40d57033091203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27 XcmZQzU}9nb;{Q;<00fL6f`JhLd|Lny_T*f!EcE^S z4;rsO(R_<6yz#*oKl}+GkRXByA(Sw}iNHpr(I}#cA(lAexgmi>>?Co^9rrwllX>Kc zXI{i9ypl>9={U$BlPt2yQJ%{idE`?-Aw?8ZLMdgG>mToYP@!8TRa9%Q5!X^jJqqoh|!AN`^M1{q?Q5%DNvjLScDonTTlC7NbNWM`H+ z=C#{cFuKT+e3=y`tE{ok2Ak%xWptYzcG+W}1G67;#Id?3oN^{V=YmW5m)^eO8h!zw CA~(YT diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl deleted file mode 100644 index 286be7aed9225129b667af166a2155222d704586..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23174 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 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-DataFactory-Default deleted file mode 100644 index 7417703108b2e8c410dea5ab66c830d5ddee97a5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 387 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 G`QZNuOk=SC diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys deleted file mode 100644 index 312c4fb5579..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys +++ /dev/null @@ -1,24 +0,0 @@ -CommandLine-Map - -s -CommandLine-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/implementation/system.ngc -uc system.ucf system.ngd -s -CommandLine-Par - -s -CommandLine-Xst - -s -Previous-NGD - -s -Previous-NGM - -s -Previous-Packed-NCD - -s -Previous-Routed-NCD - -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys deleted file mode 100644 index 4bd7af1202f..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ISE_VERSION_LAST_SAVED_WITH -11.1 -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys deleted file mode 100644 index f90e0607f3b..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys +++ /dev/null @@ -1,6 +0,0 @@ -ISE_VERSION_LAST_SAVED_WITH -11.1 -s -XISE_FILE -system.xise -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys deleted file mode 100644 index 87cda855f52..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/XSLTProcess.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys deleted file mode 100644 index 9e6460f85c7..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys +++ /dev/null @@ -1,21 +0,0 @@ -ISE_VERSION_CREATED_WITH -11.1 -s -ISE_VERSION_LAST_SAVED_WITH -11.2 -s -LastRepoDir -E:\my_projects\Wittenstein\release\svn\main2\FreeRTOS\Demo\PPC440_FPU_Xilinx_Virtex5_GCC\__xps\ise\ -s -OBJSTORE_VERSION -1.3 -s -PROJECT_CREATION_TIMESTAMP -2009-06-13T13:10:25 -s -REGISTRY_VERSION -1.1 -s -REPOSITORY_VERSION -1.1 -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys deleted file mode 100644 index 949818c6173..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/bitgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys deleted file mode 100644 index dae1ec74d53..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/bitinit.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys deleted file mode 100644 index fac2f6efe86..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys +++ /dev/null @@ -1,12 +0,0 @@ -IncrementalMessagingEnabled -true -s -MessageCaptureEnabled -true -s -MessageFilterFile -filter.filter -s -MessageFilteringEnabled -true -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys deleted file mode 100644 index f3969b3ea31..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/cpldfit.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys deleted file mode 100644 index 7e5b4bbcd93..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/dumpngdio.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys deleted file mode 100644 index 77fa32d329a..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/fuse.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys deleted file mode 100644 index e654ecd77a8..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/hprep6.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys deleted file mode 100644 index 7b9c3214a38..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/idem.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys deleted file mode 100644 index a2612daebe2..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/libgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys deleted file mode 100644 index 447e64cb99d..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/map.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys deleted file mode 100644 index b15e57f9706..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/netgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys deleted file mode 100644 index 2cb66e46713..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngc2edif.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys deleted file mode 100644 index af67ad18649..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngcbuild.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys deleted file mode 100644 index 47ac460f454..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngdbuild.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys deleted file mode 100644 index 17ae8fbf3d2..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/par.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys deleted file mode 100644 index d4497d267ef..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/platgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys deleted file mode 100644 index d5e13d0a748..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/runner.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys deleted file mode 100644 index e12ea3860cc..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/simgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys deleted file mode 100644 index fc0b0383246..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/taengine.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys deleted file mode 100644 index cffe0cfaa0d..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/trce.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys deleted file mode 100644 index 52a3e8bb03d..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/tsim.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys deleted file mode 100644 index 2d5cd6a1f48..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/vhpcomp.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys deleted file mode 100644 index 9a5c2fab9fd..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/vlogcomp.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys deleted file mode 100644 index c3f895c3925..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/xpwr.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys deleted file mode 100644 index 5b1ae90bb07..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/xst.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version deleted file mode 100644 index 9ec2fe0a6f4..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version +++ /dev/null @@ -1,10 +0,0 @@ -REPOSITORY_VERSION -1.1 -REGISTRY_VERSION -1.1 -OBJSTORE_VERSION -1.3 -ISE_VERSION_CREATED_WITH -11.1 -ISE_VERSION_LAST_SAVED_WITH -11.2 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt deleted file mode 100644 index 55880074d8a..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/libgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex5 -msg __xps/ise/xmsgprops.lst diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt deleted file mode 100644 index 58d810347af..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/platgen.opt +++ /dev/null @@ -1,2 +0,0 @@ - -p xc5vfx70tff1136-1 -lang vhdl -msg __xps/ise/xmsgprops.lst - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt deleted file mode 100644 index f81b922b42d..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt +++ /dev/null @@ -1,20 +0,0 @@ -ppc440_0 -RTOSDEMO_SOURCES = /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 -RTOSDEMO_HEADERS = -RTOSDEMO_CC = powerpc-eabi-gcc -RTOSDEMO_CC_SIZE = powerpc-eabi-size -RTOSDEMO_CC_OPT = -O0 -RTOSDEMO_CFLAGS = -D GCC_PPC440 -mregnames -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_PROFILE_FLAG = # -pg -RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi -RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=sp_full -mcpu=440 -RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE= -RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE= - $(RTOSDEMO_CC_INFERRED_FLAGS) \ diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt deleted file mode 100644 index d15e8cc45ee..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/simgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex5 -lang vhdl $(PPC440_0_BOOTLOOP) -msg __xps/ise/xmsgprops.lst -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/ diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters deleted file mode 100644 index a1a9109c9bf..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.filters +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui deleted file mode 100644 index f71b66e9c07..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/system.gui +++ /dev/null @@ -1,103 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt deleted file mode 100644 index 53ea0c72f27..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xplorer.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc5vfx70tff1136-1 data/system.ucf 7 0 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt deleted file mode 100644 index b8fbf7ab12d..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc5vfx70tff1136-1 data/system.ucf 0 diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd deleted file mode 100644 index 110f5ced590..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd +++ /dev/null @@ -1,1704 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css deleted file mode 100644 index 0d7b46bd6e5..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.css +++ /dev/null @@ -1,446 +0,0 @@ - - text.bif_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.debug_label { - fill: #555555; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - text.ionum_label { - fill: #555555; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iogrp_label { - fill: #000088; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - tspan.iogrp_label_super { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - baseline-shift:super; - font-family: Arial Courier san-serif; - } - - text.p2pbus_label { - fill: #000000; - stroke: none; - font-size: 10pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - writing-mode: tb; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.multip_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - writing-mode: tb; - font-family: Verdana Arial Helvetica sans-serif; - } - - - - text.bc_iplabel { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.bc_iptype { - fill: #AA0017; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.splitbus_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: sans-serif; - } - - text.sharedbus_label { - fill: #000000; - stroke: none; - font-size: 10pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - - text.p2pbus_label_horiz { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - - - text.key_title { - fill: #AA0017; - stroke: none; - font-size: 12pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Helvetica sans-serif; - } - - text.key_header { - fill: #000000; - stroke: none; - font-size: 10pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Helvetica sans-serif; - } - - text.key_label { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.key_label_ul { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - text-decoration: underline; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.specs_header { - fill: #000000; - stroke: none; - font-size: 10pt; - font-weight: bold; - text-anchor: start; - font-family: Arial Helvetica sans-serif; - } - - text.specs_start { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.specs_middle { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.intr_symbol { - fill: #000000; - stroke: none; - font-size: 8pt; - font-weight: bold; - text-anchor: start; - font-family: Arial Helvetica sans-serif; - } - - text.busintlabel { - fill: #810017; - stroke: none; - font-size: 7pt; - font-style: italic; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mpmctitle { - fill: #FFFFFF; - stroke: none; - font-size: 16pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Verdana Helvetica sans-serif; - } - - text.mpmcbiflabel { - fill: #FFFFFF; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - - } - - text.buslabel { - fill: #CC3333; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iplabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: 800; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.iptype { - fill: #AA0017; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: start; - font-family: Times Arial Helvetica sans-serif; - } - - text.procclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - - text.portlabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipdbiflbl { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmMHeader { - fill: #FFFFFF; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmSHeader { - fill: #810017; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.busintlabel { - fill: #810017; - stroke: none; - font-size: 7pt; - font-style: italic; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mpmctitle { - fill: #FFFFFF; - stroke: none; - font-size: 16pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Verdana Helvetica sans-serif; - } - - text.mpmcbiflabel { - fill: #FFFFFF; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - - } - - text.buslabel { - fill: #CC3333; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iplabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: 800; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.iptype { - fill: #AA0017; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: start; - font-family: Times Arial Helvetica sans-serif; - } - - text.procclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - - text.portlabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipdbiflbl { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmMHeader { - fill: #FFFFFF; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmSHeader { - fill: #810017; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg deleted file mode 100644 index 5e75ba44ba0..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/blockdiagram/system.svg +++ /dev/null @@ -1,1113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - plb_v46_0 - - - - - - - - - - xps_ethernetlite - Ethernet_MAC - - - SPLB - - - - - xps_gpio - LEDs_8Bit - - - SPLB - - - - - xps_gpio - LEDs_Positions - - - SPLB - - - - - xps_gpio - Push_Buttons_5Bit - - - SPLB - - - - - xps_gpio - DIP_Switches_8Bit - - - SPLB - - - - - xps_iic - IIC_EEPROM - - - SPLB - - - - - xps_intc - xps_intc_0 - - - SPLB - - - 0 - - - - - xps_mch_emc - SRAM - - - SPLB - - - - - xps_sysace - SysACE_CompactFlash - - - SPLB - - - - - xps_uartlite - RS232_Uart_1 - - - SPLB - - - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - clock_generator - clock_generator_0 - - - - - - - - - plbv46_pcie - PCIe_Bridge - - - SPLB - - - MPLB - - - - - ppc440mc_ddr2 - DDR2_SDRAM - - - PPC4 - - - - - apu_fpu_virtex5 - ppc440_0_apu_fpu_virtex5 - - - SFCB2 - - - - - jtagppc_cntlr - jtagppc_cntlr_inst - - - JTAG - - - - - proc_sys_reset - proc_sys_reset_0 - - - RESE - - - - - ppc440_virtex5 - ppc440_0 - - - MPLB - - - SPLB0 - - - PPC4 - - - MFCB - - - JTAG - - - RESE - - - - 0 - - - - - - - - - - SLAVES OF plb_v46_0 - - PROCESSOR - - - - - bram_block - xps_bram_if_cntlr_1_bram - - PORTA - - - - - xps_bram_if_cntlr - xps_bram_if_cntlr_1 - - - SPLB - - PORTA - - - - - - - - - - - - - ppc440_0_SPLB0 - - - - - - - - ppc440_0_PPC440MC - - - - - - - - ppc_reset_bus - - - - - - - - - - - - - - - ppc440_0_fcb_v20 - - - - - - - - ppc440_0_jtagppc_bus - - - - - - - - - - - - - - - - - - x - - - - - - x - - - - - y - x - - - - - KEY - - SYMBOLS - - bus interface - - shared bus - Bus connections - - master or initiator - - slave or target - - master slave - - monitor - External Ports - - monitor - - output - - inout - Interrupts - - interrupt - controller - - interrupted - processor - - interrupt - source - x = controller ID - y = priority - - COLORS - Bus Standards - - DCR - - FCB - - FSL - - LMB - - OPB - - PLB - - SOCM - - Xilinx P2P - - USER P2P - - - - - SPECS - - EDK VERSION - 11.1 - - ARCH - virtex5 - - PART - xc5vfx70tff1136-1 - - GENERATED - Tue Jun 23 13:32:12 2009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IP - - - - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make deleted file mode 100644 index f339e79f7ab..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system.make +++ /dev/null @@ -1,278 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -# Name of the Microprocessor system -# The hardware specification of the system is in file : -# C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mhs -# The software specification of the system is in file : -# C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.mss - -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 " libs : Configures the sw libraries for this system" - @echo " program : Compiles the program sources for all the processor instances" - @echo " " - @echo " init_bram: Initializes bitstream with BRAM data" - @echo " ace : Generate ace file from bitstream and elf" - @echo " download : Downloads the bitstream onto the board" - @echo " " - @echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode" - @echo " simmodel : Generates HDL simulation models for chosen simulation mode" - @echo " behavioral_model : Generates behavioral HDL models with BRAM initialization" - @echo " structural_model : Generates structural simulation HDL models with BRAM initialization" - @echo " timing : Generates timing simulation HDL models with BRAM initialization" - @echo " " - @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 " 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) - -exporttosdk: $(SYSTEM_HW_HANDOFF_DEP) - -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) - -clean: hwclean libsclean programclean 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 __xps/$(SYSTEM)_routed - -simclean: - rm -rf simulation/behavioral - rm -f simgen.log - rm -f __xps/ise/_xmsgs/simgen.xmsgs - -swclean: libsclean programclean - @echo "" - -libsclean: $(LIBSCLEAN_TARGETS) - rm -f libgen.log - rm -f __xps/ise/_xmsgs/libgen.xmsgs - -programclean: $(PROGRAMCLEAN_TARGETS) - -################################################################# -# SOFTWARE PLATFORM FLOW -################################################################# - - -$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt - @echo "*********************************************" - @echo "Creating software libraries..." - @echo "*********************************************" - libgen $(LIBGEN_OPTIONS) $(MSSFILE) - - -ppc440_0_libsclean: - rm -rf ppc440_0/ - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDemo_program: $(RTOSDEMO_OUTPUT) - -$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \ - $(LIBRARIES) __xps/rtosdemo_compiler.opt - @mkdir -p $(RTOSDEMO_OUTPUT_DIR) - $(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \ - $(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \ - $(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) - $(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) - @echo "" - -RTOSDemo_programclean: - rm -f $(RTOSDEMO_OUTPUT) - -################################################################# -# BOOTLOOP ELF FILES -################################################################# - - - -$(PPC440_0_BOOTLOOP): $(PPC440_BOOTLOOP) - @mkdir -p $(BOOTLOOP_DIR) - cp -f $(PPC440_BOOTLOOP) $(PPC440_0_BOOTLOOP) - -################################################################# -# HARDWARE IMPLEMENTATION FLOW -################################################################# - - -$(BMM_FILE) \ -$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \ - $(CORE_STATE_DEVELOPMENT_FILES) - @echo "****************************************************" - @echo "Creating system netlist for hardware specification.." - @echo "****************************************************" - platgen $(PLATGEN_OPTIONS) $(MHSFILE) - -$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES) - @echo "Running synthesis..." - bash -c "cd synthesis; ./synthesis.sh" - -__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY) - @echo "*********************************************" - @echo "Running Xilinx Implementation tools.." - @echo "*********************************************" - @cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf - @cp -f etc/fast_runtime.opt implementation/xflow.opt - xflow -wd implementation -p $(DEVICE) -implement xflow.opt -ise ../__xps/ise/$(SYSTEM).ise $(SYSTEM).ngc - touch __xps/$(SYSTEM)_routed - -$(SYSTEM_BIT): __xps/$(SYSTEM)_routed $(BITGEN_UT_FILE) - xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par - @echo "*********************************************" - @echo "Running Bitgen.." - @echo "*********************************************" - @cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut - cd implementation; bitgen -w -f bitgen.ut $(SYSTEM); cd .. - -$(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 -p $(DEVICE) $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \ - -bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT) - @rm -f $(SYSTEM)_bd.bmm - -$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) - @echo "*********************************************" - @echo "Creating system ace file" - @echo "*********************************************" - xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT) -target ppc_hw -ace $(SYSTEM_ACE) - -################################################################# -# EXPORT_TO_SDK FLOW -################################################################# - - -$(SYSTEM_HW_HANDOFF): $(MHSFILE) __xps/platgen.opt - mkdir -p $(SDK_EXPORT_DIR) - psf2Edward.exe -inp $(SYSTEM).xmp -xml $(SDK_EXPORT_DIR)/$(SYSTEM).xml $(SEARCHPATHOPT) - xdsgen.exe -inp $(SYSTEM).xmp -report $(SDK_EXPORT_DIR)/$(SYSTEM).html $(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 \ - $(WRAPPER_NGC_FILES) \ - $(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 ################## - -implementation/$(SYSTEM).ncd: __xps/$(SYSTEM)_routed - -$(TIMING_SIM_SCRIPT): implementation/$(SYSTEM).ncd __xps/simgen.opt \ - $(BRAMINIT_ELF_FILES) - @echo "*********************************************" - @echo "Creating timing simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE) - -dummy: - @echo "" - diff --git a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make b/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make deleted file mode 100644 index e4c4772325e..00000000000 --- a/FreeRTOS/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/system_incl.make +++ /dev/null @@ -1,153 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_SP_FPU_Xilinx_Virtex5_GCC\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/11.1/EDK -NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/11.1/EDK - -SYSTEM = system - -MHSFILE = system.mhs - -MSSFILE = system.mss - -FPGA_ARCH = virtex5 - -DEVICE = xc5vfx70tff1136-1 - -LANGUAGE = vhdl - -SEARCHPATHOPT = - -SUBMODULE_OPT = - -PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) -msg __xps/ise/xmsgprops.lst - -LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst - -OBSERVE_PAR_OPTIONS = -error yes - -RTOSDEMO_OUTPUT_DIR = RTOSDemo -RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf - -MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf -PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf -PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf -BOOTLOOP_DIR = bootloops - -PPC440_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc440_0.elf - -BRAMINIT_ELF_FILES = $(PPC440_0_BOOTLOOP) -BRAMINIT_ELF_FILE_ARGS = -pe ppc440_0 $(PPC440_0_BOOTLOOP) - -ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) - -SIM_CMD = vsim - -BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do - -STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do - -TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do - -DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT) - -MIX_LANG_SIM_OPT = -mixed no - -SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT) -msg __xps/ise/xmsgprops.lst -sd implementation/ -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/ - - -LIBRARIES = \ - ppc440_0/lib/libxil.a - -LIBSCLEAN_TARGETS = ppc440_0_libsclean - -PROGRAMCLEAN_TARGETS = RTOSDemo_programclean - -CORE_STATE_DEVELOPMENT_FILES = - -WRAPPER_NGC_FILES = implementation/ppc440_0_wrapper.ngc \ -implementation/plb_v46_0_wrapper.ngc \ -implementation/xps_bram_if_cntlr_1_wrapper.ngc \ -implementation/xps_bram_if_cntlr_1_bram_wrapper.ngc \ -implementation/rs232_uart_1_wrapper.ngc \ -implementation/leds_8bit_wrapper.ngc \ -implementation/leds_positions_wrapper.ngc \ -implementation/push_buttons_5bit_wrapper.ngc \ -implementation/dip_switches_8bit_wrapper.ngc \ -implementation/iic_eeprom_wrapper.ngc \ -implementation/sram_wrapper.ngc \ -implementation/pcie_bridge_wrapper.ngc \ -implementation/ppc440_0_splb0_wrapper.ngc \ -implementation/ethernet_mac_wrapper.ngc \ -implementation/ddr2_sdram_wrapper.ngc \ -implementation/sysace_compactflash_wrapper.ngc \ -implementation/ppc440_0_fcb_v20_wrapper.ngc \ -implementation/ppc440_0_apu_fpu_virtex5_wrapper.ngc \ -implementation/clock_generator_0_wrapper.ngc \ -implementation/jtagppc_cntlr_inst_wrapper.ngc \ -implementation/proc_sys_reset_0_wrapper.ngc \ -implementation/xps_intc_0_wrapper.ngc - -POSTSYN_NETLIST = implementation/$(SYSTEM).ngc - -SYSTEM_BIT = implementation/$(SYSTEM).bit - -DOWNLOAD_BIT = implementation/download.bit - -SYSTEM_ACE = implementation/$(SYSTEM).ace - -UCF_FILE = data/system.ucf - -BMM_FILE = implementation/$(SYSTEM).bmm - -BITGEN_UT_FILE = etc/bitgen.ut - -XFLOW_OPT_FILE = etc/fast_runtime.opt -XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE) - -XPLORER_DEPENDENCY = __xps/xplorer.opt -XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7 - -FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(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) - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDEMO_SOURCES = /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 - -RTOSDEMO_HEADERS = - -RTOSDEMO_CC = powerpc-eabi-gcc -RTOSDEMO_CC_SIZE = powerpc-eabi-size -RTOSDEMO_CC_OPT = -O0 -RTOSDEMO_CFLAGS = -D GCC_PPC440 -mregnames -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../../Source/portable/GCC/PPC440_Xilinx -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_SP_FPU_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_PROFILE_FLAG = # -pg -RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi -RTOSDEMO_CC_INFERRED_FLAGS= -mfpu=sp_full -mcpu=440 -RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE= -RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE= -RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \ - $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG) \ - $(RTOSDEMO_CC_INFERRED_FLAGS) \ - $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG) diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl deleted file mode 100644 index bf9bf948866..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgBLKD_Dimensions.xsl +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl deleted file mode 100644 index 8de3842e476..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Colors.xsl +++ /dev/null @@ -1,134 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl deleted file mode 100644 index 990af6c6b8c..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_Globals.xsl +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl deleted file mode 100644 index db7f0f354fd..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtSvgDiag_StyleDefs.xsl +++ /dev/null @@ -1,580 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - UNKNOWN Text style class - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl deleted file mode 100644 index cf3864ebcbc..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_BusLaneSpaces.xsl +++ /dev/null @@ -1,2757 +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/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl deleted file mode 100644 index 3fc2afe861f..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Busses.xsl +++ /dev/null @@ -1,534 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowInitiator - BusArrowSouth - - - - - - BusArrowInitiator - BusArrowNorth - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowWest - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - BusArrowHInitiator - BusArrowEast - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl deleted file mode 100644 index b91a5790e99..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Functions.xsl +++ /dev/null @@ -1,1110 +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/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Globals.xsl deleted file mode 100644 index 9d6fe70b132..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__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/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl deleted file mode 100644 index ec0c0e54e9e..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_IOPorts.xsl +++ /dev/null @@ -1,490 +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/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl deleted file mode 100644 index a2f9a448023..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Main.xsl +++ /dev/null @@ -1,1549 +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/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Peripherals.xsl deleted file mode 100644 index d4c458d2ec6..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__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/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl deleted file mode 100644 index 9eb7a20bf82..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgBLKD_Processors.xsl +++ /dev/null @@ -1,462 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SLAVES OF - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "_no_interrupt_cntlr_" - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl deleted file mode 100644 index 7cbfab27813..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/MdtTinySvgDiag_BifShapes.xsl +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd deleted file mode 100644 index 110f5ced590..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/.dswkshop/svg10.dtd +++ /dev/null @@ -1,1704 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt deleted file mode 100644 index a0575e42f18..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/bitinit.opt +++ /dev/null @@ -1 +0,0 @@ - $(PPC440_0_BOOTLOOP) diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs deleted file mode 100644 index 054e8b25e6e..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/map.xmsgs +++ /dev/null @@ -1,254 +0,0 @@ - - - -The command line option -timing is automatically supported for this architecture. Therefore, it is not necessary to specify this option. - - -Logical network N194 has no load. - - -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. - - -No environment variables are currently set. - - -Net Timing constraints on signal fpga_0_SysACE_CompactFlash_SysACE_CLK_pin are pushed forward through input buffer. - - -PLL_ADV clock_generator_0/clock_generator_0/Using_PLL0.PLL0_INST/PLL_INST/Using_PLL_ADV.PLL_ADV_inst CLKIN2 pin was disconnected because a constant 1 is driving the CLKINSEL pin. - - -Signal fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin connected to top level port fpga_0_SysACE_CompactFlash_SysACE_MPIRQ_pin has been removed. - - -Signal fpga_0_Ethernet_MAC_PHY_col_pin connected to top level port fpga_0_Ethernet_MAC_PHY_col_pin has been removed. - - -All members of TNM group "ppc440_0_PPCS0PLBMBUSY" have been optimized out of the design. - - -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 - - -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 - - -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 - - -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 - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapper_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_wrapper_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAU_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapper_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_wrapper_i/bram_tl_tx/generate_tdp2[0].ram_tdp2_inst_REGCLKAL_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapper_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_wrapper_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAU_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/pcie_mim_wrapper_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_wrapper_i/bram_tl_tx/generate_tdp2[1].ram_tdp2_inst_REGCLKAL_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/rx_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/rx_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKU_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk_if/ll_bridge/rx_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/rx_bridge/fifo_inst/oq_fifo/Mram_regBank_RDRCLKL_tiesig - - -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 - - -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 - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/mem/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/mem/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_master_bridge/RxSFIFO_64.RxSFIFO/BU2/U0/grf.rf/mem/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/mem/gbm.gbmg.gbmga.ngecc.bmg/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COMP_TX_RAM_70.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_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COMP_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKU_tiesig - - -Trimming timing constraints from pin PCIe_Bridge/PCIe_Bridge/comp_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COMP_TX_RAM_70.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_slave_bridge/GEN_TX_64_FIFO.comp_tx_pkt_fifo/COMP_TX_RAM_70.dpram/BU2/U0/blk_mem_generator/valid.cstr/ramloop[0].ram.r/v5_noinit.ram/SDP.WIDE_PRIM36.noeccerr.SDP_RDRCLKL_tiesig - - -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_PRIM36.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_PRIM36.noeccerr.SDP_RDRCLKU_tiesig - - -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_PRIM36.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_PRIM36.noeccerr.SDP_RDRCLKL_tiesig - - -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) - - -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. - -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. - -The Interim Design Summary has been generated in the MAP Report (.mrp). - - -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 - - - - -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 - - - - -Map created a placed design. - - -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. - - -Gated clock. Clock net PCIe_Bridge/PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_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. - - -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. - - -The signal <PCIe_Bridge/PCIe_Bridge/sig_sb_txrem_n<0>> is incomplete. The signal does not drive any load pins in the design. - - -The signal <PCIe_Bridge/PCIe_Bridge/sig_MB_TxREMn<0>> is incomplete. The signal does not drive any load pins in the design. - - -The signal <xps_bram_if_cntlr_1_port_BRAM_Addr<30>> is incomplete. The signal does not drive any load pins in the design. - - -The signal <xps_bram_if_cntlr_1_port_BRAM_Addr<31>> is incomplete. The signal does not drive any load pins in the design. - - -The signal <PCIe_Bridge/PCIe_Bridge/sig_MB_RxFull> is incomplete. The signal does not drive any load pins in the design. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[1].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[1].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[4].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[4].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[7].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[7].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[2].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[2].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[5].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[5].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[0].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[0].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[3].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[3].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[6].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The Q1 output pin of IFF is not used. - - -Dangling pins on block:<DDR2_SDRAM/DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[6].u_iob_dqs/u_iddr_dq_ce>:<ILOGIC_IFF>. The SR pin is used for the IFF Flip-flop but the SRVAL_Q1 set/reset value is not configured. - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs deleted file mode 100644 index f84336aac5d..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngcbuild.xmsgs +++ /dev/null @@ -1,9 +0,0 @@ - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs deleted file mode 100644 index 3372d048180..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/ngdbuild.xmsgs +++ /dev/null @@ -1,1073 +0,0 @@ - - - -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. - - -Constraint <TIMESPEC "TS_MC_RD_DATA_SEL" = FROM "TNM_RD_DATA_SEL" TO "TNM_CLK0" "TS_clk_div_slow_0_clk_div_slow_0_DDR2_CLK_i" * 4;> [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. - - -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: <TIMESPEC TS_clock_generator_0_clock_generator_0_PLL0_CLK_OUT_0_ = PERIOD "clock_generator_0_clock_generator_0_PLL0_CLK_OUT_0_" TS_sys_clk_pin * 1.25 PHASE 2 ns HIGH 50%> - - -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: <TIMESPEC TS_clock_generator_0_clock_generator_0_PLL0_CLK_OUT_1_ = PERIOD "clock_generator_0_clock_generator_0_PLL0_CLK_OUT_1_" TS_sys_clk_pin * 1.25 HIGH 50%> - - -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: <TIMESPEC TS_clock_generator_0_clock_generator_0_PLL0_CLK_OUT_2_ = PERIOD "clock_generator_0_clock_generator_0_PLL0_CLK_OUT_2_" TS_sys_clk_pin * 1.25 HIGH 50%> - - -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: <TIMESPEC TS_clock_generator_0_clock_generator_0_PLL0_CLK_OUT_3_ = PERIOD "clock_generator_0_clock_generator_0_PLL0_CLK_OUT_3_" TS_sys_clk_pin * 2 HIGH 50%> - - -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: <TIMESPEC TS_clock_generator_0_clock_generator_0_PLL0_CLK_OUT_4_ = PERIOD "clock_generator_0_clock_generator_0_PLL0_CLK_OUT_4_" TS_sys_clk_pin * 0.625 HIGH 50%> - - -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. - - -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 - - -SFF primitive 'SRAM/SRAM/EMC_CTRL_I/MEM_STEER_I/SYNC_MEM_DQT.REG_DQT_GEN[2].DQT_REG' has unconnected output pin - - -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 - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_WRCE_REG' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_FOR_SHARED.GEN_BKEND_CE_REGISTERS[0].I_BKEND_RDCE_REG' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BURST_SUPPORT/RESPONSE_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FDRE_I' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BURST_SUPPORT/CONTROL_DBEAT_CNTR_I/STRUCTURAL_A_GEN.I_ADDSUB_GEN[7].FDRE_I' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_BE0to3' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_BE0to3' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_BE0to3' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_BE0to3' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has unconnected output pin - - -SFF primitive 'SRAM/SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has unconnected output pin - - -Attribute "CLK_FEEDBACK" is not allowed on symbol "PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/clocking_i/use_pll.pll_adv_i" of type "PLL_ADV". This attribute will be ignored. - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[0].I_SIZE_S_H_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE_4to7[7].I_FDRSE_BE4to7' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE_4to7[6].I_FDRSE_BE4to7' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE_4to7[5].I_FDRSE_BE4to7' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/GEN_DWIDTH_64_128.LDMUX_FDRSE_4to7[4].I_FDRSE_BE4to7' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[3].I_FDRSE_BE0to3' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[2].I_FDRSE_BE0to3' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[1].I_FDRSE_BE0to3' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_FLEX_ADDR_CNTR/LDMUX_FDRSE_0to3[0].I_FDRSE_BE0to3' has unconnected output pin - - -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 - - -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 - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[0].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[1].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[2].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[3].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[4].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[5].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[6].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[7].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[8].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[9].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[10].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[11].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[12].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[13].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[14].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[15].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[16].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[17].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[18].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[19].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[20].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[21].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[22].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[23].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[24].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[25].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[26].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[27].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[28].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[29].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[30].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[31].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[32].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[33].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[34].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[35].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[36].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[37].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[38].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[39].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[40].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[41].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[42].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[43].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[44].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[45].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[46].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[47].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[48].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[49].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[50].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[51].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[52].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[53].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[54].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[55].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[56].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[57].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[58].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[59].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[60].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[61].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[62].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[0].GEN_USER_CE.GEN_ALL_CEs[63].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[1].GEN_USER_CE.GEN_ALL_CEs[64].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[65].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[66].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[67].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[68].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[69].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[70].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[71].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[72].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[73].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[74].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[75].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[76].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[77].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[78].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[79].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[2].GEN_INTRPT_CE.GEN_ALL_CEs[80].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[3].GEN_RESET_CE.I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[4].GEN_USER_CE.GEN_ALL_CEs[82].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_CE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_RDCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/GEN_CE_ASSIGNMENTS[5].GEN_USER_CE.GEN_ALL_CEs[83].I_BKend_WRCE_REG' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_SIZE2_REG0' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_SIZE2_REG1' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_SIZE2_REG2' has unconnected output pin - - -SFF primitive 'PCIe_Bridge/PCIe_Bridge/comp_plbv46_master/I_RD_CONTROL/I_RD_ABORT_REG' has unconnected output pin - - -SFF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/COLLISION_SYNC' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU10' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU15' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU20' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU25' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU30' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU35' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU130' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_intrfce/I_TX_FIFO/BU237' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU10' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU15' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU20' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU25' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU30' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU35' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU130' has unconnected output pin - - -FF primitive 'Ethernet_MAC/Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_intrfce/I_RX_FIFO/BU237' has unconnected output pin - - -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 - - -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 - - -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 - - -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 - - -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 - - -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 - - -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 - - -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. - - -logical net 'N194' has no driver - - -logical net 'N195' has no driver - - -logical net 'N196' has no driver - - -logical net 'N197' has no driver - - -logical net 'N198' has no driver - - -logical net 'N199' has no driver - - -logical net 'N200' has no driver - - -logical net 'N201' has no driver - - -logical net 'N202' has no driver - - -logical net 'N203' has no driver - - -logical net 'N204' has no driver - - -logical net 'N205' has no driver - - -logical net 'N206' has no driver - - -logical net 'N207' has no driver - - -logical net 'N208' has no driver - - -logical net 'N209' has no driver - - -logical net 'N210' has no driver - - -logical net 'N211' has no driver - - -logical net 'N212' has no driver - - -logical net 'N213' has no driver - - -logical net 'N214' has no driver - - -logical net 'N215' has no driver - - -logical net 'N216' has no driver - - -logical net 'N217' has no driver - - -logical net 'N218' has no driver - - -logical net 'N219' has no driver - - -logical net 'N220' has no driver - - -logical net 'N221' has no driver - - -logical net 'N222' has no driver - - -logical net 'N223' has no driver - - -logical net 'N224' has no driver - - -logical net 'N225' has no driver - - -logical net 'N226' has no driver - - -logical net 'N227' has no driver - - -logical net 'N228' has no driver - - -logical net 'N229' has no driver - - -logical net 'N230' has no driver - - -logical net 'N231' has no driver - - -logical net 'N232' has no driver - - -logical net 'N233' has no driver - - -logical net 'N234' has no driver - - -logical net 'N235' has no driver - - -logical net 'N236' has no driver - - -logical net 'N237' has no driver - - -logical net 'N238' has no driver - - -logical net 'N239' has no driver - - -logical net 'N240' has no driver - - -logical net 'N241' has no driver - - -logical net 'N242' has no driver - - -logical net 'N243' has no driver - - -logical net 'N244' has no driver - - -logical net 'N245' has no driver - - -logical net 'N246' has no driver - - -logical net 'N247' has no driver - - -logical net 'N248' has no driver - - -logical net 'N249' has no driver - - -logical net 'N250' has no driver - - -logical net 'N251' has no driver - - -logical net 'N252' has no driver - - -logical net 'N253' has no driver - - -logical net 'N254' has no driver - - -logical net 'N255' has no driver - - -logical net 'N256' has no driver - - -logical net 'N257' has no driver - - -logical net 'N266' has no driver - - -logical net 'N267' has no driver - - -logical net 'N268' has no driver - - -logical net 'N269' has no driver - - -logical net 'N270' has no driver - - -logical net 'N271' has no driver - - -logical net 'N272' has no driver - - -logical net 'N273' has no driver - - -logical net 'N306' has no driver - - -logical net 'N307' has no driver - - -logical net 'N308' has no driver - - -logical net 'N309' has no driver - - -logical net 'N310' has no driver - - -logical net 'N311' has no driver - - -logical net 'N312' has no driver - - -logical net 'N313' has no driver - - -logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_terrfwd_n' has no driver - - -logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_rerrfwd_n' has no driver - - -logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tsrc_dsc_n' has no driver - - -logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_tbuf_av<3>' has no driver - - -logical net 'PCIe_Bridge/PCIe_Bridge/sig_trn_trem_n<4>' has no driver - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs deleted file mode 100644 index a598a17966b..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/par.xmsgs +++ /dev/null @@ -1,52 +0,0 @@ - - - -Constraint <NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 ns HIGH 50%;> [system.pcf(65973)] overrides constraint <NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 ns HIGH 50%;> [system.pcf(65972)]. - - -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. - -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. - -The signal PCIe_Bridge/PCIe_Bridge/sig_sb_txrem_n<0> has no load. PAR will not attempt to route this signal. - - -The signal PCIe_Bridge/PCIe_Bridge/sig_MB_TxREMn<0> has no load. PAR will not attempt to route this signal. - - -The signal xps_bram_if_cntlr_1_port_BRAM_Addr<30> has no load. PAR will not attempt to route this signal. - - -The signal xps_bram_if_cntlr_1_port_BRAM_Addr<31> has no load. PAR will not attempt to route this signal. - - -The signal PCIe_Bridge/PCIe_Bridge/sig_MB_RxFull has no load. PAR will not attempt to route this signal. - - -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. - - -N/A entries in the Constraints list may indicate that the constraint does not cover any paths or that it has no requested value. - -N/A entries in the Constraints list may indicate that the constraint does not cover any paths or that it has no requested value. - -There are 5 loadless signals in this design. This design will cause Bitgen to issue DRC warnings. - - - -There are 5 loadless signals in this design. This design will cause Bitgen to issue DRC warnings. - - - -Number of "Exact" mode Directed Routing Constraints: 128 - - -All "EXACT" mode Directed Routing constrained nets successfully routed. The number of constraints found: 128, number successful: 128 - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs deleted file mode 100644 index 5b58063e9b6..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/trce.xmsgs +++ /dev/null @@ -1,20 +0,0 @@ - - - -Constraint <NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 ns HIGH 50%;> [system.pcf(65973)] overrides constraint <NET "PCIe_Bridge/Bridge_Clk" PERIOD = 8 ns HIGH 50%;> [system.pcf(65972)]. - - -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. - -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. - -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. - -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. - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs deleted file mode 100644 index bea4a975eb6..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/_xmsgs/xst.xmsgs +++ /dev/null @@ -1,1041 +0,0 @@ - - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3111: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3119: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3127: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3135: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3143: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3151: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3159: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3167: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3175: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3183: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3191: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3199: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3207: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3215: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3223: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3231: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3239: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3247: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3255: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3263: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3271: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3279: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3287: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3295: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3303: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3311: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3319: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3327: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3335: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3343: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3351: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3359: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3367: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3375: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3383: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3391: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3399: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3407: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3415: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3423: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3431: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3439: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3447: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3455: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3463: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3471: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3479: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3487: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3495: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3503: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3511: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3519: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3527: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3535: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3543: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3551: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3559: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3567: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3575: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3583: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3591: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3599: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3607: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3615: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3623: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3631: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3639: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3647: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3655: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3663: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3671: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3679: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3687: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3695: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3703: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3711: Instantiating black box module <IOBUF>. - - -"C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/hdl/system.vhd" line 3719: Instantiating black box module <IBUFGDS>. - - -Signal <pgassign9> is assigned but never used. This unconnected signal will be trimmed during the optimization process. - - -Signal <pgassign11<0:6>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. - - -Signal <pgassign11<31>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. - - -Signal <pgassign10<0>> is assigned but never used. This unconnected signal will be trimmed during the optimization process. - - -The FF/Latch <plb_v46_0/GEN_MPLB_RST[0].I_MPLB_RST> in Unit <plb_v46_0> is equivalent to the following 13 FFs/Latches : <plb_v46_0/GEN_SPLB_RST[11].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[10].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[9].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[8].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[7].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[6].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[5].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[4].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[3].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[2].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[1].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[0].I_SPLB_RST> <plb_v46_0/I_PLB_RST> - - -The FF/Latch <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_ADDRACK> in Unit <xps_bram_if_cntlr_1> is equivalent to the following FF/Latch : <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_SET_SLBUSY> - - -The FF/Latch <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_WRACK_2BUS> in Unit <xps_bram_if_cntlr_1> is equivalent to the following FF/Latch : <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_WRACK> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.I_BURST_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.I_BURST_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/sl_wrdack_i> in Unit <SRAM> is equivalent to the following 2 FFs/Latches : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/GEN_WRITE_BUFFER.GEN_WRBUF_WREN1> <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/GEN_WRITE_BUFFER.GEN_WRBUF_WREN2> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.I_SNGL_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.I_SNGL_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> - - -The FF/Latch <SRAM/EMC_CTRL_I/IO_REGISTERS_I/mem_wen_reg> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/EMC_CTRL_I/MEM_STEER_I/SYNC_MEM_DQT.REG_DQT_GEN[0].DQT_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.I_CACHLN_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.I_CACHLN_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/I_SNGL_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_SNGL_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_SIZE_REG1> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_SIZE_REG2> - - -The FF/Latch <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].tx_power_down0> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].rx_power_down0> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[29].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[29].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[28].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[28].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/I_BURST_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_BURST_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[27].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[27].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[31].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[31].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[26].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[26].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/I_CACHLN_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_CACHLN_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[30].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[30].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[25].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[25].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[19].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[19].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[24].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[24].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[23].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[23].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[18].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[18].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_FOR_64.DPHASE_REG2> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_FOR_64.DPHASE_REG1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[22].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[22].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[17].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[17].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[21].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[21].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[16].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[16].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[20].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[20].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[15].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[15].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[14].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[14].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[13].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[13].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[12].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[12].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[11].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[11].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[10].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[10].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[9].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[9].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].tx_power_down1> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].rx_power_down1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[8].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[8].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[7].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[7].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[6].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[6].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[5].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[5].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[4].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[4].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[3].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[3].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[2].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[2].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[1].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[1].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[0].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[0].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BURST_SUPPORT/BTERM_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BURST_SUPPORT/BTERM_CLNUP> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_WRITE_BUFFER.GEN_WRBUF_WREN2> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_WRITE_BUFFER.GEN_WRBUF_WREN1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_3> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_3_1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_2> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_2_1> - - -The FF/Latch <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_i> - - -The FF/Latch <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_i> - - -The FF/Latch <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_i> - - -The FF/Latch <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_i> - - -The FF/Latch <U0/grf.rf/gl0.rd/gr1.rfwft/aempty_fwft_i> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/gr1.rfwft/aempty_fwft_fb> - - -The FF/Latch <U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i> - - -The FF/Latch <U0/grf.rf/rstblk/wr_rst_reg_1> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/rstblk/wr_rst_reg_0> - - -The FF/Latch <U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb> - - -The FF/Latch <U0/grf.rf/rstblk/rd_rst_reg_2> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/rstblk/rd_rst_reg_1> - - -The FF/Latch <ppc440_0_SPLB0/GEN_MPLB_RST[0].I_MPLB_RST> in Unit <ppc440_0_SPLB0> is equivalent to the following 2 FFs/Latches : <ppc440_0_SPLB0/GEN_SPLB_RST[0].I_SPLB_RST> <ppc440_0_SPLB0/I_PLB_RST> - - -The FF/Latch <Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_state_machine/state21a> in Unit <Ethernet_MAC> is equivalent to the following 2 FFs/Latches : <Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_state_machine/state19a> <Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_state/state21a> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/clk_reset/rst0_sync_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/clk_reset/rst0_sync_r_2_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2> in Unit <DDR2_SDRAM> is equivalent to the following 6 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_1> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_2> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_3> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_4> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_5> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_6> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_0> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[0].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_1> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[1].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[2].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_3> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[3].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_usr_top/usr_rd/gen_rden_sel_mux[0].u_ff_rden_sel_mux> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_usr_top/usr_rd/rden_sel_r_0> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_4> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[4].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_26> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_26_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_26_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_31> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_31_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_31_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_5> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[5].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_6> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[6].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_7> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[7].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_6> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_6_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_11> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_11_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_18> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_18_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_18_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_23> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_23_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_23_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_5> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_5_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_10> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_10_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_35> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_35_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_35_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_40> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_40_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_40_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_39> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_39_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_39_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_44> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_44_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_44_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_25> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_25_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_25_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_30> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_30_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_30_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_1> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_1_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_1> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_1_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_13> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_13_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_17> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_17_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_17_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_22> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_22_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_22_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0> in Unit <DDR2_SDRAM> is equivalent to the following 40 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_1> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_2> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_3> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_4> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_5> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_6> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_7> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_8> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_9> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_10> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_11> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_12> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_13> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_14> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_15> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_16> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_17> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_18> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_19> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_20> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_21> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_22> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_23> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_24> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_25> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_26> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_27> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_28> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_29> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_30> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_31> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_32> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_33> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_34> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_35> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_36> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_37> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_38> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_39> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_40> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_0> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_0_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_12> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_12_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_29> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_29_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_29_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_34> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_34_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_34_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_38> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_38_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_38_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_43> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_43_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_43_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_59> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_59_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_16> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_16_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_16_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_21> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_21_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_21_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_2_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_7> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_7_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_28> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_28_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_28_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_33> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_33_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_33_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_14> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_14_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[0].u_iob_dqs/dqs_rst_n_r> in Unit <DDR2_SDRAM> is equivalent to the following 7 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[1].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[2].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[3].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[4].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[5].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[6].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[7].u_iob_dqs/dqs_rst_n_r> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_37> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_37_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_37_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_42> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_42_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_42_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_58> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_58_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_2_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_15> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_15_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_15_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_20> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_20_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_20_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_27> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_27_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_27_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_32> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_32_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_32_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_4> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_4_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_9> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_9_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_19> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_19_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_19_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_24> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_24_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_24_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[0].u_iob_dm/u_dm_ce> in Unit <DDR2_SDRAM> is equivalent to the following 7 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[1].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[2].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[3].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[4].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[5].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[6].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[7].u_iob_dm/u_dm_ce> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_3> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_3_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_8> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_8_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_36> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_36_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_36_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_41> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_41_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_41_2> - - -The FF/Latch <plb_v46_0/GEN_MPLB_RST[0].I_MPLB_RST> in Unit <plb_v46_0> is equivalent to the following 13 FFs/Latches : <plb_v46_0/GEN_SPLB_RST[11].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[10].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[9].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[8].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[7].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[6].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[5].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[4].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[3].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[2].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[1].I_SPLB_RST> <plb_v46_0/GEN_SPLB_RST[0].I_SPLB_RST> <plb_v46_0/I_PLB_RST> - - -The FF/Latch <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_ADDRACK> in Unit <xps_bram_if_cntlr_1> is equivalent to the following FF/Latch : <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_SET_SLBUSY> - - -The FF/Latch <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_WRACK_2BUS> in Unit <xps_bram_if_cntlr_1> is equivalent to the following FF/Latch : <xps_bram_if_cntlr_1/INCLUDE_BURST_SUPPORT.I_SLAVE_BURST_ATTACH/I_FLOP_WRACK> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.I_BURST_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.I_BURST_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/sl_wrdack_i> in Unit <SRAM> is equivalent to the following 2 FFs/Latches : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/GEN_WRITE_BUFFER.GEN_WRBUF_WREN1> <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/GEN_WRITE_BUFFER.GEN_WRBUF_WREN2> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.I_SNGL_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.I_SNGL_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> - - -The FF/Latch <SRAM/EMC_CTRL_I/IO_REGISTERS_I/mem_wen_reg> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/EMC_CTRL_I/MEM_STEER_I/SYNC_MEM_DQT.REG_DQT_GEN[0].DQT_REG> - - -The FF/Latch <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_BUS_ADDRESS_COUNTER/GEN_FOR_SHARED.I_CACHLN_S_H_REG> in Unit <SRAM> is equivalent to the following FF/Latch : <SRAM/MCH_PLB_IPIF_I/NO_CHNL_IF_GEN.PLBV46_SLAVE_BURST_I/I_SLAVE_ATTACHMENT/I_STEER_ADDRESS_COUNTER/GEN_FOR_SHARED.I_CACHLN_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/I_SNGL_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_SNGL_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_SIZE_REG1> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/I_DECODER/I_CS_SIZE_REG2> - - -The FF/Latch <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].tx_power_down0> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].rx_power_down0> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[29].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[29].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[28].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[28].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/I_BURST_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_BURST_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[27].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[27].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[31].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[31].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[26].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[26].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/I_CACHLN_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/I_CACHLN_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[30].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[30].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[25].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[25].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[19].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[19].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[24].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[24].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[23].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[23].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[18].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[18].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_FOR_64.DPHASE_REG2> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_FOR_64.DPHASE_REG1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[22].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[22].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[17].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[17].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[21].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[21].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[16].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[16].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[20].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[20].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[15].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[15].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[14].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[14].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[13].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[13].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[12].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[12].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[11].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[11].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[10].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[10].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[9].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[9].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].tx_power_down1> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_block_plus/comp_endpoint/pcie_blk/SIO/.pcie_gt_wrapper_i/flop[0].rx_power_down1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[8].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[8].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[7].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[7].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[6].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[6].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[5].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[5].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[3].I_SIZE_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[4].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[4].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[2].I_SIZE_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[3].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[3].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_STEER_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BUS_ADDRESS_COUNTER/GEN_S_H_SIZE_REG[1].I_SIZE_S_H_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[2].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[2].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[1].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[1].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR2_INPUT[0].I_ADDR_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_EQL_TO_32_ADDR.REG_ADDR1_INPUT[0].I_ADDR_REG> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BURST_SUPPORT/BTERM_REG> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.I_BURST_SUPPORT/BTERM_CLNUP> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_WRITE_BUFFER.GEN_WRBUF_WREN2> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/GEN_FAST_MODE_BURSTXFER.GEN_WRITE_BUFFER.GEN_WRBUF_WREN1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_3> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_3_1> - - -The FF/Latch <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_2> in Unit <PCIe_Bridge> is equivalent to the following FF/Latch : <PCIe_Bridge/comp_plbv46_slave/I_SLAVE_ATTACHMENT/plb_size_reg_2_1> - - -The FF/Latch <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_i> - - -The FF/Latch <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_i> - - -The FF/Latch <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/grss.rsts/ram_empty_i> - - -The FF/Latch <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_fb_i> in Unit <BU3> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.wr/gwss.wsts/ram_full_i> - - -The FF/Latch <U0/grf.rf/gl0.rd/gr1.rfwft/aempty_fwft_i> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/gr1.rfwft/aempty_fwft_fb> - - -The FF/Latch <U0/grf.rf/gl0.wr/gwas.wsts/ram_full_i> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.wr/gwas.wsts/ram_full_fb_i> - - -The FF/Latch <U0/grf.rf/rstblk/wr_rst_reg_1> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/rstblk/wr_rst_reg_0> - - -The FF/Latch <U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_i> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/gl0.rd/gr1.rfwft/empty_fwft_fb> - - -The FF/Latch <U0/grf.rf/rstblk/rd_rst_reg_2> in Unit <BU2> is equivalent to the following FF/Latch : <U0/grf.rf/rstblk/rd_rst_reg_1> - - -The FF/Latch <ppc440_0_SPLB0/GEN_MPLB_RST[0].I_MPLB_RST> in Unit <ppc440_0_SPLB0> is equivalent to the following 2 FFs/Latches : <ppc440_0_SPLB0/GEN_SPLB_RST[0].I_SPLB_RST> <ppc440_0_SPLB0/I_PLB_RST> - - -The FF/Latch <Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_state_machine/state21a> in Unit <Ethernet_MAC> is equivalent to the following 2 FFs/Latches : <Ethernet_MAC/XEMAC_I/EMAC_I/TX/inst_tx_state_machine/state19a> <Ethernet_MAC/XEMAC_I/EMAC_I/RX/inst_rx_state/state21a> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/clk_reset/rst0_sync_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/clk_reset/rst0_sync_r_2_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2> in Unit <DDR2_SDRAM> is equivalent to the following 6 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_1> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_2> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_3> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_4> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_5> <DDR2_SDRAM/u_ddr2_top/clk_reset/rst90_sync_r_2_6> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_0> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[0].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_1> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[1].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[2].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_3> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[3].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_usr_top/usr_rd/gen_rden_sel_mux[0].u_ff_rden_sel_mux> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_usr_top/usr_rd/rden_sel_r_0> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_4> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[4].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_26> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_26_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_26_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_31> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_31_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_31_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_5> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[5].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_6> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[6].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/cal2_rd_data_sel_r_7> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/u_phy_calib/gen_rd_data_sel[7].u_ff_rd_data_sel> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_11> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_11_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_6> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_6_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_23> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_23_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_23_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_18> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_18_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_18_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_10> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_10_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_5> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_5_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_40> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_40_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_40_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_35> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_35_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_35_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_44> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_44_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_44_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_39> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_39_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_39_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_30> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_30_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_30_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_25> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_25_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_25_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_1> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_1_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_1> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_1_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_13> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_13_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_22> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_22_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_22_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_17> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_17_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_17_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0> in Unit <DDR2_SDRAM> is equivalent to the following 40 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_1> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_2> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_3> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_4> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_5> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_6> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_7> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_8> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_9> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_10> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_11> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_12> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_13> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_14> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_15> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_16> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_17> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_18> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_19> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_20> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_21> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_22> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_23> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_24> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_25> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_26> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_27> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_28> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_29> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_30> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_31> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_32> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_33> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_34> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_35> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_36> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_37> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_38> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_39> <DDR2_SDRAM/u_ddr2_top/clk_reset/rstdiv0_sync_r_0_40> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_0> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_0_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_12> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_12_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_34> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_34_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_34_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_29> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_29_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_29_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_43> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_43_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_43_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_38> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_38_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_38_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_59> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_59_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_21> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_21_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_21_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_16> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_16_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_16_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_7> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_7_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_2_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_33> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_33_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_33_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_28> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_28_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_28_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_14> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_14_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[0].u_iob_dqs/dqs_rst_n_r> in Unit <DDR2_SDRAM> is equivalent to the following 7 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[1].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[2].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[3].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[4].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[5].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[6].u_iob_dqs/dqs_rst_n_r> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dqs[7].u_iob_dqs/dqs_rst_n_r> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_42> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_42_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_42_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_37> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_37_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_37_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_58> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_58_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_2> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_hit_r_2_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_15> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_15_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_15_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_20> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_20_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_20_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_32> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_32_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_32_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_27> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_27_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_27_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_9> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_9_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_4> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_4_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_24> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_24_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_24_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_19> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_19_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_19_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[0].u_iob_dm/u_dm_ce> in Unit <DDR2_SDRAM> is equivalent to the following 7 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[1].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[2].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[3].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[4].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[5].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[6].u_iob_dm/u_dm_ce> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_phy_top/u_phy_io/gen_dm[7].u_iob_dm/u_dm_ce> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_8> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_8_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_3> in Unit <DDR2_SDRAM> is equivalent to the following FF/Latch : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_3_1> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_41> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_41_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_41_2> - - -The FF/Latch <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_36> in Unit <DDR2_SDRAM> is equivalent to the following 2 FFs/Latches : <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_36_1> <DDR2_SDRAM/u_ddr2_top/u_mem_if_top/u_u_ctrl/bank_cmp_addr_r_36_2> - - -HDL ADVISOR - Some clock signals were not automatically buffered by XST with BUFG/BUFR resources. Please use the buffer_type constraint in order to insert these buffers to the clock signals to help prevent skew problems. - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise deleted file mode 100644 index fb514ece41c..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.gise +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - - - - - - - - - 11.1 - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ise deleted file mode 100644 index 55ee070465d17f136e25048ae55283d918a7f4bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 169389 zcmeIb511s$RUer8i`3plw*rJD7Hv-NO8bZHuFCpft(}%;x_f4Ncc#1P?)kSfOKnzV zR!?cFt4dYX)7@IF(0`01WPyYvZ0r1ij4=po9kR?J?(XB`Bo5FS`{VH07=5<%$@~$A zjSs`;&$j~Ii^zz`h>VQL$m;Iunqf=I+3L!S7cXACcrW6`i(jri@uC+`S#h72z>l+o zTb<0B@{w22M|%BkZ>H`Je9gmui+^~ad5}>Z`g_ATs^9Gh?x)s5xN)%B~jOH1n;%d0DQPdT&B-BasJXO}lNrJq+%KfVD^FY!<3@19!T zV87HB)|XCgE-ltBFK?a$Vwf6#|NNtqV1F?5w`+S|Ju`$>!cS96D~nU4)~Q5>oNVF9IYMni zN{KlW1^SM+|H7AlAB2gnyQo0@&amI|2Tpcs%4_wfKq^x=hQr=qF2iJo^m}&D-RU>{ zX1BlP&vyKwEZBp~a-@2v;FHT{t25csOg_8mRObr0xtueb&6k~G`AOWMeyefA?R#~% z-`_{ib05dc6$@q0pJ`N`+)TFMWM`_4dUd8=X}Hx=BkNcF+|*rDwHh0%H7qCe6C2g^ zCo1}8tL@`Dc*e?e`P^KgG+Qi`D&^vnQ;kNm;5F(_)d%j2`BJu6EHw+&a;e^S7cUf=I^`$O_q zqr1Hg9tZi4yQa>y{Jz_7+-No2_M$&%ZP6PwL~R|)Eq8`~zvH&4*<9IJ+2?iejn~Eu6_$ay zdnmE2i3AebU|{}|`A|vX$G-jH*?$17K-cTFtx07Lo$`3iA?>snvv}dZ{_1B7U=q=F zLfgU#HIJ-qlWZoHw#bf(TsDImv-F5T>2r(38b|2-#;1Sz2fhzF9bNfUbQnd;df^Mv z^)2!NDi%<~AGm=(FMwar_ZL|&qPNJM;6E=}n9D4|QtDRb3@o+QH&-_@m%II&t8;)SlXdVT*^t-jN04`(}D9;yhlqx=URcrk56(tlGu`yx~~ z`iOJF-}}A)_Luj-ujrbCOE9o88o(r;Vc%*S!~SNy4TaI?W!8(WoRzgQk&3=J{pW9d z4DO?=3|CS`wb}r@xbM}vb>!D;L$}`cYc-HxZ07+*^g;F&edbv22Y=&##g=n7tnY?D z1csPHkEkkNNSXwPg%W)68`Ra|k|w@r+JJ`6A1Cpk@;xY4OAyIqMC6A`n@A$D zB?f-kgcp@WroVdEdw&unfvyJ=B$CcIk9nz*VI2_Toj-TZ`m;qCdg!`8p_P;BpTqV| zu!r7g^jp2*AaU)0qPYs2MM!9Dmo$@QqRG(02{vptxq7WF`ct`;ht6IRVp7RGGdn%)kF9zX!NNmuV-4wBkBZJ&}8X=)OPy zjnDkTH@@An&}G_Hu~kRAiU|2-Fj4Ec+y0>EHhkN^<+klT99g%YnTq_r*xQC5LDmiX ztUp{H_?LnJw*Abr@Vjl>1Ak~Y;hz8I?IC+#ee1rZ14;f;VOCLDI}*(&_{$Xj@-4kbV2Ud+E5a;5|L&l?FYgKpRyl-);z_y zy5C;u?%M5c_a^E$-)-E$;FKWje_ zK7bnp#ZdR#*RUEADTWU{1x2ui;|iFb2b?fcq<(m&4sE+h{=_|q{|Ra!?D%ipfuV+Z z$7H5KeZoq5JJ5^MOY7^a>vQ&k+p#;{q3!t)joWT@d@NtsTLhhH4tJ5BlKqTXJgR_! zzCYaQcgQH?DhKxf-Smvz?SVdomG_})BtkViUXaH^q;T?wiu)iM;UTRzdOR;+c*@tKB6W4suFU&d5EE?{x9q8NFwtSFWaG!KQ z-{120pzldNCm))9-O~QwEX}n%^oLzpN2#N_ITgzY=H=9MOphAba3B(<^i7e zjO{%86efel9eo(ndCabcLydG)(Bni-#2XFlj=xLWhy;nP^w7Nto!LP1EaXp6Rd4pY+jiX#+)2N`(;NC877`Zx1w;i296t;8!kg)K+JXMV1BhoToza|8*g{<2 zCe!ELR=Z8rCW}WQvCF76%$eCRI_V#!!Zc-^&;kV@I@;-WX5QxaK@M&ols8bKR`XFz z7{-|Gg5e)@+X8_FP#Wk#)O_&3+pPiG2M3+++SqJ$n@xMS--1vG%tVGvCQvsPmOBKk zsqYM7usy&lwmriWb7yu*e>`jZZO|UhfZuPgcBlu2K1I_OWL}_tsUwmrMMY58*$%4@ z3fVUKiz&q^G}G}x_Ndw5>ifvP?0~HZ1~-&IjDQIlxLf`vmrt#)EU%oM3oHy( z&Rut4V^c8z)9Tr~EpW6hQB^u7$Y6ztlFhb?X0LaU7Em&{$ygccV3=S8hmA**k-&}( zfjqE`+z&j}>cIT4<+-5Ac6}cn0VNdARlfR|h5v1{yPNOcmR^NYhRTGt;2<`|S&E z2Xqb8vTK9i1SLYI2D}b3XIV{2k1!81>AzQ%yK+{oWKY$6yQ?hG-sR^oEX z(O}`lmS-TsI7@p9%mU9fyq*pw?yI8+!^(s6^97DH_!(;jE)S^U3nz+rR1Pktit zc@|rMFVZfhB08jx@8*C~LVyZKh)m77~}~Sjy`iyNKFZ2*DQb;!#B!xrvp>UCd7F1xuVyoc;#Hx_nk`J%jVo-sZdSF`VDt513sxYAPJM=fAST` z@3>1)c_SVh*(&0%Qf)W|$8S`-Dy4FhFpg(6-y6XFS!WN!|>Kv^EnZsWFs=MB^k8OR${tBT`fu z2|j81@_}hbTZ0;N6zSbRaOj*y6NwKYA02pPAL(?~TB25AML^xAb6caTgUT}hR`1uQ z(W!QHjj9eIZKXQIMfxEXJbJ$Ex2r$#pQhkfbdB2OYHp%kj_QZc%c5KaKL`I-;6M7A zPqfW}Dc3vu(+8lc8rVG7BWsDlbl@PohkYa3;~)Nq|L6bvENqFQ>rErdCe?(YkRS6w z>cruXXAn_cqFa^8NI#{qXCEZmGgV{Iwtn=U!QOr;J84}eO$=gYf&XOhwcq$OXf?Xt zIHG3XF4IC;9us_UFRFobsOfjy%MQj;DmVRHzS{K5ZnNAdc~!Sstu%|3x}U2wvvoj0 zN|n%{-*E?|th?m#V#a3PZ4|R!C10u*oMyS|7D{eDTL!GDeAe|G_b}N6Y_w=%06(`F z!Kz1lXoNY$ne-zrS}V~D;$5|K1v{xW$I&buB$$w>%Yf1eYlXz63?*SQhmg~gA{L(~ zrkk=FbETRc5ZUAZBu0NISNaK<1YDsKwrRSfc_R&`SgE*EN$s8A_?`UEfy~gAg-bh& zrBX{ZiON-u*&_oy6q-zkbIIzz_(%W#O%QWI*Q2KGzFk}_w0MGjs@M@Ad-k#6o1lO) zI9D3e7*jf}X;hII$u#PSr812wLaIT|1Pos!)2Ji{CP>{?lJU`zF_D&J8j}d>B$kRh zmDK*^RhK`gG>t0mCfhX1T*sKkU-;|&zS1l)97H}G4mj26?)?emfwuUYn+9*sE`1VceERD46ww#$s zpr!L4L#PLR32x6wWqk>$ec}YkzpDh0bZtEChf6GZ(tv z4xGO|qHU_pL*g&GQ*j8JQ@j|ze`GcT@y#r{Lw6=Xr#~uDUO7Y_k64^n4};Y+fW^@5 z@6Qm7pQ94%(?`JT5r`MKWFH&82`)hz^tyS6-sq@YE`O#;Z*)Qm#zrSDkO{62J`vQc zFP`}NuOlFQbm>itITz8+Le;_tos0?wbmXM*>^J}Flg|Qo=+fH_9S<72p_YbaeHMej zz6d}{Ut+z~`ZnP5<*+yWx8Q9OcU#|Xy#ij-aSsRw{rer(cUs?Ny$Y~FUkz_hc`aa^ z-3$2hAGAJX{fPBp_&#m@9qS|3k6J$l-ygI-3XA1O-~i^M)(qq$WgtH0!0$QhV^#qm z?n(f8TCu7COZr9tKs^c6f86@G^=7zt3UJdF;O|BFzGR)T&RXXH&g^mP3G2Ld!CJ9a ztu+wRIy|ufPi$Hj;rUCjuYLu7xeC8LXZZ+V)pMbl*)r4+ROF z`0saEKWM!Zo_&|~ZtFep-}hSYv)&K?{Up%-+tv?9H@?5})lYw^1=b8*di$HMua!FY z6V_vI+S_hZ^o^4b!h19xgcJFVt_OfKCm+1Hd1j{a;G5>H#{&HKnOoq^8Cb{3X=k=H zZO>cwV>bZ3#P7p5`!VoMKB!x(+48-4x)0+x=uI8D%3QwiSVnjP6$!Kx;l0fVW8kq2 z_Y-p2T+^by5BxI9e~{1s{mPo?qLA{i|9L`8o)^=;Be@loF*(zBNT+KzPo*L zS_D0wwl{8cch>;$1{m#jkWW83-E;wDX4*!0j3=khterhY+Bc1{Wll~n&1JUtX@b=t zbGbDf`T!UL_&}My-}cdql3;F?L77(}Fmv$2n+4SiZ$!4PlegXg4iysl?2X}edz!YL zaf3tyjUILzGc9;Wjty;S1ILnVhAzB7W*BoLqo;5Y5Z_vF!!VRKt29C^_8Ar3HNZas z#666xA`y(esiJhoMUX99_5#Ka1VIl6&|##Vu{Twe05%I~0dh((Rp!XZcLExZWssU- z(T$>T05XCs$ELeA2(+uVx^n*Nqf3iV)K<@&nYM4VJkRf(oCa7#riAAN(1r`EixKZ>QtN)KCu#KBUb6)wMrilK+WAF;sm0Qj&878~Q|D{P zGsi$P+YB%dGiMa3L=z2WHBbuxC>mzh{X|8;kMYxtp$mA=fFpbRN@dvER!W5!)L_m^ z)Fqgg;$>3&qUp-ohP{M9;SfBWXI~B=_h2r;&1Km-387+d`QXk4rNXn+mH0_2LBBf> z=+pQCf1%sn+3uiOF1$Du1*U~7;eRm|eQSg#{+ZK&8LaaVkC?fjh6r;TxY{Ji)nQH#>++-QSyDxWz0)lK)&ykmNYCO$ zl(4!-iprK_oO1Fj`?bEmvEKmz)&YtxaO;coio1bgB8Em`|$WS|g3{nrnL<9Jh&JU(P)PU3-RQ>mN?w&?ZOgCkfk1ZKgA$n&p*3p5}bVG@j!dPc~*>e%6PptW0S8I#%~Eg(y*WI2-r z5^l03Zd(NNd$a&xb9`nEA0?B1(Gt;L*@&kT2$h-sf;2K{3H?RvA3;|S-uaJ2 zq;?9>u!%qnR8$rnEP7!c4s$*<*&Ib?LT6GDghGi7R>N=rek`?KnaIX|2+@9+E>=;H zT$uFB+b!J8pDp{$9rxJh@-!D{AH{8hZA$9R2P}Sp+a&MVZNdv_;6)FVXS$QM9&9Jl z>AzeqtYEc=qVEHFqYkzRl~2JvHSKeY=V5TkEE|=-M4YX zZO{Vm&QVl8rKOGdh$YA0NTk5zBXERBusd2Br@UKePt(I8;W2JW0)a4}^ZlOjC!RAGpytcly zu)MLnx-#)?MlGoEt1^hd1Wk%5oyLkHIG6d3zfel_9 z!u$l|QBGx`vPiq!qjDSbpsb-e=})Z zq)+AMxNthv1$NVjM1Br$qjRc2%jb>C7v`X~+wht@P|5BV>?KL6K(^M3jq)5t-_oeF^|z?Xx%?4HBW;>1iVuWQYKxppA~9<=791E1T-F78!x@`?%6jbZ146cgqePXcj*Zy{&h~K9 zNMQe>VJXU!!WJ(2w^|U!;=~q8O1?*}3-cecL&71XzL*=t`V+pO)o&0ngUOW2tBGj< zwD?)SgI@QGb4p_J1Y};=7(j2$;&he#z5(we^EFLT_|`ReH!Q6Ex8cl!eG$FukCBkI zND8Q#g#2iija!X|DAq^Z=vsF$oPneoJON=T3e1YCvKqSEgD32JJ zCw6xrfXrr!VJAHDhz;)>MCoeKx4~1?9N6|FkEnYUvYJ>4ZV&=J;f|KZ**3h+4lO+i zdjebJCUqz5A&#OvG7mX*UJTHHza_!N0`Y(`xaCY6eBa(+#r^W6A<3>U_Yyb46lEMMEbVP9;DV)x)D$?kZlk> zkHjaWxH)arxXoaF3qmJEzNdpN7s`r4z~m_s7!4)75jYPNZxtV5iYQw{#ROn+eF4AA zy@6BQv81t}g}^o}yWqW|kX}MG0xTcqSnd*KP76eiU~sGBV62MqXRsjFX8EuXM6)i~ zkhib{VPkmnG^|CbLy#M+2n_kb?%hPTw}Y9>Km-%#9u43d9R1m@u^(nT?IzPyJb9w6 z1Xmh}1+AW7p$Dnqf(py>iJip+989P>5b+G@$qyh+HM#pGOh81^I<4Vv_X4zC?3KkGtDuI4IJelGNOh4?5^ikr^th8)~ zMk$$L04pz{D@ zVcX?q5-F1nb5e=@4`{T0qpU# zUAib#uaWK?K{VPoYkh7RPhl8EPxh4pNivcXHAcvK z5e7G%K|mZ6&h%`{vxun3l#6L&lX5$#&|v6_qUeKskc^~Np~90&deW-52D^Pg41pQR z1W&7HTlLU$E}vfB2tp=lcRIq70~%SFEE4y)sx0{;P&paUW0Ync{nox8m=% zA&nPsYCN$X8gGG32pDYbc6S$T(ZfKXSQIvFjQDm3mv>QlT8TWcVuM-KVhdwSliEIs zz77)q6MY@*Nvflvs9PS(1mIYYkt5;(Dwx6rq*+XbC<)Xz@T z;#ca^551s{$oUYMu4oPhF$Rs!=^l(fa<*1HW=~Gn#vl4&+`&XlK1dY>0XP_UK@}0< z!Q4)LsETn1JC+6~*$>7ZsUyN4Y#hcNWsf;Dsoc{eS`(QkXk~khA&p}`s4n#3@rr?r zCVtD4jHPgkLN)VHDnt5lcDzC$gO(Qp8L|fu!U)6pc%?vX11|<@8RF%@Oqajj9$jc^W$pAa2eTgP?+X%bosJ8Yw# zJ(AYvx)idw5qDfYoRCmjVIL-w!WCdA;=p`2L{v zPz<2=2>|rY0}Qqd=sgcF8GbW>o}Yrd2+(`cng=-Vf(Fog1D@D~CoU2=@2ddiJr7{s z1q|jrPvE=}nD;!ud3ylmJr7{s1pxED0pD8i4MBO&1FseUdT(1D_+=i0dCy}w?*fMN zo+p6byKrw0Ke3PhrI6n9);r+N58~h6i9x;Rt@mJ1?|Fdr{vm+$o(E9x699nzL9yrm z+0TCTfu~Pe7QTQ5HJtuvJ+B1#{*VapZJ)G7h;Q_RA;>p}@omFL#QDDLdym>q#eRIJ z92jt$l2TFP&fw6*`YL>K!E3D_y=$7ElJgkx_eQH;gfreVO?n@JR990*EI zzQfbvV7Y_#N9KAd^oWPT6cq^esSF{p#i@i4uVgvZEY`*;ScGew^unt=9~KR?J{A>Q zWE*9mXpyVo5LFsHZjk%SNvwm7Qv*&RCM_XYCooEi$R`6$zRZm!RAH;r&(xCB9=01OlqL$19SsaDk3W<@Jv%9g8epuWfMT>(K%HF_yu+$&oPAd zjsO?OcQ-S18phb+JYJh+YZr@GEU;Hgiz&=@!Gpz*&;)sJNz;T7bC_=fJzo}#NK^h{ zi{BLecSQaLykL2XHX2%R&`2Rl6->lZV*Y}8kHZhvSbY*X54tDfMT3|vOm*-pUDVu> z*lxm3$;iA3D6Y(L(%5ejb0p>}GDo7WVI*&4=3)iMLb6HB(NL(!9Sw#a0((ey1{xbg zYv`7DL=D)M3qL%gG5MgSs@R9|KF9$z^*|h&Y*CEJA63=^@kcb751SJ`4x{EH^2ZeR zKnzlC<~gLgoSsFrW|ZLW)KImts}~%LPa1?~v3`Yx5Zs=GhO6;<6wz^7c=HzBWx$wE zNsLnxkzH2m{qcD@e}E7cU}VShuVK(+svl4fuuLdgh=kbIzkq&+ltgY!E4Fr%UNnBEro4Y54grc^NRJPNS}@&1wc*KMf~}e(hO^a(0e7`V$4q3w@M#Z8(`1(~$1k~jJ+>U+JiWN}C@gYk^_$(oK$e_& z5N?#B&x&-=$pWFJv2B|NkDW|7+K^TFMuXV!byRFxo?e6;oox-^8JbcnZ&bvC&`u+| z9KHCbw1i`zXfaihaLiL$s%tdZ&JG8`h;Z#xKS|FSf1zKe?i}^x_H!Eg@Bq@Nf z#!w|cMTwiiREF@ZYRYgYO56;uQjOgzR2C)9<5tSno(fL}autZuKcd7(Mt7wI`Ts_V zr$l_^Ny*=%#7D$~l?kI?qQnmoB~~VWaGY4K5mC-Zhm7Tjvab^L!-A2;HAvLW2C1XN zl4Yz*ed?HvQa!3HBQNpJ57VfFMtH6K!UkeX827-yT^m5XrZdtq%4?V$BHyE#DH_x? z91uDv0&M6?DFS*pZo+#h-K@C38gw1)x3dQYmqp|#F%s8G2{4Npq9l?~W|_B7ipXhP zy$oHWMtn`FR1EEv&EjdpjtmHvNyIQZr4x)H{3@Lp8*L#gCP|9*H)(`!oKY}TIwr$$ zdk0{(vfeb=Ue|RcY^k$&Gm03A$mljj(q${K6n!brz7(AqlVr!n1&s(xfti>>VGqaL zWU3PJHc6pyo$%D@=z=|<(QSo_9|!0u)1M%!D*9V-&q5~v4FIVifyA{C3C52VmlP|4 zkb%oKxQY5Hw#){34qJpqa`Lm<=m4PDL>z_6)%hQ|LvU>Fw#)+A=_*$fyp)ko9}=(2wY9 z0#in+Y5+7yMRz>>C8GdR{ze@)k{HE#otYR7f%+zbS0gOFgK`>YjYbeGO37Dv`DmU} zDqkNr$VX?H7*OCfVnAWpctAk96#a0xZ4xb*Ih0%s!*Pu9NOJsyb_5+!qP?kDFG%RZD?7KGaiZ~@d* z9x$RZI1nGYLtBQhzWznmU0u*SWP<;8$Lr|l;KUIoAtIyyPZjF zccdAn%{FLnu`t2yH5$1DHN&K>$7FyK2QY0yV!uY9VraQ!+f}MgVmB+AgTx?uq}Ts1 zr$6~CFR?6iA@G+tGoP77t_0AR`z?RqWT&RQR(}e-%G8bFus4{?FrR~-n+@Lm2yo6@ z{w&OKWXE(wzGx(7rr-l`EY+E8X(pfDbgFZO++5C?&F0HavHT=%Wxv(9;r6|{+wbqA z=edvL<%)%}=g%~%PHrY!aI!PiM!h;yuQc3hsgd=oes1cnWEY7}G+?qkFXg#>Zmv+8 zEtV@zuK46sBU^PF`CO&ia0-s!sCpH@n)m7@_?jye^7V8Lx#13G@brRfPWUxfj%8cp zFr+5rs++k0;-)-XDm#@jG{LLpE0tW)%{R(k5x!K5ZYf^|_M7!mvs&>FvkCc1VjCjH z->3;7>T;!0avD{)P%PK0^=39-@Egr~rBbeYe)TY$kjqsn)ufIfjhHgx-p}X!dbw0B zId0i;s^vzbT(1`!dAH(~i*Ow#_xXww%ey$mqLx--9}UOo5U7^?Y_V9b7OL4|rRf#R z9*m57Ip@J>tyc<%Is}|bEcfamplnIpNGKEmV7ua%U}FiP$}mR zwIjfiImir&mj4U$@Bhi~0gI2WqRR3oP43l5YA+CL`{IeO|N1MT7IZx}YHdWqP#k?; zX1&k~CZU#C*X%d{>XXj`h8()8@L;S@lUv61EE!Yk)>+nP4RGRK2{>{02sm*cU^sCf zv_540i1lIXUO-u;L1U6^D@G z?g6a00$|0RvCdlOtYzzQ>j~?;b-`M(R;@Mb`>l0&VgsJo1f;mr1S{?y0NX17Ufeaf zcino5V8z{IA+)##{PqdB>jPTcJ%AQh0KB*se7hIp#kJw@djKsC{oBE4aXss;@V##h z2vQunvy1QVS^E~ni9^4>190Nr3IBbU^=`n3y9cAhy&wMjNud3=0VOWdr(gN%r@zz! zP(XCO`5=87)uEpd5#UaW_-`jo(cf$i{!N5_qb}WX(DWi#nadYsxVOgw<-<^Kflfb` z;eN7GqP)T5kih3780;3jrV{cm=9O&l4_Sa+f5Ue@zYifw0uTqZqyzHt5OKlw86RzB z7;r4=6+O$T#C0Rt7HD%m0voq9m)YL00mZk#!G%HQG8}I70ZGYkbpVv5?Yk&`0rS;u z7k)Sc(UA4c)eRE*SWtyNM7FMzwXGhKP7%eGWW!P_VW(oNV~4nUB&SSDDI*kOQRE`T zVxLjbjmbvSrmE4CRdS>{7Cer!7JF00lYH)yl9BI_jqVImM{dg_ox;WEgE0`K$Zm0v z^21}!jZgbvx62UEP9Y3Fn#=|u?CC?IWjaVXG8SXO?8YY#l#QST$|L%LvE+EAP|G1+ z8NydD1zYlg5-h|3IXRtOX_+8C*}LI!syOu>Hm+l4RV#VG=mth>}W;+(-0Ch7KH?uo7Vj4!lzG(r~}43XgU&E&tXDAAL!gDgV3<^9swsYNX0;Q0DIEgYjt z5ileS|7QE}Jjm@T71&5O1$o3$5diSw7EPmpHVWd4zJZ9Jp9l~ukT?+s(TIXf`QC4i2>3K}Cu@;zxJhScNZc%@*1N|{;) zsfXe5%7Bb%9#@i#=(1~|~N zJ=g;4&z+@;cWb;cj9)_^GIOvlk4Q0^r=H9x&4Ff83{E8-GN&P!Ad_RT=HZYuReddS z7#t54IHbpUW7iew#|<1JjtaI5Zv-BNSui3PBU51a;CdO5jW7wuNrcZ-i8OZj9BA#9 zTE?WdNDJ`V$wbZ!Uy|vqxNQ*x-X;YZ^N>5=1SV3Par35079C_xA2BATAOOQ~0DdgB zUYW>-L1^OfA^UE5yM^0TU=we$Bw(9@Syo_T zvMJT%v>COa#;?jC0uwZe=@Z{_-ucl{gkdAimdP=c@+Gy<_S}Eg-4F?Lw#{iabi? z#%`rY7mboIgC`6zM5E=+00`AEp;3A~&?udeK|rH~QUZQPi;oED86|Uw z;GI#@2Z!#AQXCzxQ=)WO*qjn!GriZsa!NGK#)2M8scnSd1bb1n#u^n0M$(j>WCiEmRH<=R3u2(Xex?PCl zT}7%PP!$qC4zyEV?IqcoZJHdHdTS6?6#^z3Gh>BPjZ3>?`{|?Sv;;t_abPro(z7Ze zpr&J(F&JUErVI=bB-e>-FF^u>2qwXarAKw>4>F!24SzwLkG#Fi#$ST8cRM0puS!f(R7JlYo=oxV!>P}0I0>2_4A@vKw}Z8Zu}TrU(9rF)n`|Yr zhN1`1*J|5tED0ceyA7W}KafleQH+g+fdhTQPGXEL;jOxiU_6G&A+hH=bY#WM2UG@w za&DFryt0P3}Or#ozp!Se@A_g{b1aYQ?EyNlKo)p!LBGeEg$Jz*jtP{ z${sWJAWNF=|A^_&L~9};Ev;rAV@Tte52_1&c)VgbzLV+`B!pu;sy;zdptgZO6+taS zxL?IDN153-ImZ^~fKxlC^vBT;%;RyThz$0_tVL>b2XR~Mtc9?PKf*aAenNC?Z5`VQ zq)BM)0nQ#t;SXI3S=@*_t{zTED3fRThq7Sed;1vuEC~x9#!^Xy=KiUV{r-pF1F+oa zIyDlEbL7nyI*9Ji89;Qu0wB6yDL{0;hCy_{&brUCtrGyyeZTbpyszmE@clvSp%{Sf z69CYi2bgOapnKkW6UM7P1$PlZ_o6iq@Z1FrK=%ebu?bIHB=Fo<0h)Urz_|+;oO_d4T8k0GfLqz_|+m&V2*Ewcy)Ztef!d1cHfasnFknR)K2doc@J^asp z_M;CxebTbfb?z{FI11SPArY|KK52`P-ROsln`dS!558&MdaUpFy8Yn{!h{{z$hrx9R zX^m)0o8{XCXCTCP%?)<8Awy+<7NH2Tlmk{m3GK}>hxi+I8#66Ph$@gNUVYJJq>byd32l_aJmqKNS(kaDI%jro5&aO84flKv(41O zfZf0}*0_;Ik)jirR--u!ayCY;)-(fWIq>>%L3leoh%XM-S>QhzdYN%8qe>5xP?_U3 zU)M7UO_Fh!h1MiuBeTY&27W$3H$bH~1*GHzp2cH~0?Q@<&7*Uw2-pkk&JK6?Lhm_* z{PYGnJft!h%+P5VV~6c{ZI-QFEdH>-UM(#~FaysB7Bhmz%6mncCWIKmd>iO_vA|lJ z@(*bZrf9w+@-N{3%2Tw_(0_wQ3Q?z#Fnqzh$Ke5MtUif^2i+6#{dChLi955MkCAzc z$JY&Fqp`b5g6PaPK1OCPR&XR@namswZHn76G`LCh0q~MWW)I2EKx2dGiwFbEd_LPk z;fH5*!zIuWRV>4JU*mw9dLRx>wj4&}k1Fed_%qoJ7?D4wum@t0YO_92Z^|M}L1pu* zhMo;(tPu-_HuAu{n^@cy?6hb~J1z%zFi&DzXSABP>EPLBqG* zj%VX|_EE4KoWJ3_oQBS0dRyez1Zeiq#2Uo!N8%F|jS4mbF{@w`e)jy%$?2FGB}Kv2 zXablYoP%P>v@lBu%0{?89mSkgur1gCVY#nbMjOuBHOfmUL^#HiW*%c!!LdfrsiyAH zC?k^TqyW?MYQS(|69<_I#;S5YmR=EH>*a{yX*FWNU9HhE6In34*+bGa+2zaeOB|k3 zdwOvzQCQ?Az{U#wCpq&VDkjCT6&cZ!1uDx7Q51T0p}XB{k;C#jC{hwXKiBg6ZohG3 z-=?syVI&;tP(B6s)WEI?95y5uvI^g55F5VoPbHG0^C(!-@Sg}d_LP=hJg6)t%+ZT~ zN=rBfT9&fQ5srCEOLdI~+gVNqlK@9G`V@Xf-9%!>1w(!+GQC%G&wmGgsp#=n<|^9t1&=O=im=X@YuNC2tCN+F-5|VUAAv zr)}P{Q%&a94LVs)1{kZPm!VP~2P!KIco?jFG{V&)qzWn-P8Aid1;Qy&;8Z5Fm@jlB zvSR5$Rb!}Cj}jjd-&H1zeu)x4MATQA_`z{sxkf}e9~}agBg(!?)DH_57S|wA zHyfl{Y*@y+)TfTwDAl9HGV&7d{4kC9K#1Ik?hj&17{|cCT^m5RrZdtqYHK(pmhaKb z6b8p9TOb?|Iw+!R=t?2+Xt;yt!BoWIy_9ZN++Pj4juJgESS%t(i3R(qc1pll%n&7! zgc{4deNseD%RO!q(Cg3N>p%jxO#rm5x zLO0ItXzW$inXG|OL7>Eo(dLW%|0^R0B@5v12eF-g~Nq2rmYytaSZUL)9eN22TEsz;L0Ip>W z$FX{25C&06T;vxBX@DjvJ28GE(I}93^P!_r@^evA2g`Slm6eD-$*ZZjy{i%!Uw%Xg zNGeCp9O$>xBV$aS2aBsJ73*SOLpZeG-5L7w)EKDQXf49h9+?McQ-@Jmk24Qu%oF1V z8X7SQ@QZ8?a1&JE!ZGrXRTZGDTfCZy8L?*wb{NB#N-yF}Z^Bwz20V=DgX_%>_l9f+ z3D3*@o;>s;x|+b0kqixh1F7hahreW0Kg!>z<3}aU2U`i6t~Sx3dSR^Alok=P_EN1cZBcvWNGZ%aRmf%HDQ-Bp%|3U-w_0s|>Fn~x z=K9rIEu(()mC;9M2e&$!=kJYu9^~Ddsk;MTQ}Wfyk^@bt`1*$a-Y}`YSH;#h-0o>= zvz28`TBzU^YDA@VtyI^mYU%%a_WlPy0o~c?E8Ly*d1g}AXR_|Gv#VN0~6=Y&CH^|-Oa46 zEffmb+Lczj)!D0EYW0E1V(sk0LZ(*RgLbw+4+x&`o>$Kxk)xk@jhtFqS)3BJ@sS5U)Lm0+{q9>J^JK-n)!K50-98qa{Ilbb z8)U16{B;YCe>5Pgko?)%YSedHZIAqUW#jxN&~L!W0rCquUPS()yA|ZmQ#-?MXMdaC zgdQSagTp%H4+v2s^f>ZYb7w%G+UsLn2y){F1Sfi>unc62lRt)VwuXF#l{NVW2R`VJ zfkz;}LyL00*J_eKgJU`5510p&Z{E&!4|26yT~^BD zP-0mVnI=fZz!4?$5lTjs#6SGQ)<0bVj39KqUfY^fj>##H*D=vCgB=v<`>ACA3I0`f zGe_t@DVuOY8mniFKmE(M{mi%j26P6xPG~!1Lj5Xj<7iGE`O2gBuT=c#v<&vnw8~s{ zGZ$bFm1j$3r&2CHIpq}`uhQ_Um1Z_u&t(gKwE`1>YQ=9fD}`LyKM22MYLG=f|A`m9 zcnUgP{zwy4>L5rn)Fo{oCRj_^hiSZwWDjCWCpesp0RxzXiJknuG{kgn$e1gY)dWV^ z=S}b}NyZ~Pr-zM+YyDI{4H=WJFqfc#_e#Z`s!Qs3{n3&KHWOW0)8?k~X}QXnorOHy zQo6T%>DW2ec)GuM?)QG>>(E>1depSXCe`W1^wk8fFV8Km1uIOtf+5opy*~tRn9WXr zKYYYMSy&4-{>{XQg>(`;T{RU`#y+n&8d;t98-Y`m(fyar_rB;IFnrOqoSxH=ESbq5 zvEbzz9E#iq6oB)sj*s4|I5jnx;(uD%B1?IC7R#Q2P?ZfJC(%&WEc$(>XYVzNx0-w9 z?6BE%oP22pvi>_m078TZ{NE2k1+5mD2a;?K8jOdUAqiI%X?Go2wg{%iaFXR%dIW+uP44?LLVRCby?we9)lV5~DRzB$`ap**1`7E_;8J0jX@l z{B_2RfQjRkf)??-AX2({sv$=z$NKkoKmJ!pD(I4Yc05NRspx!kd1I+|X=#09d3B|B z{uF?WZJfHav{<{mym@ZQab_Jf1rx?JRLVY*awuxohHxaqpeBL@o3xK(DqMpJQ3}pN z0gKZ5!Y}rJ`f0F!=$Zw&3GuY}hNhbM_Om0>s1qH8C3N80E86LP&SXa!X(dX zE_?&unu@!y14Qrol|r+k+!|3eH=TbScVI#0I<1F2?im4SCmAM~bFs&&@A}H;e;52K zx}>cUx$S|Kx?Q|1WUbvP0fTZiTPph1YPsGl=Njd*=QbODrC7-O6-W=<3d}w=+D0GFk`%G)E~wsnz<^>10N<3slKY zan%O~3OQnvt}zg-f$KEmClsz|fv&zH2poeNVr3&R-a*ZRD)HkMdfWJyQqcK-1 z3;ey`dix(g1Opsh(i&97RY)xAEBV>a!uryw%}Dr`zpse!o_7aBbVgtiPO&V_UEkiX zfke?cjluQHfFkb0E6e;==X&37`*5b}I^;53-*({#x+`)W9mBc4wxBqMa~f=ibn>E}76ph|ozOb~hdFsL%8(NNoj-}*Eb50cs zu;XMTd<}F^w0eDMZFOTAD!5AH+T@1l24OIpqP`~lO=8KDlhZ%KV7;9ZI+@-a$7w6A%Wb27W zX*flTnh0MnKLfX)$VDha(ba!`_~xtU!D*mN3MuhTN#)+1aYv^EPE)${+_-nCi9CrG z$HdKF@`exp$!|bUpv%?`$VrWrlYY2U;^P$ulIQ$aQ_P&&g6CDDO+jiZvzaML0Qo+{4D;HsFX zN!p=|8yO-6ov+f@ud>hFE^DYQ^Smvn|(Xn9B>y|+TGFz795_d#Sp>#wBXv{cr_ zVI>IBz+)xz5eiatS+984bKg`R`4(D}&S#DL$Twj%t9!m&BQZVNGaTP`z&Bi|%{s?cmyisfp_&o*H<*KJfwC9hJ=RZ97Cv0iNy55sSj zCBMbnNa@UXM2(VX?uNEdT44ct3E-k=9GA4hA|(?1mNZA_i<#I=X@wOfpz~VV+EteF zuIK*khu;MQ5?#^?i?2N-5cOHhokri^hH>k*gMC`aieKuu^|tR#Ay89T;*HG0FVOtk)Y4GMQoY91@v%!DD;=vO#b;J~RXe07eyT8x=!H52cx<4DVQ;7HQy)miY zkMzSGvuMkCPAOL?ma@f0rIB~C#ayviX?o2@-YwS;C3)C^#DeImjW@Q^s!dd)2{x+I zLXbeSY5b|Q5Tr#C9ICX25XzZYV0pCl+8%<YNpvZvM2TBVtsjNvCBnZ*K3nuds3Q}}~fBlhPy`@|T3av@!2gkh-B&?=& zgyUWaQi-ZP;Vb^)W#_3Uloo=tI3Al5>k0z{a>pzL>y4}f$@9%-w(8}4KUZyd`GQ;U za!#>XEjJG1AWcDD2=X>kS_o1-AZm1Iw(z^7Q!j>}sqtMBcVVFf@AU?Cb!uM3;2NKf*&uBc&H(bPW8Moghs85g6$dAFDcD-fp5e z4ZN8NFQG_9fA-!>|M$DsUtn42lGcWiHl_1u<4%KR%%=5e<95A_QJV6A85X-Gzxesb zzYJZ1E@{ml5}0Ve#@M`LJX_u`6}?8?$rZANx|7e>-GWMr#Z&q(M8cqBq@_MrwRZg_WloC)O$4r!nt`uM;2@NoXb;c-u=n&i zu!ZQ7W-wtR(s`(HNA(b&X`NGU%;#RPEY+*6cYpJ>xnGAqK$m2T!hV?4r55gi+dbx3 z&gPvQU@Su_XDJKGB7Uw?D8Wk*D)mY|-|+lO&TUk3l|xAsDM%ql-ULd!TDHZ)1tuxAfF}^A3eABr1#R5*#dZ%%F zP$EyYfBNi;+n-S;GxEJLsUC{-!=2)z;MF~j?|Zpy1K!|Mce2eKETIb7yj#yziur8m zFjh=*G9zyorMa@GLkV6gc-X)IN^2$b9v+RClGaN2`2-(zBDz)z3z-;6$w-UEb^b|H zv&t|&ch}$lnsTia)*Kd3>6;Jqy!E^$%!86*LHGe zlxwB15$XKVxGg>6Gp#oo_gV?dQtgWtfAgpRP`OqL`(aW&5$=II#t-GQIj7Ko+{Bz) zC^n0Ql2>dL3-zW0uE;M`55o`1YbD+UO3M;ndlI}5dep$wNo%Fxb#odoBr!!wB={j| zw#^qaF^tk$DM~=+i?p??jN-rl;?MlCa;?PI9ui3Dj{+hF-6XkTp?a-Pl2$3vq9(%E z%g?|sC2|qUQ1nc{dFkSBE7wYVQ_}gSaj%sEPSbj)aeGiAPqlwqe(1~ZP_C8u-k4Mm zMf%}R@lmCGrIf1|tK}l>ER{UBl6SmfuIyFaIzX!Dn}^|}f&gUDCB1`- z)f<*h>6L(jL61o3lwrkMeR7$v75rv4U#)m$r_}Hd10ST2m-dl(yZ36aeZmO_PIVHT4m@dK-=vjM@M>(0(~(w2 zq(p+>k>=KXF%x?zt&E}sblyi>yUH5+pDMjWxiaEw4+*67K>-niZj$VPP`%a@No$g5 zQ4`_o&Q_^{*aj%R5PSZN3aj%SsJk`Ew>)-6YTDdaf zdt*}F6X}OL#X~vOX0egYy1om!#c$R&Wt2>-}9L)p2P|)xpIEqKa2=pMOta`=2D(vM>HwPlaa>_%wn7`tM9bh zUP@mUlo`R7aRp5#|0kl0P#7c;5@~%IS6pQ}e`4v2U)TAvSQ6=d875=UX>q=cXFL;p<9wN*Ny)wpKW<
}o@ymm@|024+#pzUaAq&5}%VedzH74`zcC6!!C2855f+WnT!Tb$&}-ugXIH+;6|;rONCJ zR&Q83rMChK20bEWUxXEFeUy~_Ae1u^wMJkDo=IPSC^T`7^k+}L@7>Dm3)X^k{%G9U z7r;3)k$zW@T7r#lkoj|ZFjik>+o`AlSqmrcplj#@#RJ{ ziBSqV52UYOWfF(q@dv-G#P_4Z!YvOer1eBWD-3!|I@T{Tp!G-+uAWrZqze*+XyBQW z`3MCmdZ$lc{JFDAd_SQz={(f9L52vcX}#3A@%^Yo)t>54zVfP%EAjnkaXdCA)>{Qb z@Amgt4nlf=aw^}<`(D;-=9*P_F$uh!#3`1XD)_Eq)2miXM+EfF+emqZKx{Noqa?3o zYzw8l!TwICIza%rm~2iOrOPT~Pu$ucfVBWhsC5u3lN0H^|o>5=iN@ z0wM-3OIke()oVSLl(82rY9f5S{0#h6A{U_yMR)c2Z@cRkBDE(ACfs}qKAY#x>lAjW)Pv@tiMNNb+`KdS}x(<;1RFr_K6TbYafA^D0 zKgAQ7Y(EunI_Z9j$W!g7GOzdtKd5_KrSPX!Mf7(i(=Y3TZ$tyV{eDl4(Z$|U$IY42Su zXksv>JPMhF&RiyNpfZ+!{GWg4ua$WeA_pOfls=1+G3YeOWz(`D(z&=Of!#m$kuve* z!X_P&BuRrcmH{WBG{pve>d*hXt<0kk8Oll7ZE21o_EZ1r7tg&wfsP&uKAmqG zcXSQ$nbt3j8}SdzQoXMFqaS_q|D;6x3;SVGS5>$N?vyoE)hQPo*r%#A0Y=Gf=ITwq zQt>OkS1$V5T=`IZk&O7qn?NbV#%oWKA2Ks_vJZl#m?oJ|_Ce_R)INw6GBJs=4-$%} z^Fger$`t-T*Jqwq`=FTOX?+lo7|92PRcqsXvIh_fnh0F>K@tg_&=WXN3I63@`TCpH zK8SHJ;XVlXoOmCEWU2N+|MbgmcvkI$SU*gx4?;a~r}&^!$pg3w9}fHGnobtLE1K|T zj;hmye2HwX*(e{zdPw#`ya|+j5T`v!J_sH)Fm+OP->n-xc=fOj(ND_mqeT)tk(3xF zlryo7HUy@G%yfx@&NS-lS6RjnF1G%SGP_TxKctY-D-kLNy(MM$i417FP0Fg1%9?aR zf)EW>Ny&VKf)p1@r+)XPXO!7}LTl3bsc~ob5mwW>s&QxcQHiR()%_o+Ush)K(c;)D zOsd18U2&)QtY)rKt`wZQTk^`KQn6aeR-F4U-pkuaDZ7vA0a2p_ zw?&>du!YiY)U9@RE5UV1!6jBE!FNg1YO$b+<&-A&G6|jcO5i|cGoO3v-cKoaqeKou z5^4Px5xhaCNxM-I7PKBr+5?gcn{-5yBn^C+0Vkm}MJM*c|L-6FigGtfY*0EcHtyXh z%4=FTHtyXh%BN=4^}gC$-lW`(V&x~>k&!WY$E>~}sREAi!awzr-zYZfe%<$~rBcB! zc#yd69LhUCXS}SX}43 zG&QTtR$%q9_1g?{sfsabyAe5ZwpC13y zkNuP~5*Rijoo^cVZWQ7(tzR1VZWNX!(OS%_*bm?Q)Sv#IG7=c}!=x^(a1Y!ut18c_ z7IFm_u#zgxtXJ}V*pe#y5DUx|A>;2*GW_I7Aa4StNFc902}>&UsDY`IB7u8-zt`;# zH5*b=B#;(K@I+D&NhoJx8>L8~L_z0|^!2MOBg=||FNJ6%Qm8+q5cNvp80RTUp*@kJ z*4aoQHL0wLOcSJH;Bu1r2qhy*;{1R7)6>e(p3s_fj%VDVJ;G{Q-!tye9+jxt{jA^p zhnHxQxjYdemSLh-M6@gJ6er{r91jjbRlx&g>u_Gzhu~heTCD&gZKVL-=nz7CSqXiX zw@^}KFQP@_h~`U5phbHFom-J2d+6~5mtsSG!qyNgV`BQ`rqLQvX`L%k*Q+vhulf9s zKBojNVqAx%qb?-L+Yg2Y&R+K1w88o$JK0C@7 zc{KH zw_f%tUe0Nh^Cei+IN7T2SMvEoNoz3ai zw7Q-3rM1l@3fD|b&hv(DX9>q}>sH#Vi8S5H5_0Z%XSPv`HRTHav4 z)E3s4PHiqN)-Eq^o&#c-8h`)%sg2Fr#;HsEBe}b$)}DCDOMx%;`NWUE5WfHa-`({L diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log deleted file mode 100644 index 0a8503fa5ac..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.ntrc_log +++ /dev/null @@ -1,8 +0,0 @@ --------------------- -Xst NTRC: "/" : OUT_OF_DATE --------------------- -Map NTRC: "/" : OUT_OF_DATE --------------------- -Xst NTRC: "/" : OUT_OF_DATE --------------------- -Map NTRC: "/" : OUT_OF_DATE diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise deleted file mode 100644 index 510ac7ebfcc..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system.xise +++ /dev/null @@ -1,42 +0,0 @@ - - - -
- - - - - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/cst.xbcd deleted file mode 100644 index 4c6ff874ebd0f47477416a3420a66d4aea54dcb9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 896378 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

R-)#y@W=SDv(O&#eIzn_lo9p0F1=dvnn)x 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%0D8kZ>S(kq`0abOv-$=kPWf&U$I% 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

m8WV>x-Hde#EL>Nty>gy)yfFML zD$C^9TJTRFOLX3bZy|nD?1bwo6Rs;2D?|;~RST)tPz={qh*-9a86=Dn%bno5Vp(N5 z%*eiQt2_dPV$i@}1VXV$G8h?&TPFn|C-CxHvjWhS+NYv(8OZml9imei&|bT1@v6rS zGUgkR_0FEuKaGC%NKbHfy~w1*Gsh@DKo)PoZ0vPzY*oo@{2R#PMb}emSWDy-W}GeK zDKeP%Zyi_CM`MTpQ4{I_rbR?sHWfFIOR9pK+zaqZI?r;x3|>hq1>~BLOu3^zrh|1u zmZcB3fp7J0-pZjf&4`mKjm1M?UqbuGA=H*zfPJD}V8IK#Mpz4E`?xt(Id{Q;?16kE!R6GH?{EWN!I4-(sN(|;4*S~6d3~mLNQdJa#{lFbtRTcxn2Rdk6K=ggWFsau) z(P0mMD89nmu)TF9V%^4H&{FqU7t6H1MA?g(K%5*s%7mj&V5bz0+Ja%{%IFbCI1*an zouBp^8Rr6%XS7~@879v_8~Eyb*cBmG%YDzfVyxhNbkY@N1?Qv7t~fF%R`$Ch$)H$i zbH#20#mZ4v^fpkeoOi|NgJR_n^r_Tp-!l!E+p3>@Pc(pI(ox?_4d9scr|*FVa7?55J#=NOcUDJ-8tC zOJMdO533qQ$C|N+)enFifS#+mU>PTH>8Ab-YHwsipu6HX=<@sjTbDn$QSnjlCiHDo zZqQ?e0mTZlo+e}#!+L;|FzA8enchq2_dvN*j}`_dDB`%mt;N;2g>ZvEwgDPba|WPnTbioj#3dn{Nz$XePV?7jOUu z{t0j$2Frt!j{x?;$+?@JBa+~xCVK!3&;;8x-f%KA249r~1I&SwQvqT?KHxYE@(gev z1_}dI!azmvNuI!9mq$+?eP=&7aTXLGfxKICl_d?@B7b3xw}stR-5p$) zx*4%j-|-}Myd8*XyvcPrJ5ayz=GRTyfgI19 z24Zpad2r`XFF>s1@#^vlP#<}7_$dWQEN?15qX4~uw~Wudi{SBc_}O<+X5J!x>Rn_Y zZw5c}F8UCt!_#6Ab9j^ZxiP3`yjgrs43fs1!k-+2-pO0a=d~lI0_Q!a9rY`3A%9Xk zavX0uKdT*mhPRrZUX57BOXufRqyFa2>q)6bI`N8nGOE#=c`JIj?|_gu%7+I+UM2A1 zfsj|$llcw^dFy}=k62_*>B%La{$&>Ra0o~*AjwZApuaa)_3&yDGk`0fQwxHz@}5bx z$caFi&#FaVGD~~Xv*Aw4?a9kVeKF6DPRT~1%>~gJ*=VJ?I-1*!m}FikYG|{MTe=xGx_*(i>qbumXX@42x+Yq%3M@Xiy%cg3L0d1IUdX|yeM#!f9Y>a6`Wi!Hz zgf@px_^US7ykO{p5Iq-KRX}0thE`Px5Zx&rhMG1~IB}056^QQS=>~BdEu8ewkl*GN zPN|eX6XS(`%N0At3}N77c*cArI@5=~r@ACM(T9HwQ5eg_$wHVpI9YxBVCIlxjqZb) z!*mm=6=n`+)dxf{b9fAa7S6*-eIZGRi>6JMMH18?-A4`vA$?&A*xBzhjF&jofHt#CRc2T@9A?WO!GRFKqVGUP zs`psJB#tHYbH@8t=MLs;MWtzC)zp6c6U`Ij3M&?9wK17#Zz~GGepAo3 z?9A93l>ghKZ?a})peiU|KENEOf|QL0W`rv6w!DuyQRP2I*1_~w1&@*2m}4`1Ps`Rb z!!iO+%T3G)8O$ZJgUsNJpe6FB%(x7{x3V3~sEok3^1ICB4FCUylS8*YzKfYDYtaXE z1!c+y^)X$3H)Kuv@UFlc@_v0{mw%|NQ_t)Q{;zm7+}0%Y$+9 z_u}XQ-;J^@V%9*wM)^%~`~Wjec2XQL5R@i=Eshz0MdZEW@PWW<^2g%D0skPN)-VTx zgXCYuV_ba?%jDuvS1@ohiXne{u57<`Ty%Cf=BoLXXng}VP4k;*M*})ddtOxAfWM~s zC~6WSu4y-j6hcgp#w^+q%&HOKbVT6 zr+3;vS1l8r6uLZDJBcp$+0j)wqWygYx;g?}4jgu=7Kx7bIqy=RGc0LCw-6^7Gus?n z$d$@C6DX+%kqb?wt%ZZ=O3ezOPx!QeCvvPJ z!aTl;TjTtgQYJfKO^gq^40ZrNd@ z*Mwe1A2EM`b!&9I|60sEc&u*fz$GzyZ@*1v^cq)^&@~}qg(H*R!4fO8n9jCL6LvQ* zap;W7<)jK@@u(-3(A0)=OtvjI0Qp3F(1NcgjIg#T_oZra_W{Y9=uT_xBiu*ai(_mN z?d4Sy0serofH1%WKrkQ<5CuqXFCSW6-fQ6iw)W_aR{;kAe*m@v_U-2>j{xQYUI4DZ zn?wQD!5fusq&s~beKQYuGZ<_rw0)qx{?<93vRNOa3c4X1(1)x1Zpa&~397)wvOa5& z%73xE!y2m!el4?EBQtzo%hy|zG6L4()n;@ZcLZElHu-)h#cb1F_uU{x*Uo|Y(~^qoSP}DPB4NVqh80EJM7cNES0w~GZW}1R1T-L<-VI#&Pz0| zzPnZSOSD4YttzLtnt0!RD#y24sZOSHanN9Nbs2UJTCPr&LC|OdbPX8}8trV|`V8kx z4OO=z1Ln5{y4wGqRRL~-)jCB6*n1Mdc+4(Tn+?Wegkzd;FdlO_rmXjAmiBi^{4Nd@?c zJg1(lyO>M7h@SMjxHUYlp1ix*FT9D-DR=Q`9y&TB2BQRHF>VZQ5*UkR$6&AW#zv>c z;Qe|3MN_dmytruaFFK|679Ae2FJ=6@saP+goA$+!*b6aEXakB(45um$Otxz{eUgF9 zriRn58pg0a!x{bt2R6BddcY9Mb|2a2JviTyh*s;%ADmtE5dO=2cy@F9KU-(n!3%%+ z>5s3n>C28ERxcJ^7;v7e`sYpOs!K&@2b`X(l0+v59G|P#iY^bh&{as$epfrXnj>m+ zCG1l9iH^ED>{8DZop*IERFOo7T)r+X^4=!7fuekGzyuHdU+FFMcwz6z5? zKR~C6v>nWnuoaXkV3y=GNW23CdGsK8ESM!Z4uYdhDH}fsjxuZ6E}q~h!)Zf!k{yjR z+w43^TBD#1<4MUfO4zKS*tk&Q&`COCoG!t2Qsx;~OPp(9`72$5 ztRXXu^Cb2)q}|3M_zOfSGOmy~jS%k}^CajIa-6YJ;y6M&H|y)erHOqUgoJ?siKj1n z96hHv8_h9Q6AQW#MpHHs=>C4D3SxdYa=)pBSlo@CX{sR>h9iDAr4mcSQ6!U?C22t$fG9kSQ-S!!nJjUo`^q9oVrp^a7LS1C-4Ls zyr6EHCwiJmQU^5N-%OM1W;CJ3o95R|X+oYiO{<&UgkEV{Syxno_-NwQm6f2dz>VOS zAUBw%@`WX6o@p7spdVp2rW?C+*1sUj-hwC!LF0!<*fc z$3=eO6-1|S(P$u7WS9_2UUoFsgqp;wh|V@4ukuQwQ%yj;sEN)DKpfzuMyCa!X7R+) za2NT5mmkduKvQ^2q9-3je1m4r=?v^))m_oC4D?|&u;0PeMD*wiXcu~yx>Iz%3ty-j5glS73e^hH85ZWA z>POKD7V4f_FS^9S#j32}Z-R_fZxj8%!k$OD4y&#F(0F0$~;Rc}Q{ni0#@8qv9C z%zM=h(Wz$Cd-XBVm1dl?>ZL{3jC58vT3Va2TT~A$&CTd7>I;^RW_+&dljUGJB3Hf9 z(q4|ask&xqDM#H@AGUOs!xZnFPBI%N0O0P#EWsPBJFQXGEpjo{> zon*9OA)DAqQW~bST{|h046E7H8sb$$I@_~`>~EOICfAS-7>Yn*Mww+;!KRN8|1jjS zfjdPpRI*7Ur0wEw6I{QDWC-yXJJw-Yia68`*!aHU1iR3=GLbmQE^@A%D2}xYc`oCN zBkdxd%cI3fc42f`mDtZNiY~VkvsJ8JvJ7#EDtwomB_6K|Ed+aoKviU++*LeI6><;k z6(Up-_rP9ZqADyF>=pb~QL$jJFgAmAR>l>FWrUxV2Z$$Rgf0gGS#U<=ayeBTml5(_ zRv?bbh38Y{CaDpHQJj$yG*%2KVNtnia^rZs^Tx>zQ*2C*U+%gNSQ zR>*5vKCH(^yq1r#Cb7c2K|bckit?5_SlP|2y|PSeNOSmJd8l=Kb7(2JD+D%2mdf3& z@QIa-4N+IqR}4%^Fr7ei=Bd6Usx^g84~sdE{C! zKZz?3`6?^4o{ArwNkX*KksJ?_T{}(AnLxs{GdLVPiBL^7a)L>yYPuhXL2`f$WlkIk zSIwBoaUnUsqyEl`A|c<=NgN-N{X1GcCz*tO#}F71Bqsv3*XT<^gUOJQNOA;|A!9TN z4<jJV2rwBky4Kr)$&fL=9s?#rMoc{+oBES6pdK~ipRf3dNo!!{D~~dr z8iH;s{$zSJ_}x~1$3!;-j#2!^q%`=CQJ!ZyHUytmd}MkE!HRwZ6E6hDw3*2ef))KC zri(D>t>PKeN9gw!x=RRQpo8L9Jy8gYhG+D4!eEW!Z@p`uuSU69kLd%3;V*h>A2U;V zLQm*}K#_j|t<~>_@_V4Q28II3mE7kas=TCk=nFok_@Z}@_dTXm>T&S_3lvxN^myh1 z~A8SfBVA?Jeo z4wc8N9Lj!&yu~XUN_~fp;;kFXBp^APCE2}_YO=*071!T0%+>6vLQztj`d9UQ*E6Vx3u`O`c>-67yl^#pZ?gg>JR)E$564#(RsP*2gFjR%S$ zBV}8|)RD%8+sqaGqD04+>hZeEQs)@rQqCl{%R$vg->Kn<&8E~IVK^$sB?go}0_-Qiegf=Yfc*=we*yL{ zT%UqnWdd9Sn5SSD*B)_rw*{aEY(C=9PtBtZFaSPzG*=?P6#%cfg01ExNIaPf=7FJ) z5$9BK#uHY8YtT)_@4#h9Z9@B-A6jCEojYbU;a8|u7{9loIl4qWFU zV-)kaLD66{^aC$;sHF>R|2!?@>nYu|^RVtZu_0=S5(^hOP*`|YT&ob0-MDL83#f>n zxt!J#Dk_XSvo(JQ;y8D5D`?#oa_6@e?m)icPHQdQf%f38Y!wtB_HcQv(+W`2xpP{l z79byTr?$>0Ku_Qoquxy_h`~px>6SUY9Io}D#&UEi zW0BDVJiq;=%D?1#d;ws8^qQuVqcIBV@B;d^C?O z;5Sqg{z;K%%CSu8b*TyZq`YND3~g|=y9`erMIgQ?CLo`v_88BJS+?AMRHSCQ@dG5< za0vKh4assu7@Sq#J$w>>#dOho#QoHYq3NBEjcoH8gO26630!y3c%1P9 z&mD|F4p!h^K%K)06gU^qpK)jcQUPrzXPf|Az?jNeGWQLcfAz^xK_x7(*5!*O31dO|szf;x-d}4@BDU*7M2UT~Tb)-U=alMojLyv;H<(!^^P88WX zwJxX>7{jl0=cVX&Fa+6UC6ou=1dp(Yp0pfqgYK7T?TA}^fvbRAj+R=e}y}7<{FFW8iWGq5RMLn{1GX$fmvn^jC zzOb`{o~>fr1!-Ox4no}c=`P%16U2@4oTDQS2TD_(qFk;GU|iJwmfsr=SV;AZ?5+D9 z=BjEey$!7vwg8dn{RdbhJII4)y;mIJl7^}Y;^-+<^es~X?gy@Y^n|n+Y2gmkQgNyB z1=lS)Zev^n!hRHBeJ z*1Khko69{@Eq>vwYszKpKa8Imh9Nad3aL?veblku6>#{hirPB$pkk4p)EDUvLKOSH zkVeG}CiJjkTGM0Dt9eUX^V$)gd0AB{?I=9lZZq1Eo8WfKZAYiW?KZm_ah;c5#q|D` z5R=#D)|`!i7MZ<=8v7he8J`Uv;$-O*PsBVE zr>f8sNE%lyP4TG5^mO9{t80AJ7Uc@FeHACsY=K3G0#gXJSJ zEFE2gWh3qAQqdk*DuRMJP;eXy?n6N(6g+`~%TQ2KJGvwUMSf5;3yO|F(Jd${gQ6=? zv=)j+Mo007f_YGI3JRV;!8$0|4fqB{k=LIizK)Kj{$>BoUx(Vp5BYxI(WQK6UF|)a zm^|crz*dj{&Xkwf6~6X4T+9sb*`zCPEeXROE~hn5R@UW=7?p$8JnyH(b;G_#Yx=jl? z?0PJfabHemh5_SWp3j`XidZ5W!whCYtmzW#Dt_rx9F6PE7d*x8G&$)`cj1qzMs&wm zh+}Gn?g9(w!U?*=8K^VdG0hP#6$yIp3?MR}E=Ro7Y}D<|K>p1OE%$W?gA;ZJDJSLF zXmA?_RCXzpUP27*7fxzBV!l4G92(2d_2bH+vAjzkQ4Wped-{px&{#gJ_b-RW@_YT* z0cb35(T5E{WBI0j!T>auPwImQpt1bgn$|Pv9r!2s^klum#%cDXRQ9^OBYokNu@U_N zI3NfT2cmFb*K6m>T8vYg_|d|C)JD~G<1b=Y*U*j1=_b3X3BXewIlZU6_sd!^Ew+ z(tx?9{Yj)~Km}=zincZ2g20HJI_%pJ>W#W%x@tiV+e!J^co(&sW#%wT%1y)_)?POf zhB4BDM0;;ap8UG`j>Vo$NetPG%u`RZ%x8OaQ*SBenLMMj62Zvxyk#2OrJM8@_z)u- z!sv>XVo+|;!9Cwz$l9ggiQRhBRsU!6zxsQ4{36T2oK*1P;5XXmZ&My^ zPi=Gg)vJbae06^L$Nd+AH|+8`_P@6YUj~c--^;Gi@8#b&m;AH2Y4p|qWYgiFg6+Xj zo3L`U_CMX+I9j_vI$HZb-TZyx#iu=QudZJH)Bb0hJ`8S~^s~#G-vZ&B$3J8_M6KZG`k$r;B<}UcE_|-{-lG7Mm?!H@Y=l>pDBO5+;o(x znf4`mXDa)+&*6O5+`q3DIG9`3He~KEKfE4}&CUETZazN*r!6QQJ?;O8&EH1f?bGzp zcf0cMoAlAm+hYQ=57q4onHjpFJ==atNM~<7`Eb7K<_`GBR*(MM^kbob`2A?XK(^DA z5bnGM4ViukQ{Xqy`D_-yH;$H$8!bHwrEv-QP%yp`3Zw`8M_)cR`Z7NUMp(aK zbcBM@5%!N3*!?;>Li1r5A$1&-4yC1!7R($iu-^j(8GWM#KaLiVW1*m~b#$!tqhkeB z{4Yzt76yzCc8)n(e1$d{sxcC%{=Jen`q|cnZ5#dc1EWK8kHFB@|1fmROKwBv%&EaY z7C0PFARW#Z{;H1N`Qx!%_?;9kV`d*}Jw}0nr+#lYCFDPr+FgWG{RYW!yfq8ze~g6l z|Fai|Mo0c}!f552(bGFehyV8%|Kr=&wZg|q-4X;JZ+s(shNtE5nWF7RPvY2RemoTt zp0)lFHCDtNJlu+;%#7RM)L?fpq{6`M%bAG|`f;&?M>J{qls=idb+O8@iUfMr`pgPngUd;zY4(Jw$X`URvFz!wm$AN>MIG#I0{dGx#D!gpnRqWYBl zA1jKTx|m;c*Yjww5gHlzW2eK3Aky=x<>S=Rr&5nkUcZu7oWtxs-m~ELKZhdz$0qJ6 z&F#*Q_n76T|EqVdE&gwtJ?lr`?Vnfq+LT!WbPQ=6XNtfvfV-$J=%s8f(;jSgbQ_u-i#4ls zJDXjKwK(18a=Ql_YESM##d|$zz}H>5MQ=Y4(5Se{1Oi=5&(s+7Bkt0k8SRLP)}=kQ z$!i~`dG(ArEpdc9Gq@lidYP1xCRx23lGiJuNb85P8~Vz*mK(D7H4R?ha|`@a?`8M z4PaiAzBjUZvHf8e6rZ_q(Z$vHSzMRs!grWIxKUMCI!LvQOGZpDKAXD67$BiEgnyEU z=##;RRyJSkD@`GwTr@_D9~+Yxz8JR^Bx)Bru-(LSiga`IP=l+pH!MX`!~xR$e%xO2 zIpqIiMjn>Y#G%5F!}6(CWNUGv-96PNL-BC5FxVUU%3R&b=|*^%4~W1l zyMn$|8DX_=otkKWR(-^0g4ITv*2sp{Mn;y=zKxI=wM)5OjExU0RNN8Mq?{I9lxCbIu#MgseotOx zS~Ya64^awwyH{cgWLV%TH4&EDK8Kr{MV5#*uO`X_!$WbfG<^{D!n}CsWFIm9NHgmmqgxVxNeQMaXpdyGzTnWC4`#DEy^g9{m>z)cTHff;*>dLXmh;N zWm*(OD`_oyseMgUDK1%61P0?%Aw|h)Bs?-^UW)362sfg25fFp$Bat_i$)<~zTee>f zWstOVPUxAI2drV;g$Bd|l^PtdFblvB>udx1rD~<`%A#FJL2L$jX#iY)lMk5@(7eECcAhIklKyO#jlI@1V33 zS15OhspYhN(w^d4 z8_0KjvN!+fa@hP1?_vU61B`B8e}~@+`*&u2Qo31PhRQn~4703JL()!$fihf*$h)>0 znMiws9jb;Gx}{OFdDcsax#rdT}dH7UKtN%w_sgzac6*`Q#x7pad;cT(He-P zU&}&;Yj$IVo>BI#0i|Tod?+{#1<#-$%=EVi#2kg{M9~=tTu^x!itAlkC?Ach1c(YE z)|e)+s~~SM&J|!PNIYYqfKWj(8Wm%2yg{Z0iI(qBV>R(fDZ5mkN|D~ z8o&!c8H*{=xS_soc0)y8Cm_F>3CJSx#&_pGEpK%L0{dIvOU;Nes+}K(4``?QZWlU@ z(T=kex6x+LO3ID(8J%O4}!6TC?~C)m;s*8^wBmR%C*l ztRKq?xgg8ehp{4FzQ|se zutw@tK${0{mh^%vnr~ljh%U_e{nn?KuU@@O?p#&*F04DbyXKc~*H3NBIraI;f%<7* zKRA4Oa_Z@~HNS@yoy^X?AF>Z);VA5R|si>=(6{!v=H_4-HY zwyhVweO~qF*Eip0zwP}sYU1{9x5n0VTMwjN`nK;$`LyA0Yn9)9D@z{!)ra}&+p7t$ zP#5Mol?6O{*7R6>{(MqcLOw`7o!TjR%J<^f0pGn?FLQIECsPtN5dIoH!&KfgwHEov zB1K!M>=s}HhDN8h;QY<*ReOYviy5yBUgC)zQz{TE)SE4f z+wA-OW0eB2V@FX1_JewnsJ#z-G`+yC2z)eWSk|_A)Ivlbrj3zJ{S0PYKG}3=>_~{& zv`vN>iEE?Uok>{d>_bBzqgjPW|iPB@;-HTVz{{0qS=_w+@RL7**LuEj78Ula#p`G%&dn$ z8owC?^|H+q@BiT0&HjCF~w3n1icmD->BRzoz3=-X=e;rfk$WXOW6k=*_INZ zbm7eys&B?8(f>9E>yfsC7|cF3b?AHswoH{~$?A2j32c;|;!PRaoFS{^x!ZDM&!pZa0GbN(;z|um#qCCk>F3bt05l(@s;Rh+^45N2smW&L|S}$X(i-GhAa9B9pS5F z-?({IymvQN|6Ts^RIaQVgr8BLWCT5UTP{X@$4#!A_6~nvgM?rtyOR`UN+BD3878GH zmyGT5+o))=((AJN9ZoW?rYvTAJ|+35l(NbFzKdbq^IyJKI?z<&3WdTN$ujZ>j@xk1s-r+>B(Rb-v6$w^$U4S?KC#yXyd)mK*yumfYG3DUm zwbANU$D9jyc#jzJEyXplb2)P_I>%g62V%Cy2A4)PR(D=#SFGac4hadx>OkEYp~C~v zZJ!W2KTy+jmxT5Ss;RmILZ<}vINc9INHkogJ1&GoLnqzEKD$+_9Nm#V!YXxyC9RG2 zj{Y#kr_JjfZGs_396S)b9EiDbuDcC9@E(Y{$*xRi*&Z_|y1)~4PIc8%D8Ueb zIaVbh)Bc@=8gE(+>zql_j2eVDh*Q%| z>7olZ*KXoIS-Sa%g+1&hEva$dODvNGn|E76hH28`8mGCMO2b&|^ysV_Xt-)E(_rz` ze=Xe4eT*f;l!oB7xWCL%BDswg4!N^D>xx$42y&My*_c1f5C(n4{cKJaZRo%hYStM; zC2lSBZ}M?g2VvOB^YRYTpN3WS-W5bQLs~tlg8ZFfZoOLt>AvCw)3Gn;B>Ew*uyxXG z^aS4WR>&B*$jfbojDgkWzekf>-fI&rvMxtwjfcUn-o=yt(MS>?JZV@XTVUtO*kH65 zU=pJ=itT#W_&|;FjvgcB?7&26@-2Y^_fAlG7ICKy9b@53VOsD?kCH+{Y^5gCQrk?p zsR^}22xv`|U%|jLL7ILSF&YhfvKbo*B&LZ1d}q`)1D*-@BfqImTDA?~zS15U=k%gSf>$ZR^!J^L z^0t4*AEaF3tm?(jCa&S6NhnlDVwx$X>U&qrX^qi$k1Hes@8LMJsZXir zfa_COb;%X7%6|9V>WX};skh)H9$mqU@gL1zI#~yWN?idr-Nk%iKU$*_=$bniRLTdr zRUE?trujB;I18BOx2uFUC5C!SMrAu51f_Sq zlpaH0nnD@&EDwFI0KxZdQ%z5HIN}#`YENo7D#9%8$qYxHFz5HAg`*dlm-OVeApT{} z?BTSayvz%FCbuBJHy8KtTF^7ht9o)OVA2iCAQh;Ipe@a+K*niK=+5=wKB@ktJJp9= zOrF3=ZgYIcxM)PQ;R)2$M&C9_9Q$k}N)Y|w&Win3Vh7I?cMe>M8sZ%`YG;Yo$Adh3 zEUbdi`y(HtR;ZR*av`8Ls}ud2{sQLQGomv~5Fa!j3~L~IthffGX)Z?LFv&GI3HL#p zXOMz9f^QO<0;ccVY^ZDyc!yZSqNmn49adKw(AMb?3+tR15UJP%#B zV0bLh4^ZBWD~e!KrDgK)1Zn07axZ}k$|M_v|=aILl}5k`77{}{Ff-s z052){B>oj|aVr=ac<@SFC-);_wKXDbm&;iVO0 z#FUan`&jnxwfPnq%gI?Y#!|;}bcS#w70YFd#=+9iY_~<53BhKBy^N`b$#8j*e>Kb( zctN_Wi~*O|Hb`EkpD~8%ouyL)DYC zfE^#zC|kjsQpE`{tY$iOMm5S^xJ!rjmm`xP_Vqg4^|_Wqm@t}89snvB+wX=HG3_=y^bTE*U`4XE%>2@o-USi@!p0v zl0;duRf<@5Z5Z)Y^9ORo3krg_;HyHQs1k~n0Iopc&Uo*)GuAl8d#5C@2?rThIXE_I zHr1aK1eaO(Vz^~aNTExDJ97K6r!^Nju@aZA$TT40mDWw^$1hR$T2`@fPwBHb-fZWm zv=2%Tle8``8}ZT1<)>t$u;$tPjBMlva{-^5jpmurx(1jgGhBd>HAh{{y|scUaQ z-cY4;rVYEYg1zz2%oJe7k_)JL@=WV|{4ZhQub9Tnk%p;fN(fM@6a)|0DF}?F1n-u@6UCLhRlz1>SD`sfk(gJOW6b- zxg#q;d674xYHKs-ML$_edlCJ??uuR}ww82M)KU(z(QB5qy+G{C0b(D5!gFr`Y0ppK z`wr5cqu}}oE3kO(!XaHb+MB${coq0C+;;pO9v-;%n5~*z3%l1XG4g^em|HY-Z~*#M zkBoQp_=b>GKnj8c;ePNCII|=424awlHchC#lf+lF@+Nr!wIQ?OK{R>ILQT0@`2(c zD6WA~Z2?d;9}0eef)`K_1qEeLaCx)h;2w$T7#`Uh^J&maP z`|bNhl)Buf=s!X82@jBNJPxQlQQz@qRskLQv`TMD5D;e5%$!&OYBsQXoCOX~sfRd` z0$fSd4Mo4+v&;X6vQv-h;1pm!as%ti3UH9m#OD`aH*m-Cg#~yX*NI>*({6N@iOq}{+O0pzw zAnG*|ZDK|9`yFxW&ju0Ooj{sp_(dG<8hTAW-Sov$$o3{sD26IFsg}6ikimBA4>~M+ zXfCMQ)PQ?Ub&*{(DPg8d>_|@}q^Z*lm&6GjdEJNu(59`G5^8B%p^ar<1qQUWj6Au$ zb$+y<8?)UsR&=@n81cV}j!Eg+l%;S>9Y3UNaP%hsWwjySL(q)-YQ>*Xj zh-$-zQ>Po5ZBF6zhemQ6I-EAaIHt`p9HtQtZTJ?LMufJxw7@jNU4m$#;f)CryB5YK zBTj;;pr#vxB+zEQZlp_46|`H*MW7`GGPW037>1OB$W$vjC$%3WMJZu!-W*FuVdrLW;E~Qi- z*=Wml&M-;Jt09y^59Pk;h-Def?I(d0j#?%gYt5=Etie788R}B2$Iw|Dz0?0P`h}S{ zbkgQsLQIx@Fm1K08K&4$MhHpNE3&PoQi8AvUOI$s6B=RJB zovOu>SMM|e(~m1W=OIXC{C{7T(le(ou1iU%cR9%T$iWE^v#D54kic#>eS;AQ(p^lA z;uV)&HwV+UqDH>7UL4%~UJTh%3&;}Y!>->oc{w=e_22}n;VJ5$yQ+^EE< zDI5Vf1pb;bQvj|e<5C0ya0on;A`y7(0N26E^_WccY<}@w>>Tbye&JpGGcKB68iS#6 z9hzDBoWNcP58TY5^I zm+LNXzNDIUFGbn=BWfsJTqpgDN9T{Tt731(xe>2bF-9=Y0I{6*CLdaF> zdP|zbV<2KNevQdXcdCQZAMhI7haTy!bl?fZ1BMg{Jb%6hnRa=)@ji>-AEVJ3xiS| zDb46cyJ$aJNNtF0P=OQL>=Hxi%IhZbP>0ZAFY#x?cJX*=W(y(@gr|pv*u5au3U9-8 z(-#_l5PLO18srNTF1n}!^Oq?ox~u}{Xrj0BE3jHqY^$&WpJj4xEf~c7Y>I3x8N`K| zyj$}JvBynGAUee_G$C6HJu$CLeyydRI1dnf3p}xVOzhTap7`me(ZwH^v+C_2|Hdv? z-4Pv;A_vJ)ibvMK*7Q!odrgrcX*jemsuYbky|U<}XitczylN%HGjA#mSR<;ko6y&R zpS)g*PmH<=3hxJQ1~`su>hU$cZxt@Hv^XC#-6?5H zgnJEndW{fXDD)kA|EJ9hN87l zG%`BMI4GJ91s|Zm2MUs*U>y{E9W8)SI;c<-cecE0JQS8eVP-||hLda8OpnP3ekp&a zPwMh@m(}Y1x&o5$-zwmDXWezz{pb9#<=xNTZ}}3xe98On{p`F! zllk)9u`K=2&cG@{gfu@cM(@%YS_SSQx2C268r^OM&VuHpaR*5?C|lGpz@Rg>#+mBf z{QQq03uXId=9GG?O}4M%Cf5@-(VXIz)SG77Y>VTS2REZq+3z?c;!P)K@xs$4OsC%G zS*4AAW;~o1l9t4`o+Ix;7APWZ^VSEIf;k~3E%h1oBad)9mTqjx^H|R|lVqkF53}RN z6{cGZv(>~+1br!Y{CZ@U&r}R63i(~+pa?4R|6M#u5nU7R z(aIKS7vYH3VQSI3_dZv>j2BV1yVoin{3Nx#rX4kT1&vDEp3tQd zy~4V|{cE)hUrfjIzpsl-armyLbBvPhN$O!7lW2E}gsQRWU$1nE4qA_l@mFwbSC4P%Cwak9Xd(0QQ(cE zTJc?Ex5phJgw~wKQLPn@Y9-n26dcu>?)`ULx}LShsnIbUBV{-P%H}P_H2lN43T{s#Rarnc%3Fyt}3lN43n#kQ7m9`@hELbw^a1QZ=Y@hr29Ljv@bN2%|g!!_~+NG^#&m0cN zv04$CQLMH^6<*&5pdTWk{4VH+XntPdpdT_v`CZTtx%l~~_eKX7hr5HS3_7fJ32 zto=McRi6;J`T2g5yw@2uyIWP)=xmz3tWaLeq?x_8`jF1C*=McfH45!|?4l0Wj898y zB%apHP8-)|w4q(@KDo{Kb!SB4a>-XWO|2wLKI!c(MoLrT#_64U z@gcPn(e3g9y9)b!aVhHbPOStj(Y&}+y=$*`NVN+nxz7#|KG=?~zNqsp+c@C#fp$ss zLzf*EJBSkXPt@*us$#zVO{ur-@g5>R&zo7cPU%o#81ETrBCjfJ0^P`3TCI&sH;MK#ldR#{_DlWD_G2q%wVxHs z-dk0u@DlPj5mTjiwByq$(cZsTAK;A$o4AR33nA@Wn(?zVQ9C)^>AG!}YJno4A@GoR ziDG0!=o}GQ;gjPxN6bSpgrL_VZ?8KYMFY97{x7anRtqDo}1f}dy2G- zyR0R2Sy8RMK9M z=`GbWJKbMY*9usjUN0oq1q9`!Ak+?Hm+j24I8o#6z9R>G2{YW+bRET=Z3!bvw3=;#~7Eu0}}OTN4rISxy<| zFe{FxcPI+DDPAdb*(+NdJG7iNjPb780hO`+ACr!@e``8DU~~#aw$JE1Z-dbNPkCxA zRqx*m9-W=-FPlyd5Gznf`YC zV6Sq&}l zlr$U1GwpBiGi5RMsc4E}!i-IbWx&7kg_ zQvlZ27jowUakHsI&6I-rW=jY8$O2gcF^M-M2Z@}|6|5X2a&AV^5+rioXOoX$TkB|% z@dH^$!G$7XxO9KPo&<0NT9!E6P&srlOYDPH;azqmjH4>6F6Tb_TvbSyL!ZMxDpnV( z&)!uP(`DPo*r_6PIWg%|RUTdTOozXaLFUS|AEn}S(U^=2D${aLVcrLdFVC$k@dNpQ zW`dU7W!>iYRkF3+sQ-i`Vj?7}!zgt&!GdsHz5@ku{Dc#Gh&Pd0Fqvb~=Dk|7KwvD) zMbR_qBh`}fC}DOFAw(LbUZx8HD~k(wx(RM5hvr!xI*`*tjj`RMJ|M6dNUkOCmX~YI z%SR7n)Kc?t?p@5Wt@QK}&(lor-`Rj1vV+=X9Lqs>7WRRt>QtRa|4E_aAe)6cC9kv* z958jV$Sb5*Rl9ZNs60j-4Bln@Q+hzF$DD6_Qa<&@n9tS;zAr={ zbR*WsT_-zfqSueVj_vZFaBC!{>>$X3Vc_DQkft@P=PYq3_X%xCn#*pOB`e&{6d z*$zjgdQqDoSQ+>Kf2L>SvYhLbg->6RKk6X(Yl**>`0KC#P<>B`GJlY#kd2VL5caOT z^$w|_MFwG|vWsjXP7r&DD})AdfiNI$sq9`Gh$Dm!VM6R6&JYI(3%Q)O5GROzs=bo4 zE8un%#1|5=E1+y*bXHS7WJPpVK`f*Ik_KrJ+FIC#ig$pRs98wrVLvuLTQd{~F6OJ{ zXH_QUR<++5AwR2Yd8mW6Y}|lRB3TynYFw^>tD}`4jv-f#`YA(Pe)zBnPIupNw;eH z3f6*vI;FIvS8&G9NVlJjC(xX-9bJVHw{-S`^Mqh$=8638=c zN!(<7nCIUTzll=Jb81Q1M1I2?(E=tJ7aq9rI%fJx>NZ+HusWTJSM zEnt#4&kJq=lgu)nYfGw^_&eK)X|oUkP1a1ikLqb%Moe2vb$UHr*KSG>-NiYH`*yJ*I$%Q)Aw_F;^_s;kgLEL z$LExJKfbx|*u|U+>*Ge2v-UC=u@pV3zQh=9YhUAja=?)v7(<@i{!%*wX@;J*953DSBF`cNO8G{7G!7p4#d8gSZ5b35q_n)AtAIi)Q$~UkTi$X=&4qS8->i zUL|3Z-Iuu8=^(#d6*oDZzKN!Z1LbL^&AvEZx zC8c=qj*2(x^@t&iDrAZBbVJJuEvUD1D+yoQ_k!6kTf5)UrD^v7<-Hu zSU&@QD=cHsv{bG)E(QO3lwguL zO5!j*-T!b&Z#&6gCM(vOnt5-To z3KUAK^~~t5U`jQW8`57;o6^6&(~`Azgc-|riTZ=%p@P+&R92m- zISWtVr<_tXO<^M(GBZ?|NGGITb*BtP7*2BXjIg9lMkfool36_eFy9x$g(;f|3krpj zC7d?(pyOjaWQ`m;yr^=ncS~f)$Q-*u*Pyyqu$Rp#__f(;64E;Zk=~hw^v>5v@0@`2 z&TwRZGLZeb&dE9)W*3+z!2AMcc>*Dq7trnFEdEEq>Gs$z+NtpG_O>fHn}Bb?;HV!) z{l+zK$v;E8@f&N9L}o(1rfrmKEiR?1?|FC>o$*1k_Zi202CQH?87nB8c^z;Dh`<#uhMDdPX>*~`yYUB{eHA5!>PxHL;mrAJq~Pu=zF-;&eP zU;Ey^eH+qZ@6uP=8dbINXtyk9Z2r}Yxwl-iH|pQMtGpLV{rhRv2$S6(uEh-&70n0H$x{k%)em7(9ByI0;1rB0gw<+wq)3;##(fASIj7vXOW|EfOtPlU^ExD4Kb z%R{(af=kXLD4(Ic`3g%Hlv_|%7&@QNw;KDCv~;n&smBq?dDjVA8s} z+IJtiy9e^tO{jJI;8;4?e06_E>eAY;M^xP}G=CZ~>ddeQuUj|k&$Dt} z-h6PJJ^0I2zo)6A;$2o)meU-~m)3F~n1A0|bR@K7R*8Gbyb`~@0t?!rVc~X*hJ-sT z3JvVV&*e$iku1+FE}NQ+JQ)zR{i0P*mcbJmieSqKJ62jdkgl>4m4l z?svyG%&fKD@AAlOXzf2Mw{?8F98^f1c8241oinDPxZ*OaBYIkAL+DD5&B#J=*sUDD z>k&0!VTW2&IbK1-9LzO2?99T0Eu9I|TDw+yckH^HQ5fn`cVX4cKF_|{eSv*5`h5H5 z_J#HpGTr-%nSOnI9 z5`G9@!1v(K;rsJv^1b<`{9yhxz9)Y+Kaf8oh;}S|i}^#xho%pmADUmQby@kmqwey; zjtQ4PcHFpZ*%5rXuH)$C2_17U-{>&=+u`Y=zb8Gl`aAq-%CuGGTg%RupDkNczOL** z`SG%?tr^NkIo>^mJ-$7~J)uX2v1}$eS(|-!vNrwfVr_2ixX#4dd7YWH(>haYmv!dr z98*o!Ij5Sfb4oQ`=aOok>Uhf})%liLs?#mgRF_-kw;V%FZaIgV-Eum->Sf*5m5kc0 zs~C0JEAMw4zMRxieEC|(o6CV6E|(8??6_Rqk$d?~$D_+G9Z{EebezAO+p+BOqmFNv zqdKUU&v&d*x6C?9y|U{x%VODsrD1)O-~68dysN}jp1b<<%8yI0aN+yU_h*g%OS1V^ zh4rMEyQ6ZxB!4b=KJtLb+p76x6W}s3d1Rf!~46Y!0^8UoToK%G92gC+W9!{aT(un2%i##E5~=7 zsmm$6KTJ@Ubyqrk(ge>3Im7?o1N|lK&VTYe$fsgUiWP z-W|+o2RYdZf4jXH-*W4J$dNT-`Virt(LFQho9{nZJ?)&WjeT0lzSi@!eR0Va+`Vx; zuEn{&SW|!7SEcn1^&$54Z?}Z_Z+@5eB=Ym%;$wgRZE^GQx8*PR%SKNseZh;&=F?*b&$vO70=B7>ldlBWOIX$1tBBNiqjDOt{V@HqFs*@grLUhFKMG_e-&EB-Vj=< z{?$8+7`ovIXevfP(?g?skT&LVLbJiyJCBs+iw<+zC{3l1JV+Hp>_>I3xf<)Kk1PuM zUE-r476k-UKjeD%pKG>wjF^I<>Go|%<9~sm;iPE76sfazuHLK2e;4r`&ce^@ocebO z9oj;7k&bdF+@2C`{U_+Ta`o&Y-#p?!yx`k$Z5AVI{%qPPBv&{rjAek;MIDHQeJI{UA4)tmMH=oye<+qqFNud z%QD&aFXS3f8v>SA&qfiIsUL_#x%0v%ejuFW=7;5eAdQyIQ!~5V27@l50;o~Hd;t9I zBy}anB*;dh9>XyXvKy-wa4dpsuc$LP#2}iddOpYOh|M1LaqRw0s3l*LmxC(S`iBh- z{Is@%{yyUSNbU5jGAh>4TT%v19>@ahxrFlQKfo%Er4kHX2%ce~`OZWVQ% zd`nYhTYu9Sh@kC3(}p6DSbS=#=`}foz_jfHMwtvZv2VL?)9L|>X#a~wsj_3*+4|wa z_zLPR#Nz%cJR3Km3y~CGaq_dGU*U-G2~u1z$FU8^(SPC$npbPQu)V1NkfZtQ8hz8Q z1`xXb)+BBqI@cU*s&BAzmTzm4HCS%18G$n*Mq9`WaYQ@uc5)DLUX3@>JV5Ush^-SB zVeS#*;HMnYJLz!kR2=#GhKoKUlrVE?{Qb5 z`rmP@So?uGmHk~!t^c9DlCYw`e!!)YxyPuIogz*x3=!QDK=3yde?#&27>5CJQHJUv zhq0@0$=Y9y&Ryjjje>C(+kC)hwQ;ZgSmKAZ9@u_aZ?wEHK~%-@Qk~^^#r|}()1G&< zD~Po)?O$$T8kY8qD&Z2savH5yOREc-l|~jc2H5e~VPoh-Pu{dJYFY@8zo^h=b^$+izgZkp2thx{n}QD)_wA7LiStnBwA&y)=* zID@36OYc`G32h#w1SG!VXf2{Bmpc*BhT6{Mk-ifxX~L|PDif=c1|OF^s9GDx<>Y)g$*!Q|^BTKE;jKtZoKpU3FW zO^)q9KVWmDw%p{0jhiG(;S#y+{s>USva}7orfa41a0+40w7H;;>7w@8F9+c>vJ@9s z9dWp#+U~ft;HV?vfyUVQjmEFVqr;=yuR}CJ5Yx@PVp3vju71#vT(Bd@;>^_sVpMxZ z%g~t)-QHUc{5-%>sdh;peW>R4R9|A3-hJaxZvJUp&x2>r>y%`wXQ}!ZX>M7h&Vec8 z632Pgt6CGh%A)N|8>L+0ig9f5#`*+prk7o$tIYT&mn}XCbvG)e&-1by2!)rNduZEy z6_@D5;~;z#2M2Di<`rZdNm)VSG?PPXex6plA4XaR3I`!%Yd$iIXN~z(!R`Is;=dHL zwL&r5xV)|xfiu?^nZK7=xnJrvF>BxbWxEr71%+Na8foB=+DmZ}kM#pCqA?1ZU(iSi zTTr<8ae1pfpS?(|P|V*_>l9+2rJA7#Q1UZL*~RuRYZd!zfz{Rh2f?t>iIO>0k`&6SOK4C&#UObMSC&w%?hRc`8&5v1&c?%su}g_rEzP7>oQHgp%Hpx zN$cnvOUm6LVGut^B*Y6c3=#y1#w;m&$DSI9GBoznPDgIWGzaeLr!PYa9 z@tAMLU3Ko@R+wJi@#jzPOgJN}Z90vrM$+p|N451gZ>LNr|HBJMXgk%FXLWo0GqAsh z+~z%_xS{ae*m_2#*G-a}yi!Z6cSD6N#7lnBE=aej^awG^uQ89yF1H;>q!aVymz#F@ z5zooxan|Lgz5X>Q39-T_! znT927GL~Q;le>vBmWTR*o5)u*3ky~%S+(>CoQlMUP3bZ20Lfxbxw)fnDfy{pZb7xu zHJQFxG+vhyHo1pfg*0}59jkwjl96oxSv*@;6*e{6Xr`2^PS)Erc(W)cHJ%7O@oVt> zUA$XUSa3|pM43v-5}Z_q22_(3b~%0l5}v{=C+JYMx57Cm;E-enxD)vIkhZ;1o2{o0 z1jl%6bNW?pN(g*PBmR({wLMaE)^^Zoo@Y*Qo>4J3xMfnC#RHUPx*#N%*eq1VBe2fv zH5hJL-R#$rqY46cPr-0&+wI{DhFjBa@9hY~8;&qMB%4GaLCUGy_p$Le-h#5&HnLTX zgLb{pg^4o_TfJ3ez+>`Nq`4`DZjGo0_Czr}(*IA#;RBTljjc)Tq^e-0yCB z?2A;MCbsOLqj3mLqJAzgQI4@7XV*;A25^}C;CNASdqUY!M{o(P)Q6T`2zC@-?^^+M}_tu7z@>l6)Z>h*GTXq zg{7gW1J^Sw2SpvYw6M%!2s#Z969+NjBq1h0=-bRFY!hD z5Ng%h8CKWpW>^i{U1K&dAa2)~IW`bS2pz(Nz?S0-ae%NM(Q<4b(GctDi&)Q8?c(x< zlYF)-DT5xz$cMS*{RjLAldi5I^4~Hx1grMxMz#1nj&BKvgg{~-9uN-1A2I^s4H*sz zhKz!ELWV*DAyE)tNW|lK@V3?!}p)oEiP1(3A9XWBAI0;C9%0}(>Fkayj`segkU zguH@m8^{!&)E^}NY(HQ&=(0PYKOau~zGttlo{4_@%zcj|aR?r(Cmks#@K`>hYa*q`pTzzT*u>H)*uE7>?;P#>O}TioE0}6Udr%S|Z1u@3&tp zZ?8y8xNfvclbpuAPGrdc(Aw!~egQA`9!MXw2%#;wI~K93+0rH2M2;KZ+d*_#Gp4LA z$M~4NJPvsUbVgDf_+K{Buf_Sd5;r+qsve??NSibW(%C@VzSd=u9C9gr1#aItWhZk; zrMAVmeW}U`eYkz6YOU(4(l1WzBP^DExbp8`y3n$9371lz1b&iy<9>DeR#k2j?SAL@ zU)D8Ov>x?U^c6WweCz)3=*u2mq@VAd)V_7dXMf86ZkM0eNVIRCotEB6*xWujZSo-L z5Xe=s^lr^QH^r~nW5ZM8*`CcFL&UzkfXry`o1|3vz4OBOXZYq#)Q%{RY4*=3f4Zcc zAdKUiblLJ0{fT&S`)BP` zj!7G1EV0e)5A!L!%heC+Tbd?#1r@oNn*Ry)6V$O@LA{Qq<|Corgqq|PG~jOMPzfle zW+mBe+~w+2_B8c@`WEfUgq;2*FtcHHGBrOJf4TZNOb^j37lW`&&6jd7SMP%7j)a`s zfp!ib)~+NkXHScJ0yPw!FzZ+OLTywl%fiM*^;zKQh`6da!B9uURe1;k9T8VGO%UbC zaem(7o&9AEC?1+I0&j^>UZXyI0{w^9V_+6C6nW5SZdEGFiU_!D}OZa|^ z9L7Y-5e7qSsj%txGm}hEm~;n)P;%S7QQg7pjI1K$QAh|lrbk}~6OBBoEMvQ0AfLwRU|o!Ad?-D;3%^?H3~b+M3Dus5b2~8Vq(u`n7GO zw=>eOO(Q+GSD(}k$0@$+VBlk;pR$?SM&VFb>Axcv;lUf;={2SLy3Tbyug&~K&F9!~ zeN1P_6fsjVyc3UZz9P62kM3y2s7^e(|K*Nbk0N(pc(c+_sn)E^mG8e)beNl3c6xxq_gpG2 z=FLk3QN4zjp9Z3OZ_U}JO}*BM@^`UL98ilqk-R}t^#w=cQtVdL;mJMTf*c{Argh*j zdjjG`kMQKi=geDdSL_s6D3fZ*ixI5E;;?!GeMH~>D+emeW}{l7qxP?FAhH}rBbqw1 zzqx_(yX=*g!y!e7%&dMdaATjt`cKZ1Lyz``YE@mPOvj$VYjc+wpYjT%PIelugF} z@ceJbZKAmHoNkZbMBb@c*d$l7D&0$s+-h9Z<8(g#t%wF;mx8n^S3OG?-v6u8wG#ZY z`884aX3Q8!?6JJ)@L5!<%ey_bhq_ey4biwp1M$%&OJ!?f=jp?GJz0e1nmtXs{iql1 z*NJ~1qHCw0HAQNM+Um9z^vx>wbSDdkER{{Vy@maKRam;K1tV2ttDrdg?=s%gKC$4G z(7D$3mZ%l^C@IkhH`rcKEo3FrL-Ea+7lw%ADx1?PIs&lM?@=ad0t>b`llIHA)fVXt zR1Q@IrMq1Rt9q)!qruY|zj_P9vWFpue}BO)q2={;JW7xhQu`MnR{Iq>kkb8Y@%P5#_7r6Anya?v=Fpq-yal<3+ak%8e zW%P^iNQ}UQixphfz{OKAA`%I`g}UrA{vahq`b7N%(eJ4LeV{#{Y|5bNP3e8@ksQ(w zJee*DTnAE*P+zvMX3iFV3%2US=U}p6XeT}gg9L${_#7+|M0Fy*lqvA-M0_b<5YdVF z(r7^_h?a>jWy{@ncU!-glbS@4CN~*tV&lpk`Cx`I*QA%#N20Ry)25b4LJi8iXt3qQ zZ6xwEv&#-fl0r}=>AB9WY}EjR@Bf38EnA?SQ}5w>UfOAL%zj%er{0Oqm<&cR`%Uye zK)UX_$zepSQ$1}HSoasQBb0g1kV?{qG$@vG{4-L7d{FCJi zo{gnyqryX&IEMWc71##yEa6y{fwrywDx7|&kYzv6Pc zNT+C{;+E+xd)=3c*D4}I>6PL=NRC;z)=Lwj-!5xwq0kJpG2c*+> z1Cx>|-!<0SC=S`eW_0yClnhNn$OZBGu%yiUB*UVbFuhAdNENt- z62m4A5@yP>3eKSXrPn0M2!Z9m?N?5z}^RYAMAaw_rcx=dtcq$FvjsT%$N^ZfmvfA1rT7`GDrfX2$BO4Lb#B3SlMro zgOFE{ZIC}8qp{i*Sm{r!@}?%d;h4$u1un);ylL2#B5c!W+~rFA#N~m8z`qj@`w{I( z`%n^}VSlhk7qEUDA3t%6RZDbJ)~C`*UwGwdv73xu$~QDM`H@3x_NiAXER+eG$gA2H zHnk{OblV7#TvMmDE62CwQp(nvT-6Majr^*#WAG#Z|=D_{EWTlZ|*ZRrl2vy(3phALs`YcFH7s+j(p;NXX;BA-nloG8xt1qoagZB z*uTN-zZPE1g40=p(;|bD2b`h|PFvyh&fql4;FJxg&jzO|IE^-pM1|AfdN{cmoIK%F zl?kWkn0K(j05e`4Td)M)**0kK3=KOpW*8c_Xk-~0G&B~XG1@S#vtbOwMWh-gnr(nR z0nai_)QAy_YXBQYykwZ4VSqOnV1u_|*oTIN1Y(e5hHlxg^9{@XXm};^_a44r$vyYy zqck+?42>K#CKwu-XdIVSoc_G9{@ACB9(V3Pp2?p2&+>_YZ}86j`E5%=_Oe_l>~mp1 zLw_~rU6jF|4f{Jox8(-d?$w-m#fFA08o7oB4UJ{>r6(5Iyz(g?XK2`=G0V`fedY6p z%KmHm_q4q`j=0GxHhwGwT*baK;Xx|z+;3mEB}7af&43fb;FJNUsRnp6;7bk|B*HKV z?8Vk-e4@iK0*?Q9qyJ-0SKRJ~-lloU6}LluMh=AgjO=yW=upYn=wKloZ+>yzcymg} zUa~}Rr&`UKtzO?CDkw^h4GZ#dcVy9QYNe(o@g2s-dj!PlE)GH60CNeJLq&;F}(FnzDfwu!uR^&=*rao5loi^fnxBMFU@Xnfh2 z5HaMXwBknptomb4H|<|-|2vdDb!emSo#9u$puu-XW0j%dg@(q^V570m(D2EyulzOP zpLh1`)0bA*AN>A3x6NGpS@^g5ci~aBn|_KUOaH!l^izBC;io*~V%J#^t6%AIF-aN32*dslzl(!Emk02hZ%^OjLQ?%lRDQeUl%ut?KxbiPm^ z8pYwL9yd7R$?sT@pKQ@G+J_QpGv3PT#kVJyKKR@JZ6(WG8O5Bob?d*WT<1vVddgbf zUhz|;7IL}H15s?t#@YnZ0rnl$E9tN@AEhq58RWw)aAm_a!~y+eP!tBmFvvD2*9?6;&?ganveD<< zl)YvThQs9;T(XieaXBpBn0PZ*l9dQxHh>uhz%a;84Dtqp{AHLp9+n8hAd@jjFa{|# zxa@$-n8)*y?T?tl(cUmjEQX1J^AZ5hv9Qe(0T?cMGJqKdARQx&_?flmVD-o2=zkJ} zrQl*m`eT}v015%Dl>)#uz7YXf4&YNwruxs|407=S0RI3uV*r8x>;do*zyknN3?7>S zYz9z8J6L^s3?>_b*^_Wp!FB+!z6a3&7GOCyY!6ls&jpYS;4Xj(xTxVg0Mh}`0Ms!6 zOaf2@z!QL_0muYU0DxowYz|i6&&M^62Cy8ne8emZ&s$H#3uk!sQvfeEyl{qjMqycR z4KLhotnnLqk21Wrad5GQ%hDXUc*2DRm#h>hhL?hc8ME>*0U2)g=#zyBvhX%cvImf5 z0C1sMQ{hg7`!9q% zQn&lSdJa}605c7MHvq#6w;QXwA-iHTFv4nVK`C>!Dzw~@_^&R^_{G&}CPC6GHaU)K zJX-u$#ml;Xw(2G6c$2Ir@x2AAHng9Yde_rxUU^7aRNoGqUzIK+(aHD9z0B_Xn^Ez#Ra; z8vuAbABjO88U~5OAa$^m8U{HDw_FU;W0)r#E@urcW8tzBE^iGkXW_EU;9?jh1}>lB zvc#}_30zokdEWw;ad3&oDEk_rTs0^mP}-oF!42FwSqHrUoB$92;E)0E0dNk0FWm3h zV4%HF4jB3dV=gDmbqj7wQt;|bFerwJ4a=8ffILi`kp$%$lsN_q4{ok-J8l@-@S^O( zXkTG<#%nO!4?sPD4glK?fZ>XV8{7?jam9&4q0B?y*;x4VU?{;@NgGzOZy)+CHYkRd zU=%Fx&}X(cEQU8B93%c|=;sUI0st!jBLTcJT(IF44gnBjxV~SYtiwQ+hWD6;fp){~ zOERwFC0s5VTnuv^Gbn}^)-Zf2lyjKxl?O&U0AL;l_yFsjTrAoRgDl5?ln*qxABFXY zp)Zsnu^9C;6bhzr!b)Zs-X#wJs|^5N`WZ?9wgBP{0Ip`nDF7S*9R>hbGsE!qnF8YMZV!}$u~+%rpRox6l`>TLAY#Tjr7r+$!9 zZ?!0*rlRHi_`Uz=XLcQS96R{~I2vQL;a!ZLkgwt>Y+0mqx%GHoBrV341xr6lnQdYG z8Cw=r9LH$))kykF>tF8(QsOIWPo$z|)*3%=_e0?UOBSOrb_vHJ)8=U`kHgBeqs7kP z*k;;pjLqU8e`~bpwZKd`X3%7g^q_V;$1>V`KWY8ala7uX+Unef!oV*C!NQ~?q+rwyIMZ!3rKV2n+G^T{bJx%9 z4*eIq&8EoaHl6Oa`cvxKbhO*_PubL_3*D&nH>zn*xA{ofrPx`m))ltj)Ks0(KpNB7 zO*R%;?~ax1wW3r{8g^kF2cn5~l^)=v@C=T7n2^-JIg)&FZLjfP+zwqyIGfh%F+^er zQ;MHXzQ7H?ojaYnoNIME`HGBYVx zxc1=aBYT3XFC&w>r=3=Cs+rIs^;PHS>5jg;C{Hy*u?y>vOur=_ukdLI+C?2LWndSU zJ&@jJydSC0+l5ZajMHihy;+0*Ytdx=u_=c9bWZgg2;LRnzbv}0U`BMEcAd~!eF(A}gWrb?hn$8i z)LG=X0qK_f;6sw)cA9odI*Cq8t=8%M z)5b(wCf3Y~_16da1@9uw;7&-J6m5Ns7Akt9kt4OzPMLm>7y;tq8;WoxuZ>u0zfd(- zmsNJY+5D}|N7YV6j52AM(PH^(Evw6x4fR-EaDPh?fn_@n z$@EESDQzSc?OpX%&9bI8pjm$cR)?4r0j5v?2n(U@C1I}&i zbK;STC}GwIFa)KhrB;$&%k!GVy_U{k=&J8Eca~Q*$p##T*?(6T>!SM4IT}5-c_Nt! zc8ZA>#2cCd@K6w^fSF=0$Kn+IiaH7(IN8X3m!)f$bDU4v6~-2G98TFjjm_n-PSI$w z%Q&_bHXCEdahxjbMvHC=%zD{X#%}n)8OyP(^x7|3hYuWCgJ}#taApa@2e3(c(Pn{a zt8Uiqtn1`_S-$F_fYs~sLh@EX=*3~tE`jYpd=TYAyWQ>FAo6n5m&gvHes4GHKRSSz zg-hah?e7XiIi?pGD?mzZ584D{iDph1_XuIEW=dG{5z-aS(y%clMxL7Zu*4GL9?i_K z_!2^)W>Q#63F)b3QCM7`5lxd4HogyGz@`0?Zqj}fDH*3{Gz5GS&lZes2(c15>D(Jo zred-#tRZ-wEStou}JXQtdK0xc{Lyxk*ph*<9AcU(*@-O{Qw>2C9t|% z2Z7{ne*G_AZn5>Yg8@UtPq;Jt&vz0h)f~}U*IOR3`$N4OthK@OtA~TNHgLXVA=^49 z^nJCZF1jWC8EFR!?M|kHCFlzdHBHXQ%vFoZJ;3u$j6x!I5}k6MXWKH44^FQn1QYpn z`-YIeX=Z3eN+uI$o?~^1WjTD*tv{?zFSm^JIYz$9PIZ^Wno2}H& zkhjJo+NWZ()#aJpXHgI6U&r-O-`9LoFVPX!r$(E+m#>K>=))rOqlsoU9;eL7ByN@d-qhSoM5Ld3hQb+{TcS_#y=9Wo>M&7>ZqJco$t zKW!IjH=9JI`ChhabDl5 znnsO>S`Rf7DrV?_+6t8q6|44vDubG_(zOA7t8Cmv{`fH5GhmWz?Me8pmWp|bh@7CWB5y@# zPQX|33|(#u{{uA;F>l!%qd}jG)Jt+PBKM7d;N(02vAh1OtM3aOb39i|P7924eB-M> z3h3SL@sc`$MYmT+^$h{Do82KfDj;_I_*DNRut*(-X0|qz zaU2(>-DvR@fmI~CiZV{aF9TopTKN*~$_DEn4(6)ytu~Eza@Fis z$41*E)#O(Cpyw9x3eEif-8qDtvizidqyzb%M76rb>&G84M!>GSJO>QTqvOI`ou@O3 zW35^pp3&cc;)C_f!6lZ}YWoaP|4VQN>U%~s2#y{1Gva?Wi_+5ij2P0L+A*!>e6K~4 zF(AJR`c%zE08eW-HN^H?Tza_?KftQ`TDwQtuaOqVY{scJ>-?07Oj5S|sn)ri$PfHM z(X@|G<2Mq$5xA4lNZ5zKohgH)-x0VoS?{JyX+-4|i+z8L=f#)p=>+f1HuVj*xf1+# zXKPBd;q|UPA@fC1+?28do#eN6zpDRYTPw#sL-gOjs^x4qW&Sfn{}Huu<>3CO8(YiG zRi3&r{mn{~O|(_2LPeO6PbWM_%v-h6IFrtc^Dg&q4hlhz&GV*1N@6B08#y)s{VSEu z_iP>_$L6%wKiwiaxJELIYubOr&vX}UU+jc*=jhPiMGWrbekAX=c^$)frlod9xo30m zE~Dd8XPjr+wK@NWTlKwoX?-;3j+mP57s4Y%rh+^SzxZ|WuTdx$rUc(=Ddk`A_FYuk2cdM)D&3-%gdTzeLcs0H894!O zDc3;M_p6d|#OAX&U-MlXfk2C?(I%5>)~MWc(^?Xvi9hJ;s_!e9Ii4(1vF2$30xcfM z%?c#VCgC-S1sj_!!sP)4@@BI$peowYY<1@9bYhfXh6J%Z!wW9swppyL`BU2|a-8@xy+CYK6i-(l;+~PLWh9EIUL0tR^a4BlAz8m^-yh+-nkodJ8<1 z6!JQUEE`f9x6&lU!A+dhezmE2z?dHpL*6R8r9yQX1S1gn{uhn2k)|?7Z?BB6v^-}2 zS1hN?mChIyYuZKIM1O*!L=3;+rIH~EYrnv+;HDj2c3}V%U0)?Gn#Ecl4hjogq@D#i z$|R0Sj}JxiNMlpB#?kC8{fcU;AX1rIYxG%Kugy!}7xWwAs=x7uBg5wZV(U$ynmV_z z;mm;ykdcHrgelCRsHg}DBoF~1AR-__j1wveR;hY5D79&e`t9EPul29>t*>i6Jvryy=aAlePR_gc`|RiO3St$gHi@aO zP9-Cie*ol*kBi0+QIvV9UXAy4&DJG+fGKdE9u2P3F>H*Pe*hm;Yaae*~}iy z0g$w%4n-@A?%@mcYa9y-gHuEORP!a7F7QiQ2u2mF`*ENPqv3$i;8AIkET)Lk6A(pM zm~Bu`cfKdQw7sDA_#GT48<(~escd*G{OImc6NXk}sZZY%{Om8N$y>kouVx$^*H^q5 zjIjD0E0PF3A-6R16amVqn?W2N=i1c{D2u|Q>*-V=FD^QS$zFDH-q zg`LuubqBZD9^03HhwvYJ0itcgPB0tN?wB)YRqK5II(hR*>D5HF&IjY@)P=sI_|~ieKY0?eU3uuL(EpL5Uf! z@uBuAdFuc%%lJ{gIR$mgpq00$fU)&Wxh4gStq;q$r+~5bQwOmQlLxcfVEg36Y3<-| zy&!RBJ9@OO42THWdHN=6%}}s=ayxdpc;hQ&kvJ=H`W(y+uw*#Ui+OH5Em!vvd_YsE zr5B#jcDcS6zsvAQzNZ(v%h)5|km5ZO{SM~9jjpQ#REgoeHQ2-}4UY$HbFy_|9Uauo z)fY_QYG_dX;Z$^rDllUWCixCCtHx)yI?lPQb6N#{$?%hzYvTrtw%vWFRxwK9Iv-gOdWS&uw!8}?aNIOo+~Gvgoe zmVjycL(3HB%G&d0kfnM9vQ$?gU0qUp)l7U8@&<&c{;|w-Hr8HJq8^0?;r@i*%yrIL zwKtTwR9+C?+pr9jrMSw{RIecVZ_pHn5ky97zJg{^a|h+NF&fcykfIF>!Pgn=$s&d9 zLToX+K(i2%=$Wb11GMi|e$F!25v5mZ_(IKb`+JA)5Jp+j<8gqQ06Nn?%E}%}CGCRM z=wyR)26mx-y7e1Vd`H|^U=3x-vTHyW@mu7~0OqCs3*`C$!4LdS4h^9F^!t&n0sLOw zFUSet<1^PYtlAYdH6o7xLo9&oc7tj-#4=r&| zkew-><;JN9SV}%Hj7IjSkRKSEgqwO#`nQQ%rXf@3um=Om@K?ko@P0i7@7HOL!@be2 zx;boj*f~;zUl~5lcp7ssy9C~^r{MiM4Os+3(J&MUXGu!bZ{SciT*S8we_ekXbB%vW z__h}W#Lkh1x17d&gp)2oL=&78e~v`aoyI(YYpGj6Mr;n73x9bd{N+QiTMD~DW%w-E zZGqil*oD7v3wFC;w*q#9%kUAftB2j9IqWt#w-GKk75>6DIJ6KB`IO<0!PR|X_gDvU zp8jw7#cEU|gK7=v_ZW%w(_V%aTuCziJrMh^D+6PJ*uTN#TN?HlXOt}O6!*Y`>m%Qz z^p6E%KWWIzJ*@}a2;Qon*#D6qt;T<%ePNC6CyYcrfOl(PDRXT?sXu@N2ws~oKm%|A zEIaz2n4|S18}}Ow}JXWzeIjx(8~+D=a4~9Fa1)>Ea;x2U$YkW z69bs*tabg~?X)MF88ES6AaV>C~T#s6#@)jTtnINnBTo;pHWrhft&S`&LiOEf*eZa+|p zf2U6uHFo*2Xp1a=DdGfz`)aanP3TSz6{1+27g~miCy0ti9kp#hx?%20 z-yke2_8>5KIft#-p%EwzmqKZn807O5O2ZgsF*qFA!dz`_lps#J>Yakr!E3~^ z?O@E1huvwfmr3pb)h|yrYHtz#WvhZ7v z5Ld%`nldEAqlX)Ut2EFs7x?Qf-_SFVm2fyb!{eTwhB=$%p}qo#D%aCGfLH}MvyQ&YG5@$kR`D^TATVr2I0O~(BQD0>MCeSvkuP^|;-&WXH761l=buM)ZI&E_) zF<5e1yDjv-HIn|y@q=!KtIRgRovH|Ipm%v)hvAv_@vfb{wM?VF*W-#l54qY)S)+?Z zj`xzT(|;Bwv;+gx-YKzLzmYFDRakn)GZ7bwk%|RovOHj*!qQ(I~ z;z*bk+vDV-%?mpdv&NLN4*SJ!Eu`+Ubr5oA7i;GxowUB={wSAhUg$by_8y6N134_w zk~73}XQtvx^qZ^)L6N#Vm2_XXO#X$Ea+EQUJ(zsm1jo{$=#;3JnyIFsl(?7L(I#|CjGv}S9O^m?6JzES%lQ7`W2~@7 z4r&w#u|~keICif(7AD5il8HatX7H|7qnCjqKt4>28E>KJG_yGyCdP(8t*cG!UYHn< zn5Y8Y1I>HMM47Cc$kBmIOFz9LY=SxiCdRQ>z=IPDTzXmsKMfeVUpb0~Jk5Cxq_UYGbw~sx)4Wx66;a;M)g&DZ7mp!dsI9yAgb z*e3K9pC+EwQ$duC-V-ubJr8ulr`DjqwU@Yd4G_w8|8Xqt!gjMJLOqzHoc@~dRzJzH zu8Y$RTKD%A!PTK3v=^PI>PRom2PbWi=cV21^cW1=s`<{z9prD-dfPl*@LSpdzopyk zQP9LjO=Hiu%y-5@Js5kP_F0o)Z$eI`5U(?QmqcuqWc5v%gZV`=uP<{BdXl8XwWXJ^ zM*kYQ)QkRG*N&X+#eX_WylT*B3>ZQ5FLA&8Le*e2RD~wzc)eg{elIXsIBZQ9TjSC&3N-rehYOIIO3-Ala%uD(6Jx$%O1k~sHQS$2ovJX6bhXmd}dXl`W!(*2&M}DG%vJ1>+ zmKEYp)23N->e5TYK}R0MGqZ|`izL*}d~p5-uD`YeKNjX{5krXsu|en=w!@C9A?`qQ z5b+@_N?q-suGCEc*9XRH#tQ2aNMS=Eg@v`LgYcw6u7!23u9e-xZW6DnE$u;V)p4wa zLyVLNKh;xHNJ@yGdWR_~1?)I~fGjn1ull@cd`e`w>b)u44DEbI(-?DDC1JP3zgE(X zpDvkLJEfcW6QrPEB{fbGSqn~_mn59p?0WpFr;!Er&za7Gpk`q`*3-U-*P;vz^I572 zg9o~}2ftl^NwjRpOA2zRQTDaGoyy=NKEbMFXJ&Ir1MaSVn`q6DXD=@ev}@;sCwBnY zv}^A;$<2}m&vS;e&{{L5H~u<$JZNDacY8f!JkdUK5}UI}Jl+`&!hCx)m@lC5wzCK_ zh$g|Ceb&%K0e_9g1f8IH!x%gC$z%+p!=WLx)lF{oX@X1_l%)SwFEfFXG(kmDfRgkl zXgTA_$|!_C^&yCXOF9Wnu8m0nsk|)JLPb~yn4bA5l9jT}=>H17KkE?hk>tBNd+|Z^ z%htnuZ)M&y{5EKw_G}5h=Ytmp7Sd9qNa`z4q54r{b1gsld+5W3y{TO)NbPu^@o<^z7RfcLe_fWaUE?ifR35T&p;N5J$e{)ct5Wf zUeeK&aeQ3mHV^eU@zaG3RLGv8HTjZcv}*QBNk^$eJbEri*ri@mb@xa?OFlTvzrz#;~DW^SCg#FLI&hr_JS>8>U^3w;kbw z{ugi`O}mh$dkl)MT%&H;^0J|14who5QCVB4iD5bDjalB7&OtOc=n^%{wpiOz_fTH^ zXe>AI67`mDx@BNsp~Vbv1J+AXZCp>(4n7)6QK&pUPIaOMl^FNfzb)u3^^WdO!n|8+ zvFDxF)ISeBwzMmkg3b51!~_@)eoKwjA*u~@R;NIN@yV81wtJ9D{Y2<*_yXY8j{$D| z82MblG{6eL6u@G@Ou#xoCSW#TDquMvms00iN~!A{voU2L;uaK$0|r8FY4=09I6Ol0 z3zUmPBed5PqyZ={d{p?Q@Q!J<3PMWQJk3poPYQpY_Au0lBc6kxOHfM4bL|cVIwjmk z^Mit(66&KpukcKX+@*Q1@HO*xX^jfJ89Jc9QLxSY674Ak)f{nO^GXqD4!N)0r@)%S z$7&ubm}YQDzN*OmOMXo1t%OkFBouYzlgmaR<+s0u|^Vc>7YY=Zxoh zn^K6&4DWfn&8THYBX64-_s;MQ@1Pm;&UgwIatS2EE2Pl3Iy2s2c!;!_u?FK+ zWWD(~fjK1%byS=oD-XlW6)R*VVd&q)MY75;EL*%xR(J%pQ=B6!JA(O)p8v4zyZ@)s z)7ZI+|0+FoPn-L2%;SqW>jkS|OJ2F+sV(;{7p(*J*-&V|S zc=7(}$GXiIz6!c?`R(doeyZ5^G_HMAPOG5bUDZ=mXkyWqs!jYfLBwN%U4oHigyF&^ zd|6Hy;i!Zm%L>EKwNFIarG(qYRU&*#Krt&y7~aAt_BkPBxA+ya7YN6+_!M(~htgJ1 zN7P+yIUm~*H%c>s&+Ld9rCq}(cO;zC5TF%Ya88@WCsxNU(?sw&)zQne^Z4G?@$WP~ z{NU=SciIvYsydFO8Ec|d$B?uuO&--?8tY}^4hjs~d=qXkHb)b0Vhu*;XqT8MgYmaD zL8gGgsN32~6J{_jT9amC48}xj8%?Cagp(l8;Kvo5)QX_jEOwzL#N@+`UZ|aA^5Vw7 z)Xo~vL6Igu zF-YE}ZO`4R;ZWD^rv3uW3`Q`LGNf@tAnf_`7^}8~QqJv~{<_ z$DQ-9xGt1>cN4|n(vp;KaaX+oh`R}xFiwr_H@ zm7=#Aw^=;9811Z6mZ&bjcArHS-!7ka_AATyuAp{~zXd;(q|0=84^fo@FKxP=?vgf;gN%nA`V_(e!&65>9VV3- zX}$IPV1v~+c;b3Sdx2*#;fPETpv0ZpAg7hY zR_52j)kE8AKwvHq`A#!ckqj}C;8Nlh`XAX{J@To$Jj9vSfibTx*&m4)EvwT z$vj!X9P}TOl0M-aELF0yPx=hCMUvkqeukMMS<;vH4E?R7vM=KqHcrymm%~DRArV0{ zDQ2-`R$o2~{U1qTpNNGGl+^W2Zbj{vOzxAkVrEJf^i63+{~{^t%WTC?lC18_Ek<3F zNcysiG3z9A`wEKDA0^Wgg~eE`WJRL%9!e{jk|@51$&@Tk%)5uaDVdp=aSt0RS(liT zj5;jIOw3Bg%!XFZ{ABb~$<#zqGL{MY43oQ2J0!V@l5WgY$)dz5-RQT*i}EYg#Cf_8 z@?(RjdHSvLi-Wl5y6<3N6!TnvMt*&e;G=sZKQxH;(I1d^4dQp{9y_r8#8}WR8rAO| z%lT;Cq(GI15H#Ctyv`yD;gpTmSx&((vL$wwP>8Q=9-Wn&asI$Y>*7+!8j|EYxa6_W zNz6Oi0K4dGp%Oikgv>x(MNdESBXN{n|j0Y|Bq0#P=kF#U33C(J_FDfJneN zKms5guD}Ci!&PPhzK1Iv20R7q0Q>-`f~(F4yZ~?jpW*72@U=d9Z6WuN;Oj8q>%awF zRd9h7)fIC?f4hAPZ!+BD?UiCp#%|t5DN$kg)8fycqzfOV8sLZOLPvoJ{yf_BIp`rV zq-(tdC)ltpZo!7p#)~pq$YG4jB1H=^jJ{e_)Z*O}`c6B?gi=mt;l2jTFp&3;lF*xT zSojm5{sbM-3nZS+&=LJsU&Om6ppMc3CqzIVrC-K7FYrF6Bk@jkc%0Mc@UC`Hmg%B- z$2*{wwvczJ!|R>Sk9W4i^PRq&ccX(!(oH~+4l+r<2I=hZHs}aQN41ARpM{vKDLJ|b zP5(9E~Q)- zf*j=n-EbCifeUm)I`Rb<=!S*JH7?K%laRw)pc~d9=egcjbe_nmHYgEIMy|F&i6{y= z-bPxZUw~Xv1`pGJ5LG2%hnb^AO-W=5?Yvc(M5I8Yr##7v6*JH zO1p5I8NsT4MHCkn?znF*N4v*N;(yzlGITFb%KlS#C$sq?6zJyC75&+3FK z+CJMQ`S}!58vQGaPaW8-L|Vqyfz8Ts%W-G&K*)Eh{g9o5Ip9I#dpXSFuG5~V6Tob9 zrx~}>X#UM?=LZeMJjVPZZs@G)f$n!t3%Z3Cz|vbnTDT3N+f_IDQ7Qb#=qH9bjt(U! zfcdqxt_9Ohi?V(#i?p5q{0`Uy_!)2+@E2eMVAY{~jS-Lw_y+Jcb3bl+#(rG-`U#$m zlogB$>I%jP>t&dG{JqJp+>RZNa==e;;!+5H0>M84#=!~WV0#I+mteaJwyR+KXU0y< zpP4%`-mq<2AB_*%7>)l#nMO(_0lWa70O~Z-2>T>U=>rG?&`+}5RUJi+xq!E_qn1;E z^g}u7Cb-b&4dGsuo371_AGP((V%oGke7`N3HnYcDq5GY8tPTB`Hd+*$1Wu3VMFB}5 zB=THiRs`uHpKCAKFtn;z+)|^2r!J*14B@;MH!930SH$R|gt5P|PK3-jwxU8ZDx@Mn z8Wit!#DhaD+Gxa{_|mSv_p4L5x3-SA*qqWFUlE{8fRNyLuQ?Dh3PSck$Q=mT1tF(O zK~ZL#aAgpZ*JyG0X+CRHb#QF%FueT5bH{k8(+yxX^)enWM} z={FeBi2udD6xrks9A^C_N~psQ`-~F>*O7mc9%7kPQ1fes=@Q)O9f7~ z#2MFFY9rA<4$OYrg@OPSD_`w74tAEXe8i*umKALFmau$Iorq{|?_)X#@*A{`7 z7jOi10?+I0qn5%#zX0Z3OI@K)JMA~iOyt}?MKTh z(*(0%p(@uDVUAr0BOZ5Y~fml}77M{_3Zk z)4Y>hl1V>{cZKVv(9wCvxSo$`hlR08em0-k!hj^7o~T=Dvm#X&8KJsl6Vs~lFiVYJ z^FWf5VK~8SX(KRqc7Xan`fNH zuC}ddo?e6c%k~xT#()P&Hw8fkC?w$d&g#Om=rcrxT~rqHp{Q;s3akoM+rbqrJPmu) z{sP%NfWK`>5RM-T7bIK8=ub3Pz%ngztNL$eN;NNEwb2bj}SwM5?xihu;zpjK6`*JF9 zU)aO@vMLCR!C-K|8S}sx4CZH{gMu@fd}m}|*$Cx|u1Yw)j#|&Wp?L#s0huFSYaq$r zZAPzwB!8P3|2HK02hG^OjaTI=Gm&8UN8YSN5sc{;+7OMxZqm$h(z)?LTDsE{R8KU8 z&VNRT&*_0v>|Lu;ob6K)tH9OL>~Bk_CHuT103A?2!lQ1cBhS3iWBZ|DQn zRa2Zf@`3sv(5k6+-f?FZFm$wVt3VnOSc0pY^vsrQ) zRc6oT?JM;>XPm~{R7zcD7{l9L3g+7@c-u0h8o-EcrQOJkz|$_esN9(U>|A z5GIPKbsqPCcvTMOg}^YM0HTZ21Mq*?l4Ml@M5@iRPu7mxVvFi4Z6{2z`SumJ6T8oDJVs1W%$Zystc!xY+htID>weem0a%q-B+qv0t7jO>n4zOvKubK_m z_T?x{%*{{eQ(pq?fByJ0%1J7XX+*uUZIfRE#cbLQXf>dA7Cyr5v&D6mJwhMUU6mWn z#EbAlvrmb-2tPE(oj|7lgqvs&b?s47(l`bGGX5Gu4#32g?3yMG>zvVpTWgEyoIXPS zp#N-X9P(?3Gu@M8bsY{wNAS`QI`+}Dj!qqD{FXXq(1`);I&0F9PYOuIMP_W(>GmCKTa~fHn){{33^+yi*c(Y;k5W$?oGAxqov^{^*#OsX{bWg&5w{q-o58s8h%$Z%n$74J;wS<)-+F^gW4m> zYL?8wlu70_Pnm=MSyIxRIR`slva&h%8S1hmzd8FEX0>EVbHOw8Uy@3h@EH~_X_QG> zs0|X444RW9l36lnPO?i1Wf?4x5wDZww4#nmCd;x~F>@sgWcjV=-z4K@qGBvtLX}Ov zhuJ9!lu7Pkr%AA~Dan{0B}^GSFJmNR8O%;DNc?5l-Pjcpq6`$={*Z9`V1bJ&@$Qoj zW41_w`^3W_0E+6%`?q(7)|WxS#@RjkayDbWuygyeHe(mtaeeuDnE%*WeWE;Upgj`V zF@Tw1`~oo!5Uv>hgY0v&>Oo`5yX)fE1gvT8>?PC9dSsPy&fdDWUuw~RZ`2b%ep#XY zG)rz(CGO(=?4Qq9!x%JApf-OkL!Z=0+n*L7gub7HKNF47&=|4i<^ZW5pC zR>+rd=O!j>9@Q3{(ImID z0v(eXg+7%5fbAmKE`seV*uH|TKWu|H6=BA11Z)7n=QPiwxSD@K1&{&WM{x~)Ii3S_ zpJmIJG?w-{&UZFjU(5>8&IBZ6Tu~+5%pg>4*g#pi=@EMEml=e$u>TKi|H({MpM}pv z_)N^KRcAu{Quw?Hj%8`snPy@(aD39uP)^ScDYninWHtmxqs{z<+Te_IF!{XVSSTPnA`62@0`_8oiiP_r zV+-mAuvstlMOogOqRc@gf;nWbcHg1Jsu}Py4m?RThn8!v9@?Z@3vc7#98V?hfi^uO z6YVX@cFpgIfp;+_Xww_a0Ue0Y3r0E4!hiL@|K-d3nLQqC;z+?TAtBSCzL8l1wAg5O z_6X(^`zK42bGoa1WFm6P&)wl_UTgZ-Tc-)U6#%g%n zpCiEbz5*5lo2v0^4EK@U)j;sQh-|9{g6{|9;2`R6<5sz95Jxb4CvP6a5R7N!xJttQ`=(VRja{qw5kF}wuN`f zDhNjL@U9-phQ)+k>lYK!JRVYFsQ@y-`yr))d(pR)e$m%0s2SZk3J?vL5Efj@-0ppv z`Ze+XhG*DUneWupkiRTn0d6%n$fruvI>(1W&q7%60Ass%4fS`-MR*rI%)Fv100f52 zw0zeb?>G;5-yAQW4lg7LU@l;ql+!u!2zh{c7ylYg`v9l?1E-t?VBs_?oFap;DN;^t z$`Nu3<1W6z|1LfNLbpQbR}jX8u&*Jk7(ymM2wbThhQEX17cfkQ;Z*=hzjp=Wqjhc) zsv&`(iBZtpA_^hh5aNLJv5|4p^1UL(E!m9v$tHE3;^G^bhplfF6m$G7jlUwm9Cb@O zLxC~JMQA1}80MG=?OFxNoN!D-RQS0wd%S}TzdH(&u&IpE*4atqRQh@A)Fk2vuz2Rf z?`r&WEk}WNA1w8#G)Npvfx*MbwWK?-uCt}2Pt0#Di@JK|9@+GFxUUZ6538M_w3(-I zNw#R()YF8ex-q<6rDO$6TDO*ZKW6z0D~6JEkz+NNY!S37;Mo}qgqSXT7;A=z-$f1c zc_?BGMM|)jpF!x?1E2|(*vr%Q!9^rnp#mQzqB8;&G%BDWTU$9M*&3HsyAs#My zy_Sx>$4nBf8zNNm6zYxqvDINt)h*|gKCulyMUvW=*Mr|{bR!#jDdmP(WM?m_+*pHb z>GgVG2tfAtdOk2#AlhE)1VbvaqnA9v*nk*&y{{NB$UXs(9x{+k0?HZ#AK5J+tuZQi zn^xRN8GITUF03kK3_}M|Q=uOPcpSn)9}43)i@Y$1LT6iKAnOV3$F+sNn`zT5(n9uT z#*dcj!obb+F_zLo=4R#vi?Yx^kG8@hF687f{;1DEv6h?@5i(yJOJ1GxKhCbXl0vJ8an}6*+SjIdQ7flekV-a zzmZG_n_EJO?u{d~AA6cL38=f|(>~X%e*MJLu&^_s-}^Ky>=58yk0offC};y=1nsv9 z54V_tp8*Ry(c^R>?oYY?on zvZq?plBlmaZ^1gZzE*e#MYQMDO7CEv=zex|wqdvGE<0urR#hysjHp5|ItebSKw*wj~S-FE1N z<`m#y##DUzremZ=&nfH*@)Y)nADkEm!D}IK4Im3J4^RSF3CIU50aOAS0V2RQxZq8| zLAYQx;445R;5gt0{DJTPMdnm|!k6n7efy2fywoul@V54eE*_o(|+zK_P zLKai%wOV?=Bj5nytq;(V}XtEzn%3ci8xAD z+={k~$IB{;QQ=~ytY{c}RNN#hr=aHAgt8I}`Zrsxta3A+ZNte5d%UCddysRbUMF?l zqG?^2V)73lD|!LhIDlHX@pt@%FNZY`X2pv3yOK3meqDh3L#$cZI;Dk{Ow$W*CWat| zZ8Ts&0U>cBazaYjt6wEr-V)GFixTFxFuFS1EIZO)cIO z+Fw>-A&NrsW^!Xm>JU>RH`<_@_3Iw&O-WKBbWVrf{J|qjzg=FhOtx|h{Wep-kK#t& z)(ri62+tI+PE1O*%C~ob-EWTE&_Ow7h?ei|AU)>%XsIs@yh9sf$tz^uVO+4(6#Czx zudq}Ua_%tyurw3~$AY|SMn5f`er=5*svNhWq?bpt1m*qL9CdnJkN6x9=gjq&osgQT%Qpg%w8l}4Xr@#$yQu&-Ih z_WRdx)>)35fOvm5_%-Es?=&*N`*-h^dXa;i#BK2XfN|$g@K^1Losl(^&gq*`|JbCR zRhz-!qu-(8V!bx*#CqxL9R5i`0bbvD1kjn*OA1CxbcA-cf|L?}Ov41Gl5dHB3Mh*F z0Bj}ZuAr2ddGG*_O-XpJA}iwE`FF4!dqeHySk!KNhU*$A&FkzAVi#^ikcOIWFLLcD zB{X`0BQ~RCjM=ATjC)M6%mw9`M$ReAiY~uL9_=VzPh;>SDu4{&?6YY5 zW?6#|-PCMSklmwM&)z$wsyA@MkS9SsbLhisFa)CSZt5J`jciQ%#!b|g zYrG}m`3tTj4!Own}PdFd(o_o2UK_vq@whSHn+XZ*pK!)Su~7rU4L z30-Et0q=0{Ih?a1FZ$6*lS;(+%i`qb8DipUF{OFB4fmJLpLautC+P+dM298m$BAYY za#-N?Q`isX=wC#2{aD~iizfGzTN&3x3;Kzz^mU@Le(zT1N73peR51+;WM+?IhE_B; z30F+d6irK_6f0l-MKhDU?lGT=)+M2nX-rXOl4mkw zhiG;ZKAApMG&PBu%zUeTu9#3AG7nk>BC5mZsqZVsR);=UT~x$ZM?P17P^1m=d{kQ% zA%kEO@|_}SkiQF-hOm88Vqs}$R9|K+agu!#vbz+D(c6T#PS*_Mz2gPX&~Lw2g-W}JR@}9 zTg1?G9=1~bwUe9(RMlgKvzFv8e`sG&{jNx83;Cel1Bw#t3HY`^02AO3-~fUr;7e%$ zE`S9H05B%t-Mo5IXEGobkXlc2%^GCMC4(%-VaO0~15N^70`>wP0ImT325ba;b!e(; z3t$T1TR=g^any`|k$D{T5Vj9tdvIeudZq4_{J0sN#vEsT;RJiBCE5gApzElae4X*9 zWl3G|Yr40ka)>w(8Kn6L6`u=AoR{t^2cpDy>5n`7hd3#*2P6kh_eJr&<%6u27s>U8 z-lwsZSqIh(tqO~>HMI!oXG1TCn(BE6#KnEn#n@|-`o2sX<`;2IpTq{e8~YHgj{HEc zL@r1{6lgtiS&G|hupwPijGy5MazF|z`z&Oa)N`S(7}+bOp425HCaL#rBLz9#>ycy3 zLyq)P48~Z<{DAD+4(TBD?mXgc>jk%r9^O@f$2mg=a1|({416FkknZXgybA(+k>M`y zvH%KF=XfUsM27JlPu)Rr8l!m!;1`?qqp+qhuqR}pYS84Ri+-v3ssH0x?~$07+UX{= zGRhAYo1)yg$=Cw%a+kClY^W&>#tML!a;1J4k6{{MS^_4D{n~ zOdPXdjh1ZkPKhC?eo*jIq6q4zio}%YjjB+EASEnIg9Rahge+ixQU>B~0S7+Cb-4|< z((qsIS`Blm)hCHs?24cp`CbtvWwha*a&A*}9cdIJ&M{c;$EOxr)OXorexd3BTp}&KI z790yaBu27Jq8h)HOcrGlpa3kYd~ zOZOPy5|MDcik3M-H0gh88QwN8>i6Dl2CieL&a)Ccm&kN-DznSVql%}tfCfd14y`B<0lNnLF>Jwu``#2I;hvkHwkbT^$NLB;5F9BkRKL!j@1=G z13I&*Ts0)} zx8yz5m|KQp^6qLvmaatJR!!Zg8!HEkHG*y>aQ#4039aFv0i+IXsAd zpie`#43f)%2D1TZFnTni=X&@V4k6dMgqMb2k&9gPLPHC3g^NF_t3$SPy`zEg(%$BA zTQ?bLZG*?^Pf=k~Aj@a8P?W@c#yKynOajT5_ad(@)Ep*REx^PFB-@yMz zA=2;?70VgwI#cTTn0`vA=<*6Qv3(nS?BA5Q#xg5O_! z(g^3rH<(ZKiJ|I*>pI+Z_b7(j8RIH`P1t4+avdM=_iU)+!6A8=%N|mj+kjo7yXja} z7Y2uva7Zt87pK!j(-a`+6)-GWL;TDtYNQ$`|%Sz4oWWEX!Bt_v@e{pwRT9^cLJOeX=NF$ZIgZNOguEJ{Vi1-pU_Sop4umksntLgf1U`Xm!LW zbp(HOb=Wx-fgjTmvrO}V&*_L-rhUox?udQ|6vkjd97!G8=sTU;I=sW_n2{cZ-wO4s zj`WhCfcHCc9Oe!R>F?P;T0PTG;PVX+cxTf~g4^Hi$Z~X7QGy-$-|xtG^bAr){XP2^>xNnv;X0YPl=nsY{oo49SK|HpeXhkZ=2*k3kR{?VwUTaN z;xvKFQ$2qAO)#K}YX4Gw@aAeCcX<00^`c+zc#Qa6*AQ=PIP0*!{WV5eJE;Nhy<|P? zed}VUn%OXR>E?8oBR}Ok{HmLE@n+7}<<^h2?c|{KPb*y6aMb%|-ID2};sai2vVTqC zqx6KleEJ@EJZR z1M}})$qK4HMTFvsrdq+)#g}Ng3aT#ZzGj?l0xkD6vCB@NWw+y(0$2Ua;3KV^y>2bz zv?*8zjUkupyk;QBmK7b%a*(a_Vg$(PVIeDPMuwXG8m~j7G|xk%i|b|h8JQiL#Sr#^cGB?!gl0q7 z==IU=SU@U-voqKYbbv1aKEH-jKfq~g;k0#d+9x>e6+q}Qtu}FebP8O(ftkS$fUvC) z_GF_BpADh2A#@1B#1J+L!r)5n5b_;_%!lFSF#Hz`XTbNI2_f)3&2Xg(2)XWkh;#qWx#{4>~( zAmj}Ud&6)#U=xHK1RRDi_@BoW)|%x?222-hag+g810;Z^L&=)mfE$?$aAz|X;6AUv z>+y+tls>}A30208`mn9x_^+3Ocqe-)CVedLN-s&FtKl8%^?FPjFN|$r+I%hx16urh zqTZ>@`~+PjXzqv`X;m!LQlo~a767@9&ub9?kH^W=3p}?2ry{VB5XPKqy=qF8f*%UY z#E?csYl}_M(zuiAWD`LevrtoS8mlb0hyGnMsabT7=qt%=o}7%?BVjf}2Ys1jdGnNR z)X$Qb=FDzbr4+l{>}frhkt+-fM$6x3k;vd@zVM@S^Y6JZE6qs5-l@|_Wa=p|YO z|2NbpCx46}5m87C~WJxh_ujrY;g6+r0Or72YSa^rSslVA<8qkke?{)}lJ7qI_jtRtHs-d=1;la!cC@F?Qe1oOb*v zkiX1oCoZz%J7L0b-)NL;VI9(Ew>4{M(m>c5)wf`FrFYY7=+mtwL(GAQM#4jAvz=N; zeeDrLd`*cVHu#iyxl>OEbb_8+)%uUv>#R$b>A+3+#pyK=`bKlj88i_2M*Go;c9)N! zy>y!#h?^O}*k&2$OoFUQ73z!v;yS#k=Yw{T*H$CPvECh=5>=_0>Reh|-h-KMOLv@h zbK04o)$g5S%sdliPMf&6wor`SEv~OEv!R|C+Z+ZZb_A;2!IGNVX*P7aew_7te!N>^ z!~SHO;h0Vj9)aeh8%CVtiqvC?PV6`)r7Y2hIW9^`Z*;3HGg~N+K!EZe{&*#?NR^(E zjq#R5yXFr{9fg1{De-{rPs`Mnpb?me%;$$HgC3_@jIIypPaOF0&A%VKmIgbfDgQxz zUZ0QtMBR@W;Vi@{1NYvv^q%b=uj(*`>mth4gC?pj*SZ8edk;fm=Hc0q@|t7G!MNb$U@cMctv ztS)Fp{Vv(QzTfn}wZ?c@YlP~@4<(d&w)?d|yB;8&FDIK3)-kPCc3t~&a!EfdI z>RN!}j^7K`tCzXh^7S$JID1N8bj8@}xLumD3g7COUD}n-%)ZLgs6bmba=6rUf_@ru zzLa`JHwHOXO1`3Bfm|*1UZbPJo0&Vz@E0xZ@*Jk`6IBg)4uVSDCq)eR|FHKaP)%j+ zwrKj$1VTtiB0ZrCJqT)4M398ONdzP)O^h8XYNDu75!2YDL4^_(6_JXflu`<|QBf03 z)UqrDwUl2ejj_X$(okAuRMh*W&VA>eci(yA-FwG)Z;Us_{l`CRFV>oS?GW61t-aR# z<_9iuGT}seP!jgv{e|WUnrz+#;#rrp^#i!T)Wr&3z!}3}{X;>{^+mB`pN*x{mU`7e za|kq(p*a(pXNw(jNROpIfS+c_7I0-bBRI!`KQhJPSbb^ zHtQVksb>iG>Rj$=Cc>TVoJ9SgPZRr9xfAtsLFdExike}J?<`7$%?;EM=m?ApAA9lc@9nCX^j6ntA|th@B>yJ{vWUJy$esHu5EV zny7p>n#NvX-FqDwt!_4dcO4t888EK_2@q+OfynT)@t(m;DAKx(=}=4EppVhU>O$1g z3J%Y@2Shj3$=VJ#1t=;i?)OYRb8xMDJB zgE9)STRCH_>_U7#$Hls{-LXYA-F&v)r5xND)`2!C?04BE&RT0$0^*x;qqzcnVnRI? z_qCap>y;mUFoBBuJw1qWS043;y(f3o8~?6Bn!Cvf{)-NOAlcG_G$Oy*C z?+V>Az{BOF&>Xds{{WQOnpHP z=BzQOent*%m61|koP+&nOsKEuCORo!wYE0FqR_6^&L*r{`LEXYCbU|0wpG`J&r*JD zJ-~eA#-cANxQVlRRTMxH9x2D1jFDrVJr{Oy#|qL+HJx+FnkL%Q-c=bq@=6 z8&g5Wj(bnp1S)pSd+K9(l7%@Ku|-yEVGYLQNs*QyIx|m}Vo9J!_JE2#k{;e8n`ud; zM@LIZu!j%Y!2QPH*y*LXS;h~74jt;M$`5q2fldBL0 zhee#618DGCHm`?895un*c-|9f=a391usQP){V2;=Cvx%aY^bXcXGJWXCwaMv8NCSeIKPRg*lbi{9vw4Jvjd zGiHa}3F2)p`3`+_Asm+Nw>{jwdG5p0i~j5XA1xphT;{wH->XdI&eisPi|2M_E+NsZdnI@j1dPpzA>kaA>0{NxaCGFx3~(Vwqv;! zRUox>?d1-E)Hb@8KLk=+-`>I@klH5omJWf`772D@AhiwXo$ifWWF+-Y^Tz&RjO#7; z#`}Oom)DHh3liOuW?UIabc>p?zkx)zYydF{92^P;P#27gdS?tE*BTGC9ge~&?7IxD(o3SyUmqAUTF}CiFIxt3>m|SI(MR>a@e7c^jOhl!N=w$ z;+~qwu_+@CA?khlpyBwY$XaB9@tEMS%_WC?N%6`;j7?3%#+%|}vlHe2l173-G@2jAkQXuB`B4nT7zPMx zwesZ*PkxM6;ljZ6GllY82DLv@sEA^?_J>>Kiy-PN+M@7bAp0RH@_F`@&KW_dHEdyL zaS-w|dunGz5E{>3D&ihMY+{2O^#N2mdx5C%0P-4pIt+{GQ1)uk)Y*vtyJ1npdxm(c zX@(#fXSf*+bN+2uENUQ@l0U-8hp1sX$+xlttX)h(5{aXC;ZX)CCVdpodw?3O_u;wM zglEZavFBT1q5q=W9K%knw=Js?U!id_d+|s$5#h48>^Y+1LgWW_k*J~&O=K^(a_=Ix zvU9B$+Od#A)i8^PPb4h|Zzf+`=3V?`4bDu1J2Bi-_89KOHFTnRYpk#S4&Vgf9Y6#4 z8E^!!Z)T$O(q#!^-KJqgIpEQHz{X+3SI4ITPu9)T!%w8LWK5q&cf>iFQae!@v|4&y z8>(cimbGigDdCPB)W#?SKFON2la;|ZX}{248Hj_}6wnE5l-h*M4F8R=Unr{Q)`8SE zqn=-f$~0Ei7uF$vGV<$7>(F6FN&VCuxRcrS({tcXo?SmJ2kzv;`tls~C}VX!?Dbnx%24SE1$@=W?f2ffQgGx4a7NVO+uG z4Z-?T9>k)cij0f7MMKD6jpf|3A@mqyEw_N3W856ZkUe0GZV%K-&oRQ=L$$I`j0vFN zk#1y!R0auUS3$_bm?}TW@Td%#s(8V0sSLO+-@)*y48E11|3)QFz|znrShW;+F;01#Ty23FyK#l3&U?P_)oW+LEu9{uRv5GxIwMQ|y_P}`$x=Mg66gUp56e|r&!(Wmil4N&CdLB!4_azd$O6SHt!q=j@A6$*-=^T-75~yAA?dFCtd`US zQ>%|!N521V`9HpUyA>uamd}_jZ_|44L#8X9YhC#8&a_?Y!w-I-_*IMM2TqWm(vtbK z8^{jgbHv#7OA%hF<6(QxTmORVD#&KyJI6Gl`>8jORnWWwnkPbY88p9v=6q-#2hDKy z5H!0&Gai~#q4^2d)tte^ixL{qEI8X6n)9GJ6q*a5`4u$hK=W8=hO?WYIU1U2(EI^F zoHAaT4YcP#%K{pF1|9TL3bZ5wzzN_AaD0wf45y8QQ)U4D51{8U@z(i(62K||2QUXv z1XvEp1uO!TLAUVPb#V0o=++myAwoCl(9H(`5%3hc%LM8yKmlMG0KO6H5f-8rB3<8F z+-#}dxO@}In&XYVWs0*-@y5rP9IfHA*}}i`uRB7PJpW28V&ncw^xzb5GZWC;Im@`5lZYZnQ;~ZTH1G?#sV9+R zI5R*4k3Pj&!%eS-bQ0+Cy z_VK3au`sni0ZAiZYQM~s77L4a?@V(c)Een*n%0?7h1Qr>bh3vK*`~bCoFUZDro|9q zjf^mrcV-QtkC@ftEqZu* z?W@HNZ_+yZ9nPKUIxWrW|82wi-#D9oYn3XM)fy%IFJq@NW0pK6D??R#t>)$0o5L4o zb>E_Ypnv{g8~kzMmk(oZE&Fldr)JS*$JgQT-}||FtS9TcN9Il9`;V1w5C-yt#>z~> zcs}E_v`rYn52;1`Y}zW=U~}xCOjZ=^gEwcUeZtNB96eqke>-&hgtACyiQSJ41gP)a9R~8IM0Gf z_%;1oi=TB93nE{>!JGW#&Vpuc!@BAQ{1A1O!56~pJU&9W=>HM)%JO$oD6|f?8UF;m ziue?KI@?iH*oe8t4zq5BFgwj?a|Mq&5_&^M-u;yrDo@lVUXREFQ5?3uq7X!J!CY=3 zZUftc%P+)o*kibbg?JO&gg{PQ8n3WBYKY-^I>hPvTCyi+|2Wi?o#vH#BMH zpgww`Tc|>FjF?J_;jCewObPr+-JDyuGTQ*%gzCEf3vz+bBEk23) z%UIHSk>!=(_OI6OuOl}b$G3K|Xw8v5=v?E+)*r4*3)s=DqEbX2`A7XL?HCr^t-lyI z_-B`5c55_-UD~M1fCsW2+DWYJYQ#KEcJgT*<(cwl{dmh#(NP_$IrJ#zrRGR-TB*xY z(-<>K41149(Lb90YTc|umNFM(XsSJWlVxu2v;ouu)r^!iVy{8}#rU1diTXCki@Xc+ zB1cbIyiNYJ4$&xL$FoJ7K6 zkFC;&U|+Xln667rbbUj~mx8@y>wbyT0Qj!&HO9A|7{r}ZzJVQWGGs#@DUq zCFu8%>Z3)77=*QkN0zAG^ls4qrL^v&6FzAI%q7FFk~{+TmS&~FSxA@gy7A@iR}4Q} z)>_qcWVwf*)UNi1y>bW`HtZ1+=>AvbGNHF5yAI@(iH#aVrV3cxz(C>bCCyoC3?B!KsyxQ+UI8X2@5J$>hqNGK2{> zMRT);aBU`EZrTvoc2%@C_v7;@pHo(e5zRraawp3YF3%ga-8hq5;*Bga^0-Cb=wFSK zA(Yy60r(Z=4*RtS=e6HVjrdbKff3Ul0ofrKliOpQq&TgACDTckrj4zPR7*$MukZHGI_Kt}A!@7vDwEl>af}B%1P7FzfUG!#8(OS#tarT9rCfV)#+aR&c<5YFPjYIdF+#N5R?u zwf>G}wY5%%tR|0xnDLO_)B#Z1&q$6DM+`tWUoFwrjzRDeU#WP> z3AM@x3FVYBeYQ42QZj%pCw-6?o7S4gh$l5G9s z97zvtK|eLUgLH4m97>El(-It8(oHz1EY=r7@&|4=?x5HB)vE#jDD*y+Ll@4SWA7Uj{(um zktX74)iJ}0F35XBl|MEyteg0Ruas=PYZqmR^0Pj=%X^3#q4(`_AM!Y&uYldQ{0`h_ z(;2grk9JkR)jt+Sv4Sq*H<>1g*d6$E6Hb&oNl68Luy@bLo`wXQ^Mk$8maqJ zM#bS8J!Ykhk8^EiURC@lM6oh+FdoJrE-weS-ALh<FBgIQ_0JX>G9)?$S=Apohm-GG9p3EY7|Bo7hlIObR)UnBY+%D=^lG z4%^C zm+CR*#9>Iz(SaQ`Jn6c}YduytsWN!1^qw%VGH|TS*)&(w(2t6S72=2Qy$BE59t(Pt zzTgzDmU$wT4O<#s3&}bbnU{9?lm^tIi`9<}Mc_z&%0?~?Tp?X($`kGF#~!7fH@FCi zI^Ga=oa&PP7oneyGlV~*Mw`cq-3Fq+;#Pt)T%MRd5WGdY#lqCh@J8>2ht&y|>p6H> z6++^ZwRtR2HBKO{bik?8%u#*x?x;MRf=!O) zCty>JVP+q3I6XWM{Z@U)5G%$>@)JOePnA?8-~)}j%;-K;9VN=Z6jSL@J-AuyvGjf^z+Im*!eUnryjWKQ)9Mw71gdK%MG-J#W;;5#WqmZHFwE-nY z^I>YFG3E-obfY3kXQXWw7)=LoJ2VdsPGUSi><#9KvCQn%N9v%iR4f6Rep)r|u_{{d z^fM!NxfjQnsZ8$6*Vp1t}iG0qx-jWeY5U+_D^4k-gRm)<_Ff`N@mo z$ahKm4_p)z7e08yz66e<(ei3&_g*8`0 zZma;RY_2fwx_fr=vMx$<*bW(0IKDD$n)HM*OLUr#Jq~ed=^eP2$|VMv7qRj|9!Oi5 zl2$`p3QsB-pEzCR0^2eU58z2PrE64a&}pg0G_7~q2;u?6qpcYx5Bk^Qb}B1iu3IeH z)sKs&Jv4Y&#);Z&KBd855yhIxhA~3CZrTv$zN*Z;y31?8|8J?6sa&+p<~$Jjw`_*7 zRs<^%i(w_=57^q@#KOFxY=Y6#VUW2+e%=(<3wA;iG*4SKHd?jEH`yAa&|arPKIVomT)NuqDpR_$#Y0#I4ROOBx@7X$(Lr*leH|#)J8O07bYdSy`J{AeJ=X5@iR5!*+O-89rEiJM#u$uj;cNC!XBT z^hLmHi{OOBp^8LQ{AeLr6%xt_(-%D%(#+hlI9fFl_mS`x)I;MP!FdU81f~&>IV-K3 z29aMO+RnAld5Chs5ZwnaqH7Jleefds#ZX}>>C8{W|E+mxKn|l=%yP^+%}#y5@Mu&=Niyv$W2Gv9pwUQT`W3LACj zj&n~|ehh2kqznFbgig9(ZidEX_J(X|m<*NMTFUG9w3LfdRTGGix9| zbPU|LuGJn34U;TuM928}H{{obFCckNuEG%2x#obbQHhbKA*r+y zSgkn2ag5Dq#3(pnvFt|NTjgj$JJb1*$8&wGm?6n;#9uLGnn5v82Z{katZIV-j;F=Z zqZY{Hv{ZV;0)-enfMb3KpI_f5=I`M1i);e(pfFg+4);_L;i0g*5|!khYp51G+4#*) zbCq}Wp_b~{f@Wlr$1nQG25b_#gY^5g=%h=i04JJ~5~it6!o!j62Prf{#bjH_ z0HGF!>4muEur8cmi2sX|+nanB=fWxL&A1DzwrfSl zD;;(#ueScc8r96$Eq#HVl&$~aYeRuyz9m6)j^)!F(1ZAe9bX@O{Bp(g1pGX8e2Q}) z>Lg6Rz&t>7n&mZH!}*If#V8bQ;iGyyvJI=?JE(}nkLp4_Q*Sq;x|~iz4vl-lF_kb& zrok+kG3=v*Toa4#9E-0Ey(jzo)k?2wH!pqgE1FN~?%F=X9AUgJ@yk6$#O)=MbPyYU zG%FBM8dZzBe_$2jC@7R)-xeY6!>zP2Axys+M&klcFIZT@>wnm zkf772T38ZRZk$zVBPQ-no4)o&{dKf&{yUe%fInrScRJzbMVVhEeALIo?$M5`{)5qK zsqg#{c?(!?Z^s1ilIBtXEHaHf*v4Aty#(gH8Z}GM^uxL57mtd;>QLyp4G@l*a6c&xxr=BL*QR$Kd zV{{d0{Yy*1I#^?%X``AV9>`+AGb+CtQ2}H0$a~wkz*Xunfvm}iswNs3aW0WmKUuJF z0zW(n_p_1ESz3ddrrafHvr#(SPk5eH8_5Q zi)=ac4Dl5%G_v!%)Dy8aIj$r1=|j&pbqi^epOMdh47k*Pg@`ql*D{%3Et{qY{U%eW zpFe)DWa)_3U zJH|y?Q&)+nP}8;7(c#MOR_%3sxN4;JI1_PLDQ`W@#2i*#Zav3DEl_G(4>CakY-v5s zMEHNpr|?ST7#W zN^J&FFx5Z%B<2@Wi8)6+wld&&N_GRf$Ni=Bgz2pRjAr~&<43c11M;Q1RMetFG{;Pr z)m6GIg=8Qyo!d!wn(UrM*qe3|?(G$3MxSpf_z;}7xcBCjIz7<*oQxNb*Re~H(H_N+ zKeoucR6IsEr4)UXa$kPLxZJ!zJV}=}0Jrrx`D_X-8ZTlR(^g1EppHs4K}LmU{42OZCW zjqv$Fm(^e+d}z>lHN;Py86g38Qp zTsifaq8R3EMZ+PITms@4On6*|sgii19ay!l~{0+PQ0pg6m&E>TvcTXx|;|g z$}oYp$tgrdG|Y~Riokttx_3g@xpn@e|6Tl_{T}wcn`09A?O${6oBYc+)ti#I{%eD- zD-H~{cofvu!H>_c{Vx_z+Iz@(ZSUbf79S-Z9BI0@=USuRoz?G}{+u;^iLagZ%d8t) z=U-Tr^D*wnaa+SCAN=bDoG1N<{F9v=zsgPyv6F8;vy*pq+sWJPW5*d(?$_??yA&?4Izp7O(5 zQhSJ};&;nzZfXMT1{ZL%n^6li1t~sa&-REs{9ndVtrsgHTVrG|HvzxdxU03R5}8Mh zN+FA>mEk?OL&_@A;p@mls%83DmY;Tvd{G^me)TX#QSvh%Qadahbz~}GZq%$IwV`89 zM^;?r+-uM_cg6o?@x>fCZC1JcwEqu^|FU20-3+QwUzvpyhbrsEn^M0HFze&}vyWk(ekskP1GnR);YwJH84;@e2`=3y~R{+)0 z`7=;Al>wDCG#aQgcLLS*JoGB=p98&KiH2VPBXy;n+HLRkiM?0Xw|1(;{sFE`{7*gr zYo?t#em78i`s~y#bAh@c7O0WyTX!sU3LM=v&g9ypx)8QPpEH!(g`O*1qV|a;uPGRk z?&{wo#NRYNqD&No{C%(=84pzWfd8Y^|A}7zH}&7Xfn-t6&`qPe2Ylf>+U;LB+y1u+ z4u`)@B+vf0QQ7}C*@f`8;cMYtMtG)Xp6%*@>w5h>J!j1SJH^Nrd%u=laEbp=%$f4_ z9a7Y>(9hI!&8Pu?#ArpyG_ZVh2>LfeIg}SZS}=UXJdKyMQyldG9IBgUY=euU<~6!#TA^Kgl8# z9jkPHL;gem1%i)~s}V$XHoVtOwRY+ViHvCcR&|7amLWyu9L43U7wQWv)2%0U zu8Dz1@xK{eTF>i9@7>19T0r}dJ%C!RnE_7nUV{;f@n4KSt(SD<#E3VjTdFOvCNoZw zQjLmH_n3qGu-%d86FA8nCVvZVi0IyUhoa&lh zFwCMeS`crQp$6_SMN*vTvQafpzeejthZX)09AfO0_ZUA|;Xg3wlBP-$oE&t%3M>2_ zgT$+N? zo0y#$bvTWQ-pQ`RW}8@@Id%A-O_f`)#O^pcnFerk!S59ApW< z2urCoonfC zf{a?x3Q5%SDCx5EoK`dH#^t4qaaZ2#G1;UgU;v;T|%!cyapW^eIC zR`Gyi57`IQ0_5w;X#e5?bhO(C*)$8XcX}e`fihjc;nfB_O%>WFSh-Wb-QpqIE^#T1dW5*IM4G1$Q*|KZyMJgU?09UH zdzoTI+vu)~se$?^VUVt<4tGY?WnK~II}iX)h^E=1olQ;?)bq`Y<9w>!2N6cLhc&Fq5Pbec5X6mD(eyZC}V5Bb%7LSooG z#UW#w^<+Px1^n>OR8vZ?p_{g#dINp1t@Cz&Z7l|@1mpvj04f0Mc7HYhE8&Y_+5At6 zmv`RdW0aQ+npaFjjOvQ{d3Ch3`1V;udG1S;Bx)gM#2L#!oX{u(91G2|UAcc(j`E-@ySe$(ECVIKfG^o~?v6n5$;zKFm#zv#rg3 z<4&R4*bBK+N(mR=-v{>Lg2f2w#}hqp$jDNsTJlX+D>Md;0pysBUzH%zHs zr#O*P4cfjKZs~hmFnjB`@m}nFZq|Eb8>fOB@?|`l<#l@>`bOJid~?%RZ*I~TAHuV> zx$E$)@!oi$y=;%TxyGmV(&cZXo4uZV+xxUt{_X9zD=8y~td6xyjBkHOpBh==kjOl)Pt{^2 z{MoSlakf>S{_Dzd#&zQKk&{6quD^b|^v(D3V}b4M$Zs3G;_#f^g>E)wuRG|^i8hl?a~<=ci8 zF_+&ak88kJ(^jPr8;I{IbqC0+RjAf8Oova(DXqttgik6)>m{aBi-!qzP+5}lMnsJA zJJ>;W>JG|M?BtBHs+rE^u&uJt!nU4cf?s+lB;&%yCKqDRoM7vYc8J3&();r~2-IKo zZakmvzy;FpwILGFaa{pnL`yq*qvjlJ#6bMdU$7B_q=VfQPfLP?ix4V5J9ZkRcVidC zmN%n9lm!O17y=IR@Y_tI1nNrML3O0{`%2e?s(3>>q+yJnF5hY@5o~06)i915avIP{ z9xtUOmQw337V#$arQ#L`cawD1>?}swZA4=@3uD3mze43~s1cKF(@P0d?$eV-{n*jEe;Obv{+@D+aSUp*s>eL94?Ds* zC$BI~g54Ne73~8gLHuG~IgEge~y01&5=o{Tw`@_VGSXV6tDlm zLKf|Aa?GRclgAq)d%>gkxUs6Yw8piEvMkwo7+VP$q)r%jnycc7vo*((w=@xZz@KZG z2_r$!U?evqDE*awPUgz(-F| zzSRc{qjZHe#Axzs{d3_Y-IOYrsc$xicR7|uja4i(Qbj-ZI~^rYmcBM^h1BO{9dCrN z*!_}pkLj41+T}73ep>O+xCGR^6LqO0$TyUA^79Z;#~Z?|)RckEy~_m6q*hJ8^Eve; z{Uneq6%XM*sLiP1V&oRsD&<+*SvX(vH|aH#*t*_EOAPx8yDj8D zmuXdr=1~o_YVybAl?{IH-LT2|Jh%7m8;b1oq%*SbEi0@?b!Z69gP`Oxfo{;@5pAV{q$PvPE-sKmi_NOW?uUQ6bvjy| z#|N3%QX5;IhzL>Q4eVjJrXXM3HdCNLEurLiY?TpBPX)UrsG6V_%pFsKdDd`3Q$P!H zpK>u|WOPmPn52*FBiDqimig9h^< zsN83-$b^b9z?=chzoGK+ZK#AUY=OYK1rO^3!Xgfn1%7ebQjUL~>XY_bm#GIv_ zF@VW)mWuoVv2&JMSKfGL<^n{33_#`T!}>1Rgvn-Se*E>o ztI}>^_ND|0=6Sz}qFj?wXt&KK%Blww( z8g^tx%#|;-6o|A<*c7w6-Fx5$2l)JQ_lhIw?36zNBz%KU$>Jj}p>6r0<=U2`$0(fM{AqI<2Cz&Yw`0m*1sgDZRBT4Yt*Ol z!cbQ6`k05e$mb0o88xB%NNZA#I#m2t;s3X68l&dQW5~h0h|S07xFasn?lUXQLNWcM zM|$!^G36xf8u%{}b!>0^PW3v&9Lr?US%=3zmjys5GpAg%-C?0$vF1CoC+T$RQI9sm zaxFnu4k<;Ho#jjSvq%F$Hxzp~fg(*M2=qf057}hV`AVlZZil23O+T2U#h!!AJp4*c zd~#?Xp_*FKs&V+X6B*}Z>7a>e z8g%rfp$%kE)gQ1S5`)uZhhQe%l6itwolT}z=aZ@LGXOb&EI=M06Oapl_V>`9xF;l1 z5)E6YHM={_8xm$3H1jXZcivu)jXC7#Tn^;!-9U%}!fGIF2Era7AOSMK86YkJBCZVp z$BhRZogcwT1h_&s^i1CYC&%RSV@sH$rFMnE&*JHYO_iMH5ZB(YJyNUXfw!-Cbjhs{qDo*L=^q4TdQb^-EX z)Aa;wy6$TmMVxzR6fr43-uGr^yl+hdbg&0H7!4i7KnF$8K`nIf8cvocJpBRh3}KoFx zcf!#3+6r(T`G*Mo^?9RUem+{TjpbNH_0Us!q$-c?dZKo;jaLX(GKbCcNUQ%9qn%(Y zTL0;E?p@47j+b?h&TS+*8n;fl!kpjdJLKl0&l5ZL2S-B?6TFb?Kp4DIehHqD`vx8U z)|@vW`yh~Mui>%QnH6+Se#PP|Vh=cPQGeFQi6`6A6A@c9c*7-2fOVgQMX|X1o`+%C z`yF3nY7c6OW zhpFwsk8r2JS0$Z*TW)gW=69oi*L>e9lh6_Tg zb*MwCK67;(t~ubUe6G;@y8F|VWpT*nun;*_2*Ujk#R(%tbh^puxM`DrdJg)fa;yHV zZ~`a~2|cv<zrO{M~vSEnY_=KbG+4^6FVY;+P^nLYn^Mo!`Y0L_lmvOOZf4}o$ z_s<{;o~+||BhIK5APaUFh;~&>H1b4;nA4l)N2_I9z^`Biq$6f$_Le|8V)p#rqDJHg z<#BU44|Mx^m=78!Gm=M2WQIeK%^YiIJIa?-WY`a~gq%YBR*k3G5mF0yHZU0_&dNw9Xae7gO6 z5HYZd7~Fs@r~YDyu;f?|S0c;FQHIx+NGnWRyTgtf5DjRYdKrw$rPkA|n4z!gcLqTN zGL;<-hRTSIu#8yN=ScuL!Wxhaf*j!yjRvD~lnqi?1%ezQs~WN26bz#>rOsm~jLJ)6 z%S(|V$_SV^L(;gTFe;A`sCCpFkNYqx|0US1L)HW>hEX}!JWCwk6tEaZWw449d)W#H zz?o(uXbsp)WP4^)=D8o-^ubJpkYFVOn;!DU_}!PDexg&zGe z7m;}50ui?c5-Bd!2Y{L#oMQt)-B#FvzGhr)-P#ZL?PhaDm*Yt2*iCyV!Cxr&XRr`c zK8(H|T8sH;%5Rl|nu&5rI>mBdG(WWp%`yHh`j85tH>$@eVpv{-v|GWjyp}bDX@ljp zv?1IaSYFE;!iK6Zfdvb(Ip}YN6XXnKy2`U4^rplcLdIu8%ngK$^SEW+5Hdcw72JXr zsMe({g3z15JmwTCX;t#12HIU%WkWakB~Y-*fjqYa>IVH!5PHK2(##Jkt^Kp0nepV$ZTl?J6C7-PR5;b~zV_x0 z&gE0g6TvL73wQ|+#u}c>Z1(c{hy_w-c5ZLhUDS`9g`j;v(qPePofub*7W98 zBmOY8wJLOkQpQolPW5^H9BrVkbin1P+g|;4ZM-h48d$wIch7&z@I{R+)NZphH9_uZ(kpNI6*aUeudSKwW@9-E;zSt!ZNGKDyH<2#-4f;c9bsxI&gGOlpd}h$}FHx<3-*r{)ND^9f1tWUTI@)I{!(jS`Nx zu{#j)rY!3ZeC%A+5{Q%=(-d_PyH7Jlu*K$D6L3#{*0RRh#)n9`zswO`$eT1T!+jwc z;#d_M!d&DWfC&%`XamdvJO_9HwgZX)OQw2ajud!e9v@6_xOX7I;bQiDw~pNTZZ-RE z`}21K;MiXeXaY0>ngQPdcHj251+=ADXJskOhZ=E)ThLhrban|kI^701l;BVcosF~r zF|f^`?VbV*AHZHf8Q?d-B)|p0B{=i59q>``aKyuL9rWM|J-Nbh3w*RK(DN4f`D^BU zH}8Dtc@Oj)(`FEH+8gJ)JtKLfl=B>)k+-MR@~{-QqLdV#3&s6caC%2mNMllXJZB2| zREn5~Z**IplF1`By8o3jzYoz!a!D!ab7&-Q23_K8Zg~PSRCTab&cYT_4#5qaz%6Np z^bhgLMSbA-UebE55`yO9Q*!%Icip2>7Ky3tfjuBg9NQkcG%!5!9>`dK zzGpKOYK}Xs+`C69x_|ZuDCCo#9DVl#V_!gi0*$RklsufM}Bg2*$z9=UXueg zXWXDB8w&e^FPFVM0Ub3*LBZQz69|Q6_O4stj9WAyra@tVkdEcbjD5^3#7;Po+jE!hk*1JNXydg)%IT^k5T%^ACZ@TeH3jk zghOEsTlZkiF^A$cZ^=&xjsQ!%ug;Xd^vKO+UaDk)y=|TGXJsoT9g?uP{fx@Q_hjAtQ$WKCE zzhex{UYi2dF>2Aazk*4Nk6(_O6tGjE z-N$}ffSnk+cTi9XBjkA)2(R2$xjxDcoj`BNn{KV0FyEl8zAY!-&U8*YxQ$wu6&gj~ zn>Rf+WUo|EH34bRRios?uP_+$ZAXWYgJidytWf`^<~&GE34{ee*aVGtpfSn)$%~iO zq{XvqBQI~hIf^lGeT2QvFgoPN zC^J8=+3xW0@ndD@mkSdvIGZ27zpNPZ>J;uVY{qot#>Ci?E@%a1t4W4W@6X9x7#)>M zC^IA0Y;(}`@8R@cc*MAT?yqU2u^sE&W?uPpt#Q3RAAYgPhsbUt-{mD+7fy)NpRN{4 z|9E9YTxuhuM_Td-)^w=c2Ne@t1+q{RO|GKnpei48D!@$dofkz2LS-tCS zXP`gZaVGkc*GT-yL}+;RYL5CA`a%?xz$&JT1M*^}jDi`m|2<#6X`J6#XF z>@=;MG_CVbRi}J=#d?np6r)4nL79m?QtuGK-@xG;!Wlr}0YwdzqEeu^17*9N(g>6` zJH_5h2~chTWw{n=pF{10OyD{Jx5&=@4r;eU?O}U&MZi65@2(6eok3?34zeY_|7Z0<|IbT9297*A(F9*$WBw0u2fTDC~x_w+BO4%ixC| z``PjjURRu^t%4uzAG9b9`j`rRYNhTkO!&Oid?pKl}`DBniT+}z;N@f4Uo zWawK7%uT?Yz`X2quNIhJ-DhGKZiU+OQ2QVNYW;xwB?Jm%p}Cd>CxzMzaGix3;O(*V z{GoXQ)ZSBf%1_xp%CB(JkM^!M0Oe<(Ooy-P9s?*;Wv6_M{d-vTU$}eIu%@mq3^a2f zgpfJRgfImNLmUthF_8o!A`)bX$YeyNiUMktTGR}R;RF>dDk5r(R1v9yTBQ~-sfni6 zTJW=#TB>R4KrPi^)utBpF79*x-22?$_s8w?yv=_1+Iyc9V7t#*d+m2Ylkee+uHFqz z&cn~44Zhz`nb2g#WRuCC=10(E!DN$j(1Za^eB+>r0-B`hp-B!jp+OT*_$jTP{LZP9 zO(uUQ9@`GW|K~%)+i(+qRzl$%*lteVz5itGvGFh1XU6G)0M)2-xCarqkw$QO< z#WCNc{4|{hg=i>zJXwf?f+rMyHJDEyaQjbjMLK-rS;#jj`K8e0?PQZuXtEM&H)lcN z>106+1?Wc3=O%s57r^sqNUj3IkpI9B^_9ZYvBnaReHMK*N<$sb%Sa$oH6h z=^K9kXx0*RuPMLMwD$A=Ws#X=i3racdv5&tm*>xM9zrp*$Al8!+Vu5LDM3f)#BaJi zQXH6S?t1A>%0F-;+xh7yWc=!z%lL}u(cbseSBgJzvwu3O3H&ooyyx{L?uxhR)T!^H z-|so->)PuU<)%D=Xy~1L4Y)1=U)|-FVdw(d1~ithUInxb=zgFveDyP+mw_Gu8Yj#1 zb<5dTugP6LTikVSfSdQTsHv-xFUw1ycSQMlt>;4PNLk)RXuSklufd(lm~2@D)zMJR=!p6Ssso_MZWts2u5liENt?RHqGWl6 zaOq#c^c+lHU^)q=`Cy8X<-MVGM8)7wWkkbZg-`{9y@A30gTb)SL#@eu%oTU7>*40j zlr(ku!(bFJ?*wxQn47`O2lEAP-bW#_y!)h_eH-D1uW{+SK(!fuOgiYC0o5?>8EAbEs{e%6ui;Jza3{yXJg=#1L?Fvs3+78; z{sqi`ftdnk_yKUlK$Z)gQ@TYFN0nKUZYJ}hGaiHEn z^MQi(cc3_+@}{m#uzm)V2{aEVSpNqUek4;CHFezr>v^F5Knt3>lHrdk5URZ3JEy}% zkHbZU;;xr{+`LcVuP7P*ijIJJA(&T!`8=3sg1H~e;-;>C=v@NlI4~E0`81fPgZVO; zQ^5?qAAq?E%$vacHJITKddfn$4NgbY3#j(OxqrJ;v;9$sc<#$yZt!BROqN0m4fVjg ze|r+Dr$Y5t+~9xbHZ|2n%47pk`t?1s?8O3hF1r*Gz=wh8kDqw?_!owAil|P(e)lN- z2AIxnBvD=(QZgLT^^ISu3?Sl&lMv#Ouh{@Z+i@GsctaHB<$=5Ei>P>-GCN;-LN zv@W2lfL;a~>_%G!v=Hb;`_aV#<~iptYYuIjZT|l1fc?osQT5+d{JwwBMgZda{;lEy zfLDbA1OOf&3J~7+?+p6LgrCRS_X}_{K75a#@!^E#&S6oifh+dj0WILTeapaS_IU&60eZk``_g-Jojt!S=$ZXIwm#vz^u=V4 zH_U6=D;8Z@m2k>%dLyY284^be!z*I06aGVL%v+UpJy%<){@ic^5t(NeE7w)`w9@@~ zCkQ){kIYMzo2&a;Y5u`02SEcguS7_;MaTqNRb^t_aVm&N(PEe+v~S zCo2k}q7W+nfQs2SC8XPYMr7jo%nrL?d}H;++KAD}2cEZSFYr&1PsDM;IioQTylyjs zK$FQ!>tRVZ?{NHX*rT8pg{HW_MRu62j{g~sx&)(fDP9C!97I?i0BM)g;2`FE^VvkL z<(~Pma$fZgS9o7eogbM!UmL7kT)j^bSQInhafbGgcn=AJb2fX-uN^1tgkD~syc;%h z=MZP;OEpVwX2Q15Rs5xWXrGbTeB!2-k9Crp)!i7k`FKg*!HL}0d3XNIu`FB09H*7Z7%ICCleQ^xw zp|ZUdewpmQ;PmL0_`D5nCmME}Hw;C#1}71xN)MFnAN9S({#7&6_-Q<6f;i`5u<-v? z&n#j3^4j~!zb+r#|M)@rZwoH9s5Wf+KmQAf;kpqpcie`jb;@SQbQ>;#;gYKVyMvn! z2fb;$k@)GzKkG}oKfKsH(G&9i#kLQt+yCA6VM(*%sV!=Ci_PJd|=Gzz6_*60qOdD%hW7K=F z9}+MI+H7lU7-OK#R#M|P2HI>}YdHSYe@x<YSVM^66yzssdhxTh8x-WvR`49YaqEL*NROtkT@;z3fy+KAg zf|T12$|y(lO#2QQB*x0M?~{4Hr+s8v-OTQ%{cKv&954~RPPK`*a{q^v=O02iI_^5H zj_0KdeW|hWf^@u>+D;=%7f#ZQ8mYQqlD5_8rVB$f!$xmi2%`N*;!Z7S!Hr8IsiiFh zcZp9^b_@Q6ejVi9@S^KU+=foK6zV=vj@&1dktbRwXLV426lKT*I_T3ytK^Ih+Lxk2 zxnBq4W6@?gr=0p)lqL@9w1seL}Stpi{wK-Oh&P&W(acS{3@C^9?TEhti5CO z;)lG|oHGXTBi@3Z462h$&>$d9F^`PdXD!Q?lF@k}@!jT4>e4SY)VpwZnb*WILI~J8 zs!4K8%`T{;JZp#(Z4uI^QA;)TN@hi9n)bSqT)`W_EU+pDGaIqrgM1<6$c+K{!i-GJ z7uNE@v`q9G>pjEaRyZ2>kwM!^NkXbb5#uqVf&px?`yXxzgkn}AT_9c4W(Pclt!x}k)uh5J=Y zm60xq0DH~4E`Dw|oZj4LpV~{RgPcck7T@@sZhR^7aaoJPD^2fN*60eT3ro=SLSDFt z1ns!eqm}y}#jxhb&zo=$*RLrQ4EKbHPv4l8x){-wG5%z`S%u2=&rj6tNW7IfP);N8Pe%7>h+-o?b zM0>^IIUMl-w8BfPMg3T!^~1TBD8$X)qjTG>li53U(@MhQN-1V|I0x1^-lwk7chC72;>}@j48IW)EYz8Uf zZ%r}HAVnN$3TUQ}uuhp~H~WroJ~CmO*~!d5Od-vI$!s4JqnVb>I%t~O?32t{Z1QMk z^)r7qMZ@$9S*NPHhSZ?~o8H;`I`C^K_xc0!eZyzpvxXFhqeng~6(bRcNT(dNo z3R2{9DUG^-i64>*si{n&Q0h*d--7FvMpDz^w12}C?is#^qhTF)0A`?$#68vt5iI*e zJeYy(JP}>as^fO4JB&%P@Kvfu#&B8iDs_u7K^FE*b=Mdx3wfr#U`&xk_^MtRgKb=2 zb)!*e3vE-~GDg~XZR&30Oj~%NYRnjB3ocZ*8>idC?yE+OF}9HV>VD&FTSSs-!WhEm zCaE>Xsj!u+`o(dmX6|Q%U$-8kC*(3cp-BCp+sE@v#+^ zEhghw)^x~Dhl|pi4Tv|U3)v%{E@b9%u8BOy-8&=ewS`JtXG{wIW6Mgz8JGWE$mR4_ z8Ct;|zdF9!QeK&VZ z^np4no@=3y$-UShXdw>XSXQkI@TMz?DU@DpYU-G&hdRqS52^x{#I)_h>V;6XGI*o? zZ>W|+H4HrfosZ8QGmXMn;TB3AOG&(5Kdi2SvFdaItyCp39Oyit>wv=012FU=80P|X zm<=5mPzCq%5N_ZFRC~ejH(>Zh(3++su7J*qq4P$d(DDh;Pk?UK1t?(XtuWSAxUW*^ z_ziSg0@X|TcJ@UO!8wKp*V z1j{~aMJ0e>nZ6bGp8AU-PlkCaeV>9Ap;QC=T&yp zMH}PHQDc>aME(j*s*;@ux@93sN@CO#%`#{}abhk1q9z^kohmA^3oRR+xnrmwELqN?F-)9gtuto~eb!O} z`=G=U{X6@vMAQS=WG}68>u2md|L&h}{)qcjgsWjnm^VbBHU1KIgoruL(M4rxDjZB* zY?jvBQAGu1j9$xP>XLSBjpY+3oTqjmdhU@voJ0Q|SKWu9Bd6_KYCJ$tVt^+NL3Dit;&}7kp+6@kOS=qnljLOQg<^k{tjjL$05Q{y>_r`zFD0w8mvo>%mK0_ebYNdgHfNWXqdX;PgW2Vn zU6K`pigNSs-whWd`Lj}zJ zS9BvgWiYbEYXjvmwixI=pfNzb9%E+%{Q+oni&vfZP2%RAFV!i>>I_xvz0VFP!_Y$(fxJ&x0|bD#hb5_9%3W zgK8VJTn;T+H;HLbB|KJVKMgGtTD%&e)$cIYcA&x*uS^*Fv($gr^~{61dvM8B{Ge9$ zP2vgYRRsfGf}UT)U|Zl$f?K>M;9j>vm#JX71tY-i--0i<9_R?rIH2(5Jb?ZH9S=aq z)%+mEWGA?+9;zMLDLtVrUINd@*zbV81PZs`O@53$4fGk%aG+rQ6X;u@lNSxVNld7J zsa^oLx1Jv~OutEd@AeqG1n&4KR2{MrFX|^Cktu2;qA5GT$8FSqQ?`eXd4m|sj`9g_ z^bWg(o8k_ zCPsH@*Bc3majP^QMs^>6m3F?7(kFPPiT-Vh`ZQoQ;7?<4U$C$GkWttd)~5Q!7}*!n zrvBPEvoE4h^`9}UmRqRaX`EggdS7+J7*or;uRaM!yuy=IPay$KaFY6facXVYWeEK( za29UBR!KHF^IxGpAV=(nNB8}H)#W-AL>0dx(4;}sd9U!z(m7P=E27+rqAnmq!tZo$ zy*EyYn7RACF-l0)YG#^5P=#Cj6JbZKBLFpP$9!4*h6oc|G_OWCO?8%~7lGJSZG|WE9 zvh2mv(0P(Y*?H4olCIA#z5tVSe)ggZFiBTuFS!7dbO|U9!zBGQyL1Cg()7XX4KPVp z4k|XlBrO=s-2jtx(;%p1#z+q65x;^_ky3!Tt&jE<=M?lMN!->Jp{Ul`TMDvE~e>3$R

|* zJT;lzx$rm{^P95N5ZE63n<|r!7G@@4)(Jv{z!v*kKpEsFVci9ZgD|sq2;2tw-I%$8 z=)s&6!U5e)uA3vd8amsH4eqicP)F9Rw@QaVUoe2{Hw5~Ehq*I`Kwq!|`glNJ@F#A> zP{3Mfn(!W?tfjpJiG_%m~q z7@<2=5$1YvXEJgd>k?UDTi!iMo65h%SK>C zoCP&9-&W>XmBxl^4PB|c#W|C`250F&6)q@-)%6Ulu4iC%Jp-%j8CYGGq7o7p z)11u3v{u^Jgn^w7OsW>}>8NpFo||Q;H49P{8#zaervOU;6O24DuOY&|u_2-};Rd*l z-k^x6qpmS<%U&2h2Zk?#VSmCf0SuW0VcMu`2ZZ|?9GLH6$TAqR4u)(R0>b|{rV@jv zvveH$R9$B+8w#q8z{y`*xONo-Q%B8{?~o)oXA_YJ&BD(4L?HY}nCK4baMU(c73d4h zZNNOXuu1Jg7|U~>FoxtncEP5uC8pBZmG--!r%-A3!qR!^YN&Po2@=#kuQ_*tNE%RbfQXv+oW0@z02?d%e?$R#zHqv8W zsUtcoV!iyTIk$waf$??JBC9%Sz8!LHUlW;SLOZhO}V`hc3X)>Nr?PgSUV!nV>b&w^e-qF&$cLeS*s zJNt=R^=59qG@c!P9vXb3*}>-(yI3>W(C&NR07R!K<#_{{9TBDa(?Dovo>pq1IXCpQ z>b3#b4z#$_hRF8t1B%}ysqMjZIo|TZ8r;?Fa597J@nHNzX#E%!)(I$p#Pv^d-RdRjE@YV&Wsk+Q|*20jC@>e{B4l4pJqSK z_MCF#xbFnDacO5{;CJFRDW^^M9PPL=TfY0nPXRInVj*x<2AkPH)C~UI&O&%H)|84b zwY%3*8s#$$9?pt~*n0IQ@i}-h*5Jg~s$D)%cNnV-oMf+4?)D9brWn(tKO*pgHTHAW zNDs|kYiBifCu9!t9gJki9NZKvvmdQS=c+HldW+B1{A2ANL)?YV%#Jb4UCmuDU|1q;%Z&;tY(q_5P9Md?k>GDH^Z2x7KH z+>}E^-m(arW)abmmfg%fGC~{uI?tDbYNLhlrgI2S!ZK7C4(bhKqbuRnIecZ@UJrtLDwpR7XNQiUzOX#jtHCgh_F5?cesSCgI?PNI{?{UHzrNdv zXd!*gozL-Wp#%YqI7G;+B}QrUxM3W85q%Ah#_=qo9aSy`esRSBezF;5*E{`FLg~r_ z(4yKY!YtKT^cO{_K++t@O%or|?(k-Ip&oii^Uz&{BwsSPcB) zxGCU18a-H03nHJZjK{$*tJUd|64!_S%HpZt;e=(@k2k|Xsg9qb@Q@^qvFmV$&GfS4S+!f6q`m0XbxYrDBUKeGYe3iSZ%Ws@?P0=Uu9E+%f%ybZBrrmJbEs&Y^ zJOVy+CR=<0-ye}~c`9yo;!`3$l&3)6z9$)zp}sC|OGagAj*GjKaW~YX;6vfrK#4HQ zq~IEJ%E*_3Ys?bkLMgb$yf79?19K?e#s@Z*ETbHCPkYBYO^Qv4KMTyn$#z4JMKg;3n0%G*fvjJcgsaztTjkY+5A<)1X@+UZ>{5BXU`|a|H)^}(`2S~H)riWCx4&RI zZliapP0TMDs9l<4%*zaD#);r%JE&P<+f)xFn5>WtWw(Ty6_EkWIE*Id4QR$mZmMj6 zW*kgYehy~8Ikag$Oh|R4wUR?yNP566b|m$OA3^?L`I@<1=JAYrPgQQiHkI|llkYxm zrDIb6rwOSkF}=4M-4`P zC{)~a93`yPe4MUdHt`7glca54`2GcLia^eN?mfom`jUpE!5JC8V-#3ecLZbJ!ovC< z7FHx@tI^1qB^DBc?R;WzLNY9_WLR8b$TrRT@0>@2e^i|UdHnLVm=JzMLcv00apkjIDaj#0j60(5s!`0)wQ-LV_w@u9n;ke`+S-5n3i2zxif<%s4KQ8op7OfEx@ z$&1lQbfp?DaNxoTr`&YMfmD^)(71Cq@We`Jx~XhDMi@~88a{U&(E@e?GyteCoxItN zd2Q*&BuYw^Zx)m)_j6)RctA%hNOR}Rv47UE>`~(MOJkLOiH#Q(TSs4hC zPY9wz`*dpO^tz|UeU5jy@6E6MM1I#+i7O`h6o12oDR99V1<^7+;`$&)nmrw9)GoNj5}Q^atFp<}_=Z)GHM72|wAqvf@2dM37Zs z?^Nd482vFjRhuE7P$@+%Bt`Iwp(B8Dinm^hd*-!-mn-#nMuzoOihM@$=2c2vpHcRi zw%70_}=<*7E_U`Yz*t>%FKnv6jN&v$M< z*nBt2BlrOcqKDXY{!FOl;IH%1_O@!5Bjg>%njuC5NbqJ2Q5!&lw|dCG0VH@uL*xd^ zS4NqG-O3C^Q!Jz6UDfX4x+!99wcAPUdhvm3&m;5zW1=BMR=gH<4<5cY4q=Lj8boFQS#N{FZj7K(KyRBXJ` zjqfDvR%pTYH18Jgl@SK$*G=0c7-v=kCP^iG{AJ;H zazBaB-4Y*bMfG_Vnphn77q3bBcAgb)A*H$SJT71X`5+g3PZrWCZzCy8%o|r#mZq@pWE_#zxzgPS^;hX*`YL z9Jl54uTA%C>79aF%tdXZDc(luoI8MgY$>;&X~nMxv9Vl-&v4jt)lU+nb8fB2Kk6_3 z51W)b5Qr8^)Qw8N#3M=Jk@w@~renpS zNQ~=R?KxdX(CgY=u4uFM2iu8PbW!^4?SxI*rTTsC9-DN&`bL=- z*sUq*4B=z(fjBgjQz8GQf^w>BKAuQlXY$JTB+~viB@7`_B7K#o_#p}40~x}nBtW<1 zaeiV#X%c<`-z}lI8#Bs}PN+;FgsX2F`Htk)&{EYc1LS{yRDNlI-t-?oRyF=j4SVkM zMZWAi^-rNYR+J@nExUPf#gbjF;TKmtp8XT!!ivW;yx*0l?t6W$@9(4TC)LH`)79>~ z_$Ld@jD$>fxbY zSR))jY&YlBhz3xZAOTj?CSM@&NRE51q(}mj!P}@%f&|TNWuk=#zFeYk;)dU1TK z@e6iv4JX^BTuVmngO_{Y!HT8Lo;;hONfO z`LnEtA-od8@emFQ!=yqu2*QmJzL`JE)x5aH%bAqzQcH(eBNFCaVz!tl3Dz}&LF7T{f*?dG=I1!){R5T63F&o`84mRROQ2k&Sr;?k-XJm^QkA=bKM#qgi;<^Pz(- zjEBpI4!RS(@O_8CHPS>B8 zF^Wiy^3%3_;oKD5Y28hpy8|58j$kgB3!zNo`;c@`ju|3^YQKj{4f;3DMX1!^eL*$y z*cgav?}SPX<^ZThemRCZpg9Yb8eFOR6;x`Ff$%+4f#g!wI5gg+T1i9RDN%0~H~IDU z9tPqFd=Ym`ykyx#T%Io2>cgRSldp4^as0bUA>1+!xtnsFyP4y=)@uPblS5xi9_23K z1g<4fxFsCYTFP$j29D3TS0Oi#LmMa0)?aGHy;c9JKbM7jZzc{_4Pembm;~VfPQ@oM zVxG%`C2Q?vIN$lR69hv1iPj&QgEqZFB7`K7{$*9NAfU z2C8WbJqS*w^Hba|s$Uq39Vx@%m59f%G;WuU5G2Pa-EXc)-Tf6%q7t>(v=!aa) zfE7qeDG}$DF9cKU${x>N_IcGlzK8vMziXxD5avZlgz1a^*)^Qi<8o5IUI@NzP| z)E&Y+f|on`XWN%P3zfyLCiezT0~57Fm{l3M%1f*W)8ppd*25593E_AM2TgNLg>Vpr z8zFoX!n+~-`Lj@G%xZEi+}#J^s*G&KIo1i|qvitZ!K_I8iZ-e zd=$d>AiNL4%OD(EK$r-O#D0KqJ%q18_$h>sLU@(G)L!-E5A(r$Ls#8bl4e_rIqpxw zPpTdZCiSEbAU0_CTjMxxPhuAXTZ+(AG639&@}|-O^ylWp=VqTe?UJQ+$#QYY zI<+=iO8}iGbTvxzP9K@}pemwU6&teY@=AyQc?#_&475 z-+QIPc@rKZTmN(Vbx2dySZ{u_!1qYey?v%hJE)nXsVxD9rXeEt(iAi?vIK!e>PY!;Z_P# z8yAuZKZ4Z8SIHhfYAE_|l3k~(3-!m7-KT33^eTr9+y<=KCY+K zXB;>y@lx72a8`n(0pq|~Nt05>L5Kz+^&^51O(uA%W<9|M={8#_(xBR?4<-N9e|(n{ zickq=*)L~-#_$nP$+?wUOO;=>~Yxb>;zAq=)kO>8C*r%Gc z;+8DW3>{J2(C^ac?Fq^@6h=fKYSeOFtdwDLsQXQ!&DaTMAa=K)7<|}pC)F>l5zXiv z+B8!VFty?W@oBnp5RYzl%@F&=bK?@(KfMI5tW#(=cf``m}tDZEhzlTJ_pX zMxfZN<~FCZYtlerm!1( zi9e&JtQ+{0c>B>Ymsi?c>ya_yD_z{8^pT1BwOCjF)F$CtyvDqp*)@jTr9Q&^atymm zGr|Nrk^*%f^TZgwK=Xllfq}RW3RFl3DJvQWPBRO@X$Cb(oyW^?_{fAr+xaC8g;L^aU8-k`f*+$2lot2 zjcO$^{qZ*xC`k&N9WI|GVaaCYKyKO7I-BD|C8a415&}EC4wVNwt39o_Y*^XaoIWk& zMB@WVxGZA;5~e>`r#akYl>^9l^<{l`EB>~+%A}K|%D@;Q9*hxaz!R7k16w~kpyXjaFB>9 znm`}WsPvbUF{SG3`V&s?ZgM7fnUva1y2&k*`gc++bvAfVU#URarZCvAFSE?ffAOJSKXGRb1%#4=lx71yi?vDFX7J7m z-=unG@XUggM2jIPE9@<#l@VDXI3?bk$^43exewZEn?PHQnfl2x+{)uH7Lt#uwwt}J zpK&lLtZm8xaEB7qVgqSastyUGKYW|&rOmG?z1D3t=M zJ#{g!!J4gh==H4#0;tEia$KqOG!*`soDivP}u{B zJl%eHdUZ>QUaWdyj<;^);Cq?RmG>oq?2tNay!KyfSQnxeTa_J4HtIkVY z*%5n{e@c906*2f#YMLIT_M^1(^t(jvQM$=`t;lVJdQEj&5+Iw?fnTL_w+3{PiYNz- zS0#zkd0(-OHPgvm zh}gl;7!>uQ|7#8>0~X|Wyfu!%>fjMzLAnoSKg4_`h#ky$h+82D7|eZ${X;NwkoOQD zAV3e!PQo0v;Ptv{%oXhokctOw)05WpA>z2#x4gU|)Hpeow`zzmPWp;hHG~_dtl-rT zc@Tlb&mBV6hE7-V3>0Vb&MEfU{wu5xlD{=Bkxo*WqzuKq(F9bL`7_M6Pq^_JuoSMl z)Y7(-oYOr*5@G-;9wGL*{uv;6)?icv`T-l@#(cmKfCG39Z?XU|Y6FZ;ASpJ0WrUD} z=<=Lk{-e5O%d;PMy5#_8@_hD9?`yf+yZ%{5kUY2X0K z+gL6o4N&&MqB*HG{;V8p^A)jI%AZPD3W1F-ig_guv&D&`UMUvYQbkaUYIX%P+dZsc zQ5aeA9S3LfZN_xaZW&**u%d_p#osLVVdj114o;@&Wb1M9nt}XI!9r9SEbRyTi5GR5 zCU6FQNu6d40{NOb&rnwdft{Jp(3=Iw&O9pWo!~S3DK^SOEwRSu`%lDXLt6NORWGCa zlkWk;Dal#Vg3JV3QM=65pAxScwb5#3^%8QmkBpJ|^h5Mtj6V5+hiK*OhfSBRwcEVZBCF42}O9D^sgPaOutkmlXeY-J0%9!v*W1rA6jo-A!S?hB4 zX@AB|s^Fres8DJIk0m99(ogZoQd}r)32&0rBh>o^k03?1QN4LlQr9;6KAta>@t9|o z-8SE>h_kA38?K+ZQrTbwLeUdgHUsQUPS2E>SISKD%%=HIKq%&8lp~Jr$}Mj8T1e4w z*EfTV>uhdr^EZRuG&0r)rh~A)7_T zd?5(7x5-dc(igmZM<_d7D?i207nW0@He0A~V|!$4$RJom2Eii563YWvIEk{#6t_ws zMc%h<6lU~-Zs!Tp90O4{zt^Rb6t60=_*p0ClUitdc+;Tl8$W_Nr`urkvsDOrz4$1t zuYOlMXf#jPgE#dE)tx)fft1Zj!mWb25isOm1Xk2n4U^mBepJ5UZ?^Z1xh#df@yRj5 zQq3#<#WCb>>Pr3DG1x`d>H8Q6Uv(ol-NA8kYYD!Zqr3$ibP_3%SIBWoqI?ar)U7(W zSh3f(J*t-B6?^)x)fR73w`OXUd*v~iPO*LWrV>RC$Y22__DlZ8!CTj?>jtNdfM*uQ%58$Z-*K-L?WAfu~vhz8_!GLFp z*XG=W>w+Bv@$bx~bn zDt7n|hu>EIVelUgzO6b8ZB#*0wW`8^8V*ROy(H~1jwFwmQuDDd8@~>mh&-)COYN#_ z=Ev68!zd`?`X)1?k;%aBx!x5dueZFjX2rN!+uL1tTAm|z>VCBHJ4n{HcDGzhE;3j5 z)|wN;03xHyUCTw}UEnXz>Ik$Ns!?&4KvbM=u{Ap;%(~S7thE$yr5d}^d<7U$Q>=TF z5g#ZY;lGgC6XBtFXRG;EcKcV7kdB7^=J-!M)ff+V1>xaQ(RVSa+sH7(2?Y+>a~%Y@)qL$ z70`v;6aqopp>OKP9r5~s_gOPKC33ZrW#b5oQh<+KZjEdP4Y!S4*Jke)>c8B`=Ae{V zf_w>|XYXKRj(`}`3-}3D%0N6-!1c+e_Oi8#eda4Y>_&3jVT^7W{XX z-+_XQlT{TVCi4Zt!XnfK{vu&n5ptdRp#E$-D4$>AZgEVhW{x1;1(WRxSa`|b@fN_s z%NoJYg@rfgA?90HcxOGt#lpgy{Sf;VEW8;H@hf2A%}v7m0Sm9H8Z#Xh-rd!x>AI6J zt#Mbh&tVxxUeWD^Sxp%C`U;j|+&Fm!OlpsD$cB5be4KH)i3w4F>45OuMEjOQi^a1|osh z9}JBG{<}RV7|^_+xrMLOLIVRd3p{{6gI_uS8t(xbpbKDej(0-zNw?O32iOVn1MGn2 zSJd+xYmt9RuE?tvT#^3^>yxrIPW)Mpx4kUKyOVv=P2~Ro8w11k!mv9q>=ziKg&~U| z90g%`rw#~z58-P!*CKz1A%DY=Z7^g342eAHHVp5u9EMzkA&(*a2ZVP*cnN$+CJdR= zjlU|ucV@1|Y!*ax=B>rO6L{NCjS)Q5E3NTE0TZ#Qn2+i}tA5PYLsMz(9CQCb+hT+a zr$6nzkuwzJ?~OLPa=Z>vgA|1lujJTN+!AwywZln0L^-PXOOnvTOa*~9Z|g1wOx9yo zt&?0%t5Ph3AJz&YdaAjmrmz;hQnSjmf`fWO3Nh6~t+%8B^#;iQRSjPTY-+zoK)aen zO~MAW#w=?R<-l(=zo{q(NR6IMXqhWe2Z7ciwvC*ocqoa=3OT93o7XlKPY~~Ge3;*~ zx=vEhXC7~L52Rj`=SVzcSp!&4ph=P((fu*cfr*Ti6~$oYTUId-iZJJO7Up&lYBiX4 zaJq;oz)da(ZZedrQzW$h=wjH)y7z-9F$$zkg&pWG%$w|6hY* zrIeWpC4TI1N&yHNLECAuI?qTc^(p4bBd&+WOV(;m;Sg~C}E#M(C$%X(vJhqZt zui9rxv(ltqy-^;DN9NCj#S?C~A+yt)45ETJVZtW2GjruyR(`8t&Z73~PE4%LG2 z8@rmNRh+a%4(3qt-wIp@XSHBr1(DDz1mu!EH?xB%$g z%kOoWuGz<3;+QnXssw??Gx~!v_qE=OOxq3qW3Un&v8@{fA?Zy}hH3;oRVYIpZ706f zMTzAy3XwX`lxd4i$m(@ZrN5Tv@h98AlzG>NpH`V{GwqjULAAk4<-ySC2T786!3z5x zQ0j(~R05Qwy#F>$1*yd1But1IFK(;G^ig)0*h82G`dkxZh*%qcK-FcyG9pTq4g;-~ zS*p@NEh_X!;0w-3nBR?0(|U-tV=i^%!^WZ^pBzesaqSRoBIb(1$1tNcG8OYRa6`(* zG1t_U;+2e&NCJ`B1Pe;=sOm1 z=d4+9qKPMgtbA zT_VgbwT1bmh_FkuhVliQQa>7O zJmG`--v{)aX}6$TWg3^{NM=X8wX`kBIxK4Sbw1c7$sENmeNT4aD*DQZOT* znhb0tVc|mD1wLI^mO}W=Tn2>4AGkA{10FU`4XS3YR&E1fd0uZUFQnNmiGG>4TXtP} zk`-Sa{-@%(qZk(p^o#;3<}09QOotBxqU?{_2;Pi*On2id;vkQT4zLtL<=12S%{QK7 ztZe0319dF?2=1rR$HZFp5$sI!8vT-5G>DU92WRy8@q+Sk<2zQ(9n9;+yuJA*lEJJ* zqDK$XYeOs1D*k*B;m4#PK>xq$bm^d|Am7UwW~L(jET_bUu#|tzAYN48Gku@@!Z?M4 zS?--~@^FL=NA{uW)#prc9O6s*byFZr<>)@_C;!2!228#7wGqi7OaLAC+UQ!`NAs^l zj~f8XV!VgWVXfjI{YezlQ1Xze3n1nA90DQS-O}$>g@6ZuMDTx&J_)Sp|E_`T^5z+pgr*E`i!iEEE{nv49M zL&a4k+_FA^OU!`%cITfcV0G3Ke8WhX_spo=^$ta zyJbaRRIZiyWyN1q5heJ3_If2AoCbFfV*|-oP1j-3;=hD0+0-ThNaJhMfc1n}NU2x6 zw5@7NpFpqHs;nHap91H@a@$icr{+Daw$;s6%?PrIS|{0Lj0_vUb-ryOV}-4#Rc>3$ zXtCwAp0X`xT(y-Y_?ggf7>MO7+XQLhix^RVapy1wk>Uswv|>-wrygk*)qnm zY~lTX%vtC5jC2WzRrqI=kBSLf9Gm${p|qv4Lq9xf3XCSp|HBHF6@;P$e2K6K$Q%3u zdrKBht9z#3ngzcCEl}1W9HG0L5)IR2#odT|!0FyNMCgUJ;=aM19r7dag=W}yReM$f znJ5~_L|{&NPIFh^F$PKHv-;jKNGkti^0TE2dE*G0AWt}Z9JNQV3IqUpCyQ;a(ln2dW${gGCLPZ_OL@ml@bn^^pDq16`_l&0EHycauh;Y#i84 zp>Q`th1hF1H`9S03k_G@wPg+pa$r%;(;sXlT+w}QP3HuRd!?z4NN{6ei`d@!~jy(6YO(eQmv1NBaLc6KVU;wp*$Zj1mFN(FF1u*02q}3 z;7EZZ1&+JnmqwtV(u!#puaEbu4)nV_r=92Y0%#n8K;_O zBZy+pDks}YWlJo%q!D>n;np{wzoh>BN6gAEHhj|)uxr*6HwEj}_9vu|@8mMFD|be- zS2sz+ozqNA^1j6@Y(^!~BTaY~t(sY&x&jT`vG-L6SZG<*LdlnWtp*g_IMf;|5}XOeMxsw~reROks8<@>ghwkh8&H@)3}d zaanOu@-`532pz$=^5@m0HDCJ{y}|O>x>JUKLjKOU&XL*^wN!q`5Z=RHs`v}4P|?51 z3k}HRU|;0|8@h&{gxW4xP$Nu2)@$h2ydm;Spxp%y`MxBtFy;=?ms0{v^dZ;f8xt7_IOHur$MO86Ag~7bsyZiQfP7T$V=GLksKwQh(~XTF zg}|$I4cDFnKHp?U^ftv15bJUq;Hho{q)Z4z%5hVP1T=v`lHP)`?{9TUg&Yghfo8D7 zRdtf6F?hbOluREBuEYIgAr8(Pz#KLoYWg5qnN`n;2h&PgH~BA~TNktKn#litRgCMe z@q4$8gUQIuF8_z5=vi-dlY`$|er)<+djmHG$jUnK^DNuobWT=%*JN;arQfewj$dT) zu%90GxnK1X?*9kwe+M_dxB56D*kK-9$G!3CZ*}SLK0m|zR0*^Eky!H(oGt`&%qVbz z4FH!{;CIh&ns>tgwIjqpNAfUhwZfehB#QV`b-{oDLcem4!Alf(1Tlx7 z-qf8RZx+s33(1B|`;js5 zU|nflF%(b)S-dC%zCCo4l3?&=$G=sa2eZL>L?{9(tO5s#9g9=EFfV}u1)~KjBxGnb zX<>kG#W8&+14q#Otd~Qj60BoVB$)oN3@BI<`=NVezD3j|Xh1iDlTI)PxsbXWiY*~o z(I@3e&^ni$gN-yNH5CnDG?thq;lRpgH;3#xc1^tEC+tMT^KC|Nw^>%*7r}PRDyvq6 ziPKoDN)gbnI$RX-#SlGXly>?0)0P>pNmjVjb_HYlh8d`;<*0X-#hoR~kykC>dpRW$ z!*L%FWtOO9@Q&-7QRB2ouv{gKQ@=EAXSt6>-B;aZp~u*hl>Y#gw|F7yD@(fm zi+`uh8fmtcps@}tPDGci?$ zt~cXXF}K%upoeKel*z#>ZL7-Qsja-wmeC95!#|4aLC3aUyV%ODEqD2#&HEW-4mZ-B z5vd1J_|e3W8ukZ5p#RQ$<)$y41GGb*PWFE~*#Re)Kb*;uEwPwohH&Jpphs15TXrssErhj4p_;`E>GTbiujBKUY+z zAzUG~AO%T0E*+ATQ3di2R#<;{0a$-e z?hn2Xo)SoVYnEFeBq`${NlEwN1~$V!%Trm)qV&fHqOj)cdc6!og|&>ra%00C(iEg1>y7(IKGj?)n!tyd56${TQ&|dM}qaofcXMyEg@2$Bzg&0%FvQ%kGP4_fF#&dx=AVB z)JxoGsb4pJ17tpes-s^i*V_WCgI28`3?6y*$1RI&w!b~kxt9efG?^R z+)Hl=u@5Be%3nD}rh9+}#%b|l;=F|DZBea|xSt@W(*|JZa~Sp)469nuuKX8a1?~$ojM@=J%q2_6k>meA%DY=Z7^g3 z42j$pH4N{t9EMzkA&(*a2ZVP*cnN$+CJceU=f8yn81fGcc?Uz@!;qr@1>qlVt7t0e#s8^!!>h}uP`xg2dHHxMd7X)3NM*y0aa1 z=tZ{oxXOk%ezMsunE0CqJ$u2h`J8qVJl0NP`>hHU#*Jj@d!cF&_&Um-(R+rA%?~VU zxWs6uuHp#i7a``s?IUn|dsLL_lI>gk$j+%jvdkjvcecYWBRe**+T%u$uPu*(LAh#< zFue#rd2}XWsbw?uA$>CUFr-7SIJRN`=C2T@jeMi$^={^+=X=(Aty(n59=WaWs&+YG ze&?ICaGDj#+nZK63STkbk!?^n^V|;m}$-$ENno1W3C=7Yd~%R1DkUUx3?hHcC8hGQ_mLb zTZyUUYjU2%!zmiT9#wC&7CNGxIRju)in3o80WVHx^6CO!+#J(B3Gm`#fEPytITa`h z&VyMDytwayl^e^5tiwOmtP{70fEVWuMM2=j9fYEwPXndQDC?r-cs(}qy8?2^GmM^+ zh}M`7h%{}5SUc=qN8W5K>hjKk+Tq%+poy3dm_%qNFPy+G)?70!2Q3sZJY8e!N3I#| zNB#xJYd4y~GyJ%icPLGKEZL(@cikn19AT132{EKorUEG_5-u^VmVzST3sbff6bZde zOQo(Iqh3JWdd*hxr7X-pYP0xU7U~~OoA_E5?gRCf3E2!%VFk)-&}iP6pVtCe?boEkxj$60N;^*}#(s^tY)GbYB7D{sI_@u!ndS90OxgYGcu$qs;SGU`d= zx5o;d(JMTdigtIhb~>}U9Z%N1WooKjc4;%1`x%H`y0{AC#}7}_T>s;^X76#7eb{IJ zICK2t4M}0;p%(!?Rz7?{{jHVDO+dE zT29=sb(mUua@c>RXIEHvjw7$9#B8cLr%wO5lC=H$H>?ltv4#GwQ+Fo&uJo72bmvG@ zo(OFG>ixEbJtxdx4oH_gjnePDY=cKzSju_{>6#R4D3loau@iqqd602DL9;Km`7@cK~SR?a^ zp`DX2vd!x(@5L3X&x=pEMC>Zo{3*WRg5USOdaALMba(3exG3d1mcObrK1$`zI<)sk z_6X)6Ke_0_{9f!u^(9j=$wRV&@||%#>F%;W)Eit1*DvW!HwHO8pp9}7=IZDo%w{-l z7Od#Z+d6aCdqb+TaO=9=XhX1b&epG5t_ecyjV^bh@d8Rs*4BW1*9|_-k|ca4e^@sy zs#Ljv)p5_?`zwEiNS?L}*g%bny?g3UD|dS~GtVJ#HYJ2&kS5plEm!-LsTeTZ9p(X;HhZAvQe(+al!a<0g> ztf_QsKv$9^S;pNu?|iqdtSNWvj<3fhq5aJNNJ=v}gcSCFK9q)Ya4DgEc(6SA>mM}( zKS|f=yHAjVXw-J{_RY&d{lFJ>-vP-DCLkmzY=EJ6s;`yQkS>-ALM-RONMs_jwnth4fk1UjoMr+3cf>IYRpE(ZvJFh!NUnVVABr{dyxlAYbb`Z0eOf|4Mzi)lnfMFmAgMa|-p1r?MkwTdxy!5u6r z?xZG4tyO8Q(oNH-m0GKyR%1)`_u)HtelvIG&fGh5|GRTL^O z`3#eHy*(cGfqGh==XoMz3r>zb_r1@(E?vXUsqr^#x9nql-VtQ@9#!Jxf#&8*zsPoz zr^xe`EDDd){4Rbz?kt{q)7d!(3ysm1(~Qr5SZE)1CucqN`EnPnG=7oJR~)l&1@Ejh zg1!90X!A#jke$KP7Mr#CMA!q~N}*!B|kxtLG{1GuWnW%9YhyQKj;SYh(3i5g35Dz9U%Ta%)TJ`_t*z&< z7Z{OBxnk-W6Z{%`2$JtCL&f^J2c*34ZSXY+3BfS4%$gW9%^ZTq=#m zp5TxjBb%duQ9w8_e8>x09W=x2zT zU9qpUW5i>-{7(jS2~RS+f=)8sLyLpTMa4lqxffHNFRRwHkL~?OqX)(VSAlhp{w7Xz z0cfwIy^b~lZ3NmwXb+*Ci*_#Br)Zzf`jIA7188@m-HA3AZ7$mTXz!yPfp!GivuMvg zx{aK`SvqP~dChp~?VN)zrJuofmpuWU4 zx3=ge)P^%^vu=_O+skST`bggyMmmX!!u|Z$l2M=@f;zCbn%Dsr0y=i!x93p;Ic97) zcvQ(^u;DPIRvv>52fpZNp2sO{W?abgS%S@sLwR0-+$%_nj;ck)=s5?i7De1E9pSZ^ zWwiGW)YFtvsgB`_v@&|8VUVS{%cGIEP9s(eBO&>##%9Lk=TwIyRWa^4Jd^hw&-Wv|(TL2@l836ME4O8|4Ga)-V9#i*0<#Z>I3)}~qp?F%Ak=HW?Scv7s zSPq|7-7k)cnmLgh9`p;Dc)D(0m2n!pHDb=k(e$~LyWIB$ni;nyw7Vb zXJY$Z$c`4=tV$R&C&fK-PD%rNXy8pKiOzA<(7&8@O+Qn8O+Pa6k?j`@D~3Ah0t_7s zby60HjQRyfp-?KoP&0;xVc2&VmJb2b6b!*i$1o%Z;iCu-L-?nL-mlyKgs}|9syap) z4!caKqm*$b+2+)Fm$ARL<pY*c4%==e&u$N@xS^Q={0fW#E&*$R|A4XB zgQVNXJL7v3+=VHm5A4ru(mHAYXDh@>quseBOlkBfyN3 z-by+vN8w^C@uTsK^F%5A1^9_Bce8H&w!h-Jj$-vni#)HBS^d*u&g(-V;hp^kck9gB zqBo?$vc!l=qb3W{>iok@oUhl=lQ8?Rwq8s7!A;_9dr^C@t!&H6?vZy{xKqNTH2JhRzHZJ*!WCE+G!Ge_{Ee z!*i6e%<^T2?|JYx9PRKpZ@ey9(VOg6JSL5iExI%9G4YbD_)a1CcV%nu)MqN)!DP@P@n(A;VX@~Kk z>Rc%vuzyz_C?)2Ax%+e}^`7CL>Ub%6?N&MMm>JmmE49q9j0*NMYMBYx0vLU$Wt#!> z0ZQ3c?x5!epa!a>Y)F>!fk6Nl@CSrIP{b(r(5aQ>qFW1la(AOXHTkS~LbN;WIpz6f&l8D=;ScKIwaj&Yvp@_J!d;~d)(^b3ETZncZh7XQK1i_LTw2GmOW$Q+Yi zRF_QQn6G}aZd{+&HdBb`vt-Y0=2@Z*$-Y@8uISTbk1X>v(dJ~IK-{$oDg^tvPbI4= z0!vsz$%G1a3eFW}xQ0}v6%m={qfT~(Pl@2ZR8T=qiCUyP<`Q&-FT!~d-;Ur9V}H?872#$&Egy0(tOV@;Au>%4iKuaOg`M#g06BIHpD*?th` z4^(8N5E?o2q!o3(^{hXnlj?}|oB_7)UDBSK4oV}Q_nz9XI#>2Gs-z{f1E_kPkm6a) z%eSSA{j2gz=qC*U&gpgBi{XLf+46kF)Ozw0)SNC;5-$cvVef#`6d9$T3>G91A5TXO z@sv(RHh;6N(CSfDm_&VPm}A*h>id8nD_PdbxfoHPeJ5X_7~e`9CNET^w~|lGS1Tq~ z5|+s)Dl#icf6H_4NGi!b@)bQ=H!F!VMl!3Do5a2(nbzr_#9bp<+9_;h{U=H93~J?& zaY!4Rzd_nFYF24PDm02CEP6MulDAho6%wd1sq`6kq2;I_WH0tvE8zXfhW$`?SxxDVn4tUM8l51iA(0)WJ#~I$n(?LWx;n-!t0C_-^*V3LDh!Aw6Q4|#jOIzDgkTkUl9*u2;elm$2mp3_HNyLBP!m>ED@ zW&mmc6R-s^0-FKE%MgE#_;bYj*guQ9_`o253-|*m9zXM7#a`&pEXRgKqx0)qVA1M z6Q9!U7yGA$pVB`T)6;^N=;~dGV9fQ+G8aLs6qoBtNkN@(Kli<4Rb5aCiz=C*WTixU z;&S!qsg3jw6lCfq%GkB}JZe5@KbopMOTeTsTuCZHZGbOo19+$nun%=s^u~0AHImOc zUW>L?5g+ppNK=(Gy!sl?X&}@|l|zU$^efJ5t~e%9D1fl&Bq(;84Nwm47XVemJ2nhD zo)z$>_j|M8&Fc3;z4Z0a{!TPHOZz+V=y;*C6U&^d!Q$}{{_NY<-+?}9p9!6l{hnRu z%HFGg(6~^B0AELz&9}M{*fp-GDBleiyAP!ugRG=KSX78FHupeTAq0NK*bP!wI*KO_P}R%6KM{vk>XnTjFH`-hk@ zWCn)()xXLL3>nLVcN4s0`n_TBE{6Bt{)xGmxK@0u>8*yD?sOy{&86EZ~y*re2iO< zaUuQV`gKl~6;^#GkO;hdB%{v)9=Y~YA3fSn<)Y=H-HvvweUexB^+{f9Yq+coBbU|3 zix4#o1Oz}J)JjKAl_Z1!LxE^u^i)Yt`fiPC3nO~ZQhDC#-4PHSJqan&TS7>YY9U4H z1#jOJ$d=0CjT69Ygf|`DqHv5|0$tKvL-YJ|S?m9^O^4>_2>~=mH$#bZfxIiIZw9=} z`n^JU_3-+``%5VFN#{Vd^sJ$rSACRm=*n4R`9G^KptHh$l(77oFtCq3b3t?T<$J0X z)hlg{Zj^Goo_|ogw|6FVG3( z{brdS&h{-B6Z)0(=qAkg+t433BW~`G^ASh#v0yeAo#p5}VWBg%e?~ZFT<`ykbbQ9S z{?0^nR`z!?(Rq)~^!_hR?eFw|=}dg;k!Gyg*#D_)tikVJKCyqXFf8U02ed{7qqD8Q z^Y^+{ZQm@4JsMf_)z$U~QOj4XSfN^>+0&$2vEq{zbg@_@5=V(ef`+bNf7SjvXuM*?V&hW#11sKfF#FcXR-C-w$tecaD4^YTY$~RWM9iI_v>HAS~>ho#viZC%JP4C`eWCSo43DgnSEvN+*#k;9DDoPj+4Y!Wo7S6 zMd&W}>hDs5(T(T#cP;(hmw~UQWqk9L{eJMlC()+ePhx`#AIB_yA09Gyi3Td#J!l)p-t|NdAgLiZyOO3nHjq1g0Wui6>-iTHUw-1RwUy~Z8gr@J%X zAZi^L!#Ga!7z;nri8l2!0mDC78Y!TOvF2+zQuZ4tsNq@_PhM<|$a z{4H;N&T9MuxQ|@Gj6%3W;O4K-`4{g0FatmCnM7K;tX9-IDvwn#NX$6yi|{6duOiGw zI1S-?gbNVH>@5giNB9xK9tg`2-iB~Kt6&diPeu3;!rxQ(O=lvs5us@ag)xrb!Z&@2 zZ@LsSS7K&0!dg-5c?GLr27X8!!aEU8r!M^AiSEoZPif(@1D50GC*R4L5nFon1iN+m zeb1kcG$J%gTKGdc-0`JHS9$$(#GkTodJsl`VLARRy7cHj9zPxVfKlPn!eNp-IX=AB z>3Yh-AHLO{ncs}{C>scF$igIy7)_$KeScOO9Ni zj{KoiI(6Ar(V_FXwbOo$=s5gB_&A%%SaKv0Baev=t!mDh>fBc_QoCuv6H4IWPq|gC zaJ0Ztae4`9>-`%ZDaz=Go|5Cc+o!>i+3%PJM;RPT;kXUQMFkvcIMU&W?{{RuF&~Zv zaGdOS^sg}ojzTyV_dEL6SOmvvI9|e0-M_{sa7=_FsNd1Q#ymLY!m+pCfi)5?ct{!f!%N-nXH4nTzYmEH z{gYlh?Z4R4x)1Euw2!8bh5NTmUEfa83FeKHb_}f(J^n0@^{SG!K4m*&T;n8a@a+;^ z?c5~@Z9piC^(rHbv2qu>1?Yw_RvzTnhYzA2__|W}UCAoxydio^(q~G=uA8BeQ|1Wj z!@p!q-ky(e8N$mE-h}Wpgu^1I{EqNzgjXV5jqqCOyi*!WQocg5D+aR#2%8a>BdkWa z0^#)tXCaK)I}rW`;n@f;L3ky?I)w4r$1pnw;iCvoM|eKM%Mjj(Fh2VjX5T}259Pqu zqY#>bP$NP!6}!qrkyD2A>cjm#CU4)2nc)aeL-;dG(vL+52S-jhgK#0j$EgP<&6Psw z6YdbW@z3xx+<#$~FJ?`|tnHYUuh{im964nQZaf0 z{=xA3-f-)~|HG&$_}Tc24~UGMLc^M$!`1&Y&2ZtP7GbUN)G=QV(lwSeSR&3%yR+R} z_$G9P$Es~?xb|Bj284A_dLeid`UOUf(KS9UmS!&5i;*+$Y)=t&PrAlfwXFqisWkId zttDb*9^B&YNrC(~plm`gEM0f?lt9AeUMwb59v(K{Dou(LD z9n%z)%D&6o>-lWc?PmuEx~+?jXnU7U^Qq1s@k4uVe`f|dBlh>`tVO|$QQx@_;nig~Pgb=zM2AOF#a^Cwxumz z7a>KN-a@~~d8oOsj;{)Nt39h8TNQDc`qJ@nT{T^7Ad9T-KpAJOro%On1!Xd;X|FV? zf+Z8ae{}g>ag35+7f_`EN2+__o$I|VE`)Mm>b8B;Ne$(?{^?Mw{ni)f&+Q%srF{BMhc;>}G z+9*qr9Yc25mne#k5yI?~6yu-H8G`&wB0x>B`<=O`>~RlX^^3=y1&q zbx4zVxb_H0IKt0po~fgog3oAoffpxix#lPE;)E>Mo>z}(ig>H}$K`)V0$v

YcRb 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%0A-xr`9!_c# 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%0DCef5rC8{}$WyA?Yrw#I^epkJJ*|aOvuy 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 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise.lock deleted file mode 100644 index 7f76861f9a3fdfdaa7c7ce4be72bbace13b97005..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216 zcmWe|wu*6$aY-$UaVttq4GQrOjtS2%%FfJ7cg`=UGzQA#=EnpCIGdOl#7AW2Wad@G zhh-L(q*j>5yE{9_#K%_@6vt#1r^Xal7MG;v##f{y>6hdd=mUj#xqxPeq~;dHggY7- y7#bMH8yFa&u;EscXp0`$bhn~R1+UUP1w$hRLo+KAODj_Y1tS9kOI|J>25kUW9!3uU diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/HierarchicalDesign/HDProject/HDProject deleted file mode 100644 index 61cf52f920d64109b3dff0f4812a335941aacaf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 321 zcmb742HW+|Bmr6FJ9}%QBhHEWonQ}+l{u4?bmBMx1)#;Gzob_-c*P*75rX3 zf=OavSm;Q&6YET5gVZaZG+xfZw5oFD1Fylui9$f@1Cj-Y8Vir$YYV2}#>ye?4x2qJ z(3G&1GS8>#Oqy(?j^qM1Gqsiy$W$5)+E4^4E%=uA8TPONA;BNZ-^;^C1O-+=drXl2AD)TA$Zu!+H0*x5iM*|Gm%5 z?ViseQL7qc`R-=t^_gepHa6t*^~P5lR!wzPs$7%4RR!Id!q_`nJo@DRK{>_E(z~3F zbm&+5t@f31mKICgC!$IR8sqB(`lvHDg~r8BxC@>3(=!#WsUx?#^vc)~g=`J9e>SUegIC!APYF0qr(VLV0 zB~{@b<{+TG3eL+BGp5A=dX1gH!n9Og({`cl1n&Msy(|lP@u4hK7&|}ROh2}$Ge-<= zUUjbM#S7YvxrpfyAD)X3XYnYRiWI%857DjiMp*<^Ihs}M)6{I|u5ebITBgj^MUmXW z6~w%G*?-+Xx!hs_xIQp;>`334DpXVp9RC?bt~gI96N}=*xoN2ze00eBpukCvl2tb+ zskaimq8_5TVkP2LmrmTA3g>RPZd&Enl74byDGQf^W;U3D=3HLXSBURDXs(@X( z04J%TgYP4!EBg)TB)C%G&IA#eieuV=EVp!3%|N3FNd4-z8GygTh#c60Q;Q6{eQz~6`|O>Xz)BYMUh~$D_t0Q znWtkj%n03?E`I#JlN^t_0Dy>5>+JU5+9MCj1H3he%=n2YMvsvK@mH=`Q?L)vpn@De zCh*i$yhZ@?j)b<{cuaF|f*N8G2u)64Tau*$7=1VkXtrJ(*tFeNrncv?9!t^%(9c zRBECx^c@=F-OKZn{>f2RGfV>KTva4gQGr@VG&dNuDnd2&L~K^{JfUIDM7EswmQj$@ zNXP<)A&3bbyb7L|k($Q>)Wc;SKaesO`=J>rAen~u5CI6H#b)$$sb6n#yrnr%UA-Q~ zG{|7)8=5M&$Wv#eeevJ6{kmR+14W?A9X=xAnMo1w>2 zrK>2)Sv7qNo*VOuyW6@Q{WvgKKGc2lNSZH>$|xPH)6z4zlr1&O_Dwj;GA280rOLtt zwy5MC{OM;||G2K|K{4qc2q!T>)(W0{81z~;L}_yTKWi1f`y{l-Yny3py-UZ+0&9S! zBg{>Jh^Yoshw04GD5gc>mnz((*-=ecWo12z3lmWBPTvY=1+JJ34aVWy__nZl!lb&D zc81!QHuUdHP0!XWK&DI2;2maD1qVmM6$+El%ZRG|!ywL!cV3m8^bdWD#>&gGncsk( zw4S!JDUgf+A)fH`&y9V74hb!&DkLA7Oz1fNRU7v?kk%>%88{1_}MC z;wx-WdQ_*exneG8E;u`T_-k%NM?0s#cd+o`zXh;mbY@8c=W|_Q0l9iO8nBu$t6-FC z@11|bBr#M&klIk^ir-7HhhTx>J%~A-xJBz1ujcg(Df}GMz65=MCgxzil*3{ cDbt^8+H{O#ifhl_qow?<8cyh-z5Hza1MrurlmGw# diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main deleted file mode 100644 index 336370f8091a49f5e89f82fedc83a9ed04bd24ac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25 VcmZQzU}9nb;{Q;<00ev>0sw562oC@N diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/ProjectNavigator/dpm_project_main/dpm_project_main_StrTbl deleted file mode 100644 index 359501c5e254de720bb0edd97879dcdaa4c50d01..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10 NcmZQz00RyN1^@se00{s9 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Current-Module deleted file mode 100644 index 8947873d0af86aefd32bad2f1c40d57033091203..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27 XcmZQzU}9nb;{Q;<00fL6f`JhLd|Lny_T*f!EcE^S z4;rsO(R_<6yz#*oKl}+GkRXByA(Sw}iNHpr(I}#cA(lAexgmi>>?Co^9rrwllX>Kc zXI{i9ypl>9={U$BlPt2yQJ%{idE`?-Aw?8ZLMdgG>mToYP@!8TRa9%Q5!X^jJqqoh|!AN`^M1{q?Q5%DNvjLScDonTTlC7NbNWM`H+ z=C#{cFuKT+e3=y`tE{ok2Ak%xWptYzcG+W}1G67;#Id?3oN^{V=YmW5m)^eO8h!zw CA~(YT diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__OBJSTORE__/xreport/Gc_RvReportViewer-Module-Data-system_StrTbl deleted file mode 100644 index 02f66d942f60e7f5a4c4f780965baac5a8640c39..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22889 zcmd^HTXWh-7S7}Tj4oa>n;L`3Z4#HADH~rx4aOAU9j9umR07&qYu&0PY?FVo|8`Gb z)l#cLzy!!_o*Z3{PJeyw=QOWgv48(~_1{;=zrO@Ndcq{}qVVK(vwrv*;cy&Hyl{H* z`gVAE@agsMUtS#(97iNQc=GUbq8_g`>mO_A%PVyJfZYiu@E1BhcT;=~@85fP^5yN} z;pcu=)Au?Wd!6?~fa~C+I8i_{_&$H^5(#d6MGbxS?I5PYh;3;F9^!3-BOy zgZRsB_!vgd;c>&bBY9|tUh28N_k9r?`a`gchFZt*D4NXKdgzj;B$~y@cSqPish#7* zn}+BHK%@5<0Kg*s8+lnuZHeDA1+-SHG;VV6#s+AY0~)9OH&*IWM0@H*vD>y z8_84H2wb>uNigmYZw8HX97K&?tM&f

yZ?Uijkt%Ofd%`QTi&T8%tg|K?lZBpmYk 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 Pw|8hLgn@+s&A2n zJ05uAg*QI<;)g#01QLXeU_y+B5=J-?L=r_bF~kx_JP9O{gdGRTq>xG)>EaAB$s(H^ za>*l~0tzWoUQ7w4lu=Fvl~hqp4Ykza#6`XS(x7Q0O*AWM5x3GtI~{b=MK?Y4(nmi7 z3^JsRVQq{s${6EJFsWop$uu*fS>~8$fkp8W%dE&(HCb2GazddU^n+$gIQCo3gEZ!+!J@ zuT8SAk{yf@1a>!BIxL<#EEcJQ1OD@`gZ~|z{P`S(=n<1FNMdw~-W+w`zd<-&CaWM` zvj?~H%fnA^{``D!LU5W8diWUNr%ZJ@?HqMKb`ZS1$NmbF&j*PAoSgdPKnbxbWuSq^Dq>ERxk0V6)MzNwP^%=r3@1+BwHru#V9U_=LSPt8sbQgs1=%JzKY5uLMfaXYVMk%nJ!bdG)5Iq^j|@=rT=ewg8o0gmCL$?`CuI6}~peMVt0 z)F*39OJ4NaS-Pb`7<}jBMH-!Bw6sl={Rt*_35oo8iHn9yUp861^Z_bxc#y;yC4Lao z3}!=)zw~93#dA!-CSIW_j|9V9@r`Ngq{o84gbK=KY2<%@e)(>ya zCL~EQ5Ep~D%6Jb}y3Zt~n)A>HnVrI9>C=RqcCPyq4_$m{%fC1}wRjqoE5k=5Pu^YzX7 z?dZb$GQ61fr-Luw>fEhH;d&hiY4hXSPt%+mMp!aIE5+YU>C>}j1}J?vo9m*34op3m zNq_21hU1&txp(%B{pO8tug@-~KLGOpKJ+2m0W|TKiq!D zz^#%f?V5aHD{-(yqFD3d6f+vbY}q_Lig8z$9&gknBK#V$7BqXs z;(I5ycIjY;6uS}5>*u{S5P8aLL4*Yrw)kw_oKT0P$HF#N9cdEs< zqiL4+aO-pWPb#B^~9b;lLmtgAy5k~T?=g8dh2+!ABITw{t-lg{T8H(kP+?cIg1C%5xHyZ z)x~iGpXwTpwebb|nOXVIK3k7crWKd`V*Ro#Ni|k_JN2|m+1+dlswS)HYOT%mmeva7 z!eTC}Vud>PJV{YkyYs-++RJMY5)waK!kD#_3 zr2*^^dHG*tN9=!v4}Nu8!INr>vReNoz{DrZ`z_+Njx2!n-LP2Ms@68ck(-02`Hx}S zYy}Ofp|XbBZLrTbejIbURjs}L>XDWHSKME^3pZ@oD{ob6c$7TJYNu@#IvIvbTGd*e zsA9XOBs3R4hE=x}Z&2;i%K%DSMT4xDVbp8|Z8L&ggHn3P@&)o6A&RF!;;2N<_rWb?Z zYXAk9!-fO5Jffb|)!@n2gR z|IIO8;d@}f1h+V6i56t}him*}E91Wd^2v3R%L_jLy_NA#$LMMURc6iTGTg-p z{nX0%AIGRqu#c_?yY#@6CRYSwZe6$h(aJd7>OlO6(I-j|44ZlwuJNPy?W{wLx(5u} zX8udT`cXUU5Tt`7z6;hH!ZSKhM8XanMRKg>x?sIskRCylf^~MtTs$$Z!QL)Pk04Bq z(_FOJBArDVK~=zRhN&aaY5no765A4S?((iunB8)Z>bILnpX0{>sz$~T^OU&wPHB{0 zdy2x$YZk;lx7Xf*U)Y9G6sRB}s#+0^z|pI%GLpaBahbKxR|PYa(JLIo)_`NPn^hsy z(Zbhc!31SYzMCx*f@?hGEc+agGBLsa1MJwNgly3*J66+n95OXk8OtC4+ z=pmer^JGPz?P{IekyLQ)0L|_(+}}{2uLj1>!^NxW*;oD(7q@ag%IBGQUgeRN)hPw6 z%rWMz8Me>250BB$bGX(ciUw8JeTvnAiX^FG|1Afh$5;|)I7>EAQ`Pxk?x(kJ5rVW0 zu7rU5MJpA!2)%t~vhHig005P|_)PWywoT6~}>1rSLlE@hZ9& z2v!7Ftt~yUZ?qLh!pr9}YK<}2k1K`t9>e9u5Ec5*-50`wGkj51wYQsgSzQgOOb8Zh z*hNbRoQZn6YHoR;aW5o0%UW6P1ewFJ5}e&cPiK*3&bpzZ^n5x%D@|S*5W%9H?>)E?q{k$88cY3NPY%x?H0suo5q2Y2>HsT<0E3&ad^C!Jtm{};Ty->y%ktJcG0vhONIOzX>|E4+SL&+_ zuKCmFG=zK=GD0)(ZKzqsY^aJ2zcD<5_@F=r|);WDgll_3J&Rwv>tm zH?|WiYlge45RPx82m6o>EbmDIcg-`XO@;op;LCku{8g|n!v~KT8L6sNtXXFAT3#(v zqdgqUuH;v&@^0a3r?tK;$oGdV1r)G40t(wkSb(FVh`Qi+$qjcAuKmYk@!QL&Zx4dN z$k^!GBvxh44i-W7MBuA%du0k1xNfk>60tpLHuE}1a&jll|4eF8!jKT_MG|4heJP(6ZR!XS#Dup3N3X; zEsACxtKvSFA!u|hdi8Pr!S5!7EW zig|yZ^;aL_(6dZA^iELU)T~M}q$0x2uC|H@xAu10Um}~m#p)Wk?xZKbL@d7!Bfc8_ G`QZNuOk=SC diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/Autonym/regkeys deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys deleted file mode 100644 index 6b9df1847ee..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/HDProject/regkeys +++ /dev/null @@ -1,24 +0,0 @@ -CommandLine-Map - -s -CommandLine-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/system.ngc -uc system.ucf system.ngd -s -CommandLine-Par - -s -CommandLine-Xst - -s -Previous-NGD - -s -Previous-NGM - -s -Previous-Packed-NCD - -s -Previous-Routed-NCD - -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/HierarchicalDesign/regkeys deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys deleted file mode 100644 index 4bd7af1202f..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ISE_VERSION_LAST_SAVED_WITH -11.1 -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys deleted file mode 100644 index f90e0607f3b..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ProjectNavigator11/regkeys +++ /dev/null @@ -1,6 +0,0 @@ -ISE_VERSION_LAST_SAVED_WITH -11.1 -s -XISE_FILE -system.xise -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys deleted file mode 100644 index 87cda855f52..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/XSLTProcess/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/XSLTProcess.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys deleted file mode 100644 index 70eaf0b72c9..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/_ProjRepoInternal_/regkeys +++ /dev/null @@ -1,21 +0,0 @@ -ISE_VERSION_CREATED_WITH -11.1 -s -ISE_VERSION_LAST_SAVED_WITH -11.2 -s -LastRepoDir -E:\my_projects\Wittenstein\release\svn\main\FreeRTOS\Demo\PCC440_Xilinx_Virtex5_GCC\__xps\ise\ -s -OBJSTORE_VERSION -1.3 -s -PROJECT_CREATION_TIMESTAMP -2009-06-11T19:26:19 -s -REGISTRY_VERSION -1.1 -s -REPOSITORY_VERSION -1.1 -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys deleted file mode 100644 index 949818c6173..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/bitgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys deleted file mode 100644 index dae1ec74d53..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/bitinit/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/bitinit.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys deleted file mode 100644 index fac2f6efe86..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/common/regkeys +++ /dev/null @@ -1,12 +0,0 @@ -IncrementalMessagingEnabled -true -s -MessageCaptureEnabled -true -s -MessageFilterFile -filter.filter -s -MessageFilteringEnabled -true -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys deleted file mode 100644 index f3969b3ea31..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/cpldfit/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/cpldfit.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys deleted file mode 100644 index 7e5b4bbcd93..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/dumpngdio/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/dumpngdio.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys deleted file mode 100644 index 77fa32d329a..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/fuse/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/fuse.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys deleted file mode 100644 index e654ecd77a8..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/hprep6/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/hprep6.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys deleted file mode 100644 index 7b9c3214a38..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/idem/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/idem.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys deleted file mode 100644 index a2612daebe2..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/libgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/libgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys deleted file mode 100644 index 447e64cb99d..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/map/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/map.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys deleted file mode 100644 index b15e57f9706..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/netgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/netgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys deleted file mode 100644 index 2cb66e46713..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngc2edif/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngc2edif.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys deleted file mode 100644 index af67ad18649..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngcbuild/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngcbuild.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys deleted file mode 100644 index 47ac460f454..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/ngdbuild/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/ngdbuild.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys deleted file mode 100644 index 17ae8fbf3d2..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/par/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/par.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys deleted file mode 100644 index d4497d267ef..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/platgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/platgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys deleted file mode 100644 index d5e13d0a748..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/runner/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/runner.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys deleted file mode 100644 index e12ea3860cc..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/simgen/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/simgen.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys deleted file mode 100644 index fc0b0383246..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/taengine/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/taengine.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys deleted file mode 100644 index cffe0cfaa0d..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/trce/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/trce.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys deleted file mode 100644 index 52a3e8bb03d..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/tsim/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/tsim.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys deleted file mode 100644 index 2d5cd6a1f48..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vhpcomp/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/vhpcomp.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys deleted file mode 100644 index 9a5c2fab9fd..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/vlogcomp/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/vlogcomp.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys deleted file mode 100644 index c3f895c3925..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xpwr/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/xpwr.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xreport/regkeys deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys deleted file mode 100644 index 5b1ae90bb07..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/__REGISTRY__/xst/regkeys +++ /dev/null @@ -1,3 +0,0 @@ -ClientMessageOutputFile -_xmsgs/xst.xmsgs -s diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version deleted file mode 100644 index 9ec2fe0a6f4..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/system_xdb/tmp/ise/version +++ /dev/null @@ -1,10 +0,0 @@ -REPOSITORY_VERSION -1.1 -REGISTRY_VERSION -1.1 -OBJSTORE_VERSION -1.3 -ISE_VERSION_CREATED_WITH -11.1 -ISE_VERSION_LAST_SAVED_WITH -11.2 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/ise/xmsgprops.lst deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt deleted file mode 100644 index 55880074d8a..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/libgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex5 -msg __xps/ise/xmsgprops.lst diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt deleted file mode 100644 index 58d810347af..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/platgen.opt +++ /dev/null @@ -1,2 +0,0 @@ - -p xc5vfx70tff1136-1 -lang vhdl -msg __xps/ise/xmsgprops.lst - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt deleted file mode 100644 index f61f00059b4..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/rtosdemo_compiler.opt +++ /dev/null @@ -1,20 +0,0 @@ -ppc440_0 -RTOSDEMO_SOURCES = /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 -RTOSDEMO_HEADERS = -RTOSDEMO_CC = powerpc-eabi-gcc -RTOSDEMO_CC_SIZE = powerpc-eabi-size -RTOSDEMO_CC_OPT = -O0 -RTOSDEMO_CFLAGS = -D GCC_PPC440 -mregnames -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_PROFILE_FLAG = # -pg -RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi -RTOSDEMO_CC_INFERRED_FLAGS= -mcpu=440 -RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE= -RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE= - $(RTOSDEMO_CC_INFERRED_FLAGS) \ diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt deleted file mode 100644 index 953cc8cf825..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/simgen.opt +++ /dev/null @@ -1 +0,0 @@ - -p virtex5 -lang vhdl $(PPC440_0_BOOTLOOP) -msg __xps/ise/xmsgprops.lst -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/ diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters deleted file mode 100644 index 327e6408872..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.filters +++ /dev/null @@ -1,121 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui deleted file mode 100644 index b115db30794..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.gui +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml deleted file mode 100644 index bcd8c1da036..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/system.xml +++ /dev/null @@ -1,4197 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PowerPC 440 Virtex-5 - A wrapper to instantiate the PowerPC 440 Processor Block primitive - - - - - - Unique Processor ID - - - Reset Value for Endian Storage Byte Ordering - - - Reset Value for User Defined Storage Attributes: Tattribute[4:7] - - - Interrupt Mask for Crossbar-related Interrupts - - - Arbitration Priority for all CPU Fetch Requests - - - Arbitration Priority for all Speculative CPU Fetch Requests - - - Arbitration Priority for all CPU Fetch Requests Initiated by ICBT Instructions - - - Arbitration Priority for all CPU Cacheable Load Requests - - - Arbitration Priority for CPU Non-cacheable Load Requests - - - Arbitration Priority for all CPU Load Requests Initiated by DCBT Instructions - - - Arbitration Priority for an Urgent CPU Load Request - - - Arbitration Priority for CPU Write Requests Initiated by flush Instruction - - - Arbitration Priority for CPU Write Requests Initiated by store Instructions - - - Arbitration Priority for an Urgent CPU Write Request - - - - - - - - - - - - - - - Internal DCR Register Base Address - - - Internal DCR Register High Address - - - APU Controller Configuration Register Value - - - UDI Configuration Register 0 Value - - - UDI Configuration Register 1 Value - - - UDI Configuration Register 2 Value - - - UDI Configuration Register 3 Value - - - UDI Configuration Register 4 Value - - - UDI Configuration Register 5 Value - - - UDI Configuration Register 6 Value - - - UDI Configuration Register 7 Value - - - UDI Configuration Register 8 Value - - - UDI Configuration Register 9 Value - - - UDI Configuration Register 10 Value - - - UDI Configuration Register 11 Value - - - UDI Configuration Register 12 Value - - - UDI Configuration Register 13 Value - - - UDI Configuration Register 14 Value - - - UDI Configuration Register 15 Value - - - Base Address of Memory - - - High Address of Memory - - - Mask Used to Determine a Row Conflict - - - Mask Used to Determine a Bank Conflict - - - Control and Configuration for the MC Interface - - - Secondary Arbitration Priority for all Instruction Fetches from CPU - - - Secondary Arbitration Priority for all Data Writes from CPU - - - Secondary Arbitration Priority for all Data Reads from CPU - - - Secondary Arbitration Priority for SPLB1, DMA2 and DMA3 - - - Secondary Arbitration Priority for SPLB0, DMA0 and DMA1 - - - Memory Control Interface Arbitration Mode - - - Max Number of Quad-words per Burst thru Xbar to MC Interface - - - C_MPLB_AWIDTH - - - C_MPLB_DWIDTH - - - C_MPLB_NATIVE_DWIDTH - - - Watchdog Counter Threshold - - - Secondary Arbitration Prio for Instr Fetches - - - Secondary Arbitration Prio for Data Writes - - - Secondary Arbitration Prio for Data Reads - - - Secondary Arbitration Prio for SPLB1, DMA2, DMA3 - - - Secondary Arbitration Prio for SPLB0, DMA0, DMA1 - - - MPLB Arbitration Mode - - - Allow MBusy to Block MPLB - - - Max Num of Quad-words in Bursts - - - Allow Locked Transfer - - - Allow Read Addr Pipelining - - - Allow Write Addr Pipelining - - - Allow Posted Writes - - - C_MPLB_P2P - - - Enable Watchdog Timer - - - C_SPLB0_AWIDTH - - - C_SPLB0_DWIDTH - - - C_SPLB0_NATIVE_DWIDTH - - - SPLB Support Bursts - - - Allow SPLB0 to Access MPLB Addr - - - Number of MPLB Addr Ranges - - - Base Addr - - - High Addr - - - - - - - - - - - - - - - - - - - - - - - - - - - Number of Masters - - - Mid Width - - - SPLB Allow Locked Transfer - - - Enable SPLB Read Pipeline - - - Propagate MIRQ Signals from Xbar onto SPLB - - - Use P2P - - - C_SPLB1_AWIDTH - - - C_SPLB1_DWIDTH - - - C_SPLB1_NATIVE_DWIDTH - - - - - - Allow SPLB1 to Access MPLB Addr - - - Number of MPLB Address Ranges - - - Base Addr - - - High Addr - - - - - - - - - - - - - - - - - - - - - - - - - - - Number of Masters - - - Mid Width - - - - - - - - - - - - - - - Number of DMA Channel - - - - - - DMA 0 - - - - - - - - - - - - - - - DMA 1 - - - - - - - - - - - - - - - DMA 2 - - - - - - - - - - - - - - - DMA 3 - - - - - - - - - - - - Enable the Auto-lock Feature for the DCR Indirect Mode - - - Synchronization Mode for the External MDCR Interface - - - Synchronization Mode for the External SDCR Interface - - - Generate Timing Constraint to Resynchronize SPLB MBusy Outputs - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JTAG HALT - - - JTAG HALT INV - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - JTAG TCK - - - JTAG TDI - - - JTAG TMS - - - JTAG TRST - - - JTAG TDO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Trace Trigger Event In - - - Trace Branch Status - - - Trace Clock - - - Trace Execution Status - - - Trace Status - - - Trace Trigger Event Out - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processor Local Bus (PLB) 4.6 - 'Xilinx 64-bit Processor Local Bus (PLB) consists of a bus control unit, a watchdog timer, and separate address, write, and read data path units with a a three-cycle only arbitration feature' - - - - - - Number of PLB Masters - - - Number of PLB Slaves - - - PLB Master ID Bus Width - - - PLB Address Bus Width - - - PLB Data Bus Width - - - Include DCR Interface and Error Registers - - - Base Address - - - High Address - - - DCR Address Bus Width - - - DCR Data Bus Width - - - External Reset Active High - - - IRQ Active State - - - <qt>Number of PLB Clock Periods a PLB Master that Received a Rearbitrate from an OPB2PLB Bridge on a Read Operation is Denied Grant on the PLB Bus</qt> - - - Enable Address Pipelining Type - - - Device Family - - - Optimize PLB for Point-to-point Topology - - - Selects the Arbitration Scheme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XPS BRAM Controller - Attaches BRAM to the PLBV46 - - - - - - Base Address - - - High Address - - - Native Data Bus Width of PLB Slave - - - PLB Address Bus Width - - - PLB Data Bus Width - - - Number of PLB Masters - - - Master ID Bus Width of PLB - - - PLB Slave is Capable of Bursts - - - PLB Slave Uses P2P Topology - - - Smallest Master Data Bus Width - - - Device Family - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - - - - - - - - - - - - - - - - - - XPS UART (Lite) - Generic UART (Universal Asynchronous Receiver/Transmitter) for PLBV46 bus. - - - - - - Device Family - - - Clock Frequency of PLB Slave - - - 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 - - - PLB Slave is Capable of Bursts - - - Native Data Bus Width of PLB Slave - - - UART Lite Baud Rate - Baud Rate - - - Number of Data Bits in a Serial Frame - Data Bits - - - Use Parity - - - Parity Type - - - - - - - - - - Serial Data In - - - Serial Data Out - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XPS General Purpose IO - General Purpose Input/Output (GPIO) core for the PLBV46 bus. - - - - - - 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 - - - Device Family - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - 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 - - - - - - - - - - GPIO1 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO2 Data IO - - - - - XPS General Purpose IO - General Purpose Input/Output (GPIO) core for the PLBV46 bus. - - - - - - 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 - - - Device Family - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - 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 - - - - - - - - - - GPIO1 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO2 Data IO - - - - - XPS General Purpose IO - General Purpose Input/Output (GPIO) core for the PLBV46 bus. - - - - - - 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 - - - Device Family - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - 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 - - - - - - - - - - GPIO1 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO2 Data IO - - - - - XPS General Purpose IO - General Purpose Input/Output (GPIO) core for the PLBV46 bus. - - - - - - 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 - - - Device Family - - - Channel 1 is Input Only - - - Channel 2 is Input Only - - - GPIO Data Channel Width - GPIO Data Width - - - GPIO2 Data Channel Width - - - 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 - - - - - - - - - - GPIO1 Data IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GPIO2 Data IO - - - - - XPS IIC Interface - PLBV46 interface to Philips I2C bus v2.1 - - - - - - Output Frequency of SCL Signal - - - Use 10-bit Address - - - Width of GPIO - - - PLBv46 Bus Clock Frequency - - - Width of glitches removed on SCL input - - - Width of glitches removed on SDA input - - - Base Address - - - High Address - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - PLB Address Bus Width - - - PLB Data Bus Width - - - Native Data Bus Width of PLB Slave - - - Device Family - - - - - - - - - - IIC Serial Data - - - IIC Serial Clock - - - - - - - - - IIC General Purpose Output - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XPS Multi-Channel External Memory Controller(SRAM/Flash) - Xilinx Multi-CHannel (MCH) PLBV46 external memory controller - - - - - - Device Family - - - Number of Memory Banks - - - Number of MCH Channels - - - Arbitration Mode Between PLB and MCH Interface - - - Include PLB Slave Interface - - - Include Write Buffer - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - PLB Slave Uses P2P Topology - - - PLB Data Bus Width - - - MCH and PLB Address Bus Width - - - Smallest Master Data Bus Width - - - Data Bus Width of MCH - - - MCH and PLB Clock Period - - - Base Address of Bank 0 - - - High Address of Bank 0 - - - Base Address of Bank 1 - - - High Address of Bank 1 - - - Base Address of Bank 2 - - - High Address of Bank 2 - - - Base Address of Bank 3 - - - High Address of Bank 3 - - - Page mode flash enable of Bank 0 - - - Page mode flash enable of Bank 1 - - - Page mode flash enable of Bank 2 - - - Page mode flash enable of Bank 3 - - - Use Falling Edge IO Register in Interface Signals - - - Data Bus Width of Bank 0 - Data Width - - - Data Bus Width of Bank 1 - - - Data Bus Width of Bank 2 - - - Data Bus Width of Bank 3 - - - Maximum Data Bus Width - Maximum Data Width - - - Execute Multiple Memory Accesses To Match Bank 0 Data Bus Width To PLB Data Bus Width - - - Execute Multiple Memory Accesses To Match Bank 1 Data Bus Width To PLB Data Bus Width - - - Execute Multiple Memory Accesses To Match Bank 2 Data Bus Width To PLB Data Bus Width - - - Execute Multiple Memory Accesses To Match Bank 3 Data Bus Width To PLB Data Bus Width - - - Bank 0 is Synchronous - - - Pipeline Latency of Bank 0 - - - TCEDV of Bank 0 - - - TAVDV of Bank 0 - - - TPACC of Bank 0 - - - THZCE of Bank 0 - - - THZOE of Bank 0 - - - TWC of Bank 0 - - - TWP of Bank 0 - - - TLZWE of Bank 0 - - - Bank 1 is Synchronous - - - Pipeline Latency of Bank 1 - - - TCEDV of Bank 1 - - - TAVDV of Bank 1 - - - TPACC of Bank 1 - - - THZCE of Bank 1 - - - THZOE of Bank 1 - - - TWC of Bank 1 - - - TWP of Bank 1 - - - TLZWE of Bank 1 - - - Bank 2 is Synchronous - - - Pipeline Latency of Bank 2 - - - TCEDV of Bank 2 - - - TAVDV of Bank 2 - - - TPACC of Bank 2 - - - THZCE of Bank 2 - - - THZOE of Bank 2 - - - TWC of Bank 2 - - - TWP of Bank 2 - - - TLZWE of Bank 2 - - - Bank 3 is Synchronous - - - Pipeline Latency of Bank 3 - - - TCEDV of Bank 3 - - - TAVDV of Bank 3 - - - TPACC of Bank 3 - - - THZCE of Bank 3 - - - THZOE of Bank 3 - - - TWC of Bank 3 - - - TWP of Bank 3 - - - TLZWE of Bank 3 - - - Interface Protocol of Ch 0 - - - Depth of Access Buffer of Ch 0 - - - Depth of Read Data Buffer Depath of Ch 0 - - - Interface Protocol of Ch 1 - - - Depth of Access Buffer of Ch 1 - - - Depth of Read Data Buffer of Ch 1 - - - Interface Protocol of Ch 2 - - - Depth of Access Buffer of Ch 2 - - - Depth of Read Data Buffer of Ch 2 - - - Interface Protocol of Ch 3 - - - Depth of Access Buffer of Ch 3 - - - Depth of Read Data Buffer of Ch 3 - - - Cacheline Size of Ch0 - - - Write Transfer Type of Ch0 - - - Cacheline Size of Ch1 - - - Write Transfer Type of Ch1 - - - Cacheline Size of Ch2 - - - Write Transfer Type of Ch2 - - - Cacheline Size of Ch3 - - - Write Transfer Type of Ch3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Memory Address Bus - - - Memory Chip Enable Active Low - - - Memory Output Enable - - - Memory Write Enable - - - Memory Byte Enable - - - Memory Advanced Burst Address/Load New Address - - - Memory Data Bus - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Memory Reset/Power Down - - - Memory Qualified Write Enable - - - Memory Chip Enable Active High - - - Memory Linear/Interleaved Burst Order - - - Memory Clock Enable - - - Memory Read Not Write - - - - - - - - - PLBv46 IP Interface (IPIF) to LogicCORE PCI Express Bridge - Bridge between the PLBv46 IPIF and the Xilinx LogiCORE PCI Express Interface core - - - - - - Device Family - - - Number of IPIF devices - - - Include Registers for Each IPIF BAR High-order Bits to be Substituted in Translation. - - - Number of PCI Devices - - - Number of Lanes - - - PCI Configuration Space Header Device ID - - - PCI Configuration Space Header Vendor ID - - - PCI Configuration Space Header Class Code - - - PCI Configuration Space Header Rev ID - - - PCI Configuration Space Header Subsystem ID - - - PCI Configuration Space Header Subsystem Vendor ID - - - Completion Timeout - - - Device Sub Family - - - Master Address Bus Width - - - Master Data Bus Width - - - Smallest Master Data Bus Width - - - Native Data Bus Width of PLB Master - - - Master ID Bus Width of PLB - - - Number of PLB Masters - - - Smallest Master Data Bus Width - - - PLB Address Bus Width - - - Base Address - - - High Address - - - PLB Data Bus Width - - - Native Data Bus Width of PLB Slave - - - PLB Slave Uses P2P Topology - - - IPIF BAR0 Base Address - - - IPIF BAR1 Base Address - - - IPIF BAR2 Base Address - - - IPIF BAR3 Base Address - - - IPIF BAR4 Base Address - - - IPIF BAR5 Base Address - - - IPIF BAR0 High Address - - - IPIF BAR1 High Address - - - IPIF BAR2 High Address - - - IPIF BAR3 High Address - - - IPIF BAR4 High Address - - - IPIF BAR5 High Address - - - Remote PCI device BAR to which IPIF BAR0 is translated when configured with FIFOs - - - - Remote PCI device BAR to which IPIF BAR1 is translated when configured with FIFOs - - - - Remote PCI device BAR to which IPIF BAR2 is translated when configured with FIFOs - - - - Remote PCI device BAR to which IPIF BAR3 is translated when configured with FIFOs - - - - Remote PCI device BAR to which IPIF BAR4 is translated when configured with FIFOs - - - - Remote PCI device BAR to which IPIF BAR5 is translated when configured with FIFOs - - - - IPIF BAR 0 Address Size - - - IPIF BAR 1 Address Size - - - IPIF BAR 2 Address Size - - - IPIF BAR 3 Address Size - - - IPIF BAR 4 Address Size - - - IPIF BAR 5 Address Size - - - Remote PLB device BAR to which PCI BAR0 is translated when configured with FIFOs - - - Remote PLB device BAR to which PCI BAR1 is translated when configured with FIFOs - - - Remote PLB device BAR to which PCI BAR2 is translated when configured with FIFOs - - - Power of 2 defining the Size in Bytes of PCI BAR0 Space - - - Power of 2 defining the Size in Bytes of PCI BAR1 Space - - - Power of 2 defining the Size in Bytes of PCI BAR2 Space - - - Type of Board - - - Device Name - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Processor Local Bus (PLB) 4.6 - 'Xilinx 64-bit Processor Local Bus (PLB) consists of a bus control unit, a watchdog timer, and separate address, write, and read data path units with a a three-cycle only arbitration feature' - - - - - - Number of PLB Masters - - - Number of PLB Slaves - - - PLB Master ID Bus Width - - - PLB Address Bus Width - - - PLB Data Bus Width - - - Include DCR Interface and Error Registers - - - Base Address - - - High Address - - - DCR Address Bus Width - - - DCR Data Bus Width - - - External Reset Active High - - - IRQ Active State - - - <qt>Number of PLB Clock Periods a PLB Master that Received a Rearbitrate from an OPB2PLB Bridge on a Read Operation is Denied Grant on the PLB Bus</qt> - - - Enable Address Pipelining Type - - - Device Family - - - Optimize PLB for Point-to-point Topology - - - Selects the Arbitration Scheme - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XPS 10/100 Ethernet MAC Lite - 'IEEE Std. 802.3 MII interface MAC with PLBV46 interface, lightweight implementation' - - - - - - Device Family - - - Base Address - - - High Address - - - Clock Period of PLB Slave - - - 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 - - - Duplex Mode - - - Include Second Transmitter Buffer - - - Include Second Receiver Buffer - - - - - - - - - - Ethernet Transmit Clock Input - - - Ethernet Receive Clock Input - - - Ethernet Carrier Sense Input - - - Ethernet Receive Data Valid - - - Ethernet Receive Data Input - - - Ethernet Collision Input - - - Ethernet Receive Error Input - - - Ethernet PHY Reset - - - Ethernet Transmit Enable - - - Ethernet Transmit Data Output - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PowerPC 440 DDR2 Memory Controller - A wrapper to instantiate the PowerPC 440 DDR2 Memory Controller - - - - - - Bank Address Width of DDR Memory - - - Number of Generated DDR Clock Pairs. - - - Data Bus Width of DDR - - - Column Address Width of DDR Memory - - - Number of DDR2 Memory Ranks - - - Number of Chip Select in DDR2 Memory Rank (a.k.a log2C_NUM_RANKS_MEM) - - - DDR2 Data Mask Width - - - C_DQ_BITS - - - DDR2 On Die Termination Width - - - Additive Latency of DDR2 Memory - - - Support ECC Logic - - - Setting for On Die Termination - - - DQS Bit Width - - - DDR2 Strobe Width - - - Row Address Width of DDR Memory - - - Burst Length of DDR Memory - - - CAS Latency of DDR Memory - - - Include Support for Registered DIMMs. - - - Clock Ratio between CPMINTERCONNECTCLK to DDR2 Clock - - - Memory Base Address - - - Memory High Address - - - TREFI of DDR - - - TRAS of DDR - - - TRCD of DDR - - - TRFC of DDR - - - TRP of DDR - - - TRTP of DDR - - - TWR of DDR - - - TWTR of DDR - - - Clock Period(ps) of MIB Clock - - - IDELAY High Performance Mode - - - SKip 200us Power-up Time for Simulation - - - Number of IDELAYCTRL Primitives (V4 only) that are explicitly instantiated - - - LOC Constraints of IDELAYCTRL Primitive - - - Read Data Pipeline - - - IO Column Location of DQS Groups - - - Master Slave Location of DQ IO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - XPS System ACE Interface Controller(Compact Flash) - Interface between the PLBV46 and the Microprocessor Interface (MPU) of the System ACE Compact Flash solution peripheral - - - - - - Base Address - - - High Address - - - Width of System ACE Data Bus - - - 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 - - - Device Family - - - - - - - - - - Address Input - - - Clock Input - - - Active high Interrupt Output - - - Active LOW Chip Enable - - - Active LOW Output Enable - - - Active LOW Write Enable - - - Data Input/Output - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Clock Generator - Clock generator for processor system. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PowerPC JTAG Controller - JTAGPPC wrapper allows the PowerPC to connect to the JTAG chain of the FPGA. - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 - - - Device Family - - - - - - - - - - - - - - - - - - - - - - - - - - XPS Interrupt Controller - intc core attached to the PLBV46 - - - - - - Device Family - - - Base Address - - - High Address - - - PLB Address Bus Width - - - PLB Data Bus Width - - - PLB Slave Uses P2P Topology - - - Number of PLB Masters - - - Master ID Bus Width of PLB - - - Native Data Bus Width of PLB Slave - - - PLB Slave is Capable of Bursts - - - 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt deleted file mode 100644 index 53ea0c72f27..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xplorer.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc5vfx70tff1136-1 data/system.ucf 7 0 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt deleted file mode 100644 index b8fbf7ab12d..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/__xps/xpsxflow.opt +++ /dev/null @@ -1 +0,0 @@ - -device xc5vfx70tff1136-1 data/system.ucf 0 diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd deleted file mode 100644 index 110f5ced590..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/svg10.dtd +++ /dev/null @@ -1,1704 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css deleted file mode 100644 index 0d7b46bd6e5..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.css +++ /dev/null @@ -1,446 +0,0 @@ - - text.bif_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.debug_label { - fill: #555555; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - text.ionum_label { - fill: #555555; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iogrp_label { - fill: #000088; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - tspan.iogrp_label_super { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - baseline-shift:super; - font-family: Arial Courier san-serif; - } - - text.p2pbus_label { - fill: #000000; - stroke: none; - font-size: 10pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - writing-mode: tb; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.multip_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - writing-mode: tb; - font-family: Verdana Arial Helvetica sans-serif; - } - - - - text.bc_iplabel { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.bc_iptype { - fill: #AA0017; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.splitbus_label { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: sans-serif; - } - - text.sharedbus_label { - fill: #000000; - stroke: none; - font-size: 10pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - - text.p2pbus_label_horiz { - fill: #000000; - stroke: none; - font-size: 6pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - - - text.key_title { - fill: #AA0017; - stroke: none; - font-size: 12pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Helvetica sans-serif; - } - - text.key_header { - fill: #000000; - stroke: none; - font-size: 10pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Helvetica sans-serif; - } - - text.key_label { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.key_label_ul { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - text-decoration: underline; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.specs_header { - fill: #000000; - stroke: none; - font-size: 10pt; - font-weight: bold; - text-anchor: start; - font-family: Arial Helvetica sans-serif; - } - - text.specs_start { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: start; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.specs_middle { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.intr_symbol { - fill: #000000; - stroke: none; - font-size: 8pt; - font-weight: bold; - text-anchor: start; - font-family: Arial Helvetica sans-serif; - } - - text.busintlabel { - fill: #810017; - stroke: none; - font-size: 7pt; - font-style: italic; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mpmctitle { - fill: #FFFFFF; - stroke: none; - font-size: 16pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Verdana Helvetica sans-serif; - } - - text.mpmcbiflabel { - fill: #FFFFFF; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - - } - - text.buslabel { - fill: #CC3333; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iplabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: 800; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.iptype { - fill: #AA0017; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: start; - font-family: Times Arial Helvetica sans-serif; - } - - text.procclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - - text.portlabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipdbiflbl { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmMHeader { - fill: #FFFFFF; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmSHeader { - fill: #810017; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.busintlabel { - fill: #810017; - stroke: none; - font-size: 7pt; - font-style: italic; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mpmctitle { - fill: #FFFFFF; - stroke: none; - font-size: 16pt; - font-weight: bold; - text-anchor: middle; - font-family: Arial Verdana Helvetica sans-serif; - } - - text.mpmcbiflabel { - fill: #FFFFFF; - stroke: none; - font-size: 6pt; - font-style: normal; - font-weight: 900; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - - } - - text.buslabel { - fill: #CC3333; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.iplabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: 800; - text-anchor: middle; - font-family: Courier Arial Helvetica sans-serif; - } - - text.iptype { - fill: #AA0017; - stroke: none; - font-size: 8pt; - font-style: italic; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: start; - font-family: Times Arial Helvetica sans-serif; - } - - text.procclass { - fill: #000000; - stroke: none; - font-size: 7pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Times Arial Helvetica sans-serif; - } - - - text.portlabel { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.ipdbiflbl { - fill: #000000; - stroke: none; - font-size: 8pt; - font-style: normal; - font-weight: bold; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmMHeader { - fill: #FFFFFF; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - - text.mmSHeader { - fill: #810017; - stroke: none; - font-size: 10pt; - font-style: normal; - font-weight: bold; - text-anchor: middle; - font-family: Verdana Arial Helvetica sans-serif; - } - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg deleted file mode 100644 index c7e3fcaecc2..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/blockdiagram/system.svg +++ /dev/null @@ -1,1078 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - plb_v46_0 - - - - - - - - - - xps_ethernetlite - Ethernet_MAC - - - SPLB - - - - - xps_gpio - LEDs_8Bit - - - SPLB - - - - - xps_gpio - LEDs_Positions - - - SPLB - - - - - xps_gpio - Push_Buttons_5Bit - - - SPLB - - - - - xps_gpio - DIP_Switches_8Bit - - - SPLB - - - - - xps_iic - IIC_EEPROM - - - SPLB - - - - - xps_intc - xps_intc_0 - - - SPLB - - - 0 - - - - - xps_mch_emc - SRAM - - - SPLB - - - - - xps_sysace - SysACE_CompactFlash - - - SPLB - - - - - xps_uartlite - RS232_Uart_1 - - - SPLB - - - 1 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - clock_generator - clock_generator_0 - - - - - - - - - plbv46_pcie - PCIe_Bridge - - - SPLB - - - MPLB - - - - - ppc440mc_ddr2 - DDR2_SDRAM - - - PPC4 - - - - - jtagppc_cntlr - jtagppc_cntlr_inst - - - JTAG - - - - - proc_sys_reset - proc_sys_reset_0 - - - RESE - - - - - ppc440_virtex5 - ppc440_0 - - - MPLB - - - SPLB0 - - - PPC4 - - - JTAG - - - RESE - - - - 0 - - - - - - - - - SLAVES OF plb_v46_0 - - PROCESSOR - - - - - bram_block - xps_bram_if_cntlr_1_bram - - PORTA - - - - - xps_bram_if_cntlr - xps_bram_if_cntlr_1 - - - SPLB - - PORTA - - - - - - - - - - - - - ppc440_0_SPLB0 - - - - - - - - ppc440_0_PPC440MC - - - - - - - - ppc_reset_bus - - - - - - - - - - - - - - - ppc440_0_jtagppc_bus - - - - - - - - - - - - - - - - - - x - - - - - - x - - - - - y - x - - - - - KEY - - SYMBOLS - - bus interface - - shared bus - Bus connections - - master or initiator - - slave or target - - master slave - - monitor - External Ports - - monitor - - output - - inout - Interrupts - - interrupt - controller - - interrupted - processor - - interrupt - source - x = controller ID - y = priority - - COLORS - Bus Standards - - DCR - - FCB - - FSL - - LMB - - OPB - - PLB - - SOCM - - Xilinx P2P - - USER P2P - - - - - SPECS - - EDK VERSION - 11.1 - - ARCH - virtex5 - - PART - xc5vfx70tff1136-1 - - GENERATED - Fri Jun 12 17:10:55 2009 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IP - - - - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt deleted file mode 100644 index d8575bc5412..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/platgen.opt +++ /dev/null @@ -1,7 +0,0 @@ --p -xc5vfx70tff1136-1 --lang -vhdl --msg -__xps/ise/xmsgprops.lst -system.mhs diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.make b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.make deleted file mode 100644 index 5cb4f00931b..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system.make +++ /dev/null @@ -1,278 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -# Name of the Microprocessor system -# The hardware specification of the system is in file : -# C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mhs -# The software specification of the system is in file : -# C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.mss - -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 " libs : Configures the sw libraries for this system" - @echo " program : Compiles the program sources for all the processor instances" - @echo " " - @echo " init_bram: Initializes bitstream with BRAM data" - @echo " ace : Generate ace file from bitstream and elf" - @echo " download : Downloads the bitstream onto the board" - @echo " " - @echo " sim : Generates HDL simulation models and runs simulator for chosen simulation mode" - @echo " simmodel : Generates HDL simulation models for chosen simulation mode" - @echo " behavioral_model : Generates behavioral HDL models with BRAM initialization" - @echo " structural_model : Generates structural simulation HDL models with BRAM initialization" - @echo " timing : Generates timing simulation HDL models with BRAM initialization" - @echo " " - @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 " 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) - -exporttosdk: $(SYSTEM_HW_HANDOFF_DEP) - -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) - -clean: hwclean libsclean programclean 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 __xps/$(SYSTEM)_routed - -simclean: - rm -rf simulation/behavioral - rm -f simgen.log - rm -f __xps/ise/_xmsgs/simgen.xmsgs - -swclean: libsclean programclean - @echo "" - -libsclean: $(LIBSCLEAN_TARGETS) - rm -f libgen.log - rm -f __xps/ise/_xmsgs/libgen.xmsgs - -programclean: $(PROGRAMCLEAN_TARGETS) - -################################################################# -# SOFTWARE PLATFORM FLOW -################################################################# - - -$(LIBRARIES): $(MHSFILE) $(MSSFILE) __xps/libgen.opt - @echo "*********************************************" - @echo "Creating software libraries..." - @echo "*********************************************" - libgen $(LIBGEN_OPTIONS) $(MSSFILE) - - -ppc440_0_libsclean: - rm -rf ppc440_0/ - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDemo_program: $(RTOSDEMO_OUTPUT) - -$(RTOSDEMO_OUTPUT) : $(RTOSDEMO_SOURCES) $(RTOSDEMO_HEADERS) $(RTOSDEMO_LINKER_SCRIPT) \ - $(LIBRARIES) __xps/rtosdemo_compiler.opt - @mkdir -p $(RTOSDEMO_OUTPUT_DIR) - $(RTOSDEMO_CC) $(RTOSDEMO_CC_OPT) $(RTOSDEMO_SOURCES) -o $(RTOSDEMO_OUTPUT) \ - $(RTOSDEMO_OTHER_CC_FLAGS) $(RTOSDEMO_INCLUDES) $(RTOSDEMO_LIBPATH) \ - $(RTOSDEMO_CFLAGS) $(RTOSDEMO_LFLAGS) - $(RTOSDEMO_CC_SIZE) $(RTOSDEMO_OUTPUT) - @echo "" - -RTOSDemo_programclean: - rm -f $(RTOSDEMO_OUTPUT) - -################################################################# -# BOOTLOOP ELF FILES -################################################################# - - - -$(PPC440_0_BOOTLOOP): $(PPC440_BOOTLOOP) - @mkdir -p $(BOOTLOOP_DIR) - cp -f $(PPC440_BOOTLOOP) $(PPC440_0_BOOTLOOP) - -################################################################# -# HARDWARE IMPLEMENTATION FLOW -################################################################# - - -$(BMM_FILE) \ -$(WRAPPER_NGC_FILES): $(MHSFILE) __xps/platgen.opt \ - $(CORE_STATE_DEVELOPMENT_FILES) - @echo "****************************************************" - @echo "Creating system netlist for hardware specification.." - @echo "****************************************************" - platgen $(PLATGEN_OPTIONS) $(MHSFILE) - -$(POSTSYN_NETLIST): $(WRAPPER_NGC_FILES) - @echo "Running synthesis..." - bash -c "cd synthesis; ./synthesis.sh" - -__xps/$(SYSTEM)_routed: $(FPGA_IMP_DEPENDENCY) - @echo "*********************************************" - @echo "Running Xilinx Implementation tools.." - @echo "*********************************************" - @cp -f $(UCF_FILE) implementation/$(SYSTEM).ucf - @cp -f etc/fast_runtime.opt implementation/xflow.opt - xflow -wd implementation -p $(DEVICE) -implement xflow.opt -ise ../__xps/ise/$(SYSTEM).ise $(SYSTEM).ngc - touch __xps/$(SYSTEM)_routed - -$(SYSTEM_BIT): __xps/$(SYSTEM)_routed $(BITGEN_UT_FILE) - xilperl $(NON_CYG_XILINX_EDK_DIR)/data/fpga_impl/observe_par.pl $(OBSERVE_PAR_OPTIONS) implementation/$(SYSTEM).par - @echo "*********************************************" - @echo "Running Bitgen.." - @echo "*********************************************" - @cp -f $(BITGEN_UT_FILE) implementation/bitgen.ut - cd implementation; bitgen -w -f bitgen.ut $(SYSTEM); cd .. - -$(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 -p $(DEVICE) $(MHSFILE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) \ - -bt $(SYSTEM_BIT) -o $(DOWNLOAD_BIT) - @rm -f $(SYSTEM)_bd.bmm - -$(SYSTEM_ACE): $(DOWNLOAD_BIT) $(RTOSDEMO_OUTPUT) - @echo "*********************************************" - @echo "Creating system ace file" - @echo "*********************************************" - xmd -tcl genace.tcl -jprog -hw $(DOWNLOAD_BIT) -elf $(RTOSDEMO_OUTPUT) -target ppc_hw -ace $(SYSTEM_ACE) - -################################################################# -# EXPORT_TO_SDK FLOW -################################################################# - - -$(SYSTEM_HW_HANDOFF): $(MHSFILE) __xps/platgen.opt - mkdir -p $(SDK_EXPORT_DIR) - psf2Edward.exe -inp $(SYSTEM).xmp -xml $(SDK_EXPORT_DIR)/$(SYSTEM).xml $(SEARCHPATHOPT) - xdsgen.exe -inp $(SYSTEM).xmp -report $(SDK_EXPORT_DIR)/$(SYSTEM).html $(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 \ - $(WRAPPER_NGC_FILES) \ - $(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 ################## - -implementation/$(SYSTEM).ncd: __xps/$(SYSTEM)_routed - -$(TIMING_SIM_SCRIPT): implementation/$(SYSTEM).ncd __xps/simgen.opt \ - $(BRAMINIT_ELF_FILES) - @echo "*********************************************" - @echo "Creating timing simulation models..." - @echo "*********************************************" - simgen $(SIMGEN_OPTIONS) -sd implementation -m timing $(MHSFILE) - -dummy: - @echo "" - diff --git a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make b/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make deleted file mode 100644 index 78aad320843..00000000000 --- a/FreeRTOS/Demo/PPC440_Xilinx_Virtex5_GCC/system_incl.make +++ /dev/null @@ -1,151 +0,0 @@ -################################################################# -# Makefile generated by Xilinx Platform Studio -# Project:C:\E\Dev\FreeRTOS\WorkingCopy3\Demo\PPC440_Xilinx_Virtex5_GCC\system.xmp -# -# WARNING : This file will be re-generated every time a command -# to run a make target is invoked. So, any changes made to this -# file manually, will be lost when make is invoked next. -################################################################# - -XILINX_EDK_DIR = /cygdrive/c/devtools/Xilinx/11.1/EDK -NON_CYG_XILINX_EDK_DIR = C:/devtools/Xilinx/11.1/EDK - -SYSTEM = system - -MHSFILE = system.mhs - -MSSFILE = system.mss - -FPGA_ARCH = virtex5 - -DEVICE = xc5vfx70tff1136-1 - -LANGUAGE = vhdl - -SEARCHPATHOPT = - -SUBMODULE_OPT = - -PLATGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(SUBMODULE_OPT) -msg __xps/ise/xmsgprops.lst - -LIBGEN_OPTIONS = -mhs $(MHSFILE) -p $(DEVICE) $(SEARCHPATHOPT) -msg __xps/ise/xmsgprops.lst - -OBSERVE_PAR_OPTIONS = -error yes - -RTOSDEMO_OUTPUT_DIR = RTOSDemo -RTOSDEMO_OUTPUT = $(RTOSDEMO_OUTPUT_DIR)/executable.elf - -MICROBLAZE_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/microblaze/mb_bootloop.elf -PPC405_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc405/ppc_bootloop.elf -PPC440_BOOTLOOP = $(XILINX_EDK_DIR)/sw/lib/ppc440/ppc440_bootloop.elf -BOOTLOOP_DIR = bootloops - -PPC440_0_BOOTLOOP = $(BOOTLOOP_DIR)/ppc440_0.elf - -BRAMINIT_ELF_FILES = $(PPC440_0_BOOTLOOP) -BRAMINIT_ELF_FILE_ARGS = -pe ppc440_0 $(PPC440_0_BOOTLOOP) - -ALL_USER_ELF_FILES = $(RTOSDEMO_OUTPUT) - -SIM_CMD = vsim - -BEHAVIORAL_SIM_SCRIPT = simulation/behavioral/$(SYSTEM)_setup.do - -STRUCTURAL_SIM_SCRIPT = simulation/structural/$(SYSTEM)_setup.do - -TIMING_SIM_SCRIPT = simulation/timing/$(SYSTEM)_setup.do - -DEFAULT_SIM_SCRIPT = $(BEHAVIORAL_SIM_SCRIPT) - -MIX_LANG_SIM_OPT = -mixed no - -SIMGEN_OPTIONS = -p $(DEVICE) -lang $(LANGUAGE) $(SEARCHPATHOPT) $(BRAMINIT_ELF_FILE_ARGS) $(MIX_LANG_SIM_OPT) -msg __xps/ise/xmsgprops.lst -sd implementation/ -s mti -X C:/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/ - - -LIBRARIES = \ - ppc440_0/lib/libxil.a - -LIBSCLEAN_TARGETS = ppc440_0_libsclean - -PROGRAMCLEAN_TARGETS = RTOSDemo_programclean - -CORE_STATE_DEVELOPMENT_FILES = - -WRAPPER_NGC_FILES = implementation/ppc440_0_wrapper.ngc \ -implementation/plb_v46_0_wrapper.ngc \ -implementation/xps_bram_if_cntlr_1_wrapper.ngc \ -implementation/xps_bram_if_cntlr_1_bram_wrapper.ngc \ -implementation/rs232_uart_1_wrapper.ngc \ -implementation/leds_8bit_wrapper.ngc \ -implementation/leds_positions_wrapper.ngc \ -implementation/push_buttons_5bit_wrapper.ngc \ -implementation/dip_switches_8bit_wrapper.ngc \ -implementation/iic_eeprom_wrapper.ngc \ -implementation/sram_wrapper.ngc \ -implementation/pcie_bridge_wrapper.ngc \ -implementation/ppc440_0_splb0_wrapper.ngc \ -implementation/ethernet_mac_wrapper.ngc \ -implementation/ddr2_sdram_wrapper.ngc \ -implementation/sysace_compactflash_wrapper.ngc \ -implementation/clock_generator_0_wrapper.ngc \ -implementation/jtagppc_cntlr_inst_wrapper.ngc \ -implementation/proc_sys_reset_0_wrapper.ngc \ -implementation/xps_intc_0_wrapper.ngc - -POSTSYN_NETLIST = implementation/$(SYSTEM).ngc - -SYSTEM_BIT = implementation/$(SYSTEM).bit - -DOWNLOAD_BIT = implementation/download.bit - -SYSTEM_ACE = implementation/$(SYSTEM).ace - -UCF_FILE = data/system.ucf - -BMM_FILE = implementation/$(SYSTEM).bmm - -BITGEN_UT_FILE = etc/bitgen.ut - -XFLOW_OPT_FILE = etc/fast_runtime.opt -XFLOW_DEPENDENCY = __xps/xpsxflow.opt $(XFLOW_OPT_FILE) - -XPLORER_DEPENDENCY = __xps/xplorer.opt -XPLORER_OPTIONS = -p $(DEVICE) -uc $(SYSTEM).ucf -bm $(SYSTEM).bmm -max_runs 7 - -FPGA_IMP_DEPENDENCY = $(BMM_FILE) $(POSTSYN_NETLIST) $(UCF_FILE) $(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) - -################################################################# -# SOFTWARE APPLICATION RTOSDEMO -################################################################# - -RTOSDEMO_SOURCES = /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 - -RTOSDEMO_HEADERS = - -RTOSDEMO_CC = powerpc-eabi-gcc -RTOSDEMO_CC_SIZE = powerpc-eabi-size -RTOSDEMO_CC_OPT = -O0 -RTOSDEMO_CFLAGS = -D GCC_PPC440 -mregnames -RTOSDEMO_CC_SEARCH = # -B -RTOSDEMO_LIBPATH = -L./ppc440_0/lib/ # -L -RTOSDEMO_INCLUDES = -I./ppc440_0/include/ -I../../Source/include -I../Common/include -I./RTOSDemo -I./RTOSDemo/flop -RTOSDEMO_LFLAGS = # -l -RTOSDEMO_LINKER_SCRIPT = /cygdrive/c/E/Dev/FreeRTOS/WorkingCopy3/Demo/PPC440_Xilinx_Virtex5_GCC/RTOSDemo/RTOSDemo_linker_script.ld -RTOSDEMO_LINKER_SCRIPT_FLAG = -Wl,-T -Wl,$(RTOSDEMO_LINKER_SCRIPT) -RTOSDEMO_CC_DEBUG_FLAG = -g -RTOSDEMO_CC_PROFILE_FLAG = # -pg -RTOSDEMO_CC_GLOBPTR_FLAG= # -msdata=eabi -RTOSDEMO_CC_INFERRED_FLAGS= -mcpu=440 -RTOSDEMO_CC_START_ADDR_FLAG= # # -Wl,-defsym -Wl,_START_ADDR= -RTOSDEMO_CC_STACK_SIZE_FLAG= # # -Wl,-defsym -Wl,_STACK_SIZE= -RTOSDEMO_CC_HEAP_SIZE_FLAG= # # -Wl,-defsym -Wl,_HEAP_SIZE= -RTOSDEMO_OTHER_CC_FLAGS= $(RTOSDEMO_CC_GLOBPTR_FLAG) \ - $(RTOSDEMO_CC_START_ADDR_FLAG) $(RTOSDEMO_CC_STACK_SIZE_FLAG) $(RTOSDEMO_CC_HEAP_SIZE_FLAG) \ - $(RTOSDEMO_CC_INFERRED_FLAGS) \ - $(RTOSDEMO_LINKER_SCRIPT_FLAG) $(RTOSDEMO_CC_DEBUG_FLAG) $(RTOSDEMO_CC_PROFILE_FLAG) diff --git a/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav b/FreeRTOS/Demo/RX200_RX210-RSK_Renesas/RTOSDemo/RTOSDemo.nav deleted file mode 100644 index ad310ee243b472aaa826febb4b94e317237aa29e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 277050 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 jHOhAot`6 - - - - - diff --git a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.session b/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.session deleted file mode 100644 index 06446e7cf56..00000000000 --- a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.session +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.tags b/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/RTOSDemo_CDK.tags deleted file mode 100644 index cbc38e0cc4fc10da4b7019ae6014d32edd8899c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2965504 zcmeFa2Yi#q{XhQPo#aP02-|=$28`tZ0W%C{nGLcm+rmRel9>iY*fJJ)AZbL(>x7p=0%#t(`A<{B~L6TA)m83z{QskEjuO@;@MB$I) zMHEo*kGx0m`lwzL$%FPX|$~|l$+NWj5Q9cr3!CUnyVaB4Go?qx1rtV z^|Wl7YH0GbxDB2bpL>(rJJrzQYK}bev^yI*TIzhB))r@zXN!n7)!=ovHM#2C&F&Uo zIFWYGrWTj4!y9@x&!>?yGc$?5R1jWbsW96G(5lE5K_^DFtKH}Hx_z!qo80vw^7GDR za^|>k#BUb4Zfa`X=xTBzPP@XZQBk0HaIAEwstAcYJrM$`X;S8tDP)bvzkO>HI;peW zy|u&LQs<6BnTn36hm&|FQ}JeA*DxYyW@M1v$s$c&82+EC-sT}EM1DU#VT-4wKHR>p zI?&%9Mx&d1s-ey0^SQk(;TUZ$ud;u5S{mJ6k1vt};x~pP`*yUsz3zrE-d@+*7V1g7 zzoBEbIJdc)@R_Bg0_bG^ZOZHqJm4z!FZKodguTz+Vz043u$S2H+0*Pd>{0eJc0c3dGt)`qb;Gzx3jyEnoelVS?+n0S^-e>~>wELyf428@z~_2T1N^XeEW(p| zN5lX7-jRT>^=1J6u6HQltGz=2|J0iT_>0~ozz=#E;GcWW#ap9#&W8WXo}GX%^mGD# z(&I&VN)InxLC+S1{HwxA*IiTEA3Ygks z0vy(}6fmO)B_bnx<^mq+nFW~LgA$R`dw7X*d!_(R=|Q>3w4MoogL-lSXZ7%M&F(?D z$o!rx!0w(AfS2?P1Dw~B23XiL81U+zWWYr|ymS}#VCEr9dnh37K>#W0Mj6Qy-Dd(m z*}WY>S9JT}zpHyIprN}3@cZ4or2D#gJKo-nc9g!~?F787dmTcq>0SkRUAF`9Q1=Ri zU))^@|DD~-0q^MM<<08m?RaZ9N-aIoy$t?ebfY!N<=wpOk9700|E9YD@V;(d>U+B< z1OB{w65#)JPXzo`H!u6)ZnP=6zdHx;qV6$(bGmt(Ztmu#p4p9$kzCq62=HLH4&j@+ z`AoaMn;_)2-DkmX=S^C<1E9PEz=HOaOlVHY$lGx#no(MO2Ecq24Zq~Fhmn^~dn=&! zx*HKk^VoGIlEjAZNBV@E&+Aj_U7$x?ExT7@udrXRd)Y_qx8n6v;8YEqs)7Gj4X_8K z;nZ%atgbLS0}QF;XMX`TnN%=(QVL^1FEJ%kmO(k+lKa3QEz6>T7qmZ4BWxU1aAi3! z57n@V>SU8gYQc^-kb_8j&|L85e`SAR@31#8_y3MP#U5jiVCMfZyOZ6@4zp|66>LA- z$9A)GSSRzcCf2~tU~8F!Rk1Qw#1^r+Yz7<4MzW!7FiT<*{TKa$enQ`;Z_(H2ee@Rk zFdI*=r&rO-=tXo7?V@MVZM2PUruB3KT}^GYf|k%_bOD`B^XVjd8XZGN&@`GtHRN0J z75R*OMBXEBl2^#{bBIibvU=Rd%?bf^RLRN)JW5avBTHu1cUD^bG6hrxxJOcD|lo}Q)NVABgzG=s7^*d#w zOEuDb;;1Nc7Q1{dr@6V!w4*}IG(A9AiKPndk^3{OxCUiB41dZi4`S?2`Tm2L zO;h$gh!H$_!vhU~&)tuCK>N}Cm~SNG5zM2>ZMR@9OkRHrX71!=w_xr`o_6!OfT=fc zz8)Gjd)k*yzz9vvKui2>GBU_ zQqhe%jCoE+4uk)YKfIw4@aY?jfDhb|4S3`A$XCATdQdCxxE}AyuIoXRY`G5a%7xd> z1kAY(vt3f}wa7Q=!E2FklI2`q%F7S8VV-NbAKZiX;JujLwMqMtvX<;e z*)?D92eq1|`$3!L>HXlAG=IBzBj9rv+W<>0MkzGUU(CZFz6czH=I}-3fYUEpg!Hqn z2G5-G)q^~K&V`_y-EjeOWL*~+09((;yv!WuqomAq{zAYh=OZP2f){+f2dyUkvj^oRKkPyKk{f!40xl3-(f;nW@ITZ&4{*QWIcD!hok&{F zO3bpNnx(<)VZcFFzBXrn0}t@$;0oYb_5`?p{_tdewp6X;&(RbwsIA%9(c+O$psg@CXlu^UfLLw8oTCWTs+)0 z0q}Z1RvF3H`LVJ{KI8{$pY*mLi*Ysu&E z4;q8-KlJs#9%uD`1Gs?iu>2wg)lJDr{^hfk+dNI9&{F5FbpC99365YY-L`SPMu6Ekj*iFWY z3eF6eZMK?fhZFKXtIgtAGs!T?(9yyrH12vs9mXs}o?(t*(W02adFN`A(erh4bSw17 zJJQ7`E=Y>SY*!J}*6Q^Y8SQ4LV@pr}ebs-S!?#pt7z9B8;SecY`5G`m*~BKywcmhNR6s z$VDbSn5L!4`|yg7qSQ1dl*os|R>>J-}nAA=0@5U_00bvTYeaM-U1o)NbF4j-~bSk3{R;i!P;Y+l$85w(MO3*t~Z( z;Fi6U0X=&SfSdM$JJ&YsMK0R9y+}>#+Jg^I>)eCZ)o$2>rqr(AgJ#sO+k>v7U9+bI zaOIvwfHiw&0^0Y0HtmW%piOJt1KPAzd(d696?@Qn+U3350LyyOO|+%G8v%=Z(cQI0 zy;XpddW!*nkAfD)qL1J1n>hc57YdabFP{< zcccC_f834w*SxkH^{+ARM*Xv|cb5VFb2n;?{e3se$iCbSs@UhdvjG3L8-pGD>u$`4 z?44a5fN$?Y>DV84fgbk8E(~PswOyrvuj~Rx&i=4#I^Z+AcnZJW#Z!2a4>asIyRbrF zzwScYvB$djXa5U6xRAHIkOFzU3n`FYT}XkP*M*^woYRGRCOf+@6p|fXs2S4Ug^!MS z{W}5M{96HA{3r`)@}n$dvma$49zJl8P5vc-Za?}Gsq;?;bovc|>;33UWSt*K-IB;|Nk?c4B`@*2Qvdahw*Sul;{Sj5WBoKq&YU=r_)S8dq>|F95Lvac zsCsm)JB+GLMa6DuUYVSfnVU&AVQ10ZDMW(KDr2Qt_>zP9)>K(m)R?i0U2I-$h{Q3p zwgj+AJoP+ECQ8ZDb{Q*%8%U+JoxUKwNU^g=r;@kGkq~!Xkop&$LZ-b>acs{Kj%DXR6CJ{;cCp zKb&Mh>JVJorqE}l(?is&r5JePz<-e&N_E7f@h2a5u0a_`Ah$a3$jR51Y5eKDuGG1O zWG4334sV^imM;XjRI?VMVq;NlwZ$}RX60%T-0Z6Jw&piV*Me^;Hf#KYjy=`p=%u}V=#b%+YMp`ufjN`7fsHXCG zx8^sdBRwtnZ|N?F#y{n_lMMB)daq}j+Z*X$L9qm8d;Hk{NtR-?^08Ng#b~Q7oL4@> zrYidZB;}sVw#KJ2*vg@Tws~7O*Si}aV8VJr&@d?eyYarCK)-H>5`n8Jzitel|8>&! zl5{;OrWugP|CIin6|)=I&!rqZT9%H1CWEXI1C7I2YIoXA)@o>lY-%4G9A^RpOyn6K zVEFS%Lir%ipR1EckIT??Wk5{^Iwt6_o7$cA?k2a7E1k55MoF8clq=gPo*IlL4)aOA zZZi~{E6mXDu~vzs4JB5a!E7{@8En>7h9YyRrOLp6!B{0WYo$T4XJS}YX11A?A^9MX z>!~a@SSyP2J@pICRmJ|QFoF6HP)PD}A>p2=WU*9tvRC7!o%u;OJty@g)Zt6mO03BN36y$XF&=C~}vsdRS+ zHq4xy{(yH#tTHNM@w5V{&@RebHzX-@`Z&@qQd9IERClMdKoO9tB2Doi5R<2?2n-~? zK2;>XJ!axF717iBO?+l_;=%4f=~q&c^c+@2@>^^LF-yeuV_L`*vY=~@j0R3>XpmBUh1>a?3Hjn!pVo7o~i*X|eD0VlwcEl}u)Ic99 za(<%*3+JRmb#m4kPq?(^ZBPg+^|p4j6}uapz6A?9>g+z3&r=7wb{LzQTI*ascm2`w za`RN2n|Lzq`E~Sa@Eqs(lXN+={8OguDW)1Upl1r5e+?zkz( zX~58=8qKl^9xlIe5>zH<&2;(NB?oe%{{u| zI2R*$kBVv&1f(;RO_q+8v$Vz`XU+*U8L(Pa1Gd$d*vuG{t#&7*!c|tMxyo8;t~^@i zn5oehH2yqY_Jno*8a)kZeQx6&q15fOv^2CHEfF80qDdwh_&b4}Xw;7AN>fD`Z|#nD zgiUS}p#glVp~%(lcA(98Y~;mz5gyfTvA03XbgIG4)8ld71|AM4j~#*V0P?@T@fu$W z>HkaE@4E*&eiuQvZ!>iIEYRkg0zE!GH26M+?%s3I+WQgo^)82|-gfBdt$}vlLg?jX z(;?(L=;HkeT6n*N{@u;cyz3#`pl`R5l#p4(K=jhTq)Vg^q?e>$OZQ4QOXnd=@k<`5 zXW4X{3k(T3Sq7nn_D4flPNWOwB1pG&FdI!phjcgOOv7mPj3Qvz-3XYf2uOb&LgMcf z0eUc7$wi6)Z6yYZ>s0yVm=Sb=DrgvFHz~hU1*LrlwoRuBlK+85-!cfg7lGj@=M~^< zB6#W{;431ywi~H#jo_LqLEMcIoPqO7?nr@(hZw(dAVN!C8b-4XK!=9W3~;;2gCZzo zc)AzD=Fgom3pfrL)I4A!qj1K(>=%o=9M9Xy%bRN+BFq-}r z#;wO9==o^XUq(=f*0jF}qiN3pJuiZujdqBjsh^|5Zw)_9Z3J2sM)epVrSdSEJQY>_ zN*GPL9O$kH3ZWXE97eTYpznVbLGJ?kOaz5IQhG3qYCc4XE{>ozAfr2iqDxA5gi(44 z(DQk}4h;a=kTpsj$`B2tfJw44gn`~OPA(wTBu)B-v_+bP zhxlohFJb2%`qKwbr{=xx8LatGCwF+EicS z@w%NWXDUbXw42eSzr*@**s&*DgqfjWZjr}V4DEwzQ*9dnG4yDqb3$w zlQl!RXuH?d2EA*n%d{V$CqG!owjT5Q;7>YyI5>cJA^p|vKc06LY{CxEed`*He^&gA zk1{()EqVF8U)S2)+}e`gsK*DHbd^ivH=S(ib?sYr)Hb$m-01NYIA?~}*X^y4+33$e z8F~jimptUMzDDDpa>8Ya!^h}!_(%?%e9CoO=FON{%QJBbFH+rrmW8t_&ewz1S$RDD zM%m{m+bN~dTnq!6QS3uHAKrEBm$a4LKzmpZTghgzk3!*W=@IF6>7djtZH4CG%Qz!&0GfeTyfcD+N8bg>eSgE)6jEj_DzZ47D=j9cWmU0l z@=%ti3bWhtqNCZXZIk+hnQarJ!>S#&)BA+k3Mcdpn>)U5*qm{F!)Bk>H*8jJ->{j6 zzF`G9eZyvqjSe$a+p_zFnQddD!;D3?(Y&fkt1Z?7r_Ib4Smvrxp`aPzpsW;@Ma-+A z&`>pU5F1U3%|$hkbY!Npi2;9+v8LFDLr)|0EQgq|Dswn(D{UDO483CV1XfA8A|iP` znviPSOasDKXS2oBWG`RiG?!Eu?PXZ)RXJ?d3Mbc1(EJhIa&RgeMlA1Xnz$bQL#1($Dj)KohirXuNnbjsl)*mNqmT*P*G>b96#p+iRa zc&9fo6YaG7ylz)>QAb0A+gr55=WaJ{b9tILD@mM)B=clDS9G{L+%|We8_O5648c+k zGt$mV9K~^MatB^EAswG!j6HQE7ZiQOv)-m$ZE=|uI=;l-8_SkbpBHSkc_j{lIZJI; z&}?5*WkQ1#AJcAv#As@Q0$G8a2nSsZ0(p6l_ltl1+a@-1Rz!snKL&U_i*KH0T7IjMX;h>bcI!_AP7;k3tz=>?a*z&#)ii zjL$BdjJT~*&t%Hc&6+VHg~(*2Ud%oD|(XMVMIGPD=c=0)8a5!YK(a6 zvEghAdV{6PqImFUJotGAn?^fLt+v1<9Uz*XgC{@8VsmI{RcGsH;qnJgXS+5FPY-i4 zwuRrb*EPE9JDS|I3(qd)rR(U7^ec4istzv3;9Mj5d^DRM=voe=y*#Xp1ObYJy@BUL z#n1!}=S|JW^XlmUq#2D`SaLFprD=8X<{Dpr|ZQgAbA@vl}7)y&$$P0KJ z1~!c?M&)0;$A=G1}k@+W6W7d3(2%>Kap@^x% zY_vJWhi!LStDNT5n5$4{;@r_$y!9gTt!k^?vN|9lU|0o8tuxuC;Nxl=8mFcjj@|C$ zB}P%vRQ3w9xf*qBH6a|5F%2)$mAsY%shY~ns2qr?o#?9YSy!5EB^B0H8l*mrv*P1W zQT4okg=@0f42`v7XQe&;mv~k;m90}zXmdEN)ecLg#g0)!)S4YKagzfTnqI)a|I;ZJ zZ_=RCaQg3kocwzh>wx>9?Q=cO`R#!mpbc_>3Y_tq1UWz&&hmYQb9`^&4Bz88zjrre z0SB>SIFI^p>Tek&0<}1?S4`)Tzmsn$#VNfZIITAdr}j>Vlwc-K@h!pA<%qKqF*hQ9 z3r_o;iT8Vu$|XqaTBP^`q&K8Mq%b2wuLhXn;3&Ya2NtXUk+p3UK$IULTN%VA+5 zhx6ufIDbBe3l?y=a3P0_7ICqS|IlyJF@njj3jg7>H{riU_{-9I;BV*t^iR?t4v-fM|7EGaL%urUUy#~~wbo7C zpY~?zSol+gzh?**!kQO^f6x#s{J-S>)Xn-Y;Xj-ElUL|4EGCcQ{)~~sRwB*$!oOzN z_wW%Falh`c40<%B!aq)SAzaX(oT~#%!hXcV<@Tf>!r#FCNe@DKSYoFOe~tDw3Rg|Idm=ba)*--$ZyC! z8kn?erJa%+e}P}7;N$8mG3HqV!(P$^Wbv+G2>85U?eK9SrDh32 z|H>zz5O-(l@baV15veDiH0X@jGdi1sQv8iGpaCw!;o9P^?C`le!R2*$+rj5iF4TCN z5Bq@_fyrCM;S;r|PRnQbpYbV2%?Jkh#1e07Gx#*^bs(Zeu$qx6TQDOKAhZV~QBLW8 z&P528z~0f`hLb>$#q-9Le$6K=@c`2&SV*=Bf%ozuf19zbtqFpAZWuuDw~*iP@fOOGFG)9XDNaXcH5Y<-d^_0l2s_B@xFg8-2=0hI3j%EMSqBX|06qP5W(}|o*xff9 zE1g9(B_-fZG5eb>E6qXXLGuM__9b3#g2BbqLNrS;c2K}=Xh(pAPX&9+IpCrS zs|j0lrF^Okuq4%HbGa5@75yP+3ItDES>rITc9!y7M11s&N;3t6FP+0#*S2lN9nH-< z=4en1Hd#z=oR#qSuu1J{4>T>;+v>!6fb(6@vDZF@@T5FeBUtPbiw&G%fIZ~)AGjj8GcYF$ zUP0>x%{zy)X(Yk~@UqzK7!su>12YF7h```{@5#@}UE~lspX?x;NDVQO0_kdLue6=y8b z5A9_SYePt;DufG^zfgt@{SGzpwOAVjxp-AK*1V0ecqji_I?HerPcY+2!x6TTf0xQF zLT_sm!?&+}pLaB;)78@2GJEcV1wmh7D)>d+Igw|x=7pZknxFbDsCrUG)nf>`TNMI< zth`?p;y_57Dr7W5DwQEzVlGcsg?t~xm#RWgOWONXA%zIJTp5xE3bmK1Lhxm1FI9zH zfRKw+A$EjZtPDy06d{+WLM}zf0cD8(dQ5YwIQoqUQI$)NeoF6DzBM=paf*~7gZ_e$ zd}T=TD)jD$l_B8XB&Nz;Zbyhy87Jv)2$`!2IgH$2P=$C9(ya=afsl>L5G}q3TA~X1 z2|`AxLil=G)jzf45ptn2j)qUi6ICJG@d5l*6@qzC`i(L~XydDT6hkSbt5tDO3LH04 zd_fGQkle};iY2$CDg{NyK35qf^-=^$jNJv8d^P(N_CD?c$G;A|{3u9eTIk=wf8RyV zmAD0tLFA9*QE~(_fKIZ4Od>kzEy({K!K)J0b77H~FI3;8dUdKn*Q8l|&JK*=RqpN4 zgE$6JI&2EW5`1wJS^?sm3m;*{qR3WLB{04^a@e&XpDqww08hz=X>*&K&>{7SqBm z#Bhj7UMUr@Lzom$N2dcj&pQmwlc5gCceW(U7O(S4=MV{j2{H6FY>lFg#q#LUHK zKg@iau(0;-pqQ_vXSi^qLvT_dP65*!1M5jAaT${jb0sRs1O*9!$l;b<;C2E z)ox9tS%YB->q=A@cXRRoG~P%eT7X9gD62T};>KD9YtXAIeNtVylm0)yru!UZ0AiJc@jg-MY9Rf z+W7n&h{n&Fi5lXHy3Pu7l?H1NshM*UPG=Pth4aH+LN-%?2lK#R!ND(|vnIT}*2+pF zW`qsA{DFQ@)8ZAK!0i>?f_{i{UDOW?G<*mmT*!HeIxm{o=FmFy$RUNKz%~rAVD5f` zrqWgPT1MDNmX`8~VNx)9 z&^D2w&Fg7)d3PALxOe0gj!eodpFkv`;}kUDvOSQf9$K zvO`2xsaZRP*0a)#!bp{llsfX_v?Q+dRwL388g0C#cy{Tkx5AIOMiqY?(9=43P07VW zqY0=sI?8ws!}=1yAB73vHlXrM!=TfaLDom;uQu8seC7#c#7claR3yRIUU?lJW=XiAnyqT(m6pwj2O3k`N zwJq-mJZ)8r2NdA{KiRJvv*gU_6No=qv;(jE@CVS*;@PSU7#*xjuD%#n_g6-6@;5>a z6iO!aHRkd8Kgj=In`r)@xp}wE}n_-0UHqdXVp*mx_HD-8G7kf>iKt@@Gm4_!>l3ace^{ zmCJXj;&A?7#Rm@M{C}$|4(I>Nl_7%vSMiGJsF9=sRUFR$|DP&^^Z(Z>Lj?aXN)cLH zrE&gW#XY8R{{Je~Tb%#DLK!0X|0`7?oc}+l4ACD#h^p-R4H%JCs}KD+gs4_Sg8x^o zM+E=BNtv?X|9_?o5&XYuts(gTGn8=z|6iyIIgB3j2UUm%Aw8-P&i~gbLj?b?T6t+X z|36w4hx7kmszNybuc|S@|4&!O(Qy9%Z>kW^|39G&5&ZuTRUs&aq-s-!Qb=8@IGq1) zP=*Npzf2W^4lcTUsB3`#r*`QyIw1wCfIT?<`w=XEyo6Q2qp{ zLf&Vvi>*NHBG>?!hj;Sv)_7O}7{xLm zeIEpiK!kon|ABNqMoMoZt(TG7Gf3}ONbv!r`9q|71nC~aKES0&c`wpF7rO%;uoARI z*aHYy2`Gh~fQ67qPLH+@K>kTSCm)kPLl5y)@&b7V^2%S5hsghtAClXklXxAul3YqI zB)!B>c9IV4WqL>*Sx;7BJyTAG!Xn^o0*gp`O25z70^qJY>U;|#Vn3m8OK;`dIE|W;|S6*V>ZgWJ9sPE+x0}G;*+{fd)dPGNa@$8jR=Y zx5?OVL1e5JlCVpnr(+?j*I?&Ek0UAQvp?Xz;g`VY7QWNqJB|B>-GgED4dE+-PgL4a zyeng`LQjWoM0!8vzVy%F6BUx)g&|8cQuRW3IvHa}N*GgI!L3dIqZtb)KkQor4EsNN%7-`l9rqw9{!fO`+TgMau|J~J{~3ZM@=^7FbUfL<`aguP{?*$)ee{1m z=2^$q|M_!l-3q1tkC{{F1Kr1{|ML>hZEH;ZpMUTrJ@!H3>;Gu^EPo98KWk#@{}6Ty z2B74x*)4P*`w67>)ud2*j~t*gVc*Aq6T$I**kLAbOY2r@{L@1R5s}WlB^tl}xV0-o z%B-f~S<9rCG0yfRCaJ|3^H*1B{LqApcc3<#K-G+nIqmR1+GjS)+dAv&x73E72PWzKMv5hvcHHsk z)^fQuS3b;dBv>Hem(i!LkmRi6NfKWMy4$}7rn_XxYT$pe21Xp1 zMCb71G~%|8l>y1Up)h|27XJAD-;?m~)bCUcoT`EU$r|9w>ao6l-L0p-|NqGbKUJtx zHK3@0_}@S0{}~;F^AGgr(D%ci;JDn?`*8;2g_8skk z!&}_G^YJdiLsp#CCY=>VlE;YSyVEy}gLNc+30LfFxt*UG9Ejia$+?RRPy;gfS`7sT zPlKV}!;g?*6WkCa)({Xy7(DHUj&^swcx&?X@zX<_C$V!0Jw@I9Qkod3jxE{xiJ~^3 z9fRX1&}*{Cw__1U5^>Z@Fho@XYC(}*u+-d{(dpV)S6?u5)@)^26mdgE@Siq2P0I04 zAX$2SX|_HGMSxZ%>`8deJZ>W(amW|;v(p337H+@fPZhE$Uf~aS)7lC^m+S?M;*94s-ajekYG<}298A*RZgfwMvn7XlZ)6fe9bp?T5 zP=X8BL@Aum@=hdqV}s4rN zWubsD{S#$-`#X1^J#42gHygQSC=5s#i^ZAUfy`HICQgZ!x7p6m3lDhS zo^vpXzdF#jmIuXcFS^d4GiZNua10F?6{F@sqMxOa;z?E%LvQ zQt2R}|FZOJm-JXZICcya3}_u>2U{aF!u09-7M#oNw>?j~4m3xt0~{dhuScCM1!KNF z3I$MBwA$7TpTtUd0Il;YU}wmojNfJtAIFe(!^{UTJ+SL8S5R-E{&l_&mc)qK`*d<0jw zHZ^g2ttb3u^$EYZViDVUeAL2(4@_eCW`bbb$-HbonU@{?8dMVNov2<>zXLW&JunKC zTXPcct~`l%S1CGmoGYuMXoh(NT-B7j`b1w`bD}S%#FR2E#>-hRVNrL**Lg{_d zLksE4Y|An6{y2U#xiC$d9$4GV&(=>@t-KoewbF@Qei`~Kzk-=4);N(hSnyeBo#P)p zukSKZ*d}ZDxnQ32IQ0VhTh2}m(-}!$MPej4OkMu`z%mglZEMsrG105->^`e)v1AJ^ z$oPu8K)K>pJq;6_vmi~vT8oPY%-Lx9Z2ds2wkGtUHIxe{6IMMVtMAZ*FomfL0~A6o zFfl@5q8Hs$f{o3y=V>b%IusP9Xy~GVI0Y2tDa0v>CTT>Fq_B`dK~p#^L{wn@FO{TH zX_xdf>1$F*+HsEeLpl*Be6Pi5FdX*0_OV|T2L>6%P@|f372(G=T1JMT^~e1#u0-dP z8iub8C-JWHB;GyaB;IwM#Jd}h``vc8U;t28btmy|{Ykv*R&|t^_q9dMq#@0q+=df> zb<>Hz+IZrxdQSY+%_siqmJ@%qiO>I9a)Sh$-|4gyC;iWZR(~qneN-Nxd7tYT@0;s; zwP&=hUqIc8pO7?JoiL>ai{a*w87gu2-AqGX{l1OC3-(4I<$k;4$xnH~p14KNKYCxC z$friSuMnL=)aJ)cW)XKxR?moZiul>hJ4?bKxk zc1px1Ge7gOL$_U*Ip1Fpx}d>iw>XP!D}&c1*c>Kd1@?Fg8MSW}(rM?`sNG&~3of+M z@9HmKdzo>d^4-^OzSWk2%J-`N^Q{@Ee9!GKUxyinykO;b0NVGQ9lFfL@%mN35X=DO zyt`AExiD_dHkddYpo}l*ugEoaY_APe&R6jHUn6}dN#BtNaqr(W-1_%4PR#y*93;ER zR-BD3>Hm*gk#?4?RrCYD@u7A;>FBve#-_le6S8v_GJ@yYQPbk{G%4N^$1_6ff_Rtz zg`S7b2(64#d5M!vSoftMA}$I>_0NB(B@J3jg4lHdrKP}Xgd5l9y$uFiEhd<^J6T$d zQMAU+g_EkFGIpfU*zGTRs5MPm8X(@4tzXKy5OI7e@ROqwH)!=zdt+L|U=!d=@E zCN-Yb-jl8Mc`*r(ms^a!6EAA0NP+nuwgV1JGe`!`{3X+Fre)paZ*(wZfJVBGZi5BT z+bD*pDcHB)%AHxtNuQfou6773$;VsTsM$VROQqeLUzdBDSC=_0c8=Vz`aoo9=*#U0 zWe}4iVA?*xdA8Iwb=13S#U&VHeu-IkqR@{JEiX>j8le!AfSD({dR6(p6RXT+MNXrw zXu$J+<6M4U8&^h9l)1WShO@|KDK1S2qtS2K-;SMs!G9|Mzn;mvxVrqNitLP_&A6UFOnAPL-Z^n77>o$&=Gq zSBJYO1|rX5pDxoF$rIKAx1oHvM#=2IMWK7-%fU`fOX>VfKE zMW~zxu8F_~L1o|gxieyh8H~^)expR_Mi}iPL5#Qs1LmHW;s!(w zzg{q4CwqmnEVqgq3WZz)1~|)Mn!2i7mbv*!We6;g!kTBNxbsn{RLMGSoI@R@Q#|4N z1ak67HirZU9o0x)E^61;3hf(F2OYC!YAwpJ`g$i1Gjm(w#y~u5-(gGEZEUHxZ+Ep- z!)znB#_4QBv|?^3BW5&_$}&+YfmDj!bzXNf&R>Wp%N0*7Ey^dQ+?ZQ1$trH4l#^2~ z+BlF9uFl{=W!zqBFrK|*BeyUbNV*`=i6&Y+g5t85%FuS2oy@Z?Y zjFt~qV!lj^+{2md;nwIPc-q=1T-d8tJijLD`2$h-i&6L&YCL^J6kZsGS4H9H@%4X_ zlqJDf$;Gha-6{PX2>cKNy{@PY2cG6RL!?JxJnspMs$AzEJl5 z3`?4n8_0i3wmuj6JDrVOhXv=g5?NRIK{_I-E9i*?hUqFOOOwEB^446Ot)B(D2AJKH zz8~s&ec4(CsWGSs)4ZURi;x7(rho{EZw(Z?e69i9rMN3dcI>Pal*f(`B3@4)lQiTN ziM&ErFeC2%xKVulCji#&I~O~dnYwJ)?2OxkqAzJS6_?kB_IJzqy@%X>idY5aHwqKr zWky>aWP{Fq=ZM57o?zlA&mob(!sJb(6Goj7u&HmE*w*T)H%yo@$sjzFClp|-6$VCq zKCfpZt|xIiCrxU>J!ifSZ%ba@qzN;oPAK5}tNR6U1v+=)s?N8s0g38$1-hm26Fo-x zSxBk~{v#;x<$KD!f%vITew_=739Z2yhCJ`SO(NSu-JC>aYjt2dyUYw`EVP^54ju-# zTqDo9v*yh<@EY97`(8ovoQ#CE?i!1^B677_;9{5U9$#If2}ZBMYfa+qmv^!~(-f=Q zb7_ybAg!sjWz&FuSbY7TEEVDABIzD74)!s>h2H;ju-|!@T`#rjNU`Mdj}A*_z<%0o z&gzoLzE7*Jl?!jetCX0VqH&ufPWS6iJW$=nw;dz-@hfPY=1w=Rnrm$d@n(t4a7l+Q z(-g^&+gz{1EdyR|;8p)agM)NyknVo+Q2vQUy9|egq zo`z`V-#;U_O5|3$1$X`}=Bj}I(ck@2L3ls4fG_u|Ocgc7W@kiI;JChc(EgHC8AuUk zH!2k=c7|^mhACNb4`5kqQ@vZgd4cy|gE&EKM*DLE@`M2Q%hi)3>cYoG6c#zrJJObz z8@uW}_^venabDZMboZI5lF3D~_4=KG!3Nj;w6=wB;uRO+h3@`|OI>gt2;Tr-H+P%M z>*1`-^bMHzaVw&sCL)e9^pk~Qv0=u-h(1L>F+*L=Z`!>xP0ABR@Ixmq4{g&~fpcO3 z%P_ds``F1Y>_c{FA%bN=n z$gR&LFXJL0Tm*5FKmTlFv_vjE01eQVjC6bSIH<@d)tEaz!!7UEkRNpF|$(896Lgo_>#qG61G)2?^h0qGdjzEW@lBpIaq-B*(nMU zKT@b5{QFOqyb`+(I{@!N*C!1({28U+A!vYp8rs=AU%> zIFJDI3JNP@vF&};%RIZ2FHVf?6ehVg;f82`!L)%Wl=|+udhLJ}r?RvL3=}M&RXJKT zJeP$7QJfI}XezT*JH=glWlrZhhWsYxBq~3lry};_`DW@`$`j8{XyT#M%ud47PFU{} zgsZ+5{{5#&V*|rlG!8@N`jb|^47Et$dP?x#qUOpxn;KWS zuu)v;@@`o>l;>1{+b~m? z%5yvUj?gzZ#VFG-glBT{qfFmS)Pqc&exM4Y7-O0T^Gr^DjOkmLP={6xF>41Qy9p;h z#00Wak1%Uec-kjF!YI-X4KQ5(KZGCcn~E9#KIvOhO!kpy=?Gejd$``m9bP`hZ)wNR ztTE$WkK?{UBl;UnPe>|56OziXgrqV&A*o~}B$W{fNhLEOsfXIkxQWM`&059c?bHwGB|+KX(_Fzo%Cwl%=s+t z>ij3}ah%1f*=Dwr?S{PIC+sQQ78>JEx&gQTy78y@oj!*|4s~G_Xs)d0cgb^Ul2!&hjeDJ1Hg@`_Q_8mW-PR4c$`h|-YJ#8h2l!QGRSfu-jX81MGEn|T1YVK96m zZdX?@h1`Y#BAKi<*x}|zW~U)w>_S9}$<%RE2Oy6}oDOeVj_^9U!V8W}Ntv za4)?ueO};oq09%7zSlQz=zP`de9byvzd$2plMolUK)*1A^28SoSrn#;{k1f_nOG(@2JDt@IS%Q$5*v<1sj zEgC5o4JH}}T9y`hxggcIJgb}+G?un#`S1$f4YC|!iAF;xVAYchDP4M7!oTn6a@s<>>G$cQ^iBFDEPu{qHEbKZoc)OXj{Pb2pLCXV25g6A zdNoo334KG6y*uxyt^D&1Jy0#ox1Qdnk*wiooxw{UO&wltg`Z=A;{a`AT6qaVX+#ni zXNX(zO^uqR7+fsH6*!S>wU*=3ZSkbP5hV7QgDa8dOb8}vwA;-#M+efHSQ(}v-c}-R z5SK>J2}cX)jCHiPp}G0R&pC_LkMKdYdOf}!xQ3t;k54lZq4Q|7I4mZpyj7X)u!K~K zp~>km741Nb36^jIq3W{NHM;9Nn%rKDAU^k*h-6qAjua5NgtCF?Whb7GFAYBz1e%)M zu9liMe4niyUK~R@3vp10Si7EQ?#SKUgfEKrvk^$o z9KO3*Bjr)`#v0w3ySs(I+Rt_sJ!|A{^nwD4eXl_O2yeF0v$J-iBh8{Qw*BZiLwBPC zPN1ENT|Rnl?rwBfksqHYJUE2a?hdC{fr~cV>3Jh|x8ozDb**05({We=26Y@}>No86 zVK79BXjD(jCb93TdYN{O-QA&)7W49$8r^kUlreegbk~^O+c1XE&SH0yYlpjD^?Cu_ zJ$mt1|1jUprM+WzpUGpl#mtNDNg;p5(*HL^ zdL5^I^wMvn56NgUo=hWi$x>2=d$HHzhU`7$4)Qp8OZpdOxR5!Y7SWaTY zd-#lL*a$X>EnpRF1I`C_vCG&k>^}AcdyRc!OB;e?Nc>o!@@!OkpR-9(&ksf64@cq8 zMd5!{<3mSA;nSn=6;XIc6uvhKzb6WhI-502Qa>M-8HGok%^Fr6^}IC-?~THbMBz_G z;jgRl;c^s?7Espz@VQa=`Y8O|DEz7@{K+W%12vuzRsR`zQO`@&c+Mn#S+zK_Sm9~e z;`GUb4eTgOh9s6sO{xFl-xnAtOHu0e{OF{~SZ#A+rf^oaZ%JLR3aM^wPhF!3DG+fs zs6u$021UqB5$6n52#?dK2${v>q)k+X@Hi_JA+tp~)v6F4$EpaKBjShyputkiaq>77 zia2vcoJv&)k7HAW6pA=@RS1uBBme#jq=zN^ds=!!`UE=wL&#W?PnM7>vH=zW&LJ0( zYjGpM!>|kV2KfZ%1BTGC-~pD&dduoHYI{n^pJdiEguEqjA~Iu0!qU{iv9n&60Co}h;#otq`Bk+>YzVkliB6u z3Y@hm@K0&vM^UDTBM3N*uo-7YD&)+Z?V&RX;e+b^Z?Q)ic@AIvQDv7i3!@J>s1MJ_ zO*r1Mh9aAsIj2vW%2W5po#dhtIWs#t$+F{4W+}#79k=y@V^b3&W{p(l3F0Oy_HRSS zC5vXxoKYaIL_8KVN;$mQf{h66U*(i|qS;|-?5?fb!cT2-uTyyQ8&lWE$qMsLqO)2P zGb=HPCpxPQak3hKQZ>ZPO0XS?F4Y-){!f!2Nw0>?{xL$p?{6pfkdJZykJ|qKf?B1O zag|?%9Pb4{VPo$t%4A}j5sn%{!mqZT_^WLv{_55ff7N^9ueP7~tG*L|wd2HJ-FD)y zZa?u?J5T)89Vh=be%jCwyxaBAj{L?=Bey+=lnh2#vflUy!+ zN$!Q*?@#1QSOuIxt<*zz(SxuB_$d7o_6G)$BWwm+h8@8(VpsrD*#qj&0MOw1eMNVJ zmM9GX4f>*g5nA8(bE;y97J~+XMsMtE5GZG{(jd@iPyhJ|k)7tw{vrhp0%?8}*C3GQ zo_GdTir}?SE#*Hyx&qwo6`q=Z)+!x25kLKQf?D=SZs3>dDo{#3i6Sn80i;}qv zIjCNN4*6*m{z?@7Pc@#J5rxl;!W~g~luRo1f~e}G#?w;y{68JSfBgGc z`Zv*&Y{>o>lS)|rZ6;@v3&|nK{vRU0C9ji@$-k+dX47eOF|DNQX*2c!E~JOB_J0QB z!RN3Vn#uCmLRN`e#J93t*f%`Fe#)L?ud`3tRqVFV`X9oWXwhHV$|$m$qwtHP@E=9t zzmCF#qQ9un0m`M_&GiACzVxWZOkbkTKfNXjk7~^Hi=v+25rzLM3V&CP4^4@}M@Qk< ze^CnjhB~8gUle|I6#h^Y{*oFWmK=pojKZVpf7qs|=iO>NyCF&dn6&(;0>J3yzW#kx z2$*&KJBkpoQqX^(3gL17rU(&yxBf#_2#@o*B1DM$hPYKBJkD#15Fzf-oux$L&8$Bb6#1o2)feLcPUq zt~6Gco#g9K=(8s;$=!dpQ0#zVs*rijC@q@grDOM>!<91>blQw2GwghtEEN{Vn&f3U z`_F~ySTMqh8gq@=X)~8v><-%+VSp;xc-jHnnP3jaP?)w4T)9+iu6C3q7iAqFTq{M9 zj|JwlxMEVWY2*RQm01GMpzISitCd_l?f~QUq|$bZ*3d~dk2;`%&X_uuJ)mfmT#|P{ ztC8&Chy9$pN-mvvAPGuX;kY5KqCQGk$z_ud$Qr38NHaH75dW^NWJ~q|9dx$B$wujH zB`-hyK(a=v3_p*jPnBFg@<0l&DOGg{t(oMC2?qvgr1Bs^Op~q2&j4`TgM+5qLD1&7eaNS*0f5l9(^E{Yw3j2 zRq3`RufV)|M9QI-nYhrN>yPTWI@(Z#;8yQoNDV@`{*-vU5=aI}L9IH>l}-~k_NreM ze8*g7cdj&6)R^_F5yCaF>{gSrOuq)$Fe#UoR$HvbKsIZGuUNvbtV75cRDh}6Tvb!) zEUq*E4-1I?Z;7-+$k-msv^1pij2TJoEH(QzsI~fJ%ii^3%L9xvT`E*5VovW$Z z9^=LUTms_dhFd~6mI$kpQD#WcTOviYpU`b3_9*)fp^g*!IFN-f_Yne$dq84D4ISYA zuU2=osTQG;8KPf#kx6s`f)~Jq3sLxxFD@yF^1A7N~j8W0{*4Jp3Ugw)Z;h-Hw}{@ z`a9#0A0w;21&9$zRfI+NZw`DzD1sfspFTU#0A_BE+XOvh4+g-v-S8M&z!9eeqIOj| z^({c(I4b(*-|rC}2t&831DRo0Jf!4&vgBL)CqI%=Tnlqg|({G&?gga!>DsUel-QT0^6W z=l>isLn1Rs5m^J7|9Rvx@cci8mhbE2Q>vwzkoPa6YpD;i{@dvM=3nstA^738j92jB zuE6T6y%olEJuRuX;Ale*<)fRhzMQdO_$@fikS9U{t82%aYIDZI^jmPMVH~Zt+8mWe zlg;WZ%UG0l3j`3kB5JX9T}!!M<95ZD3akz_+oQ~aZN^X>Ji8s0`cr+sL~Acup^K!1mcBlQD>B- z9f4p$xrLBXnt25BgXzIax8ugdpe!S!Eb|ED1%W4KrRG(JWyBE(2d0U40yS1@v#xTK zWh@_a1X2N$1hRlYUkIPcS(Q;S{0QU#q2THo+?Bb;Va})= zc?8RT92i1kf~sn>&0;NfR@yVFvX5ZZzcBE~XfJoFO}J-R#~y(I0OxnaB+E}?snyXk zsz)CYOMf20zRKb-m2o0Z%jiPnc=p!S!P>}-Qr&oYqi`q4b;3Pet{3h^*)7~ja)WU5mx+<{JihTJ0ZDUe%*J5z2G?kst$aA(V2;m(oUg*#XF z3Aa%05bivAn{emL+l9M8?iB7qd53Tp$!7|8vAk2bOXRbJyHq|~xXa{oglm+~6>gDy zo^VaFU%16`mvGJUF5#BQyMn?h&p_*<-NkKkoO6@d3)e0m5UxYMM7TBbrNUh)UnbmD^5w!^EngwrHS+g_yH-9Z z+;#Gm!mX9B67G8WYT<5>uMw_OJ|x^T!QZnfyE9UM~M$xL3%} z3-^2S3&K4p|3SD{$}bA{D)}YhUM;^Y+-u}lgnLMSRk+v6uL<`$`E}u5FTWw&8{|Kx z(9O92+aXI1k|#Yxz9m=EXK?@DRTvgd_y>JqTuK{K4-N^rD=`Qr^hVmTpTe%Zxu1*_ z;`rm`o1(22js5r-3st|Mwqqkq*>+587ec}YuiNeQwYJyRb8CXWX*m5|@2uM>ba(6O zxAd_KoIC{$!vDeke_@}psc*tK=|Vk!>=k&@<-!#cl6!y)l=ej!Ng+;X`+Nu8p8GI2JJ_A8vrPS^7B+Bxtn|IIUd~$AUy6JI7ph5a z)w<5@*%p5zB&w}mTPtVP9DC|^9H>85!hav5TZJwj#9fGW{NQ|vx3&3L)4R7^&MJ%| zRhgc{)z5A9QN{kr8ac}zNh{JQxDbqYc+_Htw;lCpay2!XT93i*d8h+?qwWAvDR;)R zX^&$Xq4}&fiq@}F=%=s)vrWQ||1NO*hsY1G@Bb*Q0KGvz1dp$!Lun39`Oc>$)DF(R znVv~|>1Ff=X#G6^e*OjeR?NRo+2_ajcQd<({S20bUWNqWa|O#Wm}QfYkaDsTnW99d zDv@bQBwvY4S0Xb|WPLbkB{D^cOjRP<{i3nXW`sNf#)e%v2(?l;q4-B6F0;TqRPd zMCK`x`ATGg5?QE37AcX%N@R%=S*k>qDG{R*DN-UPB~q+J%u1w0iIgglG9_YBBFmLX zxe}>RB9%&{N{LvN2+p~X^ib1di=Jpg2scC(?i75hK8%Q6`cO2!OCNs1cjv!ft+BY&{&UU5WUV2)9BMj>c^bg%NIDD2#L}5pFgp{Nzj}!fgSC zpKzl;VMLhu33Yj4=4VJ4+rbYfgt0SK*iIF8mI^ytg`K0q&Q)ROsW86^>r!F6RM>76 z)~&*NR9LSH+oQtvs<3@3?0gk=feO1&g>atRoDR)c8LnRRE1rp!Y)@~SE#V> zsjzEQ*dY~m?Wy@+!3><5|C^San*W=YoSOen&Ht?%T}?|)&HqhHPR;*eZs&h-{s-Up zzqS7tu&F8bH*S>wB;1?iw}gAM{I+m!k>3&S5&2!=-YUN*-0#bO7VZz^_l0|#{DE+9 zm;WN%JLC_Ad#C)7a0fd5yX22WK6lHX2=|Bbr^0k$~aKFDh$=*omUNM{l5VBK=z>UHJ99ipocZmOQ)LjOSek6qjal!!UdEAH%OuyFc#O2OW>Ve$e z+UfzZ!m=)QP6MEXwKi5x17d?^RqUJwpiG-%SEw8nKGwR@j@~qY*gUgVIQxEm6hMk@U!=y>B zyv2)WSYVjYZkSMC>#c1$ZK}cPEU`ed%*lNfmMZx27H)6! zG`S}g3jc=z4riYtGfQj-@8|~l>}is17jS;G9e_66UQSvgdodu zti~&noIxCfBFnb$kfY()P)ZdrWt2jpg|t9{(z0i1%PfUbM$0avjM732lvVa_p}%wP z+fR};EVuoC|2THuJ9nIO?|t{(cgH!OqulOOZhxTM{!qC+U%9Lr3FY=l<@PD%_G#tzkIL;c%I&kt?Q_cQ^UCd?l-oZmw=XKUFDbWwRc`;L z+`g>bzM|YRpj)9O|E`3-rrf@++`ggQzNy^4rQH5QxqVx?eMh-{Pq}?xx&27F{aCsE zM7jM`x&2JJWf-DD(f_H0{!6+2Lb?4?zAXTwd9m*l3@f+0mD`YVi~GC{OhiGHUct=} zZpW0{uPe9TgtP|;2~aghOnZyM>_ho>+Ct@ak#bw9+%8sbt5E;9ketPVrry=$KJq-g zuO_;HZlc}vSb8RS1-yekkr??uLFlXWRbVIofHz^mNOtbIpn{mpG0{@Ek-JgAD~ScqpP{$0PweJR;F$LUs@nJaC^E6}_>s7&4H+~VnI-wJAQ?M+Rl(V6>>!4hEKBkC?`0?d#Vj zZE4?XI(GIxaIH|OV$jst(qcMp_CDrK!Gnx#?X9itZJuV2>FYE0fj5N`G8`BJj>pg4 z2YwUQ5Sz=v(t&k!Tf4_?w|h{p+w={5{|Q+PcK&n*{?UW!bu#(~#Bskb;y{@XEq()L z(*{ibRIy~K87pOGW+vg241Rb7vt>{7k*IeO+j%n>60V3?^BvdR06Qz~*f|$|ZF*nm< zt_&&&trOdBHkE|b`&{BG2p@>@hHi&)jvW}l0IShQ$SRIE~^ zRJTeYDNdF&KZhTVWL;;A7*nZKUz8!$7#^n~>ErYdv8Nf%{o~x3-s4miK&rCv+?D#s zk5iRasvLWqyKl}b;?@iOHEcGmH<`_Ho?h^rj&58)qihQLY#>=BrRQi#R*;mH)fHT- zu*4YG|I;~el~u)^#J#~=`5*G{!4AM3aN2)X)L2>{tKB9k0ZP|NC9QBM3NnPG_ zl+yHU=l2wp?wq(8Q0Grno=jWiPcO#eD=6KXftYl3|MW8Er6D5}=@f_waT6<)n=41Dl+0({Bm-zlpSeqa()Bbukzl z*2Jpz2*n*TmM%!xNTEQs-@ysm=!=N4v{ohVzbjqr5v$g&4UKwsfr4~@?yGFc4;xFD zsj93M8V!$4flTAqjiuIPGJ8VaLHrc@L!n@DZRqU#rD2b;bX79pL3n$527-I0pwjd> zW9f!ua)-U>tZmBbOp-q22=uI}dB_F${?FiGtv1O0nxD!0`CG^g*w4EWH2${ItLSz8 z1tkD{UlGUzc}zeIg#X#ElaWpXTry!IquWmeBDk6H&a@vS=7?VGs(lqV<(}owbIM{wCN3TnrY#cY*cqi~PG__ge%uzcrvQ+yNE=!(iuo7VP@p z0QS9)fo<=*VAop&tB2&s;CF!)?~7o;`z~yjmh!lum99hn<;v|E<#z2fI)~t`w9N!kwu#6kvb$#(q&69lwwFcP_lgr~sjaC|ws_*A zrR|QrvGwPhi?}(lTE4<$I^JxW16y@=*f`C0Kuxedfw}Ndu)1%f()`Pg!p$`l1E@^G z&MWTKf?cxHy#!*GEn9Y&rE>`U1N#C!0e`oJO{bOWU{0w9v99yy6?0343dE)fNNkwE z)7d8OM%x>6Uz@Kbs*PGC)7zdb0Ts(eYcLqYu^5%*BPOe2aAP%*U-Nez7jT zN=Glz(Mxr7wT@;UOI7@9bn&%1n)#PerLWh7ixet|AtxBe*Ctv|{y)}_BhM+@smdHq+eTmO~+M3?@jI{GpleYuX- ztsl#E>&J54`my|KUH)ryG;;}~YOm{b@z?9<8+G*0bo5R5{u^NjfV-Yw#9s!s{`Zg z5UKUl$%iE2ps%`b?uXj)Fv%{bwROq`zi>Pvo{AdJVwIU-m(^vPa_O%ms5ZDAnELj< zH?iQ_DX;N^i3B^_Hcq+VHzMflR{NkCTK-ga>xYuOP*dN|uj2ZDI)MKIn%-gH;bWXs z0rKZ=(A@hmf&!=b@tO0un8}f8(@0<>w%|}tptrhDf=f^AXrX5=3Te-^kT?$){xX!) znlm{vI?G0XM1{<<{U8*xB3ELV^8gXkeP=1MUY}Fe9fCR4n9Cp8b|A8^&nbIwoeXR}0J+!Zp8Kvj$arH;8S7oW95owdY{-=i!5575P@!ky_us^UR%n2` z9{hc-<74~-q>yX@zkV;%DjK4;B^YzY2{YfSO=m!r2W#4&2p9|l2-7=aWWjbNXHp0bWS6gjV&?C7U( zwzYel0Hq98KdxO1ax!|Wd21Y+p+~YEhoFo#xhsFI3S!bbADP>8!#uGUv!f115tIJ< z2yLViAvx#TS%Lf~J!4Vx7aX>=*xNR`n~$>Ou=oi)!F81*|4GkVgyOSK5Af@qEsY+A z>g}6{+$TM|7P#A*?SRbQ)b7O7C%9|hVs`>2{8oJb3%D;h@crxKA15oxCG-ILZTZzs z=ccD%8kEzx&RA;7O|I3B1HHF|~Cy?5EOaV$zo7xK1!EvpTt)HmFiye-L6eE-)^bY?V+k zB@!5{?z6#o2_pns;4i8fwL@+2uQFW7M6I8E>&1z3Z-et{QEg|7<*>sn zHIAq?l3H6CDrQpG80Y7_Rh6o?wl~TZtzB7(?|(i&iv!<37m)en zDq2g=qhs6&>Ad(kNHh7ToBRGA%b&@f!+fJRx6i=?t|S}{i$;P2a6&%dw@5Y^mc^Be z)ZO1w1umRweU&l8ELM>6+!w^k7ARg5iZ7h^RPW6l&6!;wk<`rIb41T+FY>w3M@g+ow+M8%st&MoQ1Yp-Rz-Co_AbFSD~m$_Z+2d zoM`Cla)1eMYp2`3&F ztF;AYjNt1U05BTa3LE$T_T#SM;P(T5ZT#*Z?*FwLwrnwg=ATf%xQ&M_0lO*TL%7!Hj%z&T;SI}ix_Z9%6XvLz6nz}_>id>zA~ zU?dnB8}>_nWS1RCw*f$is;%SGNChPDvKMfO7(e}3xcr+xnM@;l$-n4S?Estr81#8h zA(Fj0#v3bYnXZMR(WC;%5pijfwoZ~WL&@Yx)X<+$pXgI4#=I2801O-iq3S*pbUo+}#)>Ltb*l&#OdAl%$7Abgw&qZ@WNUvnNd9wzR<}31 z0LNz2Bqb*4ciL7z3tqd+zizB3hqpkma1-p>9CfxD4`RDaO(B>v9kMr@h4;S}-~Sj_ z%iRV(K%XN)u;KeAg?DuN>0`!E8+_Ri+ab#T94J%+EEL;2Cc3sFU{@HEEmT1GghpRD@|R! z2Vt~Y+W~c57-rq-LjC?_3^bFb$p1pt09n5iKMssDXzSKk{ zj3TSug=K4Ipk--;KSYhGzq1HKH#L2bjd*5~P7$W`Q*WLTBgP6rlUVuIsU|(BYl^6a zQ`ii1KTE3&Q`!!5KT4wvQ`{Zq{wu9AOl>=So?rq3lMnDE`X8D0oq_NF|2OgfxeuY} zh&TEV`1=d^a$5}7XW{P+xL*lZjDrb2|8pUX#XSTx>NP(M*J?4%lW@<&{Uh*qAN+wa zH1`1f0VomzBj6u@F3~x4!8%*|26q8Vg9el*@XGOCg+fG7XLkRGP{1C ze2ZPrC8x0KdE``fy?~s?t{0Ni+4V={+w6J~IfGpOm{DPjJv$z_E3zb2QH@3Z(T$hqu#B{`2>uOj={^=k41cD;uDkX^4O=dm%egc72rG&aRJ#O80cKtiKn_XWczhT$c$vy1)2Kg!;)o?D`pbf?Yo+ zPqOP5|0aLLE9J;D?8=j8*_Dvz@cloSyN=_2!#x8tfMR|*cOBo#2l#RR z0{$lcVgB#LNGbvAV=Ewhf0tYdK0jXsjNlTw5-@^~repMMdNsWr5ItU@?@r(sSF=`+ zd2Zhyu>|U2+ihXL*|ZF{-C$jWfVqGlDS)9So>$DGl?3*K20Os0T$q29pFM{z#V~QB z&ISlv5x?P1ZK#meu;0OSqbjWvTyl^2(M_y<#6J|lJw9?`$|Qz|52W=fF7l2S87`x1 z$SA0^d&m6Ua*2>_Eg4A~S4Tz*$(Nx`K?d5^sbJ(P7jW4>bfL zVX`k-Ox`vNwI$4hm3O$DotR!?_uUDj4NuOdRqDdH#)f?4 z2MGf6cCx;rG#lb7vVxtLBqFbiMc|1z11y9-3b<4NwU*zErhAA{IgITX&KqX(1UeM; zMO=Yn{rOfF=m0cf>_;p%W^I}Ju%uP$Hz z>YBPPy!Ei#>b}C`1`y9Nv9z2E8=IhNuAEC7PcCh1W6q_GP9V*mb7{wi5Q;X@V*@2? zyK{@Zu_o6&E%zzE1Q5UW@sGhb{|N8{ zd;@t6ki52mr{4$Q-;>}80RC}YJq@U>f%-JZ@Zu3nI%)j))%En^M=V_JBUfOaZ1W{; z7_mG$SyyHu=c+97T)m3!PT5w{zPO|YRo!Qpmu0^4Ec02i%vX_RzJs&OH$TgKhh&*= zL6-Rr%`)G@Eb}eOGG8UW|EsxoIr#mO-w!;1E#g=5jl2`afg%3u{An;6T*i<99^?Pa zzr}wJBf|mYkQ{gm*LeSiLa-l=Z{mwJ)Fm3~#~SKV4fPWZ^-~RXnTDEr372c+U7?|_ z)KFJxsH-*9H5%$#4RxJ{x?V%wprLNmP(Ra9H)*J!Yp9zw)GZq7RtZZ{!m!Azjn&#j@cUb*kERjBM#M0*-@mqHJ{X-Vm4 z?~uhm8u5pQyaN`t_N=y8+iU_nW595XP}0jF-TpXBnO0gTIIZEFO}9lO25)8TBlK{%N3WG*ewaAZM= zHIcMQvo?H@m^E0nHiGdKxPxo7Hv!Z^ay6RdZFIb|prkgw)H3VL8^Z979R(#eJqa~1GeXA!!>KIl5a>0Qtk-w=R?uPx z%No(L-sL#b-o3UfDga@J+3px9S%M$hV7RLrj-0w8OZ#A;@Cc^k9$$BVm%hJGTalie zq%}zQy?O%Q|4Qx`;O7tidy)HupUzkChw)qaLH;EEJpLN~ZvKy;6=Wo4So1fLBgr7( z{htFT&9{+9$e+kN;N7-b)7>u%0Zl%k zRR55J+T9&O&}(uKDE$dR56eNQgva>5BlCB~9VW_T>vI7Vve`QK5t$Kc(=kRb z$(dY^4zaBtP{L5to2C1!I!t7KpAse^PR@M+593&V5Br3JuH#n#f<2nLN! z&h}Q1wZp+2d?y_n6P^fEOBO}ZA@E3INrS&-+2R41cUda@YgX36|EpHi;C)S9t;OZ{ z!!&Vl5RNx2-d&($pq;^|!Cac2#cIcA7IJG?-FFMC6E>UNYIV37nhO|odKw(=l;1M# z`Nul3w$miP3W=G*x};{bX1RbY(%GV{K@umI3;m7p;v#ONmzYf(W99Il$y}jmXe7|O zNcE_cr4`>SX`wEH79I*mEaK8?@vxv0fuseTy*7Bm{y2lB1fnNoqf~gp;!E{bWX291 zFG8~)XaTc}nf=Tek=GS2U!T7_I^fTs)(0rHX7*!}H`{oo(vnLldVCtGyvPc_{{>tf z$KAqTOibihu8urTe?)^E7b`3<+XFia%r-Dwl9hjlLoq{v*?K~&ItVQ0!Z5#S7zq0M z9Yc{IPG{0tVWOQs`i<>s^$)gshkCnUUNr1kUhP|CVZ2%bL;YyuG(5^kcTkXHsVtZk z>oJ<`{d>!G#gGj5+WdQ55m=55HZU)vshV2nT5^#^otar#37u_N)mA0EIqHx4?SsRSNnEUX@8g78Q(g%}6*R{T3nz-5wq&B%d4EBrJq>3O&DU^n zvY2U2$ztYxQ~@w95;x%~YvG3t(FL?sNs$Dk*bq)9)wE6O)@MVBbr%fj>^U1khthUM z5Wdh*k~q|5!!cnNvI ztt_WM4DRSe%|Sy%%L4}x+=G+GT$^`bz|e=2ey9t~SM7H6f#qp7EWr6ahB4r~=KOs| zI*T|uoQ2=Qxw@mn?JV5G?$By)*8a4dpm~r7r#R;QSOn-n6@F8=gKWpK{4QtVm=FYa zElgn@|xCW7xd2x^Im%+ZNr~%iKkmOW{69t4v|!XldpWJMhlx zB5uA=!gXfTd?;ZD6b=^4&UR08PReN3l~KiCDVZuzF5AL8mlkmqP_{CYX}j4}0cBIZ z4>>7X6Cw*h(+U2?L_&cRvnb-$S(LIWp>k2H?p#vDRSM16X*N|#51K(ly0>?vgk(tT zY3tD%*yEH%Smc5$Mb)N|i#zYmszm(~a4fC4>6a^Y&m7CaxQqP~ybgPH{gOq?C9J-4 zvGDB6O{MVWz_Xt-(g94i2mAxwIeGT;m9rR}^1w~(B zGGA?$`RcOFSD$6RS>{`nWxmx}=39gF|GC_+IQV^DA6rAHrrie}m?T>^f|9T@emhBoxn`nSJ$-DV*n*=bjQ!?>u@iDO z)=iYxxOu|ZVs{F%HBenX4tA#^!yq@A>f zM(F9VLvS1Y1AU#l68_G{Wly8c=4nQwEZZh_8n(%f$Fy+Dg|HZ4_imo93vRWywmY|* z^K`)uhYM31is*b|vvvTiIRIJ&!-dx?0kxjiaDU+?>HtjfVqbpWQgS_xReQe2@9z!Wzs0V`RGE7bv*;yNW@6-)6`bpWQg3>Si| z`nV7*{FxlTt%hajR|jB*0VP0ao*n7{OmUE~XO}tvQ+SmCp?S8c129D|J2bO7Jq-YT34P%~6^-$av7<2| zev44shqOVM>S-w#9NHq6$5k}OKgz@c7Z>2_V}eK20hoem1KS`4drD8~x^j|^kHPM3 zbN?;8Eb?n2qGHYcG*LLD|3b$d(&LK)sQz%KuDop+?A~VPP5ke;0zSm?Au^lz$!&Bx z-2uCL>>uZY!C~@0&O$&jEjJ`x{Up&g;(-B{GKxi6_ zj#m5NIiJyl4)Y4K z0dNtEEw~Z=@=eRQ%Hoq2#x2(M+R<}h<^!Rc5n?Pt*NF(-#lajMW?M3;o3OIk(Hmo4 zwyXl-kWeC=|IgyCN&HuQ|Bc)T2fwfLUHqe@f&2p2@MnWRkW=V& z68=X@V1l&Z7ZfhaoquqbKcrxONN^6zGhHo6_?XGC6=EqxX6zXvmB^EEs#&`=j@s2^#li!>C&8<6YA?2ToLAsWaOLo|>nhG-yD4ADTQ7@~npF?(Z~ zVt4~G#qb7X>MBji7~X&!$M6PZis22&6vG>kDTX&7Qw(oFrWoFUOfkFxnPPYYGR5!) zWa<~1lKoOcF)RW(CBq_+DTYNLQw)nhrWh81Ofg$znR-(r;VljIwuX8~L%pk^-qTR; zYp4%2)JGcXV-59*hWb=PeWsy4*HHh|Q2$a>2BM)rg-?0M3*u;s=H${~2Rzr(<|dQ2 z6?;~$rIjU@HU)K?KhaB*>#EJb_kTXOnd5r6lVHE^4$uO47e<2B{84cB_hbHd{3~P{ zSxPpO-Q@e^N^Uc`mE1%A0Gn~u}#=pV`JB%zk>L?_E%>BlzO zJxqD_EB)A^^z~zz3Tq-|*b-XLgYxg#a*sU}3Whv_l5nVb7OmnP0|WkE?|>B6GJ}>9 z28P+3H(X2?kd`eDPou+y&VU7$SHFZk%~19{izIf+OM|^hENGW7&a*`#qSw z6~A3h`$o?eYfJe_XqkzoUSK`$ZbxNG(DTi^3J<|G24Ky3Pc5P@ZJ4O?qO)it=cJqP z)-)4R6Tbfi96(~<2mZf5Bd3v9x%Ko|dN92TA~;TMq!C+TG_UE8ITUk*Sb@=8A6u|S z2?4ALW?JC%`}|;JfqL4R4q1s0=nw@JEg6`Z$Kv6U4sXai2nGY8u%)u%=2#h61MP^Z zoD@Jo@JV3-!dnB8zQB+RKvW0PGy9NiN-#I7hDXDK)r3M@Lm}_j5|!~83R_}f6=urh z7Qb+*q*umfgGI`YnAWPMEf@*(jIp)?3j#QOi$Dcao7RYXr*Re?l5vfo@-JDIC3k^*oIVqUW|Hbe95Isn4~KqZ*@3VIC#?e(OOPgLrJa|?~JkD_I4 z8I?_8{K!fwl{y86gDDIY=rgc1v+mSbnvICX5jzt=Dl_AlVwWJW>L z5>=MfvOOeNm`&7Qie&l!DwEZ@a1uV!N7m$&AFA3 zk3j!_3|@8qWNwUK%->Ho(=);U&xzc%Nf1EzlVb-O%^P>bik0RR`kes2&0NC4%O-0~ zCG0{V@n^9rquH?|wnE_}==cqIeg5{L&Y@ta+aL0G+a+}Fgp9y`LQ*h}NG~q7HM7=I zS%oI*emIbC@eV|j^i6P@=MExdGdwR?B5^mxN{r_A9kBvkf#D5y_aXR8OAt;5U6EkO z+w1QLGE|nd%ZyK4_*Oy5*?hnq1jb7&>Q3YU>*UcT@+ip44u$(36z)zm%&gyeyt-`o zZUPUdAN1C{TfxjPWohKMnY|XO@?eD2gq^A)MMtgCNKlXfCHV+CQc-N4(QFIEW+_EU zgjX(_%%m!k)^d4~h4lu8e6EyE36qM*LJ(;i8Z$bIH|`)qN(ZC2pF(TRh|MyZYXdPT zZe?tm5zOq=1GLzko#M!os)+Ka%*J!2Sd3JjmSh^L9x?D>tP@^y49ks`nZQGT5GcQIu^oahCIx};YNzoWhWP<3BL7v!&4OZOyVojkv! zYEl7q=iGi$q2U{_G<#NO0;@IIXa5FBUoMp-@%WNNEi&#EdInfE*ouCEMSba02|yu2Ow{Xdv%<+xqk3EXAi+v-EUjBfz{KW72<*JJ#LVE=y@IhveA zt{@MQw`dVPglh#2|HEl3^@C2(IN1MOL2rT6yQjhaKf&H#`LPq(h?k{h{B4+(R$|UhWGD-Y)CW+t4B=NhMBz`ZG#P4U4 z_=8Lmf0#+)k1|R8F~0u`xgN^S|1JYBfG=?WBs97ifrFKz>R7Mn0y~-~@0P*aCNgHSlp@4}1w&1m6!f!T+Ea!<^tT`WiivqCM3x zp8pMZ%Wx-lr?aiyWAALUx^2z*O=yW3AG;NonGJy4x+#AJeih?WY-_Y{$!|my&bYWX zSh?pj6J1qQi^J`PT?9Lz<67JDoj5TW?q-NWPKO(yI-Biazy(J)o%Z}{oXQM$Yjf;i zb?I&efZ%okBRGEnj>E&<9afhszY+)S;cf=tVry@-8;-(ZSPW=xZ{Or$p&lU%Y%tjK z7viu!4BNfok)8o>uXzwXwV`|Ji0OFr$cOk7fba+CwXmjl*=?P$Uw}}ape$i{pK%uw zcpM!94B+fGRz?hU+M3x4G{1By-6?Q#0Y(fserrMuR(J-T0K*FF$aYqHM;p}K(P;QA zlhnn#GD$u2%}i3yz71`6SqrGj?E!CvhHc4WX77OR%-U3R6z_?Y|4?cX)K&4|Ib6}U z_@J@)ptIwHZjBFmB0lJYxS-_53~j)BGEN4_ZT9+z1Jh?}5+hJIFKSW!NDsp;kH!)&dvP`v3`q>%*gZ^Z{@P z-2`p{gnL{l`Qcz}7*Ar#FU8MX&u}#2n|Ca#Bl_Wt3M2CVg&%sP*ufT_+qaMSLwmsF z&Y$-s`efC_fqM)k`cwQI`dtHl|1chO3CH&NW?b_iG1To1b+g#~{qY0g7g6^7-T4Lh zrDZ4gY+E`ssAEER;<(8Yz=E3{>(lDEpuE|PEuP}BBzgaolQ0^x($5yttppr3*w_ww zTf5sMf83q+&7BS>?B)u12YF+xI-!u@Oo2^@E*D39tj^I${WulhOAvOTr=ngu&Dj!XC7g zqle%;sux{BkAP>4V90zD+O8usECL;S0P>j?Cf|mFFqq-*1BwJIkO%Si^Vj1fD=-8A z&HkBBU{eA&kHAilV&03>zX3QWhDntZn!>~MfLiQr8{N%@4=ZUWi)?Z@!9juGFBhRF z^%F(IpQ@=RE+u%@WmBy94Sz)x4=Fu* z>=ovxp7th>D%IOkU68Bn+}G2-6;6W;ZzYao^IXIKvj4At;Lsppl@X?iEmKSrTc(&M zwoEZiY?)%3*fPa5v1MxNC48u<1JnGLr8CWMnPQsXGQ~8%Wr}Hj%M{c6mZ>i^628<> z|5j6!(@?yIVmjgyPs((}Wy+vQnWv%hHB^CyGHR%48fvoS;D`B#0N3kb(Ea^B z{Sgcc34THa=4FA+iel0TQ?p{qSOEGA>bL+{Ub(}jBmgzs&LMOQz*M19>7m5DM)Ugq zy;>zu^jFskN~xeyhZtB&`lFaiM5{s?N0;@Y8eXcsmYYTu=5EjE3Yb)qZjrK1Jr zr91mIjqmaf4i7NxThOvi$xv4QQ|b4~xcvg+J!)2lw}MutYfm78jx3;3Z^!Zr%&j{D zTFHKI$k*2t47GutcGeo$C{ED5#yd&5k2w?=_916?5PDW2y$CvycIaYy*zk-zU_^;86G^0RL!c$Og^Fo8j*yQltS4IZe^HIVP z_{f6NPNqW1pgwnpmb|W*3Re< zejeD{l7_j9&|T<5+Y3rvsd$g#cT_?wPPf#*?uzX*XokK@jP{r`Ko=K%wF z20x!)$GiA`{zU$K{wDrG{%`z0$t(h{I>8rEn4C^7CAX6&$eZB(vy9f$P1FbH|L1T% zdbNz`aTlEbzewMu?^$qb6UQaoL52-)$Hul+*xW2HPaIy%(1GLA7Y`&!e|D1aE0cu( zE=l-HiNj}dNx~0F623Y~xGzcgiAloGO%ne5B;jmpIlkRyO;4PD*5V}L>yw0cB?-uyC_Nc(j?(qlY|c^3I9%#@XL~fKbIu@4XxMLThiPo|<8>U<4#Grs@D+=(3g-oU-WAH=uwC-Jue z?*DwUjhsP#Lq37iRWCi4K1d%-`uXRU(|)G#oXOGSev`^Hkx7njLQPGQq)amHpG~I1 zY%&#Plc_kHOf$2|G%K4-v$M%GC!0(MWRs~Rn@k60lc_YDOb2C?sVtjJbMgJR2=;%s zz}No~?tQ)(tbpy{31|pYp+1A?L=xB1-8_A8R#?IneJ3-OUv(d2y9FAi;X3)UO*vHrs=qPNrhGr1EXTz-+N{p)aE#w-?Eq(Q z_WZtu6rf+wjikVsCj@*p>56!#>Dh|P~Xvp6SUB(}peJ*MkggrxmK-J6h~uYf6hyvo=A5;3ykjOS(V4 z|I;`>2fx4OE&M59@zY7}rVC*g@EUq0tQKv!rb%aA!?awmd&jS9CYjyeB^kZx4E^b| zM;l8E1&k}UdyssKJINNz#8y{*g@5gZ#W*v|Wc){)LEQu^8eY40RNne$fw%$e7-D;n zsTOsTT_euWaI>bmFMn2lL8&*1oL10^8H^6XQA-Hhfr$W5)}UFH#=<{=tOJgQrFs%s z!g{y8hY7-ih?FbI1OjGHP#H;pE9yg}k)G&)75BBg2uqTUtONb9eUzdyiY%;FHd1Cz zP$S$)Ywv0ChI(NuMsBz4yTY7-f>K|S8VRyogRmEv8(}3Tc>gK)7mnP(Uk;c5Yd^8Z z@!mqNatAnKx1GQoT+YetNRoXLs(r>i5?tg2hZD<=3d7J4@Coo7S~(MBQ@Op=oR&%o zIJj@VH*dVBh+Bd6*d1GAHmv~1k{|#mT`qhTGymJHBAu5Pty=Beub)Rv7p9XUQ`2!yCsRx(O``ISP{-w2HB_U9vTLX& z4Yg52HESq`hWeU@+N7ac)Kosx@sr9~pec0$(}9!Ym=2swF&#LWVmfd##dP3gis`^f zlu^@WMvc7UqtqoUK1M^0YAB}mE%7WqP8~P4qc8fveGI!Qx~ zYp9bo)VDO$X&UNu4fSmeb%uuej)po@L!G6ezN?|m)==kYsPCyMvrj{HYbd{l>d{aE z0`Gr5*9rgg-{m@aE3EV{1e?7R>FN9eFbt4>Ism7oeoO*7NdP{g`S1Xb*3-|=6Fq}#UQXXoGA1w*=PK!RpK6}FHu{0iQ6X1Z2^QI-t&oooGfTMDj zO+@NiViC&0!USy-Re;1*I%pU3qANEz4CVno(H7eddP_UhdP|zRBA#2CU{`WgSy>cy z4Ms{O5f9RZ@5Atj=8L3^>=s3Hr#aBu2gdHOGKEvaG2DmP8tnHEN&HlKbTEPB0eF|H9V)#dp>iF5e}8UjrK^uL(IAh2@NW;J`i%;6QV{L}Z8IOtwu6Ik;+0h?AfK*z zAp{=iG!Xi|y#Nl@+P`5fD}me`i7y*Y~*Sey=J1%@7-z+ZTZ$yW8Ib?I7M+;H8QBA{Jpo5rBIg zE-*an9N#;Prgmw{AG8(2n#mv^0I z+VPh7%CEENn^oO3LjBezsGro{IR7t#qra4=e{cer{N>2z=wV(qnaZ=t^q-St$)CkL4EzBm8@>LK@o`aCl}@y8Mrn@276?WMq@PSr?Bi<_V|G$lyZEJ+#a>#yM!-w^oz9}N0`^l$Wc^j1Ld8K)!Q&*N}70W2h+ zl0SmKkMqe1fB;xeiur$mF2I9;2Cxr&gSf$7;1GU)?qk3Vypg+rJ2t7e@Y&->8n{X# zz2A6d8XBXde0;ls+aLyOCZWROoANWqw;8wvpj154B3Teou5^5>fvYFt+b1x?S)eCE z{(b2976T`qYEO7vJZHSqz*P~sZEz1A7<@5n+-=|%YQxFrbH-hmnu!!qy#ZF5d^Ts? ziQz)UY!X;B`Sg(S%?8dv1WyPE*bG)MqNY78Ke^zi>WA zKAt_^j*T`fY*YYv0M0wfN2TL!SbKrBwY%F5$lF32kPl~$w_GpOUpd*$O_Qyz;W%nHRY>%}pSyt{bZVc~R}wU(iz*>WH!A^*Q4W_(-8{ z>Z+61W{+FN26jM)gXiD(!Rzm3^fHL~G6} zpib8$l2ktxb-FgOq$#M=<@o+v0QM7ppW{B}O@RG5pReYf{BD>B{FJ|o|0DkaSpF;o z+|MJyGsqR-{qHr(!|LF0x`hVl8FU}h{C!E(0^UF(g8*;U+G+(gOi)$?xJhRIFlvj2 zLI4RR>(kO-p$hEqXhQAZV+E~QF;3RaT`TMV=C{b|#D=Nn|EMf#=8w|QTs|(L=CWLe z?&Qn?S$#q7?eYm&NNB=iR1L&z1FyFG;3foOipdxGU^F z3!29|{o=ek)6*}`yF00Vao$ab(3JYcdB4$BK+-SHyF)JKL<`2J6Y3Y|{XDULaUO#S z-HrNKvVQST($Ftvuy{7_Nz%qJ7+7nk0T6;GjG3@f3D^oz+G`2JUMClc7(wzz1|cT0vKUR{$@K(o^Y$^hWw5;Qzix?}96W>56WBW%r2Rl>+Pcqh&0%Zh33@ zK8aYqy0!c~1aZTBaDT28QD4_uehxkk(3@`q(6`1`tH%NT(YoXsnU1CsK*3+mM{V&e3T#pMa=zI z!U)LmImaP{B8;qn!sqrhSGcA2s9o7weumVRK*$X|E(Jon%7LdzfzXU{;F%IHaJyW7 zwv+-0IfeYN;IYVo-@$=Gcsz30iP&##tsNc*y5_87Dcakb92-4WaDNHUYwjOZVK%1? z!^{P&WrcL2`%PqE8fIk?!&|K^@!Y4_!xsYWpcwB0m}B5!Qt`FBS=ij?Rrxn|INDhO z9%pSVhdoGvR1drTeX7HayWD$La^qF$ysr-GjUR^ z7CiznMdftt!HXS3GWx-m?r3+p9N?(f@N3p*p#;K}<2svDb)=DI>8HImap@(!NI@?#xq>AqONutD9U=cnAQ%k~j4{PZ z)@_uNSW#_9Q`E$bkpsy}YpTz6#B&d+QI)dc_kTM2|6b2s!c*SHUrLPR81e*NNiV?N ze|kF(2)m4B^TE5eiHM3*qK2)nplsow2|mSwVijB5ONZa7o<(5DHxTXicSQuyxjs=< z3APUy8=C+Cl>e@`pls<*6U-k}GGyo9o=7S&B72{Xz04tODBVy{R<={A8xx;CV*~HO z#+jusP^llMDxG8j*wtXOb=9r}4D?3uf!JZ|8V*GUy}nSey02(QH}W^Q)ry_sx@?3;ZgsY<@>tz#YMY$PYiep%t6Qw- zF&|0+)kmrCXVbAXQe4*7RW6N;PlWkDxcKYm3#dxBzZPi($D|gs^llER~y(i2x6EPCFtiG1o+fDs3KcHsEO5o;O{) z6ca+_2FcrBZd%4tjAjS~@{=pnmQzfFEtEHd&F1BLsiFh`gS=@8^P-=Cy!{g9WiABR z`YF$ZD_`+pfpcAH<>P@314mo49dHox=Hu38f+SLWnReYMv%oI5Lfc-#BGs@;+g|_o zmah2z&ww33_#Nl|${)_3%m0Hkg3izT)B!l4*W%Zo+fmSEEHQ6~zgRI0M{G!!;Dyp2 zQXN)jm(|_s@AcN#)vE`gnV%td_VJkn=g6RcfQ@e}m#dl2I$#GfpEJ2)i_F(-vuk+Q zY(?ItN%3y!u+_oPui?983-X;YDZZ_)j^*`QwgWj}3q$Uz+EGnuPs&~V-kulD_vwJyY#&yd* z-C+=*;eH^#|Ha%*9Q?ip-+d?S_}#(3M-By?zq81_Fbb4|7SI^11D;@iPq6Vo{BJ^q z;|U{0v{IOqgH4rZSG1=G+a)qTJey1_vdOeE zn@p>+$+S8h*tv*^c)2E%#A`E2ye^Z(hh>s@eI|(y&m{2%eENV7I4Yfi;t<+GfG}P2fSgnz_MnkRDQ0p|*VH#?^hB{nBZO~8*r$BB&hEpI@ z>`YmvY?^!w!$6K>7zQ%cq)E9^Loo~kIVHm|kST^?AX5y(K&BXmflRe(c(!S%b`8~` zp*CwMr-pKAD7S{{)KFVA)K(3(O+#(hP)BO09U7`jLoqx~xwZ@?L8d&Klt*hQuZG&C zp_s+L%!OI}%M`QtmnmlPFH^l5E`49U|8mPr#R&7&`!9LD`Re_bTH=51{h!V`IQYGq zH}bvw17rc5^1ndWgAPv*1;b$J$2;*pcP=)N<;_Z56xWYx)`P{>UAP^Ji*4;8L`M6% zq6CkvRkHVb!*g%#NxY; z#L`cjeCgwM(u<$WRk>SjO)Ki^S7^%p!Nfhbb0Ros`D6xrjIfu|w0yayU1pZ%jDG-* zdKw12$NJUfpSd^}CmC4&jt<-MniZaH0RSz~yi_yWr_+PEJnmVJdlt}sKY~^N1K|Jb zR5~iX^(n5~3jpK?9Dj5IehE4N>50Zx8^I|{%%@h z4=GNH7yQ_)pHPZ;D4h#oKB*&0C;LK`7;+BtQHLg?nK+MGB!D182y~aZ@IVH)fK!Ig`YWOcH-Blf;`cN!*f2;?_(Ow`G#JJ(I*8 znIztvNn&RviCwtK+e zHUpk;K!q)+Dlou6r1x4)x&;{8A-Nds|BW0N`E%35pu=-8`8jFgpW*u<=(7pG^tp*V ze$-e}8MDFClAUgfh7F>vh|=_6&)?BjP*Q%Jl29~+QPQ{oc})fW#sL3q!NI}cP?w}@ z=nD>lYu-p*bzcP-@*7-(#*!+P*|K0&A(?(m%vsWNYpAQMsrBGAOL8S3dUaG}4)p|j ztNTna#?tkD#*zw^M4QtCwlY&-*ZC+sp06daBHgxPDx`G*hUEN2(rTtc+5pt;>;%$W z%csH?_a`9jh+~W;3sjE{?c1##tEQrImx8#}3B}b-g*dkVU(NxLLy$Y2yM()o`y+S& z+Mi#>x9~nb#{Yo7j=zV02dw`NCL2f>ITkd7?jSFa&*_1*iXH(wgx{c7(#Pow^h5f` zOJqBAL?YXv#tdwS_GgblZ##65 zXk(Meb|~+?#F5N)DDQ(Lk!U-V_b#h=65FA?cUW5|w;js+M|=W}?NHuF@d-4xLwO&I zrPG@Sp^;7A`(o+zk<4}|??dzu1SU8t+aX&b+o6WEY=^8#Y==zg+YS|_X**Pyne7m> z|C_-b%E9jm+%tSFtp5K>)`ITO+w^PnC)7)?=D5xR@B_3?<&s3Obz<(QoNLz(k2FRH z2gg<<{a}jPKGGKveWW>C92`PBCgeV%7=~oX`v!1wWuKTgZoi^oL57^KO<8KT zvdpSQZo>8dBE_e^Zx;~0Q2~R`3jwE3gH4mi`@P185I$BX|RTp1x}pM$Wh|T3i5F zXntiL`;~cYa!cC(xOprhBSc0)Lp3~RDJZ53kcbX-3!W=2dHDd686|&V7sD*!@)Vli z!xzRs;2pE>0t+aAH~j;GH;7-I+BJq7Rb*YQ;RaO65o7BOe^XJ*4fm_46^3V3)Jnq( zDr%MCauv1O@TiJfWB3c!BkF4!@b-r30<_PM`p|1#K|a3!|E2x^&P+Bcw`7ud>Ns!B zq!`;WNxVIi#7Ab5ct<9QyD~|pyy zR{Af4xUP$Dzo@S*7zy-@q4tBHKDLZ{6PG^f!xV5(JTNe36?|#J7w7Rx+L*>=;AEKZ(ASQb-X>~{0j=tpV zmOhn~-zaP^z)m|>G)$jKTGP=s|DKk>E)T4Xha&Xhxg7ldm0!dk!{5e#K^n-n$is9N?W9+O{?iUaYz@?7n;}*&R;SSr zo1v{)gCSNRhqN1F6*7_dmC`*XJM<5Aj!lMGshUo3w5Q{M2XMRaEUs%;&>QOZgvS7v zJ`kz)9iZo(2`^tTA4vK${aVMxrn|U}eG#DMN_LWVBi8w;|=1%4zg(EP&MTe_>=1FmpI?TMu zJn9knF8In*z-7Z=B;%ySpC4nN>+*_9W)o7e)Lp z1J}-xXZY`PZ^O;xeqv?go#(XI#eh+ly+O^T>5GbdtjSKg9yhFjET3vW-{`gUa-25E`if64d*-cP9 z!NZ0d;DypGDECcWNv9=nx0g=Q70J3{?%goHvxqBWt$5r_VhKtDgxJtptsb z-H19{?E}Dq!Cn54+?XT50azn|$2pispbJ!y+q!AfmMuOE+@C^63tJ+6e#=l4^I3vD zmH=qXLRiQ<6dnvjU>D0039=+igk_PpyIU7lY1z| zEHE)f&ne7-QkqYFP}icO+Eikm>sYfgRVrx72&{v#b-fYh6L6Q%B9=WuL9k75ZENWP z*CCJ!nt(MCwirH_Zg^&vVbOQ1B^ZLuNAwezx?vI*P1jEN{XdjDlY_ngpK%Yu>HmkY z1F)Rm1gHPU@n^6TfS34BhzStD*O5-r%biKa$Qk5P@=NkKd7XR#*uIA{EbwDM6X5%> z!=qssn?2!3aM-g86t6t~dFyZ&RS5PC2L~XeUKOI`=|-14VjhnQ zQFI+HWfCmo>GzezP=3<{i=n~`k}ZbVMglIU5tTqVPC=^$6^Ww+d5aZtK(~%9y9^I` zqXW1Ab9w_|e}mO!2ZWizTN8)RV%y0=dU!J&9WDF6!5V^b5JC#y$0KgA5P%K@C2@2Q z_(eMbX+?fYiUfJ(c;YW`5VjN0tra~nQE1*m1oIZsy7mMjsOIMwLVa~w#`d%|mI`z( zOU<6I&pYhh1rwA=zz=2`^A@Qd=y0DG9&w#IM0n_oBg-vl(D`=FJAsu-69(L7;8DEL zVT6?adHbPyhY$n{sy)6)XuyMpRUoN?wKn6?GY}2;N#Qk$ygqQiIRIc_^N7;hU|0-E zNe@*DI|!$B!1O4EDTWMsm_+})x%zOJihwTVym^W+SbKrXW#F+)3By!q&ob{or2v{& z1XWa`5@f!x8PVQ@oghpP#9gc?!sh#7NM>Q;fQBlKL!HC4gf)(^L$MKcBcbOAJjmIs zW}`SRIbjkq;wR?|-~VEc+`<2adljHSVw=Zz6mg|&;EdH)nbyI;IgEz|-DwV#KHWem zesMs}6`8;n2Y&FQ!}jlBSQI`gyTFar&=8Ev_~}tTAkZu!Z!h>!g;z4YQBM$~8|7lr z@gs}C7amSaVu31?4ZjA8_pgLo8nB|&PEg=Q(0o&;DGYF|0zY?h06K_0%z|FUU})bR z1(dpOi+>aV55s{G|G=2^)q|m4z$J`=t5_hSVMqs`Os@r&-QM9o82!_$v?5tw@$KW= zi@0*3;w!35R`xWvLZ9@zgK0j{Ze6{V2P*Pm&ous#_P}nIWyn7ou?!CYk{f=;@WE#D zNJT-q%I!U3d|MH>O8CaRs!ZFVatU`s)2!$oT}4&%I^1{DZLtd9cyUrQ-0gOD+ARU0 z?*gA-XiRvVyT(-A8RtXz_6w|-cVIB^5vEc8p)huXp`gVJv#r752=<6UZ#T@Rf-pCL zw#3#GSf|%361Ih|4e|RwgS(yME!^#}`o9rQ`&-C);Nzo;4%6Ep@_+ZI+h{IjfRZCH z#(H-R_yxezqz{|zKE|(SC)yvWxZQ!Ka-iiR%jobA;l8R9# z?F|Ly3N1tMNy=tX>9TM(7MSNFPORJ&m?@v|KBf4Az#fu61U3qW{owHdoUNV-)=n@N zNLd<*)Bg4X^FmFHwg=#tMC_g^+2CXXdSw&7|90+ru>a-$&V9r$<=62JekU z{rm#f1i#|0Czq2SkkiTWfB@rqJN=p z(2wvBl@}yS&hn6oQr!+&7(9xU%))?FWQswqNR+u>ozFa=p@!5{#jP6Z77cZ?nkui< zPz*{)l2=}*iDM8%avX#9k*P*aN(PxD#Z@rC9+_fbJ~G9Ceq@S)0Lc^s2$CrV9wbv5 z=@m6<=@rW~RJDd$s-c!>s45M$SVL)A>Ho3!CV+8O_5S!>CP_mZlC*_TV9110Xy}@j z(w&kf({^Z*Ni&l!bQ#iQ+Jq*VG&5-vwmN~#v=!MzMHIvhK^6rOPy`i4!G#Ads66C} zPkp%Yz~w!+pYQ+qo^#LL=1%6`E(-pMcze&8bIA3PTK#RE{ua{TF4EuD>u*i^TeJSwqQ8apw^sda1Np9EmNm*1 z#%tPm&C>Y)C+Yw6cu`ci)Jx*ym-8MkWb}GT+~*~6zn8=bFNp`dB;M;K@t~K)NiT_0 zUJ?&^NxaWX;{9F{4|_>G;wABAUJ_qU<9~u&BFQCK^S`W|p(KI*(+I53GT8QfL46Q< zyx&xh{^mjG{)?-Kx!vI&UpnIXGSg;c*O}ZivaLI@6LP}3*aE}OZx7x7#c*iai`(Z} zyL{>90wrztrB@!^-HNG(b9Q%jvP+j9fMejwzDc`59Zydn_go^X%5H9)a)*1kx!uj% zeCg%Kp7LZ*U)S93mVf<*&(C+wjx$de!}TXuALy26clgo`1^U;K7L!as&qVsu7Tmob z>k{ZvT3$rs|4oYjc`0r4baXzph1WxD3$KUzEGgNBUjHp&`E9@wI{qc>wUozBGCE~R z%Wo-5Xvh-UX9?}MgoZ7l5liSYOXzY-=n6~dN=xV}OXz?l^bSiXZ3&H9LRVWt*H}Vh zmQcnL%34APEulk}&|ypHotDtGme9K_q3bN6>n))hETJ1Mp_?qBcUwX?TSD)#gx+fj zz0VT5#S(hIC3LGL^Z`rggO<>3meB2%(1$FcJ1n6Ozdio-@pwFDn77BjK)rl>{0mOJ z>BfJF^l?f0xLhhsS9fDuK!53l6a4G90-!?|$L%9oWh-6ig!^?ZXyB}+ z275YjlhL@Wvjq5m%WWUv4pO_hrkj+cOY!8)Kqs{I0_PrwEC)K-of5z02PWSANuV8V zU2h{hL~8H-Fgf60Z{ZC6@4ynG`**bFp(7Y8c}|4ZtD~7ZL{osfmK-q54`v7Q5G3d|v2vIQ4dFUw z7iq@QHFT|d8?FDv()T6l`>^@>t8z2!e6Cj7lsEJl0Ke~{5p5qD$7e{~5h3tPd&gxL zQ~Etu;nqx_JHa2>ny$5X3r&ftu?M=r=u$nY`dt{`G#~+#RXAIAWx^pzb!;cmBFs`{ z9bD4I2WJONFr+&iw!6{Auuu#8KdN# z>8c6-aPHvYnjtit+xwZeS-eXh1+Iyqfkcp-Y%rPnE5(VfY3{ic&&-iP*fjt^oxU|> zYdkD5Lxtf4Qea+^;ho_{ZzOGc;aQ-BZU(`%^?{jyocJlBvXMx;WyFvKU3 z@@@oH$ajDTv>93h2h}^&N7d)lS79UgBh?S}Ez-st=vvcOuGT0*a1u-Te<4$M!m(gW7*3>%n9pkZ$o?Zd+!Y-nM{iC)HU}F+?af7>%$GB~N*CQuDpXD%x3-0& z;c#oT=;Qf5kF+)v-AIT;PM=4CUe;1{AK}V4{@fU9D|&A}!r_sZiSycasyxVA?J_V!fPT$w>VcR(i&fh% z_M#6u^K(H^Zz;Nq*C^By z4X%arKl1P$gq!q@^-b-;qH73SVxY_V#RH^CIMCJ1e0xVj4eKLCmy^=yKv!#hBvN#s zLY=f7(5Cvqn8UHL0Jq z7L-Bjo0`H6a3UXzkYmXpG6BV#qrROicb*^y_0QPqP&6|6T1F$qwl%Da!5e(AXzv_# zyFzLgAQA&57FrXdO1HJOw?+*&h@lqLJk;px@shgy4jTUxX#Dp{-08ojPC+ndDY#ybTM3TFnNu#a4&@6fioZWCPw>~~ zD<2lmUh0^`M^_|#Iyu3=GF@)or!m7*1`Eseo?V^?bakS(jg1lVhiiAuAb_~1em#Y~ ze!9wDCN^`V`^8RbgF^!a`L7q~2#w9|%I9{ALaXag(M7q12K$d=nYCiL7)LE)E*jSL z7I^$h>R73@{vI0t=aByY_0ql4Q_>648}cOi9LxmUpaC>0-v|%Dk6{<^AFu%^S8Ct| zIHbhjALPTzBg(gx|5E;nd%|K+yZ4W9hcaER>jFtns8#bU=lq&AE$5cMVZ3k?I2;XvwE&fIU^91#C1rii} ziRa7q!VC_9*)M1`SYwNx&TGHW#FX!?_6yCdW=WhaVO13$NOc!~id!_W7&^3Vf~aS( zxnpoo@mKTNIs{JOxsa7hC$n`3Of|=ltwZ1>L(Si0)e@*TECRS;L+8#w2dl2l1fu%e zIVKR*&$7;{**REDAgcdlSS6TEAOe$(^13w>i0ZG>`2Q#A|6J)sQQ;~tiH~2-2fUE+ z4ljw*UJ{RbNqn`J#MgL9Jmw{F#!KR?m&6CXBtGON@nJ8C-{~dswO$gx%S+9N5Px^}6mP(R*OQkd~Jxe*QtnBIzB>Z`$bPj@5Wo79( z{<3qhqhD9wi0_}Ml>9u|wGn@rzt&&Y0A%YtCbh^GW=254X89!iWi`l$(ytC42mEH~ zxxUeo+c#87z;9*+Ug;QUv2Uc2)T&av~( zty#gcT^6WsT?kXEB+gKYer6Ub?laA$invkr_Ev)xLl#yX5Az-n^gO15KguV|i{)lm0AGpy z|2^{KQiuF+(DMJYG6`0|tCWZ|tXv9d;H}F2%9F~Els`hhe*ts`cdLh?%m1|cGuZbs ziEGOcwoQ5VKE@`A+gJuJ%(Gi|-l-nl4z|Fi^PjpaJ-VHyvBmr6Z7Gcwhozvfstw4- zuGDNpTm5@`d=fXTu~hXRjj9M6+CZfdN2$n$w)($~;!HNQ0slBQw4s7FwCmXJ+R=vg zW31&DV9VO*IL9#637B8Ke)HNDihF z$!##uPHaoffn8cxjAH`DI=l94vzJr4qGLi;U2c6KLvAB+?YfJPx`f6;B^))co{yDO zt!Jp=9dNh9n}qHH!jKbdDD9g3ITUWmTbg#?ER>7|rvT92d`U@FbDsPgw?I4{YKR?G z0qq-0syOVqsRGe@G(uyrHM%Yq-O?I70=nCFlvIUmbhov)#PsVVO&Cvr!bgz(6Ao-| z3pRw?8j0&5eqCtox>$WXh5m6Vxow!1cf034V+dyWllQ6P*CTC{)Ms1(JCLp2Iz9gCec03+tlM-SHW)hstJqXcq&j^Qn?=n!v{>hHTO~en5_YRFaXI?VcjR4 zRk`Kpd63i|7s(<^lsgr7ABzvz+bE>ptuUCyf_hiul+6`^N=|ZaD>LGWYewdA#w>*I zm6xI8&C9)IIHIx&UN3y@iV6N%X&^&brS4eKH6WLxua?OR8E$lFf1s&6R1ObQ;pHZ$ zudLe~LE-u9X)0Z-QJ{9}V>JFR0_;Ej`?2(@^n2;=&;y(bE8cT)2XG;9fHukUS_;rZoC>sslF?X*sF}!1IFt+j90^e)i-LyUTwTyW4w+TuNmVtYrGyb zUJn_shmF^F8n4$HukSKmuQOh+H(qZrUT-vBZ!%urZM@!Wygp{Ue!+Ns+<1M$c>SXB z`X%G_%f{=I#_Ly%*Iyd1zoPN)mpUc1pY=@?@O;w?P~5PWhYi&y`YTjMy4=ly5e3nQvw3)RGfPC#32+f^>HLDM=@%Xg9#< zDt_rE(f_$fRC%VGMD;EbO}@oNqA3A4i9&7?ZFQ6Ac9I-0X4-D2t7{3@-02q+mw#P2 zO{MH2%?uZ58VaYGd`IClQ)anHv))CT-7eC6ki-lc4~=_xe-BA7v}n_IxPpPfImEx@ zoW2qwG^czjYxBf6=84~%C;n5;@skxA|HblmB>6k=_k9!aI<^Dv`>p=>|7-oHl(-EwhR-y+d37qM^P4D86Q4Q!*o0 zshtBBxh{oBv+Ddt6B_6d%IFG1-z`^}otFVu4X%sPShKl}G=LC#{|e~;)8zT`T6qVwe@EpH$`8xml3xQJ_#}A$yg=EaT%~+O`KI!U z^1tdC*uh_@UZTE3y+!?^`U~{|>2_(0bUCE|ud0`-`_*fJ_!Cry>j&d-!5f8j5K#(U zi=JNcDM2t*H4zecQVN3cM+B2yT9dTW#7s%p>D4(+Gn?5=jL^dt0mbAio#Ur&VG}!j zA2i7u)XzFbPwsY(zREFr>UxqDGt(Og07Ct{66z=HF-4zd%Qls7vyoEo&-Y8w=SfRM zT_cu)G$z$ASb{~*=((Bj9pkME#Ip6%hGCklOJfN z{&P4?U;_|EQ*matL#*iOEHoSM?C193K>n<-B=r*UDO zDI!n{cysoXv39Uv4oyc<#98yi6>pyUik~fnqz{a(s*u(a!$Rrl{<5`Y{^>(J1KYKd zOa0!xoNFbYuyf5)Y=9R*jIkQ3uvE?^3*I1>9NwbuN`Vj>;LIe%m?3JKa`SEOnC-K;JO?%p_cwk!2kvI#{D(MP!p@kse9 z7x{F$NRuv{rsCzoX)1eMq&egw&Byurf1jj$N&c4fW*qpC_Pn&(@Kueb$enN<4G*|@91j#5Go?+=o z&YYS+dU}9Jd;9Ng4!q5Q>oMQtUWucoXh_F zmow4di~(&M-Z>cWgJ)_Eas)3EUL0ps{*O^Xe(MD3r=^X@Ek$Sp8r2y$xu}-8fYDR3 z=T=Dd)MU-+wSG83@-H12WL0bEj(0*!KOSc*8WWefY_}7iGOA^j1D_ihV5Z`od&qj5 zwP2D-gK3S0$~@N)Hq@Kp+%F$3Lfj`r%=WBJOv#&v;D~eKwEsT?!aw}?Z;=204mjYa z!v9}XPRNIV|MPYEcgj>~00osk)ADL2qvu_CBA4=Z=5J`{imzeJ?_v zRllnKQ2p&GDqY45Hze8stku&W=PSGK32Q7rcKar=i$FcCadOdNrL6glIRXm%$9;n5P2<%B)ao)`h~`RPp9wCB*?V>9!dt`&}pQoI5*Q!a?Mb0ukTN+ zhL+-5aG%R@02m5D(S+Q5H5Zn?|97ss$yTKH6Ruwen5#HVT3S@ZE@mwSX-TydzQ2=y zL@WKcv%{@f2}y3PKSbjFUB17NU;EtnoT7b%oRphRl>4__%GiL^TOU?z8 z>X|G{elZu`6&dQp9YAu|P%m!q6Y$=J&XO!{BnkC!ZW<~*SsbKW-{IB{f?s562+Cd_ z1MX=t>J-+i%-*H+5kaB{B}D?xVe{|o4!4rkMbj~-(wI_s&t>uAR+5}Dt0V}=Yz)y8 zt)lT?3+F%h@7J;_pC-?f8{~`Se%$}RU;Zq+|NomZQ8^X3pyy*2h`|3(0)Bwr34Op% zD32=NRelYv-U;f-xD!~VwrMtiCAUswNQh(TKnGo*_J^L?LUAR0Wl(DyY{=se#K zEumkSLW_KNnnH_x&zeF@d@q|qOMUk+AP{c0MGWRHB87n=^MPlg5uu_%k&i=U?PGp=jMbtZ1r`F?I{ zp1S$I`^~`xzPn9n7x)+wHS!+n>l<0%d%=|SAKtL5;YU_ss9{6S270WWO+WEbsl0!Z zdK%b60GPu?n+UiI0jv@c3>M`DURyrhD&J$B$718hS*}f+x@p}H7%&IloW_&uurpGh zW>_uyR6r#pi>{%G>mOnw$m=Egg!(;exM-s_T>K!H|4*0H^W;xR(;YYeS4-LXl~NrO zvF;h2=P#=hTi&(texPV}@~x%IebeL*82cvkCe4lkOIx0W3+P(Cmsv^74#asm^_|Sr zJjHUMa&GVEkw`$*J?a;5cune;sg|NT^Y z9o9dSu>YSapD#B81N0K?1Fnz{!|vx!`62m9`8oMz`8V=klnKho%306}xKL?PwgC%Z zSjhl6_#?`vl_y~9^P=)9P=tNzWZ($SRadAN0TpzYno>uB4|cnHuljjt3BI8IO#Pkl zCft0`EG(!~KWYhm%o6&zCB$|J`gfnO{B~?|xyzC#TO0NAK56;w9!uz6OXxmJ=zdFx z?T++3KW+K#0ZZsXOXxF}&_kBcXDy+JEulv&A?D~%FP%9-)I*=Qq;l1MR@h>>>FERdU|9^%Qk;x{Cx4=T+4C#;3ccllU8>9q2w*F1aPWDL)6-YI)?}#?6CixB*^{HPuBU|Z{ zRw^mTT>y;`j6y0`-?&9bF;<^EBU?cU$PnEz!I!JEgVqjQ^ za2n&i9V7f+k;zQHcy_kTCpEJ?BEhC$LzLk)1R)J+OJr4_G)JSCZ=N|)XLVK~K5#@RCP!pqT{;)DgPHo7Q?jy8 zg7q8A)C?-2K6q-DE~hvX#hEt5T{ox?oRT>}-{o>x{q#wht9%l~yp*M}lUF}=YUWDH z&uLSv-tW&`;ggnI3o|aV)ca1$T<((~*)=jXE_>8_r)MtnNo$pHFDKM{0+|t?1nBy_ z(t7oiXJ&?d5&-H4_feBjVaZKBsqUWs2-6K??R59)nf=sGTHRARFfgM?y=!u2pHH%z zo=naRQ6w@(ljDXSLsPwz*8hK!{?Es~C@S3PCGqjg`4e8qxXVl8yS*g-q?g3^cu9P( zm&EsZNqoPT#Gmq#_|skzKj0&p6AmOTmlu2Mv|6Q~-4r%D8m?@RIrbuf55Tu@w4D zoG{Y0*%jqdHOY-ucKXYzh1`gybeA+&7TbkIcHdtXX%XctL`3$42K{U~q@;pS5)574 znO$Bfts-JamtH;5U$#m}94(?sZ8zhR{3&Gy`Lwdx6|ebPZ4xaW8{w~Ok79*n#9D3t zp`v2f#2XEoyCu>H7Y%F(mihR9MN+pav!qwv3?u#+(=fUwySP#cG0FLqG~k9q7C*edvBiTb$8X#xF{A7@}%) zcJ};AZWx!YB4bKe#&P=sK5V^v0i1H3iG$-z2PXE7=MT^__2tks{-AYPguyp9Y33AS z=2yBVyQo~6M?KFESnPR%Tjqn4%dS@OO@mRagOCL&d*P=hljVA@zEn;UGm*6aKO4t* z{CAi1CD;JIE>DmH@)EgK?v~$y^Zuvhr{$l(`^SmO3}prG|1Skb=q<{pl&>j2R{o$) zgi6Lz;CSs;uTtLw+5T757u7e^AFIEh`%+l!Y5%||kCDht|8Taq*yc~Y-iSBe%qPLg zAI%g02j}=HMS0@S&J$msCw@ns_&oGXc{oq{?>Wa$os}ov#1S(eras`D-hZiceDwvk z1^`TWXGd?vhn=H;>KI+A+163BnL1kK8P2JfIY;kvj{bym^j{sLCo_;}4y$9LWby}` zQ@`vOJ;mo7eU@|d8s}&Z8$o(EW}Zy>m~-k!oTI<*7(LaQlBqX1r~ZOtv_I|`UA>A_ zHy8&=S*WCv)_p|{@ z8gj#&5^~pvyu^q~m@^(#vu9~GhD+0M^Z*;frChd$!XSO>++*>av%qDAPJG#@khwUn zr@F<)X)H7bLT|2rkMS=lS!4BP)VJ?3opu-AmJzjNgEz$lLI4 z`7Im#&eQ2kxDey@w4>-~qA^S*rMF~jD)`1RlrCjEM{Zux(2?rwZf8JP1)+RX7!@#e zKH+>*9dl0&T8=cpOgmu4S#x2i-#FhI11jf3Q9C2^^yX}!f-BFgPZycAXKc_kF57UD z30P!Y(_*s`uB|Al-8g>Qjq0(TwC!V2LmEu!dD-f6t|{k_ne^mB{h9#!m@lJaZ$cXETY=E#PBdL%o!f>(SmtqRZ(|;&M#JFLMK+c5*AVN6M;KT>VEN!gGlbv9W zQ976Zr6lFs@}H#Ck&S+@UqPYxluEt?q&r9Fur?cwOHwmD1!)DyXCsG}RUPy}tYeVbTR0M594f1*8 z{X?iRn%~$K8H9*tHxZoPkgY10*0T*PjQ!U04JQM+u66K5EW zA=a%VH-BS6OkU%alDmo(_(0T+G9R6nJz2oLRi(Eu!&JTwX|_7?=GJy@-{p4yRQA6{ zb=Z_5%+}cq6iqZIx_Wl${mE=WX6k>#TA8fZFfOp2L@rTI!`*WkMqkKNikW46{68-# z?*snN^Ik{tn=pNPe|DL+zw96{g`}O0E|jBUITSB$J4&GjWN7Bp?*iHcP0Fw}by=y3Mx#=e zQO%bHi@CWS#)9MGb{IG_Loc3w#smiy3k)X4aWdJ3%Kl)m)f-v_}2y*JS<8~Ps!|~QwJ4?yEr;^ zq_D?nkF*9`8iS3ohIRFAE=%sTd8f?Dr*vlEoX9!m(?w1aovafxL*+13BC^_29IRb5Y6nZimP~TLjpY`;2_6~K$x6zk#yNg?q zTc5}+8Sh&g+8B(jZVJP18o3j6n;X6y=pICVS8ao{H*U&?Q>!iM0e_bc$o|C7vEBB!@3}t zv?ko9xtR-Z47ROl3U4YzkZ6Di3Fw>2(_V6JchNF9_Y003%lt7#b?)JP69p9C*aqi* zmVVP1iqx-e3PNuh{im(HHR{?sp4NAMw4tPGu_eo3%hBcd{bSp?U)fYr)nFsgJXYX> zFx(sqMG8*NqRq65f3F>$81;@sk;gySD9_ma0Gq&+|8gge~z&=^&#NG9zn(n*OgTHtr=sXJ%Ws?x1xjCGGfY% zoQ(}l!Fu>Ycfm-}L5$k_uI(zRYIl>j=U!+kB#j=ve4Ij91A1qS?>bA*$mw5N$2igk z^j$qZ+1l1&*|v7>R5rq#%8F`lvn>xI9xhTxkIk@fXw4gUmQ-!X&uB5=j;1YdqVc~# zx?Ga}1kCRha#VU&9+tDxlhVWT&GLt(Ps*Qy)z8!N3(|++0sIZ@4JIfjNxxLil3r96 z!v42exmei^e}8G^I^_e<3i^ujeRvYT92UU;iycI{TBk-}QFK`S2sDF!S*-w`I}#1I z#un6EGaa4)jflFM8wfXnes8UB2*z6L$qJ{2xl=>rqWLw~O;o4R?+fP7uX&gDUWfQ= z#rwkZYThZ{>*m)S*0QIO6kAer$Q(Ss<{;sU>lyXW%*%JAl=p zmU{BEYTHh5KgY$Flg>@<_NDkL!izz?{WH@pr1(mWoVvP2RG}flra(r2DG^5`nL5VjzQ@lT}xQRBnXuQG2zBW5tY>HAbKC;0^7?e zS>s*ZPY^2OZM2G(6-rTjBO$j?9=Us+;vW%&6I;9Oo0j75Q*YuwnYRnYuaL9)+<3jS z7JrXAD@!nrO1%0wsROZ8n?q53<6itczyG^VQcsZo1kC^I_ zvc(G_m0noZ6Q!-r;9!5E(2_#6!?sy&=!^I5j1LYB?dUZ#!f5VdTX@sY#N>1Ek?!wbtcfYu>15{z4Nr`gFhN$E>VEm?XX-SV9S z^`j?d*RsnnP@i79uq*-cVY`;k(~Mhjxm;tf4ar+dOH1J$Ie+F`HDtV&_U2f09UYrv zI1Sb};gl0@t6z)dAj}R7k-&BjEEumu2aco%vui4(g=o*Rve6Ph_`xJ9_KxDRS*5=L z)_tfmHE#z=p}OL`2<9E(fJ4av@Mqq+foOL;km&6S^mpLOWjC>8AK;w;U=!#`0&^E= z@u>vve&ZAy*a@uMJ(O%ue6T;>8|c_iu<~8;okP2K1AEts81GP~`TT!^G%Df0mw@~C zF8M!|Wy*Vj-_fexr{2A(WLiBt%g~70QZg;52L^}P{WjL=`ev-1ZINZmfNwO|lK_s@ zNFg4Hy$+4oxyLEn?&1e6)H@I?u4O!t+g<#?=8|drgvaI?&Io`yM%%%JxTbK2lXl_z zOA8;mi@(xdGHs=u!y;pj`cD@O9?AXs#*%5P^5#0sL;`dl>@nM?ww6o_<;!+R+>g%cr<4ufRCv2x-0{MIR@zm=o;P$T4f9$qVN#Ish9dE3;D#*E!owu5(CnGT%wS zEvKFvpHnEpp)!VQn*rKr%n0L=<;*mfr5GG!jWb?3W(KA&%uXri29f?gW)7(vb_o4U zPgWf#oMP~d)tapQau)^k9c%Wv)1#Q)t?2~q<}7La`=#}g`cw65>fJ!-+oi6C#OW`} zPn4&WJK^(hgHorI0`>11`6KexaxZWJXUmn+AEXyyD|D08hfl>{btYv(yvemZQ9piW zCP~mHhKgFQy@>j;n#>>}-;8tVu70#8vzMXcho%XaMQ9j9dabyS&30X#TV4E&!v}3pW{!=r%son~(S3v#rf)f)pDc)bLWJEaDl4h*~D%*+nzuUZ#!RM1tgugPquzBtalQoZh+%r>fN z{<5@Pm-?=gGg}EqiLuwT15&R&HFL2Jg=AaR)pt(IY$3=ky=6@tIDA@WGr<;_`;QK+ zuO6bot0}{BWi>4@U~vQ_)Up7^%Z6HGd?3{=CTsD9NfF(yGbIi@*uj9?`X1NVC2?qd z=K2R|gn?a4d_UfWqFq7dN_Cf*ir)VBZ4SK60XH1r`~PPp+eI;wt?=BWFR>}^4p$%77KF%a!CQ?%GLv$5Gb?$^8R6q~(jxe965N8K= zj(`O{gI$4vj=>b(NudO5NtahXm@4GNgVVAXRYAM|jf!;XINr7w=RiUEGTJ!W<_Clh*$oO0da z&$49$`@;L-yuf3IH(gdTZFx`G7N-p1?WjKm4>Mjf<@Z9%hE2rb>IZ(JSj5I~Q+*UF zOGVcWl}v*UrgPC`bMCDwE=#>}gtfhMslwU9aVhzFht9>EH7#4l+;%Vlfwz*2Zn(H) z+FDcRvUrA~K0!km_^6o13reU(zomH{s*Vra1pl_IhkChdkx>6?_yqHs`6IUbik!?1 zr<-m$qLKY5m;ZlIg0rjZH5f-IhIp-N=%wJz)RgM%FMBG}fF#Ri>(9K`&Db z=?Zr7>FL=C!hjx-S%w+; z{vIG7&;;vZqSM-Y;{8T@3u&5B!-zS@Tmc#vqnOiJ$XuH(VX7aHnO@1=(DM&caR$!d zvf)msH7LZCkKKVo<6JbZ=`^a4D9&6l^s zIilO-&Mam?hN4td-QY1E%E2Qve4@;Bt4!rRXjWwx?f*{lpIBgzf%`u9!cx6(b* z^Jdq#Z)_Xt0M?$E!fudY>wHw>L}n!1!!8%++`AZ;ag zQboPYA0!h-G8c>WgYgKQG!As*98Ie(6g_%+>6A-H(FrtMkOa;T%8pCC&+mCk7!hZ;SUPI=Vl6Zj+?1P` zqfzA5n&|CyF0PgN>(qUdGLM=AkYH##{NgFZ_hCk_xF+dBuP><}4}3hHpe9O6nYUHK z>(~j~DPtq=tF$`H}AzQB~ zELI~dB(gNgypSf4)Jh6;FvZkekc@Oe{KcewOfpKcF2wwTUCcii zLc5~t*o1BQk;H06%$~#g(NR{2CL!Nf$RfpXRsJNazNMDMpXKhZ&F;%>LaO42nUiPB zXLK`Q5jGV+Qka9ZW3f3!FS?R(%jzkenv-$m9b}eb`@+)J2OJZa8vH8Salsq7;d9;B znCl*$FMCBF9^dDB5%ULZbuBJ@u74soQ|@!U=>43(5cYNKj&m3ms+-y8`rUbbt{2_z z-sk$AyaCJwS$(b-eTa2gn^$(sphb7FUTOJ(e6AOLz@^XikB{qfz34U?|0S>h#D8Cu zgYq|&P0H&y={I6z-=)6Kw&bUM6RPK>Cr+qdnVvPT47ws3$VS)TzF7ahp3d0rcq&Fa zWvno_0 z>lkj9YD<34DH?|uT)rH4D&9z|6ROWi&syZf61betFPc9>K8Tx0cDEGUiL+E~$#2GM z7xbimXuJG2T}3@*R=X2N7%|7cT}&Wu;tH;|*VZhg{l6kTA}M}6-a3DyJ2M9=r0JyPd$kPw zy6L)#H|(Mc8{TNUTjfPV0859!HADT(xi|#f1MF6y0S96sI3Gtnir?44fCS(ijltIF zx>$5eYY>;ZeCv1|m8F~GSPgCs}j;_-z%?_8_d&x>Ql9s1fa6M7TC7wjbd(*?u10|Ub%Pwe#t zI+|%4ZB4^|5UKQukzA6CTv!S^YcpnHfrrIhfZqg+SCxM#Vao&a&V`^M6{v|XT5x_K zGSas*(Hp>F5=Tn?963As104ecFl}Y1i~-WAAjttg6^J$*w~_Qj8vd6L&Og*L zB`)7ajzIpof1{<@^Oy#YzwAI7e(qsjqJh|PUn}HP(q$)`Tw;uFqff&DPj9?qkR34K z=pJq)EM^sUdks6(ok7LSz!7F@3_cEsXJjcFMs(wJV|JnN8~_D#^1#LK7#Vn()sLo2 zrd0mIV2ZdEGuvEN@a#3nSa~S=j~RS`YR(`n8_L3yjMORNR+a0kbO{v%8dB zqM4}HQmmksn2}Co>on}hc7jIM4TprJQ1dGbH zcFe`-Tx@2yDc$omiV41duK{ zIjP>@B(FA|p`GueiIYbC_=@OIvba1QFC!Z>9dgNK=;(~B!WjgkagDaMf+i7-{Qv*0Yjqjny@)3(#X+_q)m7 z;8LM_3T`n4@AS&7EUagGnDvaI+#xi`Xw82dh^;xN$_jCUqQ#Z$^NEcygdi`!2cxrAHj9HX-Wry5z>%hjoLrPH#BU3K_|C*#u zQcjk>b|l07&G5}=Q+6Xe4nWa$bYvk09aD5|Sk2qeCHv(mcHyn5wF!y?{g!8#N6nQ< z`XRR%jQ2suHyMa`barzM;0_vkw0pyEIG=Pu+#P~4Xm4*~f6_p0AR%xUJTnvKc091Z zJC3cMp*XxVj&K)q-3-ZaKj0uJ!C+j^^4xjup-oJcagYiF3!`0Jzz{kJDb4Z=T$*>h zT)-6BSSr5f7cjaZ3T3G=wOvEHFs@cK94xkXgpi8O!_xf>KbD(r8}@cC2lELR8FQ&+^Tp;y z$L*F;hHa;%ePS$hEW$`Grd4CxF`CT!D>=M=x?%Jr4zSNQpLX>(!$8nw#U`C;R7~sw zgb9|>#q%C$zeH84yHfOdDJrag6jl8ueRF{i*_b^*2t=F^%#IyZYdo3|jU7+vWv zt1a{ECb@j~?UKo*?=qOoH=JDjW7%7=PL$iXuQ{%wDba7pvy?^fzZv1xj z;Et3fC)6OE^>KB|770Y}O2Cc+wxqbcWwU=0Z@n;>08U{C>`Moefkc1rh*b}5>`Tr#em(jcB+ohM@`ZY3YkiH<>DiHcMX$XCtT-rvnj9WRPyvVkr!_wG`NeYuM z3F?+W3^8QR)&oSH$Dm=nA1C{DuX<1TL3k*>A4`TgR-xNP4CosMo)7qI-L`S#+Td z=tB5E^dI&&_3VrRbGkqO&93dfW4@hsZhuwEa|u}T^gz1hJI$oap%%-Q@p2q~qVZoO zeN0l9Desa02oJy?Gse%G>d(dT{+M>BpD4ou)SqPnxV3qUcTRPv^mljGZwp-~FGkbHLJ}`d=-dti_lI!%r zoC|aMu-fkQ!JI;;==97$IUKN&OAO%tK+Ii+O)g9hLyf@ZXTXjvfOT}q!~r`Ko$?Bt zNqL`XaL*}`PG3zXp}BV^kBT!u-+;i*gB-;rU2@C5j=`ReoxSmSJ6hX98(~Gc77TB! zkJbx8D6RpuncSRzU}d1Cy{QS~P!MGPRm7!NXZkfSt!0D?M;=&)86r%a;aJewtj;Z| z?fFSfa?!1J)XOP>#0Z)sK`Wd|jBE&?IiHDIkp53KfPA3Q{{`vC(%*psUMEN7KKY>h zG5M>o0`e)-lsQUR=>W#}ZOY@)P0Ejz-viluj@klb?=kfr^{eX7l)tEx)HBq%>PGb{ zXbycveNlZwN~u3nf6syZi?@^JAH>6LP=I9?kR%x8`+4;g!s6C`gQ62@LLtO7yfrN; zn&@jDsZgiW52R^LKshBRlZF{04AdN5)tQ);RG5z1cnJ=Za+M`P^AIe|lxIlm%My<{ zpAn=Mkt&z{r$`D?JyD%$q;FAtbwfN7m#y2GLV zRDvMrDM3kDf#0WCe&>4o{ao{&zE^)w%72u9l2tL-H;@`pUL}1*BXZ49Z?E!8t?u*{ zk(adJW2kqNfdsy4N_6hw{F1c7`L>J2Mc|cOm`bZ9TE}P|Omsp&E;u~UGl=m+Mh5Di zwQsfGw9e24{r*0PKa;*<>+kHN@E~Il-`Es6c=Yh>91I>)^uQb)Cc!7UeAWm*65 z!8nig52A)61EFWIGj)Uv64Xy>6{g=q++s$kovT}E{4bNfC*i-JO0Q%5Pm)iSXUgXT z=c`S=MDCZbfHmMP@}2TS@{{s&^2%FW70lus*9 zDBn_E1p5E~s6KTvw1nrXE7XhB&CnH2!Aj@`^>+1M_4De}>I;|~erLRu5k@_xB<-KX z&W_#-)W2Fnf3t-CpE=}{EFsw(IySlZ6my@b@SVGm7P{0zZv4qaFgr-|U zXIVlsETOY4p>r&unU+wkC3LPOG|Lj2Z3)e>gyvd8^DLqHmQbA~w7?QtXbGKX2`#dO z&bNdXTS7}Lp{174GD~Q=CA7j4TKV?)7dxTxW|6nYzs{w%$N%nLKG*(BjDLRr_mZUi zNm2i`q_lUBgmS!MNQv&hE1nT<(p+>sJ?|~&?3XY-K?JdiS4BWa&eUsn$)2%Lxr_?*+;sd(>VfX&@dlITb zx_+nb1cL5?`i6Q_J=j6=EVQ#;s*eF%L$#5)HL(TBa!4cB_Dgzib{Ak)7@N||XFdP_GIGf_^WZ<%@4yD*CJ?hKGDsLq{C}vE#KJDX>9v|hY&8|qV5+CcOYa)% z;MyY@AX^P;@npwHpodIDMK9P-$Z+hWj}8J3pqD_w7rg!b!n?w-KiEauEd{#` z9VDSPF;q|jqRVQ`SJ&3U$dk&-fJHO6HZb2L$gvS8R<(39I75CZkP_)rH$k5%^@n)0aJ{>4^omO^33*`b_M+eR|oRzRU@_ah?IaE05 zT{z`ws=Ha!JtsfG4yGG0In$~s_m+*W;!;m$%V;~ryXD0GBWrC3xq(BY&u=G-fPf*| z;?93yF5O(e88#+O^;@uNU@5@-K`TXPcf4x|217K545sYDKZh~}XZZU6bxHY>;*-Aa zZS=p1QjadpVj`Nim5?q+moF^a!c?~!;EaesCtILA1#JnpEn9Az*GnxbTtmaQY&mcM zpWmr5I<-<^0ne<70{y&r=P}&6e`s^!#kpI@|%Jmt@<@HHgf$8bW3#6DBhir+7iw#gsOOud*{vtcXLF>@a#A zsBnmaDYNB6ha{sbvY6-=^MlL{N;J-psnb(T$f|cW`L)0 zfJMMNR~L{8g8Ir1wlIqw=an7l?pkdKymNF%;go*aN0BFg1K&3YgeC`8L6ac8fKfb(i7RG8CTHb zIe261YJ;s*uQf+#y-AalrT~HR0rhdj_L}T-j`b1HvF*Lf(KFf+)rX(#8aXb)nR z*te1VZ;JGB3IBaZ`ak&g*dk}-&&WSf%HRiZH>CPs1{UyX>N<6w`Z4u8^nd47f3_FY zv1h#`{KpW#($~wiX^=vFNXKeKf<@3ztR@9#F|I#DF*KFZD&hbVmvhYdz4oveP0I-_qFMFQ!Av;66aUvo4e%^`sHfs&Lsb(u+2gJjcv%Iw8}+ zKrPAl%zxXAZM5TuV#AhRlx<{|rXc%DW@%cMLYI$h3Pl^%acK|~+X%WW;+F8Q*$B^< z-^^Mw!R*~cb-u53!Y|G?Fa&qv_ZIF`8#N`%)P~ihS;M!XZi)Uc8_^C~5wCfsfm#TH z>3^n(m0YtAKdnNv=8cz{W|=izt)*e?M~cjdp1Zk`5`kG2em%Zz$Xr zif(aR#YgSRl*D4E3}?ciS(p;qdzP(*oIV$Ipz(jEbg`uVM*X4s4fWINd)2Jkr$*EZ z)Ec!EUI3p~9)v%TcPM+YGgzpU%l|Du4_%<^fDgDuUItHqufuBi!_qsYA!K6tJ0-Kp zaLQ(dyq%KS=#z5bcBf?8DVDFB;5k{!tC=%1QS!mYjKHAw2JDuOUTBcf{S;id(!nOK zj-8W<=$_;ZD}4tydDongY4b@dxhFOwrEZ6+UVV0EgHLj!j&*vbm3-1Un~SUIGcsYl zAnHIu$WOgK6lqi6QJHD+Nz*wc{BWlpn4W3&Noy6eOdH<{!A3Ka1F2V?nrUMG3r*-X zls$>@)hkcStS5JGj>mHK3V-Gz^4^z64x(OOlL?VCJIAm2AyU1pDznaTtjMGh+AkwD znYD#nHx5tAtno?Hlq8eqsQarjLCOsKvPgTRHQ3UqsYI*$PRcZrw?+H{aW`Dd11WA@ zeVaNoCDTCN1o3=?vDnl}nblhAw)U15V3YFH$+I){)SQ(6czWIH;7OSawG7M})9T(+ zGpmT%PU_0)z~syYJ_#C+rl~|tRAp8&{@8Va)&8o?3g(Ouj_0w?L@~0HOodPFo0M5j zTmhMwjnv+%%rc(PmWR5hDznrn^9Aaq6EjPEQk8=5V=1+#GP9U^7aKMZ1`S~-bysH2 z*W-{e49(TueEpA0$`<)n>EETeWe6XuKr+))E>&$+PAe;`_m@>+(PdP+oD=1X$QTj| z`tx>ZFQleVvo_0RdBB*gS%jF{U^dWQ&N0G5Nd^(d-E44nxGcQne5;U2$W1sHLlip( z;w_WJG0gxI!<{a(j1LT=O`izTDJzh_+lhSMaxTgDjg3z}&&))k;Y_n8H>NAAi}7kINy z<;1p`0ay5LPM?~a2}AsE<6=?=N@BN*$}W^s2w{@gg_})BIsgkXv+k*%pwHT zf)#2ROAyefHN*u3IEGrFl&-L8qiY=Cw`!O0boZ)T$Hba~ErIQ%yb@@PCvoXFKv?zx zAj`)CyYYsrJPzqhJ26U?M2o?I92?ZR!btyde}p}w`X34NR0lCn7_ zTEEul6l|@@XXNC3U<<}(OVr>#G;xF;0RWk>Z|UvX3E(BDcoHJVP-luR@j3Vt^Y6-ho$~3Q0DLeM z=AvIfJQo)qCx-@TLSqhL8LpFtcHKo@Q3n!0FNGRa7o6er!%M`@A*L4qH9+J7dC zX_^SBX+UU?5DEx>=u5_X_r;+FWTXHc{QJRpasa-@dSDhwswiCkzgLp>N-xPvOR5_79u4i9Fj{LHT}VB*+t=s18ePk_4RJ|#l1aKrt79;g zNNz*xCbp&KbmJ%(>)gpO&^x>K=!J-ClrGma zM?-70={?)FW zX^EMpcSu0)>J7C|9cgXt0lnp?%$0aK}{A2t+%KwDdiXq4>Kp5ta@YhhDXqV6PHpz)5aOp**r za02b;dz-{Sd=UC}iGFM$fX7G%Cul5~sqBK^wB8=2{iWh!S*GP z97#fAFlRr#_mHhK0b;To0aM299{S^C@ZB*uf^3qhp`F;StOn?1#~|~LPO7mpH4j{5 z0775wC&k+S-Li4p*{QBRvOZ>+?Tu}uZonXRx;c6d5oxfmdpqX}&#-^9%fCT(pF+&%!Yl3{F zt79igMn>p8iQhR142B)tcvEQMn%aP|Ce+f<)ZQ43v1!>rg)|yIj~cW+AFuwD~xr97FB#@W`isb91xO_QH1K*P$ zmM@pzA&{PmyekG+`hWo;da;)#2ZP6mWuCp`NUsuAZsR1Y*E>@G5$tx&|JH+khOfL+w&8RR^Gdcm)sy4yxCw zH>QB{I)z{QNsDH`(zj41JCa}NL=ir~SX)hEw zACEIv;4!xzkJ)SRsBOYy&IUZDZ^UEiRy$Y`hwx}7z{1Ft zVD$-e@F=RI2jv{F=PW-aow)@+6m6$RCp~u4V-GzN^uYh8Q`x7}_Y<$VjN&Lf=NdS1 zmbQ<{cLt{}qKRC7t@%M}o*X|yRA?DsOT7?dep`!BLW2mVd z80*LLQ)7D(|K70_-oH7vAJ1=$p}O+wu`BUZGWbzml~M4|yE0VY6`5i@KaeTKb8%)8 zo=Y+nc;1wuT90K;#&c) z#PR$~23n(v@0bC!5?M9!5w%` zI*9p9DL>ea=hTDf_e#}4(5#$sa37w5gP>NaIRsWIXB`5yO6?)gsmwZ5hUe@n*`by>Dn={EkhyAq>5%vDYl>KbH@&pOADE52m~byp&G(6Xp8U0t@Gdrzjt;^ z+ijYD2n=Ynw*aTdoL#`70Q1h-;b)!N@Yq%4+l6owN#T!>DEAUyBEjbR)^*{wU~EHs zuss+HMT5~YN;Zvv{4-tpu%hVl+Nm|@f=Tnv#SkXD?Nu*Ue>kj$_X zqlHk>E=Kn0-ptktoH9_sV7i()%BjInqJy9f&8<*ZOW_lUT}vhyl^jbViDYwbLm&15{bN{7J&1}{jg!r3Hw-1^G+e80YoXc?5PgoZ>vdiVIErDPv zeVh(tHkES&SN{fP-pWPD@cJGR7!7Va#O(3tGiR8GLUR%ejb~>zvNab24Bq&#=4zJ{ zqz~nl%901iqY}D7rY!T&X-#CIG?HmA=U!C&zyV$lO2zeQj7?^-&R9oR7ZYqIV`MVz zlDAV2QcBW6 zYc7B>HbdW7e-!la@qda0wAT^&QRxrTDSY^+H)lFDbmL&Ul=bA?+aH&77Jb>^_P7g< zc|XJT>cy=E=2dsAOwMPbqNcoYJ9kMr`FX--bA*BY@BzRsFx}Q^Nlu-N3q}U%lZ+-< zhPEpm7N^%G?>ELCfz3ATD^V3T(X7nG7%)AS9w;}TgXJeqOEVaS@#NaKK~dbO27PY7 zNW(^lWy|smSW0l(Ofk{+FJRlpo8(_~$M5mp(sxn%IPKACguT zb7~i6Vc~LApXkt&Y|UWkuj`rT_9t-OA)T4;qaE2(E2R+4LFq*VH4+lbu;y(m*LcZg z9VVH!_f&U=E;3;D45rP&rn!fX+031YvxWsOMWYFF5=PyUjW9MT<)zf*7VMZ6Y;^1K z%eFANIytbe2Yy0AUC}@v$lfdT7=zK%LQ9}7r^z8 zT@D+0pRt*;dyCMf0Miyi(@Nnb;MN|0gganz?u`8|At| zz)Qq1O42L=!lTTGDO31x%m3|09ZK^wfHs}wD~ZfJxNbL5!u345J7AMx@tit`>C-|h z0x)YFS&M1LjsU@n_V8T}9`qb)B{-2@k!jR>-$LH|hN<<)iGdr`R3a7dmr0}cc`C2B zps^63P*KJ+UoLbO-0!C1Ybe|;MCr^}9$~nrNxQ&0eO1F>ZzjR%xe{s4j zU0tS#JRsmWe!_JU?&y8bs(i@^2oBSp>h4T=p3$yx_-(01>5MCxt%iuEE`=D z5Qg(Q48!ce_7eZvt$q^;Y$?#S|Cpvd>DhbPJc`9zy{EgxKW}@;k~_pVgKS&q2{PE& z-QzRU@<6!-YJI*p2Qz87iX{nq1lX`9x}agnmUox}81Q6)TK}%ACis`90hge+{!k~i zK4Wwfw!Ikg7sm$^N!RVawxMBLeOq&^p?M)|dM5s!+YPIB1C48SPpYqDAW&PmqqD@n zaO+BQ=}bzGreXh5cPUgd6Npm>V_z7p!h(TX<+tgQ5`TEl7IPtHzb+`t9CTA8E->I0 zCbn~E*RJ>=@7ol?-QE}!n6rg*%c;E+{BHwqc5(lUiR| zn&7WZmqbiuKp8O=7-{7_(m1Gdg@)dE2jInl+Y{~&4)*|++O*gRp$9)Fs1N-sb(RD+5w*&FarA%7G{kQg#Wduu z{}-Bwe$!jxU%J(_4h`{A;2Mkk5sAG>p$628;itVkv)<#h|5v1hByYgu`2VGMWcqZc zX`M{$1J`a$aKg5aG-eAfA}MXp6fL-C(l(4aB?xOaGU&y0N(e0>m=AJmUQOnR*|v)* zqyogB6$o8e<8+mirPxs2c3P&lLYl^Iv>(O&)ifX;aAnLwEheh9M!UN<;0~~mKoyy3 zd4iG#j_=R>T+yZvdcaZW_yS*^jE}Jrll3m_k4b-9_ZmRpw1aGJ3+%)qw1<-I0hmg> zH_!o{Yf=&3IkbB>xjZ19-^&ArBC=^mMi$k^hKvIrTaBurLCtpkLd%<3R`y`h4Gi?c z85QvCHBf(IDdFOh)pa1cE))qgw@0FZ)jWs=XKx z{3Jtq+~5~%2w5ECDU`W8Sns5E9*kp~5%2GWmOe0M(4a8*gL%2}9aFp~oqF&-FtaU= z;r>@H{~MB&U&s#t!{;CKH@YNKgFE{@46VCvUfCvye}|)kJ=Fi2&`En&kAU(*1UtD$;5j0A+g4JleJ4)JWSnfx51-T^N1t z=f_?K?hSSJ4mR$%XE<@9G;i}7wk(&{oUcafG66uCao$zUE8EU^hZYql zZ)|Ql@&`r$lTbiMjeV`SoH<~dN<5LU|ni-PCIvIljjO@u}MhT0KaB4 z9~*XBN`3~3J8`d!dXJ4!Lc9N5Jx3;p zpn2IkH)=fyEHPc#{Jjab-_w zG4~Eat%EaNtoF9ri)h@QUL<@?q}Ov_6TpEM*=foJ?t%433vx>zt!5FVQ;`mG%3PtJ z(}#N9F3yBBeWWrHszdXo3{V@~9E)#(!@H>Q3QpjnFC>n%c20!`94crN#5#SZ*RD6S zu0jfOku0oRgRFMAeg#?<1Bn#-Z#oP0w-31O?>me-=96ybX~O(vaI-%HrGN0Swr$LhyX%Kw!O{W?pi$>kv|j~ zz{hf*YwYK3vuzfTUzS*AAoW2*a=-NSdZC!hSC3+O=5Frt?`a z<5Gg{5z7sPyTkJrm~Y$*ey`VRc^1k8Ygw&^m~$Y_|2M&Mv|+Q{wlM^38XfA$ZA)IL zRY-TIj)Mp++VbQYI5XNe7>Mla%<&4I=L4PmvMf{wrZe(87_b|)NlTa`p}Hk@c`o-w z7UW6YB-tP_x}~RxbUHzcv(OD#&U*>&a>@6Fr7`N;fxQxJ3Ijf=fPkEAU1?CP$)(Qd zbVhcx4(4=<^YV5I<3m9@$^ZP)B@+Hi;~L-v=`ZpOd4+tj+$|r1AAslNKPZ*Td}XsT z0$aW(l%FbZz*g^kHL51z&G*CVQ|im=v+A$a|3vI`B{hg6UNf^J^_{LRr!aX$X3-2) zkxpsw0>YJ~BS3rf-8DykLEEY<2sZHRz838wmnx#J7K@8Yz^PWty0-hIqmT z_t@hSfLsPK6Ew(xojrbPTs_j~G#{{u8ZQ*82IBmXjHO_X%Em^UO z`WEXo&;3zQHrp`+4zlT+_5ZQ=C4g;RRod^}D<@7;H%ptvN!=(()5LKSTXGy{Z6eFE ztyYbyvVWa#A%bZPpR#;P$*ECvX#BGY{OQDZP*5wGBE!DQ=lwe*oLh@ zX&DBX0seFDeNXQ_EtX_ol~SUn@A_@uJ@>r3o^$Rw*V04DbfE7{M&`aPv@QK@oyh$u z%j@fEb_Q5Qu9V*C_5LZn?+()Apv4m|rQlmg?1@Yws6UwKH~*(_6UevGWLErZG_dqm_A#|qzyI7 zr{fcBH9L@wrBrDrKBsktAeR7#&b$nlK&=f%X+=zF3Zyd`C5mjaEkjqvG9VfXC{$&C zJO{pfOs~lXaYR246dK004a|w6+R6g_C%{TY3-8XCJmd7AJPD2C6Bj&*#A>`#j!rw4NgaG|%*qmw=`gt`_cLIgA7QnHD2C{J0AzYu z@-uOROx%aTY}ko|qj|cdc|n*BAznQH^xb`aj=ZOKX0Tu;Ml%>s zbdBQ%i=0W&;k|SMY)FFjsfbJA4n8MJnL{JBPe(tfsDi;$$n_P<>cWz$uyU0lUv{6V z&Y4;jj2$uxOql-0pgPwf^opTh(`-4}6@-VeW?~Zm@JCpdK-jx*{3r4#?4E|hTy!*N04!&4Xs8$Tl4j$mgp16Gmp!gG zJ^nV#tHwiH7iB02lUfhqrX6sNRBf}ikDQqZ4uwzRypEL~mB8S_3N*8jbL1RcMh8hC zDnrdBiv}KrzhM4{PX}ScA-MjGj0~w^Lbb1D{2baf6V*8WTgW>l@=m&l9;NTgdjq(f z!DSBQ%mF#Luw;|bCPv#71ycEp{Uu*hLWc)`7#b^_u^n0f0akaX+Q9nLXpO~kFm9pD zIv;LYM?1U=OKd3+p`|+22+_GhelRtWV2L$X#D}^3zexg7)--ths*sv;{y6#zN?`iX zGO3F%l8Q?p3O8E=st)F6TV`d+iI(JrQWoH_STe7bOr8>8A(;h+)_E#xrf*mZ?gmgH z0Nd8U+W=bk@C9w1+v5q;bU~<^OhR5>B|XWdNdN-6D<*?g?a6C9SU<)|x%b zds-2&{Zr|j1l~VxhvfPC#TL!uJzeT$ z4KHZ-plV!dDgzBXR1JLzkS!}36Ih|o$5Cgt&48#e!XKIhce1d`U}94cfWklYnXmBx zg{ItOay#$`@2XzF`>j#*ItzB95n#ojW=jdvb1V2T4Wq3fm{i97q2^(_pTNR|Q>cPE z{}S$D`?pAS5+(Bg$XCN3bNVSaPVZYL)$@)Jq@(rf(9`91d1?dhx&SxOYy}NWQ!9Fy z&G;3e>w<=zq)^7*H7zLk_C@Bp)x$<`U?f zz}1t%wiLq7Fo&<8YC)wOWPxLGwxfQz*1J!DNb00D3t&Ul*^RDrtE(!wLtUHM7%2-V zt%$LO(|eXl&OunacPUUrXHiKpn4rSiRo$M#EHE8sgW)0Eu9fL?!Lro2(?$N3)|ujd zE*(^#eH*XhQd+asG+sB8kR6gie32eXV*<}qxoNr@Y_&Kmz`s%zdLl5s?2fvIN5{|S z$OHOsx$?lI$ue+F&3|4DP%*TU>sc+9>!d>I7VvE;-6B6st^@DApQ1bDHu@3z5mQ$X zC|tc>Sy#l8@WRyrb1;HX;cD0)R#YUj$_;%jn0+vvr>~)<9l8M4Ce0iiDO}x%|0jkQ zX>@s;T^?v-5TnN1-s;y3^wTR-((K659G*C}fFQr?T)6t6neJ2WW|(3^a2#EKYo;Mx)CeR2SHT5kf6Tk$QZ;LxNY6dc9f z-f5eW+D_wpPn$x+O~H{S--qxatV*a5JNW`eTlc^WvKxyT(xUY1lLh zL<4LyOzQy})@!(=%0xX|-@(jttI_SD9xw(MR2@M+Apoi2Gsj^MCzv1_`K0fNkE=cL zt&GY&qt=s)5XoI2_Ou<{p9Y?7ch6Lw_%=Yc0T48R+{F+(1O4BZ`1=2lM7}7$O#*Mp zIsRfNrgtyr^T^l|44RTOkyLl1Wa)=9YMw~aW4TPCG`-H~S?^>mY{JoUFth;Q`p zghoz{53p(F_SB!ZA$)28lu2s57ZezGL7#40X)RIc)z#Zji`N;Bfgj zXAWFiH|1ImG6SrEO|iYKm2Tl1x4AN$ZJP&?kPm`7jt;;MFWm4M?#t9l)&842tXD)X z$ucXqn}T3u1N-t*tG?ACNqvH6Y#0v=7noX`-O|_U>~z*bXbw;EMU$b^%uI|{zfGlx zt(*ckJ)~@L1zeTB!w0>F&52YlyYsGn=?*0hp%$lVT+ieVcwZpIu0`Cf{M?SXQnNO`b z4Q!(z>q_;8#@&!6(x~;EqOvq}0SK9xoyJI=EL{IzC4sY_*GQk2o|Ua~vwT5*m;4x6 zKz2bquX|w6&(m}*ZGiY&Z>L|!|Fx>VgB~LpS*$AP=nryw`iD6^oloo^B3B)6-Aq^z<)tdiqy6J^kyPo_;2$r+<^v)6eGg^m92q z{abAR>%jSs+$Klmm&@;#KQBKn{|+MkT}d{Q-K3G6fOz2dK?J`~l5db-QHgGX$b1oc zAN@!AMcDN>P2WmCK_8`0(WmK;Aokvm0S!WlpliVO)IlcIWhq~O^WKQhHZ6ZxORE#^ zt4fN31;w-~=~msu(2(W#8)<#Q9b6t7R=ov<$++s;$?_-M@@FPVz2%Hxj8YggR53+C z0q&ei`KbDY<z%oQ+;Gn^){<`<*H_k_KS*hlFR=o#32yvJm4oDw^!EzByqs>1 z=imc(nk4B;!N0TOso4082K<#YHwymMfXd8t3qH*%6vtp!l9p-YgBc$wXvB@FSuFO* z2eN#yU>|NdH6pUPKY3ru%LPrir7-Df-q6T zbVp5H4V!!!`b&lk=2+)>Ov8=+KM@g9fJn4o7A>zm%WTsnwFkCmWg8655x zgGAp8+ZNSNjqRP+ms}a}n$!&7b9f_5auVrjRn=^`V30ziiz(<;(Z7#LUW+V-!2-lV zS`|!JP&2Dj(5u(DbPyV=Ikni*!QM;fyA=dU!(hDw|JC}P%jsnfT;{;@#R2Q2piy^w+&N9WGnnWzcBk0&fu*Perdr$4 z@DzGH<870uCHXceTpOwQqtn&<46fIt(&oA^fHsxXXMsx7)UX;`@E~kKg4lxVCi+<3nv?8o9Os|mj9d8J?2KcJ zJk1?iifmFd!MGAh@sd_16<6t*0(Z_#-Ea`&;DNRQ;^3J|l$}ontxQj5Q6{qp13#3PsQz1;X;7#vW>r^}doWHinPp$iLXY@8>7jw_VW4limprIPQ^ zE1nTc?~IIBXIu2M+|3KobRdQf#E8xiw92S=9RH3fj7W?SJC}4)!M> z8(|6XKQD|%dYOvL9C#6M0LOoev{fQsCKd8x_#@3vIX-jiGHD&(uv=*ZJ6{`Y*kvs< zQwOY>RQD$A$c(pe*pI0~q31hr=FKHIhjz@IL~~K6?QGOd zH}Mq(|6;aJ|Oe1*S2Zg{;yy3&chI%(y>2U2&73Ipv}=Dt!(b!;lcJ|2rj-COInQ z&-Y)faApD&S@>-(DqzFTgU(~!1RXQ?%G3nj+_L>9^2haW!oI6M0cEF}s==_(0oP}` z2PmAcvCk0q$EVYf+A~&WM4j^~K#eR{j?9dsw`j5+T&GuaZ_&7EhPigFYj1Yq25H#! z*y3-=mLJkXaTC6HHA@2t0dvMUf!GMPTg{RFtOj?h8YzZgplL9*(p@T_iE1tI<{0eo zffl#{vI8@R5R?x;w|m6VHx5R&xFsgr(vdeLd~K7Q*!02mzSgQY&GYz(_5qDg;PvLn zxm34QB^W+|l||Lg>1!3_Vwz&973ldUQm=pMNz*=*UJl;=OC{=*TO{0ZnC=I|<0Lw% zfEIi(W-BQw#ZSxK3g9Ly81%CJobtC5K4(JXMSk;+R&@hs&L(yHw3h02sCjU(pfS!& zigs0}_R{Fgx#ciC0+%jrh_$f+(&Q75Yc;ZFRh7;vJrms?Rd?%K~mAQqUgs2CF(eOu*KxvGq>CNPL_GjeZ@D%l`@_(jXV4Yx*zx>#;-AJC;i> zCU`1PVBCVJFNuPuaialJruLg4bCN%%e^H|xOshd=qZ-{{#F*vmA|?}c*-4i)YZY@Q zh6-e)6lQ70=aTEurCrn8mrG5|T;~kV@S2KBX0a5@t{Y5b<2s#<8ufoGnrrCwjQmXf zjoJHx4($ajX6d2mqN<{$L|L&2Vk>KB-Y4bTq}F!6Y>b`1h`ASPkuoD zu>3iQ1oDLZwERa>NLGQD5IZ?cnn@2iO(w}SxtF|^ydQQ7e1&|6{FMBTTIdRDr90^X zdL!+mC+RqiL9~$j>3itM=_B-;U@82p`K$P=@2rZczc>_*dBqv_0JI%_hWHJi>_OlPg8vo_P2*L3DHo%u~? z?WVIMrn3&yS*Pi&%XHRlIy-7Q>oJ`jGo2kbodry1CroES(^;?Stj~1TZ#oN^&Q6-n zPMOXIOlM)!*=f_+py|w9%ZE+(MoecB)7hx$?2PGb%ybqtosFB$CQN5%vHdTQZkOQS z;}8SjJ0wEwbPA&YC`%WXxWW@ffrTYyU59iZ1ZQ#SraL*9Whl(n6MQGQUJVUaa z^J&g3c}$G;g?gA5I)h(yK5HWHL}&Q>!$F<)B;@SIp+tQC7W1pl9Jq5eg?_H-D#!yj zEi5?{Zc9l3teVgldzQ8Yi6rQm=|hQr4Lm!%Nx2H*$cL4sDKm%h{P}e_4;cbcZ&4hD zz!2rwY((XSBij0i@hHI=KG0?o+=0zST0I|mo8l=fDGSFIrY^$yk&IiqbNiGT3Fqs= zROP~muyv8KSvDe*cVqisD1A$kz9ruvzn^R%uc9(d83{bor^|FdZkU5Ee?Hxp(7g~Y%s{wtDvw8o!|AOb!4;R%)*k!RM|Aa2GQY(VfZLxLUUa3m(jwK zy$bjvjC-76B}>{#ly%waoz5PIw<+Lks_el6GyiQn2ekF%^3!K9!=>Uf^d718&6eZU zj|>-x88tZnS^?`VK%SpjF`o(elFr0$ETWF$>)rkzy6avM~Z7M7GA zRgCOp<~`bWt4ukmRz#}(4|H5mH$m5=j{yv=1*Gb#mx=9Gb_JeHc!qVz^a@1 z(cx(b5vIPt!;7i8M?tu2)pqNn-&^Jp7sF8uPYjKRK?}(VWd4w`v?%*hH}}^~jDWm9 zG6Eb=_Jcfs@5|Ojo5ClV#ta-zwqqPVuLB~N);XMRkK5m6J$TRx9=*WbkM(82=KAlP>J)Cl-N?gge{%tv5jWC(+*fesoxB5PhH%lzynIQCt%39OPJkoh9b z6cIlP+P#CHFb#rVDw18zP#utM1O=Z=mv7Kv-3?P>9q;gAjX~ubkfNgu`Q z%@AzXfoC+is~g1e803$V`zeCLP92f}zz1xQgw%( z3<>k{{>+f)u(wHvsZqyUJ_BPE`hl<^=KT+?VvtNu3HS?#5KO>n9Q@7$kNbG{#frU1 zLo-Ug+1^eBR-=)ROyK+rQG0QBCtwH1VOWGMl{lF4Qb$=O(z5Ig!Dof2PQc#iAb%c) z)N`;_!_SPLydU~5Hq4In!YBYf`8hf9Z-B}qz4750uJqt-KLohy3xReWo$^@uh=YY4 zU><6aNHy2Q+_vLT(%kOx;Gi@D9}+Nm@G14l>?uIAQykZ`$sPwnc$^m)PJ-59Fw}t! zVj8a)H-S4RVV5x{K^tSY#lIE*%8+3zeoHpG8a^@gM8M0K_0X#f{F4l~&7sqOWc!cq+Qz$|fKXl^xnn_A`*Vw)^;0KmJQU>xcmj{e4rtiRCuVLtvpAb~@OO1W8jAkEnSSH7%VH@$hOv~G|<=UiP5 zW+l)!^DmI&SSY21Lu?2I2 z5Kj#cLMJ@bIu<$`j!Z<^qpEAS6wU!=5vkHo{FQr`%h_M%z~3teF6;lbnUEzP76zB~ z|EGqyHOFQBzs89dl>VRF{~nU4MP4@t|Nlzo%-B-N&1@fUE-7*sm2BpsRnWCDIdE+- zG#nYxSFD+4PfQk#PH7+1g;q=)1!5^31tux8XQSz_bXnBw&ug84F^fx~nKR&Nmf7+y zjro{mC+;WFZ6BIL=XfDA#rs5wI2Otf&Oq0*ywJ^gSrJjjISMBAyub!QDf>7nxsrty zFUSe<9|JojaoPt*@|DS%Q4sy%hwf0ycmyzb3C-F~yL+;&yJS$WySk;V{+ZKl3^Hs@ zNR@q7AxZQKp9(@NwVo5V|9ws(Ka-#Pdz}OQot0Y|n;u*ym7@pkqS%rWSiP6PR!)%c z2hWF?=jyEX=AeWSdbEzS!Lcw}Nt7QqY#pj~_#F_do_VxGH0(XVmAEQHPRdM``W{FS z;q`NpxS(_hV65Pwe+(qlpdjlFp|lhgkti25)cVANXjMLT)%59jshfDI6Q8wbY~gCD zk7Qfwq#WWh=>t}k-f0{i@nO_u1v+c!x|Y0agi{xLX|EL1kZ-75il(|2^w4` zs|3+KXAJ0J`vyT436UVoY)PU+V+)u6RY>HY4;!K{+(F6e2YTakIlPbIOQA zqH`eBH`t15(2-Nsq*uaxOASe&S=BBeTkrx{C^jQg?|34*>$H_A3sZ6c^ zZ|{C=`}DQUmkwwSV#Vb}9b8y#P?@2^DpPxjCg_>(O()Yet{kJ&w-YL@+a{*;w^tlcU}sGv}#QKb#=N&QGshF10fbZ;3$@ZBN{NnI=j@ zj&0SlQ6Jxp981SzeUL=aN7@|$=FPcA;51}s$L}n2*O_iIB}$XE#&#VX+kb(yN}_wn zsQjS34E}_la&~GBNJPRi8bei;!Khh=DqdLfsg@>nk+IzOkJKcLn(C}F6)-H5z$BK< zJDJ4}W^J;O30lFFl9}y5pBqwFJ8TmK+mXX;91>3V?MszY!b8f{Q>&LsWl-{>BG|rP z2Gud)iA=RFgf>+1%}9r$sfWGn2kY0CK#kiU@VWfCQMpeY#TIQ+hp}0)7gbDF*elqt-J?@J>pO;WtV~r7*AZ8< zABp!t@a|^6x5X2v>GHdLxs~HU%5tQ`hH{)dnWh}+-Z7Np>Qv=$dRz`~fW7StfEyQA zCwvbmR&M3ko3b3~u3!0xVCUdC0GNMkXY3ZKio`wPFc~r* znk=Mf#%7V$5ml~ik*}Dkut*S)hM6l{q%||;7Rg35gJs zZ|%$u%vlrn^XMepZ5aLE)ic{IQaMR-V?+OV%}kj^+G{}OA*1^lk@OE&&up_urNr$1 zgZ_TaOevDeGvmumH2V(s(f?UDv(+L&gd+yPZ?QkI7p1=|p4noNDs}$o?uY1qm&{ym zk@hDO$z1}`-&$ujt4v7afQCMI-OP0s$sK1xYE=wb!uZ8}y&fC%yaJ0Gub#9M~{%qyUTFg|db*h;>{r;Aj zVvE#b#!t0ypiga@S!0pv3AY4fbs0Kh?-4ibM_{gj z7k#2+W)*&Ma~azGEnb(W#ZgNiFP>S+$`~C)HmRgBM`rYk>t?Q2zaa{N;5Hh8suDQ* zg==T7vPcKXI9&I2xc$xso+T9D3%Kss~!`z5pFlVvrr$NqB%3?m2 zC|%t75O;8#cey=1vm zsdB21NjKF%w_a#nXG6HT78Wd-h9h;K*%C>gGUtz7Cd%@~GgBtXj02y`isj+`@z->oaV4)=RLCZHjG5e&lP%RW=IUz^b|s!SGcX3BYbL0~ni2=l zN}QMxwtou@TnSP3OfSPdG%`$-74RVq;(d_$cwJ5x3<)r|Y-;tm za+mWYO~_I}f@eL`8q8XX`y=?TNB=M>-qb#hQZc=BnY4q`PMJ6xX!p6AVe{%72|tlI zlT5^$jp{`vvdwhFX>OgqavAteV*I{}xlT&OZ$8|*ecntx53H9!02WY4La;qYCkTI{H37e(uXEZeW7Ve%{_5)ZA8;P0+WJ`POpKu zBTNeBjuo@GBU-$>8r)ihBR4N)t_&a12P9+eNPSvP!}c27La8&jDG16W&@1a#7*&q5 zU_6ide*+g)^L;2e&O{T4Pv)RV8ccjok-NrmPNH(_^lI#HVbCAM4XvO)M3ys(-6L~j z_B(WD^U9paa@;BeBe}WMDY<8&Lz@9)31?!23CPR>Z2u*aU!p&zU!v~@FI~g54Lo

zNSNzRjFJ8AW_FrOS(_2CyQe znDNkMtENsNPZD0PrAs$XokWJGcu7aTvUDnx?aIFB>ZyLLa^|HIy`p%k4~gTKO{)XC zWaU&ZlR%g!;dHTeDu|*N{*Di-bRT$>VGAnNX%SsiJas~cH9bNLty2M2a>F;)Xp?a# z?8y&;_Hc|YTr+i?NtDvP>ZlIt4V?n> zjj{7?@Pk1qw*LajAwgX2FUwz$uYx~w`zg(LSe8oVXgui#S2$oywo>&+p^0|f8I`Kz zs(mbdDzWoqq8@!w#7?oVWQH}G;|o0_t&>dsnxRkRf=T^Fty4r?W#=6f?1Pw1GhadD z^v4I=nEM78FzPL$nFir;txR2dnHbeTeS&RMBD7{5WS}=Weoj$>7* zqGY5(56IH&l#&|Fmcu&D?Dd2%kf;qbWPu+?RXnn*W&%?CZk`oRXF{qH8M$!&4jJ}{ z9+SbFfUBfv9jyBp1)04FjH{ojGs$}Z7fFK|6WDK?ciF0!wEXYfafh@_DrT9#0#ee&WUYv~pp30T>ve z;3$m7<1AQLQtzFq7M$S`@1(!z4Ub{y4Ue6g+|;2pKD&x-P8R{HGDzdtkvd#lIxxM( z@o~z9N2In zXjnJGYKFb0#-G*R(-(s5F3yise_4EOWMptcpKVf@u(!3b$4ty$gjxKdrTfE?U zDbv?Rl>``&OK(UN@T3C-yD5X2C3tX(jN)Ybyk>f7jO&;VLo2y5I&*lLbch!O>g*vX z2oeOMr511P982AfzQN`5$6Eo@{AI~Z>7i5=Xg1)jrJ8_~rv`B? z@?o}Dwenzd4~=2?4y{u(+ib(c$K5+A`5VM+;gHPJrwdjNtu#(-vp=EV~ zuQ>JDcpuE(gvfutnXPZSeD5*`E^{Df4)FPZn?zR2Z8^Vu`GsT-C^gft7H75!EV>uO zNh;E0OkD7iX*f8et_9wzkFARm_tvp_oKcbkouxUKqu2w3ORBbZ7Z?V5UG-q^;q40e z+}$qgF~hzi^IO`ma49qm(coc%1he|8OHc%uEo?C@2UN{6vv$g|MDp(EVP?JNuqfJ3R;dD7fvbO(yEPe zVkQhqaYn8pPARU@Z`0_Xi#8lI;HU`Kl;U&NhASg816mANrKt@3S(JejP&WU}O@i8% zVCru4`U#)GgvpmZ2dvy_bI$&UuPaZG5GI_WBTz#L67KT#{|yp(PW~l`PjASr`YTP- zEvoRVNCEGy7!EdhnVPW*0)HMNt>I*Ao3{AO(ur?k@4V=cVYx9Nw%Nr&deplK~{AqXUxHR z&|1;%QJ4CGRq0R=EC@JbxOW8HC>T|#2e-3HY)HyfV+I@lA@C>NC_e#7`rjqn)I~Iq zMD@z;!(bo@mO=3-186FeSF4&#f+605Nr26-AN{U^qv;4c>?5X`y-9r0V6Ko^VpSn$Na zYZu#s1mGiaXTQjMygjBNfX`pZ1U&6V!8HZ=&5z#zUlm)%gM*=wEj&^;63I0?6VRA7 zeGR+@&Tr#%f`3;nfCFc($-%4n76;pBdO`cTvBOgru&U!eu2|oeB45!K=%15|ovGQY zU(S;-s+oJ?WY`x5H(_tIkz=M492}GBHa((rPu;vs+RS*URBwUE_gf$?yj~Zx(&6CH&H-m*z~l1PKy={*wsdrsabEAk^`DLF#kNPa}i z=otMN{n(8bWhJTI=dvhEAn9qZvnWOEk6xInP3-Uu%;5seV|%nfDm`f$ymlXqqd<(c zbHMV|q>TQWFkcfx&DX`i{HGY0N5#N=Lk!F}#lU<^49sIaR_DOu7{=tG|vq?5H=*vj;Ma+3gOmKhWg#cDV8Z3^Rg`+PnY* z#m;;HyWQT7n!EtJyd92w0M`L44(9{7*5m0olpo-R<2N9%OT0K1y}IQ}n|S4i>-`55^Bc#hma?j(=W_4G7-m>=N*J_WeZ!vAB_ zfu444_|Ik#PMExh$Ik2=kY#mdApnYqgIX&LN_x3Cs6UH?`in3qS*;l9ydS5T*!^8r z26>%0wqGL-s)VoqqkQ~-n!JkGQdArL1*aXY(3cf&o@XbluE=U#HSP5Q zSF@wW8cA=+2kG7#Z%2JTfSY{YOzZ!6 z+ds8>5mePeW!)t&{83ccUKlRw-`6w2rvcFcoCchP=-OlBk!Vjp%J9Z_41j%ZfD7yb z$1fd)_f{8fC@d~YTX}quiLt&Ai_y#?Z=0hxvn5Y1dG_@W#%bc#FgpjxxEPoTF)(Mv zz?>5UGbsk}>D{ue(lGHDKK>D-XDBmalnApj!IA|k;?MS`6X2{tAY zEGiOgoX`I!CHfF;C4V6I6Q}%B`K5A&^r$pBk0zh-)$VSb(3A@573y2vu#Fw|Ac5A$ zR@vQ^H*9-%XWp=F-5q(uuIM^~*jw_!@2>WIL05G7ML=td4G>v^v%k6)wp?uY0d(Sos@mHG(#u!PD1^uMUm)El(YFv6c=)J* zKVJ|(W#u)nTv%CHR(NarR~Yjev)Bu==rX zE8S`}JX_=NxvXVY?X}WUW#ziO(dDR_6J79HY3a>tfvk0frG@qLWtTS7!amgo8wc8b zE@&`Yja_WT1>>2mG}cwTnCE`GEHe9wtg<%|V>g{un$C8a&i0tjY`e{;)#g+4!*(+R z>^9TGb~6ojGZA((74|CgyJj-%)uqSQu=-Y9xM9AWW$nP#>34ZCtQj~1ux@m2(n!T#q9Qdnq5(A|$+c|HbwyS=+FZ`ii(-n?N~bOjMRAA_>J`$WFT zw(ac>WZP%7_x0i(TEC~dD3iuQV;Xm1dT_C}#-_X|aP zlTfrb3q^a2P_(zEoc~|Q$NYaJUz3^Q^?(S20!>;N+nK$fR-J!f;SMv7XDnaa@8_BOB-p^k73E2O$LVCZ{I+wZs z@kyk0z803+3|5uIxm%jrJ1ZK{i^Yj^h%d_gM8!vGRz;w-#p`$az5Qn~hl7G7^YOn4IUyO#lM0xqWScR*bKsfEH9)S2@p7KaTE#Z6UC21ES6ORpaF2w_*nKofsK2@YXsE z_?@=^{>u5XCs9|5`p;t*k@9jutWhUKsC%vqF!&33g12+{oAU$@3V&eE@tY8SzMoaA z_{RAz)PI;K9zUNi{0fGT^1lVdE{V4J%f9cp{N&#j2SlnndPRcui3IBx2^JCwc2XqR zDIEV7Ko}o7K)y=$$Zv+YzN7i9kIKr8d9$Bs_3oOBT@Sp5c0C*NNLS_D=&D4zta+r% zJ~z7TNZ0y2(q)?)T{fia+C0)#F*mv@kgk%v(dBHNlie7+R$BV}xBsnq??SG?0Pm`~ceR8GrI%%VM{6D)B2wz>exzIIV14QnDsKpoXyTNT2dLP=VIf*Rg z+w<5Bufq=>oVt}&J0RnAg;j-T=9{s$yyAKUvs__otD_=tqu)^<@H-nXv^s3+Ns|vw zb_H5HngY&-3ix|Zz)|ZAI4VkGmhH^iwW=`ID3-DYlf(lkv+WMxLK)0(JCU?%^~}%C z_5^&bZg7s~L+b1m0hhl9d{MaT*{O}+^szG8?fk6C?Q6kjEAceY)Z%mF*)E1^4=_}F zm3qcAI?v(N$V_ zalW-CQAz`0mFLm{_<$;0|8JAtEy2HsrT>tACQI@fd8fQrcFRHeocv1py&w<#k^C1@ zOm-1334?_2Uh)9>DET+?J@P9m(G_$P-9=sW2t7q7>7Dd-5JmKp^xx?d^w;zg^egmn z`b)BG5nU}iJZ^{2TTH8Ehrgu>?C@R9V2T`YLa-pW)8VrmKn5 z;cRe`Z!D!7_@7J+M83J2+SGH{UJ!8Bx$6T>(LwU9m2`*Ux~rL8eQYhQ)~gxQ@Cn09>K!k{wLvnTECE-M>PudD2gP7IAy2KM<;J@z-uKtgO5yT*22cC9F??0J?q}SVlL?5XQ>|fgf1`ue^pHj9>6~ zYGvo%N|u(;Ln&^8#-PdJYh1RL?oDyGsioGnoRtr=VVTeqOX(*5XaM?Acg+gcblH7& z4tfr+tB#c+$lAN%maoy(!S3`XzT|f`H~HADz9PC_!}ocwVqcU)_`M$JyBd8h?OrEm zQh(yzmiA^pe0kOx(vTq&e3vtVWpa}BZ8|K@1W|c{oIhnC;E4BX)@1pU%rzvvLWlLV zI52!0OYqeJ{Z;P~?@Ika{C>`MuNMX(mPeRqxL>kJd!utci$IBL3;0)(FL=5r%-s{?~v2U==tk17@f7g^6$ zaMux6^D%`Yx+v=_Y(*M6^O=eB|0S^WPwo9{?*6}wR*E7F7Bt@1y_(AbjUvH3BEkG3!On>UyICaI1wQ^m{GYecdh%OxA2|sA|1Zf~!2fTa;{S9gtFT9# zZ!iH(rw3{=8`sQLb}B0odA=iv85t!o%@tkB)d)S`LDc|V!SrkuAoe__TqUB5Pl4@o zd%?+Yhq6L2!z(z$?VZYUu?*KWv0chCu?%PWQGWpSqpiwPz+Sm-o)*na3)c)QMsJ(1 zOSw`6x!NeFy8Y)t1-g|Y#1=Mtfsh5Y4!;A$q>kDyKK{SJ_y2#;IGbQGhvwrILoC{d zgwpn5p=b{aMf-?Qw0{zc_EDi|9}|l9aiM6R5Q_FmKK>7*|1TH$1$jC6|N0L2|KB8i zNgB>|#h>x{F2yRMmo$uYnt_h3qC;7a*aD{&yZ9)#yHmLqkp)gGDpj+hy?iN&L90IEj})MofTOT<9g0m>={>JUI( zF9ym3P^Ds^U@$8v69aV;pmvIZf@oR=6=I-n11P%~sJnUlzW_D0;E;4d`q%XBA0FYq zf_-B0emmqT5b9bnRDmj_V2>E6PXW{cF;HIysKa8Q9s?++7^oiuluHcMvjF851N9ex zY7_!xxdNb?#6T4TRI3=M>jBCu21@n+6_V%!;Q#9xi2qm3;{R;`Ti}q^;OCuoDcb}u zVDz0Z$COgUp09$`u=dihx%9kS*^2n0q_1oj512YLoyFb`Web7}6k1gCCF$NC<$6RG zxFprKBB@K#%?K}0AELo~JG+(Z1ao{h?4RNs-_xON63p@4oZ}$6*eIAKRjO3PX6sNk z2&TGQ|DQzvpKkIi@=6&0QU1SC`WFcnKcar!$}SOIx;{wTZSn1{wjQMt z!Nm=Au$Pwax>bidyV!m`4)5*kQf$Jp)lI?nZlyvn&kb9QJC$+-7pN17>n*yJonm=n zs4AVx4#8yaWm~D8K3kWvT`<}D{_aktOfcE7nH>#VS}Oh~^#7j{(dTKMha?v5(?V(c ztWdPi2}S!Cp=e(aiuOgJX#Xk{?Gd49UlNM;Z+!eeh5G+m@>6m*vCH3(Z<5!;_@DB8D# zqCLjP{{|fY_ml6ETfzVLC**)krMF8Bxs3l^N`v4&N|meD+Uz|_Jz@)7;A>8<)CGQ> zVA3^sT;RKeW2*~%TS%!z>_fTQDTGJ*h9>$$J$=1)dxfn>ld{4nUxjjVJ5H?7RSM?g z^EJcD)+xLUZo3oQvEbaTMliPS&Fq-sKx~1-vWCrv<&(-`#CM3}|1NZb!}yQ$TI~bC z+~tsPCaIOEg17%3-2YQYeh&7(cKMs~S$VbeNr(tK&)+cxgQ3s+1LzgB669d+nZ(Mo+z=Wgy) z{9@Uyq2nUbCzdHpz71YQVGjK_G5-IT&^}Kr+E0Yi_EVu~KNE`fbD?Oz5Q_G+P_$nP zMf;Udv|kHFdxnqyXZiU5Yq0;_1Mz=vm$yk@lg_3Xzy)3ER9LuVabpwMN_4@Brm?;C zh!Voia>G2OGI}o$rV`BWe}~eKz~Tly)dr&#wl4RHMXtt?x&8sx>E@v zvbZmZ>vV8n%NFV<5L%q@Vz(;1fZ?t~35aFLZdIKNyTp%+Wyo%oAx=-1a!f2kxO^IX z&v<<}{x6n(D@nfvU*Gr0Pmt~8Ch`bfMf>Ro>B+hK|B@u3{nT?J(L`cN&k98oT2AS= zLTUSNp=iGoiuON3(S9!!?GHlH{wNgfe{uX@B3&!dchXky|MgmO14R3{Q{D-Y04Akt zI}{c#UD%jcqnUc_>QaP;OK%0_xJxVe!y> zK=&tXSFsy{{NpO-zfc`e4qSdV;tc5jsN;mL8L2?y#m2R_N4M| zk!aGN1Qv5(w@9#Rkzjj7f{Cme1N%f$wqGRJ0g+$_`T9SK`+pkAZ^*03e)%bRN-mZD zp9CHY^789cSV(qZOGhUTqHutvW2eHxv5SOei~m|1xYcHn*o6%mFcfk7Q6{RN6gt)c zwyL}UliG8lq1{eow$sz0oJDA1(+Z%P8|%X4Z~~Eq@w!G6c!T*uhcYgdYQW~auIf;t zqLEe8g-&G*k%d)jm@K0W4aOYe?f*F6|Mwg68nyjzmOdvPpMUEQ#+c*v>UqwFGz%bX zFd(#WH2az$Kp;ffa)B+)i5T<0UL`UQugmFjAAy);Jd0y7iu|9iC7G!hHSNAG4Zkx+ z0Dt9tHB-zXZL8Pa!d%mPzexdox;+m<-5A&Mn< z|7B6Px|EB6E3VIiK9-LU5Nowlxq#U7r8zFs25fbFVDtY4#4Z`<{qt}4ml0mP91uDE zJR}nAut+e6NU$1_U`~->wK)DSl6Fb-)pQ&AG--p`|Af3)x*sm3{S8#JK*pO2cNEQY z&^7gUVBT!yYiA%Jt+Om zSyhxqDp^+Lf;k8=lsg=auJ%@QezskuLw1&7nc&KyhE+|-t~6|8xor|$JlGqbkkjtc za7A9Sa<~#|y&bYD&reph&V*7`mGbsqA<>u7jpUz*NB%xo|1XwaFIA*&{^7%UANqOxl9o@t7vI(y8 z%`MFk#Xh;#+wE%m-zL#}=~nVl(g@Z+qcV|RBW+7;|EJxIwk?7?cDBedGktgI>4v=U z-0y9!H)mz9E*+|8d6f$0If@Rvl?l1Q@K~3>-0TUtRhACA)ZE0*X;|43W>An>ZT>P# zm_pf0N1QCP9fH3aSdn>MK9@g%lNF_>Ygm4wdjZ^rXU@xJFFozZS6&HhwAo6F$Wdt_ zZ1rR9|5Nhga*y;~IGy+2KkPj&wy|;)7Y64$dp{fQ+c|Iq)&{NKty|AVhJxeap^$YV zJThKs4~$#4m0GvrT?}b%Ewffk?y9ILExomsWnUsNd$+GSI|3^AAOS6TAfPTw0+0h2 zni&D>3Xci<0B&b?`R^(%g&NSOtSl@k+$=12{J>i)CS4U375IPYfQJ=O^h&g&HlYKk zDm~rEa>~c(moP}|DLs8--ttNqBC6T=zeKtY?SC7|bD;mb0pkDNDOXC5fj98$_#B`; zhOyY@Ei&be*yZ%Mcp>%}bh2GB7Kd%eJcS5GT#$YraeG|#uFe<+WSh50-G~jFUm-Gf zeX}oy@z_?**A~MF?QZsW#4ud)%K2`qHKBTd6An*j3_~RgWko{=_>XhCJpLHQNnSZ$ z6`+ymI^f087zRjQX%kp6YTZWyHC=&j7eqviVSr?z)wu>@=`|jSVQ}P?^VM1!nSo69 z`MP2(GV*+Z^ zM-%LvE81fi^i3!(SWdK7w#P91vT$5`dkljw3&*v!$1w7;a9rRoMqL(->vXlpFxs+M zTofhwV;E~$=v2$sQs>9v;M3GfJLx_25vg8W zr*pM9sFmWNR*8dJEe>jpIH=-s8q{WS$ul=!WMZrjoPv!-CdR`fp`CqleI*TNd_HtG zG%_AI1#gW;;hn>Cc*ik^cWUPFj&lz0)K=3o8F`>NRMP^$?HrK(b9}FTj_)0r<9i)^ z{y#2BpOzQP?ed%DUy$8Ik;chaXffLVvmJmU>L459UwcdTf{+a6$e!+ z4r-e?C{`iTx3JpKaHPk-qX9zI2b?wNuQ1@OZS2unoa(}m*RAa$3}ZAKxhj!h?IOXB zhy?54^M8>4zX!&73wb~3A%*gXLq_B?Whqp#>2yauG*0TbaxCxSgoJ$ zri#A7q5l5hco4B0J+-wCzXQPiF$`i=yndb)Ra9x+fL zpe;Bd21)^_UNKNF1E`P~sMiD3fEcI;0qV3EC>RP0hQvU94xl1pp#DRWW-Sf^i+~wMSwY-fl_Gwr8`^YxntET03GG+-^x_u5-bU{LYk~Xd zo1s5>Km92E41I)tl|DwFqCch2(BD7L|D~Y9z@yEEN4p)5+2La@`}W~+|9(6kIDp542l05r4R}0s2#<#k9_#Dz*wBDSw;PW)-iXJ>Mm%~vcx-CIV{Ri$cEP{^9>ZZgo<5Do!9hF@4dHQk7>^?u z(PBX)g2&NOJf1m&$FVUyM$zBZf^nE>Ned<>@OTzIU@tg#4v&+Qcszd|k2l?f$D41) z;{`CCl@?sQ2**M)NigR^a-Iw>q=bMc-659VOomx{fsC;9B8jl{7Bb4xTge%g-bTh) zs*os4V`QAAm&gQ5ZzpG2Iz`U0bec@EbcUQ~=^f-ImflHjX6aqz0!v>)F0%BcSlB%gAjw{!{6gM4pmg0*TmPY}@pzWs+}@loWL-j*=o@QOTx>N#FQbC^%d*aq?tn ztUfeuJZ+vB?hTEl9miA~l_&!U^fH8@0oH9F&vz*k}HPcrwlUjHctSTvLDJoev z(PykC2~`klMXvn)S!({yQUNv2W+cVTymW{`^H|`5z_a5-BHNq+R$wt)X2~ z=faZma7hu-3O4CNJFj{)^KwG#9S0VjTv$?dtMQRmWl>>C*->Sw;kCAj&_u}T^@jRF z;j`HcK}`9tzIhzzrQ z2MLqA$-Bsx$?xe#T16Y^DH@~y0JHlq(jU-YQ$nwz*V6;^M%oU#gY)1=+X6ca7{6*mC&MFQ9H{s0o0x10MWew}p(r-l@W?6htxXVtEX8x|5}z25 zuU!LCip|e#pf1wZ?rL|zp2B*!4=jWNZde)b+c(KSB>Cahv@GGB5%Sd%dNA?gzI}b( zNl&D2kbFJ$T|dA3crp=CpwYgDP_UnTcRh6^1CRExLEIl9-!7%?Deh0QLP2|XMn=Yi zV1GMCo?1<9$xlv@Cs~QHr!?`ik0D@pNS-Kzp4`kONh9Z5?i}#bq ztkjv}*-5PCJ{auDH?O6KQa#`ajhq@EAdlwv>jK@JHRKy937w30qU1Z<>Ct3DC;h?b zpjOBH5p^IU-%I%!5+26BgZ$?Tx`o4P9m9e^{8DQKW=Ns2DEV-lOWGx@5niYf*wV>I z*3xPYV!Z7ShKI<*@#?AF3XGFKtf7_sd2i@c80Nd@@q56HzpSJ?_zlBovEalyx;K8+ zJlZS>UP0IKd+<6)4yEO|_ttyFRU4?QTk%C4{|n?@614kgNf-GqdW1SCuADOclqH2F z`;RI#sefbBgQkh`5KJktzGdC}^4?6J8O1B~c9_;961%{rqbfAJ0R8`GA`4;SaV#|{ zz^EKaFwDteb--pmEGJ&&t)}#17v;a4giLZ68RQNAiYY{^o`XnWj>x9k_NkBR=E>w ze+R$^(4>5ud`w#Kt@3pavQmW+(YgoZzd0dUGYcBXUHSutK>2A6!|H624)iyEu_on8rWg9 zl~&L_^f1gVT62&krjhP(DJ04_z@GVgEG;09vvdJ@f~5<|lPoPHPqB0n`94b*lOM2j z3Hc#QuOL5SX%YD`ORpsV#nPqZCoIi3{xb4Ymd|qXGnTF(KWFJx4NKROXIZ+AJjc>&$ZuI%LjIejTgdNNx|RG7OJO0!(rx4q zEG;8{Wa)PDzbxHB{*R?Q$)8wSPX5f&3i210+Ni`*JC#{lNeN4LQOeRPYGLVaTENn3 zx`3s7=t7q6rG+frM;EblKV8hy19S;X57H}GdIK$D=^=V0OAphfEOpRjEUlr-S?Z)K zSXxW3VyTN>&C)u$lBM-@6-yiFYL>d`8kXKji&@%8*Rs?@*RiyTUc=I6TEfy6dM!&^ z>3Wv7Q7cQmbOTF$bR$dsbQ4S4>2)kULN~LtgI>?lPP&DqU34o;yJ;y)kJ4={?V)8X zJw~^)^f=wY(g5Ab(i60tr9oQ3(q3v~X&<$-w4YY8G(>m3_}V`NGkaR%?e-Mi&B{4I zt63VRdsup!?q%s9-N(`)x}T-P^Z-jo=s}i7=nX6#rH5F0h8||=7AUE8mcEBs4vEd2z%i>05W zFJb9F)0eXJQ}k|@eww}v+y6r8Gm`Wfxm12FDI@n%3ysnlZTb&0Yv<7v^O$iqRcwe1 z^@qk_i8BDgz)X*2J+EYQ8*Q}((tAx#2GhzJ~a>;YaI(mK?!=7TQC2Tp!=vNpb7cUZK_}EJb_)4DGlB(6mtWn)(2&sV zevT`n4JqWyt)bB1T-yjMizYYKbUIlG%D;l`-y*+FlHW!u$&+*fX5|;9c6zS|MET*^ zLc>SUH2^4&2GOSRCd=O!8VdD|1G8dR6_zv&#?BbtHfvlAtDx*w#~=a$onc(%w^da* zf!=w&vaJyM9wli-tBQJZ{dTD;Nm|C{*o6LFxtehlRIs0JCS(nm~55Rul&%w(739thCBdqyXk?SB@$YIh9dxcNKI)9qn zOWq1A{7;duknh0S{&z5gSOKg0olGmx30?%oL1S0Gz0`Dex9RL`SJz zubIxiZaVu<)7hh@v!_gF-#4B8z;yN#)7eka{>LH>OLQN(OKyTc^7&JGrmk5gm50H? zrA;X)DJm~2S$S5USJcA%0WAw=7mJ2W9%o2MGf~)T)sghBP``%ODolx+lw;;Mb^D5> zmo<9|gpTcKCoU|q|0*o?8&6k z+ixx3cEAb)h;=+-9qspf+g;Z1N$dDP$jVq}WzKr6;ixql*9Tewfhz>@rO-%pVk~4G ziCBZ$A^c5{UN-0ax4TXfB{jFvGY5v+sdyi*SQQj$-sERX&T*Q!c)rjskKX` zO^kW{H?Rzd+h4!M}&(P4fFlgl?kuCUgSIA(&zh zD#4D5*t{-HUdif!xD*hpK!z?48vRo0&;R|RhpwYA5NwXy&H^wp)-8AV;m~QS; z?1d%mgUXgPRY)y>Gcr7iLjhBsr?Jv93RLD)AmiF?bTX~ngRWJM7M3^%V@qbIIm>nC zoJiGdkFwysu~gckZkEFB#_|7J$tBTm(}(G6!G8Z3=>M&>fIJEMx_ik8==3&{#h~x| zGI#}esT`J@Wt+TI`i=DO(tE)}=q*w&yu5a5jYX;=MkB$YP;d-8T=K5ssnr&#(s&as ze%QT-R!pt3NSle?CxMN^gR7@jTBLI03tV4H-dQqrwME*We20&MApsX z`gzDZ)=jOjNYz9g1z5)jLOj*J=fx2>I8hGjL(1K zT56GODPAXUu})oSksJx{A+i(3-rgWs9ld$|R8d0aK$$V~H?5tz0y77@SAQrvj(l`R zM*5ja6}f-o)Dny2GUnjaN*~YTjjN{?BXbSp^H~>p!^){e7OBkeE!g-#{$bNpp+%}E zY@}*$uJN=u8^Ly@77VWZEw~da0G`~*Yc@?Sj6Vf|N1OR3EpWHc?Dw{K!1cD@Lmz;ei}sj~IF7rYVXU>Lzfyq=i*F4;a^wSFD*L_}R|J z4GVpJ1EKzjp%A&}+9}y09Yl^h2SR;=tzZ%awjF5LbDq8X^5Q9&KUc;d0B#1)hx*yQ zmsxMWm3{L#E;AuDK63Y}+i$T*I}8M>b^WEqw_i+$`;rZ}U%+|}M5(49;b|~Mb4?&nw}$f^6}p;Np|VC@;k^SdM$lx;^==%VacYWmt?j7 zQx1b*dQb_c=?=3oxSUfb$mJJWSLja|hHy~IauBjB<%K0J=?5V!!3$~x+NSgrmK+?6 zT{R2K^Ev$F$oU+HAe&NLSmGK~3euKt+&>mRbt*LGfj%f7lRSM}gE1qRbnZ~dLLe>O zgx5D3>VLBL)*5!2Iinr#?c!Y8)q##(@b+5?H|#m9$(X^ z*LVi#_w)Tfzm(`k`AO-Q2`&G{cB+g_U$snX93-oYif}(tV^K*_w3m%dIGDjMU9T(9 z1Q8b;^{#-&)m-my$i&`+k1E|h90V7-<;OSmqp@?yngQO*H5rkUTXC{>GJHzQy{5gc z&gE5!2>82NUDi@-sV;}efU8L*Vuz+zERzng631Xm(IHmiI*+3shE!j?tUR||%Q}-( z)-=G27Hx%sYEp|*s}0IhzKzK!RLKNqqm^&zvYrb@|37Ccx1 zI(q^~4s^C32(-hFD*%&^12~8t2y}D~;I%=LO-SAHKz|!V75$J`wDkauEJcbe3=R$K zO+&PiA#vsCv?68GL6thqx)T2;W?>}M2#=&q4bAnTXh<$fa^I-*>I^KfdW$#SvJ?ZY z33e<61y|Yoi8n^0cKrRT6^iyg^H?CVo;xUIjFrgGD+krvZzu{d!N z8w=zgNnTlve}F`#Bqi;T`vHvZ%XQD{fiB<-Kv$w47Ij@m1AF7xPy~hs;vMu34P>^= zz;mDt!&}?ocmOBFypX4iz^r2kKr#Lx-hd*pb6}g8VuPjf{QoNoGi%b* zKZiMxP@%1rcDc%e$gNaHT2Oe_~O6FPIrr!G({gG`q zHXI(%CDjrE*8i(${`cYVU#!$#t-hZW0n|_F|Gt3h$MKJ@ly)EfeF*>V#lN@e_b?oU z-vC9u3I9HbfA{P6l#kwnEP>zs2(B;0Kgw_9f%hnWPU%%3<62xHh){3FKPu~$_;)MP zFT=n6__rq(>+0Ow9_xg;ORTNGzwKyR2BvWv4_7*g&B+Z#N^m!?<_b#uK};Xq;Tl?_ zp`EdwSY3keJS_r2{SWtk4F!o|rA1)89YPB!y)4yvB*@;+kJ-jN& zDlB5J3jQo)Wm(o`l~I?W9&BL(Ss=zzz6)k>f%)(SskKpxAG55>8lx`yW{i1j;NTgX8bfz-P###0eTlVlc4RgQYe=rc z>O=B=hFpDc#$Dl1eN8M}3lCM{#;u4`8wxcvN5f5xS(3WTy%m@kYgu`q4-x=b>W*-< zF5E~$(K0vvX~{AwB;|jPD$1j<{rS1ppgkd83G3eXIL-i}`58y(d??1gr~Y~u>C-5AAKYl&wUMq_D{+is}<*WIL**;IHn;>ftR^vI6@FFPB?|PXel;w zl~U$xTZ?5!wYrlP(9$Py^mf2?ffNq5llz_f67%v)*6mI#cUPXb@+~;AfbAPj^|CHj z;wJtzxAnJmV`tw_C-}C?;t`H1XhuNIz!Cg5WnAPbKnf8k8NJ~8#6q0pWu`AXl~l8h zPBE3w8-YA@PJJ`7|TkUOw!KVSGv!iftj`lWUy|Lod4|N`8 zp)cMHCHJQ6#?&lD`v$wb%e!e8Db>3g>mbJPYPk`mjv~LDtiMhvtq^Z(p8|I&cJ*t* z1S|O*7#^M`Px>pC%(au~q_Y1npK@FgQ`INb>v8k!|0RZ!`9;clmgppo zmiX7RM91s6G85Y@soJWEBspHF4GB&`!O6*RoJ-!mVXv}`wO3DaN})2VjkY3{CH`5c z_CQu16Rc{MxmS%6fwhR0zl{P%N|I+8oE`~FPJ2?gI(ts9Ovh<iz+;IrJ$_9`0 zvWyIZe`q1HU~GAy7iTH^di$k3?IfgP-c%V3O7tZ2puj1+VlR7OgK&{g`yJ=z8JDG2 z6D?22A5XlyX+1^9K*60jU5FuAc{JP@!geCu)Dn({Ly^Fqjk1SI3oRV{cLcD=={RcV zp}P}$RKTb)&Hrcg|H)~e?{rugoYDW+T_XC<=>Hp>cuwj6)A#@1<^Mx2VA#I-)8b~n zenz~Uub&mK;Ol+jm3+Nl+``w-iC6LUC*sw7{i%2jUwmS71`1(ij zcE0{eyo0ZQ7VqTiU&I}J{i}EvU;ifF&DW>JoqT;p+{M?wi}&#LAL6}q^(o?RzN+GV zeAUD~d==vTeD#SB@HJ2TA79TB_wsd$_#j{N#fSJ>AU@33v&BdFdXD%gU(XdEGC-_<@KFQbV;!}K`AwJF5S>iK%oh?4g*E!-ozRnf*^R+~Lj<55?=lNPH9^h+0 ze1Wg?#TWT{q4*MC7l<$Ob)onQUl)n5^7SI|HNGwuU*~I?_y%9g#W(r7M0|^{OU1YO zx=ehBugk@E`MN@UkFP7m_xZX?{D7|&;)i@)Eq=t;O7Ua9t`R@sYnAvZU)PGC@pYZ} zIbSapzu@b7@gQF}h+pz`qj-p~mxzb?x=H+sua}BP__|rJ{f~gzkM?2p`KQ_XM^Q%n zqd2<_?#9`9I00v@5WcTBJm2Z2!({oGAx6{!PFqkqR13UYwEifK8 zcsb-Wt(R>i=$=T^V6>LmMlq?CFxFY#MUSi-&7Y=J5%lPYX zZx>Ehy5a$+<2M)bjU=v!LLH=sU8e_n_dy*l-VOaZQ^5qva-=VEh>z9TT#x&hB{z5d z^l;AV%8}TUyrM{%FRQ(NDHMvx_RVk^nq_?tx$5hzrh$y)1x6Lgqc>GB-UiJ-SxeTA zF>4n%(%IF;Dl~Ej>>}Islj>;{<9d|XmuxLkX2}ZfUh3b73d*rB%gP;aRZb45mWNM$ zBt`A0a-_VDUHqY;&VFp?YyG;CGp$Kb69?HH| zWd&R{mFNGDBL;wWqxuGT&iXI@gN5mKK2^ro+OQOwW7KPzAJTp&%eKA2-L}r2YeNVF zO&7aeKdB4a^1GfUI+D#r%2M<~Xr3M`0lBc7ruMcz-7HCN!_gah&&sO@;U5@>;iL(R z-*U3Cumz|)@@PU@XgzJ+q?v|kkc?DuzGn73=&AL=l{8WVdm(%}NZAg?`+MSDfwm(g zwCjlP9U_hW0jDI&MZ7T^9ZfbBDsy&gbNv2LiGPk!%UH%^(nH+&+m$iBT2}pr*(J0w znQjbNlOxj*8#KyJT%T;D5gaS9gNfyAl0IKH3Ay9RZ6!LT*;+hsF|K8(VMIwRrI-u4 ze;!&YSQD~7GT2H_=MG=@ho6GYs%uI`j9Od8(f)sm@_?c|pe|E?tL@dk1uvYh5sMt> z|0gjfB>Lf*ea}eTewc|f@ct|hpeZX`FG!ZP!%?br{M#PwBx59m96093A=J8*<21Pz zjL;blo5E%KTFiqS>qrSJKRzDBA=I5_VV3nRWt64R(m8AVqzYfT8n}nL$i6Sy%j7ln zgnHoWc^PZUdp;iSgbQHvWrXGE;=*+uj4Rr@hHxTpQ!a9@>&1Hqrod-&tGz8izv1kw zrgNaP2io#E)Wg9iy;l$09HN11clD8LxO8QPPkn*!8>F)`cYz*ue_6MdteB|^Y}C^< zAVe*XH_{=f`^XO}4@2E?I9t!UDE(OON*qI1r0B&+bXkr`6ZBFWh%Xr}Qc8I3HBz_~CMz^eOWVFoeAFj|KGzKGoS-Et`@*t|ec98}(ppMl zmW2Hd+n-RPdwC6;6LYb-46ZWZZNrgkFU9N0b`>fq;wi(Lj7R1sBSnx6urrbKm-<`5 z2Of%yeFX(0$vU`2my0EOZ}vc_uSqEba|9!Ve%?ki`(F47IS95Kkx?5+WxcPLa`v#o zJJzPM4Fd4lj?g9@WUAArdlL-w_QP9bc1-ag%*~%I$(AB48;C#0(N8vkKY9R%EW62o ziznueOVu(;Uc`e_EYaHY%d|22wsxB5HfHP3<1Uy?A=I#xbS z39(>o)(C7pLI@oOxd!!0nsf$sbYfT36T!-}D^7`-np__ar`~QY(FhN%4Te~!OzO1B z-$7C?UKY^55$KW8-Le2{n(%5O5SJIM+zJNx%-*p}pNLRth$+he<(uZAYlF=%%-=r8@nRnuOksw9GEg8%C+*m=9Uo z53)UQx^BYEu@mZLk$bAkwYrJDWP__j5`F)3ltu*+I`0*)7yY6^EE7fA6Y%AC590px zX*KZgFVvqQ9?(sQ3$RsPq@Jz(NV!`XQ4ZiW*I)4{oNK^!huM`{hI)GNjf(2x(P{j| z?La|nSvm@b8auQ>e2mdxG+Yhm4ZFyLLsNAy3P%%2tlkz2!rC%gy+s7eM&V&&dxqRi zjrF_4Wy?n4abp){t=ZKWY{-Cl^97^uzEPoLMv?F@A^lc}OG`)Lc4M)4b7h$V~+0ATJc80&dSKF1c_Nem6n}ikN4njSEKMf@3RZN~^dn zHk6OTAxBp3F~s`$qj1Xsk0=qF4T{qaNL)O76izwdy~UnK_vIwk%^!s?4i^I5OOL(~ z6>G~!;e#XMMBwcfNmR`qg+mTkVLCps=E6~&DTbVgTt@byvUn68IjE1>szeJRv3lMp zOj$OiJ~0Tb2qf7bhvQX8NDi@TRucX=;H}1vJv>0(rNqj4Nx0--Um&DVqYGjQxiqH{ zD=tjJFNd4{xWj#cSbk9wjyW2fB{+znVW+cQEW052Ja#5yCj|@l_@G$2IC<2kG&ym2 zxvdaON|M9mG6%B+N1)P)HUdeCaykFMRnZ<+|BuvwpM!rRQKiuG4_53k%DFm+Q?(`l7P*B(K5$;Zg&r& zwFgf7pgpoIIe!{l&w(R2`-+tKE3i7UQ4c~$tdMCcbTMR#H6vQ(Tl1ooW}JO-3Kc|x zjA1FrK+(h-`=eCCGC5q#Sb)W@u7r<;b>| zTWpj4sL$qH$*74bvoQodI-fkc5b@C<#pp=cqqI0ihn>IwBN>O0gs z)%U6QsvkwHulv<6s$WyTt^NRhzki8{Ur(q{see)bj+mflY3CsB*9>j8Rtitx<=P4{ zQ_Mwd&@y=ZUL!Ujj#sUy7cGe7b+za~Owc}YSX>Ve;Nyr5dW(3SxDD}B?iBZk4~b8R z`@|Q;*WnTT$KpZpsQ9h;qj>t+`|sb@s^EFv5&}yJEF-Xjz)AuY1XdHM^a;PZhCmg8 zwFK4?xR}6t0viZyByb6VO$06_u$jPR1cC&%5U3_lLm)(;mcUj5bp*l$E+?>!Ks|v5 z0*wTk2s9Je4z~R=0+1Ia&`RJ60y_xoB(RIXl>~MZxQYP9me0GIK#agO1lkDfCD2ZQ zCZoJKfqewX<~xt<3iCP%TuXo=Q|5IM=qAuZpqD@&fkOoP2@DVzBrrtaFo7ckh6x-c z@H_(75xAbfF@Uo)dVH34G!J1dwdXOsj^XtTk1>2c!y6dBfMJ5+2*cwHZ)BKcILdI0 z;W)z=GJFxk7c+bb!7c&GXvc>n(h#)HqPUsk_~ z=zl*|A5tHKKhQs8EYJ`QV5&A9BSApBNLz-e02gbQLSk?^yop?a=m2{W39v^S)Sib} zfTP+=v{xV+;2X8u5l#4R?OyF;+Gh|E@T=Ol5jEiF+OM?7wWqYd!uHT7&PH6oQ#+<) z7;~5xZ(;aWhPN|(8^gCVdZv5}(Qa-@& z{}|rO@PiCL#PGumKf>^%3_r&3;|xE+@RJNb#qiS%Kf~~|4DVxjKf}*4{5-=47=D4_ z7a4wu;g=bHh2d8jevRSR8GeJ|HyM75;kOxnhv9b_evjez8UBFb4;lW5;g1>qgyBya z{(|9y41dY+VTQkA_z1&C8UC8#V+?=8@NtGuF#IjUCmH^Z;qMtf#qbXd|H$x94FAmV zFAV?6@M(t6F#J2ie=__RL7^~I8EOoD4D%SC#c&G4e1-)K&t`ZI!*dz>8BS$b$gqgv zG=}FfJfGoohBFw>WLSLW`=>Pr^I{gm*$n3}oXfC;;XH<=3-VutG(ZeX~P;Ux?= zF}#%FW`>tB3^Lrpu$o~F!w|z-hFcldF$^=joZ&Wx^$Z&rHZp8t*vxP{!xn}ShEayC z46k6ggW*nwyBJ={a5uxN817+sHNzOgYZ$gM+{>_?VF$xF!+i|*Gd#esli{@t4>Ig# z*u$`wVIRXo4Eq@lFdSq!#PBe~BMgTb9%cAEhSxE?p5ZZu&u4f8!xu12FdSicoZ*cO zlMF{0jxii(_(CcFyIRrStad51JUgX-BWI6R7Ac{F5WMV4Eap?ZSq{;vOS+p$^fKTK z1Ezl0lD*iaq?XXio=S2lQXwUk9(%frhBBO7L#a&{>ZU_w$yp}CWk_0Nu_G0utEVX| zi5rQ|L?J7ix!94#f&PGt2T$k114DXaNUA39MmY^HQGsk2xGWw2@V<*_yGJXg!Tlzf zHgbNVg#B-(GEEop=h%O=y{DCTHW`@ZvLtPwf%FX3D|fPd)zLWFE5HBuD%!C6YURDB z^y5Dr$P(?zYB*!1f{z(D|M?rP%M_poKkO+QD^Gxhop9_`WLHyQZ`G%=!;2a-_8U@ zp%cvK8T`wtJ^!?oXIQ9szV5E2?LDJ<4)n);$soo;KF1#zf%^l*f-+h%&OY*TP;SzG zV^z^nimpuS9Q90vSyKLIA0rcJO&YISZ3A()%g)FCjEmQg^QZKt9r&SWY zi9l7BbG%{WKH5vq45N>}!=?|r3Y!l9P?wp!dV-Tt-;|M=`6U&5j?Z^fE+<;4Gm<^k za>z(ArvRtP3)+S7i?wc#Lz|sAD~n=Yl9F8ZrSUXZF8*w`watKn5F6?*z1`hynKha% z-ZLq#R_3V{b(rVfpP;W78t&`tKT7XrUjwg_pg#ZPH3-g;+G$ZpGwdjOGkZGB&|$^n zu_-0t)RsU2Oi@i66pY#TrsP8Q71EpJDZh4)G8-Fz?KWup9nsq10rV1_>CI68i4(sc zst-W=e*&6+{pywK2E+#}P@Yu2qkKepy>dNXO81}n(a$-tl!9%MtI|+oa7%p%ah#%| zmX_A$Xr!on?ujK7yNRAc?{8ZqhDcAbnx+U`?^bUs>Y96^+<06Qj=0}Gc)^J>Qjap; zrkBG_HL-?B(Y3`V7L$q?Ju=Y6TA)o>)LDGuBI8Lk7=e;sYhyL3@)aE@KC#Gn!jY(| z$=?!`5sUUuKe5oKlry$)BNBu4vB-|1eI+Lrux1reZ$|}ZO-<3JqWFvx7g9VeA_88V znp+Xv3PG@nIxaXd-=G^|vQT5Qq;~&_fKQpjuQWC_7ww&XqSPwc#LzbF#5|v}Kx3U# zTD->wi>@g=QQ}id`PE2WQ%kfcR&-*nPnpjtHBGJHebLoZPt5TtC7e`U7i=loGyTMD zqX4OANr6U+u9|jY78PJq8!p;ibOJHn=4;jzTXf~r6Nv04(bYFKZY|n%{t1M0Tg>>k z1S1F#M%Z>vJArs^3$$iX)ex+1X^Pbq?KuAgBDu+&R3F?`bVbn##BZCgSq4l+ zt%WC`Q7Y?ITi+Cn7U9rQZ6po7W-t~k0MLVV^%vn(5+0;iYC~PsuwsH$R97RMjza&m zs0B|hAZ}np9yq+Ot8IS~&N0Uw(* z7BwN$7pP-16;{{+ZjvHWi+wlrIPEC-i4ls6aWo)TlA?}L`7r#V@l_ICRF6m3q8|Kc zS7*GdLw?@T-Y4<#@Kncq;^591~v{PiC7>dO9qQ)zSJtPuZl1 zbF?mXmvSd=v;TY9fn*1nNt5N~33%?CwY~&q(ygJ^Y#nDS$5SjfA>Q(`OhsdTEK#0p zXG2j~e1s}t5>V+M&Tib(7hcM1ToxbFEZdqvqmiD_hRoB6|viGkPB~jha*2&RXSr6lg4p6Ni%5 z5P4)!bO`oVu>0?mLKo=IRp;nP?Pz=6bYa%+)NO&ifrqLjn=ERvlF%R-h6*1>!~-k+sRTpww)4c4ZV z`-n9vM&f$(4wjVAENMOCte)kj$W3f$tnYCG!j13JUf@VWvUZxXmFk|DMqYom`b!*= zQFgD3k<2VC%i%=(hE;tz#M)Lr&~9#MgV+x-b_~g#^Qpc9;2g{(7YF&L+&-lcXl&!1 z7;`Dl&CN6g8T@q6M&G|c2w!czdJvb%{f%6hynGtMHBhURBw9IOgD%X~Z9B4T1>fJS zR&bDM3UXZ%Q)ziI!N%D`{-u+Y(m%OCW4mt3WHXlF=Dv>J;I_43PF$W07bz9QrHu(# zu0d&^LWfza$DE}4KX7qMO0^o}N4Of?2?wN9j9HdikY0cHdscN)Uoq-L7>`#c>u@ed zwHYZHL68pHQH&+P&ut76A9q#CHO?3xpQ{r%~XZ13bG+&2&Ay!)yg zN1i=mt)??ZRr4Ulb@pdfSbqN>R%!2Q9$Wi z4JT%C6i}U2xrca}F?YzX&^{E~=XeaS z8EJ8_#S68?nQYJ*OtO(d^8Y^d8b!V4zgz=&LYo8Dg?cf=moU7E;Y%65jN#1;U(WCq z3}4Cc7KX24_-cl)VR$RU*D^ePm|w^EU(fIj3{Nn8Bf~c_yp7?T8NP+#TN&QY@NEp= z&hQ-!-^uU}hVNqdZiaU%!@aqh} z!SI_5zs2y|48Ozhy9~d_@cRsZ!0?9*f5h;|41dD#rwo6_@aGJF!SF$bzhw9j!-pCE zis2&+A7%J!hL17)4a3J7KEd#}44-89JBGh!_!PrGF#IFKKQa6>!@n^6E5pAre461i zH2*J9niTOHSmJy@yh%Jy>=u`bi$npm@xKQh{WobxwS8KnwoWTl{{U;CPs1wU#jq9F zuC7vNstRI;e+%aUuT^eTx`1Z(Xcd`vJC=@ElhPJW?3*#Vh9u(bihv_Ow8E`imx!M? zTIo|3$@Iw30Lf@Y$Gp+iWNbaejv5?C zingNBl_X!b2oTqtKe~bh(d^m-*deAJjEh+D=yF0~IHjPeo%e0x>UpEfbQ|zsM~7ZB z@~4Cd4CEw4?73hRM;;aORfoeSan;;WdEU{_1mI*7T+!YZNCPl{&i} z0(5c3qEVc6Y}59^rA7Z>FARG@;y|oD*4EL%ZfyrR`l4u^K8nMSa*bSHv_x@Y6YuZu z=@ro#qkQHu3?u2LeTKAqKtzg0apo}}RWljcvS1Wv9T{ZgV*Bh-oPfYx0J#$&cD44f z10tHLMe_xtI0vbqhVJd-7BISjXu4n&$02A1lfCpZH&EmBQJjmE8TIEP5LePQD@?rgqQJj-3)rOtnhQzknqc|wROP0e6vp{kA+)o> zweE#fWN3K=p84We8U5iZJwE23e!eOGoKx<<9BH+)w9}`Ipy}{lshk{+-K#KdrD5Z^XdEdX^{Vgw2xud zzg7LAafb)l{#}({JT0-v?^nCp_QtywrdNAN6PK5!5PB4=uGw~#@#CuY{=ro%BGoSB z={NUhXREG!@lwIKMb#6}1J{69@Zxp=2Bj4Y$YpX!bcBHN31dzj&!tEY7^zhPno0 z2XL6#6+flzw*63k@kU!oorgOygT}TTja?b!xLYucY*yx1zS77m?11 za;=pAA^yjw)JIN#{Ex$9SCQX%Iuk#>z0$vp&%}9Ylf{wvAg!BLw5$29qg6WJreMx} z?FJ@$6gAe(f%~setUlC;=xOY4JwDLh--(WS7`_})a$rC1;Ag#;T{2QR(%)h`dNNjK z@X1))*529GNt=TK-MKZ^T;>7!X+3*~|1zpqH4dQrd%Lzk5#^vq5}myp)%SRuXdT;4 z&N5jWVUEnxHz_$R;r>lJOM8ih{Zv-+2a zjzL0Oxd#&3O>`gzg%CKSq%8w>;<;;Ss$aDvvW&$#J>s7vh^1YRY)lf^yGw#gMoLS0 z&yuowykrPfEz~2*SWl6%oa%Lu+)XW)%I}f3?mk4TMG1|)M>6(HB81$OC9O)?1nHKH znJK27?ZA$Bf85x(QeDx#20PnPC9}$qAvlOAv%9j)jM8F*8&N6`jxQYRo~DHNXr=x{ z_ecW{9?0jGO{We`%%szxg-NZq|7f->QC`>A-#ge#T0dkGN0lTbBpzSVhcA>kM+x|1 zjKf>xGMV7a#7~TDrk5`AtZw4rED?%50;U!~5P?Vs()a$v^?A05gW8bM4igh*=F+}2M{Os9eBSFEqm@|tFi z7gm~aw9F|~5W1(~BaaKG&SZaRb7W@{cQStR^g^sY;Z=aq6KsSWKbVB)Qr? z%uZfZq-^ZO0<$f#8M;?q6~P>jWkhb(*<%f9@^y&dSP2 zbjJF@dLtcL&yU`YDm{1P`u`q9Yg1pQ++#NWbND8)E4dsyzFp{-JIFR3dOr&g9|S94 z8RI2WBX%L@igx8)R_oEbq}D_1HFY9_ou(}1^~97B#P>oJGy8fXaCsQYdhP=PBl82Rl-SAX7x4~RYtqm2tT9$WBUL42Wv$9li|Mz`c#G*L&4C; zFpuF`45u*6XIQ}SY=-ABJeQz2ZJ2$2E@djiLWV^Qr!hQ_;dF*G7|vu^%QmZQ z?Pb~z!~)SHKCJFnS1SKfzN)-R>A=I)_Hkhql=b%bGBImVmtXIBy5##Sp~<&9^BZ&~ zvZ9?{SO?9%gBf3d!6V%C#r6*E+lQ!f{NhSz{$(yn*Wjj-RzM+eSH_aCuEmyt@~?%q zU}whsamOe|@2!SDVOz%c+WVn@j;MpOEHHgXVo~~+a#BF(ZtLs;+P@`NM`qNhv@sAUpshKTL&ssxu%UWTOUiKCqI{++U$>By2k6;TfPP>` z(#$f>C|F<~hDXbO}MJMSQ>fRggCzf*&ftMI8L3u&V@En^{U1POV;Bu1!T0kOvSC;1+d2ZBZ|R?*EUKk1FIX ztOp2E|B8|qv(oo=GMJ)x=GvEMCD(CuHBK@+f3)pjT>H}b$+fK2%+K^LqJ8m#Bn%4R zY~enAq8ldXClDKbs5(AGXz zp2Ug-5$+gMnp{$7tKB~@iA9J(7FCVSdQqXF{sE{NY4^=bV$oq_NcAJCeYQA>RR*jN zY^5;{?K8zmX_w%xvi9kcB>^zqOAQC)p>H{t%2X3jJsx2}^~bc8I!3Lu)j&Gqx2$6=Pcv z0dgB$K{bT5kCZ22vXE8CL+!)oCt<>{SfVq+=V~8Xn1sPXSf-|pt*CwQ{3Hw*7HeDs zo>ZWOp?zRh66On)@@45jBpit`soMLeC1J;~z+f!tmT33PO~Ptnz06OwKp4x`#)hUE zM2-yAXz!bzgxvxh57E#U?!i(6?teP8yJsX}vj9sDnQX{Ywf9a-!eC*6kxtpQ_neo6 zwF21%P-ZEl*6x~>gp~peJDdn;WYF%Mk%XlJEEuc}2Z<@QchhIv)fG4Zj}bg`*al2} z_Wn^Juzhi*osIy`n5q_Z?kfxM zmU>_3{zz*xdCa2tr|?5&1Vn|avcRTIfr>zR;G&CC^6GI;Ju;VL^RBHlAF z)Q{=3H_!%_cK1OIZXnRz)&bqOUWCcU0*#hr617~iEFeRceUc4k&066_Onz~ZP&8sx zy`Uf$Z#rOXI@HmYV09=~8>|l3hoieJ^v=1JM+0emv(dpven6i*l8rKs!N{2$5N!-t zn{k=q?V!iljHk|@&q|7v|5Yg3ceDjcMHWRK?-{!ef-X{S8;Kl;F*!7AOszfkH&C6M z8%On+B}ieNE9)eOe;Oh!ORz&8nAuZgxW;&BKc#76jq|pyE84oqv9s+x>vS)T7j`dn zu0tOiIzt)IUTbd^LIbb;<$qfpZ2giM?DW2A^hb--#EP-!!5KNVxS!NCp$Xt8uZ9k< zhuO-5v~!HsHf4+{xXQ?TFOx?5mSq8(>r}`lE%H-dG-w}LJa%-NvYseToRiqWVb00b zN^^fN8F;X2DOtclQ7~J&)dvl_4VkCC%aM7a#7anw*0$%Mbf|sWM5`<`^d{;gi?DIX zv(5&aSpJ7kK2JGM5l0Y(t4W=$oHyc2t|cXXa)UN<{$l@T|6(|v&J+lOJjn-UZpL-7(1jE^^vxLfVB-ga)6ZfX`{nF18Kg&B*XI* z^678Vv}n6@U8i3FN@+A)XrqTc)#DsP*E5480_2txh64YN09U6OyuX_r|l zcZAEpK)mPRTX$RkK}b}yU>sG%!L-DbPn)4@$p_$;F?Y^;xp6TDIuQt4YbX zBfd{>;eZ2|)y*BrM(<9{N>;Kvzhcwd;2|Q#xq#1-pkQ|!gtIHJUI1bspp~7{iHU?; zjji?d7Fiy}nZ)HKR~N!Nqzd8?zj*=pr0=R|Iguq%m$`_tVIX42B8KE{7D2WQ1|c;6 ztLjY({y+2g@8-aby~#4DHg&4-r#jXS)h75;wKiHiPSbT+^l<0&3kzG?O}b@>hy%?}r8t*zSVF`j(uAG;i?#*!cJhv5F9zxOpuWT8 zeGU#GvCEkS(4mnL>8Kr*yV^UWQiTKtfVh}a44>G zZre*@hqbTLy`hl=SeJ#SFk(_=q_E5?z~Glf1by(mJs7{;o0WbU!GJuVKGj=E9ZtzM_TM*X<@pf&}uz1L|`?T|KxxZR)DeyTkqE)Z2>yXX=x z7x#)Ei4)>I;tS$o@rBu99sDgxX>~o^=EFID%}{su(KWtTr+ZZ8yLG0(L6_||hvyU)v7zrUQ(ftMbEyb=(4g0rMO(h%6E# zuF3k}yGS&oc?NlfLE#4%ifw6gN#&Ze!lIH(bPTES2&rL zUA$$o%xxdDmYCN5#ac^RX~z15Q_O8F-9&qJ-AI>9Uh7>qjhR%0vnb291WR8|>S8Rh zC%LdlSx4Mlmk=EJ5c?4e1D4Hl^P3wRwQpH$B$@9LyTutV(VfdWj{>DKs_R9omYzf! z^|K*AJ~g>un$#6f>={|9dm^^V!#0}QY*L*?yU(hng)!I80t%dK`o46|!)f~1i<0Qps5{qoV`WD3hTcL;-iiO%e+B%#7d`&rmgcV+6!PYDDmA3rl z`NjTBJD%YRXm@`ga=87%@XmZ?cYam=tju_&y0JtXu0d!r3mg5sFp;;TKuMgFKdYd7PTJb0 z(ZSV~Wet7QBhZzNca_n%S6)`O1UFqcHAk?Wp`L-x{XIBW$H7EkNqL}bQAK%qU=yyZ z%F6+k;WyghRYXT|LBc=dBnhFjldiJsoaM%1hpEU3$pSeW1IV~BaE$0GKibN?DJj@K zS>6~LwtYiTEf#}HM1SYrp}}}87APw_0(WWU$ z5wB8~;e4nQM`L9RsDE(T=}~MEUISS_R~qwq|52tY2n1h6E31!Pb&No|J?~YGKV2&h*+LI@Dd!&X=^B zoz){D;M$Z4*PvV!kYY(o2pVUI02r*SK}19jarxkmsMp)vQg>dUCEGW&1+cn;tc98!untyg{OG7>K*;LsK9CIrBIrUo{9F7g@DlU#xqrFGw zB!}UDh_oIOg$d{+Vqh}k#OY>cS$4mIms+1Umt_eT`KJ*(vhT3rP}F&-?rr(+R#SeRiMcizKlDOu zCAeAVEI%E?CP3$AhZCWL3G6oVsgQju077; z^lEINqak1UqOt81SBf7W7K!i^sz=VuLKU@4}~~BRh@59$yftf$U0D4 zQOJA?=Zw|+lyx@D)lIRMrq*b#?4E7tR{HoD44=4`oy*-~5GR zVKO{5o*5yv8+A_%`dO(juXqgR@GG@GNr6#6P~e+220M6k4|sp)xMqxpYBt~#GXBp&1z-6C zu=&5`G%oP(cVG(qd9*QOf(Uf1^yibTDzhNR|!UIS({y&|1Vb%)bpFlPn1WMKPdlH3)Jaqsk%h1 zQZG}tsaIgN-=!W=N7S3tTh+J1|Idfj`_!+gKU5!9f2Tf!IHA+Dx!PiFwYEvC(<0i{ z@D?sGUFEuQ81 ztkgW~_AKjmiglZB-4}2yx~;Ts*I2hzQvP?Jq8(G;pxpQGnf^|; z)I@Z=z&nnZV~>{Y#3?>+O*TBzTVh`RN#Y)B0M+A&IZE<&0%AXj^4LPAj?IZZq`B8;!0VwCJqwAHB?6_@Z>66`&sX*rMzv;M{a_RYO5v<$TPm`;u`l7_zOWZRrJFQqrQsXxVwg0!?)Z1-LU7|gc_rtd#b z2`QpdYf;~&JcHZZ{}QXmr|KQmuXj|xB)~Gv%(elQmmY3|@729s@s(FY@8$}~1-Fu} zOE4PLEvN$)QnpK{^{$l!RaWxCU<-!kro>=EV(GZQP^nQ%I@%CP~XV-)>@x5qj8bOpP=)^z@s$pfy+K7drAh4 zTG{X?!sBNbDj}+1$&hp_j{Q+uv0=6iBW|&(>9JoUpGaxT@Z7Pb&27|)N}=_Cks46c zfZC{D59$8*v7%q2?bUA9KA}A>W{Wy;80P}tH2x_YXn0sI_N3S6HR8q^&37*4&gqS_ zbIN^APPzY6aWfaQ?Mps?PCS{KQ|`i?au?;4dsT4_Ipv<2Q|{uN za$k^B?pZYd`;<>BBBs4u{Xg9Nr~M`R#?OPhvOVOcE3vuC-+;qz!@G01Cfg6@kjqz> zwLpSOpoNY!VBjb7k^s3^ZkJ971AF5X3w!`xqRGn^`6J_*3n~3@vyNXlT9eMSybid$ z(qK-iAAf~wyq+g^j!%PYE3R{Ql|M#RPCaqUw(dt=buTDL#YGFP)KsinyvXxPLzPnB z_sW>Ke7vX-!IP;y_f+|JQQdetH^p`tW41E;5lUjvT`?yfbMa_l&aFaDbOWBXDH$&; zgttuchbE)Y`n|Gc+f==26yUsYT6+Pnr^Xt9=Knd;{{OqM{$HeCqF$*UP+zFNU;VoJ zN67Y8X*;!}+O1d(JgEI%6p6JWDh9;O;?3fI@l)|B@oRVu|Gr<8;B234`T2xjp8AuA z2iV&bE zuaq1baA{K6ek(K!nqyK;p3DJ!FDVzT6J;<}C431oO;1H76)j$B*4$AJKQxpqj(Z}g z3Dt+7sWCE7Y)-{arVvc#%NL97=^tA}zQVJXKk%qgz3doMX98iltFysX1QLyEpMq=uGeFuL#!}c9%>!nEjcj@!&y0Zp}bjU z5%o4e&pLf298*5E0|b~*L^q57a^|)Ry&Q!`TsYHsMp@C{zLh1cEB?- zb$lkg>&cZu_d0(BE$%*Se+^&!Z*7y=OpQEF30h#L}hdkxn>VheJHWQ7Nq$ z+Mx@w7cuGs#vTyv;^I(p>In21syF5m!gC%?P28}-UOCJGsaX<%@fn5Ks?+SWhj;2U zJEi8!mNWa(Pfw{x9rIJ_V`G9!EFPbZFvPUm_G7nA&WGK)Oslh{PZ`fB`_P3nDMi>s zG%3$aQdf`eZ;Vv=hq5K@I#;Kn04}+#u7)_2%?7Wje!~XX0{8UxtoC{+ z<^PR}_D}UmLyK?nTY%#w%M^iLfmE z@#`B2V_<0O>+9-_%XkdOqysgxu1-C8H*a-C_*4!VU3BD}@e9l`aK9V_ZSJ)zvhA*@ zB*n?;8`|5|*$&StEUIV_|=LhOzIPX7KE74YHo3&=G zP3uQ&pj))J;f(+DIN^Upds<-83+>@cMU&WrI6^N*JfV+5cKB=Y4dum%Fhq-+>R>Z1 zrx6sTv9%#q(-4dWYpP={JLlB7k{dz|O)b0TRJ)SH2)%;bTX>}eWbg)35o;JYICZLy zofDdS2c{NU39C6ru|0uu%(4E4& zVIzHQjB?Dea;)PV=h+h|$N991<=T>e=&7aV^PQ{c1^=Jz33$Q(7b}6;}m_5{lDTPuOt!bx#eA*0x+S(H#QY1`e&hMnMdaU1e}0AR4D+2ylxwN+RzovmxybgL zo-gELQAz}Bed=-x>N=N>U zF6_up*@GU*$h|owS$;6QjL-`IgeqNxyQhl@fUiA~|m!a$P zsQPEkr=6z-@a=DeJwOZ|0TbFC+BdX6ikbN0YeYmG6vxFI#9h$f`7XZoTg5%%`{IXe z`CSc5<1lt4XMKY=B#?(y*M&$4p>J5fzy@IYHB`~mVar!c+Z&|!w#ew1#;}~Xo7hhe zdIk~QGT!g|sGe}Hn4`h33>#zYIbW2M>T_!kqSGAYlPc{Ia?*x04kNe)4)@_DOqy(o z8MHey9_d0j^I`ccQDr_P0}}JeN9g1TvovIILi`r(EDtN>FoG>pXd zgEHe;AD~_ci>|hTxRLE%>O;DZzY5d(co$Uahk6FZyQveR$aG~5h|kl<;-N_InVk10*(kgg3)hH8yt}b@$UA)! z-P`Ezc`wyb$}?;81JRB#+s(7=>Mf$zk&{WKosQ2>>wgs+fBb*u?|+R0$8Q*)4KqRB zu8}QtRR|6o^;M|(UBl!j+Xe8!3ASvhcxl&mikHX~|E;qFDi*e3>GW(w5Ia_PQWmg_ zS!7|>n*P*?eP9fo%0A~#(CfLi8%%v_YzXE4f0?4bQ2D8{Y~l|fv0}W0j-5ypb6ttQ zk`-oBOwO|HEXs?r6~;hgCZ!acJjUaxQ9B5a=4KEcWxeH9#F3 z_)ukS5UE1u(jSL(M+QS0B!P_#=u;l(YU|%GLmz<_#3_L@7|U{#GP*VUteAn>pPCYC z7%BieYMTK)#l7ZW&c^~Cy}=&y!{f0v0Hidz(e32-f0v@|R~OJR;B)$Ka1VL+tSsnE z@94=;KEnDEC%{<9)2gz13)!1UwK4MVQx;eR&py<2q$-HJ%>is9bj`o&ErAV24t9|^ z61=Ja#jYzjek_M_v7DzxZWI9$+B%NXVvA2`(w^c-n(z%c{z!KKXQ53kH7-|VMkSVC zIy7t;NC)7f)Bfl5)l(L@2!Zv6nH-{QfM^=ntyk57XHTGf8ReEVEx(kuEQ4{%FWn1q zLGr+<2`zMF(WM2xp8DDU?Nx=4WURRxHS~34>fL$)|GMi@?Nx~wDmWhN@wbNrdV`W za|qvWc|$vm42$zuW~Abf&0U}o9-4Z(>GNwjg6nqdC3Fq>>vBS8>NMyfYs1k{gISxh zfK7!IBx3-oZR6oAe@0HFIHS(d0Cx2?geRCIwNhKb6>6I}VV$H9nXQ5H))?VmpT9gO zI#WEgIk=4KAJ?v?adlBaa$3eQL2oq-2oMfPDGm*d@cDqlbwj*VW*`4jzF!$!nFjvl zm+CRCX$D}-Mn^z}=`ZD7V<0r&ldq*zk-l{I$L%OrMx)NXT;sj$%XO2%?Ai%ekrub; z`zQI|3gvZ*@-g`Ren|P7>R0EhYt*gK0_uh@;8(%o?_T%={i*sC^ny#ZN^PsQTkF$a zpuI}DLwlF@epvT?SNo0jFLAzDq`Xd4h)W>*-z$d1iy#ZUTigd3;N#+PjYMD7k!`zT zEm4x@Rg-*-f49OFVMS~UR49CZVR0*E;zW|Fgz6%(D}wc{A>Y$1uBC@NYM_fk`Tu4n zg`!(z($7u2Tbsj8t7PIY9Eo~i51JH(S6Ay9e`!zC^F3r15?&3p6Ds#%GpQ-sER%j^ zCN=Lsya&qlh?&$93Cg5LP5doUqs(91)ATYQBcU5}CsG&m{l-LuUlP&d=1Y-qGc;xkZS4EABa@EpFOJ0365U_(#raxIb+x#bxPu!`76&OW{X$o1iCx}8 za(U6^Ox(eV-9#hhtb=@B&)DNgllgk5iN$J7XiMwXEy32B7AV-vJV(rtDdEQAv&Aem zv=hTl;|1r5a#i-TmJqq32{q0#k|4R)lV(%%)dg!}td3uOpsiobAo3_lclE)EGf8Gg zi4klKIHmY}u~e;V+5&~A7~I{*!oe*qbKGgwp_aKRY0WJq?zHBXRr6BQDoW3M|7X7c zGvB`)6aE*!f8PJAJqoPv*WhyI@3eB@c=i4Q?3OAEl0zAnyeZoy$N@s65nbKX&`i3z zHGGPuJ0S~pbvc&5ypHu+%IXj7t5Wt!M*bHeNQ?H;{1cdOibgUaGEC1P&clMdv3Ia@ z-%*?7fD#?3ml+7?J2#y*+OEh9#d!DaEithvgIRR3MfX zc(PJ(Mmf|SmmH=w^ZtEu%bR(#nbL-}^}(%hVjf}5T{;r4-$gFro2s$Qs3Eq|slvrj zA1e>64wSdWsi4hS>}t~&Q{1WtX;#8K7*?b~xSlH&~_sCPDh-tSVRAeSVAq9u@lK$te; zEv?NE2nHjTZ%2JtN<%GV`4f#6Cpi%5ZiXf*!8zn)9*)e>$oZnd(M9;CO#T{T1CIe# zw^BD=OBEZ)CuznfV!1RPNyl^uJH49TB#wlC6kUqHe{HRT|IhrL;XsxgIKH)$MzrMx zqaycp44G)1?nR8gvp&h;Bi*>6V|R`KnTL*mId+(zq4E8Dj}%5N+=GSpsNkKNVJ*Y! zf8`yDdX1Wg%X9VbsxA^ihq71+k(`rkKWQ=A6pfKF7#RxUK3t0hS2Wzz=v)LrAiV1! zVb5lr<-~4cgtUj(=BZ1#WXZMkrEDsA;jG-}e#e*cKQr$ez5e9(AQ`6qNq)lS7wr7@ zjn6oX+25$$Nqy6&cK$zCX;PrA+XciTISGRhhI@ zbmfk#y8DJ=NBUv!0?*Pb4w&A$BfBDWbVl2w))9CVKejn*giy4F)~IpFXrXj&gJN}c zBXCH5v^-n9j*wmlY&NNpSlynHW&~&QXACZ8RJtSH*B@`kfqF+w4>5qfEvjD=YQ``^ z8^KsjsFq`=Q-P#h`HUd}eyBjjm zY7FHA2Wj&HH}bS6uih4+1L=h|t}<=>kHC_> zIvT4BZ>+U`C2_2q`q<`zk?vgj7zXN8oveu(#1eA^bVVd5wNmlG#=eP=dDd2LAyTTDzRgVi zpR<&Uq5qFLzg79W@+SPq;x9f(0lb^?t1{|@uzn?bW9cV%1+7_%KUWQ}f&_H;02Q-w zvc&{jNwcWFDd<|51NoXj`Hp@7cegKf$e30y73Q&oQ)bn8UfmS?`hxmE&br1xng5W~3nTdOal* zzi8;FyQpv>u(Z`(`51>chlb%Wv1y-ye_-iS7fzjT(2l}U1wtFehXxo8 zf4$Cz%(FhN;i~e_hcMijrFl> z?djC5^P+ws*DwPFMB?HI1BP;WgMe)^)fwj6`|>CuY=z1 z)?v&YtI5^~xnaSFQC$~oDGMx)EDn_Ky`B(l&*2*eB8-;qBO!^$!r>YEEtV46!Sqz5c%b!QZROFZD!V_9qQ>0!QS-32)YPhWmnuVdG zgllO|{B3D%Y$S<}&fT5hZuKysS)3ahcA%ppX#tXbM+nKToY+^ht1*cEk@FZ&ZzE6s zLD&>JoO_+6b0)J#)qvd4Q0{1qz|nfGw*U>T|MO`5AJg6ikN#VpOS^!?h2s~(dDtRfH#s&u#AGy;%n2!7u++LKYWHN~^8J`Cq z)6DrM>0{c_mv{}3JGIJ<>B!|C%vinXw4NFSlK$T`?NUX%RJ%g!(MGj5!kfoewO=7p zM?h>6SBfLz7V$puRq;rsiT=#<|2+aFCY-Wr|MTVs=Y zYkX2~y>L=*y=YQzy?9b@y@bC1mCE-N-DslBBqP^Vujd{AT4!Mcf^v=z+z1`YhkWm>b5@es;_VPSKuqVzpva6vztgVmuJj-tZRU8Q%?m^iRE zMZZpal>EbZJTMR7wO`E;%iSc`XpfwZifn^t*@jTwx5*7GD(J4i&BQS8TLx1rR+YX} zXFx?o74iF(xU5re(l9dg;v7TOegPx7sPS3V_4IaE+ ze^810*XXZQUQAC;=-Ji~w%3xgCtyP#9m`*I!;w>95o4 z!j6BdO5bGvxwiD}_MhuYZ?pfrxbz)5BAh^0l#W_IR+o-hKPpRKX#H4I`XcK`Rq2h^ zkF}*YTR+y7j$1!2E`13Z5}|^0)Mj+Bm+EN^!Io`C+RMnw2l*iE)w|(MWFLf-rkWZf z>E(JIxc9CueGBslnwy>N+EMFX)Y_bBk#waAj>%Zg0!P6uwQw%%dsn6$d5_5b|D6h) zVZTG0sa~zz`P^N_!vDzPLS+;00O3r1lWhmc8yjN-h-g*0Z>jnw+)>$3r`=cC@)*0T z#G3Jo3Y8#J9OJ;AeksWIid>#M&0E|wr$=t5I(;saZvXhALZzJP4wm@KC8sd}8sXG) zr?o_<)h2SW;d6*uZ0ROJ%f=TLDjRtpy{p8((cSdC^sO>yV zlf|TW(f9&*R%QmaO3%s`*Dbw_Nbb~jxrz0}YbVt+gF&eL{+kszJbMx3{^u&qC-?m) zE*@V--zbTiy5%>@jv}PhI#2SoElmwDfoRFS?&?GC%BRCk$I08t(%&B7DP3lR7m1DI zOAXowY_zk_bu@TOr~!u&?CL#t+BNv2focwX5uC z5)zOR>wBeu%vNJ#og>2&6)V!kuCN&futas>Wh@-bE-*rDIz5O`0D zQ5(`kzSfN=j7_H{=~e&kNi}m(;v`}b@(?E--n^E%Od=b`%L5It3Z!fZp3eoo;P@)Rf=pTp0{&9Hm+%7H>=VDd=745x<0(My2 z1CO7x)u+_2svl9`ppL;Oa9Ax?HTVktp7KfM&B{xZK_IaGm5lZK6nN2ukphQBASWGU z^CXqYeBl{mhkVLXjfJ+-B85)ee0ArI_4yR|l%)6Y0dV5hIb*#(Wu4YNSWU|s@(&Uv ztsXuq_tnlA>oHMT4x)Ua^T)b<%3=*+bh>-{kG913L&eTlbKY1N6(C0j=?=(OecsqX zN|d7{l!Y3jwZ1JY$FB7$F;^8PFmmw)%f~u>N<>E!Y7B0v55YpcdfSd5eD|;dTr|8T zT#ucH@3O+N13slx&)X2(>DzqX*nXyr&T5;62D$2&&KcWBRhQ&qQG?3B=eADwrfFkw zpRz!5QBS*M{#b`k(F2XRzD#}4^=(`<*6vfb$*>SIk7HCeqJ(UiH@4TO=mAbV`krrn z=~$aj(SwEX2L)}l)&@juF^al)=GZkpWw|WMmczHMcr4~q^k6akKtD9~t(`k|wNF`Z zd&N}W0{4AYbH?@%ORRx``$3F?%GCSTl#E?P9nX3yKVG9sm2<~-o5<}|g5F@L#<#k7 z>`Id=`B#-fGd)a#@ZU{9c$!i&)g;YpX4NhlUum>JTt?iHbCzv3%e^An zLeGlWr$}QdPCAjPi*Z}&CZ*HIR}?Bsxe>x8{-s76@Lb5V>m=wr*PBiuf{Ueo!dL@w8AeH9-vz1#E{QsC* ztKP2u3wi+W5Gwrn-vR0U$D5;5iZ^xo{TdfOIB;+qJRgPXW35w)*BvsG`w`}jna*Z* z@X-aUyWDG-ckb>f#np%WrxUkP5ig2mRJlpe?cXz{c&i6D%(ZJxI1+BG3*p>h64)19 zIi)x_5%$TWo^!>N;`I}u#-clSihWhhQ;L^+pp_ehNg!OeYfACvv?kTt&SM9{-ME_5WFD z0sd2)34NeF+6~%Uw0pGs)w$ZQwP(asXaZ~!SBU3{H{wk1hvK)|j}Z~nFUoQ1*C6(Z z8^p`S2gLWpZ^Q+N0<=jZt!3<2oAyP9+S_55w{NJ6b_4@c@+d%}5#d$_!XT$Jy2WPR z2|BfKJ?_H*6Fl73+10kUE1q{d1$pquF<@nRD><4ovV?1V=g~2X@tebfiGR|W+HgZ> zPiOZ~cj$1upQz(#AT9B31QhAa^t@;PltPLKVxW~(2@li`b#>*vHkC%w%dU_2>>oV9 zrR3c~VMv@W>(-%pZ=~p?o{y?~DIgh)2Mu<;J(XQL79+=-=%mw)40_^u@1$c>=L2ep zyw_8(jnwp%qTlu((vUs-&tms_!!i;`Z&ydWUwejo1Vn%JoqJJ3b&?*`n+hS z6J(bfzKAeijb6^ZhxF|S&YI3W$9Q0Mf4C4rXcKZ}G;r1hne$BXP4pR^b>2izr{vM; zqvl?c#O2!S)F;$3<><4t=ua#iUu&!~A+0vo z`F3$o?&G93J^dm{AJVN=lI}Xodzqx?Hr7dr;CNM$vRJg;&~J_NMsNDUh9j+2zs&&+I?-`u|oELapd-RMDLN*-17ydPLqrTG~v|Wmb!UOgZxA zNY3cgM~)5*LW_#R8HoMqp5)D!Jk#Hyi)4k^MH8qbNKg5H_TB?9j^cV8-rd<#F$lSU zWns&fF>bg@wp_8z`E-^KRqG@dEc+}=XG>TO6(iHn6z>rr)C35?@oga`R7BJxtX1rH*fmPn^%Ton_%<{TaTfU&`j6Qz9D$a zPDpKz22_lXQ#6*y@xht2gIHXk=hf|Wh!RsCPzL!mvAEBiI$q`tv^IRw1JIpag4i({ zjpzRYJcPz7tl;qX>)3fKX?0$vOr)SlH|)^=%MA{`Bd*MsSx5ByMAEjEEQ(CzSwa0#p# z_riO^AJJRrQ`@JR%Ms=cV=I&Xt`K@p2)!?aJ`h453ZdNtml+7{UxF6;}YYRQuD)Php-`v)@v9WEj z?}z!%TH=3V{?q&aBK-dMWA*pI)w5^-_kXw)FU(Z}!N&@ypp6Q z0;5@~DhP=!+?N{j7!TvI91kO*3OV?T27Zs$M!6#I1{`CL5B}KZ7}oynPPTAhWYuD# zG1v3`PxcW+8<7h6f#A$g#rywW%F&AQq*|zUtIueowI*$+ax|RZSHoHTfna7{p7lJ^ zU(xFFT*5uf4ya2i;E{-bSqzl|%N!$Hr38UtX1&x6s0qf3B{stR!mZKqW`I zFd5&{^cMZp-B@3udO)AC8Xi<#F(qtb(o2kfa&2Z_ksILP>Y7k(P^R|hlxF5lS!=!W z_H5x5NTg~_+%uqz2p!=BVm^Qq1s>@F>4TTyH9RJ1Xx>N{_L4A+9eyC1Pu#$68U}5# zk)`#ainLqL9FIRs0khJ7DCiGMlbzXwd2uS3p{fDHyb#a-LzU+h`1coOm+~1<0J1?6 zaEyA8S^~7da&@KJsJ5v`s@v7mfevsb$Oiuc>;(Q+eHq>fKL+|>hBibS1rmbA+9GYa z7S`5lty(X<9GvmI=E7unv$ zws(o`U21y+wzt~$*4W-!+Z(pMb+&h%?Ty&p4Ys$@_HMMjn{023?QONahuhvZ+uLq? zJ8W;K?d`I?N7&wO+uLJ%du?x@?cHj7`)%(w+k2GlJ;wH)VtaSkUc>grZSSeJ_eZw( zG~0WQ?LF7_o@aZB*dZNUKefM}Z+nUGB293i{q<+I_hQ?7iS51A_FiUtFSor{*xoB` z?^U+9iw_K8Mu|hK6cU@kkB%W20 z`Kl%J)kx-BA(^jMGGACSU!7#WddYk%CG)M4%(q%H-x_-VKTSccV9j%wx&fqlzPG5+>w?BMNfDKu(}iIZ4H7(mh4lr+T!*d6P<`n8G5P?K6$!?0yxSVJsP}jG=r3 z`xWGju_^^}KN6__%pG+AHmR_2YT-uEd5JalK>&P<;TM0w2F~dhY}uTAaaINZSSSxO z7UwGC3Cf^$Z9HHM0*RJfk_6H>I+5n#fx1%yJJM_8#K&7`Ei@J}=7r-a^Mb2nlmvb^ zB;ZFLZ5<+4g>D}Otlbh==npdv&Q->dR$Wz)Gmf+>T#=~gmITt*CLmpBfh)AV0)qBu zh8CUwS1EA7K3RQNEmyAk-lo52!5|V4WNhA`z7Df_Q-yDh-Hq+Q3fJ8u(R??%HlHm+ zNSe?NCN!fR#hNlU(kRVUCXyZo0oI8aO+jtHP6%CjaB29>}!K?OnDg-rspiT1*ob~aW~I{&*Av=ZL#N2*(tF3)MW zTOwjd8ix*6nrOooKtCrmY*M>s5=|R(4h6A|k`_n!)nLnH)*!taIw=s=)Ul~X$idJi zqGE|iOVn~%@>*J;y$6ex#KL!sv79Ztu%21Vt}U`Hf#)qwJRMTt*?5bhB?zmA{Ta(f zTPW^pl(B^a)NJ5|gEXlrJuZRYHBS6^c${W-$4D>>wD6i>EMsRCQ~igl0J{W&)13&q z0_OP^T@x@&@%$gHtX9yo=;uI%ivVxmD3qansQnfwcc*L3TCFx&+Z%L&J)vHq#??-B zEocawtmXox@MYye<)_MVklE#LoH1Be%1jY=tnDUHjfJ#9Z?mPsDy(lFZscOoXSxF8 zR74ystZzEd*hg1FT!g=-rouGeMGSd>Q>I7rjT~K>rFAutO$C^u$Zr*#3iRgT#@-lq zf1tCrvky$$Mol64rhH>Bnn~oO!kISa8H2F&c2^S~Z)TuX&HFPY~Zxu|mDFj!8QTPDJ6Jh1k`r6S3!h+zm9f{>2e+AJ~LYrMb z>;Oa4l_1xi1XySp5)g`t=@$=CShAXy$xy@e|3S*B3jBLZ4TAjdhwzGb9nwIH z=bh*}x5>_=Q4>WnLFFLy)+$&Y$y5H)VA()K9TVYkX7(cCHB|wy6qWWntWE9H&)txj zS1CS>^N_Kua)juXB(K{8?+pE<^_h90bPABe|3{(ByfGqptcXtnQ6sU9iN@5*`nuq1 zY{Rr3Uc6UIK=w^ZY-2ab(%cQc>4|I;MA?m>92#L`A?M41w}~%5u}!|+IA%sBdU%?vzUF zEa-h79QeA27C6sO^ibhI2OFp@hbMjXyUvNa6K0{~RxBI=9dQ<_ zGmTm%yb3yhuynI|%qJS9?K`wYTd#B?><+oGueGDMXbz99dqNB6amETppJdNM;>BJ9 z+3TIiT5pWB!>mU@8sxEcq_oi7->6~FLSVNDKMM(T1_>mub|NVNEF>YIU=T4!n@}kv zV%QB*gGweA`hQ2+rrxd%Rx7nP&^&Z8$O4{@PycOMd1bL2#sW$^1mAmH$a$U>DFr2* z4RzCibOV|&mlhY#EQ$n5_ZZ;v26pxjbarfN-8{Wz^t-|V-L3>bg$acPh>D)I@K$0N z)s9uNa3eKm<;`_(tVk{BX9-mWy%j#YHj+zS{vzlavg?(OVpXvY2BJFNu_C`Ot#lKyUL-jdKQ*^6PAMfY%fjl5G($HTW* z>OS#qr*Ua?^|x-Hi7@|~tb@LddZ|BH34Fg;z6XD}TDHvHyYp}` z;nxEa00#l67lcb9fMWXU2{kqn421*LRcUKq;(%8wO4dRi@6JTvOZ}zGB=BAUt*fmQ zU^^ddumOo++T7x7^#kdJe*@_K1g>#xfg8VE+s5FDE$(#j#@VO0_)dY*G97NW0gG!M zM+la^$zo3|dk+vcsG`%Z1!_XQ0DD=e7L-0ytbur3hAp^&06`Eg{ww_z^=XqV%nEcX zivEnCq%7LqP35CZ5r=fK<_5_O0Q$&s5Nc_(x65w!7=vk_DX|3o@Z_axdXpA|Vey}h zS$VVE)<>dMJL!y1cQ<(+&;Ly2WN`KMs9*b1+p3(b{!u+b&45qe-QS?Ij>#&R5u25t zqiyQzAjW*_!?3ayMMAYJ=uxZNvr9ZG+tkzA0RKmtyIVoI7kIa9YiQ}*xUsdjC{oz)I}6UHg1bHSHSd5RctS0Fl$D2v(svU7OA>U ztPW+WiOY@&)us^>u`T}c%mZL(;ZE1ea+E^p3bJ}Ef{=3J`C*0u~}osI?9LFHvi1;1cUtm zgY_{jYwYA$C9D>96V&*NW=8y_f#OKr>e88erXjjoJ0czM+&#Tz%`c72~ z)cZh+=ThJRxCmr*%FwkiFFuZd>cwN(ie~Moju+tN4om^wX~$+31lLCF;YT<<0*!5L z{;sYzu-c9Fpy5%tyt8wQBfE80WU9mM!G|+6b~Lw<@rAQbrQA6Ob#1j+@?ePl7`Bm% z;HX^Q&QPb;2jJpT36__F5h4`0%3l)+*9QW@uHXH-BC~? zLsaRsc5Jq;)u}4tn7pDn^U6lxR)7;Vn@VDA2nOQG0`yI>z zye|NCyu3dvZ!%0&Q*$ev;Fg8TBDGFNJf!{RUi*&sNBP}vhbqx5kpnaIN9|t3#2$YI@Vr#{>)>rL z;;#wmCukjt_P&yDL$O*Xe=gPtW=8-)58hS@FH$(W$gW#mbsexMVQ!vCICNNW^b4L* z*#|*U_@AAE5}>U6`{=)<8dcd#QAk1PWM!m{8Q16|pSJ7kGHSD@*sV&V!@=5>AuuIL z26vUeG6({zCwo_X^q-TB*zAL0_Kcv2k(0eS0!JM0J~FdQ4}=*>(|fX3=#|)TrkKc$ z<%-h(D-=*4w_Uwm-Ak#kr}993!1uGp!S`b~H*Kowy3jI{jn8$*b=wW>3oTmgBzz`= zpD3||$4w$0j1&rD2CH+G67uo@axW!7sKx9;PF6V2CEt@;go>SLyTNs`DLKov(5x_4 zu?Lbq{(;1CB;%O!Bv4-GM47gR=`hm4<{=sLDdQ%&2EwAiPnr>6kdvB)Xu+y&~RaBo27*w5%$0{$HZNVsV!G zo;p{#WT3NtPo|IUXRK#JQ@}Wdg{C-mT8TEj-`S=dI3n@0%%nc>BbiIXnk_cdSjV&% z1IHTCUhL%Ql|b)4Cwje3pp>qFZ&4c?o3^-Nn~=rA`2eGVJx4ZDs}xRdV+oXh?nK!M zvygqj?9BG^z`o)u9FDQDoM)_MI;8+htW(Otw8^tROCWr_6X7J_ooljf&Q4&!ws4cmJny^%tCKC&=(Y0F%ZNeIS0bjKBixVPnwC}S+?I}MXqkqtnjz+r|+;D z0?-QjD?!c9vSqflycj;dn#mKR&06XwOhs#xq{2k^P=F=g>QN#cC3 zRVRsOr8Hx;$}WgI)z9huR-1|q0Q$ke(&1*S|HN3*RY%|}oJ$#emo<7cpwM-C2cG|3 zAodTsem8-hpKi5ZJx)CdbpD>H{sgRjUZL&;jX!sS<x;;?xn=NjJTH*_X^@(N!+W5do^*dA?~%r-AUZ*huwv z+((G}C~<#D+{cLfIB}mK?yrdZBypc2?$gA5hPclX_t(Vz4RL=<+~cc zPsDwZxGxd+W#aysxUUfRFU0*TabG3w8^nE+xNi~nZQ{N|++D=|J8|D7?t8?2AJ6}N zfY~Rh_0KNQ%=H4=1~ZIM{072nIFPjVMPKif%-5AFU#j@-rf37BmU8%Pk<8a7nXg?k zUx#GAJ=WeH?RkVGp52o9dL;ApO6Kd6%(qoC-;t8}`sw}u3I)|^JJoO0O63aYS^oPD z0~c)*ySAFf6rD1?61TwHoR=vl%tD9UFi#M0re&9@*fe8ft}=`9F3-Yu*CvsR0G?eX zu)WKPtqa&f`x};6wr|?@cgn~Bkru)ej7CPrFim|zYPgY`637^k1iE*+peq8!$kHzf zxQYoaOeYx|*eGbH#0%@*Zi-?{AbLjvqReK!3A4~Dqz0@vR+oarH`lO^#2l^>C$0|Z za0y&*Pr%gylPdjz$8kM-f_q`qAa+Avj-O4rlGR(0S-4^rE6zw-TGizQ(%b zxDW#Lsg9epa5rHWss-Z3(U-?x;~W=Rd=>YV;AazZJ7QPgKoDN8e6t&?p zkQ98A9huC_Vv*yrOlbi0vRv!{D9{J=`HngZv8>LMtU3x+V9^Jqpc3c{)1wmTGp$=D zD~F>JoZ@I)+&eyJ#knh|&slMyJ9k58Cr}A|Lp(0IVjm730F}U(VKu#Y@isgDi{w-S zpOPMx;PW)81imb5Fp20;D#1Uj{u5(KSE<%~OpIhB=@WeZAEcb2z`r-tC7|E;3$W>P znf5Vo|6GRda@qS6wM?_2LuT2)7dGE)oB0)ZRcBeOz+?*7z@UpPs|Vp;PU3jH;E@AVo``8tbY-u-0F?CW47k-uxn-kB7dAi7Lox zi_<|a(cqH=Hfe696sC;?;K^R7(#bP$h>L{?z?iY`dcH{oXryOC(-kNivqOGQ`L{uX-bRBoZk(fz*I;}t`Z_g zV-VH~!Om3q!Msk zF0(iW!#d3GQgSrL-zB&1g=z0TO;uxKWW`$t%^}PRw0&Ucse` z73I8DvF{cN3}L+guTkeIaPB`uU9Q%stKlV}MeTxjfD=>$UIETmFM~ILTh)8u1>i~G z0en$?P2C05|F1L!X#az?5kUE$q|F4n{~@3`q()nYq~tVSD93sCp_(Fs7?KNFn~ z=a8M~R-o%Y40Z#bLocG&fTsU3`pWA&U92*Zrs;n4F8N)G-Xp&O^gj75MIVsgAo`H} zE<+!Y-!k+u`CX1aA-^H?DfvAVeMWxE(dXp10)0V#_cZ)U^d%{$3jKrpR->=TZw>k< z`CWm&Ccm}lU*tE8{!M=C(0|BpJ^F_Hu0;Pwepl%V`CYB6A5~M1I%mI{9tT zedKqYozU*?qGyrc4SF{DZPW*m-;MfSAB>0vp$&o zw&+91Z>v6({2s0kBfnepeaUZ|z90E**N2ne4n2?jcIqR@Z@_U>< zk^CO7Pa?l3=#$BBOh1VHZr7)f-xKwzk0pH6;H(Pxm~9r{f2Yv@JfH?9|x z-&6HjkG;6Ir_om_gsAu z`8`ixOn!f+FCo7d>4%Wti*-Nwy+U7#=YO`+qrkscK(pTs+EDFC?G<=$yAWLgvk_AR zn?Vd|8px5D4A__=67I;#E4L++$S060!yLA?we>Y{0QQH=t>cNgP=mTBX@5>VSnY^Fkj4&4AxE5;0ozlnO3vvQ&AHrhRO(qjNKE3 z%-%LL_##}yhAbj5EnNAppU(%>=>(l6DI9bt^e zxp66#AZ!hMGfVxowV`0GeoTRJAg(Vxn-aeF@bc>ViqgoMP_Uv@KYD*-9M+;q<4q=B z2KT6;#sOGwBOj@6D=@~|5J3^Y%~l=(CSJXNtWn4`fHIYz5l|&Sw5fu6&bq)-{m9A2 z7+nc#>>fj{NK+jUO-yFMjL}%HB}+^7RzTXyzTRm6^3JyAXt&;1XcXW^vJzo( zJvD`Anyc1(Cm5r!x=t&JB?RSw)l*=M#1*s>Vp#r-(6*(~w#IFG_d&+~c!;q0B*+)* zM~pJ^v5HTYm`IgDfmA3=?;2^0!1_2@w4e(^?>x}R!+K>|EX!=$O~;nO^^UQ|aNOed z{R74i)r}S*y3&GSy*LLDqdlR`(dxBr+C|E_V8iP_>P=`CTB{C1rvvBTUx5ek zKJ+{Sc~kZWw0BHErFEym667^tH%kC{Nk+JTAN@N_Mdfj#L?p^0pM9_zRn!(wS)DY5 zKay5Cdy4v|qT13c38F8lrB|Sn@IM;{r3Y{lFm{v!Jc!Q}Xa%maI(ZLxi>zc9X%8uA zgnPaQyS}b#bUG47cB^{OHuTLYlYj;hKoS0V*JJdb?Ur#gnm*1mDtjX8^^g_HAC#{6 zm&bt0o)2@yO>}Cn_XjAsW{(?OGpYm7Bn1+EAUc_s$%g*u*D3vPqJj#wS~aG;sbHle ziGQ(qM!SP6+g{!h7ROXa>qG_{Dd1vx7OnxfanA%X6L-spOj;*P&pYO6wr8i(g9)ucl0 z1v%AFA?J3Ru)RstCxOQxWg&cZQYN-)(_pl^swPgk1xwWF3HLrqSrlJ0I-;WRSkyW9(<>^b2nJ|A+nVC03s0md( z6OIHcYw8Ay;V}sqGH9k$23GJsz*?X00TcHIt9;rDgUnk0GTl@>i&xzai&w(I%ccRPyZ_mYJ<4g$!;%MR{&3`xgdK)r zVdIEgrJfvJdkS*uxua_`nv?|cmw6$dtQ@zRBuj5qYqHVBl>36|NvzygXb6jXCQ*^| zy(+>;Ym|QFhPs%-LUw}D>9D@SkQHco61ZOFg{uJA4OJn5g{j}@a4;+|Oj*@Lx}pTi z33fh`m*9rGJ1(pec>ga@)&LWLaa;NeP@BwP-47CBQeci3T2^7E)Ak|j^cY-st zTeO!DLeo$s>O`lZt3lH41@tcP|Gt6N!rQ^m&>cv5PpKd`kit~NiR{^_QjGo^=Dkh0 zs_Sj8pR;GVejfdI%&=(#sS2*D2rUJcJbc;kSJmkgFmtFKpVZonUNL~gLwX00c<5&X zNWAaLfh4|Oq;hd~hV-g@Q2WBw9a;r0IPgZ2J;y6%^h;t4C8WZ!H>`h!xsq*Y3G^7f zJw<}-g((t@-ZdH3b46g5%5Y>^b#0};j=Y9oMp2A^SpO*9l-ZNgO*#5CaVQbG_OhCK z&>%-ln(6n8BiiPIXBuzxHJD%5ZX&D>paOKy5qmlMdm_P*=n5bTrve@kqo3aoxf#!M z`l&!r2v;AD{DD;lDOdAiz<3j2$)E_IS z!7E^;I#bP4-&1xe&uh)f-R2n~W!H&~lSr)`{kQZxLZtWNXNE`^%madXLHz@_db-zM z-=uBuSTsCZJUfuI1H~%3^?#}nlx`EGKWg=l(5p%oj5)=lPNSbs(RC@OrQYtnCLk!? ztw%2i*T4ZdTssiX2Zw;vKm+Iq=?5wQbG0jg-|s=~S&-`ArF{v~{6m4qZ#p^{9SYoi zn@}%E?VpJ*0g3#3furw_aDMo-b7N!MV&D3l98{pOlZkJ<5Sk!_CJLcRLTIuOI!Fjj z5kgai&@>@5T?ow(LNkR>kq{~tLbHU>Y#~%4gysmLxk6~35SlN976_q*Lg-*2v`7do z7D7ve&>=#|FNBr~p@0x76+%HFv`h$<38CdeC?tdq6+-1gs6q%;3ZW_?R4s&RgwP5h zR4atSLa0s%)eE5pA+$~itrtQOA+$jVH434PLa0dyH4CAr5ZWY!HVdH^A=LWA{I}Md zALjq&Ho6f1F#lOg{QqM9k5!&j;NK^(-v>Yk(0S^0>SMs?|E0D!?C#^W*>D3`1zLQz z0|j6w=8R1!d;5BQ>ik zsY-Kv2&n=6>UFiDGSG1jYLts=fO)OF;NMsnvJx&*t7<{EB3KLeAu1XKl7E;p5LC{> zn`1>#yV^UUcTCzK#Ds6B2@z$boA768Cd^no3{BQ5!H7=xw%X`s(2^eM%^=!uE2;YC zr9^u((}J%5izEl_`dEv9s5jak>D6}?pe1T$Yfoca>*kJVbHv}&1bHJgPj@LkkypVr zIanVlt@HwO|t5bO2N`PUFMUaJn2MoL3r|I&(J z>5$C9XdL+xtfC)$_?U{5m><9#HYm#;qG3$Ily8KnUM7lv2YB# z;GCjv{DP11JpsNIk+C$h3aibZ6{!Wa`30|IJ}`(X#-nc@9%MLjcEOwG_gVP+{77A8 z7=JG*cr9_X&MEl2`LToyVJM|EFt^}+6OlQ%Ao6Wq!3XBIxmagE`8K~`7p+Rsyhykv zR1^+Z(Gfqhy5KD{W}}a6eP6mS`AYTmdPz!BjN98xlH}}K0!r2U97@%#Hy|d}$uaIr zROU>t%D4#zxYfcforQjh(VMIINtZ+la{OGEkcTNjq(B1sou0@i2rTgGv8^UdNM#}3 zWb_O+?a;=?Qa$TdE)Piu3H;CX#NVTgLJJ9(-nVrVS*bk0uxh5y{{wG*ro9h0UIVvp zY#DZ%cVXXQc|KJ#-;X5oeb?okCW+_ilKIY%%=cr-d}m7LJ4-U(*^>Frk<53lWWMtx z^Zi6J-%lm;olp6Hu2WE{c8;d1hbhx8Bi=mk4yLFNBSR9)J==@FZ5@cbu!R z2k7kVB72GTNW)fEFeh@9!<-1sA<6_wVEc(Xwjx}9w{t7kLUSKuTdp#mY|x>Cobgt> zQg9OJeV7crNrnA|lbvlyi?T49X7s!Ebb@H41afb@YEp%}zbu zry+H?6ZaHFOq$HsAw^=VCNquWa+M-d6R;mtWVJsp2`$m^UptYfZOTKPRJgiuGBy(m zX4&bSpR_t*G2k;;IF}g5I&Kk((3$kM1n&PyjXQ&$xUTXDvs4!11;#O~v8!og<8BgV z$_I|HsyY!)gzB_iB9_Sz9N78aTmQG@`Qt*#d_R-S_g$BFktCiMOXj;oGT)_=`7V>p zce!M~DDVgso$$VE!=DS8R-?ftYcH;S;1*U(LTjBNZB=tkk-}NY(ihhEAqAmiy zpJvblcB*uhy)*aj_{((@MZ!QyU4F zL@Il{?fQBUhndaprq1qYL(`UdGm9IrH$uGATXJ{0l>~2$ojsn5sANeuxRvzX)d?P* zc7L62bF0&wJ<(6sxtFvD>U6VPNptr^ovwB-X%E!t8kdq*&)gGr+Cu67mnmp(ty(=* zxopp#{Ra*`wkfV#WY~$63`^9u@~VVZ`N702(Im7K)S*b|h1C*lEv701?yN;07w)QUT?B=hysUWeFSj-gq`0`@Lyt30(!qAm=sJpQ#D(W5omV?(fcyngn+B6ElQX!Vrw}JPK zFJnz+-jZbH$PQrr3$xv*YCSTv#3lln8EmRR0%--L_p6g3ZGx6p75#alu5(x9ooXKk zKmhS&CF;?3mH`x(fj5u-4^Tg`Fj@0pjrjwI>r=%kkT~c$`v?OEuYZziP6;L!BntQj z&;OCi9~Aiajyedme+6L;I2r5!+^hapeNW5QrUUn16uA0t)}8^)z5ho0qa~;sb%4#i zM?e$rPeK0|VYVWJnF@oMBh5zy{K$7viN7^K^c|QZj;2VeHQzT8^OJE!(51xFbO&Zf zBdIA1iGHSK3Bgk_zi$E-k8#0PKOIZ;xJ2yvY7lcGo)$pc`Saqp{ruKilOPCFf>enVP` zHVia=|608PEP`$Wiol^D6O^ZXqr9v9O1W9t0hyhDGmMa~M6}+XE#_YA2Q@&6Hqk*_ zVK^KD4pRN01C8ZaTOlRt*49_S#D;MP!UrPs)4JkD%R)^4mZklg^4^;-qHw2 zVCoMP8p~{zo|x93D4aRO2tqY8Ib@Vp2c7T%0`-U5(7+x5(KDIV-?6dcdG6Go1 zWWR}jC8+ALwbbZ$4>6WvSS%WA;JhNw@MC?D>>E|`0}6Tci-#JAV5OgSDZrq6(f-B~ ztR|FxtQ5I-e>T)ujC1g?^z+6Ti?D7~GXMD7Pk0SjN5K|+&mCbLjJ1}M6jb+OaCJ?n z78IJEGs#$pby6l~h6fB$2kY5mj0NuHm`U}sh8Xj4^$9Sx#Ev!QVU?MQ1z_yRwM_qU zfic%rRVR?%#&-M!N&utuVJ5+lC(N{(avycyFia`&)Zia&(vL=byl**X zRcDswv6Xprt@DfTR?KzH($w~KU?X{WR`#Hqy<&X#Vg`Da2eXi2*m?s#DUh!rT=R~` zws5o;gRAcA#So+DWXwrVQsBh~-7f@vPgzibbH69ryrwnU){IWWdpgNe)!Ey+XZ@(W3Exaa@X74+SD6uMi=9Q5ud2Oqq7^-|3;f_ zKo{ae8cl;$pttsJD{bv*?P!UD*S`tsiEG%|*Ng74(62EQLiN!`x39h%v6(Cav=-zX zXoXzLJ_(=X%w#=%?NQX?_~5$}3(S%fP?*1~s}06lFNjRwPN{3$j4ntX@4L?$mAJ1U zQ&nI4#%MP>+d>e3Z|ROUHdl1QFb?;2b~kR0)^xVwE=K33mCW~mHIgtiened6732FW zK9JIy^)|vwb5l#Sxvve%Tsag?WD(J>y4I#GXooeb!+kwnU`YoxJHPnuzz0SOkEZdr zwV~DY{l7p#m0O`!I;gJRT=*ob&mt}=#Hu(cp(467er(Iskguvwcz_#4+8 z-2{h>Lb6h0c!2&^e{*v;$l(C(rZwDpR3f%GorPOlJae!Tq>Uda$O$s!JT?~ze7js* z-vj=nerBGjt`qB#o(lD;Y3v3Ip)e7Oph|64sCa5&ceIy#*-y49TJ>EL&tRm(<2lk{ z;x;K!Q)(1q#`BQcj%g&A>QuCj=98StnrVm;=vlS|ZL zl520dz)m3Bx};$!-B$tH-x&2EwFImHm8&b&MvwzMQr!+a|M{@@-we7x9s_#7 z%j(-;`R89+hBgH3f=-0Dz(rv5C#UD?Y+zP-feq-ZhP;sy}z)%-)(94+6CWdd+)cs57^!ZZSO<2_hH-n zi0ysU_WsiLK4yC#x4lo;-e1|?CvERjw)bh<`;6^<*7p9|_Ws89{?_(BXM2BVd!M(x zzqh?F*xoyxlf46vJE8;nWO_SKMqJkW36We7skXR1eT$e*}^V-dO7F#r9_3^!}b5TBbF5<7{ z_Qh19a;se{=MH{1JPWakZQnb-*I?61W9(>ZrZLG?Q;KG;)upVPa9{VRp83)W=RfoQ zQQg$k*9|up;4qw2xV5ttdz^7LOKtA*OSEp(!m4o8!6GDmm9~{6cWAn{4qp2HjaHDi{|ZG3 zX6EHt@235jvgE7;D9azSjj;aJW#&zzKCrF4l`L5%xuZLj_Ty@MS6}4F?#8aJXm`)_ zmJGE9fLaI;@&%}?Wh6HzE~$C!^#&VXf+diAxLSc;{V7}(Ad;A1aV?YoqW29Ab&$}wJ{ zvpK@0WSwtJ>}@LIED7&UU@-8Doda_!k7IR-{EQl(Ei5=2Y}f4`0!k1 z@#_jE^&;-Bmz#07O z7w=!Nz)Zt`j17+ON5t6jb8^72H5Oyzqb0DN4^;BLrrsIrdqL?95c3LYxR3{HpC|dR zY;D~>D84T{b8O$s>&#)k-VGc>ts>>#z@7$$-ND}PU?kar-F={DWwX|ZO^6R;qA-nA z6owqY=y}(CsFY}hnXauMK(#2x2^*u3%)+!KK6J2Yk|{Qh+GO%PD_U$I5~w%3qV9I; zvr6&q$%MKkg~RHK_x~Z<5=C30)oE>D^Yaqz0nq*XIocbI1A5(R)D4=xZ$giuH?)IN zrvXadpU}q&erf0@&I;=GMf;+G+S+JS6dtd%=UqPfp2E*ul=^C=G@rS&C%xl*&)|m+ zmM;u+X)WQ4@7MS#g-^o(KkE_U`xOTj-hO(czK5_iIui!@66oxMQ$fdOOTmJ6d&(rf za{QQ<6bfAwwcFB6=v#naK6!{l8HjeX>t|mjRuz?y+AQO|GAPhhn{20&X}p8(4SZXFV3n8&=hJdd2vN_H(y94CoykCiWw+b}feq zd?x)5Q?0MN2T!(JlEwO#;Q4=ma)Sc@?gt*g57m9tiSPzcqi$A@RWDR;1FHX9@a|ur zf%#T=`R~0+Q6NlUMRq+Iw-I!#IYUPPn@SmH;^$r31f;Jry6vG6P8Jt!i#GM*c7jofvbaoq zgztCwF_?l6^ATnPqijASMjk|u>KeC1wP!pcd~fBVu@=OR=8VmD7jeTOqZdDdvw}OC z>pGVN+8!qc@}7?oOJAd}f)BekCnrvP*G0kNy~0NzDk%6s4a>YQ}wugb14yS>!z! zuJDsLJ7SUdH~j@tD>J#kB&@$dMv56lc(eHIWXso|qDZhub-3+xz*>$1q(80Usl7~* zA|n|F10AkQTRR%Nw`H7w**(lr?uercR7NcMVCQCum7h%o6T%s^mSXv&n=($tYTKQ~ zlPELqDQ@tsg@FPw@cbXE9In8>laSMCR&ukiE>FXzXTItY763GfThTWiHY|L&Y}8^jxrjjR5^=@5mDUIq%3h`mbFg z&3>7u|JE&%R&1{R8=(=wx?zeqtFw1>5E>Iuq4 zcozS6{KYoJM-Em>j?hNt7&E2SfW~s9Tb-OrHwsNth6`M3nGei zy-iA4VTl;hc*Bn6$MYGAB@{(-cFvMOaft&(@=|vY1DF&!mPkNuRD1*@P%YsJR3#F) zEp_0QjhXAr=A*4wk`zHRjRU_tSNw`3@H;pqenn~ESH$Co_y6?le`5WAyIuds^^$rE zZjj9PU6*&GB%U`(=DS%k-z}2)Zk5b;n`FM*CG*`OneR@?e0NFayIV5f&n5HSL*M_` zDq2{*N6l8&?#7)zc2Il_TlyBw0M)NE%(nxXoo&2h=}TCdiybQ;xm5Bi9r<9L;}T+G zQ{tl;wo7~R;jXU2FWc{>oq-n9fNTqB&J= z#QT4SQlg+0z`38Rb}P?AAk`n-2*~xOVCBQ+X2aPg;3No| zDR}(yFoTqw%c61;od4;s+3}LO51{Hek$E$e}LLfML39deT{- z%)}!Fd}RAmY+8IQYb`jI1>mH^$N&=9OmJzfLW}sYws3agI<7CRy^J-1^}(V~&Ps@a zb7UbKe!@9YhGS-u1K-4R%Iq}prQ>jR0=jtr&s1v^c=7uK==wNadml6a?9@I+W#}rZ z{YPP2LHmZx{Bpc1QluCtVXR z%IXSGd{hzi9lx63V0Dx;Pd_#iMmWX?hJ)|8bh?ecn8=LwU!?>7|H)BNR$E2j1S|kDY0=ob2tDyDTRa&OH4(xgF3#{c+*qRGFDBj-9$v9u4 z2#}x@xc>O-RCYE4%q?TiZHgsfmB!oDxcEVAkqz^Eyv%B`#(^NE<>Q+ZHKu3o^0U?! z77N>h6Hjww@@P(oPbT8Un0s;@5cjQyERvytY<3{(+LA@Zsqi%0v#6NIG(SFxb-8$= znz#<2rxJFeo0p`w%|qWj9=SR3i43_ub3D>jX08Ns4G!e`K$3r6q!*t!*{khZ zlZ23<@jq$*v)nx9qvI18=Hg6}d7e1TfjLK)z{u0_$G=cGM<`3eVfa1M|L>KgTiz#` z@4GJVen~tZkj(d>WWI+a^F1t??-9v-k4onIrDVRxB=bEknePe7e7};+_avVGW0gup zX$1bCTfqL`r)q{eR$Z*tsV(Y>N~L-k;Q)GD)3klG8CnfU`Ws*c_(|DmZL^= z6!8B%i{63%upLz3Na}8FYy**$0GPcP`_puokS3%01WqQAQHk!!8F7)J3JM`?Ov^jl zKxs|J=~(5B%@HNWG8VbhOe9VAKCDeA<0Q)B!Wc9-4Lcb-D4z%)Wnq?aGGXgu+)h!G zsV*#*fEnvDwuvR+Zw#Rm#S(CoUBY(4U`v~{1`J1pI$C?jo^A4z;C5yoF-JsuW82uX zxIU=qqkV9$SprUPa`{_0k3A3D-|dI??e5LgC`(x{u;sQ>Bg0F#^+tRATN_*38aK8@ z(YzE1GBPL|AP0f6%w?QIcy+@G5oX7pOE@$6Xo2Au%}gGjku@F^*g!38%!T~46f`xR zR2e$uUE*McdV=j;z1z@Sub7Oz66zi5S=I*%c4l})WFW%e&0|~@?Fa76o*qyyR1xji z+}lDLAC;t;(D!))b})`G!#$eq732F9pZ|TzP6haX&Q;%4mxK4e@(-wbGucskk$IG+ zXTV~aJN$8uqg1we3M@1aamC5#W>y;R90hl#84N$aaMUlJDRD?W$^$?9oL4+E$syW2 z=oQc8F`N*e&MX1bRV0n_F2X@jv=Cb%}mhSA0}iGD>g=jL`N zs@8Rcv6-?1e^q^Dq;5HA+$)WMB6)vBBwSZr>n{s}rb=SvDV+2IVByHO`l$F+*6QZC zHE%dYG9;42J*#5Uvv_)-^Z0KS%;7gkc?szM2PyC`rmoPIYWFIyqY?0*;amoQinj#6 zJ5UVz@%u%jx*o_6{ncBe-J9Avk0iXy=?-@D0pc1UZ1~;55wZK>xx!sV7Vin;}>sDUON+O3NEq093iRc1&-Y zga_5+v3K-mjhPmk!j~7Qt_8gUq1qMne9%46QkhMZ=5AQayBk_Nn%erBqYXWz8m!`&7iPu&(t@#E^ADFESs-y&CCd3=2@JnjUQXe!iSlLkiWKJ?!5AuwGH?a z5yhL{Lc4M3FJbiW`tF9!=%=B){umg;vwN?xr#%AVN|DyCl#=IGmC6EvhRVRQlHyq< zLZv|8Tu1M$V&DRWUkFr1j||mR6iyzBG$?qG(gH5}1^hg!4g<|!zt+ZUG3_1D)^!0y zxc$Y$@IK5!;cit2bfFnLy!I6z$FW%)A+vC^HpEp{GM~h)>mTY}`AfxIYBQ zA60-zJfZhDf=oY!Oeb5qKsi!t004doqTvg-;Kj}cm>{B)F6<+)I1aESbV3^s2V3`{ zb_=j|45#g2o%;vWAU)Ccu9j{n0G4dD7Bm>lbt!LS~UqB=aflDs(f$fF)b|F}U1Xh~>3l#PaY_y1V@I3+G z_XfHDDfSS=FfDb6!bE5U!&YpxCE<7q0?ZK`VX$y0V;w+%Gf}Kj+6em)(Q^8&P$&Ao zGL+$%{(ryvf1m;2VF)N7t34-InNPUOz--}s?ipBoOiH&ySdD@AWqOY(S5JQ}d3q6W z;-jz_Z@mwXh?g)5>wHQZW^zRmxW$~uD_AZuVVHqTa^z-7xU&`T_RnT#zkqosFol0) zsOnpt$XSaz5PuomBp6z0cogTyXR+ohgXV*)i+PZgA+7f~F{E9b9qEpOsU-6qrD$#v z99iKsqa`~5C)ouHC=?#~(eYx|zU_=g0A4_&(c$P$ zx6MDzZ(B0Q%x#^|ooM>;sz{YsV}eXH&=vyTy0x$y((ZOBR!xVCknXKb+Ur4J`Qsqr zEfP72IaW`aHlz-n3|qbuHg*Eogxfthc9jHZA=%Bud9Kf4s!lAosR+2O8VjHiC3>`nz8*-q(7jH|hH=gH9BHk*&@|F;(L+ zFz9s{RYi$l296N=4=|;cBtlw&N0&*dOBX9WR~+kL8w1aVfi!v9(DTeKXBCaDe3U3 z6P{d-Z=06p&bv+H=(M$VLyHZ~s?7ZOe8vv3Xg(MxpZ_gb9%nf=nWT~y;-QS~E8!C$FR4!B*jdzgX44A0Sd6Mgr@%%{E4$2 z=wq4^&z~qVpoo}wq0i89kH`D}_bC7OwB)++tJ#PipZ`F{OXmB%WWE<9^Zh|G-ybFO{Yf(4i+KOnmE#pqZgr#jH}HJ7f7_emO9m?uqQ!PQ zSbc~9r6FyzVGlM>Z4W z$RuYMNYwKLBo-v^_m&B%Qk-q{zKGlKX6H7a}@R(x?8|(v3+D&Ag z5d87Q4&%ZUPcK_*18-aOj`LiWyoAD;c72kkv?`GoUqsGqc|^zKG#D#1qiqRJ0_~UG z(Y9e07C8~M<1Exl;s@s{elm_D1t9CnP^)*bMJIveZ`_e|gPw@4TPlV)-v7JQ4T`!! z-2{~XZnYomeVwG9s-6jyfQ!^C)SY1c<4&*!`mp+h`mFlA`l9+*&4l(y>>6|krXuyQkZ9XBPv$WxR6wY=;a|&8eA5F2>^{5S_yK2W#F~5e>lom zhfN&QrYA>4j87PH<5vG*xY2-3BjYwGg*rz{L*anGwp4$=z*vh-*z)-TSY6^yN_=tw>W3{f#Wpeq1kAFdq;E5jjL6`b}D2g|^xXy<~4&|9?!VdZ#P+ogR8r}?3vCwMw& z3O*E0@0(CBoZ8Psm%wTLURZPfh~7e^WbBZRIMLOX@fbwcQRA#{Tfx={$-B!q4jLbnK^TZPbVLg;oO zbcYbS^N0D*PC~vP=Ktn4y7K-o|5;1?&(DAQ{(mK=|DUD)MO_9b`v0~+V52*fJ+UsF zn6ofvB70($c_IF*gRWr8f`GOmQy7FJDv)y-JC2cnrEI}^4kn*t!{VV_Wg?*=R2Be& zoZ1|$K6>D{JN=au)B{p3cR@Da4#;P=q{U{&motLQBAy^4({PVC8ZLn^fPY!%&aSNe zxKE56V>Kcd2SlVY*4uz{84!_7-ZmL|nWr2`1EU-j_h*7$yu1vDg)7nw50}VTNqiZ@ zI$&Z=iBz*B`u=ez)|_k=)8jmg8>cA|H&Jmx9Pj^G>Ow_b2-N=1v~oDRe+}0Ec7omR z8dLudq;S#T6ADD!zY<s;(WaL{_?;vOGj3yv z_Pr}v`!azz3Ai^ULHGX;!vSQ&fV=(b)U6=H`@J(sr&+AO5}kG%p8ww?|If>kd<%b; z%=cZF_lhK*f04}hSIK;@O6Ge_GT-Zx`QDJs_oigNw=x7(;UhCUtBA+$65(@f zY`mJ`xP;^lw|*+~(wWKg*?7r{%w#?pOg>#o8Ti5(cPVn_x}BKjzyt{!m&P=u^XCfagUnYY!!smw_`r@ubRT@ffhQ)HFYD`Q!r~ZM*_L_R5(H{o zFlEU^Ob?7#uxkxqIv?&^v_Xp{cEDF1h}!SW^bOKY$EypXCITX!h4FHRr=Q1D=1%aM z15f+<1>=*J&R+@KhNqcIz!A@XP2HiOFgQQ_eP1nb;_`UyV5Nxa%-;gmas5mlfqznx z7~apOl1Sk0j#z=dJ*-S7iy}}qZ_f#i_o6UCqkUbiKM;i1yg;ZTRJVrlE@tyflzn@( zRM?wfoQ#tuJtL79(uHrbbWN4N5-y~PiLq|~#4EpDHq)Qaw{oH+1|RE?#o(IHqPk3u zuOOxw!2ZEzYMLS82~eUZZ%OD$3e|kHGzChyXU4>OaFGmIeEuH$IU- zM7tKa?|RUE-`8YFyWBOI1yha(;j^ucpxO#lI+&tR*lc&W^{8m7M#fLnL=!}1w7s&i zV{=0bNK!>+PjAXp%K$PK1hgOzOi-MOYL$mF3nn-6a4H&mK!Cdm1i!#~a4G~XLAxgH z=$6cakWg2m@vE;L#%4Dbjv~sUYC%sK$ULUjmf~IY+=|SC5~1o?FBRUt>pM1LDM9>n zo(geR|C)q$1O*Y*o0!6wloD$UPB@|VOwmNRuL%?c^la*D^S1$Zjre?#60CRa^^KVY zi-cxQEC{#uwwM#S-@07vL3tnDRDIILky@m!+}8Ne!2 zU0aGdP6FkT<)O0W5r1hZu;~!)c5EdDucaon+*agjEv4A>ipd}!s14Nt4@yO(Dj3Fk z^1=8Dw)p9~A;9WPk0tYMqb4ROn@=Q-jm3gfWU8EUB4$IYtOpLBpj9nlf3m@tYIME9 z@SHZp2t%E}%&wxNp^9dU)nmI|YK2paiDUuS@{B|`5S>--weaA7vMb>x0PhY8^AA-8 zS5<_T0%upS3OcN+&W1zx%mg(6-k?Z(R#n%9mYKXvTyHU?u+Y1u^#BJ2`*`~z*@ zE7{F7Al#s3E_@d{E>dpCQ=YS!Fn_T-6A4(h2`qME@)_PK>vNS{qPA|##GGkx+3!oW zQ6`Ev>pyegcWhxFM|N<c&8+A z6W=MxXEq2=?Tm++#jtZ4!D3huyZzAND}mOD38!U>r=@NNZ%9W|BVI7KEn_oeW?DO$ zyQmj68Rl*Y#+sPirAZ(pm}=w&t77)zf=zqbFVb|unFHU<1q5Sit|4>T`tPQsoUBW* z-cf-yx}}2+f>m|P3+a9W;$)Kw;pSgO>3^dYv`V{C^Qq0sL%Uq&1WgJcd&id;H0L=GBveX9p)6WkI7?9fNQSUuVPJ&| zpP>~GV@QgvC_@3f#(|{RiahBr34#{skEDSGb`3+2EwFSCm7(=s>Oj!3`IR_Tg1Vt; z4swg!OVOMdU(L`g7xn>}=haIbXu7z(f1li^L+)pzk@-F zZxTrG9RkvOt3h(F3#9f8kl4En_b-^}@M;rzF9{@XbJ z?VSG(&VMK8zl-z#ob%tq`G3LrALsl}aQ~?uf%Bip`A@?0{{W>yQI1qDQ0`OypnRle0pI^rHJ}~_^Z%#n z?ds#|J4%E4jW$*bYMZrFwVSkGX@5hRXbhT**1&w;fv!c503ZKH=$Gg<^f8K|v(TmJ zHuNOcdB4@))(h)ZcWZ zr5Ih6DuwTUtkm3wLA2rGl`)FW_log7inXy@c`z=Nyn{|1g2tN>=9jXBFV74|Gt4wK z-L0M7t-ad-dDQ6o*>^iORX~g4QkzQuQ4>~&Ph)GNpyicNnDIH0nB_uu;HHCUUgIOh zOW$iKn#iI|RCi&m{E)h{%TnuA8*Oaf#>&->%0opof$$ww9{_BhTm4;KZLO4Y#%aW? z1pSiT+t6{?euE60{;^ zl7c4OuY5U}WJWR{i_HUo<|k9BnZLQYu9IBBqs>@`Q9C_(yssHIkexr=)Dms(Yl~`U zx_|erAT_q11p;l+#_px9y**6(nRYQA6P1Mrtm^ z)4tcPzy>0=;!0wL)?nbFwI{0Gf`_@|BOYAZjf2rR7SR*!?$vJop80>?mE>D^Pcq+k zUEceWczz(6??cIaA4%r>STf%ylKDQB%=ejOzRxA|eIc3eOUZoykj(cLp8pfT^f$=y z9R!*?R%%^G+lc@eP8>7@{;zkx(y9d&q3qVW;9QI5+sB>)N-^#y%B8x zJOSAsQ5UEOD7PsWqCcSzEb_rXJa}cI8y?vZGyaWNO8Oz(+u6me<@_rbjpaUPe2rIV zE+0$xPrQB8?{w+S_{vTRmWetxM{B@PQD<|;KZs=-vZwLi8K5uiY~&onzJFmOOulD) zKrFowIH4Z$;|FdRur8z#8$RR!k>85C+_uMOl{y~f_kw%~?i5HiQzVvE#ppud5^ex}Z(^9rsCDGv{ORY@iRSj$=v^UW(^J`;5Z}>`fGLcxtzEr@_m{T4f$? zX9s2+n_MB|{V|6~BJ+l=Prz+?w3 zt7M7SP~IGvlr|X5u!AWJj2a`zHj%YsfRo?iGvrngYY~8g%@F}>gEjxn=1ZLaW`tw@ zlO|!Eg6V(%jqm?jIOo|+G(_XxD$n5jKj!>ra{jY8|Jk-bV<_hz#`*WP{k}a6KVv_; ztc>BDKacZ|;QV7ae@|8600g##3Bgjz=Ja;}OWrveRT{+y2~k z&fmfLJ2`(B=ikctkL3LQoPQhVKZ^4o&H0bv{Ks;B?oB?Idy~)Q-sE#*T>9;tpL?s% zJ&F5%GUq>q^Y7sN2Ir4+{!=;skLdniub`#ciJ;T7exQ55YkDw>(n2;SIL#hQHzvB& znnshDKF5J?Og@yb;8Vz9K^LSc4CN>;ae;IsV2k4R!{eI=D<$MKe&V=-oRT0rjf=%d z;IAa$PgiG)FICt&@y68yl1y-jHZRt2I-d<(h~`dokmFdCaDbi#DXCzF)CrW6T40Aw zu>}&FRE(#Uvsjab%CXjtEsSqs2e5#70HYUk8MeM}90xGBiwdvwM?lH-m}RkhTP%J; z9yt9*8T#hwm-W@a$A|v41AW)tKX8UCqOKn;>@8(W0`_?S_h}(T3u%{$I)7Ye_75L_ zXaV;YNJhM)gl7pVn|^IFy*J;&*5~bMz?FGQxHB1CliD~_Vp+I34Y)Fw?d$OT&sH`l z@b4vch58g|@;yuY994rwjnmM>?p@uKIdWoq&V0?>%E&EadE?^Dkt4A7^M7sBMh!B_TVDJ zh`wK^ParsgT3k2B1OZ_igUyH>mN^oHyGt0(B%YahOUYs}t3u)fa&6<{s@3bUplc zGnxNKW#yH}#zP+ydjnX&oKirUZha!G3987( z)ty$}P4s`X8m!(6=yNdZf|VdOZ6ZEEz^84=%A4laVHLruvbyD-&^#92T2SbNqsS`E z0u6W=Om7-{?~z$~LASDq5rnixMuSYbcW=$g3wV~htTqTkv?{PBQW@T@)xB%C%mt|$ z-&voT2hW&n7WM|JSAy}1GB6{7MA>FR|4$EW;60siUJ)K}C1c>fFj zVw2`^DRsb(bL>=UX=Amj7lm-g}+i+cx=p z$7Z~DZN~e%y?7F{8IQ9WkGB~QRMigh*?)VIXfvKq;dGF(e}n%4|53h=-^$MeT!5c}2JmGp%=T~tTq8To%>$L;-?JY9TEM3# zm@c3cvc6uBr=MjvO%i6&)3O^;i%Nf=JY_7q0rjGWL3@J&-UfYI1rT++Oi*lm}0IM>8g|mRRTmSf$SX4%lZ84k92}0N_@Fq0q>1 zBs|@T;@1Oui0-~{Vvwy+1i6q8RKrWij&UYh_MHVngCT(B`l;;O$Pq3PQmqE0OHLIw zCx%d$3ev@^g+6+T>#NMxLehXr&|*y{#jIbp>;T(o(naM$o0giqno~JZR$Eo_dP^Eg z8?sUfIanq1Xf$g*UTvLaS`!%;b5dlL(4j=hWbr4BE(N#?c@b&|pTIe-6Q!`4eSNKp zCg7Z4Sj{V4X?_V7(3%1H$_YW;HPTh6z=Da$F?|7dQ>%ZMbe$sDQOm&cY@6ZCcK70*|71K1;)d*=J0cYn`!))3KiErshk{){)7v!9q4J zx5A>5{BbQ`DvXyA*=-^liZ*gO+d8M&rktGjY$>Rvf%E?jVD9g|w)mHU{l6Pbmdd_s z^4)0ieb3~($>h7)`^Tqnt0}$POup}%e7Bo?cbI&4ntXSee0Q6C_n3S?F!_FH z^4)9l{mA6I&*b~D$#=iW_Y;%vrzYP6Cf|c5-_K0GhfKbQO}`?bmU8r zd@q`OFPVHVn|!bQ_xo3SLg^pT!~FOAS1sxN_xo2%;$Q0fm*@XKWL_=hEq zC99FU*j)L>ZKdoen)9ABbvMY)=%tFC=E7^_g4E||hgYd}-Edhgwi94DP^#Sr9yQ2ka#poxKv`ydA3c5zP85$r-5TCoz z?ecp-JZDpTTPN7R7+K-#?ErB;wF#+$3fOOvVGi&18ehB9+Z1p$t!~GsR8uQ^XMSZ2 z)1CH@O1G)C(OKQz>T#{EYT9W^csmH5?53O(D80(O@WZQBQ8sZVS@K)o?7*X*Bh8dKL^Y`!=|5?#e4#YuOCI z`~mFqPt?d$$UCWJ;~E;=*VnVMckUDE)9BvRJ|cfeVfv8vfoYOZWGLL;jY71M6=2Y& zJJ8ihLbP4o2ec1OO=HqJ9=`uvZXaBQ!`wdZR(=jY&Oae+6fWcc2Lab)&giYt=oOr1zkpiJ5b%&;%dmgexyl&YVfKBeYD&L z$1Y7xPB>#w=BPE<(-&hv|1U5mZP5hyz_bLMH8#5&10a{>gZdAEZI5cj^f%=8ByVm} zr8&1IG0NCafSQf-7FUO5e@FHELR)j}pzu>9H}tK02R zU;dxf045mh)IKW$<2p=A{vQ;~;lA9WfL^HpqXwrfXx|JPZL+O1I1=~yJk^ahszLld zuKy)gi}HULaF4Us;nv0vG||r~K!rJw+yWt}waTJsm&e_xo^1x4t)A@LIR7jSv#ZXY zG`~BzuWvBuz*#^dUHzec)MXV;UGzi)vGD@7huDRkf<5XQ&gXM`{Q*xciQam>ZLJ_~ zpvX1DBRDbj*yt;Sc~)6)W{}pB1o^W};%Hf%9~)C^#3$E?KK98S4q4PXO;haBCDxrXS=rn>}WaI92+fA zHUz-hAMOXp1p;3sNMJO&-L24wT3ldA3rt~Up9w);@)*8=3CKe}jO+giLaOZJ{C^j> zfpHtSGXVF$mD>r(|GnHWV1Hl89R>9NtGH`mU2q+DBUk{qmwOOw06fJ#4^{x)0Cw_w!5+XcKL!>7j`AM?n*i6qp2BsYQ*b-j1$dBu94rGo z&%X+~hD^u<>j0++4zLeU0V|F(gnFSBYy|8TdI42@Ot=v21bjre3M>O$3zA7U3bzaQ zg0+Ch0b~4mKpB5C)pNP~$`yECyh*Gf_h!*e?k!?1xwndSBkBB~UpA!A#{#I-w_i1rE zxzC9^$bDYiN$v~cE^=QK&m#9FaW}ayi|ypTBJLsg58~P6{!t8&`>ME?+&_sO?ijfae&-+ z#X)laE)Jn9F>#n&PCQ61FNVk!#4x#{7$H{@N65_)N6F0<50RTEj*&Y_94B|Ocn-N! z#B<4=DxODfzId42lf?7MEf6mtw@|#0+-YKz-09*Ga%YI|BX_3wesX7tA0YQ+@gj1I z#1E2tig=XVVlhVUY%xym9PwguPZcjAw?w>@+_~b1$SoB=Os+%x2)SkA|ByRRyo}uW z;z!9{AYM-HLh)ndE)uUGcd>XSxl6>W$SoKDAGu4#kCVGh`~2VRkn-moJx^rot;0xD=NvuP@-5DFr70&LJx63KlHy8}%Z`p)CakYqq)FvR$3*6n zBbz7YFne~JvYNO2=pm8qlEc!%2W=<9Lc%hhl)K{SsK|C(kyc7tnKjC11X9ktqaz}7 z^Eff0@`e!^BzPKIU}_2Jw6=i0ktD4?8WC9!uZ$dC5cFwlZAB}P0hoX`_-G26IH*bD zyrW^2bgJ-@u>5EUvxn(};9ISyt_{c&7!Ar11-xxwB@)(WvS^XSmmEDPvdvc6Ljf^~ za~vHOnbYdMQnC^&KRTope(C~6a^l|?9UV;3Ze@8ir9q1CI*txtx`q-;7~{ovPCeQ$ zvW-b1r>Z#W+@l9Xwnd?U^CB}QnE1EZNB4_tEtOQ_R9Ad!<MObErl&OX|U z)MSRu(=d_nzqfKz|Jl}mJ}!I_`k&i``-DdUL;PvsPeQSdQsOY602LU}W(vNihbg$p zaDTJm{uaait%m#C4ENuc?+s6`Hr#*OaBr|LRA9i#DKOyV6c}vg6c{jb3JjPz|Hxbn zbOu8Ow;OoA!*GA6;ogANQ((aADKKF56d1623Jh311qQ610s~f0fdQ+h;Aulzzcbt$ z?BNvr-thcc!~JuH`{xb!FBtA$G~B;oxc`gc{!PREUk&$f8SejPxPRMl|Bm7QUBms~ z_4~pC!+oLQewyLlfIU@cz@92JU{94kpocGg&~X1V!~H{s`-ctpj~MO^wvS35H9UXJ zaR0dB{t2A_|MT>Jq{%k*7N*#Y_g<$r)h3_$HshUSGhTtsc!f6OO|uzqy3KeqY{r{u zGu|wl@lLiGugGS+Q{?@>VkR{4*Kp6UcVICf|Dt^C_0 zYb|$aCQc^ZhRwvW)yc**WQQ`bPVfJbxfA1#dFZJBmdV|V>4UPBm z*m((>;E9@C^0Yd8zJ;ZUd|OjCZo^uK(3o8nJ6GM!+%4~B>a%Y1B;N+RixSyQMcaDw z)ttV{GLHWX*hLKfKE=Mxe#ZX531A1bg7a{lTom^HZiGF*=fL{ksr)+F-8%?-dSB%4 z<{#x>7iPe|T@6?a=oZcuJ|uibxLJ5WcushhTMc`5Uw|FEdxW10zZXEY!1O~MxUp7P z1A=jzroO?xfsq0CDB1cUsS{bCqiG}(9OLh_d@TI|6`IBpL(4FL{OuFGl%69~E{2$Z zry@+Ycqlzcre%yF$yQFzezM>~&sDQMpgaUN2gMXGq~DQwq2w4czXCVmYw1@yA4+;; z9ZATsel9(v7nu?sI*o4r4$H^VOJtJA$Qy=Mtjh5BlC2!&ZG@_%eyG1Y7~;wFqFe)5 zi&$Cm8|jy*pJw$&CHg}HCtw^&eSEWl6L?G{y(rig1|NUdL~o_1$j%P&sTjI(>4oYE z(+l^&aAaIf>{Xqd@){4N)weI|?EwuG9s)a$!JJVt&_krOhf0K;VKQAr?^=Vw1N{AF zzw~=O%lKYR=cil4!B|QWYpoS0dQ5Oag!F1C6b& zs>-o3lknXYAVaf0RmuSpN=cWJDs4e*gSf?>_S~X|lq8|ZWeFF1#QQ;PcXdkQS)6IB z-0lNmwk8Bwq~=0TeeNb_Ykdn$q2)^OpqhLdq%Q>=Nv7JxzYB7(tITZDI>O%)sCH&9 zex)*bb_+;4S(Af9o92uU@>P0W)wxBB&6#d%M!7I|T4@Y5hc^O#o5xH--dG1&k2XA) zha>v5a(fA-_T8SmqN3<(wK8BD*o}g1)`G1mWd2l8%kB^i{~^G)JTTtgJJi|P7pV+X zwfBWX0I{~f)I!6Z)w=*0A^>&c^JA?y!PyMLfMr(YfI}GU7zlKZ?AsRv;=&Ah{O@GK zWWE8^06ML{_v3pO?ThCYDuY~fmORQ)zm$57ZoePB(Xt;+n^Hobn$(4+C7^bv(Xn_= zA=@qQD6A^U-)%kUSsl=&Y&$8T%=oJ;b8FsMuu2ND>kURmLW8ig;0c>R(37&Bo|=~T z&2cFK2@Cu6RA-IZ=U14VnBR%$C(c|_@u9IFii?G;N3J^1yy`J;lcYZe%|1i?TZtJm z?3|=e5USBwU0KCdb1jemAoN$uzQo=H`JZdJH~2b`+4+;ukhv|uy)Z24@`?!QVI?MN z8`MKu1q11d!~}c|0l9H!U+`i%h$wGPNzgW<;%XTCmRZmxv>_XOt~5!nQ@2U&nCJ!C zn*E+e8&ub%C{9@w(FVa4fMvSHBHMsU;dM6wG7U)&*dV+t1*gp|eow6pz)NYel|(bN zB$=QlcalA;(n)8-9K)gv6v`&C78~RXQnUnxJbrIBsM7jh0`PBP3f}@4Uy~6E{6zku zi{ews6bMKLx5=hJ^j56!j)FSb^Ul9NvGcSfY#atG1E@VAa5^O&r}j#jKQAq(NO(d{ zF@VNtQGBurINBfsjwa^JMsXfZ$K*u(X{>FCPg12}J7j6tMAnW=v4bB=$EAV%L<}2( zX}lkd=V>Qim4*{9^At##oE}G4!QX9}iHVa*n4-eW&Car4<66x$j{pC}^Z(g4&n@TJ zjQ3urcdAW3OKirQYcpP{&3F!*@ycw*n`blLe4FtW*o?Q(X1ql<<1MxsZ;5>VKb;9R z{D-(7v6tBNXj^<*p#q~3g+uWaI2v}R-ux#s==@~jOB}-{&o)s_DPWxd) zI>l+foVM*H0DpPL`BTz>p54|WT$bzAa_5W}6e!?|pogMiE7Ee|#LPkYk630cWeO9H zzoz-HmWitPNh*X3STxm|o-qkk@Y}`|=aRJitHdW{T@9phy&;~TZqlO*qub#7!nAzr z3ny|7@b5)y8|>+8NE9Pu8WaVbgu8}7 z&ok5d)o>#|3`+JJHGGGWF$8!3V$CBc$=k9Iz2QuWCcrz~6#y0MWYPo{Q{UIqy8}cQ zLQNf^12*a30~RGU^(LyL?op7~stXN`3?B~wi1Zg|AZrh+2Mwd9{n{)E2gBixo}jw_-z$9|=O)49#u4lc}H&V7e_jQcA;gI@u9Ks)&%{vtRTyo>)e|95t-P$X;; z&ITR5&j~*Ojl3I$UnYO$C}uI*iU->L!H!V1)8__lT19+e<_}LnRPIq{e*~%#f(#A# zg8+JsjlIl^(iS7K7>REfb`!(S(T=`;JR#(7OZ`szZJ{t06%-eC7g ze=y`52@ivWOR!rw6D1-nzTTV zedWoYqVU-?0i=5nB76c0Rl?`fg^);uN2j5GPr_AlnJM}5>2IVv`lzEY#7``f@!}76oJ+_pj&`L`Yx=@-&eoMkn^i`o)%l3}`k)Uu4+Y!7*3t~`H znN0VW>w$Gvb&H?Fe8pM&x;5O-+U^jv5`(Dza2@Nj=$S4RZ!b$~Dl zc|e|2Ft1=W7|Aqs^!E>S)k0eicGnLL9VqEeOo-Y8iWu$d zA3B6Vgl%bqlyqU08Ph@QChn79A+ z5|QnY)wGnUwW|d;uHn#CKf6|R)K-+nPBm!z0RTt>(uB0UG&V;IL37B&5X*{UvqiSb zlp=+Zmd=e8qv93qNXe(=rpdlkUKBe;i)suYEh&!`X{uzT+1&*8mlRwhIEw|4jhbDg zx#pG@FNmG2X*Q+~wrFl_7IK4USaA9b8&a?hE$_ew>RVbGq=j>0Gf^$k5}iw0Fh4d! zWOZ_8D6R%oP~(9k?Rq!ZJd@_niA_fuln8400sM*2a~7lqvKrF7(%3XCO!?$U&al^A z=YgFl$P5IN%4Wn0MYfpYgSe*#R1dJAfNcO(Vd(K%&i3$%5Eat>BWWC>w9msgBqbP4my3b2Zy@PK`}Q z4Lp7C(FX|oVE?Tq(9-6YX3vdH(i#GtQNY+lM-+e!18q|(o*By%Svf!4wGG8v;OlSh z7zj$I6vlEzRwk1L?Mkm-Dk_QPXljZHxx$h;c}`3+>y~PqK#pfEj)@{`q2hHlx}8uQ zSVe?9(S+?mU1~@(PmT$wg^Cr4A)5nAUCbzs@giHTv=S58oHV^O#%V=v-d>a&zBEl< z|5r1ik^cnuN%k76p7?W4ej8mLKRLn56cu}NVPra~(m`mr9hNJfWYS5ip5!3viU;=j zXQkZdH&l)dZtE<$r6y`1oWyHl0FBdg<1;lZ&?XrRRIUG%EyV`gNucy;69L@GF<-}M zup6h~BVihd9pzv~Yjmiu8*Y-{nt@p+Z0lO~SHx$i#~dIXsoGUDwtgF#O|mthW>)>8 zaMuYsIb(L{L2?e%7#hPB@#zI@HAxU0EXiLD0tCka0crRORwlM93$n0_M19qA$8Z;R zRz}GHi{L8H^7nr^6AtlD@(Z{_?DFI<{Jnk>4aDbY(w1-#g9T9L@BnWFj)8ry<7gvOi{FDhVV#N5`B{4%wL)1<-%W1ABhqtYR2N%c%mRYq|A zU&tM3+v7z>uDvYQq>#IHoP`hO|(_3yc-U^%XR@#iW%4WO@oAD}b#;dX!Z?(;MYi!0_ zYct+DoAK7$jJLsNyp8hse<>5H`182$a%pgeKuy!?$@tZ$bLjWkk*e9CO%0t0UCh7B5&U2DOH!7H`G^o)Oq{ z1!bOVCZOxy3A#LfHyBd{eBMl3lS22?iAcW&esSk7umkqmG8Vs7h+aJbvo-GR9vA9% z*eHZ6LDyw-iozvkTbdiQE!a<*RB!<5Sl;h+)jQJ`CFV8^nkJDNkc`$;aF9e>b2DxN zXG0_m=WDwD6A*!}8ESL~?z|#88SKP1G=tqt*_3FyT2@&L)q%p2ku{j+GXXPTJKxTC0w(AnAK}jdRM3m~OZdwG7xZd4 zP5cV1F>c^*;qL@&(4X>;z#ha?{ImSaV2$)m{#`*7CIdp~$-=3^Jir=QDXf7r$1{Xl zuutNJRms_aJg^^-LPv%3gd>0z`XS+R;p2b``bFVufF*V#po!fLcw!Fp{AP=o+SLgsvlW9i{6SUB~Hq4qeZq>tVW{PuC-KeIH%lPuCC7^&+}{kgiAR8l!8R zt{2nw61rYW*N@QkGP-`0u9wsGV|2ZOu2<6aD!TqZx_+FlpP=g}>G~zC+yEnUA%*RRm^t91PuUB6D(Z_xFdbiIzQ-=gdFbUjAb zZ`1WVbiIMD-=*t~bp0M(Z=&nXbiIYHx6<`Cx_+Oox6}0wy533GyXbm1UGJgm59s0)q12>f`HK{DG`@`=;XlNGiT^Hq zsm}-;U<#}Q9ie@~`-RT}_Qy|zXM`(-uL$?R_x1u#7K(M)1K-4W4EIfl$8fg=9)om0 z9E7 z-b!^;CNLv`nM45QuAoa*=WS_g6`Kk6M0tUBy~WchFNP-pR0bEF^sOk5o4`c5ZUtO) z;rCz00u27b>=Jf0Ab@@91ZGZ!Q35@)AbI$*z4pHC64C&8gc?~$Q z5IZqL!`;=MIxu!#<8e0Uv?Ed>&;eWEIZLMsbLhU&=gwJzWlaeHV1J7*V2IPEr7gdL z)70jcfZOQ;1ooVDC=g3$ImU9rpwvv0)tC6Ijz?Gx_3gG$=PcC zvewzw=+D`b;w1_X`dx+SLyKO~DcK7cuC&S^?P)K}y2<~UKvCOK-ev&rpmX=!X}uFGk(rrz8H>jZaB zbBebu)or!DoL$ywH@Cn-FUOtgC4B2StF0@yxuwZn<7sQk@u!LmYsZ{=>sn}Tfm(oU zwfb{fDDyK+wz>Hi3}^+ zu+uT>hZUuNNEUpA)6TJ7eZl_jR_NLL278Pe{vz#)N%C@}!cbKum>=D5CAK~tX*?up7lW-EO zuCEtvO6m#Z2iw6eoW92dA0&(>eo)8v(0+#|wv;BLCx%M9+M(d42J8Yp3UD@C^}P~! zNa`=J5rbygGPe4qZjo#Ofq!=*xd3WX;O>=?bei0@s}wgUF$kNoEnYN8hEjy8fJ3I_ zZf^qRdlQ3XFUKY|6pY_$s#+h)&9yZ`qle7m_LUd5#L_XBP$$2DLR_DMs=@?e4`?jR|k;O1j*weWS zL=tiGp4JkRO6~3>YRA(QPs8uOhMUQ_nOrHilv@i{fEu{%TnFp{9^#I0mx46F=V0gW zd$0z0fP0erJ?!`WjnCny0UqdL*yY;-Hh+Bl*?b@D?Onjf`HzAA&{ttc?+*TckRN`U ze+BIP2+)@l3k!r*uzTkQ3qQMI&)^{J*?myBO!ySo_BjT7az6s;g5L-)3a?u|>zF(l z1d^%OmR{Fy-_URWqTjx$-~LsuZb-lq0kQ4u6~=R-%iqR_43V`qCcIg-{$MLC+W8Z`fag(J6pe{%>Fa()}uX7xw>Wg9P9@u7>l% zIp8379-RMO#eEUZ0qz78@LzK;b8o>p-^u&}82QiOo8eqe*@n7hnK7}_->HWpzd(-6mtI7A4$@e#t?`@Os9h2`} zlke|FUk)?*IFpYz`2>?sH2EZxFURD|HTm*PzDXwEWRq`-$v4&H%QyK>GWiNjzCx34 zn#ose^368+=9qk^ntUZD-&~Wg%;cMA^36B-7MOesO}<4Y-(r(*iOE-P@+~#_mYICZ zO}-T--%68j)qlT#wI`JR5k1U*zyF?o>dkZh`~9mW@h|uN7qU+<_1R;*fEvFdEas<#!( zV=LB~IQ~!P{>=E<+@JZ4d<);tNBK|k*Mp_*X9Y7F#$kIJC(H6je-~Hby zfrVh~O*z#|Mp#gGKcrPC$dEFWv>Zikl-C*%vsjL&(TPtLisEXNn$cgov z%DBej8gmjdG=jJS58CwzqyVTP42#Rmap-hrmo(Xsmt?G8=_C~T&`HXX0w#bmsld#q z5(ZIOB|;fVijJ=o>(i4glH%$xT~a;@Cg=gQ0|@=ZRGN<>0v16uFa(se zuy_x$)8bm({}b6G3`iW|u7#U_gC7VhtSnH>`W-gl{8_<;*x&54w(2)Q8n{P8qF+hd zP7_2@S0~Z!@f8JZ2W_#!p3{zmE!LEfDmJ#BtkG$e-PDu`CF#(li=gFfb9}jaa6V+h z{7defY~;q;A_RS%3CJ<2>&Ggzf&FDx>|52T4fe0I+?ll^o|=8D&?@^l{!d~sv_He0 z4idlbfRyhS__u{N;XD5Z9f6XCWXN}U!&*^=vfTxUOLv1FlNs_ofwE#XKKqInH+O=@ zM<%rGvtI#9B?(3lRQ44NAZJa+2mR_QaAmJ}QL+&PnJ!ut%DyP1N{|!TXjK%lwNsGE z%>1NZXH%+5Hd>&wnW+eiCVZk37MBC+Vnb?vl{R6&-Zq_?TU2JIPf{5+ina*H|GBK5 z36BZifD`#4IGktGN(72hSxijDSsJTAtR_o-h~qO( zimgJ_Erou)v~^)@&|ZJ8ZgPGu_R%p}7l zoi;PJ49g9gma8Gq`kbXlB#CK$`X>KoK-G}IW*+6loKbZVo|JAWSK197RBaj0j-9A zmEV=}`Trg!Ea!Vbv#*ftQ3lNu;Y3%(SF5M(ialg1Y>Sf1zVG6!O+Z@EPBk@^=YKNv zpgJFlR>iASV4l8`{Eg~7JE<;hFnqt|TrP<+PUNg58j^x)T$jWv3)nJR9Y8@ZOXk`J zyZ5GHHxoWJ2A%N=^~l_aPM)%@+u-+hOMX+Pkg8QAuW+53(mE1er z3)~~zt*nXrJa-`%;I?v$xl=iwJ;APHakd{w<@r&&r_Bd4qA(`3w1Q@i-xsI|taY5s z7+;J#5pu5#$~FMF*o5}yJuVQWowNns&p>?z{XO6SfSE_7BncC9(i-5i5lx88q0shk z3nfMBQHqi^3@Kt01iV!b*yP*^19t!vr$B1gt;%tF+`dWW5YUgiMlwZrv$GliDM7(s zydB=`%Ml9r&Vt{;?KtW(1p*y|LxXEJY}(}UwR#HxH+k}Pm?`CX)uv6#-Re!7c2*VK z2#c$2xF=@y-q~7Na5JDUNVtC^2dLb*X;TnEqXVI_Km-tN0kpRC7m&!!s353>S-WXd zS0r5eF80tl-^CYldDr-19CrIl-vVa6sKwV--4PC=gi#<;_!q{c7g382p<$J0Va9|# z%Z1&%5#6{ZxGxadw8@Nstf2ZXf(R8znT~d3D$_1tjQb!yM5$vhf}+;ePX7V${65@g zl)EeqR1_7`Hf>Tcu}~e1e;P8e4x?j5(kvrTKVud=oQ+#!tt1P_*@_z`?nh}j*hu7KK>h}6zYD1F^-~#8_&Q=fV@wrkDH zkQ#}qo&Z{WA}GG(^dmVngbX@o z+t%2a56wjSGbZlxHS7wwYa5-udT5TI>eK=V1AskxDrn3~*C0JZBdwQkEWRAoon$-B z0pBhkT6guKRa$pGR395gl|QhA+T7L@sA+NrJRV=byAu$18C#Eq>T5 z2M?EE6VRK*v`_J{rlyMgDqS3s|S4aoWSz=_~z zLCWU|un;g!m@l}5PQVMk45WJQ7JdV|gTp{y`Q?nDJ}T-}Ksg=6oOd4zjD!K_J0O2% zfpBDK7|fi89Z>AzjkrJC9U2V`j>6)h3(>*@hd@zsWH`_lI#^f)9|^xy*ue)wA?TeO zYe*1XMN|Me_ib$+FSI)uE+c0?_Yj*ppM&eX5&@`Rg}i{JRfPeVfeePh`l(|RG>O+% z3IVvK~ zs*u8)(C1y4N`cGQ>dM&+0dB)D9E%bg3gPw^UIvd}R!bNWDga)>Q`d~!;L~P970kg_ zp_OM(FcKIBX#3nh0UOoWDv%m2V_g1Oxe)#$lnJ4S0O(N&d%!{yY3D&O*k`5=QNyM6 z&6p2u^;~R67^9}84f@OJbKuz*NGTJZDSfCOWg2{alRldA^^8%7eYct)^SY_<%g}7zuzwE$vjrFlK3>?YVK*#{@!QK6cSO(mGh>15&S zY!2%Y*_Q#q<9qxl>tT1X=hz2?-*byV6KI(G7-0VVh8OvAzL}c}_5i*GJA;1}O2A4$ zP>2D#&hzyDg#|Fz=BBbaWbdPW3$INdX4-W;C4p?X2Tkmkmg7RgGG}4r&)*BCdJ132B+%b8 z2sCY8CV`w81e$(T27zWcG703#B+%|m0$mL)4o9oe){YRFd>QKL=?}sdepx`PrGyGF zl=4gI!%X8c2(vJQFs}4rreBjj%#39jglWhiOb-mnQ>ht3`QSuAEkannVEJ|66iR*O z8SIPnb->g%Shg2uCzj2(v{D}bN0=}h^ndQ*rm&F{Htwe;6rCR50?6(I92fcR@OqNt#0KTm7BBWtTvG| zE22xvCpjF*m}wSk+@i9IrEy*u-waUKhp;@IGSsy^KU8<^Gv(PNvRR@qKEFG-4=m?6 z%p~>lG(XpP+7jPXz}&CWsq3%{3(M-YA*5n&u5P@_82zDg2vcKA5cl=Hu7YgTbXL;IoX6u#G=A+iG*m)$`$Y9uF$@;`;J z?FWB1PKf`1uZ;f>766zv*0?SC?Kb1>uo-Ws&3LJuq(o|zTM->}LU+-nSH&LpK*16Ci~{VVDb?b}sdRaH?LaMd)ltLeIi2KV*# ztn8h=<~_)gRY7%cY9HwY>%$`}!o48J)V?ni42B{@;r4E1JhGw}>|O@CI*IYF?gL4T zPpWMPn4_e+kOdLo49sBu$f_dK)X4}y$xl^l!CXI9nMs*KhP5#Fb+Aj^l$;r(t>)v) zPs7cL`-jqz%pbaS;ckML5cepb-Lw;CMIXht%K{h>87MpKqB-9nO5>*Vr!9UAm zN8vj8d*J+vTg_bt_&)FB-x1(o_dWWxjOD?J)(fq<#ZJPpBJ5NWfvLfzCrwWA)OZJ4 z+ydyoP3>)RTlZ00S3g2^{FbLTUHlV3^oeb`#jXj6f+a7sB;9vTFjK0JLZQ^0m0RpS zfIT0vYH@x(Jkli_4^BrmOooP4i_Bd@DUfd-$}3(Rt<>o22mjsSP)dR+J`OnfY{%2j z?oc0?mDL&n9uLxq?8@HKzeAc(2gMtc(_Fu4Q)DbK0ydM$BJGJ!+#x~JdtfB5cy)5( znlwarSNDlex%6>J`R9l8id_?=44Ll&(a`?j1eV6_7d#lvo_zgzdBsjk4#ER;VBQge zo*T>tr#8}VpMl44{y(2R&*1ORTpmdCRB#@!0lsaU>s$ck}*`M=6nQbHHvhZf|GbuF= zvz!$Tm|1w5PN>!1mw)2FIL#?Aoc|BvG~@T5$Ho|Y3BLLt@$1g+Jsr|#>blQrXEpc*y>n@jY=trQ{D-^&(Lrs!fGrDibZlNWWSvV7*vD zwsws4%j|Rvg3<2Og{6g0nTO;8OU`G?B2&qa$G3u2MLK>3Y;*jlYC2_GM5@t8_2g2e zW2jbHv#EnRw= zLn%!MR#X@?#~k}$8X4?f?&t<{>w`lPdbrZDbX8IgQ*p0md@^?_D`xL7u8ebYee50X zTilPh--6AbX?!{N|M*=X`+pVx4gNm23JM{x%NfCZy!frzjH{Zm{|I)WL5ewc_d3RF`c}|4CsvUPBvAg zgDWZJ9>m*Spa{_rs6VS@mi6=8P>SdA6wmLoex5fk#q;VE&j(<6z%|@B}YQX5;uTfC`UL%{PGa zANV`sj@L|MEjWFNmY{8umi!Xy(b}jLoNe#VzN!z~qeIYZXET%0=Qbx`yf)?{-MDQG ztBx2+Qyz8vj)vndZ47Ogcnno^rn4pbV)=o+DeVSaOL^AC2MydG}9j% z9>-Z5?xE6dYdWF_Nwx)uQs_VgI$9XV!x2@fTI)-dr=#*Qjia1@Hd>NbQn?$p;!PP; z81N6BpycIrQSnE)jPQQS?-}`e*7VchQVoo-KmAM_^B@UV% zJC+WQ!HuI__#zJZx$G?b0+z9}0RQ_S_cZ?NZ-EkbQP+#5{xMuRD@b3I{qP zINCQf5~iSiAPxun2oxPk2DBx)E4{hUAPfzjQq`bGP?a`g?y17dg--+7tD~X3l7)MY z1dYW4%Dy32C=gz`<)|^A=0~(8%QW+4lFmL8`@ER z0bh|&hw5qX3Pmbb`kElQW1V?LC3(g$a{*bpE}6N2bT?3PHjjruq%hEhOTv&h)j9+Rm07C#s_@81_&%*NhvL&hBpb z7_!-8Gx3v#s$tVdhF>y8R%d!C=j})Mcx?e&jioXKdJn7h<&P0ZDP>bn*j(;V6f)Qg z8I_5tGjI)o1XDJpWMnXTEn|F}wiICX;szZGDg^*oEZ0i`D$h=%VE4ZV1)%VjoOk6# z+HB+ee=6I-;P3Nb0el1Ze(tAyF@KQ%9@y<_624HfBD%U*88%py<(8BW4C$kYvLT#Y zLXEj)^U>T}aBu_$D`*n{t%Y(*zW!ivIMb$tBR|;l`-vyFtR#UL9fAZ?3xy;!N`=xb z7L?>ERJN49-;i5YmcWzt)n%E#FI#Zs85{-Ot!%lv^~~I|(gd!WhvcbGmP~zaM{e21 zBvLpEYZHALo+L}U57gzB6(`W8HA$9qZnh{i@5taFtU$7)bdv=oP^ha0aEdG`U29Qh zK#69QJNhEMnx*3-#`+%huBX!x3pbm4f=F6qzG{vUfC&;O=?^Plm9dBB+|<^d*z z!c6N)9rL)7jJo`6MmQ5c+0Fw@k<$(Z(XqHk83D%=MnD!n9+;{_EiO`pSh@cbIC7}vpoAtMU z@V&~s%3*Tu)i-IgkMsXr_7MiQe?Gy_V;|wK7G?_{5I)Gx$&2RamTVq4lr-B<1jx;{ zd?pm-IXBO^;(-0Qx>iq1MZn|TW^-ppmD5wi-@C#G#@l;`IstpEGEmjt7Y@M&H15rn zmu>y0WH^=VlH`m^xY{!8*(s|no8M%L$wQhkSZYkF5tPILl(hGtMiwQdjjf^bJxTkt z{dpyeqebf47h7U5;u;Bs0G+XQ0*Ojx<%zp3sM_0(T4Ji+SOW^B;u|{ITiGi&ywa+3 z@=BKJ%WO!>Q{{SZ+Wd0-{tMVefC0yDV{dRP0r&4}?os|Eko3Qle?%x08UYRTZus{| zIt{~g?~NKr+Tl{Kv$DlK%VxapS}~fRu{w4t z>;WlwV#w^N$?My~h!^?>OS_KaRKuaQ@1NL^90#hFAXn^?NU=iU``pyGa;=i1;%q| zX>4cOz?Dki!8NfR0BE5>eggVx3#=;BL4^*S65Ea_@?$zeEDRvHt0eVLi?xYtzKk7< zPXZC?Kxxd6@c)M3$|jU@CMWGLi}?^C-w=Y}(vW}}rf+7&rzkGxv^G6w6Afu0x}#(!qo(7+_eOVDFgHGn-XggSrI=x2C$h@&=G4E znUf#YgwJ8`7c?@1{T<`MZj>vKy64B5L{`V^^66eUSQ`x@kHi3l>Y5&F6xl+)E2M*( zOPzCK4QN5Z_)s&%A$81+or$cfZxtjvJ;2^sF^>p<{s{r3z{#pSw5z4Y zEuB3*R)utQx&QeOmq zuasI&jsfJz3PWkjhsaX%)EHoy6!R`G3dBlHGh+abqS@L|=8#e&e*YZ1gW=!*$=^kr z<4uLE_#ihYKR-TRl3xsxXL6pipBQXJBp3iyS#`E@G}nge|fP;nk`jD&;Tj>wQ>xWA(-=!o*x$d4h2CXz(C1ys23g#jPytPKxfzV28xvU3WFGe;e|t8tjh(6$G4U1 zK#&1)h8XA|k6~f~UI#;iASyBL=p0YVCn^e~c^k?q5j;#47l>?jtXc|U{A!kg0aE61 zP$jN(I6wp?2z*2RcLp7Oa9Rv%D;@n6pX)_}5~>Bpy>%zgfBq&5Ri43#fWmjy{jNn2@EyIk#+>tHyn0VtnVSNpKG z&MG{s3(1$9IP&}Y!@ZRo))~_{S1FL=$-+d7#nL4`m2}`Hm<*PKOaC0}NP)l@7UKh_%>BWb=BD< zXO~P}4X|17CzAuIog&hRmc?5O*&Kp@jDlGA9K?T=XJXlN%FRmo+* zCyz8BdsuFKQ@-MKW#n{haV%L9fTa?cTnRw1s`6!(<(pv&6B!8&ZgzBmc@m2Nn~d4j z6Ib(mUG`8X(Uz#6X6$Oi-EAmUq^u3xRAlr*O^OzE%-UG6Z>i1a}@ z@i|Rl@VHkW&K!xXE^(aT)C^5LF)g(Wb#`$4pTZg$$8oK&^Y;p0$A5nhkO*zz}L3%HB{R(j?#2=yrMov|Zo} zv@{0@ei({29d(KvP*6X+_{)siSpp7Xs ze3T{SE4*M;)La^5cN-K1!JG=%#f=`?i)wT?*ZJ$ykyqO+Mqk-0eGI?KyID*U2^Ni8_D&E-y`=-@g{N`#GA=&6mKE7NxYTZX7M(1 zTg2~^+bZ5p?l$oba=qf6KP2~T@m_KR;*ZGPE8a(L zhxlW1JH`9S?Gk@NZnyYTa)aUnJyM z7mI%+_Y(0{axWGCMD9n$*T}tG{9kfECjOb+E5z5yy;6LG=Krvb4>o^4&OHe?|NSMF zKy-Dy4Xv1Rup|Z~`z<)fPO%@DY45AAVJhW)nv8cG4RhlZJg9TL=xK4kwt!i$E?{V5 zI(s&mYP(d0)KIp#(b^2{OqPQVZC|9T7ncR*g@G2pur4TvjZ>QaSC}XJxNENRe<Z&SwZqlkMH8NF#)VYC$ zKP9oCEo>@`Yp2A*QBtQ>7}`VwSxyWulW57>^qEqj{7z^|2KXh zv$YeOHdkDnA6>fzH1@aTD@)GooAw47!*h6~v%jxv)!CCy@DA{TRjE3QRL^DOo3Qbm zD!`Fd@f~XRkCdp{r?qDG*WV7Pi3t5@mV)kswZ=)8Y z9%E!*YU|RJno3zcJ2(LcB=$;0Wh7O>$oqfm82=0IUiJ&NF0&2*Hpkiv*eW`7+f|ak z3OeVctqy--dO0H>|+#SFVo;52O8$)k0rd`KnC9B5Y{UuMh!e39XT(OFQ5$g%*@!b{BhI*uIOo`iL-v0~b}JJ` z_-}H*ft&wJzaw+wdkbM@&V${%Bd|!MrMa?$pC}!ceNWHdkhEx%4+j!SYbIBhJBAfF z8MxEWUKHF4hipv4<@E-;f`G-Z2<_pLZ&-fiC|`~q4U&d@$#lx~$xo`o7;O&J7!MS( zW%4N|l+ZF-Mw_yceZg>#Ph2qCf)-1GP;-n0qaJi3UJwTG2E!n(Lnof5gH98ZT7IhI zXVaJt=lanS*>q&${44tmt+JkYE?JsL8qPVBrkmz7KRDhr){a@=P|HPbd`|%!+oHWj zfT6%sTcZeK_8CYt)o7%qvtxX!vNBnChE;*tZy5d8aW!B8a4$E=oyWyt-~Wr;x4AoE z$N$&d%iLSA*MBm;kBfH^t7jcsI#O0^r?v2sd6^uC6n)ElkXLiFXNDT zqA^~cWb);he7PoHp2>G&s7x}^oNV$3)$+z6(TVe98H2GGU zd=(~NrO8)i@~t-c)|h;2O}=#|-+Ggeuv^tuFlnRd-6oT7v&naw$+yMiJKf~lYVw_7 z@;OaDLa5bvahcxLn0#)Nuh!(NGx_RGK99+Frpeb}@->=#O(tKn$=71?wZf2os+Nas z;5$k6`4@y5;R}H0>l3~Vy+J>B5uE?s1U5ikhJe3Ff_z`S zdef%k0GL0JTilTe*!l4<+oWA!vd6av55EamJu(nNz^l#mKViN8|8$q$3|BEXq+ z*E-u8{ejjNuRj3L-eBLuS9+d>X`N-s&%~q2&-e!>3A1>BJn5WPhem(~BCeM0fZ<#R zq9AUcKhWg#Hn_cFKiWJ`d`Ef|!XL{7H$Tt^UsY#+$2q}3a1a$W10>lU8X1m+3ok%` zXhR4PI!_F87y+sWI{F6XX{s!IQTjOYhEGc$r9`y%J~&oeWLXVb%T8|f+fX z10BC8cLj|9PjIjC`Fsgr1lRH%F!%oee+5YOe3!qQf0Ta>X8ntVt->zh0^v)-oq+Ct z74#)P7hW0c>J1GI0={NopaU@aL!}Qv9?7WHn4&O-cv6kPziTZ7!s~oZXOy77#>4Vr+xiHhm^w7R-Ra5 zd~B|;H93q{px-A$Wf}=G=7sUZ66_d<0a!K^L7NGE05cX2lKJ$KePl@tlzU`UROx~Q z|A%Fow4w*)L>H*AKnE8L@lVM#3CGLCWtjhfTo3e$(8G|4urMH(4W%pmf((wKvQ5_k zluXUJN3KZ>FQfD39FtoFKJj<-2tSphQ?7)+E1`#mvEH#hp2UHH)S}RA0tgDWH8-`? zcxpZF8va{2G|{`JHotpkpw6@1t%&EL?h1bs4mtE5hm{@BRl9S#G2`@1?(N}Qq{#fS zVqvZEg@0Eo5Oez6Il+ZOQ}P>6v(vi^WEGp7t@VJSkkh+Z*p?K^)za4N_cYfT!X3Z@ zHZVZx5DPhbaFj@V1!F~<*M~Wi1NA3lfZ{_ZoU>0p|9^w=KjnGQ<^2!&9m$J#6|y>% zA+L*;mE_l%M93}lRntwVlBeqYeMWh5LZHT`kAT$BU7>;0GD(X)Vp9RAC5GewWaeY=_bqN3H^BXnpAR;Fek-_yFC=sZJ-Kt{ zUyy-r*dElong;73`>K4T6yl5pWSX^9xH^f4L#fiy4~kNS(70a`4;Hc_!2E$KIV20`5AJ7%D3zp1^g6Hwbn%$;cT z?dT~Ba5fi*vwOt1S;ogowU+7>j7~`{H*&q{aKNXI@uY0V#Y@;<79l`K> z$;Ae1F1iQa)3R6}U6fb4Eb41fDoCx7U?dP84+r*zf(KJnuCG0X6^%6Yp(=1gwJQk# z1YTGFfk01i5WbD@&$> zoWw2SJh1;a!d=XL9qfTV52ye0_-Z)!KLi?m5A!d9ZGaN6_Sq~1h4X}u3SS1@yvKwW zg%|Vld&vH8zNgtW|Es4U3{=<9DPJl=gd=1Nb#+0x(o@&m1pAM(b`>83M5EPwcW5*) zINH~xZN-NU&WX-G2Ixm?^>^APJiI)Te+*EQ=I{YeD;Rm)Ip=+|j{&rjA+WNiABMhV z&im&c0~Dq$I;9?H;={1i0vs7^LUTSa_ZYx783Ke80$k)c2Eb2FokCZCup?xm@xj7l zfErcC%gU(ro?8E$qbDB&bg315Sk4>b;{-YZtZPne#xcO7TC9`ngN?X3@zP^}UbR(! zDkpNN<3Mm^nE1T7_!t0S8Hx)t(g6mJMuT%MIrSJoXKmDDV;&;CpOy%7(k0v z5={_4g=qMyf2gB-&SfVb13mC0AMC(QI7-tz({b;?DMp`tL3LZnt4N>7TD`oY1}vShDq9EU_>GPzp-kYkr-pf}hdsUOveVvpEz|NIEn+Ll!V~D)x9|A5= zj4h?PDx3*|4U`n7wg8tzC#qyfJt#);KScwg+?=)n%eOpZM)di;As^;4RA+`qw#EAj znM*GCNg$nOF8D;;L3>5deSCtVPfQ|3;Zrcsj?27^HNrManc^>ZGy|f8!?4L_C{is2 zrD3Xt8l4vJ1(fx1T=F@|!ce{$r_o+9CNA&HH1$e1KUbN;`Tsn2C1Y=KC7hGn4VwR# zbJv3wz@yw7aN@U^Z)A`2gX|VQ&VP@~;XK;DoOOd*I!|sPJLX(7#Fe zmGF}AEBt!#NNWs_U@Qb)=`kHXg*}5|06Oy^pc)>#Puq`&6m&4qYwl3l zCOkTm$(G%mn%2yF@mO3r~Vm_P)&Kk%Bc&|X(XDt^8x%^?sPn4 zqT+-%2?e4C%K3ZRGT)oJ#!R&jf+H#lW~gK^MO!F2Ah(4!cbl7k22btec0sFM=+=a( z${2x-k%Ne2CP*T7Reg030PjU`XmJDH(o`QcZ z#fzMS1{#0>842d}QTvr?&=WGA2KDWOwmIAj^DX`dX@f{F%lm&@m=NSI;rwiiVf0OZ zdt^p@u#mO&VULE2(rqwI^g~NZDc+$7ZDiWfA+43Y=O+#mnIwS+G1#b4u3W!gaXLN3 z&Y%aeD#_4HCBRe-cUy{z=)GqqX{vqdku~vwLe@vca%5IXexIROGD8o}u7D1wDxk~~ z!{WiSB`7NWRxK%bZZ55=Y)UIL2Gnwkw#EAkVWStPd(pLo6K9<6LDz#bu1w1&VV-xl zQb-olJcY1nih*+qePX5!>83Et9Th32018DdV@2@;1#CX;V8dqbd}t3u8?zHgwT0$u zpK#*Zu56C#$PtFELId@rU1~W|l{Fmy3)$@q{wCG{jKCP5h5nzqqalC7Qq+cS(veK! zWD+KUm%}#VoNpt}1vcVbXd}))tZWm??R_?Qd%ul1AFvVUA{%i&Xd}*18*ySb;>2yl zx!6XWOXTtY5aVCqN4Nn?S>E*Xfb2s=L-CL{bASUqb>?6c;ItC3%(U~DyPYwsfiYbY z1iNYIORZ)MhGP~?DIH0*vppil4;He3JYVvZ zNz;JJ35p;kX|)^<#)k`7F%?54Ahts(kkD(E;B{LPMs%5mK4p{rYML-t9nxA{CUaFq z6gj&VcY#&0r<@KeN$B&_v~$(0W?!--aY9>C(o~B@mj9_`>>gIj&4nHRdjZYwqx{QY z`}d2&*BOiC6$NsOeEZ?Q25i{W+7{U1b+!WfCdx3o8r#m#D_R)!fq(*Kzsc3u5b(O| z(11qD;yZCiNTu)JnO8KQbT;y;?E0c1^IEBU4bMAn>l0qWJa z+p=`1t!16mL0s*x?Bc(-7YH9XfrLTCBiJzz=p5O%F9>Gjg!~iDc?7nU!a#T+4~N_IEt&`-JP403$o;fEZee9Hg32# z+%UE*oo!(?tGIx$kfpOFtY$S!7z2_CL3bx0^xk{#Ed&TXKoUYofIxuIA+%5(>i_1= zw%Oe~-R(h0{tsbh_GWh8yf-sD<;^Q6$?qxI%K6G?;Q8xHa*MjOS0ttRQ74Qc&|Cw0 zD*lqPB2ZE&DJd+1udN6_jH2Rxjj(EaO86i&o4G|Bz^-Xj;HAYm{f$=#xJ#kcmPdtK z1{xKGE+B6Z3?e%1{Zh5{mzdLaC7?UJf>cd8;5HQ)3{jQ z&wwj0%r47`dF?O(Ud8$UM-b@#FIrbl7sz>m|wb96F3lhQxwWW^21FFK2D3cOq&q)f8u!mU^e6 z_D&6|B{HvCp3O`(vY98WDJohEdTWqc$%~Ygl>5DtQLzYk#Me9G@#N{9S8v> z@5bJOD+n;bUBvv6fffwtviMQ?4HVlvpCEMp0*HTbJKZA+5l5Ca+r$1D&)XyJVYe`Bdt}C& z=`46QM#>q%obO?qLK`-Mf1}E_%yYCBVfXx%Y|EOu(Vo=B&;L^;k|h60o-a*}c$Du+ z3U;JQRs8GvK6QGq9SjR%Qxs$* z&x4lW;wyOIT3?i(T^7R*TU$Xm$rVTPj+$57O!r>6GqU;-6}+y>-l0CN===8PQwI#M+psK|VAsn-{=|W%tP5ZA^r(leyI}P@uch zdbct`J@Y8QjUhcMwKu@p)dXbMsNNbj8nrHieUWN3f*v`nx0-p_)UsFy(XLUwTg>m9 z8m)7m-YWD#3n&75J7@PE?vdg#EkHZcdn=i|qr-$w+voLe_DFFWH=u3PdJpqRG1@Dj zt?c_(q$!g0FBU}p>-Gmb;cm7L?`9|RyIHN7j24M+HkAIMPKVl^tR0|gm?Vl;7;%tTE|pZf_~sW12Os7e{mvzt?dF<)g8hi%shiK zB+RRj_EoC3F7U%(b31d(2?8t3HD;A>dn0r8h!U^9x~)v*7vy5gVGD;}TyAz*w(WX= zNmZBn>RNrR9LOAW2>aJA9L!hv zrcC8dImKzfhc`0N^USz5`xD)ow$)a(p?gh`&;l#~g@&q5Cc))vZfb3<1Hmqi4sYUy zKoyhYf+W^}RrNcox*&qSfO4=vY0gX;mgsa9UV^Naz*Z2j;a*y+;C-l~WjpWy(FZGg zSJ+VgXZwA(s%vDv_|FHFD!~{}OM7+O5*(k}=fL@YpzgC_{va;jruiaEXN-<#;l80e5CmQra|AGbD=Vp@M5Ofgj)kyNRok($Y=X zF;;>LFjLnirA;t_(YX+@!eT;|jFUaH*0Z@7ZhNe-bOweCfRz>+8Sf)jFsAW5S!A(B z=8eP(+eGsx{QUnbi4-c$@-fn{BJTkHLpj|?1dmFUX7Pjr=9~b|d6`WZs zedVyv5a31GW?0rs-!kyNA}pv=nG~3BIfxLl{`D<^hgI46rGD#nM5s`ke!CljyTC66 z?nam|%dA;^H^Mi(v396R<{43UB$aIMk81-5&R0+HO1-M71$6JgDK^|@wStFk&~R__ z?X1Ezyp}DBu;lG*g3SdObOXs#A2>*73QOS3n>+3{*b;1+;lRyH4OXlZd`R#}eIHpQ z?jwzzc$|b=z3Z^{V22a~prwNiL{*zA;KCHTbrQG5%yOB(9c`ZhdGMb>rX9Ra-OOMY z*izwxH-+0$(cWf;pBG%q0xhW>hI4JU_m=)JB=HLI*5@}LyknfhB z{ttcSKUy{2fsn*xOB8So)IKeFY4tR4`oXMg#o6@dS=>CB_xAitinLc|l>vLvaz?fM z1WTicmG+&82ihe|9Jb*W2;Dn^$E2{C0|?zcEjb4X)$G8;N$mNqiPb8MiD2#J1c+W1 zJX#}qI}i=_%u#e1<+$S{`dkaq4oxm--?I-5>xqF@11W2-B?ot>NYkL#PzQ*aW4F8! zClzP$#+T#=Az8$ zF3OzYqRg2t%AB=~?C#eqjW%`~xZ0N{x>HNfPN?)b36(xKq0;9iRQi1O{Wr^pOJMhZ zD_Hw(0l&XT%g2HJ|C7P)=Xvra;QRLm@B?rU@cti_pOT*e|GzKGZ^-X~2jDN{ZxjVA z0}N3{D5Jp(@FegXG#C5;AEe|e2ZJZz^_ zd=)*Hl4OOxjNvO7zKY>LFnkTe*D-tp!#6Q}3&XcDd=&>8pCfe{1(ISF#Mi{UI{}PLj^-n z1%-4Eh7?0DhDjI>z;GajgD@P7;XW89V>krE6by%AI1Iz#7>>YjB!>H9n1WP3?uX$-3@2eY8N(?UPQ`G445wi@9m5$I&ctvQhO;r8 zgW+5Z=V3S>!vz=~fZ;+67h$*2N$Fc(8VhO01K zjo}&$^DsOZ!?hUZV_1M;A%;cl`=`o$3G96LDR05;--WTQ^FP1!f42oTCZ%(EP4uMD z2`+^}DyR~zVKU#PXvBGbtov9KGwS(R055U@_~i{r>0I{F31g1%JQr}E1IG_*kz**p z1v`8GY%s7q48)?&Wx6LUBX zOCp^A`S*XYq`WVGE{~HAcK`i%7l#I|z3NL_3Ohg1LGpR;~q<-npfrB%P)ik!W%u2qrz)hQwY{%UH>Fs7)ig zCpARDZ#thwH>4#`g^5CyZHSZ1t1Po9n~V9y$A6~?g*bDnG~*1(_WwhqizN8>vOHEk z1pNN}70&Y|VCU}-AOmnPoUb2d|0l#{xX^uR_a#9qE`fTX^hF8PeQ`piFG;BMr3sb3 zETPhuCsg{1gi2qTQ0c1@Dt&carEMyqOG#Jk+)F5J(*3+PfwI@J?|%?;`}-StIB@@d z3*UaNau0m@mE=~kg!>xVl(LA>DsxGotQad1d=4&IBrf;Lqk(zg~o7ZU;^xjkhM8p zA{j`FMzL{brlSO1;^zL_%mExzP&SRHr%IF3<~ei&c1Og%aDZ!|>8V+lls4ID)M{od zEn3eyK(k=^FhHDT!cv9EB9}N;S(*~fHYSGTHC)go|MQ4Wh6xZ%YQwqLW8wk?VjPruGT>=KGv2}kM+l?yIMiX#R06g zcV$M$2J-u4uEgaiyDZw(0^OE~X2?MNWYQ$q{~GW$6&b;h85oC%2Ero2;())lQSROq z8k8y(@S_~qT`hp~w04w>q(Km8lfK|^P++1hk-!_I;~ByDX%^E_1;HUnzpS?&52Dqf zlV2Mes12m<4aPtcj}~rDeUCa&?EqDyj!`k)*NIXGjxs(bI@$S1d(%p^LlqjW{QLh> zQZ7<5r7!=NKmWLJ@7XUjBvqQgkAgHSdFiGsI11)y9_`{B%%@t8gJ!l-!~>yT83^Jr z33e2l2kwL>H_wF7>Kc7JYwN0+cs&T>u}_f8uEUS!dN5X65gNg|mjhwei_g z5!xqJ^5ayrXBybeQ>P-+?8Vqhy3ll-NbTuoW*1^N+3&!wYW;vQ;Oqq~r?ho}qp1mI zS41Y&60zxHelbv??Gv?au6|Ttj+Y#q76ri{61VrG@=7Bj5e2rh#h)uG7-*CGFSnqx zOF+%AK=55Q>?v?{HNor|%{6exhw=#E@jehI=v-VAuUnu-R~*BlzeVe!>q4 zTlD`m{A%|7Q)Q+EU;QtY&%vX|m2s`3KfnBcss*B6(5v^{3&nN7J_Tz$5pCKB)tkRH zB&CDu4Y*|&F48rTg7_h}H-dV?5{qa;Wo1=kQ{z0(U!szs-li{zzf#W&u>d~61>nEO z0(h|tz_0NA|6`K!w)`is{`0^3*W(QhMXg?thVMQsD|rs?=UvGCpB!Z?j~mm7`+1c6 zcihT1f<}Nz@rLc{Q8N~{^Gstj^0u9UjCaT0Gc1&f8b#0&J#(@^s3FU}jQmNK*5JEd z+_-CIP9n(2t7^Grphnxly!ZIF1elsFJHiBNKuI{S(bv!f$C+yI_svvl;Y0)f+QF#- zI{>wUlAGQ}ti5Uit<|88%Rn@>)NoDPNbP1Eij6~1&&W`U)+*iGp;d5vXbK6jemE*S z=vS6jF(3D$j}fiHrA{ZlX4UVytD&Mnj(525`@g#+=`OJUJsTu|uae&YS>6he(|s0X zaPzhMKW_UQq-g&vN#^?o^RvYVpp9*9;o#noK-n7;DEm{@ds6~9-<&|%TM{UHYXW6& zOQ7uS36#AffwFfdQ1-3_%HEwo*?STw`)dVO{8Z-uTOxjlPL=*Fr^svNU&;^3--9fF zi*lXv2FT%;kuZ5w+Z>SnrQ)@o?lioxlqAp0gUB(a%S!;IB!JRhD4*=UymtVUAGVO} zFk$5E-&xy-YV3xYwcb%sc63~24Kt=-K81{TS#}YWo$j*i8YsKKWm(|+kX7@+_gkzh zAh)Gk>pcPr7B3(TF&AtNG&I+?KojqhB>7!eCHtVx4e@9OG4r`l;{{Nz)DXjnpqe zOyYbFR>sAEwqm@cX-5K2!ckS*={Cd_zjfwczpRZqe#bjk7e6ZU=l7 zvojiNH<-i_4&?U5`>_YKvb;3r5o!Xyuphh3IoX9d{urDE==%j@%`fh!J^UL%Qrty* zEbj;Is_gQ7H*lBr2iI-?^#eB#?4hi4(GI2k*qzTS1iSOAOZ={E2OZqcaDzKVH#Xeo z_tzH8;;@UhSY-JWtv2{wnQx!VzW+ti#}fSePTofzEl&X-0J(Ar=mR&(M}Z#jS@IR2 z|NEf)H0b@l4|V|tDEopn@VUwgr4YCTM<|`3*L#|B3F!0Qr#uCEyzeMqfd1|<;sd?i z13`XxBiTyYKu`B%aslY)-a{S-z1%m*C*rRIlSzgGGrSr#ZKiHb@^Y^c{#DCTI&(Hq{NMP}Mj67F5Ks)|NkGnfV>8a9! z-DnLM%+@Vnf?LiF%#X)PK071Mtd$EKj?)fMP0Rxakzh~> zo@v~Gp+qoTrWIswtjzW2XK%7{OB~?qgqDTUbV9){;Zl`%z>6?xGTn}PoP@55NT>i+ zBa{ooF-D2XJNjKT$>T?aYP?{d~2-00*~FgwY9sD>x4jp2ZU))<52nbH*LDGC04C6AD^7uxV1a)v$WPJ7bR_M|UuNhw3^NptK;`Szq{d(x@)qzCOuFWHkmwfo?e| zz5LMRLsj`c)FjN+%?L9M1xx}b2)d?1e@idFiL6%TU2G673CgQmlhWrLnw%F2gZ3Ef zV=E3cQUKoV%D+ync7v*b&`0^r^9 z!}1^HzsYZc-M_CDuQF5_t4szi;4)>6QVRQmIAtgrt-GV4tvr_+gGY6gYxAz;@p+$tmP~xMR2#EcX2l9}f3c z-aO;+VB>ME@tAKs78s9(#$%E3SZqA5GagHf$Ny|?rAEbN#$&nhxZZf&U_5R#9yb|} zhZv8C8jlsm<6*|*X5(>-@mOs<))wsJhmB+9mZp)@z`ZN9%(%8G9Gsuk4GDi#~6>t8jsz^V~_E;$9O!>c>IO& zc)aoWOXKkbuFi<1uVJ_8E^S8jmL#k0%?CzcLAs9c7)lRc%$E9?GKp zK;yQy+Lc{kWB^ji>Z-T5mNjjt0#q)g{i(X@{!o|=72&}iVi(v%>I!qUT9>fzUy=8hlpY9v{)^HAJ!PSB zsW5jjp68wkeDV@UR!N{bP}kA##xBz2C4XvRA2~vInhHv^seljWm?r}j;h0&ZY(9v+ zu1LdBtyLR=Jx7KzQl;g*T`Mz^m)j-pILx~$4RJNMtEwZlyopS$_1X8IDQ%I+%j5xaF6kl_ zWI0J!K2v_DoU80ss+6V5cx90MFWCD(0J;IEf>-b=IbU8RkC#2tKR{#X66qIEJj$Oh zIGTC*>|jj;2fXa&=K4A~qkw)EODU_`Mt?mzn9e+W;wxZqrKG))8AxF>Z7aQJd~g(V zgW1X6&VfUY1;Co7rtS3Zv|t)@0I9yzR$W`(jEf+>%NN`i9gMQ#0NYZURe$H0;7I1Y z6blzNwbgCyVpRun>H}3R^p4@d5guu>5>NqP7QKCFaJWaBz)>yk>lYr_N(p|^|-rZQ)i_u*lv5EJ!RtZ%hj&>x9G0jOd)E_Qp1P!-(KM%!MY_%Q1x0A-#Uz;9!q5 zgV(B|1KmQe8yOs=qf^SUX9cd^H#m?LC@3xmuh~UqMNCAfv~mr-W8g5hYYx+6?v-vOB8k>Z`y-AiZotP_a{oFSQzPT{=1l zp8d+K#3= zd1_=|IHq^Ey$RKq=mnX*N3lx8CN#|g6z%_KO1DbzCBG(pDtqM&d9i$`+$Enc-v!+N zZ{d{h2PvPUm9ybg{}fp1|6010i~?4B9{2}5k{nO21c{!1khhtu`p(h-^Jx!JLsfGv zI7sBQu5?VSYpiO)?+jf0KF2)PTZ`c^28A#B)&!Dg&K*u*RF}d&s;VAFd`@juOXlsP z34Fh*A!@<=vS&SWPp@TxjHYKLv=8n?p+CWWveV_&AALbL13{!~` zsX@f)Uw>etV0Q^K4*PPUX1>RyZ*Z!_)+}gm3v|*~eIy4kcF0o8zGP`Mgb(AQy`>el zC>+SkQ%SiEi1>~Q?G>?upxF_^nx=Zt#iOt9N7kC)h`HKGeNF8)wJ}!%7W8i-fhLTH3rT zd2gETu2-^?oIcNxq<&tYfl&nJSo1x%I?ud2j==YC&rmz|J%0W_Pf}Xsd!+NCEaN{x zR?p~AmL_G;GtWuNfD`F`5|8l?3-mckARUXwr!5Mn7D1B<(3ADSb?$QjQEO%_ntwaOt9#~_xr8fqK`-? ze1_~CrGBVxaaT54kdIc0)2=_-Nhjugzer15TYs1J8(k5NV68V8|9`MlAW4@>-$(^= zg?yKi0(XHA!y4bLTK{qS@rYBc(~WncDpaf(n#`pBYCx*YbIjix^;ftf9sg(6&IZ!u6camsW_*pr3KXP zK!2{Qxrvzt0iN47IFHr)5Jz7l7>efFZ(1{n*jSG5+DjnKI$qmnGAGPTn$_t<@45-= zElubI++kpKn78emso-inIaR08&cA=3q?{r9B%l3T?>;ItS>t+l!)}dT*@=y+@@rf- zPM@W59HBe3j&P_^k#N;KjumR{)6)`~lqzlDyVcB$8-vsG%;0L$6FoLme<)@-HEg3w#k*xqc*uyRSC4W zGq@kKv7KtvTAJ%fYRRKRJYc#|0}EEx}c(Z`=Z%%E7)TtKF+L70h8pOPDc#p z&(<)QKgWc@oQN&%5`%XEgN}{?=}T>GFn_L&!Mr6)vWtIk;va{q12I({+32QAsvm%= z4{aZizPKN%OCy`JbXhapMS0f6Q1iwgyyn}W=JKNkq_4KqJYVnW1xuD}0h@)DRW&s& zKlD&*1_bgN2Bc55BLJUUUa3E_{DaHJK9;Tj75$ z|C@@ej08E~T<{9i2m6BS!CUu7WB{2=R+DX{4`g?LPu>PC|1EGAcs9A4yg)u?#st`3 z8kr+rJmAXj9mwz6Om`h@-6nG#lj%p3NRbG|X){CiXZKU48yNLoFzd`{_g3D%81AjS zVewXp-BEdu6K|DF_g3CtinmHE3pUvN*3J71r+X_;saONMi1K!cHJI+LynDnNgnKJ* zkHfuH)+v$it+IY)YBlxVD(kc;_f}b_4@ zn#_AzCiuq{4xEA{ADJCJ-#cI;DTq>@FX3c*EN^)|Og&A&MLqnIg^_Z+gKczkomMi7 zo&P=3E{P0~pOR<6!+-9tdv<6Vc;D?}7g)P8z^N^8U6^=_A$$^XeziC>64}k#rPV;) zU5^Esb_4f&a-hG5<0jlmql$c zgxy~|sV~LIDTvHaMmQSX?E9xuw*(?KXUl(=r^4fZ_78k;&rXph;w%8X*NNIJ082QN ze2aOA3g@S#YHM4j02QY7`&W~V5rZGUnyNJv%vQ53vlWWg8Nzt(P+eq0)dJRpttH1m z*pi{+yeKp?Rhoru+bw4#&tijGm1EQ;1>K>Y?Tj`wnhuyF&L%5cofgc^rF7hhtUhdmLQqv4(}Dtc^Za&qzfSd`C{dGE@)Q~3vP4~*SB}>}5L{u!&BZ62? zwQ|nkN$I8iLq=Jv!uEzOfykUG_2gu!;Os3)=^LU{fD3pllYIf{WDsL@LBm<=lhO-J zYV76ya(`use>E6LE!l)#GoW|5c6=<3aWw_@*DMP6PGCD@8-p6i*9&2Um@s8}_-11T z)g_(zz}o0;d6 zPyWY#se4LjL5egPcT*sBFd24#f&xx|jj!w23CDsZwyl%^)U@{#(v4k|kgRQ?y0b#_ zQ=|!qYePoz1i%${TYQV?4pYsNl;r@!L8^ETWLs-fO$M5#L>% z?TIz3Fip*APPU+_zO3W9C^Xl4WU=W^xx;p`4O<&vV<&CPGSIeV>A24h&9NL2k#Iw~ z%N^niZHQaIT3gzv(7@VKM8lb_|NF{i64?D}lg|MizrV?!Dapzt1=#M&Dd7F%ugaGs z1^E33fsL=D$T{R*^0M*-$OjA|6T!akdXN(C2Adt%gBH-c;31@0+DM)wAE?}abaRgD zwR)@VU64wqkW!I->CFG3r8aJ+Dyc%inuvu1s^-vjT%*Nwxe!6RMft?WDpucAF(uUb z{zCc6Ii1!T7Z}l*!E{?JY+mK-Sl*)5wx-aS!QMzY^oR(|VCB0A8FWjGeMUSnzW6`f zxecnp0Cs658+~p{riC$GS}FhLms6&}%I>zb@h5QwGa39kLoh@A_-7h^Oy(#UL2g~E+Iba8TgM5U%TRs_V0No+~PJRiz z11NAGI0dwV3qd!y4Sa^419yTCD1TPoQvOZ$A(><@*!VdNW`z^TMdU7K|Bt*gN8vUA zRl|8UD`X?5*pgE3wkJ7Qfcw<;mXigzx%Rj0mg$BbXMgJgdy?If-_YmnZ+&D-8kS~H znrct7Tk;#$YJcl=d(utzB)et0Vc*-{8ZLBAB~$JlZnrQv+>Y1qMmwxi>`6D;lOD1s zy=qVT+LkmT-JUexp0w4TbgVt;Vtdjv_9VN7!I6V(Z#fL#k*i=?rOmciGsm&j11(5y zD)U!n=jW|1ECA0dsm&46kBg9gL4@@CBBa0IoIW&(-~ZhKE~JzV^0^ZC_x)qNrMxE7qgge5@oC&i6#~#v&vgTUov1V(e@bCX< z3Doxwl{=)P6aF;g0syzJ%TlEx-jItkl8dynGe{Sg)qQxg=#Z7gMZT<7M zoX`GwwnpWL(kK=2A=B?`Moahms@Cc-e;sI@zxc5d#vL4(s<$)Y{S6@e(o#^>vOTh3 zVN^i~&CIsJM2J?0`h`S$#h^6WTRM@4gqB+80Ih}WU#PoJWp%_}wb!7{0g-Vq=!^W0 zPF+rD2`CNmp*vVr8d7ICvjH1-bQL+%1*5|ZTb}_CT}!5g7)!2320Q-`l-`!4x8)r0 z{`I!9TsdF)3?%w4B{k$`=a0EKDGi*pYs$a6Ndr;cbsb}ya`9@k6~Sek+_eUMTU7Bh z!H%kiV2FeNH{;e`6Q~d+nCR0*pyuExsvci6ayBox>lD>lvHb)IHkbYKx~SM|hZ`Td zmR9(?sEurf4vf$^v`7RdFnvZ;Q#XT+ONB&)`cF|!U4?44lj5?CUjiR!%Z%$a4j9Br z@v8!+6_+h_3H(*|{qHA*B=~oYbRV4lKa>Z_ljN21Cb?NYQNB>VQ+{0j2S@>@D>Icm zr3S40o~B%_+@t&vcz|B8>bnShgx7%Gu+zZ1*Q4YOW5z%^(X#B)wUx{+PkE{LL6m;Q zl;Z4?>;iw8zogWA-4K!qMykLL4~k%_GiXjbXnHobv0wc1hI0EcYPM?edIx-Y509 zimO^c?-#a8tsXy0E;9r*v76kw*1AS8&-DDO?`geSp<~M0tG$&O|MslW8%4cUEo)L4(8Q<1(X&uQew>cK z~ zPXNx}S>OreD)}a`2KE5V1W(J)%df&c;m7h`MFL-dsmdtD2mHX<;2&fK*a9zBHY$gM zu0S)~9vrKjpq#9n1s1`t0`Gu#0hjP`@EYV|*_igYj?Z zSd8zZ85rMB$6@>c&BXY()Q9ndGz;U0=y;4DrV}uJgzks&qjVz1kI_jOKTaoO{5v`Y z<0t4;jGv_YWBe4IhVk#|bd3K%XJGtCIuqlk=`4)@L}z3C44s4VpXpqTpQZCK{tKOt z@n7izjGvqJJ8*3(7;+O2&5#6Ky6B%r1?PAqSk%?#Kzq=*o2AdB2WO+HOw1|;Ba+pi zNYm5+M;!X6k-=HaI;XjzSo+iH!I?%GWA$Qre;g59j&;8bR>6s(Rn1X?&e`b0`_ibu-i z&COO(`n!FDlbIdS_IhLgz;u`B<0FHUkTfHmt$XybvB8NR39L%8bU;Pi%h5-(g8O-- z9M!NYDM*e3Lm;lT;ac58FB3IoY`cx-Sy1FZ8fxX4t|R`yaWeQ0zriw#&kyR@qn zw2#;@2+#+o1bxiRD41X8SViPg(cfkTGZ8@~SS3I`z2g`M%ZU$+2#(W@w8AUuUibb{ z!3^F-SP701zCEM&O%9IrNJYG1p*thj|C{l_G0c9bL5Hn@=F)rF`u`Kj|2~y~+~V&O zDEm{@`-cQ@{$m1VpH86cpAsnhOaf*9oIu%U6Da$a1j_z3fwIpfQ13=$Q#~(S^#)j>`CVp$s|9b|1w*PlEZf*DG z(27(khtobWBRL1|OZbB7xW2d}y4Xf^lqxi)dX!fTLZiH-Q#d`e+)3?6UmV@hlxw3& z+g9);7dh$T6(P?skQWQ+_#PNK2wcPP9s!po=o*Ia4NS|nJEYe|LfQnGBd*^9s!UzJ zS+L=5DyQMkzyFum{ofJtebP(+&0l`JxWU)rw|y;IH`=$0?mEeD>!c_fF8ynXjD^u@ zQQ&C32V&B>7BOjIuj`Ja92-djP}8>}q#KwE$vUoULpiC^V*aIoO|Qjl?$X*p*n+#m zdZi6(XXuDN`(T{24Jw@Tb#ih-E3Nl`dI{5!!5uN0D`=;yTjMxlC&g5;10kkdjSRN` zA1s|9!N0%AQ-SOE1o->dt~^A>pa#&j;x~s@iSohRs^xB~s3Xv_6L_pK`@Y$M&JAn5 z9dNO?m;w7yfZ~YYM`j&El`9)-w`hnq7bc};S#Dv91A%_EK%9jU=$q@3(k5HLsr=tq zF|%Bjz2b1iC-4JY!u{i#q_hc^?nZt^tnjoJY;izPU~wfVHT}-ZXa5#(3llzfiBKRqQ3TCh49YDzqL!@$LTYo*Dv2cA=ie2-s^-&0|ui z&Wf~FK*#sMP=WmjYB1yZ1%|uPxXX^TiOtU;n_AqKXTsf1* zy+cP`w*w`DH8r@HVIVE0>j8UrM0tPgU>V6Ttc91j@dWK-pIlDEp5D%D$FB+1C>&`$hs~-%OzFTM3kX zJAtzA@b!N))BisKy;InEV7>g%8yUuIE_$GsB2C3ZJG&e5mG2{nPOb&Ub=cMZED z4pN=d4P6hOY)poxceN?7J3CaW?^!^So0)#&bEa^0?+)8G9b0`Ba)50tp$?e_@(!6g z5eJ4!Y?}bwMyM>|xX$e2X=;Z~gWlpc$OZ*=$p(V}d!CN}iqJZ}6NHW955Oa6jzE9_ z+Dd_tX(d6()M=O<|3A zT)JI)MEZ;Ls`O9k3-AQGFUSEOAg_`S0gJ#rpc`QvJ29O3m z1N46%R$c@v0mI2GvJ$KW)RJA~L~=2?jXXyF2DSjYr55ufq09SL7L}KIuMmG;j$*SZ zBunXJW`EcQv(-D&@_S#)?=;KrQG-aD(wPsIW#}H`@i^o07g&J3fQD!2iI(3dS$>~v z`TZ-)?^943w7_3b1g315O`D=Z?;Q?lcRHlqh0>t~d4+kE20}+WB_89Hcr4f12MO!E zoJ#+C&?T*0T~btD?0FtINF&akDNX-hfFmU6Z&zx6kJ(u?+_m+VP@wUYWnZ^MC96=llN)B(hz( zQ5huHNf(&c>Yw_#dv$1&&S^0#TJwF3A>Zq6V>Qpdu`-Sl25{V7>8w_3)ut_$Q(s5kmm!gd!x{afC!2$wi^{&NdMe_NhA8hO6nUXy?qEqEQaM>*Kswd122r=z$)Hbcq{%FY)?wtV1gZ`rT9$Znu?1L zPfE)+)nx7j^_&OCr@Gi(;95yJCrUFV==G6a8Kqr*9zntgGWV-GI)5;4bXTzNzga$9 z0y(cM|35*{{5wNFPrd~7eQuC%lkWk|pGUz%$TOh-_pfkyhFKHc@T60|DZgp{0+1M-%{RJK2i26-w_WP1e$^SlCfkw=myRt^T`s>4qOGA z#wDO1xEb_~j{pt94zNeq13H2yg6{D-pbdBhXdvGLdV=?nhshJ5Dfn0N5_t`D1wSO8 zk*}iXQj)BA*I`(KVJU`X7?xwW9>Wb7Zp3gChKFEyD25dn9){s&47XtT<3X-Q_%#>? zFx-maHVkVqti$jK47X!gk6{CbjTkmz*o@&03|la4#jp*-b__c(+=*c)hFusQiQz5` zkHT;_hDT#~42H*I*o|QihI=qP4#Qtycsz!`#P9?Rdoc`R7{V}&VIPJkVt5jUCu8_4 z3{S!ER18nU@N^8%#PBQ(&&Kc^49~^zJPgmr@B$1k#PA{vFTwCq3_%AJ#?0jyUV-6N z7+#IxH5gup;q@5afZ>f8-h|=J7~X>6tr*^h;q4gSf#IDP-i6^k82%c=dolbChWBB3 zKZd`>@Iee8!th}XAHncZ3?IYraSVUQ_WvF!ERh+?40$U&{Dgnq>qCd7O3S(MKt@LL za@Zpa9Aj6jnqa0u^Tce(vqY?bZBKF2Z{~HIF)+4P5n*V%tnQppg;iKoE0nm2h+6y3 zRmIs18@JnLg3OtATFkjR8ApWS zT>t5$h_t{Od~o9utYFp;3y0vxJLu(GTPL?Rneh4N;!j?o|LE{VNx3u!VN2b1-!?k>g zf+ie6b3RL1nyBBIkYoN{BVt^1Xp~!#;8T3zR0t7(_ zB~${)KyyKp+^q6sgbezI(Xy=LyxWYHWxur!X+wiAYQ?O7nS`ph5p8r>QneyYA|!Q4 zcpHqd0FA;0;5_TlgoX+TJcu#B2Wr+bV`MSeN6}P{@^G|V`VLa9-W!;2R308rR_mO8 zQwDf;sLpL~Xy}^nc`WiPo%qT;&!gNXukFHS$rAp?9M9wZyfN4Fi0vZfbn~SJyP^SS z3LR>VXWR4Id0lfo=dkbpC({3YF9ErQegh;1aST!fwCVaQ1+t)%6^-m>NTBSOZ2#|*N+j|!`7ODY1j%-iM`ngZ+;e*R^!9UvzI;a6Pl+(P0!+ZG3z=HdxLLOE4MPVzywlH&!!KNz807{UR+`#tMQ~ zF3Sf3FwV=RpHB^zqP3DzlU4Qz-U~k4FIeJ{@>HuB8j##7urJkU2yxR-M+es-d1jF6 zHiUkX5iDjFPq^P8Y!<#vIM+8IFvp~Xr9^-WbZ1x+;p`f*yY5Dl4_0kg%K zev}q0z#LpTIY3+>>4#&3`DTk7q7^jy!Gz#ij|5Agsi1AgPv1`q9&CVDg^#e}e~u33 z@gcx?=e2?A?chm>pjr)$F}a0(BY}lGJXI`h>my78qBUN&oF(c7 zm);1MS$;zy7H`sFHMUrBUenYRvx=iA!%FWKt-kUK48!&Ax{2N;T75;R;>zX{@OxkZ zc!H%p@QT|dyk|GTm8TOtL(IV?a8d z%P1?W+U64couWNtj&+-DFW?e7_&Q9RYD1p0JY0gjUx80N3EXyp74SWzL-|zcR>sLY zVQn9ZWVmud#piT)ks} zJ6BNExUHfV3RcdaS*>+O5)3iV`i23S^SVLv!Wa;&V2Qu9tf<6anNw6)=HFNru}f4R z2zp(4*(DY07cH3WFLmnv;U7s7IrHcNnTwg@7_r9OywdEI`Toj0sIa7@ytu41=1QA( zR<%LfSIjwJOI=${Q)|W6`qtVxiwYv+TwP$-m(5t?&(5vPSvhy^>^YS=xoaz`TkF{Wl{GD}3u}SL?OheMORMZ%<+aYQtLdDYwUq7usWej}lawv;1=6?h808Ok(OV%C_xM zx4{JWb*ia)4gSnN*e_RM0KZW+AOnr3}lTrbp%(0Y9eXH zm^k(B8vF1Fs0xQ(jp1KZ7*RzbwB#1KFI{z?WzyOvF4?cLZde__I^|xl8=HTl{&n z`11qt=V!uCS}6V$>!sCVZp~nlt~B6PlW&0OImz_wH9b?)v&VSOe9`p$lIi*HrstPU z&##!CUo}1d!}R=`>G^fj^S7qw?@Z6%8_zz;^sJbk)vi%HMLAYz4P}q`^F-n2e`^m4 zNP5SMKX-^fTg9L4;?JGp&sT(>Ns{<8S^W9F_){FBNgs;2ABjId7JvRr{P~Ia^HcHX z=i<*V`1(Jc$^UGSZv_6|^vKIUIHcQd6TUXH78#q@-8_DnefF~gjxdX}I!*JPwUjo` zfdtMGR(1`S)czrk>znN8vx(Qj_>2H!17puOD2W6?r>ZEl%_{%H%b2cF zIA`4*QGp0V*}xk^2?x9_-%6A11&t)O{!e0Jf9FfrOAkuVg8a{5IYXW$ua+z2Bf-}H z6|fh0LH-P4MI2Akx5Hys%3*%<_JtmaX27*G!}Yr9kk8qtVZ}1a*zu zyqBXagnI3Pu2l}={!i&`*tKRK;`F8p!3fBJ$aA|Jo7oa8V>o5i-0A z3Rz(WGlho2RIhV?Qmnm9E`U-|+6CXVUhR64BInUBP;|$!oH{~0)IgiJTV5mc#?(sQ zGDa?bj-Gvt@gR+!~|_Hes2A2P%a9w1811c+G}4MO~3|~+Pp(JP?N9l zm0iFTB3UTbwy7>qU&ERPz8?r+WuFB17gnCex2%!jbHcLS$wn*iJ-4agN>dI^4~gdW6jA z?+tH~{SEQXn9S?%4eub{B<-!ufLx%44HEYKkV0o)Y)F&ELmNnvRWlI|?+p`40n9bb zqnqKs4RYI|uRySGW&75xffny=d`7Un)nR<2-kT6_J0!fQ$^r2O@AVO&;Fe9T=~m}= z+FKEw+(2_%t@lRfn%X-xZm9Pb?jX&IZ>Q>3#(OiLz07{>aD1A^`jRC9mBkM=w*|Zp z8O_LD-?1iSO^?m^7+;1AfRL-UAn=a8j~G;Gh1=^zw;|pqCX;n)Pw4M(ss*>P-iHn9 z_4hg%KU$~$QTF{00vA5glVI)RDEV>l=ykYqCwTTN0d1PYj2l2u*II15dJqLf+--U2 z2lo3T6qiv~{n(-Y51`myxwECJxfxv5&8($2tc5E+!;h*lfyYYns+K^Yq^ziPX07Ky zFjhOEPWQ=*gRQBpZfjSpu-agF&aCx557&=PG5?teDM}wzMm~n!A6>RFx zaRTcO+{@4t)11IDVTU+Td(M8*%5N-jZa~?!SRsnMae9aS+TE~Q>JsK-?E6oVj*{Tt zUD9XrY~TZ41=9XL;P0IUTEMBm$2$RdcMp?ifqw`8v3Kvvl0oh8nCl!?;<8z1$D6 zO+3U-0Ndo)pc{-a$7~ZNj`=z{flz&_w3^FTPRmGMt;<*PuCU2HyX%&%cB)JbY^wx_ zGZ>i>5HV304U|SG|Ng=M*HUGheBu9u|F61GYpRsTyJl8Kavtj%UhbeC-@RUwAUXyc1Bt>9|4CK7DrbOLfi zUAB%e-qzJSU6K%rMuHC9=m>|J9jVZZ>U3m>I<4!!)^Vn*SeIlRXD37Z42)}DQ&-qC zO;p%3H6l3w?>tF5PkLS+As54q|KnimV};TQ7P{UcKCriSGT8NC|0m#A**nk;kHSqE z&Rcg^pIUZM0`(3~pzJ;glub^c?2rV?rYs~olvqc&CZP}a45=>54Ru*=n9Fj*U6vc+ zvfN0Q<@R-1E{(7Mhq3klc=>no2Yf*tEpF-bqX$A%`v7$YmPQ2cFzgJoyas?VRvODPct(ZxZp>uBVN40k@nco*4GOTmt)PDJldSi za}2C4MRcSWhmNrxiA?J=KLNYM`vg1Qrd1OKn~e6hRcb=rT1rQLPUvWBiyQBjb~VOs z#8j{$CiO+boWV7>xLBhj+N_9F*Fv!mqOzp zd?l0x;XgwALHJr|GK6o1ra}02Xf}lJg+Q@d`5**msvi;ZhoNNv|FcjwgrA4}5Plgt z7{a|F@a3p{6)J=9+t4OZdy_&iyAw|c)DKBg2s)h%3~h&SNT>#siB<^4h_MT zFc}_}AxsOyAR+1Dfe?-fLz|Fs;b9PFhM`SJR(KSI6T;9MWO8@{gj2&)A)FDO1>vml zJP7B8LF0|g3onImQFu9oOTxJj9u!^!VQx4d!qwqo2oDYewj@8i5yGM{!**SG3xp-% zZ4j;x9|7UUa3h3=gh4}DMRpAZ@w}g*`a9j8o2)FlvVk@cdW0*JgL7$QxefvPz z(w72ZTiuYNsjLGL3nH*=!TN+zDW@7>0?wJ-!}uo-o7~yhWieH@T5LQ z#c6#jAUwT~QE_(PDhSW%%Y*RzzO@iu*jE7IC4EH@UfQ<~!pr*BLwI%HArM~ER{`O* zec)+}T-V2_yP=O!cXMAogtzrEx^C}lgYcd{)))8oF}i-!cQkyX<4y#+JiZe_Z_<-> zB8*bcgcE@x&%_gfBG04~p{!@_Nzg~0c_%eMxbY;Ga`{OB&2!C3oe5f518{WZt{>{d1^OO;F|32gp8Dc>PqD))hG z;34t?Ia&HjdJAj@ULb{}cJLbp)JppVcYCCCrMaf8q}=bFJR*1$vjxPiS~MFwm2KWh z!-Kn+C6nfwg3`*eqDpXGv$oVbF*SH3GsaR}Qgm>xe^qJa8t;D7f?XbIg97@%IYs69 zxs`=QWtG|a`9(R|Wqxq9v#va^#GhNq9q)K2qy;;f9%-$@_Ni;KODjQUDraqF(RzQ$s{Eo2l{sttIcxI@S9>$Y z2irW7AKxo1FJKC)tMXQtm!R$_cmGrB9h(tsWu|Euu$7wt-R%6l)rAGjK~Dk5etE~F z23wHaqLMN!xW+qrcyI@{3lzyN$yrlbm|fuarl$s*(MXMsy?5xaU=uTzW8e-1rH&0Y zGW#;D!tzqUvy$BvY1ZYvDWii8%uvj#62G4b4ONzIDg}2Jl{wI!-XSA{^&V*&w0++C zynO#^Xw=;7vTSd1dT={h7&3F8RB`2fMhB0unJ!Yzf_n##57x0J5;##7Lo41vqk^?) z_Q?#Li+&IE1-E&mY_Yt?Ex`?kcfk1IR(lnqlqJYe1_K_+B2J3Zu-P3|b@fc&-0Mvb z)-WPX#IGtZ%qe4Doam%rwMPQ6M>C279{f_l>q!r8LEAv)7r7yGFG&wpVIJS}nkAmS z%D%zFJ<<%Y-@|xZz(rB_#a?-2u#$C&WxMB<(t?}OzLK%i;Cnmz{m9^9Si;C*+ZFm< zdawekH`29T0R5Jo{|8Gjft?SM|10HFd8mM?h8SCb=HPFyp+X9EglOuReSFJ+E3U3ERB1d*-=+@mxP=boe*s_>kN9EV6yN=1hRy8bn>=@lTsx=ClBms z`K{!!ldMVI(ItWBMkmlx3G|tbLdz==XtcbgQ&}1Irb;=S%841tIaVq~PJ&A!&xuZ? zSO*)IHX_AWBG4$lq>;$h{}fRDfqx&%Q^3y8S@P3h@yGH0U(*0`x@&Yw(^eR(9+2rC zINfEr(JssVr|TQz63?+N%VoGMH_m0bOqb<+F3V-PEH^%`axG0q)C9J&UFHOr<@R$~ zZlcR_lU$aY%+`M@9W0U2N{QSjeF~2*|GFoJhoq>Y>P1{q-HF%ia+17Fno-{OeY7+emTv!l~vxifKE{VlIVpw9A^MkQPSv!qKU`1fn+&(bIIFnKQc_vn<* zl&_WVmtT~>REC4aKj!yq7x?eIOt~HWb$$r;0mhI6$U0IF_l0MG-;l@2Yc8ja{)=&I zCaCO%qO@G;nH=MsPBXZD1?&5oWsV@X_kh_BhM!4g^nAK6ng>yp$LxlqwQ4F%SlA6f zleVbYG@F~d;YjkU1hU=ZWfhWM||&n$OM9@cNkT z8*Z3shGQ~K=5{bFZ)+`7#BJdi2*0U!XkKG=OQ0dp2$x~i+exGTBJX+cC~k)bO7aBF zHi37n-gjb#TBX;g*TD0&^l{w$kq(fl{d?26?It~uF&hFX1Wa~C%%USBW_dF$wXjP# za}uI>MW{P~TaTOeu+2%I%1?-TCUO8T#ApM z9@tuUB(vxrsfMKk2hQ5xS5_PFH6jYWrmene@LtmDYishMI1)o-%2Z!lZB?7EwyM?F zs-sxn<=YCGHNGm}mingZ?W`=+-qg}H)3^Vu{bqIQVn4%ng_I`bx^SmK~t0Tw6?XhSGUdD+y-|Ha60z!-#!DVY2&F^q-`_1Yr?6i(!?F| z7`Q5f)8Rx=+%`)u#gEW2Djqh346wdkzJbiw!6N9o{hQmXVFd@ls+yV>7#vG|dZ(5` z=jJscdu*w1x6deF*|yYY5M@s1v@bD|bUJ5*Q&Lpj&J7vKi=ow><*{NV*m8!uT{|sk z$6#mZzS#!e&TnW4v+tis2TIDdVEyC3_&)xg{P0N7#OEJjK~{1V`v_TU7H!S1YS{*E zDA=%H$wsx>zOhnm8h5{l@F_;E2YOfiARDSW>l)e{eC!LJ?yGC`ZDFPmr?amNK2Z1| z1NiyzZ?Dz2v#zZcUSi3$AQ6aJW+8&9f~l zc@t|MU5t-?i+IL$Kh%zk&`J^OFy?)5V^dYnhYTBOzUuat7C67aHD|?hT z$trSXd~?9hZ~vcYfkTthvr#|*T_1EZYm#|6mCVs}WgbWoYtF0Z$2!5Y2}d{3fa~z%TOke~P4B1GoQEB9G;s>ETiOS`QO1uJzh%ZEU#V*u>@~@TKc!nd*%&0Y|N8 zskYQN+V|egxcM%?+0xj4cLaPbfwuORM%;CGRMmr9FsK=}+UMT}~C6%|8S@I6)8u+38bq@@WV>~3;;2{|-k63pb#_YN) z0t?B2X>cu!G>ucyofFPTffbcWTi0d4;h3{lqA2RckD=~%+00&vQiGMx66IB$j3wc* zDUu(_sOExmtc4=!5ynqLnG=gB5_sPnqsgP8p<_QkJSIh2ir8<@NM5RTf`fu%{D|i} zA?^Tq;1u8NPH^rz+c#B2-r-#xZ#g^~M=}ha#he>jtSer|k7|~Rsy0jvSO!K$nvO(j zI33)ZW8@Vp04T{KOPlMO{T;16_)4c8wj!f)$=r**!n+P0yX3NrN2p^%c*h} z-2dl*x4(egA^#Gj0k4+t0lnXs|2+@#03I@$ z%m(g31!)0$;pc$wfcwbP;8EyY@G8EO`Tdh5!HrE zTNAFaCR}SxxXzkzy*1$mYr>7zgqy4hH(L{Ku_oMVO}NdPa65XL(ON980Q%wyd(xBk zq^Imjzqcp-!JhO-d(zX6{!OlTOufM|^+w0kn;cVbc1*p+G4)o*)Z1)B`ypG(!?u)1 zY$=c0QXXRt|2oT{A1aH=%eOC$*%Rbb?306Tt4^S>z({D|i#Ri#z~Q zhEJ2{$*bfY@-f*PDV-l)l8BP>jE&6&Qa<55xG!hW|a?%P9*(g>t1u>X3&tK=jWMM)7<*{| z<0QHj;{kLV#sg_B#)D`b#)Ih*81F;3W1LLuF&;u2FixS37^l)EjEB-@jMM23j7QTJ zjK|PcjK|V8j5BCE#^Y!Q##wYH#^Y%x#uI24#{1DDF`h_wVLXW*h4Ey%8{;YTXpE=Q zV=&&I9*glb+Kusa+Jo^7x(DN#^f-)X(O+OZn;wtx9QsR)=h71}o=1Bzo=<}qFQ6fe z51?U;7t%hA7ts?jUQAEIcnLijTJrm=V z^el{X=-C+O(sMBO({nLiMbE={H9a5WHS_|E^XP>bA51U8crCpc<9vDv#s&0Jj0@>y z7#GpYF)pT8V7!iAiE#$3QtIpHsEn) zcSiCCIL^dms3+!Qj?N}rU^#BZR1F*xXUs7l5o0Q)or}85!{bw=Sv!=>WIxyd1V17p zZFYrXCIk*%%+k!vTIqu37S)&b6cjXJLZz)Jo?@_MeN$&`?r4HL30sBH$}BYwdbV;J zQ4DJD+;CQ^G+~DVk~k+fWF${eC2>?tT+kGXB#C1p2_$jYy*QJhig+pA-)%Yws!ZwL zKkNhD4d6(nC+B5>LS9y~MX)D+0(M(?{t-on_M2sJrHm)$0Z|YwGP1fe!w~DR06I6tzZjyq4Bc{6VjaqgBrOignYEBqFMc zEUNRjRbo+1Rs|M~8ChErIRAev*g;h4uSf^#?^YBt5kZ3UVaYM!ZK*qsudk|K>kEUGe+#~>D~vhz#*@uM-_h6Vyc zJf`@VXH;hN0#>Q1K9RdzgYW4m?Gv7?HB4njGH)1W@i2ajX4o)daGVel_AF9M!A#fRzp`=**lp7@f6X3ya8#8j34 z-LqU}fSYYV#*gMywfS_FM!}}!6dzj8%WEuXg&v&(|1pIky^C3bEy-MBe`|JiQ{&dU zZOmR}WeGDux#kdnJIngk9K4$lN3_Y(rPdtXa(F-MorG@tGXAE>u#60L>BSC-^a@-(^V|FL%+fNfP*`wi(i2{@j?gv7BD2ua9v_82;VHV9CP#7}$o)I;)tKN1Odz%+F@Qi@Gekr3&s_)X&X?_el?!FxkkuHmY$NpAa1RF{)E>Lw0gnGAkwT1d4U45Y~un98htV6`L!oU_fCu6{? zfncNG4fxbRz**}K)w{j5!8);ot|ks_si}9?211^I8Z4iyh{ZAuHCPrF0z|Y$MP{uQ zC({kRfh~Tw%k5d`20&_quihPWSBr&Yk=i66glcaWDR_AeUfF+C^=RShZB7Dr!|A&jMieBx+drCnqDtMkVcu z=(UIwsjOTu^=uNMv-c$n7c7`MNZpW}cI6pl(blR#1|Y z64B^=BoS@lVmOpM7vX&3H2*ueIt~)G*Tkp9`^2w`=ZL*xlekQ@Lr(XoaEox7&<;${>4KeqgMWm- zkw2a9;A>$mT;ks3e$3s>oym1@b(3S|41Bg-y?O8U`@M}Jca^i+E!9qmO}25Xf%uyo z+~jozU3F4Td2A9x%T0;kZLD^$liZVI2bt4fPr=pYv5Dr%13r(>Ex9Jg4m3~hZ>$MO zRpqfV^W>gDwZ|_xr^F60FFpW?DZ-KEu?gk`-0PtuE3KIvD>cvGyWZ0%9Z?=DF;8CO zY^o1RtIK1>7U97buy=TQtjIjv+Zgb!szBWBC^3n*uG;vhvve=E07D@uHWLy=2-MxReowGP zhJOyRu~Vv?6q9V+vQ%>3Mz331a6rsXn7){Uf8iAKRuQVnS zUbdQ$%{0>7l9)ia(5iP0&h@1^r7_+RnI@qYY4-jxT<9YR?i#13UOH_5vrm?tv~ZVZ z<)3|$jhn|XQ3O?k{XX6D^>L#UdnQntt&I_QABWFr~P=C zU8pqVQtJ+eNNUpH^sjaMvm|$dDY-hgvl=vm{+2As?F4v#LrUq`UY#);YOD$6O#E!% zfvid)u2pYivo~x0&rCxzmnJ%+4j9WR<@CDO2eYirA)5bf+%Gt>Mrh@4#mj%o-*7{G z5iHKLHOlZLWd)Edeqg)9OzRA1_X%9cTH}a27GtVnRwp6$V1zLQFQj81Zyy1EbUL41JdN2i<4MbmrxBbiAx=E= z8y%QT!Nce!_cW@-ZjDzKa3NM~Xo-X{8)v-F&YqW530~CmfQ<9fU**U+k;>%K_<{m% z8DkR0u$O_!l(r$!K=usP7#jztWl24a$f9)?B>EX^oPp6>hmt5IAIJTZo5OA1Pq?1@ z6~BxZ`Nz2Hgu{6^zmeb0#rUiEJGjk)$lcAq$B}l>cA-o-6xw`837don|DtdX_n7c~ z;VD=Pm@HO8f3E`)|FfX~|26S`@n_=8;)f*7)dZ`MI|oB`Q`<>o4awYskjHy7UsT#rk{-M)aoVkt+ccmAMDA9EH7=L7DhP<4Zo1@x9L0vn|I9BAFHB|e;` z4M2#akb-=M2fA8jVdO9PFrP+j?fe2kBA#d^w9T8N5YrrcXT zy-Zxh6CinHd$>JR;|nENsya|yqWRZ3JxYMHNSwg}qKeNN;p-g#pfQ)S>lsIGS5wGS z9SV4kaTkA&&NH;?tdmX<&fxY-R0WBpQB#bM-tvQ4;)IPa5_XqQVQm4{VXrKRse+N5 z{Bwb7Dd6^dob@EA$3a!y)E=UxG*E9j!=r=KP(^bERta*`^p?+LWSGS?w2B`F#_H^= zQvIY0SljEBu3_lyVsRap2ZLlReoFwR-2zy0pxJuMD_Jh?b+T)2qF@Oo4`V$6_kH_2 z(QB$(qpiYUW{LqJp!Zt2a&V_V3`C9r!1}px_nLtg3V(BmuH=Y2nSGwRzV7yLMEEN! zsh(0OD*TL&Nym?tHO=$60&ZHqvcbj7hYJx#Y9PvD;X?QLyY$xH;M5gk+CP zlRfTF_INJY;}1z5MWx9e%ac8Pl7{+!~w(o^|L@6H8Dibd!B&iK~WiuFXL2Fy2&u{}N$#=r)jYeT=<7Yf(o^9v7`??d`qy9YWemoL?4l34#g%884G7XDoBQTEOM z2R?8+cv&I0LSF9gmq1=iUMsn)a2}PeZGg4VJ=h*bEh(%0qm64Ylhr=a#UiY7DXqd9 z82Ceb7-#Qc2UAWMeXUH1mF3uQO?;`kYr!g#U9e4IgPogY&qrfgJ{VzQWDzj}%i}#= z0|NkaakPhfyMUH5IwLH#%1Lv43E;Ek2EqP|EQF*iUftRWU-s-Yq-95=KDM%wIBM(< zM;JPdV@Ka$cY6X@YjmzOA}VWj@x^Lin_$(~AQH}a@Y4EPU0SAyE}CdD@#E=*zD#7W zA7CH~Gzj5NrfDalpzxyZ|Cb3p{4M`Y`~Uj*D)md6X!Rwr^YQGvo`MsQxc_Z3A~3>e zriII?ok##cXz`Bj@K)f$(D%efhtYc;qoFj^@R9MAYNxYXbvioF&z_yNX*(U!1ve{* znX1-yS(1^^pdFnFN~!Wt6JMdWiS_74N(b39p}+@Nw+Yi`pwW$u1!xmMK7}3l_6RLD zoMzMPW~o(9-0|fqCzx)`$7!|z&7PCyw9UZ?Q}1HpB~P!6VFk26n3V(Y(C96~5-W_5 z{C^xbgTueGfd1da-v?XY!@_TH8}Aw&7NEuIKC88kt9tE*;9Mq~b*){#V4;3BRWYTL zR#VgWZnfj;YY#WKMxgH&+2Fz^t_E_p&^kj#g%@n0i~wk&Zf2s{FWdAP)wu$d#w_l^ z`g6u`#olF+*di~?4a{^6%>0xs*(ms5o_}$=qjJn|ZI0>c zb4=HeV>)k+=^ArP=gTqO(K)8`=a?>#W4d6D>6&s(w=TzY%{iu9Pv8G??jsKW{=x6h z9|RkKOZjTv4-|l2em8$M?*HG&e~W(@H~(Me-{b#+JO2j=hu|*2k%Cv)ARLE#{-+BU z3D@IH-~r*M!i&%u{uFluigBxdo_M%;6z=nH6{F%F+~mI+w*c$_oo{emU~pY%a9w0@U2Je&VsKq* za9w6_ec9l;+~B&x;JVV_y2{|X+Tgmz;JVh}y6%hbU+o8<#R&7o_utVik1$_+|4L1K zuD*X+{`UkY9x80%FXEn{_5FYHAH-y9RKW~yC75Bia@dRAB1~XTvdhd^VChsI*2NE3d6;X}t78YhVMkn?ISqfd49xzaGQd|9657x<7{rtGU~O>UkzN2#bN8&=t50 zEB{A<>GdaIdCi2>a6PcQ&IC5scY)RQ7EnP+LxYYxRk28MeQ}E4gql>ZnWh%=n4tsx!f5jBKd&{~3?jGZ!u&37B0PWwxehdH8Ec~yw z@PEL<{}<-|MR^wf2U+;nS@?Hb_+Mb*e~X3xPb~ajGxsm%Ec_3#@Lz7>-$wJlojZ^d zmkNFSSGZU3%KmVkUaihSmgnho`8NAO8`wHf2AaRg`lN>F(wNN-&s>qdfq}V+DX6=v zcUzkAjS?%v+psh4QU`9)YT#yO(E&421L1Hw9#}$^iQ0IT z+7=~N>jApSoIMZ6q~(F=f`vs)!_*(f1lre2Mhj_elQ2gy`g}tKR90MZr`jHQR_(!V zU1!hBy0pA7!qgt@1kf`8ql=m9VzZ z9s--+o5a(_TY$y+y!e(pQvA<82}hxSFxuAH8kw?-bZh$~+m9X$4~7Hb-gZL3sd%1X zFce>?poXD<$^xDxL)8fI$!E{ZhHGPlSxTgE@piJojd1$hm|;q?R9!W=bt}|TKO!iM zL|6k3u3J08y3oIqRx1k~2uHo)ol&CK)XR*_P&Q(1x(Ja3D}mOYei#%-8gJhY@mhk| z0Np^iHPY5u(--l!_Jo_6wZs7MR=UH?ob=HNh6Avp*w)F|BL4yLt^~tW8dqnyZ5y2p z$@;RS7a-hLg=~S6^>?7nzt6;-oK(kfvUOLSuC= zJVfB`@M{JdN|@DMurE<_?~?^>B`8sKYT%y|xv+G^oDw3QMVi!lOHz_&hIll5sF<(^ z8SDfcO*>Or4?uYx?cwW#)zNT7Y|kv7-7!t9P0;fwrq5+fqVgO7&q*sXodn)$ejj^>I$AexFmSPjX82hn!M zb94B22S1TNm49DYCwyO=EnX_Fz|{bYKU+{J;Z7PFGZEoCB3##)vV(_bD_ROJr_Uc+ zzckb^u+8#&uZFojRT-#i;lc%#AyN-&8|b3{Lv2vZ+R(O*l!WLt#9rrh7Hl!k$=7FX zZ7|22TFr7=_F3?>-aMzzfTs@VSWVTnlgl5f!VQgm-%O90X7m|w^u#vOkI{Ob%+b1q zp9NDtwaV)=;On{63T*Iw7EC=U%m1I^u-@FlU&)dD=0E%oD)e>g7SmG6)Z5tLZm=Al z0)2y#w(y2jS*>_dVH|hxY_6>G)Di%gZ-z&3XDSNZws(7us@5e6F{2TxZ zwrTI1q%xvdjlvd>;5U)}9$_HERm1P{b>>K3R zv<)IthQd5+5bU_3eQkZ+j`j#PV-aR*yETfNd7WvmH^_ukwp?+y+RZE_84SHHd#)54 zZq}{C2vav>lBJ|`nsj|kCm<8>wI9qi;c2^0d=I<&`^6hzd1JF!g?0Zy!k>j-!NS)a z!sWslLa)#Q9KcFpGS|vA3FG-sfed;Be9p9wl_@yCobx_*FowV3i_Si0E~30z>pOmbDVGqVMC@~5%G9|T3U-6p#kYA#M(@# zhW%|oFmD%LLaFbfO&uXu5J*K5QiC0Zk#A?6b^{#Kjr)qYh8uLkgpDiYtgiMD zMk(FPT><`oR3gsi+qSj!4~Di6L_+LdqL<_Llg5e@gixrlq2Lp;3`rZwCJh+5nQcbcJtNY?$)8E-e_0%SoAgN=TsLSm(O3Y2d=Fo z7{R@1x8F-wrIC5%(uN8!&vlXPfNmCV!3|$uDDEj}J^Z3y-p%g2K4cIw4| zrzQK2xD5}m)`muZOSv6|T1u72*5ZK$v~(!A6P`<`nY89CT1MahRMP+Dfcg10?(E+u zULtN6w*cAq5OIv~J~aA%AlxQgA?$%Put``Y94w6C-vkcmt^7rh6tn>;U^@3#?k$jb zoVyWZvi=+ML;3`wkflH}8EST-mlA`GK~Igx1vB%FUJ*7)_M1;1Wi$d|5knZGIE~%} zz-t0$)(+(I{i>;zqCFA1%I*Ya4ZBJ%y$SvfqYj2k`c_j^kfo0;-*?gM=ZINeEC#x+S0yxeqOcR9AD{m@(8AkUWvy1y65RG!H4p z9;ckiFn}!;&9-O&3GQSvCmfq9pP8)|zFU+O41wB*JNu0QvC+01$7mNz9w{nMt^nTmyqOU zCSyf_x6xO8DacM!juso7>oEw{J6nqGL%edu+vBSb1?oIC!BSkG&3i&AL`{98Gg$l> zyk;s)LgOMBa^aphI$3=&5U<7tl-k7Fv}_^WPgLU0Kz?AlLc9g6%sfuuAgm!P+v!Q`|ESIQCc z0z89d>J7m(Tk$4Dsv~7SBJ8Sj`b#k8iYpW*jK)xlPeqSANvS36EPmEFaT@30yE&Zp zNANwL#GeM8-}CrOfc$+u?0(%2-QRm*`Rft>r~FgE0e_i)oqq?`zdq&vCJ4|49uL&8 zgJ1#dP+<;qf|mP3XbgNClEsIi zH}JUd3`Uq&g*SxvgpY+k3IBlZ@Hl7^8~{9#Y2yFo_}>%aUsC?N5!%P!gjT`>;txUf z31}hz5_U=755&vQr^9AWK_WT)pKF*#$XU`|u^C|XxnmwOk&u7{5Ire;>JzrqY zU$Ezk?D-OV>M85r_iZk}WO=>Jp0BXytL*t2d;Xd|f5V=yv*&Nw^9}ZVlRe*J&$rq0 z9rk>eJ>O%`_u2CU_WY1Nf5)C5v*+*G^Aq;`1ABhTo_}P|Ke6YZ*;B6Vzq0qgvFG2} z^B?T_PkQEY?8&pIz@8#|+St?1o)UZJvFBL!9LJvfv1dMej%UvT_AF%2BK9n1&l2`5 zWzPxhc>sI%v*+>b8NrA1avsKH?uEQ4Y}!hBgY3DTJ$JC@PWBvP&lA{l7klnz&lB16 zB=$U+Jx^iJVfNg^o~N?sY3%tW_B@?E&tT6p+4C&+JexgZ>=|dz5%xTXJrZ-Dago8b(BLxUSIiXrl^lwhg1GAXnjziO2G^hUu95=`t_23yI)jT{ zgHUoPIol9+o5A%%gX=eXSE-?{OAj=J9bs^F8eB~IU&+0cDVD3QXALpmF}VJzcTJdX za8>DD73Ip3!By{edP7YSzzNjx4#+dEw|KuU~GkrGq=f+A6rh?=e~h( zv?1KHB^*&9nOYBsEhQ9oC0GsEToPMCaOx~T^$nH97TY*e8zGZoiwNwUl~l(@LlaQ6 zq>aU~g*FZc#O+nsoMCzBaeAc<6JnJ%4r|)>dQUKj1!2Pf*oxQ!8@I+p%Hgbs@$%{x z>6j_8`BtU|V1XkbwK!t)Y#g))QWb(5VX%TA;MZ5g=9=e%T@`kbUa8p;n`2Id1Qb}M z2BmeAVzZMV?sW_{Ibw&I6Cep@wWp~;3YN!anM3k>fJl3^6qpj5nZ&8FviwtHGi)5R z8B#cfEW_{d0;pd)+7Ua{yc{m4*X4!~MeOVSFuK_Wj@R=6HP} zS1T(^%_`5YHCL9>YAJhp>E^UjU|l0P#;#!MUrak6O4I$V(N0G%WHydyU!SA9ueT$O zbX!MDl?I36YYRD#%p-){9#bCmZJa%mooSiW(|6zmfgkK0{Xycs5zjI)<3gnaBEryHR=HIV3KdBxby-`l`x80yGajc$kEkHm>wMw z=tiYsQzNG`*%S8^axS?Y*OtS;sF`A)`h8{3V{2L-RpNkKVGXE(7Eu!p4EEC^3#S!e z8S=2+0dnGyslA`Hj?!?f5?2_e^?w0}4a0fdBi!Hkg|Pi~5%&A2;5c{-=R8Fl~bx+iQ`b$oE{WYglf153~ zq}6_+Q;d0S!fjc^{dyL0Z_gs`9a+S^(_$j4YnS>*nR?q+?Y$EO}Qir<&tP~E{R%mNwg)G zL~XewYR@H6IG03Qb4k>ZOQOzP5_QSz|2sG+Qn&J_adc$*dHx$dI_@jvobvjttUTXo zx;|6(e%UY2deSb>6xwv7l&QvO%d@uD-nMXexP4xlMVLZDS%VF?#2eL>b%oW+THCE= z&sJMnwlwNvD;KbpwW=wT&Bj3^qcT?=_p0hYz%8`6D#Lc!*)z5&J!6dW*s;qMMHvSA zN4J;K?GC&wrOHPj-k|bfsm3G=1G49%D=i-~Wzs8SSIYyq@DPqVx^RUlvF(8p3GIZ^ zsxirg6t-mfe;k(1FwckN6k3 zKK?%b>-;s437*Oi!X9V~zm{Lk&*!J|CA^*cBMb_^#Qlu>KKBjo2JT|+40T9Jmh;Qk zKr1TrQr}{OG`!d-DK|>djS_aF^gUppX_VRF`LX@8ONB*1t|U_3!Eo-P>jD>9x+ z6zj`kJk2P4#t`-$gNs4FC^Gdz1`4FQHY(@&#*YvFHE{*phM$1i!>!r$V4amhs%@lUbv-(cat+QQ$W zUFgWn>^^nzOBVkBXW@SdegAp<2q!p&FAIOT8_ypbB;<_mf7b(I@k=0S)-87@hY$6+?ZEZI|^N$3^s>S*QcxL9G4@K zH%)cqs1Gc;)6#{~QVtcdNM8Tn%R#4dfIo-3_g~rF_b#ttUp%O81%SeCz7c?#_DmjcWKwT0%Rm_xvrH|o86v4AZjK+Vo(f=tW_~I_hbHV)GW$}u8%u41 zC$ADm>&RD2lye z|4noMLJORn!U~J{M_Bl)n#)GM3b$Ltzs|z{Aq)R!%>9eTSolx0@VCPG>9mNy%fkP1 z3xA7!MA1_g@h$pKaglla;w2XTUJL(i^8EiCC$1Atf&I_t_HIu8yrjn3V0|WQ16g4v z`|&!IcD#lHhHM*p>d<(TVh^-A#U7}pN0mK4!1vShqhH@>WN8U!y1LP#C?%!+ ze>q*;xe<4Nf6p)B*8vHr6sX_d0^;|3nD-A6j)X4%PGEfB34HIjpr7vmuJ?LidY=c4 z`bWjrHO*h>58nhm;uE-TXb>_jV7(47$B>*A@zn%_qUVI^?1BvDJzU%IIbFdCd3rfm zDV;{MlbdwsMrP_EEyNj}ms(C}9te684I9Scy1Jc%PfWujBCDx8e@a4t@_m zg0KGu-2AzR{~`Z#{zd+`kof;qkc1*(vM>X;d{zr}LIC!EyKuMXWZ`V#V&PihYq-(# z5XOh+gC@y1%n- zls^}*`^m5KwAcCC>jLeyQhQyfy)M#T7i+IewAZED>oV#5-9(H`SHTbhVREj7c(u=rE<}z*=YQOvg;eAe0}MhoX*Ij>;y-EN%5;no3#y z3{Q=3DBz~EHTCi3`P12wT3aM#T41P~9@icw&7tin%QKA{l~ga;(L%J+>TeOKg`68d zwt$<>3W@5S%?fFdQ)OSy!IW|u2qqWR5U4M$AwVr~AbyOxQ-Qe5e5aDQ@sNGlJB(%5 zS7}0LKS7#yDs1zW*r_OzvP`!s2{I~MN5@-K4FIr}B)C-W3*>l6vn4H8UPc*AEl`Bb zTNol_!n9^gqnW&uA9F zvDUT-cr_2rVNKbJ(u=aMLrOQL~X z5=C=KG?+`G?YSh{kxQbTR^JuDxg^`t8-OUOGXgErp`22kAkY81IWZty%s-BMeY>-s z{&P++7~fLBO=8Q2MdkUEFs~)9_GLOJBtG#e#-Y=ZprXxF2@hq=8(tT01+LaM9>z0= z0o}A>1#*^wdy_5^W?7IU$PNP*0`oT|UK|6_$Y5L4!KhbNWu@|2@mf z^QVH>orzDWw>?WH`B#iwIy6c%6Yp~z{o6g!a8Iz0WirRHlkjl{f_;Pw4W8u`wP8RW zceN1=H|-2$Psgk|csC@My^JL0$lDBkRq5+dE0R)y!wceD3%EtBwTH^{7b&f+yC@uR zXRMmR8g^c1ZBk7zZzDyvL^p1H7L2;_K`GQSFN}u^xFt%Nmzb294p_5nznV0KCX!U@ zYzj?j)KX84w-<1;SgHHU^JgigRxgidSzeb}c~xSGf*L-lh5D|*+C+`67IIF!t$?d! zg~ZTRsT5M_P&NL>%oTMKy`jojP~+Fn2%3EUl__O46hSF3t^dn-AIJM}yZ?OtPX2Kq z0FM!-1JR=kn17cD_duri4{-vJ|2G2{>|*h2;!nkQMM*puNCB5IngTw|SV;G4 zLP=wRs2o=?ROhL!0~VE9Dh4qqKA;rsf4A|K-l27`x6RS$SUYJwS8hyv$qj@kCVh~U zh_#>e+oUeZd_&b3P6$ua<(6JgqAEvFss4^Y)^uGu5Nz~GZ_)hk;5KkT=y?)*{0qgM zVuLtc+z)76PYHJkmjcmen{YIw{s#$mV1NA#rvm5k+i_2DF+TyApHD)=|3d5;HYg*2 z{7+wq0fKix&?ta{(urj;KVgli^p%CBwENK5 z(KfDu2vm8zPJaskE*qRaVCcCMScmm)Z*8zn+EouREx1lPp)}TLtWc^OX=qB! zOVAbC+9lWriy^&HG8;m5y0bXeKoBN!1ec!{PSTDEv3i0qkv$uMmAiv1YDn8B$JVmC zJDT< zRoS?;DF84SqMQ5y>H;zpO!v%~)5aa063^Ax7E@^Z$VW{DS7+ zczz}DJkJ2q&rg8x`3KnfK2q2y3 zL}_tkUru@kDHx-HASU645OnVevRJ_y&6^34Nt(Ds)b>vmxYPwYw1!CO4)z6yiOn)G z%Qy*4VEbIQU?CH{03UQE_v*>ook*CMW7bEh^>E;i$SYcR*nRb(@eS5ViBbnTjUZYf@ij! zspiWj64sK`!Q@fJK3mP#ELdsVd1}i8${2MUAmtc9M6+&YpQvV0-`E`TH8!IQd#Zs* zRpqYrcyS*SAFT-0A91EI7eD_6e|wta#}#4+Mly+0YvnCi>M)z-UXgn%u?HKQfMicd z74#!F&LHJ{>chPq(at$=lB^=obwU_&i@`Q|LXs^+!9$KKo2E(@T^PwG5thXk8u5f= z!Jm-HB;xWhtA*;T`d=LT^hTX`VpLhfjps{))9n{bu7 zrOT2rPa4KjGf0~K7mmtWYI21;n*S&AevbF^yZEp05AZJl*Z*MH`3MNdVefyl@CbDN z#{mV*D{d8ci|2@!!}{;Hpqu-$@ONnU&&N%GVety_Zt)e}z(Lj`AX|%cwRZakqb{Ie zO}&VukBT4k{K*Q&)C)*6ImxpDXXHJt-BZseJ3l)i6NyCg1lq*lou)T=!K_~(OBa#V zS(9Mt!bCxI;z#K;5`t@jKN3kQqMM3q z@b+-GI5%AkDK9k!StcHEDv+t-qI5ANhRU&1wOky;+Jp?mh+furm|+&5(@#LRZht_! zjcmN^WWEs92b%)Y!>rG~Nh4lu z;%UEwm6&3ZaUy4be|J|K1mJzWLSg3+rqucn{E1<6CYj% z+7+XaO{iL^N9d_*jN~d&CapcS@jk#L$dywb@tbg4l{6?%20SlVRUwvNLtRBVsuQo-} z)S7AaD}n&&v_M|jG7DmfUY9k^Gn#-=V?k4$;IpRsC0}0ITos{4W4mrkURje#Zt{{v z&5zl4mydk1&ibr%017h60tOCcv+;f1?cqq)WJiFxvoAFd4Z+myf z--iN$J+IRiu&75`duH9_L$dt;dz^43|6A^RnSAY^qd0pGi4PQUv$qKq`NIXn4eV~r zRC&Z!&zCc;61J6`*J(c)mwBRnq%k^ER?=0@<`aU7IgagpUG0v;`nStFkvR^*@LqxC|9b@t6PR-TmIc?n;18Q z2BK<18#GR}T6OGH%|QAh;q6_0g9F_|i6xV1)9Z?C)%<&%u}QbkWvkSz#stm(^SCQG z?jxS(i}{10*W<=r;0~bwoW)4$6m7j_f7*)ErwreFY3r@| z!skj73&}nSS&clrBj_!XvLu2aoYIlGg0QFLkfTW(3XxwWF^BA>YIni=NsWeHjD?Ul zwW83L3qDV4RD-}Dfo*2nYcf?${)M|Fp{Q6+`+Ge-=Dl(y4x8oDixp&|+9bwcTTORs z$ACDUzW?dmRUBW&&*okHdg%6@&ixYz0N;TY&`bR9h5fkqVcqjc;TT~6HaxGxJ^vS> z4_pW|^w#`Kddg4^IV2y)Omi|p9@nkIM3#M?gR80_(w-w@5$v*a3I^LKPncOSITg?6K zbC_UM&XUDvuf&3QGm|qicj9gZ1av)Ez=~hD3b7xLba>U@x;qL;^SQJJw;{>pp|)euL|K2G;`y z*Y^#s2Mw-=46cU_uAdrQKQp)xCH$Rb9^+ zVlp^(HS7gL*e?vO7Y(kL46a`qT)#57UN*R1F}PkexLz~3er<3uld5VtUpIvP*5G=> z;Cj>GdduK?+u&kGRMi~bHH5uqaJ_GEePD2XXmEY>#rLn)=w~s)eDVEvbjx4-7vH~9 z6Q8T^UzYz}#tA>>&*m<(Uc3LRLxy|f+Y3pwM>mUk8TCe%bE$_yS&Dsxg{ERFm7F5F zO42(@mSmAMCGEM_f-KIql<{ZJiuhm=oeVNzCV;VVG^k3u5-0wN^<9>n+fPg@@Jg0x zY62oiI@vyEG{Kg!bXKyhjPo#&VHtB!s!S{8o+a_9qLXzhARUZ4S-Dl4?LpHHqZ6lD zbQx0a{x=<_rauKt)P+)o^!?koQcie`-_2c)7yJzi@e>NTgL`;3U?|W;*h{@wXQoM(|?&S zgEip!yq7;7c%ZlP&j>uU0+$ONf?wDU%+G6tdxh6TLClBU-+*|$c!78y-3iQlo}?O0 z0o*qaH8fTOlNWcW>HvAr*c1pgU}#xMk}oayLIPi0MN$oy)8`Kb7KD6#1LG%i9RECt z`dn+>-lm37b%QhH@dQG_^^*XJXn%-gPC%lr@zjET04UkGB#S#!?)}>l`d8ASa`|0V z5S!vWQ*tmufwe6mR|77&1?z#o5^zrvgpZN6>ohZmUTt5ciZ;_lSISiu8ywgzJKDrR51Zras=<1IB$DDi->{8KuS z)$aYpNkS;(TDyF~`tf85qL4`9iU!PXgt`EsSt^MI!j|#C<{bA1i4F0^ZSCp+NCK|W z5yUjq^YBKBN;SAem-iOx?90>%<#_Bm9aG~YqeS8wT&Nq;LK~dx6`%x$4~R8{36;@U(6C?yjNgj@mwUO=l<11}(8gL01TBsu_)DanA?iZ&sN zTkZA*>&BddSU;y8E5~ZW?Lb#!2p2waA=w=mbBKWIaBwH$Ip!w(d<|Cn-h~an1$-6G z0tWd@aSHG%|2JVgPW}S;`cD_W3Y_0x3LlERcp%OIs&NKzyciR2z&YP5;=5cQ2+4oq zT9PvpXt&YiL-EDP%11TOkI1&yNl{fR8!18tsLmUlL3U-jrpfCfw2#1;t%&_+>Zw|6 zhI@c}kS-5!C|kx*-HNQ{2f9Lo1CWP?I>OP=029kk2_n=^t=k^i9%^rEZR-q&+PcH7 zy`hAWn-GktcZBl*fHdxJ^c7OP-tAp&p>Qu5t`2oYj?V+?t8^MkP{RJf-d;#hCG>ah z6p|y8_3m0+P4&9h2W`JW7rB#&^vl=&@QJd)-P_s|wqea>yOB7-F}O1H7|}4mw7iJ~)xQR%0V^dYVyAb%2_FJhJ zlAqh_grCMtpb*#3?2l@}=ox$QE#O|QxBd_{KZ*9Tx@Oek6H~JcJ_1M``1UTKiE*dr{ zB8-|A&qlm=m3#olvJQhMz-Dj{*>()#UQ7aaiW_hO4gm8=5WS!fSiX6eDkTU2#35Mp z9=zC@B#X?(6qMojzFfyqEt(m?dl$Zp0j4inIK4pzr@QA}0UU z+lD9cmaD32oXBhl&aDH2O~_TXaN&Z=kgIy_hOPtvX4@9>+R)$C+cUUxUT5*XAO@pb zxN|VCvjhgxC+uy>@afO%ES)E|S`!NN4My6+8(@)P5NCYhd2MqSid|`=LnFNxLld1) z56o+uw^TenZ4#x@G(E7zE5sccCu4JQ16hv1g~TO`#h#2)wnqDUs2-MPQ%bcyI+wX^ z!}%F!)*kMUgrT7xZV$DqV2LR4@|EIH#zYLY+qoi>22pC4hVXfvD-Rb>%s986@W4Q8 zM_9ddxhku~{evNOj{!ap&xX$)B;FBe?e7mqkaTr6?L#9BO=307_e1~Z6#h(L{al9oz&8UI?7Of8_9#vPU%-0cEm#Ej6EuRx2!+Cdunaa+ zSb)93k+2Kk6V_wg=oI>KE_e!bgwBKQ;A?S<=uY9gKofpcctUsqHih33J`(;Ua^e{1 z5gdqtKC!J#fZ4VS{+5cnWM0pNG50*8-R5PN0lEh_k~d#23U@VXOEf z@lRI%@*tHb3WBuGejEF3wtt=duD9RLep~E!u-{|sce3AO?cZR(8|>d?zZ>m$vENPh zZ?WHy{ciTV+5TJ7|B5{cgAal>P3o|BU_av_H;%hwMLRzbDwAV86TUPqN?L_NUnIiT0=2 z?@9J&*zd{qXW8#5_UG8|u>E=VyT|?l`#shE3-)`O{YCcsCHqV4_jLO&+3y+lU$Nga z?Ju+6v+S?1-?Qznvfr5fHTD~~|C;@d*nh)*&#}MGe$Tc4mi?Y*e}ny=Z-0~hUSNNV z{a$E)oBdv7e~0~EY=4*iUSfZb{a$K+pZ#8D|A75|+5RE>z1;p0`@O>cJNA2}{bTlf zmHqeZ_iFnm?Drb`AK34;_D|XGb@o59-|OvvV!t=o|IB{BV*d;Ky~+Mp_ItDaZ|wIL z``_8`t@eMg->=#K$$oE>IQDzD#IxUfB!T_jD~as)K8e<%!2h4lK{Mb){ubc>PEVfX z;T~QaKN*)+m_TqCxDRw`#T*>VaxsvYDV33SAaU_uvEQ!3YM7HXO4i-wj9h%SC8KH>Fxs*$`Ha;1 zAC-R64Pc|$i*$uk7^C^Wh>LUh_aOHPw0|~W&i^51_c@ryQxQO(rhPyrI0Ko)Q3iu3 zBw)aBxaMD!=Gq+cxh{t^*XNMth8)s-C5JR$%^}T=Ii$HMhcq|mkmi;g(%hOuny=-M z=C&Ntd_9LWx95=N4*LGb!Dt`;y$Ai@8=&#qfYtgx#b%)W+#=p=xXh+Q4^0NdO`xqA zE~e?C8_;(%8W{bs|9-4;sgOnph6`*41e}f>CB{BmT)FQG*B;&wCFM$Nyrg$Sd1a02 ztvM^6RW!PErBw$-h5pBld1dp>=*u8^S<`#3C9lk7MlZQZv!?t;mYpTw&pL~@y|{E~ zR(J-Xn>D#NoAb)nSdz=V%|5UyCgj`xjKSd5F7{iiCS&Au7{FOq!0Yt=JGi?zp+@Mz ze1ALk=&uQ%0PXWYajsY;6!3rKU*Uhu-yt3&4v2B_dhxr$4Dl)PZ9c}=@RPacxxe$B z++6~l^*$bb>Yzh<0^%Cxr49r_w>$PQ>xRK0QDn8d{^B0~E~=Yltb? zBbIsac7~yW;Oe2?RtUkAW4zSt1{ux*VnQuG7#@hG#yFm7dn1Ogue%$^25e1gEOW2I z7gIbikF$-=RM?4OU`JQ9t40p<_+=C< z>p0*>L?4sXRdq!rFM)W-5O(+Ff<*(d_3$(7yMp5_t0kaIK6Pc1LccN;jDulneb%(G>m`;|5OsnlUE z1)w^(vec$lezG>CoJfvDb)Y-EN7TwW4pjUof`B;=Z&Q6e>B}YMlhB_W1zgiyy(*On zwQ5U7aL~1aRqdX+3E&l#FMYbKEA{%!Ds^U(eHuB>oNDcOx^1{um7`RP{QZB-2~YD+ zaHJCRU;j6J%!pkbU0}1wIJy{26lB{Igi`CCU?8lFE>JC$M-&RR9#PEux`Cq7p2H`P z*c7eFJ=2r5CMij_O!41OFr^|Nt6vR~OBT&0_%WJbGK%14rD#sdqX5Q=Bq3}%YfOfc zC{?g$)`(chEt9`=r~#5aTH`36r9Lpq#U>9y!7EO!37QcSRP_}yswQxv>5Zz*G#q4B zTQoXbYZ>eDoYh*=l~SoJTL0UHN=~T6eg2O{k9f_0{Q&RXQC=l^Fp;bU0;e0Fa-#^)&Q@ZiW8IxAyW2acA{%Cs3kUU#W$Z#L~_T7Ak? zAU0Uf^k($cwVxcw@=V3zhq9;Mpp5ynZ$@4j&G$G)^3U;n6!fE=ej zU4b&0_i~u=bUCPXG;TyH7g`iR!^!-oa>N)Y3(BQpPJWi|^7s2}1JHiiyo1pF6DjX%u z6ZYpn;h*R4f+o<(e28DeS8)I2UgqxQF2Q|)O-P*hD~Ju*xC$Zc?IZC+U$1mSMQo>y zTO&YJ7hTudJs588igrR(PQ7y{U0)L0VdG{{nrPS7p+vgtrpC70I2hm?*hV_+ewZq0 z^um-Kw1VqH4eo|Ue~WbO)YxEZ97Trhg~b`abj_4llq_Ev>A*%xHT2?fQZ8Lx9vdKI zQHZeC?f1ItLr4~&%o?0WHTtEi%43m4xUL|KK%=+5MY^&)cD#A|swPi;wRA;!tlvDm z!2@=r%csQp5(P}kANL-rz`>UbW4&a~3EKOzo_L*f+0nshmp>ignvK zLaostW0V7R>5>VtZDfecXxFGty0{{C9JQ8VQkOf9+*_rKCdRs$SuQON!;bQ0llivT| zp$|M;bcx3T`R8(=dAtUUk07jqoh@F&P{H3&#sZEb<4iy|W^zXoh`U-Lux?@^*a7=@ zNq)&L$GAGfFwWK&Az38^y<*HN#QqN5Dv{GLd>ZlOBoF&Dq(iQY0q~wE3;{!*RNQSD zWd8+2z-C2cbhT7y4H<{W8CXkKFo4m#awVfL3tOefWU7W>`8$(-G76TnOw`lh4&fdK zDAIViwYzVJ+@WtI%qA82nKGoR>2;F~oj!)I$~ZZw(tUvcoDLz{evfGbir1NX|L3$T zgqq?B8V{`D<&RGsGWE7U#|}TJntTJ|#|Z#w$R zAD@~VJMC2Jba?YfKJLcJoo7t~pFu6Qao)(fHd`{B^^&@ga=fCy@lBmbt4_>`rkonf ztMEwc|2%$>6Xpu1^3U*t+2H>Fw+$BmGJZBe>ui^)3|;PyS$?2wlds-DlP-eje9>s+ zGw!QNgfFzPqd><>>Kv0X@x-B;v7K4}rpCBzFkm`t=Mg`Te@4xl?#H`N2p~iB<bsort;;f}@l(N6(}^Fl*ul<{tO!^i=J+>%{%<#ZVP5~>6 z?v&f7h%nd|b?Eb`CgTl`!wh~(zJ}YVy7h_@E|XiCLQdsx!pMXIZuTx}BgiXfV~$Qb z=gX0^#YwBFB&zzg1BUj7P*qb+4F>T#rC_I)jFc8~YuIA%G}!E0!vqvM4(0hNyJa$J z!?5IgF{zM-Wt%>Oj8|=gZThNCTxh^Oj#ixvPRGQkOGQP5k;$4oRDKVOar6 zv(Ws%KX)dFe^2p~asGEFF#fBBbA%VfX=1ndZT$DpTHA1$Py-+r-9zq0fY~WYYpPvA z8`)6ha&4$wiVGvvje!k5*M|N`l(pBq&cb6qhm+zi57Cy>lSXH5k(m}aCOxLkMBz9kt2$sPOb`|lXXKLXJ2 z$2opAKLnhwcd+wcEVKwG@dt8`3pWV&1L?C=Tmh8NQ^lLP--~aEZwS8?3*gfxjsPFv z5%D+TuSsJ^2IVw@osQY2;h0j020W_lzk!H4ro%FMyOunm9hVA#Ii^h?N&n8&`BD>< zFV-Si7OMPUEs}NCu~p(wf^h|u7ht>fvSh#uDMAe}R;!6u87&gny9%1AZPPq4l$2J* z0%b^!E&_UmyaCXsp*q_ww4Ide*yDvS^dJGwxfWI0~kik}s1;9hh7usuiO9#!j^Q#PW{K7pj2&@f3&E|NeYEu)cr9{}WQb zm!Q{o4gR}2-5kHhW#e|)(hcVdsKr2Zxzon=WF9{uTiy7VDWykL*|?z$QhxS1v~>>x z0AzshtwU@X0vHe~VYYQ)*t-&erPVgBD+3ng0?2|BO1IpdO{GTZ)_9`G&Ketca@ri# z)dCD{HUK1fLua_PKeTvW+s40CG^2;C9nR03hUtofk-DwE&dv>&>?Ntzfu4B*6zsOp zT2NbIP0a$Iwr!wm1O5-S^+m!OSnWX9+>W+37Jy%BZwKF6j|^7t`wY5Zd^jR!5o-8s zc!-2MR32hNm&%Nq?IER3%J#+Gjz#kd#Sw1_bRe0>b$f?m8m+W zt*cxxZ{fVkX`_`{j;j><#E}CFxT&nnE6VeyLMWC26SqVE ze;Egh-?#IRz{cmN!1_N_I6_zlDZuH%)v)*bxbOxn{vH5(o;BhozL8(XU&5axegzgk zfCI$-bBN1CuNW40!xF&t;yvOsumnKIU)z0s2PA$0`%e1nt_YOCfDBXIW$s__zPW$l zkrw_@3;);5{fib__`59p+s*yWeTzS|@c$W|)}c127TQ&Cnn^dAM=#%P?my{fbN}(L zoBJ2Yut0LQy2>wbTEy?L@ZV$Me}{$te@G)1oortIqAM-@tvb~w=JAV*E&O3~gqtUK zhn-zf<(n9D0ldpnyvLuRbsk;p@voSA7chG_DMSj6Fps@~kJerU)VSTC5jfZ#gg>-bJ?-6Ob%kz2F@0TF zabLNiX$#bg2j>PlTd`VKtRrklLYp>f)7c*k0z^<%*^}wZmw8B&F-M}09+OwLLL(~c z=_YA==ScbuGtz3t2*#dF)9y=MhLqnogEL$M&-dkSjWS{(ReTQddBKvn<{pXJ39uJj>>>WRabgaH?h<+(Nd^IpD|Ld?3r4uc6aQCd3GhApIY*y zts5iis9c~e`BS$*ERIrCn*Tp1_}|~i0lzqxG~di2pSyBM^Q|1x+?_+3Z|9KaJ2|BJ zZVqYg$sx_XIi$HShcx%+kmh?iqG0_qp)S($~b&l zbYyBFH=~R663;lXJbwnT`wXBc*>T>QqK8OT;n?LEtD>_wRy!8VA)6%NUS9pGWp@C{ zmT+1egZ=HOg5C~CS2R&4Lo(mQ9cZD}pw2bG$SAeAh2nPgs>DodGm+lY+ZGA;;7Ynm zLG{Tfy&hLa1(gAI?4&gba>jxp}5u4#ZR1= zzqSG+T}8eT`y;!Lyt5}vkk9>tTe`d2Fu-Ysa~(#qum-K-iKs8hxFc%7@br=CP$6ce zY^cb0QYnoPB-s@c`*lMx34}WcBR$Z8PNHj7PGjy`L4}b+3b+asG(X>6j$-15 z8@GZbt@Z?xOxH@kD2g9w;}W<;GON-H6XIny0Bq?>Pq<9d^N#odR4r5rxBl9Wb|2%p zN%09(Ei6j1om}bJsqs<<{Y3-}c5pQc&lJQ<2!)L($hTFVo)j-uXll$W*QcH;ix=5A zv%5r39uP02DhYy;uQdY8#W+J42t}nQCdUh?O3;}oOu;gsuM~?0>F1^K@q`3M4b$7+ z8fj-OB|Tmg&!?ISGt?s4?`OsF{cYTImWAAmApg_i_cIkofaf!w8 z^kRwE)h>N+eB91Fmh_(9O>4=*oll8b-5(nGCsDOl`XL*lWs1I?P77L%GkFh-Bb`ef$~wuFzGAw{fp25 zsKls@iP&;k zmHmhEEoVqW{q|)la~vq1T-=l#*dEByirql()-K?SU~7o+&4B?fk#}NX88v5hci0~8 z#^~8T$FT*wD%v2ylDdOJ4Lgdhk#M+O-5RkmiB)vd0IC&{QJNVEWA!ovGjzK#>;lyO zW7qjb$5>5# zojXo^21ek4-badLxDn}dx`HKc#SS|i4VA1mxMu2Iiw!QH!L`lcI^W=W z$l&^w!S#vWMMt<)?5dWaJLIhQ)Os5*^_Fim_b<8B!oSnpzxZ|w|DRg;v!njh@{}BC z9=~Lqe6Qy8!&hSMZ1NOJD zNhrb&U_c>Ful?HV@!D%d zdmYeTquT4B`YPE40^@+UqLq^>FQVwf1_1_PR!U zJyLt!m+dBQ*XZuhUcaZkKA^omsJ%X&x2fE86R;+Uwie z>pSYJZHo3=qh6bi-GHpV$b&|Ac zSzjg~Xd@~vxPES*+uzS!KNs8(6?Z=oMOj2e+yD_35fT2sbKkt>zL`m8?hGi}Y5Lx~ z@4a*G^6q->Iln`22v9^`RK2j$T!rSBs4LS}Ax%#HPy4x>qGsfID$S=3Cv{j-h^fx)`O9L$YrryhNzYrS{ z)~C;$TcdntDEp-Z^i~sc=i@sy~zFTa>mMVUKpv!koCx{%}sOosqpp*gyOkAIOQ@nNQ^O z+T1{HuiddyZP$x36m0bGYzzBf$Qb}oN@FM-gG`o%7}k8GR3V%nR(Oy^!>Y6;76f(` zAy5GX3g4yV*fcLxY{zK6*uep}%(dP5ucP_@S@QcNWrs4X+^T#~`KI!iTBcU19<@_B zO{r3^QeTa};C(;^ds==N*k2E-5B{r95&jL*H#Rx|QF3atwytiLe~wzE*zc`fGwUAb zz4{Ha?snc=TQ}=tY40Z5gv=tC(9udhOPE}a zr+jis-b`k&j#roy&60-*_ssEx12`)AHOWyNZ%`AwJ40@8f77NIWO)N4B_GcaCu{H} zKc}wN;Al)+T>p=}KlpzF^Wvstl>xP^RIuV5XZl~rS#y1H^q-+{?f z;4f*8bpXGc<2JbNb5lwP!d4Ai|7MckL?v`R3TIVa@UzgRO%TFN%vw^jqb zo0c`!u3LVS(`y|WIy%_f?OtK$ms48p1ZnBrI=R|NZ%j|`DEyhjB)TC!G}4n_darS$ zSMN4ZV}Wqc;A@RG#iH%4KDRxBoHAf1aAsg!ovfKH&1VHZE>}ap7$x2n#4cxkX}>x> z?btWzf;|Ed-jERlbhewZWdhglBkslVjq7XOZ39O}vFUh_c1+mYw0weyKM{9#!ngV{ z+&+li33L$HJ0a13w|f{@eR1}7C!E?OhTVe$eaC6Pfb=`~4%->V`jlnPd7sAr84`@R z_rROiA7!unE~OmO{=0$p`IgSI1y#M3*o;QXy5k4=X5lEMZDk7xBb_<3N%gH9vGR{yWeZmKTM0Fv8av01d}XyM z88+~%ua1>3Sfb6bv7}ZIWeP6SF{2Kp^FUvGDrmI*-Nb)k5&37pzB$oJkpMH$EOLQN zWVGyOV%wUYMHlr@3`+})AqPOHHyogdpb}J2R%{V9c_XzPF4FAV;}pfB!lKv-G(1l@ zus-IAZmew#uU)fd%?1wH>PKA^3j{NTWQ2<);t8yeaB=+QUr7J|D+2nIaDZf4AbZ47B1 z$!TfvArkA`-sT?yq<@{R&Rba-(n0$97p5Ejdk5@DK7;y%C0z-XOP?j!<>N90x==@5 zONpX&QK-5yK+{_I4Wi*(cXg0oqNM8`Wym<`vl}caILa z5hSpt=Q>B~+iZI$7SEhgY`yMGFOC1DzyO2%?~Te6>Q43D|IFrpD(;tF3G6PLzy1g& zsd{ZSR0 zzN#+ID)Cx{>K|qgn7c3|vM2QU|GAQSsq$9&RseyXYqSz=?c`=AAWhjd%_og|rv9C4 zAEr-Z!n~$L(G+3LM9_?$14;&il z@ek}E&wQJ?N7iP=W@zj13AU^3@K1~lFm8=wlmu3T8;nf`ZxwXCswzkOta$P(hGBhz zVp>bua%Hicb~$K|pI?A!b(8B2vq^syJY`d2x$?>{y@~AU<+$dMWbS=F)olLH{C~)G z@-LKI)Xhfwe{s*+^72Kiwb~<<%1~l(WRR*Xfv}DacP2)#mD&|YSD3Z@ra^M;PJlRJ zV!3uFj_Q1CdY0?_d$7CGNA{@t#VWVn4q*EZH!o&AAp`m<_ZF?De9`7$H{Si>kERYciJXFb267uUPf<_7sJ?URzPV$gkA`mO4Wq##3CoaTH zbc|ub#Vk$C&{N!-f8|0?bDKlerMH z5i#C;5z6ylD7R%yJJQH|SqWDzrCi9xg_wq?NjHOgHj@jT#)T@m(CJ)g78jb$g_zxt z86PulGedK@H|KI8X5VDKc{cZqSu~l?j&RQs7}rlXpTR`tRQvB6Wc|$x(Zl=;wTM&g z->mhg+CRoxs`F*TGvpZLe^rvQ3W(p=D{oakt30mGln={Q@~7oD$fHVy{A-|lhvf(4 z?dkyRdta}9K>Z4Adw=`lt`Ghxv7u}(=Ip)dB4-{*dqvhVhVJ#g#GNZ_5<(_YfJK;4-3DBuYL zsI%l*(z+h%Vq!P|8k4f2@|W~`rRQY0_id7@TC|J@F(~O~#u;o=GsRQAG3{3Aog{1= zGTx#cP)6LT%l}qMYEb#0e7p46R33n_IeQ5c$3QT3d|~BMIHo5?`D)JTV!_62QYj$t z5LfTuz(``SkD)#QYQh$eU6^FQpAscypf@^x=nQW+MT5IiqQMl7L)L|)14~*@eH$+t zd?B$QY=Xj6G-h`CCbt({PDYA#{r`0mhLg|9Uy|14G|nc=CL7>Hn`vnz4=t_SRk^e>rEA^Pd#Gm*z+@7E z&cxyTvMk-|ka$9%aj^GLHZ^cACQ`0ucr^XMYUziduCsp-!0-fVGfb*4zibbJE~Q^w7)-E1NNAsYb40picGp5Cq= z)6~@+AH!IR5 zIt2UUJS*SL*|e{0C}dVMvPWbzC9QVSGfS#v`!+yutwnm+@Wi2&<(I0Kv_aCQ1GIca zI{T{SDcQBVDs7nL(qSZ8*Z;jyl5UhfD?JVzzuof7(ybkw82@7NEITfaWIxG(Q!f zxle%RegT>X1ZW-ewl4=qx)FwSocV*H*rMYCet#%Gd$F5y_4NVOK#gAUBicu zck~P%0H}0rtgfSXI8oEJ+}Mup?H;RIyiRkKFRD*V=?InPi5bEOWu>6y`^M;Xhzq=4!-M zwHH1W7hhGrXeWVPS{sj3N<*@K!qmuPT6U2EPJrYpJ4o_kH@-;?)m3M1KT*EOmo@G* zSxqsc_RLVeAYBO4Kjj|jYtn<#Q}XHZMZo*mEf2^y%5RfDC4UzfAkSe}utsSF($`VU z3EqR(KcqYgWUq78TD3`ysYl@p-0%medjM-RtaI zcxC4Mi?(IHpP6@O-|YJ{zki0B<$hI``wdy{AIWk*i@&@xmCWy-d2yEe@5*vNiyyi< zrJ3KKb5WN2S^NXexgyK^S<*A-Q(4~sVdndDS7y0?OP2eDR+a8BufkUIY~B_Z_Btx0 z?ul~tJ2Kz?MaJ7_*m&EV@ttvg=C?OxzI`{b0u1b4qCa zugKR*>Nz-^`n|{{kUV>`kyQO?^**t1DKy+5NExFwo|wsq^eV^lowpgWGqx7+Ln-SN zl2JI;@W*=l`XDPA8BLg8F-TAXmmXcZh{0_Vn^3pC13kb2rj(mIG4E|V*f*o3eE03y(-8^Do7%aB*$GcXwv zfd+I=msMLV_Iy(NSEab5jLV%ky)Zv*Y|=klTA&x^HA^ekqcF$xZG$`u@)eGPWD*cV zdoRTjg=k0v^@WPP%=k(UlR_pVq!IwE5^<7M4Nq6dsT9}?czoex z(`;!q%lr7ErO*qdCZ3Ye3AXZE9HqdwatCiyG-|dz$UvR#91SRi^X*>V-+7#Hzs+`B zRj>#zEx%j=otWH7yBO35CP$Y7hyyK+ZB*qC#vz?_lniI@AETA{VLU!>K0|OQZ9c|enP2Jqw1i1kNR@;ztm3vulJD`rlUB; zHK!6Ftpl5L5s%Zi3hhqYp0j;`lw%c|N!uQ!>_A)(GMgRhO?h`MuKNiA(MI69m)Qte zZ|a^+Xv3Plg)L~kV^`mjey{Y4v^j3PNB(@R{#(5@`?J!o*`JyI(^URyceCN&|URM#NpjIl%b&o;@jj`7ooyNHdcwNKUnbOTEJ zG^ea8pP|huUsSEF3}uX5pDq?VW>W_oR^*3=S7D6Q4PziKi($XEs=OScoZ6`hq;IfO zSmA!^@=(WEaX7z4cUNauPdwHIze)qeE)Mn~%AVCEl6RgCW8-V^bva!H$4zG&k#3H&D{tn7Jx{eP>Z z?1%N=so%ds326SwW^?H|OJ92GBk(Bs(aYL|GVXawla3j&eXU^Qs;@jfZuDY^!wt|# zm@wJr#nUc*Xm|-SYWw^$dEVruvw?liBpi#E0@x7CpFWsl5^N=mHEY2&&zk2k^EV`g9O$GXeE5c^-B510qr%6pga9W!JbhdDdjhY{IjG%JgmZ zP*THx`xnczSYDf^52k-wII6WiEgAAt9QrbqyzJ^%=v!V$xhQLO|4G6&ek{v(E(K5F zMn#CfkgAn@Dmh6kR{jkCXM^;FgumzH)8upIE4rm7t7-?ds%kHWbKeFiQf9!jK8{?yrn7ur ztyW3Ube+(@Vi9ppJadkXbhw%}MC$76Hrf@q&iIBTmEU`iVj<-0V#LA#p<7zLbwGpW zq5>>a$t@_kT81=UXjEMBwR$^-5+jUdP0#EhL^OE?eWEkCJmvj~0Z3Wj37J)yRih8-;- zZ}W5!8cGR(R=E-q4$?JVr_2AImelj)r!zO$Q+NLzOJLkR86v-U3N6=Q$hnc0Yr#R9 zk`B|>6IMDTp@a2suC;0eq)>HvGrw}n$dZ;JL2S8GWX$8mF+E1+@uHK-=nyeEA@7B^ zY-qW39%Qmewg$t}&RT$B+aB5sU2u#|t}sY#0cJ-e*n{K_H?jVUCk7z;W83^>>Fijs zWlWwiI%@kTgG@UMWu$fL0MBu(sRz0{6WtM71m;;bZ{o{_V+BJ?Di$9tGc#n7X&{iZ z@V-t`1{#1P^+D`okS!YWNixj%7$CDK>%G`lWo78dD;J%SM}7T&rz8(ccfM5Xxwdk0 z*DO-8!62>8xB`ru|$^yv#QGRTV93lMNlZ@sB=! zTZFvv1zOu;d%~X9R$n;c-ntd4h*j>3F2XA*F(eZ-MVa6YzRoa32zlZ4EEF`}t#Vi7 zfJ}~!&;tJ zyAV#eGBiEY)n=Y;@LSWhL6h-v_ZW(tK8SZJ$D{1EDH^EB&nO&i^JLp>X}zAk(uL4l zOl2>~Jb#(qET^67IhyN(nR4djNj(hfVA3Br^5A^IO#bf4=xoWWCx6L8*ajQPhhJ8+ zXEbx2=jXXSVJdaa~4i*QAqh)LV)DS1{ImwI5)XHu%~QZ$l?axD{a|Mcte2z+boENTBqY_HhewL zJ+9yEE}OSC8@K$MqQUkLNb+_&+eUvF5I2UCV|XlNY0f*jzx+@6$o&bc^3fH!+iht# z25VpLmFJ;dW%E{>%XRY4$=v%AyB*k$%=HTxmJD!(aQQy8JBwoiKo)GdPg9RjFvdK3 z##((o0p6wOll-p~`hO5KJO|yswZuZtl%o-J@8ZFt}Gg-!$srNS2RxjMdLJ3 zG){v><1|z>PDg?z+Csr5lVM{kQCxPz)c&`^^iS@T`{ZNtxIBp+|98nBl0PHgDSuD? zsr)PX37~?wlrxm`lx0etvQ=qPB0vJ@RYsKSl$R^7Q{E0AL7!5-tbAMfvGNP$G399> z1DvkTS1(jotD97x+6u2h2h}6+9P~2vHR@YoTkvu93$P*jq53oRcj{l#{-wV$Z-zQg zUv+(M9@_y^`0qgQX>+)yTnQUP*^C#BjPp!-QtjqgRX8OC8 zrPig(x-7FU%grb%fwi248s&=2lm zE}KQV<+|LznxsI(hy4vLJ`+iIx*37FKG)^w?{dmp9PA(uB3X-F=3M1o)5b|#93+OI zMcX#n&NkeTSglOoa3kq`gFjN3F!6`ZG-qVGyoyP((qnT<-qPPNbI?DzmuYw+2jgex z8lJk=+u%s=!JMb$`j$o6Mn|%3oFJ#AiGFlYw?%~0ioV_C>tmHW?&%sK%z!HWjg((6 z{Wbb99G$yr6>gx$zqo|BLvi(1$L;?(R$xEo|pGs;GOJKZyvSYSX&+7R& zkSpu?dTy8(=U3OuHf68t21iGIPjBd}+yDt}O~jA(4vr4%&7AcF#pnRAgO`oBO?Yl= z??$SPrlWZ#_sy2J>)nIA5D+2y_KGEI4~E#TUpP9w{LnEFJ?tnv>NGR*O_%*+_mSVI z$Vg{oLf`)%kN^QNP{b;gh1Ixs@`~AjNTm@wxmd?YwUuzn)H=_K_F6|-r8CT>o{f=J zNIYR|AkzS}XYeqfYcq{Cse}p)IW!~) zdG~6+bhK2yS2MY0*wDoECR?Xwk{MajY9>1ghnYGVz{C>{GezWs9|vpKJJ06vxeO`i z8DfH++OD@pvLd)v>W?xe2>iCz?KN+tZ*=^QTIOtsZ4B3FE_PS4_s30?4AujT%(7pa8PiMnyes zoB^xkSDnh=WO_GT&bhYG=lkxe)mPZI^D{=6nGU`{jihI!G9Fsosr|d9-4gzeNUxSY zF8x?~LY^yE%RV_FC*^ko3;YN2pOv$el}bQ4ro2JsBTc3)wp_Gy-mGS zeUu;Y&pElcM5w4tulgk{$ zFcb7eUB5o-iW%!lT{^BoBh6%sksyH`t9i_SCmK#6}BxLi8Z-?cmBzh zCDK+qwYSL=gjX5pllempuHVl)xvE53ZGQoJ7QU#@_2?NVt4k!p=OH}+)W*b!>#;>A zYf=Sh6c0uBA`V%8WK`5B_}4$#qn- zY&lMKBd)(JI(adrPk-cvS}gYPV6r)Ac=2{Ub2pqQwBBdl#*N7SHv8nJ5^1rSj=>?e&Sc_+7) zNE?-&c;`^SAM^*>0x`C$AB*@e^SS;}b#hyY6jAJ|h0vYywzOf?)yvV->W?-0TYRqP zmY&>RA~h>xt=QfIa#28cf#CzdBJHL&A%+N0NL*9e3YT-2n9^Z!t`}|XoAHC}4Zmqrog8T} z`a7*<@*p(fSaLNCu1piode_-n^G*7C#}I2vx|4OrJXG^*w(JQr^HVb!H;NxKG)M8X zW|?muobotZ9vDAX`fmKvzCgCbGcq&9&6C~c7l5xK#~09h5~~N#H}xB`e*q`!j9-AC zUs@l)No;1vH`#@?zh0pr&1GxIJF?qx<#H0lZy(AeS!T)H|n2Kw7E>6nMVwibp-oDWu*QoD;T% zBT(mzHF_{!HI)1p`BF^11waaK*azGj^#_Dt=e(ODQST?rJL@6SGgW^~XnKyDv9@5; z-=aRiN1@M`)E^PRpGAQ2H0%ptNyZQ$)F1LR5Z?J4+e=QIuVOZ;X9*}zZ>*r070X3jIf!&M*00ekPAp>1~quue2;lZw&9&e<%J+`L-#RBus z)!ML^-|Jz!sj^2ENWe50iY1zq`WU&bP86@^g$uOigG+KP4A z)9KWABQ%R>b(7E25c4(@js+>4vBA8i$Fw6b`wphf7-8r%-a&>{v)qWfU(%MASC`Mr z`wNj_FtsoStYHK?$k$y>m*p;2_g=f443+fx|4~VeC|Aml%gd#s*;;-v??Xh_2a7#6 zeS*0Jv)HpHU3zbwwRSi(Mn_WXhpp+eCSw7tGh{Q^^aaE^$9#z=GUiFzj>*HbrLFpe z52ip{NvdcinOo=PoANE$Q_k_tINe*DCHWksk&EM#SHgiN%fvd}JEb9p$T!XBJJM|M zu>?@Y9V2cnKG{24YST+_!NSTmz66~MC9|32o3e`?DYJd0tZ}&0t3@?$Lt}mFtW3;| zR!#QIl2)>eLjFuz1GY4fs3qSlZO)!0Vy9Q^^eoh8sTxFMBzA_nR*K093DUkX`C54b zh(E8AUoXE!ey99CXaRmg{;d2Z`D^mGAqBh_2tW_Zzk@#DQ}VNlqLeGAD|3}|VKa0Q zyoc8*8TLCF^*pRUma8@DP3kM*d+<%_+tv4|A5=f4ej1vC zcfu3l_u+y3e)SjXZ`8-tKdaB=_%ADcsamO&J<5)cvE$?H_y=};f*t?Jj!&}VpV;xw z?D!XUe2N|a%8pO7haG#_ z@k(|)%#MBR*w2o%>+Y%?B+ivX?0AG76YMz5jw9?i%8p0baf}_0v*QVNyow#KX2)yT z@mhAgjvcROM~xlF*)hqEPz`-T0@#-XyssX42z|iy@=fRgZj;}R_Wu$2(`fy70sHG- z`62l?X!%bo659Q2=n@67~*e!?wVU_Pqvs2$#TvSgX2M-LLkjL+ThL4mYW{Tn#0aN zbj@Ywdt7I+^N(C-v-6K#^Vs=b*E#I`6W4rp{;BI+cD~QGfSvDmoyX1(xE8YWgRb-0 z`Dd<0?EH|+&CWk}EoSFmxGrGlU%HmC^TVzS+4)zlrR@BO>mqjkwQCtW|HiePoqy}9 zV&~tvRA=cip8*!gd+jqLo4YZE*F-L;vWpLK0v=YP1ivh#DUZS4HK zYdf9GB-bVEEW14Hthjctv+DA)bBU{gol9Llc6PZM*}2TMlbvU{n%H@!%g@fIxh`er zN>?*GpYCd5=UJ`*JI{6n+4&4th@H=LwX*XZ*DiLR>k6~;S*{2>pY4jW^N{O9?0m%a zVRlZqK7yt(yKLA+p3}<9MqD4G`G1M@K}mT=sg)1o;$Qd&y@a7z(z1RTz!{?pE0=8q zZU#;MjV-Etr&WP8otG4vCZ=op&J>nqiNQWMT#MV|vFliH4^mhQ4sv6vg(bw`6iWzh z4=&%V?3j9nXilaxE+IBdF;6rp&0P2<2Qo;$ja3uB*O+fMJlV6sGtQWg^;z=4lNuQr zS0?+R&fHIGBID}~b!Pg`Y$G+_q{~k`(r)YnVpEnBD~RzbI>T{9bdVsHm}VK>PH9DW z2mAXw2fB5oGP+O74BW~AyRD=@#q_s0(zeI*O?)_8;UI*rT>%f45fVnn{#x+HtH zc*YrfLFfLT(KGX;Mn-7=uS7W^VV(XXLi~8?H~&*PcxjYCE~pj}Xqo2PdW_wJnx4`P z2g~NQn>O-n2h5I`5s6~Q5$ZN=jg5rN^lj0Ub(PJFc)PJzu?Nl_@{Y{&O^r+P5FH)JRA&bKP!dM_aJPZI2rj)EcN51b2{tTBS z^|)jfQ#eS)V1Ke{(`d<@8a0-Y3|Td1JyxV8XE4QwjJ%BG_!~;jT&cEaW9rC8$!v3X z-`;guU_Yhjo0qA8h=OD|e~qs(tFGUbOo3 zQjO@+vW2z#08MkWGto<^BBNu`!J#lYATf-Hrt6SNKbnBhLSVI;0LKhgV`S%gG;X%3 z+G#ma>jSHj^QL1}mouxm9mwEy_Eha4$5);{9LaeWp|4K^sb&JM0H!7Yh1?EOca5#B z=_;EYEL&LLX=iT2<50iAJcCWg9iZ+EPp76!xpr6C!i^j|1``zTHn~#QG;J~3I8Nlm zaoW5;0rsFhivJ6gFQv07NH34Z!`ItIGu2tqj>+i$z zx8$p&_v3cXzx`$Nw^CiveY1H|y38&9U^6;QR&PiLdAcu}y}ndvuCn<%ud57YjA3Xj z2&iY8nz5*aqe%(y_~hF|W#zyuTw((4=|d6I=$=gD=Ty4C4bD^u<`0K9!-)2+0^-k7f8Yj8n?gAlC$%mGCbl|5K$+ za5Df9piMb9cf2^hWbznnd3E{e<%TUUlM2~vFY-;1l1K?Z+y?Zv{)z3@8a8oiFn&y* zP8KFw<%B&9q#^L6Ed zETh8UkTn`$@F`$>H`GcaU_KkUgF{9?KE8eOc;=z7kg0n~Q^ri&Sz4Jd+EB>v*S{b` zp*;si5o$*!$Kb0~uP?wiTWZ!9-5xmasqAeT3r}Ze6EGXJ#j687$;9xW?2{fHAdNu!fo$CcMefmn&&yZ zY-C?+o4f|7d@NTQ0Ex&AR%VlI;hd~9a*}c-l$kx#-X4aC1pazqj{={)WVSt$80{J% z!HIjz7UovQrp%F2l+gR;Y6wxzMNCj8}20GHdi1+j@T5Ei6f9 zDV#rf)oj?AFdd&gx}k}&KoFL+sPE5M7B<<9RU$>}6FKcLGVfD!({Nwl; z{z{GWfzG~dWu08;02k`wLfu>_&V>$gA=1k}-N?Hmh9U0FBU~uKg@#dJ?=!iKAY}0z zZyhy(a6I|$zTGu-a^3%}&TO_|)MLyX~80lm9^Cg>a1I#vlR+9_{lM> ze#aAuz|lK_QPBTkt%RajR1sT{>*C!R1#srbxMaC|Dd4W$Tj&A^5cs#c+2WW;Vbz2>Kf|Z^w?iki!mRw-QJbP^!+h%5Bii{oAWIba( zfsCbq_+n#`cz@?m&tM`>uzRB;@v)}CzV3L!e9p8A`DfZpO{$Rk%hy$Ca?X{db7Zi; z7f3dqXea;|!ko`(5}{4w_I7m4n}AFAF8DTsi*VqzMvo80-K<(s`#()uBEhzPxAHgT zy|COr4K}}n@&(d&fC;n&kN1qnN~9y9{A-Q8di)+}MJ58BiNkg6<85G`vs-AZqc(D`CpRPW=J6y_=W z_CKg3)W?(?ly_o<@HLYLRM!EWG3r>P4R>YIY0R{6gPTFr?+ zRQl1ys?T7D#ThGhkOVUIuP3rp`Z9+F3E zohiK#+CvZDo%!KzPfMFm`tNhpdS$4~=w{eC*x4VK-gBn93=dMDhTVEECEL73PuT7E z%~7l9HtkEIg0Oq<*V!8P*qJ@}z!~aNWvF|He`gG(>-Pku|2I>ek2?g#Cw-88BV4yc zeA53A#NJSMi$5BL1Etj4A7aVs4n$(n5JSm}NFUZ2v|@T9ePp%@JlSsc(Y&DspY&1s z(5V|up%B3R=ddU93L~we4u} zm5vkc9914AY%rd%8mkGdIS5E#BDFo`Mf~hBmcss zH=eF8Vy`#CKXtV9Wkyz8LcyJ-HyH&L@a)wcYnR?^Yg45!HWj4330@$KEWx_Eh_~x`k8i|5W=QY531;|Fa?ixY5YX#}96QsLdkZxR%E-6Si zAxL+FAl;4n`hQS@pYO|574!La;d?t=cLa`gGCku`o|BKNXJ*^x_IGjG|bsd zL#)9Q^;|N3B^E-9bLB1hpxqs-@KQ`2}al2er{3qCoVno(2Bcn@%ttMg%H zI)NFk=^nMCzTND?3`o)by~WNYj?_gCNbhTt=|4sOiDNQ(sm! zHH^nmtT~qnw|0f*zYj9Y5Hb)Q?*?uBYQP!D$`u0$WcZY>{6m361v0 zQ~LDL@dJgX6f9}2-qjQD9_?cQLL>3$cxQ3g`n&tsl3kaXwT$lv+l>Vl08*>7qxN4Z z)k?tH>sQw(j{~7|k8+OuMfrqWE&WJ3fk*tWaeNH%=UmUN@2U&6Q_HEw*0%QXV_+m8 zBjFhBfIxnaCk(*lP@vTl_3!Xw0oxuOKPp!CI&W{24`TktP&fvw3|xhF`@&eF?YVS( z6l?`Vfp&pD)^d%IA~ft69|5za`F}_|v)$vvU=k2!(%RaBl_>2wVBHO@ZUFH&!~kI3 zx@A03BK0rKm9b$^W`O=)I)0=?x+>>>9(I@U&i>ee(Srx$iJBfBprdK$_)v*-Eax7H z$>Rc@u)IaTs(-+M#~Y?jY5VvfaU37$2^L(kOC)k>OHQ8{{A`-iHw@XL&C_V%Y}J#6ZT@-zx8ro{>I)+j;yhPpatL z_T}2QIwuA}I6#Xw0hp;FM&nQmhTc$^_Kj2G%}5{#59K1eQ~G#GQdB0VCXsUtyU@O* zjA?StJ*hs!)_Jjc_U=#%22LmR!bmhYwRo zaBuPXT3g0XfV;r7U9TmnX)|_EBGJo2L0{weaj+|N7LG+{?&Ck-6;OX;?{nsbP>}9_1nE8`NcU4gy88s_?iZwcK#=Z1 zef-}e!Mdkibpf@1pHd-zRK84>f&a6IZ}WMCLdnz7KMCk-=-pi#_9s0p*g_3rh=t=g z_&RM%R)S-*X!jgxYbCKC>*}FFm0Ij#0kk`L8u$vYpbfqa?U+|^jHAh!U@Ra2(~E!x zCvymokPAIuEEH^MZ%fW7q#Q`g5YiHTS={8`*+laK*xp4#$qMil{$lzHH|*O96^n2? z+l$_jEC)wn0S9Ih!DwSwvJ6ZPiGFryRmSKOQ4V$eg_s9gCTvJ1d8-%qv3cK`bRiZ2 zsiOX^SS&Qkb1X{>WNE5{8WN*j$r7;i3YSF)+Aq$Wi;n-2w0@I%j06JcdGtSrbRZ}F z|6d69TcUIi3&!^=LApl->3%Ip_ZvaF-wM+GPLS>~LAu8U>HZ){_kxFE0K289r1wet@)+^cU%fOrAKjI(w4CMu`ltdeyGV2L z9555mdbB1Kt)Ym2Z_F1C2Sb-9=YgBBtb&rpW)q=SEc8fUP!}ykd@Wc5Vp7qXJRAIl z#}nco^zCW!?*KYA{L_X#!RXH9Szx(ZwDTvHfwm}|*G0m~x!@$AC2bXDfX$y$&Us@@ z(Jwg%Omh}mSfXudy{7(hFygeK!e8@z)lAfh+qa3 zjzWKs65pIW1FQ?GT;5PD9BKm|HzpLx+2AHDo}e$4j_n=?$oT)1V810w_gBIAo))D0n;_jYf^>fuqWg7K9I(v|At|K+s)4=K;W{%4PJI(GjD^X~6brCxqvEGF(TuQaxF&HpK`hCeI;GFYtV{vZuhp`H>boQM?4dcE$c>%cR zY#Wl9d!}RulZ(-b3z+{{qa-E+ULQtYFH>}ANxH#MSgcH=f-V7v8UWV8jmbq|CoEPr z*oCoKb3Paem=f7C>i0Ic(6XHb>fz)<@GEG}qHq3$qW;E|#zUkvc^;S+G)rSlq0GXB z43IBfmRtaqIoBNLCKweU+l(OPlYl46{Ck-DD7%v9g1PYepO{1Z(-w}9NG&xPr1oDT zZI#q>mAhf_w>7W!t(~ULAS=qP75zCYHJE_tJzWVyXv7?_n5eO1%qqqk4#&IV0Kqp< zPg6Fk1bjqhtLzLP&CHAurmCx!)>Ta?T15rYv$EpG%X6;8Src@XJM(V^5&*B;a4GLd zDKo9Dt#TVlV`n&FCdXNBckjXFZj*GYJDx~opLuWaHQ+V-FI(hY39>n&I^tVnn({LK zc4{-8>5~XkU`n0aeT|)gb)7BQY$q=NMAzn$=%H@1F4B`_r6fxVuhC7F@%>jVtzWft zZB>I-PL*Q&X-M#q?`A{yNCF}H|nZZ z)}rnv;v=Jpfz9r&&f$257dEkPIbW+xC9cw>9)&lxZN=mkRo!&E18udDD^qi@) z(Q{_&fnJb~6Fs}tuUkp8#v35(nQbmhi(?5UMz&r)Q+MgkR!FucJ5_(l(we2O%+edA zb(YlrE2K9_>J92e%J-B*%3S%A@*dfRTmQ^opEj>t>Mh?~;mx_ZTC;FWal(+A>9c$t zZ^Eek)R_cF`wzqup@Zb8YFI}>2x@0j3#`fm=E9O-nIk#-#>?H+>)ciQw6loevhsD6 zxsE{@7&gMAE2Vq~x;BDrVA!CjejVCeJ-G#OXI9Xe*tcqPh<$ZorIBi$C=X1Q;@X+S za*rrW2*jZM6AVR-om-m9?rQVH>0K-Up zdL1@Yu3>`@wf{2dhmv}=dO9rn&zCN4;DEz@l$y0wG%=Z9z9i>)k2Q_eL1t|AZJ)N1xGgPT zFT~9Pu>ohp&eXcOPg_CU>&vTh=59^>EIb_(JIA_3NIF+&RWt*vDzD9%J3j;D+0hh` zzq40cPRU>+uo$ecDBZ6nq*Mk_C@M+=sQL z`gqbT&@=J)OxY(pM!#eBh*xPB>ap%CIMyr^AFgN7dp$Gu9&L#p`)1+Mivz5(#!%Kn zqy`Cd{GSO$AN3vTcI6ReQduECC{N1Ur6-{OTbTY&b8vmPtK*ER>Te`+g3c_S^^H9OC}T)uNA19Lv(=^YP~vC{TuD>IG!WB(hz8(4U)UeQ zk|t96YC`^_sXY}GRhDqLt(96G-~k)Mx|F;06$UYryjk~eHE`9~{nFPM_;UJgZOSZ7 zhubK9m4TJUJuJP2q3luo3;}>pIZ9t?fY0goc7{WHqD`ffMr1Hi3r9;&8ZWU7F*~zB zMEcwswToqk-6d|ZDKT56+sXet<=-Nhq9mlxGn_wq9S+DyR49Fc{N57-y=?UL0vS?B zUtFYm=?h?E$=qa$4l>8(tf$;JUtOPiPSc6hBbuLg%v0;>3B+T7-J^{K9Yo@C$2W~% zahkeN9vU4<#1GZiwJlS3DMJj)lL&iY>fep84=~!1!9?ewc z%rFM6#f@~wx#~ulRWlfhHbVf|77TRwE^cN#}2-97ePNdUqV%pzHy-%&@*NxDy2`$geAIM{J^R9f2#dMWN@ne zkH-Ha+ds+wW=K_%`aZQmdAYJx{=(cDZ}a*qSx92i;Z8+FIhito$rN?j}-g z5c_dat)95e7uwm=<#4nde5B46iW^YZGL9(~n`Bv?kHKfhM*3g|=4Hd)6@~yd7Fk3Nj zh|4z77I(i*tEM;>2v$2Lg-)w?$N{zg)1-RB|LTDK&nJ~GXaIawJ}NJf?v|2xkp2rK zH)GA4^P-7Y^ zun}r#Nv;RWoTU&`vE0!XX>UnhTr_r`hQ^lUx+1dkg_3K*E@#W)sWR(nA%K|nK(Zbj zi&6tUI|1n)P1b>5&bBpErV!TDP*d>i2EO{PWG&d{tgkyATYnH5yn*DJqGjC+>t~w( z=ZgQE-W6DP^07a#GAe&wknRh4(V24v`R9Ukzs!ry?A+ykLAqN7={_t-_Ypz5j|$R# zOpxy5f^?q{r2C{G-KPZU{#TIh(}HxL(Z~ObY5d=(o~GQc3_=I!yYiU446?r)rHic= zZodj7cNVJ`3WlIw6G%1|k6(jtcQEM#zntxCtPaUG{Yp(yf+0AriUgAlMPnFf1Zr3$ z=>@}_jYOwRApp&yp%6KZ2qbqDs~r8227fr1^b{-G{s_d;!Ap~ufZ@7arP)(u+aC%f zw-+t9L2N*@B)5TIQD$YBQ-s6Gtzeh)ZqAf>4FaoVCxMs*l3R+FXLxAoUJcc&oTR|V<5CP?>n zLAtvH>AoRI_f38Lua?yRQ7>1^l~2RB*IDu%^02%}`aXODS96WLH5ozYQcxd!^um*uPB2x9Nv*5 z2VlbllK$c)5@rsq$tLhC(x*oI^S1@4{m+EUKlQ`d$)BlwUg=ZLlkbub$>+lR2iyV{ z>9;FMo<4JKM>f$m?Hr{1r2!Ks!Yrcwz;N;I=tz>c&-PsBk`A7sV55I0f$C9D6lP%m zJRa<&NkPA#v>~DU?v42yp}Rl^c~>OK@8{)WX|*#m6d{0)7h(uGeww-Z8+Ikh52#=P z8_@sQzGgUsXkb7JLiNqdAE-608|u!e-V;ocKhVOu6;3GLoZJJ3g=v`S%e){kbz73; z5ws{n$6l;K!%6Z1T9h7T4_QAkHHKi4oPQQpgsFvX8?ZIKP5S)*1_}FppO^ju4WPLE zR{0*KQt>I*U^n0~bt&cruT#INekEH^&|IR;QyK*4AKzwl1rcxRXgiRD(=n@d%HI); z@4JF@-xH+!z98NI3DW&Qkj~~9ZhGf$w(sym!T9bGr2CN|-H!$7?iHl_$y)Vr&R|+h z^{1vs9P**`Q1)-&fCrSAb8bcdORg ze~Wq*rLA7=&6vb&_sJ<#M`Um`(G~A796pa=GZ`sAm_Lo;6`*Mlpz-BXs)iFBIpHtS z=431$dodU)3?1Hv=8kAJGad6bZ&*{;!JZ8F*F=;{_1<-wK5lAG{p1R#rbqD?kympO zd9@UgSD=Wzf<@$YOA&d!s))QkTB+VDm6QLEjmq8131tCLK>jMd8#gY^Hr{8uzen3n z8Vc*m7v-!4!B5GZimFtr*}Yb68*yHmhk6jt*-!;B&an}#T-!=KV-=yCbxj;RNne?% zeomp6OIeuW@p7g&q7kR`)cw-J?*0uCI%Ypn>&+b4a*gruoLqp3zXf)8&7w$p6ofdXDlPWlUKn ze-GaOmO}n_wY19K+5<^)xS6xeg)dY~j~yD;o@fYQ`MZ+vzA3t9wfJ#9)x$}+;mm#2 zl`W0flY~&f5IlsFaK&E}AN=l+o?Ehgbz&-2dOO4Ok6~r4FIosf0_i()sY+mZvolq zG`wM*;)Bi2t|a_yiuCMh>~*DlN^&#_&zr)fY%dO-r&63nspRc(s2`8P$ za_-zXho!VA&gOr%HF+4$KXaB)It&8LlhmW?ENK7i zS0wqh@zkJeN!9WHOqWBQnqWjL*w941dRBcr*}2Bz7)w#{92g|?HTT3>in ztoz|3s6_;awML3ySK$$)cOrajb%?E3^HFSp!eiUvuu9|Osz+RxYYi0Fx+25{+c=*8 z8t`w|yu`mM550AJEimo$h%;w10qECOZ3j)km*jy?VfDQ>OZXvxZKjY@x-}0$C9KW^ zqQcS2I9pfPFEY3U=S|I}T|)8fDsRtu^^g`1I*O_6DN_+o^A^ef&X?XP;qNojPo%%f z=g1e!ZSoK>06vCwz@zftmHEmgu>2iU-U;o1A7e-0bhTRDq3&0&Q*TkHWv z(Vl=lBUMNU`O9Kz=j7ayZMyZJ53mGEa|AtgLmS|!88jWkVe>UeKO&P({xP-|gXnst zACoCE|0vQHX~pmcx_ilDlRad9L}KKgi=YOKXxSus;5>D!{t`@jy-n~91(aD>zLNES zWYBn+DNjRWs7&mcP(}L5LUpS$(w~6i^Z@z9@-}&bo?2h;KK9Wq zCi)Cty5FsO?bL8P;)U~(82q}nkjHlEfhx6asu!#n9wd8eTSA}&2jkYCu`gi7%kEl4 z4>^d~myv$%NEN#qW3yp~sxJM)!Bv03FgKTeIagh2PYOKLwn`5>iji(w3Heouqi*VN zaKhq+mAUlDEOm*D%mqXGcRVr=#>faG;%FOSu&`2wKbhUW!~%7*<9-|5JCt8Q_y41E zNO~AIUg%$s)=C&h8!NWvEP$u6tEPvJ5MD63j|mLI-)Qo5%do7L^08g4kPI7O*y@3H6m)fMUpJabSzVxgba(LRcWl*20R` zJ=!H&3)$q(Dj(0?c-op{50CW3-NU^nfXm)H;665(=pL?e4<2;0+asM_huxiheLw;k ziFdn42HEZ2?!LI2eQ38k96tyw!_kcAln3HnBXmC6+YPFNg9-O>>?$)9NEYgJ z50CaTS)BW5XWwYN=5no>Rv@*4D-edO9u3iu9%P#V+$w}wZeL3LR~N{irbTIs9PBf6 zXntZ}pGW1jFQ9Z;hp|tUUSak1e@s%}psrOur(7oA58L0l(nq9NQ96L2)=sT_Q6764 zRx4-oRFZtM3%xCOYI_+pS{|isF|?-Z=A=7Qk;k+>6vz4k<4Dc<(_+BNwM*MgF>Eg| z2CP^}&K!o@`LtM2Gq2LxC>Bq}K7lTlTg90ZTKXE(Y%kFUB5faDp+zb7)fKs82U}l? zi=86nZs=9vs1~6Jym@Tl+9KdKc)0vcyJ5Ru3sc0k73)OGm5Z2Vjk}}g?Vz@cqF7&% zI|86RZy5$hU(j(=kI0n&y%Eqz-%zfQeWo#FWM!%_y$zC-!+Y*7S_BU(D?&C{JZbFF=N!?l zAogu}Oic`hCfoOLuH?;@lNMz);_T5br#QXEjWazee5K2^4vH$DVK_tfbooVE1nb;Y z{n|d_A1bVpaYB~tWw+5?)vaAd@og<)d}-N&V+Otb4@&B7>LzFa9adcOZSr#I8`5A= z#(yW1J=$UF*S6-NB$Vpch7SYf97@_TAh$)Z*&D+q@D5-2g59-iYU*lgFX+&&B+k|4 z8*`SZnw-hQoGE3aQgSGKU?$wJ^^&aFU$JCyu6wuEJeX}2`F4{}5`YFmX@$gdq+AjK zQZ|NeLnEV32W2K#W{0&Nif?T7SuU6BWk0NcZh{Z+Z_2+`N|kxa zN@WMEf^JprQ0`U!rp{7Vsyo#^&=xugoq_K``u`5~)9Me@ht((46>7UYg4KC@&;#`z zPspy4H#GX!;ArNE<}Q5tbfHe<4UN zB3ld&kF%WxE(+ST!1jMjyYz=t>TL0|hdKo26KAN)=o{#p9P|aoQePmogkfLh_}OYL zy@fgj%|~Duw8RK@?L?KjCv`hb=*$<~RTrtdrg@VRdo>}S>hXYKj7mLKp$us@_5N_? z9`WyJ@kxI?OI^*l8rvu=vDZ*>jrK($E5aU`A3}xj=m7Og-a*)k0BrP0`ilAs!NHN< zgU6$thvU+p7C;YnRQH}1hz}0~opg9lXYWYwz#-|+wr7zcXsir-j&}C;k=Bp&7n0+r z=m>rFS_0*S+q!sv=TOgJB91h$h^41=CaH88o~S4|Ed7!4vnN|NdB)sX-)JFCVEGXBT>@dPqlwmUov$s zr`rGFQ|TI<|y-B^(Ic+}`K2-wwmB3c@nrRK73_CD5`JjqeaP zznsh5S~@Ca`Itx+fv#LIz6wFQ8G>{(1?f%`q^lI9J6(`&mLT11LAo;p>CP0SnQShv5PA3-ACu5BR@V%4Y));3_;YexV5&deS*VxL9qK2>{s6 zwyxW6YV&TNkic<~pm>X*gm)*e1BZYhhs**wCWzRTytV+Pa64lrd1E~HCa(d{T}4PN zZBQ}cp&{4_C9ei+(Qm^gH^n-Tyb2rzOuf>?J-QGlnmhr1IV0>kYL7jIDLWC}LL`tp zUZiB|Y%fcWfnQq@zLCC3%6+9>$zxzHYH7fgL5t55W>sKY@+f#N6islD+5em-t(Tz5 zyIU=RXP+TuzWg2Ff1W4(0B(WS8_nNw-Z@c;ctuTfbfpBnW&|fr11C|dA)OOfCw5NE zEI4U8!}f_8;1m%oTu7+kuLuh4kQ$N+AaqD{0UHEpFfN>^0PmblL>vu*6ozAsaAd?Z zYR!El|3o>M){7>XV;Y?(1254Qn>F8_2^ZKd5lkZFo$&b+m?#Ag(axzQvXpVkwq@cRFwEJ$ z(J?6688Z7}-^4tyTPZl!SnL85XM>OEc%$>7T|b!N!Xl%gVeiCQ;3v8gF!(V8DRbyg zb?3V#=7P2895XZP(8L_@6dfKNJlTh7nm7|21?=?M>Vo6gHgN`6iTLI*L*x zsVfEPRteHo3)0mH(ybPxTO&wUD@a!-NLMdNw^opDogm%Cf^_Qz={C^#KU2Db{Qt$( zIm&01%an5Ylkz_4dFeyAUEnV;aUpss(UCJ9wjwyOq<~(T=f@Of+b1pnL(wI^lOaDO z@0nN(-XX#1M;6|!^KYGSgLBR}(2hYbBj?b>BCr%4*B@Q~yL zDnYvJZ}-GP@E2VY^C{*8NTG@IidGal<4YzMfTO75C{yBVn>ZIN3Y+I}bL~_q>hph( z1RMTV&D&IRjTa8Zb*47K)sd1vJ(Bjhh?VeZ;MxsqU>S;D`rOdsjRP7HT7}jopt};K;IUdfrwElI|b=B z3DRvAq}w7$w^fjCn;_kGLApx>={$mTI|S((H>t;RUiWc$T=I}O>7$mi%=DPt2GpP2 zB19Dsq6#YVSFr!TAH#gf-Ey=1GWj3U-=+U2?N_!bH$xwAk$R>2N%czUn2rQm@|(sI zty1aU)G;ba>d&{S*G*Tbl2m%ONu%TR5BGE?;vEMQ@pxinaJYjEyE{gzd*Yqlv91Gk zb!%#4UEPPx=ej#)z*mQn#QTZ|eOysaIVc`K@EyOQIA6CNU-yCH zusR4{J|ywe?=n`7lUQaZb^-f0w&vp z;mWfF97~Gpt_gA|F1jnhxTe;Ky5S^r0GgX8$g6lk)z8Lr*93VKFGdR4qJSxUHBXRN z@nWQqct$74nYifu-(H4H8^G9dqxt{oa)l&U$R1ez-6=n5{-M~~nl7?SH4uq08Su8W0S{9je?6^!GB))!PwW)yO^@yxjgQ9L1`_c@sQd8* z3;HJ-!A(F@PUq(7?v4(I8NdjefHlm}LrI`u`{4nVCPc#&Tm*-OA2W65j2aAcx|@vkEQ0f0x>SnY2ez-==O+eyUupEX2Hj zPcChK%6G=J1mPQd%bP269UFOk<0)*nsk4~k@%T>d2w~R6%9D|tBe#7@X5pTL8R@Nty|pyCUReN5nj!pwzasoY+)xLXbckj&E-X4Psjl# z_ce&5Dy9t(cW;5*Ig|x6hI&1Q{$j+y0X>*8)afzw6(a@?Yr>3SEyY0Xznu2}->j~{ z>VK{L6}d_JR^dDUdhc+hc7nQrb$PgAa&!YG+JS{-z}kO?`zN&H6q&C)kaKO#78zkv za@Y%Xe5C2m$F#8mJ3KQ-Y0RgIdq6uzQEx2w6q;`ikAjPpd!otOQ39u_uQ-x30G@$C zngJ9eGu{UEW^Ag~)Hwk74(98@?wxEv8!a@~jJ*TOL(g@lCj;6@Q6hBUir6A_JUO5Z zQ-t}z+Bxbo!#}a$O;}Wpd({42672upsMaa(R(48nMtb7LTU)EGR&8swRcjZ!Xls|x?$+8`yD$H9 z&VBnVnPevZ+wUWR_i~qa&bj-&=bq)-T)?{__w?#C5Icc!9S&^i9q0&-TxD7};|Arf zw%N{&!PEr?0>R!+4hCs9S_rFLWrq%)#8U7o`(ZqVaJf*j#%i|2YcJh|g!FbJbaKMC zc(c8!wE^bnxCF|PDHcYyFs8Fe(|aVKV&bUdp*ayR(inFFjeYKpT!Vdesde=v=OBHb zz<#O^N2WziScMbTwG)_c%r*s%$b)MO*%*-fp_lG6^ifzP`dHoMqu4d=id>CFoxF>X zBQE6M)FJzZ(?R7mM|MT7N)Jtpu^&Fup!Fb~1t1*%)8KLse0*OB_CLGD>Fgfn5Pm7V z+35QZr-c2{Y3WT!NA$?OfiM-^6z7Y=&D@B!#JX&7D!*M*$`qs6um1A(eDMs*m3t%|T>o3^ObO07c66 zNHDxJnvKAhSXZW8MaK1pN}}u1h>HjJMY9m}N^5nRpgTrd2g1F5D(L`Tj@l8G5XIsN zZ1>|+-!Wo@J`@!Z@FuG>9oikTp>u$Zd?Vocs#s!^dZG+bR!_hjqp2+VIZW3gvC+u? zUn+b`fPYU5KN9}V3fT%)$J$sQI{{q453?_@XV^>Zb#bnEiMT`T5l?`fppT08gQw76 zNLG*!xJ2?vebUX+UD5;6m%vl_&!vw@Uz2_gU<;%rXpSu2%q#q}P+BVL=Xl{?XcOhC(RM`G)VF|@BoJv_F(n3yju=84oHnS`EVl;I$EP?iN1 zqDI0th-FhH=td;Vp|Z&_`hm|ZR0VPhzHr1cE4uU{JUGX(Ts4z2!^0%Yrm1*6fzWV& zfK5l2O!O5bJBEh(df`d}x+H@2bsS(b(D#p$?(2cAQ&$66>F@J~2ZLazr)3bFuLXiE zPbC(>pl!Y8;V>DSV>8u)d51$ofq^cTuU3d01C_`MsIJLcC_wN8`UX3?8V9=qtdN%j zjVQ~Y!I2i5HBBmJN5OJkpsx)x9CHqO_&p3?rP*vG=$N*UI{N}0!7aVv5SxRh_2Q*$ z4G#9Zy&g6f&Ex4a(0-9!fQ=p#jfL#(WJN_%r9Kg+RYEq;6c0t9_+s=0qyr|$DG)73k7EY6j#ADRzHtYoSryI=uu|>0_W#Td5unz`D_*BD6sA3E| zAU?jB{rvcsO*Eb#|L4cQZtD2IGX8P@pDVZp>HkTq;QU|1o@Ynd4B>+iHL;&P(b;^1 zU7qqbN!wtXr*hNG?ho&e&cYqhG8*=?u<@H#A%+)`0h`|#Dh5gEkd&(-70=f z>|(!%UH=>iPWC6_h|bRiQZLJmY)e_+DPWLi(d~AOJEUVYx>{g6so0c98}st^35@7# zv$y=6VuF4ZFm;FlwgPx*ODiylZmz1Uh^f33n0HITSA}X2zqC7AjMZH^0apUX?iO1F zto7K~!_j$!D7P+U)@H)Gl6RjvBC^A>Uu} zq^{@%h;s5Avlx_dkwt2wbFuF^b0gjbsopv#tWUM}Z?mR0-0+}iO2D8#r6MP!2kcX_;zs%yAAvRPjvMcgvgBOg~+6>$ql94naxaE zIJJ-^Sk94khg|(b;gMtd!?+xm0-H9nKDsy;=yBvms#Bhck`tuw)64A!T6KJ41HFcO z13nt$(YVS!)aCQEx?u8&nSdgtQ9IJUHaC*`rAI2XPljqv?{f0vM-wK@C7g6Vp|nOz zaO1aZ0*p7^#!r7v)&K1eH%1pB+!E{Jlvi6FTs#@$aaei#!>*_e;T2hnCkqc@`NKWY zg*ZGX&z#c@Pvtmo8l6h?zUTr(HThkl4wVZq{;Upgoo>t8Q)UG7NoAZoY3WfU8$c53RNOw(c zWO`=n+SK$^|KrkyJF|GTyCHfJQdyT9N!>qQ^4e_*91AxD1`dRKwv2=WAp^CT*2q^T zU6!Q8!$uP{HFkj9Y8?u)f~7_uNN;Vz4OnDabV<6mndXIZ>u_J6fn;|GqsAc-so~=v zw_lN@9Cww7OvOh432z#StIDwT;z^Rwx93LYW@uVPYR&Uy4B6%k&C>g&hoonuUr6(%8oYam-NmyDWA7mNB*m6oDAk!hGR?;9qFA`JPRB;e2ZX6X zcO<};u8`VH#L7Dcb01+Bqq`R~H zpsS{s@8wa+R>o3BGn+c8uvM{bVw(Hd>e=8imPFOX5sGdi*MBJ}!O$Dn{q%-oJH833UN#quufqw>c%RqxX6H?REc=J);%e6 z-{PGF6YL@47c;>=;_7Gxl2T`Fo(fXT#g8EZ&j01u@0S9LCFL^=^-yEKkJIDh^>z9( zVc(YZf5uS$cM)&^o7hi4^6vs+Y^q0p0{9Ury4ebqvod#Na&@EbcnsBp+pgHk0Y)~} z4*2NskSAPa#Fu)bmmsfr=>&w3b-ZU95qyWH`_mr|MmJ%{+iZ2E)$!_Lc7|G?i%mNi z-H1rjxJ{xm!1bbTqpCw_i0_JSKxFC8Cc4eC9uuixU{iKS*CU!VE@cvF%h+@5 zAlUu|%T81D1Jj=ir@zIyk=&H;ED7I>UILGcZKGpjo9xABb+jNpwkWbILqXLk&~k zH&ijj@SDJ)uC0y++#ezPxF_n!M4>z&t;(-s423d8w?{8WRLiWX3z)^*LC7o^t&!x2 z9ns4W{N(iqczxliT7!+D$o%M~*x@(iMhYj_;ng)w;i~F~F?N1AK6ZsOjDeVC4hI0= z|5pf7m-wt$#_kaQDBK}bBp&;LXalZ{H4~7HF|Ul+#DV_(fuL@QG{yPDyQ13=&&mlX zl*Peg#K1%TaKs+H0$XG=TqsViMX=I+gHY`QG!j9A+%Q^FZxdx+0&`4FKK;ZLnH6;- zjpeXQOq<3S;>PJIiK$u?tw*Xh&78i?7xC1yX z-X%UN{!Gf3R!bhKTZ(|qko&+c@c&3pOTQ5Mgb|^W&l{Y3t-n;)_@KI>!M2hX2Tf*t zKw+h`I*pyH#ma?e^+rhY7-VkZn`+!!!@|KFr~tzolh!e|MayYeHMNRG4bbjY-_w7Wu2?Cuqn1>X1;w8!0 zz473yMdLtxrBZ7Q4aPh&v{qwTjE5e!<05IB4vsNZ=>lzZEuvD42Qs$PSU`+ZvhSka zZpf}u#&**HQ4{5M-ebf-{j=SO0pk=5R~j*3l7?aL`SGvYH=iH>J%ho(`SBl+r+(uI z|6e)&x%>~v|K2QqmA%G#g|AFP_7|7^tD+vX4^orck@A@{6zCu72?AGBo#A9w1ujo~ zz1BsdkliZeL=X#^pCYQmU9XK6%;w&AGWmfMyNodzblym3yT)vNSR~dL<4lkigGPlL*5^0%J_4@-Y4+2%Q8?hRQM!usF42&6MW0 zrAZX85Ov3gHIuL|_C)s}6L|FmSpGUDu!@6E^roOcJRIH48+&^igAtb)b^79E!zdb^ zYP?cFc^1fx?n1;hxkuBeOC1wIL#taK5-oA2cID%LK#-1z-w=1QZ?b^!H(?;&xXeTx zh=FwD;7&sfL_d1tD`vzD^7z?$q5&i&jZ0QNDO{F01~rd980|t-Y23jZQITF`99$G1 z5u=@mtOPVa-Dd?Nt8)*eJ_U?Rqk(KgmBrAd&g(e- ztwI#^|H1z67sajYN!Bg=3L@UHpROp_X--RK1dTg5JHnkktwX-v&O>BbjjZYFBacVH zSaUkofn|t&eJ1-1^@D@_#+Q>3H+^3e>^P^T$cexm`@w$#85pA>V2nB*J(Ono^nKeT z>>o4aOzFp?2Q!Hr40Qy14;%;t8$dmujQtt9He7k=)4QU*h&&CUBSXpIh!|U3i0qE` zAeuCUj`V2gA}R(C#U6|vKtvf@E#!S)98|O)ME-v<+a`eTzb6PAw|*~4dD3!eGu;GUC7lKPL0^)-BfSE*fct3b zpqn&b2Y;cR9bl%qjt%t&N6?H1J3~4UWYI&JsRsM|!PGOmnNo~(MWnI=q-J4E34uCC z4_(IT>4e-5(M6kaq_IBwEM~Ys?-!R?($;oou5xT;a zng>caDGD|K|!d zxc^@d_P_VDzq0FCuJ9p^rvtYk3O<5dKf!MjrFq0ay>LO+R|=9r6uf)f@`F7O!D#LByAT=NDfB9 zEmB(he=3P_KcnF=#&iDPNddI^my6#Pee7|zNI02n=x01FQWU)=7d$nAB4B>X9Gfuo z36LDXlJd@{FuO6vu-($}MC0oL@=HHpk$^U!!WRM2Xfoq-QS=0o21dkYuTIsZTnuTB zfiB?221h1OA}5aS3f7p3T(xu!+LQsO6urPt8lHR&DrCx2vu+40{A=a1g5EkEN>i3g`d5Tad1m3c$w4cJ?Z}102J@JL98# zasVSsPUhfk7|ac&sdpx1H-KkcZnDwY1D-|$E#SUqu#3ki=WEVz&^mXxKj@UbEjsHR zO?57R3;4utuGPA|I#odD*LC{R=9Az$1N8+F2{kpJ|DTTg<=4Ag&^ zbRWh8-f)P3LODN{EfP0`b80ZIH0+(~4{wwSMt`k7A`4#ar`vW`8 z<_q@=>yi)GYfh5+XSa2G%KhD>izRdZ$ZtfjwgdFP$oxE?Zh3XdOhd|P&av+#S%glf zC&=LW#9+Y4qk2w~wdXYM2bD5vY)=CkE&AX|vhSP*$5%#0Yc?1nLPn|{mp(p{e{vd5 zsi1#8JLSu#uwhE&z7kTNOlw^YE+5EHRkSJ+R|oJEj6{c%7my*_sL zN$>)dj!krVNzrZFHN=t1lNPL4xOuF}z*?p57I{b2H=#DR6D?WXcQ)vyX=@kMIc?c0 zTJK@V$s50 z0Xcz3!8gzyz$+MnkI(*;_e_m}lzM;|>uKj?OShtFUuqS&Cx#49vzzuZCi1 ze+uBtb1)lKS>*CZ$JGeF0J5t%LUqwqju`A}l?BdoDhWzGolsflJY9*uM!k>W@woP} zYgNuXkJOe|cAY6duKFyZMrvCP7FD_G>Q;uGR5SAJ6KuK3*xy^(r8F=3+PK0O>ChZq#zhZfb7g_ZA4+xSM4+Yi(@0apQ&IpM?1u$IhM~ z|FJ_iBQfX4fA`4w@edBaXb%049shX#&jF<$>27dN_6*4X_Cw&m?SDBEoUv7IhJNu+nOKj@ z>+%`4gfUdhixMZEZ_jbVu51;-F!;$?X;v_iJ~5gnTEPP+$%9im>@%!w^TtU#Oqf%8 zPLdy|bPtJ!-I#{W5bZq){+uRllS;R@)BWiW=Sg#gY*hJkvn+P2ST4Q=e0kn1PXN$g z!J`Us-^T5)6Up1&JJ8uT+!bgy_H7!0az{+LpU^-|vu{s7c>xv^OcLc!dh!??ngGeo zElEzpk$ESJkQ^}mk-F~yb4{v8jtNnvt4EMyjWZ4GKM5X-t_4}U@%?-cfv{r7{=Psv z7<*|17HoS@pkv6trVIp7I)=8meO~0Q`nT-zx$rm}>OCGH?;`8%rPrJU|4Y|eH>6-I zFe#EocayuZwb9S@xV-M&Mochw*8?da05#kh_5yzUC70NVEdkyCH$o&2Wc@ZL=5N&k z&#K+Gy58le^*gszRaI2_oweKA6~3->aG<;QKv_>Gy?t)yHowQ=bNTCcV{wsgTru$c z0IcN73SiLz)?vh2V_lmmtj#`0gC8ht@yC?DYR%f3b#~(aWeN8Q(n4{FdEk%#f}hCz zQ88aAzLweY@($SYit}uFAjAW!_josS346=_BOSqB?5yQ`Lu8Y}zNK%l6TFBI9D+{C zfv>W!7&_(}=(2AnHNj06m0xn8Z*YG{-=#cV2}S3RvI1cxQ5SXC@>U{w#*Q{=I{h(p zLiY-VmC<8Dle<|SScBcm4FxK-uY?rcpyM49$D-fS;I3Q+K=0%maMw_9FgzHB z(ImTiD^**PJiqC1C>eCL>QWUt@vF$bv)ASe+pZODdA7s0ylr{5;$tmPbU0Tx_73#+ z5BG!1xgZXBDl5z&lWth%=pG&bUd-TtLLSi1r^InkD*1KYF*%J&2|4&Y>C?hIc0gbU z*tKkweTaP>ZUFx+&Jim_m$*y3TD(d8g!q*BqWE{<2CkQONC%~3(v8x4q~9yQ!mgNK zoI}K*aDlK)gu0StURt~!OZ(h2jw}J(92+}_h0Qp#B}*tqF;^JI7P07zGfOBJd(10^ zMY`xrZI%EQWtxW3f>?96ceoP-c0=96eX?6_bggd5T6D&hC4edQ*lgHbAxrj*Gg}ei za3@k?$(ePgE=yP{I^?yY!QHgYVktgTpCy3%W&DH`1;MOP2Q>V^0n4;mXWaO~&=IWc zM({&8*lC$wc;<>MVTq`lJ1jHoXSQVtj{mFW7GY?)2SNduFK|M24}`&LS|EU)v@Chk z&opESMIz0rmYElwX{44l4J}i}=g&LSlqG=QZGtDad7uk?Vp|IG&opNV;13;}1hH5O z=bvfG62K?8JR&es8LF09_A}d|Ws*@iyXcGu`yoMup3Hk~M>u4ev*3(3OQ_)~ICJ%O z^!0`UL{!K!xA2S)JA!Urv0O0yY#El;?{|0`EkiTUmS+hz2)Ub}v$-sX=bo*=kpamK zZH`@DB|cbqwh}@4onE)U>~m`z;|DUfT$ir`cmcVI5cv;ma-CT6~sM5G)WDK+xmb zQMt}?T21zP9X`vO)L<(HugCL$wh$IT#{4Mz6q^ZuPWeydf>BGpu=HA1oR_!FmbVlZ zNd3T@^d#y6fo#~ymG8xMpexXA=V7}ZxHe7dW0g5EvUoH{*;x$podusECQZ}j+KQbk zZ!OUG=z7>zaL9Y?@($6sSF>NKTc3DNmB`CSv-5?`w81!J%iE0miv;uBq{;5p$d;*A zR-*)%U{_S3qc{;kY8gDES^0vS%5c<{=Z;?n-IPA*lJrcVBszTKmq(XbEmirblrNND z%Zl>ypk>OTR544~qzkgXzoRoaSiW}&^z7b&fIS9sZmwaI1_vpvv&UpsNXGG>CA>#~ z+yD8j3;y^|`-xmOI-Mp9Ti%8MO%`+Yi|(YW6SfS>hD+(%Z5;!k&Edt9AZ#DG$6!4! zb;Ep2pHr)3eO{%0X&+fNIxSzQrq14J%d5uD9=oTQbV<4s_V8FF*sWXj<1{vlLV2WR zG`B!l46}4`UIZrT&G4VEx>!S#rnbJHY`+c-@9*pFEZ>`}R6Z@82zgU3{gkhO)3~oE zKxZ5KV7EOCe|N(IZr_hPi8A|&@{7v#bGZKRjT<#e_3_b}qgFbbVVSCz=G8SX%^Ny~ zYEM)T2zb&3t1}mj79+#rgC|G>vQ4>aF$aJMUHR<215{$zRfNYYs|hGy^)~9uz0nZT zr{MkHLUySjt`xV4g&_a`9ykYlk#({kvA?iO#p}geS)2H7@l&7$_yh6xpz~KMZIT+n z`scOa_3J+AyZ>p^#T!cx-L>N8(mMk8>7BB)XmIhy=@J}f$OOaU&(VcEW^#vME8N=! zf>z59EP5)83x;(=g<7{>|&F z)z#_}U()JMe2y;VsU8&{W73S+xa?=>ZkzHsJ+gA5_?I}5IU%YoV@{dnEWVOBEoYdn z;N|a7y;S_YIVR^QRjMwJ0{9OJ5^@gfV9(!|Hd&653ciZ0c}FZ1=kMiB2~ zcf;;Kxz>+1xFX)sd}aSOBJbZ!jcYu(O?p~AkZ^TNiZ5oNOPX6<^X84t%omDir3TJo z5vRf&L}`0;)1-qlexe|thVLpNS$=i-SW9H z=>gJyl^qUpc+Sk!(hl%o4n#gP6=Gt0Ao~eDXLplb+l}gKB+iaNsZU)0^MpMD{Cm6b zeKwD^vA444fdAJmeikGE+ogM?5s>}+mNxWL{_9fdT5-~CVJS%O^TPB#pOxO{v(x*0 zPI{luP4Dvywr53_q~3BUL)X=NpugQ02oCsNuJ%wrY-HMpV8cTv*0P>C?HPx7WyT@y z%{WAV#v$&@IK&RV{{KLbn#2#Wp9w!md3665WQ=By&c+oJ?r$0+i>GYGWG6IMf^O2q z!yW}QzhY{Wd}<3O@K9#u3v1~jYmY5&t?nWV&%MeveA1IO+oaV1Z3b{}Ag^h0juMHl ztn}0m4*iKr$c%+cX&0YS7qQ^u=9nS2M+YW9miv&y;qd-gN2c+Oy{U7X(ZmkhxY-OPST=eA-uB}Sx;JyT{j4#TZqr!=D<2CGOSJA% z&OmBtbf{1$iflmUeFQkoc=)5sx`fr6Kmw>U)Y}gK{hi=TL6vlah}8!=J1GI)WjzZ_ z?0iCH*ZuhY9ie_*ILV*oD;8g3$J~bkBS!~=UH0z5puMiC)s8;td%@TbF-w)w5+)^p z`~T_a@b|dz6k7z^JdYXn{`W`?eE*;Eok!+&nI z<0?1Vi>Ac7HntD%A07w~uTJON5H0rIuqh3O2Se>$C}SC3-2>caf9HOZvFz+Rq;3YB zvW(?U(_D&_aw_2YpFvLIioSK4Z^}Z5Eua41;LK+V6c2IQXY$amDU`wiCRH~#|wmV zUJ#J;#M^#j?x`(DU-EJQ@`S~JG^G@{{?8B^1o-z3;n!>fyMcXIyjUC-za-5DpTM7x z9*`cD9*q=%tZgxfG%U-rt%R-xB7L5$$WjxNs3|LAGesrZxWi_2i__U&xef%kYMZ_7 z-F=~+%Ju8ohg7CfK_s)_qL~GEGPB@LWft7&%z}GUX2D&bS#URG7Tk@Q1$R?s!QGr$ zaA$D*XR})bc8i!V_K7cpJztOX4(U4D1x(~|t;M!>Pbg1RPG(2w9uzF@(wj?-C7jje zL;YcL^WACo&%-a$R~h^+4f9A2*Ip|ADPXbH?AdI_-#QQs9Dr-+K#<6oECGkCw(Q(2hDHiq^=s^%Ygb$tZ&|^8>i8?`n&!de5K^6;V#t z-ySMUaAZ7We3Cv3HVm(fY!o511@)Z!o8Ew-hxwaAsu)4~eCU;AI(MW`B~ zl)s6rvfA8xA~og~MAHLcU$_yZ)jJM=&k(qjBkRFwRqHCdqD6%Fhxm8MH;9;4p;#%j z@|KQJ0F{g|8ROjpBtF<14)l!xwSUI(e<45r-y+;CJSIFZ{DDnlOV}mM!+O9A@Qv&) z@B{n;`=_`}Y=jwN3}k`6CjLbHGspr}NM5N=x=wm0*arE!^mF+Ak@Oofdf*5K8au*0 zA+jO?0oC~m+9?Wo!@YfdXzSnz2E9jn!6Gy4<-zM;SRxw;vGIkr`1xmD5j@IFUq$b%>KF8-yEe-jFE)pvSdB3+pSrTd z94TKsn*URhp5f*=2ows>RAw!V7hRP#N2yoh>w-KE^*&y&p5XyhQCQqal0#7Uzy$I^ zZ_{dC$>AlxxR9fEWT2zJx3dLIqy>A!Be6N#$Obv&MENAJ%TH}fZHFzXz}sVJ`k3UM zB)0-US_b?2;?vB%1w)oN{YAkNzy^%vs#^-kS*|LR#LfPQXX3?XHyLC39G=xl1ga1; zC(@wiGY}>rr#FwACA*V^eN-qoCduBPcnt|IL2KaJ!BH*_lgJVIbO>~*-%#6&rxK=B ziEpBQA%BN8O`k{u@uI7wgCx{NrKk%I4iAw{GT3>C#Jh3)=L+`-!aXdPb+gA|?|&og z0_vsrN$(LltVNZPyu3V-4uQCY8MVG*r>@=BqGgd>!xs*(%kSIO;)=~22zY$3_cw6# zVTA-OhxU4>w~{Z7gu1M!@O$k5dWylD$~q~^8=YI%R#mUn-+veW&X3hHJN;^D^tP<2 zuGqR}%?3UESw$Ix-wPtOnp5!!>Ln4W$qygpCOS|jSWL1_ut1AZsp{tw|Kuu`eD7Kam*wz2UYwY469%U~$s zxK4CEa==#uct9a|b) zwFyy~r=s{R^5jly(GnwMS5qbce`T+=s5~xUzsm!4o+jO2f&oyf1K;8!^?NTVho=eq z!I*BcP1j8tLy6_;6Lpj1&70raV=Y>&btCAP+x#y76d*c#2*;m(0BoZQn+jZ^m|9GC zu#HoTJ{p29y9sRieSqD^9%Ik47un0~Z=zMaK)gt-5-$h)fbHTzun_nr z@h#$e!Aju6pcnkS_)GCmQkFDJvP)&sCDIkrPS6bqOHt{Zbf@%D=|SlU@Cx*j^oKaV zy3}Tm+qVmPV4h?X70#qJ%Mi*ogmMfaiy>q+gmR&PGZmQAUonJ!X9&G&2>sp=`hz}{ z*JlXz8$#$iQN@=xsHY`w$PhYg2n7wHkRb$CTC{q}8#aWF7(z!4p<{;7h#_>`5W30` zy4nyrVF+Dg2wiIkU1tbI456qYbkYzyWeA-%gx+KbU2h28U~(RvxJqmm4~eHi-{*6n?eklZ2D(^sNPDCspzHHd>C14skNthOr2M`j z(XS9N{epn;SN zrT}#6%rnlCr2s|SdHPu}C_tc46*}+i}7JQYlkH={p_VY*Y}67R&M3XKS*AWjG;drG*ez&z9>#4L8(!>V1}*Ak4M7A?&lDB_^I7 zHl161mNRM?k|BIn4MRG7KB|5WVV`9Tf@p=o?>`U-`?t2VA}h#pZuaO3piAru9`O$x z>FxCQf}o7$5!r6^()de7TlJ@PXxEd9`R1l;L$L_|*`m{JwY;wBk9u&JM5~+?s~ps4_r@~+;H zn)s)AqifOV048>EI(i3=fX089<lE61c@l?e`OCafXnn&+GEB=~=Z!));YspG zO48rvjY5AiBq^x=e!(bo!qs{zumuJz|0o)T&dTdgCQqi}pNmGJSMxfOQ|J?DaZdif zaQsWcZw2um?2p24#jB-q_`Mxg@7s-A5!$8$V@%fXa(lKX+%QgbL&u&K`nCNPA*u_6 zIV&teys#p8FhR7}Bsj;%D^p6hYp)pMMmPQ0Vdq*q)E5}!7#xVL2#!>(2jR{=T0MmH^-wt# zz2Wk>^+2fNmI@-FH&p6+!_G=#0DADqb0?3mTDO4=i*qL_!T-h(#N8k(Jyt=Z#1PaDndCZEgW&6;JG zoO0%tX0OlhMW!+by&d&Kan*Ih;3**nZhw_@K>ObBZEXSYUauc5_Idq|rrOv~!l<>YpoDI_ zRr*b`im(+X?MYd0PMT~PN}hac^5p+XnrvN>C;kl9{}w@LVJ+f%@n_OSFd^uF-U*tP zApQdj<|aNtwlsTujlczL_SeT*og-I|9xfDYvKTc;4B@Y0meg%-qmO-%@8Y4-) z&@`3gl$L_Aq>gZJC)l09uqFU!qFpU#>1YUh z28qkdJwrVl)%&NWh{fh2YDTei1Z$BBu^@A}pio#4*$jFJ{s=V6f;`(=IAG$DDdUv( z!nJ#_tcP8%NWv^fgHM&~;07M{+{1xYAnDNuRoxe`s|hPQy1Ig(G-ax6E)yaXnlcz& zRq!Gz)esLl?*B!xQV=Vp>G&(m%~~%+Dn~~Ogk_PqK(XB z@mid^N_>l<6055cR3aseUx_}d!&IP{>d=?03ZVvHq1uApRoqXtwb^jsp0Y0XLA7>J zcqmT)!45{nHPEx1a_ftTM`xKkkf@{zsK}17J}m7@utTsGtQmns=v?*CjEsa#m6r5p z%6dvQdjtvzcH|BCLAEypMJBN+0|8niYx#6G1`K(X(jt_|;j#V#VKbGi98LpZSWPRL zi5ZgNLT=Rxsk9hyT>K!Y98*FQADlX2FeVbdtKlI689)28QP|8u?u z(x`!UOVPGNioi%{|JDXa9oVx4F$13iPSuWvhFxIf7TG_(@kKFUFCFOU_wOI>?hXXY zI;DjzmZEAMa9{AurACXtR)$Qbx{UkEzKaTi!%so zSq5P(r}dw`OJMI3i^N-`8PaL-t&&wbDO_c>t&SYG+EzxYi#1h-t46H0QbSBzZA>O_ zi@U-PH-zJ<#*D-DOQ6dcf@Of8U>BFiLtXiXpk5tQ5gwm2)0ks%ctJz<4XD_aF%=7? zdt)kgd2FFGU$L5Iu&y_i9>d;VRH^lLRMG*F(uTp#jy`Z-G2R9sxsI2-1TM#14b4q; z_JP1rysj-RSr=2=Z`=qPfBhFen!)*I#eXQQl^LXKRR&?L&LFI^48khUAgqcE!m7+5 ztf~ycs?H#+H5r7p7Ww~KAp9>Ch;~*hgp_^1@`e+@y&1%ZXNgGT!_Gpm08vCzIN96; z1kQ@P+^&Y&l#eng&9=hZO;<*-c$V8cz{M5*#A+Qb*SS!L{ZiqhMs_~Dr4Wp9@B-zN zrLH{8jt4$(o7?BChZ}4-0cU0f5pIoBrWjP<-Ht0(dIE=sdxL>4UdXONFklNm?Hc<( zE~RSO`W|)^f|UziwmNR+0>2<(iLI?oPP~QB$jT_3i&HKG8c>qnDtm2MWe0ByV0pAZ z0J_~FC>z}asL8TAHQ4OaXEK)A09sex%L|2V{Kh*{NM66FEzyH2iKuv5L2m-xon^MC z9*E%Z$TB!XMybX99>O|S?r6Z?z5DAN| zo2G;WQmR?*bGlpTFL2~%2NAJ~ii*~T(un1B8zHZ>)=dp^CkQDyx4P?4f=n-(26f|C z(@;V!BAwnzq^!0&r;Zd?QzAkjg~-S|y^F}Gu{KT-8E&YN1`r@^XoyRTE?FjM_Zve{ za}#Mp#k7)45GEr*xc|RcfJ?q_3BM3t6aLBanVnUD_J0%G!S;eQ;0^2(?0HcF-GEl{ z8u1qKW8$OYkHpu-e@inZ8^{V@F11OAga@RfFl&53dKk2Qej~jqy#HC&iZ_Tw1i@0eZE-_=Sz!;bayz=59D7p6-5D} zoX55f!#$TnFG3Q^@s9@tQID)24 z1_%7%oCoGhHKJ@JV+(Qpc^g9Izmu|qi~;r~xj`Z}=`z*`vig0!2L=LNen%&|gH+nR z7W-0DbCcKAiq^%5K{H^x5PJa1nHS`ukfo}DTCi9R;tZcpa(;Tf(OFMo|G*ffe|!ZM z?sXAdPjl9nkkV#@e&wtOvFm`Cd2c8<>x-D);;4j--~%YaZU=3^&$B1lx7n{mi&!kK z5x0sv#ejH~c!v-WKPf&T{z8(Z3qeb0zjQ)+yL7+w4H*9~N#B!xf&;V@rB)ZvOn??q zheP0m#^13YR(F3Gv^YX=r(@rYW)8SCWhq5e2GAwU`g^j}+{=@tE_xnY2Pg^+f^tYt$3Pc|YVDC_J}C~xTuSQAF?K)pHsw3a z<41Q@yE(3)YTdyJmQI3$ePp^LyOnnik#qKJACV93KQwqW z5cH#y&@Rs41fhc`+Dj-PrEw6ToXtb*-PRk!@l%rXE@kruOe}EGvouq9lVYpQF?h_rB7REvn0*a(3zd-W zzTr@hy&_L+1^M5v2*Ov`+hH7En4s~tHtho7ua1<>Q!BK}M~E*69K|8C*$!d(!V!q1hb=Vik=d~=s-{x>x{vxLTK;l*@)z_Od%O2v(ZY+f`Vty=~;-tn^^<^80;Q{C&u0b zJ#Db`gQ>FMq1~qo5mim5P#Fvxx1TNm;6;_S8{1pC0qk*BmSmF}PCBrQhXby=xt4U0 z+E3?a7QAuF&J(W_W`Xdp=ohaLZDJPtDf<$8H#^A=usXJkO%q-fo)hj9-YN`2rtyEd z=c%G|7o$G%R*%bt7QSG++JsD_dh0JQI=2*^yz@~HTq8KiY;E@7J`($U!T(YYn4)XY=k=o|iQ-nk1=hg!x0OamuKn{D&g@3y{F zbZ#+{ra^9O^|^Msyw?Ajf6k5y;93gkfw>x6kiBjFsqI`zmZ0bgx@%$E;;nCPh1&|c zv#|cec5acD-Wa1x_~YVpHq<=VfTMbuzrMM7oApP<=N1~%2tK8~c;UGPS%ORVT_Z`( z!8r$*0ks^!4;P%9uhkZ?OyC$%?{c(o<;x$GoGZ=}6ctK5U3s{oV+(XKG`nJb;evDX zvOup~PaNd(TAyEWt|&`r)g|D5--|8Q=)I&A$8L>>}Wil*y#>vItAg>FG^M{2o#zFYC7YW+5( zt_7L6I`gDZP0IId$Q(5&>0i}d}qPreC>B9t6Q9q)p5p5``Rz4aTg^8E^6 z(Qt&;q%)TFS&03XutaRtjA~lH4sl-)7K@r0PU|xe^--aeK0XrY1PKCM%dJmC^li{9 zV~4mE*zaJ1lP4L6r}b-)S1*SW7BV$18>cSPYzS zv;u<*eJNu_TZCXYt;X;0ZK&MpSp$sr_3=;_faA2R_w^%c(09xT>I5d+l)}#XBV63P zH-s3AGlbEzqt?qy+tA{ysyt>eai`#&12#o0uMb&E%HuWjvEJ~c>exBh*R>UHDg8SP zRv#6lg&zc@yAC1J>9K{K3{tFJ(El^p@l){4z8~-nbXiLl$H52ti(q0cC-XTH5$#yN zw!-C&*KcOO3|+S4I1U=PH#YT~9cW<$_Au&%rR<(k?!HQkn(h86<(%^X-~V4BNFS1X zz}0`NSi`=@u7U&4$Av28U0F zK6Sg&Q;nGgZ(R1;Pc>u~ylGE;YFlQ(8>!!Z>IwiqyCmgd8uvs1{=CY(XdKh$ZK?IN zo^m6}OVWcWU$5(S0Mn#uu>XIz!0r}jh$qBv10Mi>r_k!3VhPY-9Z<1Jro8ue^j(^} z(-7Ka2<5f3ZAl_tb<_jsd)lL z>Y5Xb`uH`^6q{Knw#{@j9>? zdIqEi?hx-3-w)P=?iD{HejaQJJt00LejBWa{#g9E__Fv1@h{@Pz?$eZsX)2_^p7r- zmV;H%HQ<%(a%n4gBJ_ZD(Y;cabWj=sn}k<`mC+ldQRyvk?|2u;9(+{#B={kCSo)Im zRq0ufL->L8Q|Xsrlkkty-+<9+U$L|j#KcTSFa|)pJ3Jg5C@o#Sv|`oL%F>Aa)Fsnk zqP3RfM&`~<*nD!0;#n@SR}W2?DO<`D=iExqx6t!8dcKvOx6|_udcKXGZ>Q%w==n~1 zzKfoB((~Q)yo;Xiq33()`96BSpPv7Zo*$s+2kH4CdVZLmchmDD^!zA2KSs}c==pJa z-b>F<(DRe@{1iR!qvxmT`5AiNPtVWN^8tE3NYBsF^Yiq4h@KDA^9%HRgr1Mm^D%mU zk)B_o=a=dEI6c2Y&nM{lBt5@M&#%$*DSAFl&u8fQb$UKa&u`H4oAmq^J-G?c8U!dm?==no>zDUm>(euaj{0TjOO3(kH=S%eb89jea&tK5%^n8_`zo+LP==mBw|47f*>G>ym{+XVCq32)e`8Rt0ou2=o z=RfKBFM9qPpK}FzvT0(!P$;e!M5nk1M( zOcdvT&ewok11N3)SJ7R4*>|B33V9qNF#%sQiWM~Zgs&A!%NWJCHX-}fRoe;QPNR=@ zpwp9(@YE7%8w>5n-7^^6Y6dniTIy_+jiPZDVHXPc=#+?+RBkdYz#$}6F$T+F)c_$z zQ}}>ga>a{R#Ugs3Bz@91 z5G7CYp$sQ5eo+%!_~!ZXe||_$rUuTBf1NV_fARQ7{@;87E)~8i{G3VP_p6z8vD07$ z;0x^gq5%8)&9E;R5#I(D!M`j19d_ka;PdO4bc=Ma^j)DZ?r*~GR1Btf43}WqMb{1U z#=r=;a%D%CV;&GK!z;V%=Zt|t@R;kAH_aIX!{9ucE;)+FvJkp*GA2O+e$j8;I)5x1 z@AeF7-r*2hx3<>V#&YoP&X7o+mFODZT3DcrO++s0-l zySQwbKbD{HR&@JU6Hph7=tU{8nwF_WDTrWUNi=m#cnlK;Wrr>0oJ`2kHLL& zqn1terw0AD5ez^ctA`7hK+x*P^M8$4FNpPUX5T69gA@A@`1rU^yg@t%r}ewU55Zae zvv4AKLVQ;I9-PyEDZVQHMH0Y9Kmptl+Tny=A+3k=dA-yEr}KSaGh_(nhwI>Eeondr z&gCD1nc}n3Bj5+*S&$0;F`UR>mHv{E-vqGv^kb1k(K3{C54{iPe4O6FoO|gV%J~Gn z!#SU%_i)aq=zS#TK6)R``82(c<$Q+TBRTie`*_Z0>3vns1N5E%eDQL@Y61B42Ke*_ z`1A(&^al9!2Ke;8I_E)ppUC+fy|2mnJiV{Yd5GTE3u`a}4C()%x#b@cwLrH0;rv#h80-z^*H{SV7VdjHe1iQfOR zTte@ETQ=j{Dp)S1H?v$uZ_#o&y(No--dUC{^v78S#rMJc6qPNwumEO6QI(kpD z)YE&q#ZB)SmMiF;XW2&YnU)56=UW=-U0`XVccG=3-m@$%^qy_mPVYGu554DFy!5`n z;-hzwrIp_EEIa63Y-ywSe9KOHFR<*Q_d?5VdfO~}=)K6&PVW-SmGrh-_R@Q?#ZT`G zE&Fi%=ZM9E*e^aIEt8Ij#nMCkFXrzeSf%G5a@hVZ4^2 zl_T19gU?kb3l4!cRzkKYU1orX%l^TEcIAcv` z1uba>vT~sScNgIV^#l_5L3CN6s0}+i`o9RryO?tvTR%8%1F$0U%J&& zw76HRT)5*yed3fs;X%HvC+ChWmZD-6OarO6C2SfKHGQB$Ro0U|gyY{L{9J(D|CQ_o z@cnncv=nytx6|+4%J5e^12~!lYv2myx_d;xi+=sCfP$&@gvli0pK`$zemWFxelk=O z6|_8JE#Aakj0F1kg9?hjV_n<-ck+ZuGbln~qCxM+YiR?Woq2KxH`prW4j; z_c&-lMJN;q9tm_+By71!V!yfHT3i~7ef`FbZpW6ymIx+^?S{nIKruMeWjme(TT8~V zMf?D6+W z_bRghzO&!ckQFJOfHgo+bZYAeg2CostW)2D2La#*G6@i59J4>%oE0faox<@%{0cy@ zH2aeohWTTF`9OwYf+$(`BaK;+1(Pg02v*h@gwzWD0uZ0fBt&2c2-&Yq%$|(eJ}8t3 z@|Susy21j0_q7bdv%zk7a|Yq90C>%5z^gV2VHVcFIGvy!M??LY;W=^rm&DToc>Vjg zbe#Q>zop}FpANrPumZR%D^e}@sH?5Ea)a?d@Yv_^RlN}=>Fj?6@;w6tg`j}IGFh|_|vS;G&FggW~U zmD+bl@)6@ow}ugw#BdiAh9^34nkdHPJE2aE29Ul!6j}vNMz~u7(p6hT-Ty*ilm%E6G=M%2nn1s2b>eDqH)#9c zDt=1*mXre=zZz)=$OOC{4qHTgYG~Qiav=*)1 zV}eN#uCub}=NC!aWW5y3si_AkS==t~qMwm2H1|pdndFZlC3khAltn*Hm4sZkm@mx0 zEA6E)W;A;OvHbl--y&6Rl@2=VDQ?EHjwMOVtw@r%=(&{qh_#U^0gl|=l(i!nrMYXN zIE(lc5L=Fg=O*IEt=H_w&FpyVPk1HGaTy$XU1Mb(@vFIB9aOBWd!Ym$l9d*AmShFcL@lZ}slFdN9jTi~h&5Yfu<~ zSC6N)N#i$o@gl?JZ*FSXmG!V@I)g)~b+st|<2+jLK%ZuC6!+Kef?fv##j^2r^q$s= z_kY>o$WM5b9TiK&2c%BE^7AK7%)0eIj@tY<$HgQzeC^i*>fN-nh+Ot)6*`lu1`7ej z+sVz?T<13A+kgOcC`c1wq~wu(n8$+Z@VjJRjbPa&QuWB50s(AafqHfxc;6`n{Trw@ zo$Zc^&ZCCqx%dc}V?YtV^1ZTtIX7a$&4PeCA|o#QW_wd>LxWDw-2LS9A}7;y6YTir7R=Tbwc|M8X%5 z3m&-={0|eIHgNL=jV6%L}y<7sO4*Lrr~6zG|>A2GQ~luZwA9|OVQz+hQV-a9?O zx>Xt3t{tu>pC7b5TU(Oxu}#dty6l9~2xy&W;-#Y}`>vgq zqP1$JtMFk%hoWq_sY_T#rmF7;BS=Ss9YaH4g0u6F7kd_c+ zf@)U|ElE1ht%t2etK*?-Y_4qu1?)sB|C7gfOQHgT=iDhk_crAJS%gpHNWWP4G+V{q z2J-x8;CBBMIj+}cfUGA+aO66bPUG}$+vTroaW_|zA<8sq>kJ(lY46d@vJZ6j4R;0F zLxY_#9AI}MTznOdIT<@lSqFpGqP5xtBo95ggYi95nj|Tc3Cx_ZFNB#S1ZaDDtVN6U zXg$ya(e&qJktMi0D6j*v{v*~Ra7U-sI0%yZ{7#>z0nR(EuuBEMI%sn;!>IFb2h>9$ zYf+6EHCSu(!{*b2Qz+Pu%rxHH0Pks7TQ+C|4qbWT;vg>*jgGYHI>|r>rRMA#li~J& z=Y@3IISKC5(7i88h8wwDQ-u2lT>q`Y0s;P=7JdgBK(B-J&)=nMAi5Xt`n2BX1T!6A zvtkN5+%xepO+goXI>K-g^QuD%?2uNjYgBBJPPRwOjhkQ+>pbKK)|-23fwlKyI%+E3$zO>i9=%R%9gv zg$N`amjJ*Jc{)7jXQq6JWW&1}*{a6z&lo7M>Aa6kZYj#b&Za ztc+a>mcaM20niH`Wp{!$@WbpG&;fph{R=dI7l~z{@7pBq1ufre#8J@gy+?c)G){ApA8X;b(w z#&BVQDZI)QZZm}=rts~i@PnrCbEfd?#_+5;rtnHrxYZOsWD4JG3V+ZPHkE(Y-;C+A z=bOS+rto%C_@F6l!aw_7Q~Fm;;h&ho|1yT>nCO{PV@mHZg|9b--)#y%WeWes7@ljY z|G9Qky2BVQS&eriK9CV?9tMNdIUm8>77PYaOmII~5!@nb9zooa8Tx~xPaT>t)F7tw!FCQ>w-J2DK7L2ajP5ITT_ks8z-zq z)iGm>dVW6f5PK2qctpVi=qK50;>X43#9xSim8OG4uv-+R zH%lYZqtdUdVOI|vT=$mAcKHN*%(!xo)s=wErM=a%>#xjcerXZ zeOj1VK42{daSxn9^cbh8GG|^x)k!Abf&BnNGztr%!$qg`r)7Z`970S?8R!Bd9fO`PnWX8E-1d~Sy{ zYs4Ir+iZ?m^pYkM!oN}_4vvpsMcM1d&y%}R`Y=e05IfmfuSq}X6+RbzH-3C>IjqLH z^sUl-2Lj+OrQ~MxwZdV_TK`+Xlx~{?gbJMC5*_Mi3wMZdId?RHylgq+)|S?+hj9JR z5=#WQ`@aqB?nI?k@cUN$jl28%vueY;&FSZVdneey4%$&G*d7FbG$F7UYF|-)Q90KVsIE}nAovYflu+cvJ8fFw;VK$M z5Zulr-u@C~9-vgGsZjiaM5Oc5Iy*?-6M0%0{s6Wj8NVVJDWvsLm7#8gChN310qA~wB^ zR8$sHci>H6)&xB>YEDGP^DQxsLkz`4>fCK$(zqtF%#1n4#!A91ihQH3=r*;-Anxu9 z^;E83rx$Ejv9COa*kj6_LF`7qCMx2cV3f8pUa|G|W2UCe8=$Sr^fV&09|4gw;0NZ`rLE~o(ICxKs zFT4&jH`Fza(-5NmIR>f9Ij8hMbH+k}K^5kzOO}1W|Jo(Dx$$d$a zZHq6I>ePaf^%%2D6w9vhvz#11%eThOVqHIemX7hWj8BVgA-~b+CGesaN z-<0(>X+Ce9l*an zlHLYb*C=wC+me-8J=MjbBc%dsWGf|AKt`ppA#`kx4c&@X{>$|(jU1C9P+HA!1Mf>% z*j3sI7V+YdET+vBqRb_a_ien^SH4%OLXrPnB7m!pUkd+V7l7yAD_9TM|9T&Ll>G$k ze=QK#iH%~H@D{N5IKh1UzdncKjnhPT#HQSuid{j;$x5IL56FOck`5Y?N zfV<-g&iAt%-H*94^$%o`rs*}pb zW)O)(2d?P9wX(A0W2g-SXxAVpxGAdgl5=IHL?!RXMGw-UYUFf8E+Dt&PwVEyr--wxsxZ;_^8BI1&* z@H{U2KNg;6+du|rns`urN~#3AUGIZf6a)np;r3KGLF>k!EcOQ9unMi#P#~SapUkY_dr+RSV9_1Qt+TW zF&yq42!QfI8=(2P*HY|?twASu1G{nKP$$)1Q%8T|)!I~V(odn0qkAmHtx4d@jS_$b zs>?lqf*UEfiv%WS-l&$}qxG%OAs^Vvkt>EgE<@dSf(IW^M20*55l0{R00vFi#QMcb zJpmZ#UJ`l+JAK?zynRpJcKIeJ91qE{rohpL-u5@> z=a(au4}MF&z~waVLUrZ~GW-;#L~q6=w!WGQ){IN1J(&vDOy8O2e?Aqg8JBf@C>5+3 zmvwwN6|5PTb$o1^be~Yh%Cf=x$5r6><89#a<9_h<@f>*hcuo3%I1A+ahNW|&M_eFX zDV`MHA>JoGF1{fCRQxq~>-d`_!f9X@oChwHR)SgdGO>g0l8%d6Vil{E4oP2>n!x7g z%V04;cNX9>fFOuefO{g3&&lPT@&p`d5Y!p;m?5I`9yx9x@3JB=8U{(G#`e1ebwff+i{D?ldHvgnPxGw)jeXu6~P5R*a{39p>1}f$x=HTDDb=Kop z$=-Sgr?S8*%@)BJTK-M3?XegdNI=Wq-e%C`w9OMK3uwk@7dVSo5;mn(ZA&l<;Buqx zP;(>r;i_NUPp!&78?Y^%npQ1YmvXB@tFOs_l3ICf{#WU}E*~tyLVQjBXRtottdjo= zlo&wGGQS%X_F-c`>mjU3tvl4`9LKWb*@{=?3VrXjEteBzalebHFF~z?fE9S4^%2O0 zU#I>l*PbjWxOh2;(!wxs?ciWn!=jq6V1Ybx_amgrC#$L2$*KVKKM(letVsx1F}nGfd3t%%7FQP zE)||$ocq&P0rK-^$Po9GISy3T1MP~cZ6a0N@izHi1jx@!31o02oAd0HK!(Fz&T~@& z`DXz64Q$nnwBX-?<`<@-HVSe8@(-s3ay~$QaY`UB5ZM^m|F{bVIGZJYU$~3?l@$VC z@BjB726P<@S-~Eg@aaA@4+Szcs_`w^rSN1N`o?v&Sk|drd)p4eF?hv@#a4Z2mkysd z3~p=sw+wf82ZG$Ez<4KjILpBoibg!Z*Ms1*G#C##rjNCkO3TGw;ou>(vKCX^UA=+6 zE_r$%54kF8U?{EFBb+#fHmCA8K+&LLKQ~pF)>m*ZzPftt1AIgA@wq1Bzt>Q*IQRm9 z@2*I$#kRJ0MAwimwB%5Sh8(*(+dncr1V_>UoMP01}l@3JK=z8;mBA zJtbV7WuJ;LO3J zlMC*F!|NJfz)HE|Q?^=Qog3_kic*`UXp;(fs7o~p!gc#yP0fw2#1<}0{7_w`)c@zU zet6it$CZnrc4XN$r`bJs;ZbOblU-Ia^uzC+JxNB&=~&?vya&w>Qt%^>&RE`AxLe{PpPBRxRFzXuF^FXerK!= zh=bTSRVA4g59ETA?d&%O+ksi8;c06+)Y6feJ?JeDJankaS%;O8~p&s{|w=y0{nZ8ZDbMlgqRP$d*3C# z1RTAf^ng4Eq_+>)nia{@GXqjO$SLawT;7oVo$QbNM}hfhW~ljCX29H&889Eu448W} z1LhN%0rSbsfcaErz}%M^FrUs0n9t()pC-U2s$Td6n-7+Me+_zo4@;8NE`3HD^t*6j z&sDY}dM2o{Xv9ufjg3<=1%Ep(qA8eyUyNOjy;D)3@5jS41?Bmsrmcmx7;)L(;hK_F z@;C7@O+lG{Tx%&>a7gKv{D_jWuNiVp45zC7JJHUS+PQT%BTC;McN>rA(VF$!Dm?nV z^{mIoA2pMN{E*vHw4`4tx9$dFJc^aG88{gp>H(KbImf3-R$)2v|Gy*r3T%GNX3N+n zu=vrz!t8qX4)$^O5PKHx0{iio1P zf(QtRiVDJC0RcAzm+yDZn>X*>$xPOn`v1P~pXI!F?z``td+vS9ednG2n^STMm7t?*5uP>V1){adtt!8P5BVFN|xThm`RmqqJ+Z!(r7PYRnT6BuV{t$8cP z*W<6#ir$D7!H!ES`f;pC4=OkPPcbpD*clb=J#$%9v>(ty5O)FA>!$xCMu=ALxIcaq zJIUv+b82Nz8fCOd$@P9~E{hWXu2JSKi?;QbWKf|oq%vQbFG}>aSY@QHjuL&sToxtz zL!-=FTd6VsLu_=l@E6>ozmO3fbK)2n(|;sXicaL0oV|8b?Cia?Pn3*}oCe7;A#f^!_iEu*`Q{x>I^cdIHaZ*QNL6ahMCt zgC$T6bb_7oMe@gy5%>%8iXyr~D0B z0!~FH!If$SG6D3cSE+ZYUsIofWzZY=J+9uu1F*qWt8eRTXpJ0M-)lVHt#)fJEvh=p z;9g6{qA;EOyirg}otX0}a{<-3!zftHHSRSRP>uVHf+bwzesclU_>57olxy5&E}$Bp zGYXb*jeE=mRO1Uq!E&zgS#tr^c)%!F!8JZ@E}$BB(<(8G&xWF3j2+)n!YAxC7tjf9 zMuFBn92SNtY=QkJYHTxVXx+2fTtGF>GYYisX*Cy6jYgwD>z;tQfNF${07tru*Nb%#xH@%1wA} zUV+R%SE(OC)W1(fPPN$)({F>ZT0tgtO$b?NUuUFDi9=yyN3|M*jV&Se;t4i3A~;_Qh+aL2N`l$)k~d01>yZt3`)VX;lQS?9Nh#da75_9HV||K51@ACg@@PX50x zWh=4(M=-bllJXKpQL`BwEG z!&2uBVOcZrjfA%POAt7;D)r%i&I;S|k@tzdpiIFYh?)NRmug$qiR*@B88u|(bVwao z!)==K4!w4Q-R&H}r?snXGV(7iL9QgqUb?Kr)Y#l9^pZ0Upv!Vkp}D3}RPOSgyE%7q zVgjYPlLprI=H}Au(jY-|-rO96(^ATS>GS3sG^%MuDEmlU+2(R@PG5YP%bRn=Xb_zn z>;9a>i4VYTGVuYJOeQ`6~ZiDlKEvhti;Or5QHt>oM~Q7uF!t(H)*D*#7Scdj~HN0Fc=+_Q43x(Ef7 zSfmvJo|=Q*i2c;HLaU~ic6U*xr_9|szZK=R_3iFp+u1gYfLR4BL%=cx%qC#t z1Z=#3i5x_1Fn+_YIog&@Ft>Bu904m5uwnt5D`4{kY`%ak5U_;;wn)HA1guoR77N%C z0b43y%LHt>fUOX)l>)X(z*Y;`8UZ^?z}5=b*#fpsz|Ik{G67pJU`_!m7ciHARR~z6 zfK>^YTfoj0unhuMEnqbQRx4m00jtBUK3(_u9k&tKL>8?B`t2|Ja}3@lXJ>nR zXGcS;p3w)+qrtX?Erspkl|mY9vnRyhMEwh@T!}w)22aJIMG<~V7fO4Wu`^2=`Poks zJ5TV+NXj?P;tejVjeBco<&H9ttr3!%X}KSDKab&3#B32EJ^67?#)ZdW_&4uRY=r$@ z7p(!*S5)B1IP5hw(dxM+<62}enr%F8_55E5ZM7k3Gl$Ry4P$`qGsHDjztgR)#*CI{ zvb(3CA~Vk(TZiMf$OtSuNhiih&HjK}!ER&$@gtlyg(VnmYX|QkF&oWcy8o^6J(7~I z97oiz%i#ZayS!NXX7trR%uT{aFD-bb`O*8re<2H4J6SQ$)^8Nkj0KtPVAML|NZ?*% z2Bd4AgAC|MLwm5bV`1a8>-C;Z7=Ju^KaGa#P!lD$&Nw#Vt8iB$rbODqk3XA`F})tr zd@cP9anCEwuiILZm>BE%b8G6W1O6&J7)LzmP14)3Y1971Lf5&|E%eW`afe%^dnL78 zIUs*rx>qiiFHz2h4`9>-aF`E(j1#dOLFDiUL-il%1=xRC->=ua0a0}Ch~1eYjkoo1 zm|aQ$9NBEoo(dnCK){pSXncq_Ns_1f;ke|lT8v?Y7^a{7ooxsm(H3GP3J_V?Q66eW zc#dwzoCAp56moQSv>lw|z}pb<9D2hcho)sjWZ`goYj-!+6uLRCu>KiFQt11U-M4ic zV%FGIYp@d?(mUR7-;Ib?bLBT$P}wiRSqp`SFs5OQ?y?%df! z@r3b4ih1VT6#o&zX?iI`O2D_l#dcaLW|@2D5G+$KW$tOod)Du&MO=?GjON6lc&0(l z@yU}eS8won>b=giIO2R_7;IB7ZO+kb1o=BtYM1bLk@N}aZs{x1kELHr@5+iiO-#VpUIi%dKJfggy{7D_B&VdJV)tq%b+ta!+j2i(;wJPHeYG1q$2!awYp@d~isJ z#}dsbPZ}lrjGPlYxEgGY5#X=hWiQA%v6D)$avd#kOgs^=NOpyk6HKY_)Dycb(gLLx zOBzDBo-=Yz1nFFS^G2I7bK;5JbS@=2<8x(u2uNJkiR`VOz$$=H;9? zkE+ypbW!F{Jh7K4$0Eh#o@k@4gk}n{Ci$#|xhLB7qA2A>xhFcPh;lKk*J_naInim6 z5V!|Hk!eZZuN9Y0JkdoAoUof?YKu=fvCkq62y`^_;X;d4sq8Q7>Oz_pd@yx(u>R7s zKNN0m>pW1^*}2!=c*etLSR|KFs|Nn5osAVid|@?lrKY@xXIi91iWc#~6ez$Rn)dK4 zi?l+4-#a|8-P&?@Yj=nl*_)?4JevgI^H3D-Ay0ezp1g<8ByzoNPJE|P2*6szf+2QE<32x%@3)vnq~ zf7J|{ix){7Ob1}&>vC^$1^i{c4S_nZ+v9cnx6b%6>P<&0yTbc9#-=ya7(yIp>W~>f zq4)n_{(q7b$^OW;aZ+TSZH28SJH;=u=nTRQZ{liiz*EbQ)*@u*sjqgNb(SOUa7tXB zEWb<*nO~)b%&${J=9Sct`Aurb{5CaYewP|Ducn5~YpEgg`_zzmJvC(B(B}W!C270# zj9eiQtG=Y_ zGZ}rWYmj+b3`-}h^VQe-kx#O6U<84&N9ejH;hd4!Mswz*ex90h^H4m~Fmt=Hhr*DU zEGJ^!>xb!tyVjqE33<*9Lo!W+q{kEWE}6$+YQmc|jOfRQ;+Y0HuTR7i^Vop1-s?pk zpmYrAb#(vFkX#b{^}Zpw;Hz`3+NEwl^zS_7E#=$F-O3g4@TtJvpD%xi%-{FR*UG(e zy?h2zhP*31Bb_JRFI^$cQa40%5N>dJYhBeyq!CTWWz0hU#&LbwmtUL3cwLnUT_S}Sh0MQN5~N*c7E)*4cDQ#_!Qf6#?J;jI&K+xDQPXixt2{v zTFx5u0kMf%4ro)=fPZV9%d(krAVg0p+oDZUYs+d}0aTjt+#mz>W1b;u=n&aH$KWH>HI+b?2d^3KV?8vwU#?@H^@tmH3*HiCzV@_*2{k36K8dq%U z-Lfr~b!1wsHHJcc2R3=Ck=C=?W$iVHCB5&))ffYbQT9_DR=RYxm#}3U-T!l>pG(s3 zr4QtZxUZKZ1ISJ}EPoWSfbW-njyxc*BM(TvG84AH)k;V?AKrd<;G6$xRPm7k9VEY07Uq#s}Z2yISI`1F&|2O{sgz_8lFXP{e|1-3$^?Gc_;h%btT#i`{ zVEK@8%vO2UuSWv8P4J#_*Ljx|4lG*=56k#^%ix_EU$%VKz_Jyy2bB4}XU3PoaB9wg zvN~_kWVKjmpU+zyUkwKIa|e{Uyz}VR)6;SF`9kf%t`@klR)%_NdV4~BRh?~3p|Au) z_hqu%Q&YdCq$*HRU+d(wxjt9*eB(g1aA3hWb*fT}&QiOmFKLfGVAXwe129VIvBGs) zG9+jN)YIrXHI8iNuE-$Ntsh}umi|3cmowI_P2IqwMOJnHP| zsg!qw@H3;QM)QtP(VQH0rd&stymuodLRlo>E?)`V|Kp^Y67+qY^2^Xdl`CISi=_+H z!+5jvk7ZkC-l~JTy-WF4JhDNrrmWUoS5FTjZi*;m zj_cEjLj#8S1I>7lp`>(qY)N6Hs{ZH(;#?WX#|>)-=+9sr0As{v%v%c#BfprgH7VgC)^-LTJvQOAJ75nr zFH#!2aJ=4HPoUhpiDrb}QCrDIIqSBnlynR^kvlqJ*nG2Kap~Gb^YKc&;Oj^siKyY_hzL-J=wS`YZly)(P3ov=$d4__zy)x(%=T(0)3*C4yt?TAu-AN&!&qCTpANBx2NH2jQS z#@Ean>f7pH)DIH=4ya{Svy}*FT*y5?F>5@ zb~5Z@7-rbbu$SR}h6fn-F+9lde1?Y@9%gui;ROsYWOxz72*ZmRUc&HFh96&T_Ifq9%hetVwM>&T_Ifq9% zhetVwM>&T_Ifq9%hetU_8|6>Y{huRklB8e3i|=yW!IJ!SJPVdeH%gmuFP?+@?RNEP zR2tEb(-O%{ZvKXqDWI`y#72hZL|<`l1H*?X1uYAtfX2=g(Abdz8VxC+ zu{{Mewxxi^*5TN;#j>$AD(8=|{-F`pKRm+vM@Cqm-~Xy|jig*dRzFfLVt|d4r^p5J zTzQ#%4)OtR!uo%kd;pOFuZ9i4otPDTRsIfE1zwV0!(8A)!~&Y6OjqV$2C!DCimbl* z49ey^Psz{E_HYW>Y~7`M)oAB~Nh~?#+cc}%uHM~PWL~tBtR7==GGa`(FI`zuzXRD& zH8=JpCHmIzHD9F{MGoFvI7x!b6}3LH-JU%UR;hkp+4@ntVkB$&odcU52;lqN5P;dP z(JeWREv#_Qa(J4XyF)#z9VLD1OBx+T-bI^>9S(mtEhszS)YH*<0PE*_LL3wXsnx=4 zY^+PEZ&$Bo9y%K7z1cBI%8v?$PD8;z)IPh@3};#Wv-+&b~(P|4a$$wSUPC@)Jsx@_BghA61V+t8e}Z z+VV~@7MpObj^SqhFM2y2Aur~by1~DboR4FXA2*lzomJ(Y%0M)nfAZ@-KG1sN_>W%` zLzM4XGK$bhCb_!GlMmto4e}{{HWLF@!gWYt2 zV0Fed2G%U8{uvJEnP{%?%)j8Xe`aKr{@EXJA{jDb=%3s%l+5NJF1Ks!%Tdm zyVOn46+UYEeG2*heysiqzkiDT-j93&KcJF2N+8E(z!NW^)iw@QS5~Kmx62bspcKm) zZz_pJgY#+O;Wn5HsPeh$9_d0OdY&6-p2Mde><0^TdypmYm=B+42!z zjV{Kd?_q@D+m!NG@EgMrx27)D;{GA=8(8RM!~;w<+t)`j+e!Jf<5hb9Pg0Qo_bg=# z^mWH@e?O`G4)^wKwMq>k9^ftN7t|*xi>E#vh<;NGpVso}(s{fXu{ zV@vCta5JWw(<#c9fim%3nrcqAL^AQ+pK4B15^>@vnWN%FX_KQPtmL)mgN_uQ* z&R3HjTbA?9q{o)$Je2gPHrkB^z6e^FR9e01hq9#`f>ytMP< z%jn`Dl(YYwPEUsFe-!#MAeQJi-*&U<35dSuw`ZAUEH z;GU44ma)ZpD=7S6Bob3l)C1vQ7hJh%?GtO{%1_5|{?~E-8)G>ChdBSwV>tgMdjFp; zpQXspV%_f{X#Q)V)jLbxjTJtJ;=}sgUCIxYf2hUkI^^Ko%K~-BAl3Rb6TM_qy82=bsp##1RY_-ub^B0^-5pJ#KI`T|C84P~?6SH$ z+d>>~(Gj30tX|R*>}W!ufbC=+qLIrNNF` zJ{;`mxN{_l-jm>ntVv88!OdVQ=yt+1amL&6Z7!(Ns3q<^YyE$zYtwL%aK6s!*6tp6 zPpI9xjTGg{ue`p>PzNGaHOA_1)rK*w+t9(z!0%Ex4|^jX2?s;1ZA}HMxKbF(kErFJ z(^KxU?xg$|jp1@vb=g)cfBiOwp;fi|$SkTctXspf>y9i24n$K(9#lsgp z>LVh%Y2u?3p%SBVP^(PdTin_bt2eHs)as%8KSK^m%5voqMD`8BhwnD5tuHiX{>Eou z4kq_&qo0Ah&2vTF9z0If6{x7I58&cUu0l()2B-&0N%BpaYZc=K1_G5x!%ztaWEk2) z`jM*EL>C3bY#_Cj79#=r78fbM%SKGJK@g%QGjDdcuF$Ed_SCWA>tI$RiEO6eHP;1$ zsjU&KEpLgT=@Sg5H0MVmk(ySvb5x+Sgu?&Xd70Zlr}_mkpelE3N~i6 z9t{dLgjw9cAa?O7?`Awd1cRorrhHvFUU^ztByW-AEr|TvB6nd1aFKjDtbndZ9I$)j z2j#E80_aIZ0e(S#MScTwgZE(#Y*TWT(=b0MQc7U=a}HJw>YzQ?1)HBP#09*!?_)*uqakL-7i1e%?`$YnFa8RYe(hhHV#b zXWD|ion_n2+u628-kxb|;_Vz;h_^+yX5JRt_V9MDt%bMqY^}VVZ#$2-3v7FNI~4t) zj*pf9LR%ZRW09?$w=rdAr!w#oHyeeY{<23-flFt(&*YZ9TkQVe94XO51+k zuCg8A?P^;eZ`ark^7bs-`Mh0gJH*?wZHIZg&US>i=h!abZJF&t-mbS@#9OB=!rOA& z#k_UdF5zv3?NZ)W+CIYDD%(eS>$Y9S+jDJ~^LB&n3f@-RuHM%z(ri?YkJD9p7j+m(eJ(b!gGt>A5C)=J)1Wx=)_&ZHYw{=-%yxo|!p10mCCvSaO<-GN0xp-TjRl(a$S(Uuq zoP~sY;JYQu&D*V6=kj)2)&|~g&#LBaLskuMcVyM_c4rn+G~>KL7RB_nW$((OXuh`W zV3wD+yR&?}ZOroXwkfNgx1lT;_@G{M)@I)B$=br(maMJgo+; zvvfJHc(I?1tBVaEW^qR`tG5F#AgCBlt(8IR;!4J2>sZL!dNGDwI_63Ei zYv5ti1)J#|vc{1iYy5Pm8n)Hrl?76U1T)nSFb0@`O7`lp1~;GZ1_NVr(E_LIO+^DdZ(RsRL%PGyfGa^s^{ znlHs;m@A2)umgeAup7Km`@dYCB8}eW4_d;VN-Ne5FNA%-wV3sP4i^63f;I8a zmEXdL_kjon^j_bOxeYGe1Pv3qj4ecWJt+}Qnuv3rfNd#$m1 zow55#WA}Pv_XcD4Mq~FTWA|ob_fy919mejR#_nCl?x&62yN%t?7`yivyPq|7?=^Nm zXYAf*?A~weK49#A-q?N6*!_aB`$J>*N5<}tjoqIZyH6RrPaC^GHFlpdcAqtNpEq`Y zZtT8b?7nF1zGUqF!q|P;*!`uk`zvGj*T(KE#_n&7-9H+;ZyLLA8M|*AyMHov-!XRI zHFn>l`+vN27vBHUU6}jd4c{IwzT5fzuimT7Gk)=n{rX_Pk+bjXO~;!$$CC!Cjnl44 z3)N4gfoe-mby}#_q=jm2TBxSu8feL>OG{ffriH3EEmVDU|67%M2^M~zQ5Dsveiqih zH$(q_i~2bniu>6w8jz$f$Z_^pddbq$H1&%`E*|adYZ%j^Y&n)GXY30aW2aEcDFKAl zgn_g2>{l^KUK3fQFEQXNqt;nnUygN*Dx|&O02@_-5gU){i3r531dT1NT>*G+hhRE- zHzLE@O}4n;Ta9QJG&~zK^UHR`>;`+QL0oAetegQGI<| zX1;GQihX*rZ+(R~=~WU>`qjG3{B?tn?ro$s=-%Y^W$^@GtIy1L4@R($rLXO6-yI4M zyP0on%FN#|2vv=!zFawMvcJ>b|MMkjzSNHlU|#tlIlP#54lkvh!!Od#;pMb*_+{ET{EF`XOzA(8^dGrd z{*h9tJOG>iesvAr|Mw=)0RA`L%F{m#+482D)iE>|*pl=aH^hTT(ALGdtyEN(FGk3q zl#n(QXSuWD1i*XQU7i{NVq6-hT>>@I%t%daB2ee9rMLf(rUnDoq4g=p;Lq%?){f|0 zpy0u{encNGMqj47A7{YaWS)7-QC7XV43195%tOmB;~RNKYTY6cqQ|)ag)t}06PWr& zZCt?DUUF7l`^dV(q|DVOz2xPz$>sH7aVph4s?z;$Q9P33QEpbJsF#ZxfVk;DqtWk> zgr6e`3w5i8hLPNuvFo}e`#Wi&`b1i&em5;tzn2!OPo{xtHLRWX=}#b22)yK`FmV>e zG2i+Y>kfR_tTKG>=q@0CI2XtIp&0Dz%V1%K&yCUC^wCF~elMCs{ak@~My1L4rite@ zgUN~v8|jj@pX~p$Bp6^zv`XYU+<05 zL&AMO6f(ZQ*%GNqlY$^R*~HEH$yQ6mmnJTvQ~NP=N_+Zcf-=3ZE6j_b~}S8jI`rupUc_Hl-i8qH0sdvg#$COh_2gge{e{g8C3 z7o9@x>kajW7B&_+U{r>rl}t&?#uDgpXoMZb3NjmyZ$2;6?%KY}%$KsEAm}V-kEv?i z)3OKL8P*wxh9NGhLXDr^(lgGgLhN8uc6Fa6L8inX`oUzj#$`IgtVotO^)Iz z-$!FEjf~HTQIG^03wEwT=Uj{SToNg>*_X9O_Lv$J-tR|R9vXeD88mUA(V?0kcp}EG0rvS> z-`dj+uDyNE-f%e7(Gx42AH7my1zd}&`#XtwMQ2#AVs3r(P+40WRmCL*Cqk(&vdm^* zwKrnAn2~SCi~d}HuqV__m+<=D=H{XMQcR%^N$5%mMo&fq=XUj(OXhRPsFi%6x3N6f z6P)kphGR1d`f7skd_y)~qlDX1wjcSG=z_rroJQ~e@e-K{BM3mf^aXj6+#&xEcKuf= zZ@^mT(>Rdm=L^UORInyex;GnXg*q`G`Ap<=Tfw48X+0Hy*ow`W`K$O#kYh*mMJ;G4 zfH`>pmiM-|9~|=5(!b7h4Z^|}%Z-wxUcDXbONnU*+eZvCe;epKwq)k78AzY4 zW@+_m)Qx``9rM(n#K+Jx&x82)c43uhV9Swa!BtihjmaPD{^Y@=;=ajE-TxYxxDyYp z-?<*78@0|E4ebX(d;4ItqobNU2uAXDV}h$}O5F2o5*-`X(KP%AxI^y5HR*1Rt$Fro z=DuZKC}0uO+J~O$=66eZsH>-CsE3(;-P3b*VM_+h&R@d%-@17EbW_!Xb{{>!hqs^@ zNBW1^ply{3B{2rc2dU+Ku+F9oJd)@2n;R%4bfc8ck&=XBbm6Sd=Y@+Z2MG>ffdl+2TZ_qgRp^Ja$R!+A$LiIhgo-?b?~!xH}LG@4&}m6euIwExA#rNn5dsgB-E zy8kVh@T;?wo$__k`S8@6uC}NTX;A8-he2fS=O>UDdGa*e8kR`jfUoapVZx25pEXXu z__RmYOp?}s8an6VOndekT(vZ7)`aN1ynyDKN$F)z`Bq|GIe^EFF#O zvLwtfUDmBg<~zFf*9F5cc)=_fQ$6j{i5-qktmnp6LL8W$o^b1KB;W`Hii$d5L*LUI z?kG0h$w^r2qY^29boC^}QRTjg?j(L zGt;qlt)rya(O_I(Bo&j0$+7;?RTK|4PcF#LKg428jk(JweJG7Yj2=usdpdjYVWGb# zLVXyk4oCbTAR9?jadZG>IBrGNz3 zNUMW@b}5mkFTtpYY!VC)MoUYOYR*n-esR#ih*Wg>X#H=M^jQgiUy;5iJukf`{Y6%> z3Q#DQ$mfT_cO5k ze*#hcf2X{M2x7TdJy@u&MfCpdSVcI9r~;ovto|<}O8?IgpZ{I{{|jRD{{{X51==5d zOlYGyNusnf1}cl_;75s|>0G;r&JfWvM0B=@axNyL8LP#kWg_Yn(Q*;pC8F&jx=%#+ zi|A1i{fvlyUPK=h(JzSTLn8X2fKFCKRP4#gh2qiWB6^mHt`pI7L{#j$$zs<{4v3Y- zuA3Ybk2Z^Fi-;Z&(LND9BBB?F=to8LdJ(-zL~j?-J4N(cBKmC+{gsHmE28g-=wAf% z6pM&jMbsvu4iTM2_y2eaZo@w5%krtn^!*ep{x3rWz;)^^I0Wyq?c{?sL0{9QCkg4L z*r66ryx37hDwq?Q%GGEOPfE>WC;o)QtF`fue2S=B*3%wp^Oe=C@GW0zevh9r*~AO$ z#bf8NYKu!?P})Eu#Ns-Por;7HbmCH(8KA}%u*+Cad&e*Q?n!4(;^$keURl2f5p#C9T zROdwUQ$&67(m+!;xR_Z?$*22&f^?IFzdy*Uu=@9Nq{-UgQ+EVerm}bN-ep=sU>$Lwd5{HEx8Nn{`gB7BP^#XfUI)+I zJMbQ~i?4ELRatU1SoBG-jm|>yxjB)U!m}&-uryw-3F?@p7Q>q<(C2wm>z?)oKfd|` zE>}Z$d$6rdc*r&Hww*jqV}D}n%XljSG<_)T6JC{5E=t8KM`sbgQaI&Psd(jhDgVg9 z25o*)v2^JwVKkmG#y>df*_#h}8XKGk_jClsp?*6RQ$t^8b5CzasG(;4s^v?T3Nx&! z$b{+`!AOt^Nf4f_InmW6U*B@rrJS$w-GPS6QIN4LosjJaE7*i|g z{$C(pDd7wMdf5IxBtMQ=U%!&yls`a}uTzy-$m??sq5?N4=fNxJqsleN{rjNuD7^b$ zQr=MhhKzlakuPK+yoJt1hQ4OC2buYf!E@+7^$|qndR~21eJ}YhSf}MDTeT~?eq+KP z1?)`$gVC8ZF;}~V0Y=n0)YG$7&V0#6uO~Bd(tV6&$%`MCB60m&&78bB> z0qYU4UIE)LUNWcyY*bxD{K)@~(u!{sNB48H_*d+pXsepY%z&}mn)7qFuOc1*xNE?~z6>=OcZjeuP%VAl!QCk53!4BYX`ko44`(ODnOFvZ>Fh#&r0ka60 zRlqU?EK|U20ya*-#tYa40m~AwYyq1nU^xPoD`1lZY_fozB4ASlY^s2rDqwj6cA9|Y z3)txbHch~$3z%KNW(Zh;fH?%LP{7U*u$cljOTcCe*qH)0N5F~%tXRP23fMdWn=fDs z1Z<&zEfTO20V@@-#R9fOz?KTwG67pIU@HV{CEfoMkoFIMcOeE?Tm+Eez2yx*5@Qc$ zN27|=rQ0XK4@*z_^nO~X{v$0^KS&GJ57R>RpJ}1`ue4D8cUq|aCmmF6Qd+3WX`!mn z`u})oouqzBtw1L3E0tNW0&0>i(w!(A`X|_5VU;4;BX+~mm4~qJM40-8Eil=|))X4l z6bf-?zl(UROS-q!9u&|GYqwi>^p_KZwW(xa4zanj-*{?0MkYin!>T zxAvbyT$YVh2tE7>TQ&Q7IVFtX-y&_1)Ke6PJYU+PmLuPHpL)CT%^!(KHv6K;ykf&Zo4h4E z_O~_$_Jn!@T}b9p9s!xRa;3GAd1TGC*Pb1zdw3j~(-EG1L^G%B)=r`m0#JM;52=#m zdeYs}1rPq1qj2NW{lRc6*)=cP*^Q7bt&K)D-FVK9wXhEnqb!HXYFdU$?!|>7ww1)SM z^!guSM32Pm_@W{?Sn{aJUh-z>J)l)L#7lmLE-stc%|KH8(J=z2S(JM-$OZ&RQb}P(q%c|X# zwKXs+N;>MXmBHwepLtb3e$9O?QVf^It+|h$OQMDM2Iz)M<186Q&mqC;`$Z{bkYEY^ znv^q$TZex%)ePbnE=m7*+JT(iZj|DUp%?*DPp4hetXmlw*%k>6vN@8`L8sKJH*AuK_ zsy(&HSiB-K8;wNOLf(m)wUonpXqDJe(bU>xRgX9h^>u>;Q;vUlAkT9{U7d63(vrZI z*0$CTVOebQeyofk)uv zU*j5HC0<)&<>Idi?FlYfEO;KCq9S$ay5(~qxi|7jbIHH_ z|AU;aIB7CndD1w2?4)tJ>ZEbH`lNB{KWUtf()+(qIwDD5l%9m`{}IFioGLHHIzXq~ zk9>eXkY86U$_!-rs!`gNkHNzKTgopLve;jU{NRU?A^a24P3q^c*8j5l8|2^mBeH3TtgQ1uC>)?qbWZPrTABw{a5vtkfu3-%qZ@wGjoO5g@;2+SrdOMlKUNK>YI-|g3y#@hx6;vYAJ%}d zlH@o;YzQ5r>!-Kdv3%fJJ^ES2;uVCm8W9-KQ796loUE{ue6sWqNQ?o6?RyZ921_M~H$*p9AVtsPqv7ngDtr&!lgNCtM+FA`ZqFYW-M zUW5-imT~6U*hzeGui$K1rm~&@oJ@ngZMez$0{eq)y&=aM?fXAT{NKCb^Yg$~OJs>= z{G0s!?}rKR5K6lwuD%_OZM{vQ2F^w@{gt$H_)Xe5{5I_zewTI*ucn>DYiZ~3`?Pa- zJ?$LcNIQrBq5Iz|e-qI^j-LO+U$9PY(W$e}MJ2EX{DlgCzmz$4B#!FY$<2@hC0iRSCp5$^CeEJ=ME}MNpBy&+>+LSqdO!Q-GM2_x*-HmN~ ziyhnO{_m8VB}D&jlf%gVdjYfnS0exKb@I*f9d!T0CioHL0RFE0Bl#I*0sa;IfB%3y zz<)!gAO$wU6O}2->F@AXz zR^=|`Uf2+yKsM3Gks0_W@E3kbc?GryZz}I8?<4b&MI8^{;ZqTT;0(10-x*7hH|!j> z0)E6^*ck6ro8V2{rS8Yq$Hnj|?pLotCeqvS%(_qgBC-KL3jg9CAXm}z_#*i&zDVAN zfAI%H9k;64O3s}O?_&6AhIcdk48waEewN|A3_r*4K8E)*e1PHS89vDH3k<)+Fx~VY zVlH21c!J@>48Owgs|+7u_%()KXZQ_MF44+{5U54Ld_$0&c zGyDO=A2R$A!yhyJ3B#utKF#o_44+~6EW_s+{+!_p3}0mU62o6Ge3{`d8UBjluNl6= z@HY&9%kWi(uQB{R!`B(U!SH_={(<2i8NSKzErxG1{1d}>7{1H!J%)c~_!owMW%xIS ze`okU!+$XRfZ>M>|H<%Q4FApWKLm3nhB8Bip~}$0(8@4_VJ1Tx!*LA9Gn~LMi(xjy zi41cX<}#eba5BSF7*1h0Rh$1K{_kPw8QA__AU~_j#ohWm>j3Y?!$C6U|3kn3M`oim zvf3pH(%}rW7PMK?Le-iUsu^janwb`=wzNIRD>xB>zg7|BEaDOz;1+Ya{-cb`Ec*ox@vc=kRvg zIs7T@9NtMghj-J?;k~qT_;cDh{DtQK%MteLq(=TSVt`Tfub1(aP9crN$VBr*R16n& zN`-jTEutGlG=-$Lij=pD=uQ#cBcft#sZ%ZykKQbzw~DA3OzM=o#G@xf^kETwRz#l@ z(LajlnT_vL81w2(0e`=jrd5eJB#mlThI{A;QxM7-veaG z($!Sqb-5__b~MeMi^7j*EG5&AM8}Y4GlQ+05*+koEGB!K1V?;`16`X@lZ2?R-0jUM zJ43BZa4O{!^?N)p`>xEWPE5VFrovtA%BW3p)U&?6!k4i%G4EPWxocB~E7?J~nq({? z6Ppj`Rd$t zt_&yX|8f+EgcZDXN;4vVeg>;@uc{g99JNy2rS_^HS3j#hkL;i&$~gHA`APYH`D1dc zT!poQ9O(n;SJHQ-8zdwE8RpNN{tXt%qv$Fo)-XY{6wS;+X$-VwYg_i*{&Ou-y`pJF zYRa|*d|Q18vRrMr4g_@nU0c@Fez!%Mr;vXaywI>t+Kv1*A=`xf{wj;Kgv-fku!kKM z+49LYesX`MMVcKur#rYmWE*#Ce}zR_U^+qLZ?oC^T^4DLb|Bc;5+WX;hseOqt!*J& z=8XPwi?r5sJk&u}Td@im1^rHow9ZtaskK|EVJ+xiFV-M4w_qbQdq`gc>pz?2wEi-S zRBCD+)oAMsHrZ5r|2bm&=umsBeyTE~f1TdGrbZT^wF4c|+7y7j<(`mDp4ET0MRGIk zXa(}_>zLlZ)*`JMP^_Jm`JW_b1w`V~klcrA{veVM-EBj6{g9(K)bJ<0ZW3N)gI$)% zF69y355vFB=>2b#4odiYTMlCNZ@uym*4;lb%=>u+)h@6VR7UcV>58Ih_u6`F1*MT` zQIrF?4-8?RRPUL{HwbPnD*|QyRizv<*zDz`=f9eyhKVV{=^MepQ^7QW_eP9mar#&; z5hDY}SeCbwlyFT>rIhiJ0%P3v?IUheQ^?KP+16Ci3cv16Li&an$Iqu+z8Yu6vc*f5 zCAwxND_tbtDJhh%rWIba>)V3ohY~Ve-bM^3q>$l2Pd2?TC*Mi${|x!4Bp-$6-%fb` zErvCXUAtqop+g)xlFYc$GH6eK*Ujng=*YO$y{g-7vSB6 zxGdZ?dQWP3{F*Myi1ueXM$Mx$3tg7UZ1U1_ad=`vHC|>*-$fXchVFmNDJAtZ`G?X^ zurt(8B>!knu4LDOU@WuaHG>!!PLJ0Ws0xhf&L3#YlOG=eBg)1I=%6#!BN{{w9_`jb zHxy(qLcSSzY9CB`J}weEuGxn5>Zpmw^=cdgy+b(&NYl}Ml=f~OG8Zjs z=d^cmR}zK2SuG~F(#O5)Hz{9Ho`}9)s@+09jyc-{stv%CAl!v6OJ)NW`n7(X+ny<8W zAP_)k@?>?6($z@Cm7$(mWb0Dv2NYRnlDk!`7H3REP0M)loI)`^u*3S<_YN$xZa+<3 zVyegWiIru-By~2FGwa=zND^4?E~~YEk(vf|O_{sedQp}-jrXg4F6#y4zGu?on9liJ zVl7RX)9LbAuS%@{DJw7cx@%!aWBm-ddYK3#wnD8Z;Gzmp5tVJCmV7D+hsrW{t@UVP z)mB+G5{H&=wLX|wzqG!r+-1Eb>9Gpyu_VXpeOs+pCsv3#%W9pjYFD}S?!@hNZ9&{K z>$QmwR+QCO`>mfya?roE&SgEG_@Eo(v(ft5#0o-pEfj>6UYE~jy*;r+q^7lAnS^vL z)U?)q@*NyFL~f7u^2B;WH>+u_cP1f9YFg_jhg8#A??_BtQ`1`S(%%1fOSlQV@*xSn zKd|7x9(Q;(djU;WmyE>zck$vlE8Ri-e@>e_e9DoHUv*Q0ODE+DJfJ1Gbow@I4Y>U4 z1C)+vv`^wB?K68N%B$n1Ap&DDQ64^0mX(y0u0+lsA+DBiiv9?W_`X_|i!7MBP)LHA z%@uv_I%nFYDoG?&jI$t?CRIr=p;WO`Ok!0g6wAHXS(7|9ukPQfuTbQr}S1|5P21G(28R-MIwD z!}*Pz0k+iZcc#~aOS(gM+0v6m3h8OJ?4DvPw2H))#erlZfyaw-rFoisA$#^b zq)o=TrD+!Mv%?e6+>8Vgnhy^mV#DKe;)gKpPI%I}I%X7y`yOBVNS#~_FMn6sISl{5|JB}oAHc(J@ZTZ)1KAfUkKt(y zPiHud;dF*}hBFuzFmy01WOxR{nG9z!oXzk|hI1IEkv^Wv&ACp%jNEdDE`}8hD;ZWX zbTd4c;Rc4)3~Lx73_K`!7}hb|$Pk_&DEF}xeuni7H!u4u(4! z1{m&Q7-YDcVI#vPh9QQ{4EHc>Vc5#>JcfH2wlQpH*uk)qVHd-F48sh&8TK&jWw@W= z0fv1H4>CNT;UR{H86IJH0mBO!Uc@lM@M4CSFuauEM;LyT;bjajXLtp}D;a)_;Z+Q; zX4ud0D8pk6KhE$t!%r~0hT*jguVeU0hSxK^f#Hn|Z(?{e!&?~M%J4RZw=?{d_Wr*? zQcqV(!Jj<+T%7( znIzQEAGoYaI``-S3Zh1Ox%`csJ(?vE*WptvigaCaSwzMOg%PU=(u9ug&y|*GiZKLw zUS^JttJ^d{bCY6umK)*>)QwRu8>&@PBZj3KGu0Oa-F>t-m(;1G0fc*-u1w{?*HP<^ z)XP~id^wFa3`-un|4meUlHx-a?@N@=D&Ix+?!UtOeue5+_rkya(<*%Z{_p4i zdSKW+K=G^ETDyBHF;j*{G*DCK-QeL9K{`NMK;?o2}Nw>bqeL7l68~-WBjv z1WdJ9x299Ah6*siRXv+)LHcsikqtb^bgY+=epWwN>)PVC9wc?DUcwaOm|c^w0-YOe zGiw-$g4>5Bs9HZ%sIKzBX1Bizy434P(M$)mX2O({4E(Hz^+xK&?pn9sjUd|4URkdf z4^l7abfM*&t8Qk3J{Jnh0~!HD(5s$WfeoUnlXMI%d8Uw0Ri(COs6f z&}BB;+>OJ%%n;Kr)DT;GiyzNnNzN09;@n#fQzHahrqncI&~DI}Px`{>Z?wUCAQs3x zKKgf2@f5$J{8Gx`Y5#;XcBO=?TEr=}1o}=^} z>?PXqP;=}qLNtK~OjU6*4q|oK4>|$kK1Gm$ z84=iC%{y@MI@8tP=L;dp2j2qpC`oz)u&t4^v%S5uqd{M3#SM#77q%2RLQYQ&-9?TN z!TAp4K*LvZ=HJi51LdIk8r<*e2_ne%!H!^iYoqQ8Pxo~42Ua4^O&S4Wt&MhJJmq7W)i8{KoV_NUu%yOaXaxv(Uw%e`0HE`k6yAYL3nhX?c^48YgsoLnCX_723y~O zRs^PWBK#+wTf^o%XtH0O@06F(!_{4x1vNtN_LYT0^bXk*3fBaCTDnPiA55d#yuBSA zNGX!E5sCU3p9Mt7)W_R#RW{%aR=Kazd3%e-~V4z8Yw?|n9~l? zw>B(b7DT^J%_i-GUse7EJnM9>AF!60L}?)1VtlgE&282inAr~Yoz159=FhUoxkowh zdc4jcs$__o*QZ*NNODO;#tCH+s|eD#kDkvO5PV9TH6YP5q95QXmgdlq!bJHFCQP)7 zAk4W(4-TTvNslnn(d5!ZFS5a;5v!P`q4|HNgqL5XoGrhgY*y}9&qgeuD=xGZY)D`! zU#>Z=#2z%=^z`(%^hU}tbJ`x+V|ozoFYD@R!wC1Zc6Pw9#@*BwqUSs2*PY>mNyj?+ zB6KcPNdoQ+^()Zosi$TetmBFwOE-Zq^I z*YHvB=VJAOh}%}+-Vtd}E(M$Yj6e*sDoP?pjMQL)#4071M641O1o zn=`3LA~~3!?dvp46?>V(xX|CpdF?_?BYTraKP)jfqlQH%2 zD7H53%q%F~C(IXP?eW1$tf{wc$S*!)Mq#u=lh?X&H^>VUru}unupiEC##eOGkxMj1 zLNxduoNbyS?V|htzmfl2y%q5~A3@%L=hau$_w>bab8ccsnSiYqFsFc(3z$p5Dg>-j zz|zm5O5o=fuyX}$gMd{FSdDMj&=br%Y`x(kI|-GxG~?!vhOcOh4Ip^&S)P{`F? zDCFuc6moSJ3c0!qgykgK~;$kkmaV5DOfb{GxbT=XNpkc0)dq6eb0?ToiyohYKb1y4#r}pd`!U|) zK{h9E)skI0n#i0y+1y)fonc5mHxZ4vbv^SOUZi85M_oMb=!KJ{Rnbm@_tvUJos<^y z`!A2RbGTJw=oCKR+!>LEqZhCn27QI?U^fi&iYI^V=v|rWOXV)3HwOC})7dAS{3jZ6 zLB7hPM|f?To2KTL;e=Yuob|zAYns{mHHGv z90#`JuXO*w!(8ogmLVat*R`?U?ZrYgV%>PWTQg>|6yfm3dKcEy*Q3@3S9!)F za&7_vtyBv>GmrV`Wfk?+)fw}JYFpi|>hg>Q}IZSi<)OJhcIM<@hOi zxN=Rb3Lm60ZHe6LsSd11np~f9ZLCUtZM0E=ax~EI(bA8*{K|FYWy6d%mw|AF$4gQ& zG3EGpHBV`#BwCJ!S?UI*87sWuo=(I_A)Qg6F@QN8)=rR<1Mm3O9<`o^m{xPSDRnL{ zHzQLe7F1k=b@-b48m)ft(G#PSWS7cb<+ImhHl(%R@pTF!tE6Cr9*s>QtD z5L3UD90|Wa7wu&IAI;dJ9~45nM)jd4P|&-D*wFjm3dcYBko;GrOP!#8bX52M|D81Q z9ymy=|MQT$D|TU+hCD6bklKBd`LFZI03aFX^sFsLS^qtfZ!5qJxFNCB!eyG`8*qsG z#wI83m9(x=MtkLh#Fs*pbviGF_qF%`RtXcHwel`$>&P$TBxhW#9LjMGdpCs_xQESzZ=f-IWwKu@( ze#W8|6e2Oz(tUp@=|uK}h$mJQ|L#%8qvp4GA*Q^7 zNcX>@&Xd$@0i+4}k~F>}`hOnqEUhf#)7t*{7jdi+|C_Wr*8jjU4D~JdBzX!XD2@ca z)$m{NjD27jZk2Hkx>}D4zQ4otj17Eid%TEnC@)E~^Y3-T5HYS9@gl|@)~}RA{>|Uo zmOw;v|BUvIPZE=XGP_E*3{OOJGZKhsK0Jts!EbFf`~U7aej2jzESZ-Extu;X8R&cK z;9vkvO3U#);xyt^MS3K?L3+^42_6Ann*SF_uSod&r#wYoB5#zt>f zu`A1zT4j%N1hIdeM&kEyR96X#9pL+Ve|*QIBqFG;sZ zS5Qb%{-MA!Mlh#1O@Pfpx)kwn>^sw@hzEt&kS&wq@fc^uf?H+2M_MmFK-Ryc3xu*i zZuA1FCA7(j&6cQi+9#+Zv>r37Fl=h#@@dCoT^~~^L}Mx^IWX-Sov(RiE%TpxPnt{h zg}KasQ%oajRidNOsKpWu?|?eI9+~+cz4g)aqvM$Q57Gyk&d~-i^Ivh*qn{#~e~)XV z@QGrR$+?J#wFEn0;1=k~KB&_XKO8bY(Af&J`poy^s_Se&oT4U(XRULiNvsyInt~`1 zfA&h$)^EIduQ?y^&%;rGF2Y9qL~k>EvI z6A{LZ@Ozr!w#{iR39shdthpVKBMnIYe(LQu<=*zTQwTR#MMd zssxaO)`hvd@+1J;F&i>fSGJh(v-0>F>YNQ- z;U4aog)JA4+(hj{b*fY`d};}=s)db5MkZWBD#7mdg+2puO%{j1Z0MG)08f%wnXwrN3zQ4D;1tSh~5oZRrwN0zC<|(IX@`t$42MJ zC+DL0GZb+zPe#N&w-#}at_upb7ob3jL*2Nsizq=qgZRS~IVw+{mYod`;bLmVD->0N z9=7&wjw&%T8k(Q3#F)Q9lq;(Lm?j!jJs+_dFs+#9LjsSKKA3mJ9?VhonfNe{J$B8E z9r05M^TD{suTCJc>Nw(Pt%zh(S3}FR0&xJf`8uV@b$S9`PrV;=7hlurhTh$rguR#RiSZIiSWTBD z(s&$k&g!+sBQj&X(0HG}49ovmzOR7>0XcXB74@}FzuQwgW?9ZkDob*nBwA@Axssm} z6SMv}!qsii#O$0!N$v%BmVzv zNuDkL2Npknlkdd){!8i=>gBk{#GiIso;|WEJ6qv~A^v)!EiW%J&s5;4N%~Y^cLaS3 zB>L7Ju;n4Lr$MHsvL4;&^1-xXH00=OKZydw9M%&HP`11UkwpgI+D&dJk00Bam|5?( z$-t0)W-cIdqEc5x0Cd}MM z!3jP|Z|hF-`U7Fct39?n*evU`0|66TESqTcM#@FkLM4;+y@*6yO(UL4uEQ95`=ni& zc{TfVsiQqwSBE^|W%O{0SyYu%1d_U>@<(U8`V>{~-Gwa{Kkl4{^o-ercdIk=X2&;v z@XH~2Ll2VvZ=y0+QsycZ%0ABd_Y>uhs#PshyVQO>30_d&m7kOUtxOrLhWf7RR@*sO z7^yihfo^IK(nr3g771tNMvKEejppJR(PF&M%*B&VQRm5xdmFoY1N*zfFzmtUr$oNmI zTIoXU9=2PouhnYud)V@4Qu}IEn24{6O&!?;(Q;^zgX0zta&X4W##m}?EAwp#P(nks zYmItPXISg3t}k~5%1lp#=#bN^VG~jtRzkSgG{*8aS@A_18$CCc!qHD0oB>2(ck`Sl zP-R_3+C;rNO3SJtIYtxKoV9+-HnL~bjv``Gtt(NoyKyzcs5Ikme7Epuu?gZPPc??U z+GXt}8&-`4<_4B^H1nP=?U2-G)f4K~Y6#xHcIAELdF89h4NAANMOmesB7Xq8;IGP` zl=sVSxlp!B??^wB9+qyF4&lVXex~*Bu}CYT?EDBsU(F9xHnOx8&**QalyuR?kQFA5 zYqtkm=7JFNnD6JIV>+iY|4`02n)d74X@GRSn`^mZ9HskdE?M6>f+oPvrc51Vq+P{rb9h$okY<#xqGyAt%q)M@I zPRa#X-vxbAXKxr832oD+_iv%Zfa2-6$=y!O^KGY}*1ws?PLPnjb8Y!E`!^AN<4nHz z>FdDfswu0h!o$L6JI&r-PYDeN5~%M$gb-Wa>HU6^O*roB?Iz{7?bL#PA9bI8u$MiR z^$xB?2Twht-)oUv13Or|{>oi-{wmv)8T}iLE0msP-hgH`tr`2;PMOtTM@bWPK6*M! z-S;=lR@}D9v->^9HI($uwoN*-zt$qv8037R_Fz{F^sH!dO)tW-R3UUzC~V7})?Y(6 zmd=+g#8F3Mms8wdZIOJjqnh;EVK`p5?rGT!bt)pRg!kGej+dXr{Qqo8K3i^+Z&c^0 zVfCx=ztWlkH~9i}$B-(BsD7%^VrN}SQ-ZJ86pnU)$dvvBpMK&aVCui}whH{<4{hD=dv z$gt*3m3}EHAD5rS=I#M^y7V2g@XE$AS8lFUqbWeJkXMtfTr9mPmcTPOIt4Mt!b}*Q+r0G zQPb857VVsg7-qCUqrKBK+C`3_qZk^ercTG9)@DahQLuRJ+LB^~rGY78bI}=P-5fx0 zwPSX-V|G(RxS`{W`HnzL4QC82NybLTG`AV6@EhY4RQlkXSVWbH+Qy`MOHfsB{Kb2Z*G$qiZI|SmRc%S% zoMV-wAx;u)7?ZM#NmT@;TW?2q>z#RPm(jJbXs$z_gg92rcXWmw zi34JuM+ePiGgl@Mv=EZtdxIK&j(sC7-l*__&3d7CIdMmey_u{-`pX z*{~Mqzy;L_+m(Y09dj4O>;ICk??n?tjd1*A$b4oQ+}?lQ?DQREQl)! z+47(o!-XcQQiS>VSjT3ZGeCN}ge+*jT0X)YY`T`l8C8nUc&9EiZ$X?sMU!Aq^2v27 z&4V|1%pI}<-M%VWhv+l#F?Y+`n=7^~1d217O((u?M@1_rjC%~9H>KsM66ZyX>@q=xV^hK#wo(ZqsUn^_z zCD5<-$KCIPp|+mQwmeWN#?^0+*!8aG@6#%%o|4_B(LSJh1J|4fE*0nYVr}+XeE*dq z>SA;$g3cw^Qs`~nm9;g4tsBI1Lp-HmQ|q4g27f5r5pcO0y4w*S(VUlgN*9Fcfezjt znQCU}9EngAoHI!n+)1|~B&P#?XE(0b5qFxq%-ewc=kZCpC;tp1cEeVpJ!#Z!PZ~aU z%Gn4VwR{O*`2n$nQ_+vX;hubmtx|tIA3RTPj5%4 zp=SN6k2UeXPZe^=a~#UOYF!f+NA*bS1t2Jy-*jFPD$W z*UPud_s9>*Uy&b^pOl}LUyxss-;m!yW^f5PKywir+@TaHCCW4 zx4^on1?vob>P5&ja7?{kyJ;$pT^q5E9x8SJL>z1e(T^9URN5Z>+H_{ z4k_-PWn8j2P}99P`vIYZ>fCQCS;BSh6H2Jg*Gwf#xz3k_5~}l6twd>&Y!jZJFom~2 zpD>lTFHAUlTfl{pO-};Xl>bhvk+h%+qNvym)f%1vv%^fBMXL?z&o>cWvYsj z-IW#O?Y^wtybWhH^0qsxiMKsjA>Q_8HS>0V)*jv-$ZFwjUsfw`4`!Xm+w-&b^7c?x z8*dM1we$8!RtIk{$m-#5&D%?|dU$(jRxfWqlC__=AI&myxo1rym_Cwn56^bFJWnD zyqBd{j=z+pgX1q_=~d(VSbFt%A4{(p-_O!($NO1&-S_}YuOA;|=?&vAXX%aOkFxam z_$yfY`SG7)=}qI0vGm0F0hXQ|A7bgvo`QGt*F*oj=RT4v*Go-%n` zAIVd+ogrykR$Eb1jQe|x)V4BOTScl$N#%g43sX(}pt@Zhdo*-apj5gZdL(}m2Qf<7 zom~j7T5xBgI*j?LN}o{0iR7KPyZSHVHQguSshG%s+26^L7G9LGwhQxRd?VfZ;B}Pc455V{gHA zINi=&(a}zamWsw?@|2zAB#fL^;TR3fl{7GeG%#1uz+6oOa}5p5wKOo-(ZF0!19Jln z%#AcK$5Z&bxMdLk6Iejb<9EXvU>ARwzliVSFNgWSwfyJ#TZQ+*AK+ur1pEFb0_)dw z*!`C+<^b#03K+$gLY(kA7{~7rTVOxne(|7q0qg|~fbHOF@kSWU-w7ccv?5dQwfU;%vp zesC##e>AuXzTY2Q2jBk~gh-pF4+g+ygHHZ_E_JYxe+0g_^H0L}E(qV6I=F{_flIyN0#Kmuh6~~QqU+9w@59$Q zh10pz>o&3Pt?YXT`)+36d)W70_T9<8yV>_a`0Xl&kb2$4@OSFiVxfskz0oA>g70xKBTBt-g3tlqrwKjqJy|#pzNZV9z;_mG zKS{muY~c#{&K3sYdx3C0eCG)#;Cqp9JA5w_z69T^g!|xoo$vsBmk5u+ce(I1d{+vv zfPG`F@O}8M7k&cYTZCW1_jchG_}(eJ4&Tkf+wi?xcptvcg?o{GV<+6TpWN6DMb5qv z^i7?6BkWgAU2r4RUh2Z*Kz5g!dprfc3y-J6_u}I)Oio>P9K7OFR~`qgQ`a1a8D479 zan!o*cov{dK7mHGhfYAm)YSJ+fCFIaUrxX?koxBnTR~#p37Gk%zH?$He7}7HcF?E3 zbpl?x)IXePgYS1w?1S(3PC!tR)Zd+e@}&Im1l-Nkmri0yUOkx#-`h??&8NO{5^6s6 z7bj1J?;oE$1HONL66!zo&6CsM`zI%%B&k0-ISamjc=8n96|%k@-Kn; z{cYT1!q~sx7JmPPuwl`HV}DrmeQ7vJ(8WHo|cyZheH`E^^g3mayMe z*(*1ofP4^;XL}WQ>Oww9AIgU!$=Ug~H-m#UnKn(p$MkGl!xU&{qt;p8@7VbE3dX_i6jazv3}vmUYTe6 zP%7q9mWOo;S#SV1!S)Y!ONy4cHg9OCMXmB&MKC(dtF`@E0$lDYu0d)+sA~LKX;DLE zz3uPlZwSV&4d71*4o=|LR>zDaudtfO^A2|WF|rA=>(Gyjo%(3#r$D|J{wZ2hemnG2 z;1Xn(oPQ7f6nrW1r+5kDaRfB*fPx4QmVYpbwSN6vb`i_vqw80pHV40 zpJgw${Tw+IYpc*@6P~PkG~(HqjS0_5PotyK#;jL(rWPm;?e%q)wkMI|u(qbIzR30~ z>8XZ4(T}q{rAy8#w*4CUCGn~%sGJ&Cx%Hap6Zc1-__i+B7!mZ`RgTjZxRl;f9 zTGMhk1FeY(VgROtoeKXR*96D!z@^YmrQhLHHalKcd(_dzWx|fPyDNJx%HMHRVDe|0 zr&!3IsFIonc!63vd%>0b;-fqhusnSwor1AOdZuAXRKOfbMQ`d+juoLMy^yX55-DqV zl|a4n615c=D;odD{y&YojpJ?nHQa45_rDyv)qdarIm}=3DOnRZV$PVa>=v;*H*9g0 zK$Dlxx)RL?M89ou`UmQrNldc6&ThEezi4QjXSn3wo`=2`;hi~5V@GLak+a-z(Jy%g zT(gfW8$;nT{$Ln871WM+1{j15-c)Q%D1|hz4dc4a^c6n5FpskLSRXV-45O zy}(cBd-Kyj6w2Wy=PFIPevS^ED13fee zkX<~&5xrYeY8`1A84)-z{2v2~vnDNLegulNRRc=tsMw_4ZD^OurFQNbBFrDc8?{GE zgt|M`J2;1cVZZZOwBFT_ma#NOYXs9%M0ZpXaj_3KG&%CdaAWGU!1BicRulEiL8%gK zgx0>h^&8VN<{XiIdsI7UMp~+Uus`)smwW$yjPcl-@{KA$4BrV=)P|8F%6%SeA+GhL zWo%Z^MiTI0q*8!7>RfPGhcc(mlHPyq^*_B`KjrVo)a1pi|9yuB=KpA5o~40#jt1tt zG%(N8z`Q^M^F11v@6*8ifClD88kisA`#+AG!@++6?oEC@e~)m6aK7*x*av)4{3>LE zzjm%SV<$S?o+7uFl8Fu+JYDkE)8U$)u)`&K!aD2gmM%UV>G^o-E#Nhr?@cEVfUdAh zmu<+aQ{mt5M*OftxDExhTy0+gHk5p|n=LpZkEM#3g!(Ga9(Q3uVWbwPS$3lgU;ls8B875UBusE%H^b#c4N_3sApzr#+1Je~SS8|1X2j?JdCQy9ZYFrwe}5}Eu{B78w`e!&*?C$nRF_z8Gz^RwGSpsZZmg6p)zXj)> z<>s(ohPlSf;Em0Hjhn&F0v$wMz4<9Pb2Dr(A2K6@yOSOEKmoUEyZK4T@^RDH#nm;n z=5NArFPA%X>EX7X@Rd(M&NcvveUZ$ML)N;XEM}b#kEYGASPFzmz@h-dzayTu_7?M_ zaOO1F439Xmc3|@(P%|IGc5O*alpWmsFy#IWiif#ukH1VVVSWg59t;02YDL8SAmpAH z`W*|uCAY=q2Oy^p_Rhy3!v6o7`Wo{$AissHVfhJd#^(Fs$`!zVfJn^WFTPj5`Rj1q zsYCaN)t32drw(++5G{N)bD$&PhWh(v4D3tHdvNcW1MP8X3+|aWuy@1+3|~2G;9O<< zKkoJd?g^k(ft^9H{Ss(@kVxXoGY8s`VnH?IZK!j?Y|>TLQ1562nu5E}9%w}d0O=Yn zCK&UVG6sMN1Bh|hrZXmQ2;hsh0bs$<Mx~1_CQw zWKQ#)GX{VPL#C0C=fh-iEoLoiv!@h|AYu@u#D6v zT2qDhMJgrmokUSST%d54z$G)q#Ow^V`NJaGvT?0gs`DuJk+eP9St0GL|I^GePu0$< z(#~qt%(9)T5bj`&Mc($bwgh=c6Xg9tJI|b*Ag?q*UMH@BD-U*2B@BA1foulelA_uQ z(_Dq%2-S!r)?uw(eNmaoDuPE)v&7XNer_TawoMuKW}7Asdr8`+;V-#h_)C5;>?P*h z;V%LI9&V~qZ4s~SX62cXUX?Hbr1*knR@z?etShy%UKsD|HwB2j*qEIW z5|-7~Yz8{3OCiGslv(jSZ_JlL=9w|`u0A-M!Oe}pLh5I;FXHq;Pcv-3LaJnQ|KtIO z24S0j%0Q`_u#Iu>v2k`_+CZ5yhK(AinS+@F<;t7^JH&d`=6dtxQwJ&(mNUE{g759< zuFM<&X0Zeeaf4?K05@6UA+q_Z83Vv_mWT)K>S68w;2NO& zGbUT5+}_FEs+nj3b~#CD(pS*HtfYZiMFX>%24)Qn%vu_lbu=(VG%&?9Fm@W4l40L} z&ICIMOl#r)why1VkN5Cd{2;u`S;3sfzaNhy`UoZSn`!j1m9G*wkF?m4HAc`%SGr*g`Of8ee z$?U2_<7Xu4EoV{J%=XLyATdZVS}LA>>|$jSfrB!|-V#ZQTQv39MaozbuZv*JU3b>8 z3x^$Yt(|r3g5igEYi1rhe>nEu)zgoir?&he1FcNGWnPte?1(ZD#jGfD+LdP>I~>V_g~p`9)_PJD}Vb)F+NHzi`H}{fZv(OyLDnj=_pWGeiHS_0X z9E0VHcvFhpjAO8D5pMw?XWB7Xw~)=$SbF8rbeb31j=@5OJe!E2LpLv&ehk(qG?xeF zXC8y)33;}H;8ByOdD#DN;g@mzGJYLj4!i#v`JH_0r^^3dixWuWywo5uev`eHzp=F4 z@^_XVu>6CiU6y~cwA=C#OM5K;Vrj4C-z>et@*kFd&hjx!k6Hf9(g7>S(vX#BsnPgX zS_LL&&?>U@Dyxa5S6fq9dW|)erPo^1SbCk+%+l+v=`6j$I*z3`T2Eo=aqD=Ne%@+f z=`B_(OK-JKVCikvi7dU{I*FxsSWji?oz~M>`UUIhEWOKm21~zaJ(HzhvSzUKZtG;0 ze%U&OrC+g5W$8WEX)L|hI-RBWS#2!+sx_0PU$f3&>GResmcC$}$Cde5S^9J90+#;5x{#&6wC1q% zSJqsX{@R+y(wD6HEd7nOfTb^63t9SG>mruEVqMJA-&vQi^i}Ipmj2$ljHQ3FE@$c6 z))g#$$GVcG?^;)}^v~ASEPcsgv+-M~__wUVXj)+&~cvsUB#KZD!D!AjnDVMWg` zc8Cq)Dsh%LPWTJ(cYRUt4~+o+%m0Rdl-tAK4$*-R@-ApA@?pQQ$o-ys0HXa4_fb~! z;E6c>ws#eKli=pSWQJ2qEV z6od0JxU|$2Ro9C@h`U^An-ll6`9S>B8{(gy8TWMB8}UzH5&v|1+|#BrhO1L^*RWSK z4SU73;jT#gvC(#>Muz#2Rz`_d#&nI0wC`wTT&oRb$N>0z3!*iM8;ExpX9>}4qLf_kVqQIca3&Y zY#6FAj2Yh%9mX#rTgi1ac(8hI~c0v&JidHw@OuvXeFcb6DnC0Pf12d79*aL zk@?z6;`^ThYf#`QlW{RH^@%RVBUk zUl6zcW5h58va|9v0!^wGy24u24FWeL_+H~vn%d8KN4d7i4H40ZA|@tUlU1Vr`7-WZ9{mY`~SYJ zBvRxSTciK)+k#S((Es-}q9Eh@|Gv#A$C&=VZxdo0*Z=o5Aig2}e_uU98`l5#IT7BV z{y!1_zlhsY^?t@Q<%ymx2wOi@FxzNK(?kQaod#wH4UCHhW+x4dn+9eV4NNl)ObZQ+ zM_T{;9tSkib^I~zd%*JFB;F(J79NuR;{PoD+h~HNz7nkgsEpnB~Gbfqc-^ z+|`qp<6K6LxO}5`_2auHa*HLaECeZD95ywpUHL|Q8px<+$mZs3G%d#( zmDLx^)>!Yl$K5R4G8)U>Hj5N^rDJ#79$2=Da`4lu#M-z@#L7WM3YSC&mW{nGtV8qT zJ15G4oexFEb;gBzZC69R`mBnpPhy#` z8Rg#6=>A=){2_7$cb^A=9fZI!BoB>!Eht0xkWeW+Ta83#jjesn2)&f9_z{kwyZUw^ zco`*l3?sv~J~s+kPA4RCnbY036VZuouhbsN9y7r3U*f2(FW=GULK$mmG>DKPdp~dQ z+kpafPg$hrC$>@D(YKvYfjDl@()+)h10Ihe;ivHapT$4Jx9~i7I|p$95`0?w_G8JM zdaG7$prln(*dEK+fXdtUv~G3-t521?Ywy;+P86m4O_D{a$R2n0bs)H1uO4Xslo@!y z$uX1R!uJ#(M0uw{L*HIRU#Pc&lqQlr=FY~x za}k%Y>BZP{%ulYZuMMFa=!&d8Y}wh@in4S+KT7og!>pQRXiMK76rtPZqKHs-NDsIE z|0$aP@1dFU5W%$4l%|aa=3E+>y)-cGG%)*UU^-}EI%#0`)4&{{f$5U^{|fB?*9gBA zE)uf%Z}V>64AB5867>GDSv!xhk+i*Jls1CsxwX zW8>$QGy-BgO`DIgm9PpLcr90zEyvh`nC|CZ9{)!AT;Thk!Y$>*4Z;QdP28*Sr}FX6 zxpFIdKr`RX8s^MC6!F(PXK-o!95y^fW7Vi<2GLLaYE6TVG=Pk2|y+U{1E`hW{f{d=PULbWb>KnERjVTre(KdB9xq1Q9;SmN z01H0!iTjidbxU%gar{4p11{MIx!3qfu(!Vy_Wz#8U(MeGet@s?{}yb*8o>q8KW`D9 z7Jd&=fO8<)@1+pc_h+zE@N)1Pd3#}q&<-`?;P=!yXTH#1K_Dw zkLKbx)qACCA*5!b%TZTXT_gS-!%N0{UDKL1a|SeXp3}-PXKCh?Y3B53<=8URIZ_`9 zT)s|ID+U);^obd6na&*Mg0$}8F1Tj63*H*$0`uJAE~pvqf+NFRU^{1|&z;FN(ks(O ze&wMNWBzHRSDG_MeC5t@5K=mmJC}q1j>4G#d)&MH1mO7S;;-WK_!q$&&@7xStP`4q z!@||VeZmXEo6rVi!4Ba@u}2I+JMgUd8vJ__VtcLEf7Q^8TfrH(^?Wyj2PEb|=WYFhSlo668IfAn$kDc@s?u z^0E@-ElZHMGeO?r1bMe6$h$v5-mkUuCV}ri#{bfe{}W^Xdw3#O7#`vjs)jh>Nn`XN zhsIXn{ZzqRN>iH4XkhwiV0<(%{WLIs8khhLOppfVavGSUG%#04_P;`0|6c*Dzh2=S z{yY4+ya4e43f1HI@KJN$dAJ;*+do$}M`(G@9ziL|@SHu2f|B4ldx&HeN3OO=E6(=5 zgNUtrg;9ka;aJkx*NgbN*XmUGLpx{sdJx(;&)IH-H^6gtS6>$*>vq9V)rq~`ntG@K9g1MWfG+(BH`3eopJv1=) z(!ktD1M_tnnEPp9zCi=?01eE8Qvbh#6K@n(3cmvXpDFw|_|4q=+%*vRDdDHlXTqjQ zcb}kGpu+Qqtv(Tj=l>C6^OUC*mnU6&^>aI6o_40>^mRfbq}*8 zc&)X?&rtvWFin$31oH?@X&$A4d5i|;aT=H>Xkflc1M?&e%u_TlPt(ABiw5QyssAtG z#Lt6y{tejqKbe0V;{T;_U*Jj-cK;EXJAGDcsdT$QCNP_C_gPQ`QD=e6rBN=lzVV1p z*k5Ch7j~ibor37}F0{UJh)XyGQ(S0$=?I-17h0bgW$Au?q@E6MZp>Qd7GD~QFvNv+ zlP?vq4cGwVOF`gKdv@%O3VET_ORV#P)cH7r$_AnbMovT`EI?X zD5T!?xPn~kmE?%4$PrhQBd#GwTuY9)jvTRw9I+Vte-n2xCr%NT@VnuUN4Uw@ zwR`7ZSvHZI>&?KOs0}vDTv+MD{#o)j!zgeiT8_RLZO~hG?^N`K%0L!i*vJaLP-jSS z=OW^71A@2tiNZ%Z@SZwoEkpM}QYl>!$?e1|y zNc60>j`p?=PZk!jvZlH$OC>ognmbmND=QEM;dMO$%&JS7KDJ()WvRtBD{d8$=(Rbl zSJuJKwwA29xjWRFv9odIXAk{CxlwU1i&7Ku;K|HG-ct4gcnc-oQmjHYM5=YvRn(NY zs+=SW*2H-#)nd}+2N69l>)V?5)*spLaiP~`KCqT%Vj(I^yfz!64rZ zhCj5xcyt;<>)rwo4J}ji9i58s`J^=iC3hd$b#w|MmysezFEHZ!pUOSNaS!n`_~(TE z!r#RsVupB;cuVZtANP#-)Hu$YvD+`E!BbQ-eq|OP57sa{h8D1a@ABF>}-dwv)$u8 zCzuLFoNu0)?mb1jh#E~rVnNNW;);5gv%I3TJ{w%>;nUmJ(NkF9>Y1Az{$qCDTxBpa z^w&9AS$T)^3L7ftX3fi521zzt<((BwV1zJB=|O60RI02!gwJF!KMx?@4C0{%JIo3aQ8Z|T*Zc8LIyNZrf#ob z&RFPmS}Xz^D>)kL9d*^P|HWRp!Bto=>b_NeGh?455cb>=bH;qHU6#cjC5(-c&+1RJ zof@VQh!qv{&`y5}ZpQ4x;J+Ouy{_JFyzuXW@I`TiJ8LV97ycc1;2Pr8djmwjDKNa= zp9bj%+p*r~%XhuRZg-X2>s;&WT(zCuW4-AbUChL@lKMTx6-2jcN zqf*&CAcsNSV!m$rz$SIT$;gEc^Y!xvHY>43k>t#|#c2oHrFd9346j*ddyA*bd}G4; z8EGXax>2LK;ln*VBYzANKFuS1BNDt*BY7q9{Wo#H1j)zIEq*o~=dosC`n z(_8Aos8TBnF6vcA90tb?|D(Q4w#|4q4niz3yL1D9NzXoH8`Yp0(yK*DlomMQ(hwyL z=!d=|G)nN3uu|275CyJGQVOCPm4Q-9ec5YbT&eV`RUD;OLSd*<+-IMvZ zy?igcI|pIS#VKhAR&{5Db_s?cdiC3+p$7D&^ErDpCe&A%7xX`gp|&7r$!I5pKPp_}F@>u8+2_>D8kyksi^)K$$pqg{d5U zsjLvb|Kqr`kpE|u@MB@0kjCG|mvL`!{cw_f+&*UWC-OqTHmEKf*)+`4=wlXt1D#EM z%-B!lKO`xkayIob8$Xc(@tjS4%(!ouv#F2S_YHP7ZT2xMziuh=8yA0;xZB4J{z=$5 z=3}OR<9Ckv*g}AA=Oww?BHKXe{RjTvTgBC||Ia7P1m2H!KApR1r2M~)z6EUQX0$Dx zwwF?b6WV-)PLdPaJd|au6WUx9q5D26gG+@nXp=7+v5jy-n}fha%|9cmiDhB-or5w6 z{TL&*lFUYEqqdTqjo`Ys04g^$&NO42Zx#w6bWM%iO7a=<|Nk+K%QF$oPiRW>QyQ3` z(ZKwi2IdzuFu$aM`4tV!uW4XjqJjAh4b00@|G$zG?-JJwe+2)ZZ2mdu|9S3aZlyH- z*Zkh)TSC(MsfH!d^OPOF#VADgz*-g}O;P2o?O-lw^({gHPQAkywEzH)!(;9%L{Yl? zB3YEmg5TsT0PqZLKa{v`6bs88MI|o#2K0eI;~krA=CtCURZiECmm7}9ntb`R@Wore zORcD~qO7{gQC+{&mxooOd-RpS0J+_liz0}ofU!p8ZN41DC+w#q?R5>lg@{hRg+#Ld zy~K%2gckm8?j>%C=KHSB7z+=OJmha`fuKN5Jques?iN?`u7Uz^%xP}f+f)i07cfka zy%R&;vf zh%@mSm0dU`2hK=WO{wsazm`ok-o=AI)P<6DFDYOpS@2JvN~D*1T@ixdZ8`3A(ZQ-w7u9W0v2tqm_? ztc8b5`du8;jb3$D#8oGbprPB6A9GjYTq|pW~ z|CE1MFbPwIJfRdA0K0^MaJ%rN@RINk@pLgytQ5}`149g;C&b6ZUy1Jmi|7s9c_U>X zv}Mi!r{jnRr^va%Ra)ENayHb~*3{LTN@t3W==|!M`ifHHB~;jp>MLrhohD&A5Fah+Di3mO?_n^s1(R)$w2!#42@aiOZXNYiYZ z5btc-*0^U6$36RYytC%XanJU~J8R29j=IQNRyI$Xwrl65H73YAFG1eVwDZi16Xcz* zoo8EM0~1<=4s}I#hpV*6UQt<5zs0mSQEpmm!rbc<=02M!*E~OAZaMbM90ThF92OIR{tRl{*--i&U=~ z%j34>*tN!pVr_X$Lmu~1xheP746c~SRY;u@C{qzuMvMGGuRhD->Z2ts&dR#hrD2s8 z4=&dp@`MM0diBsb&UCQOfHnN#g3lgY7UlvkleoZ3>l_Xo-MZ{G)uk0>u5!J_wnbHc zi~wa&6O$zu6yN`8+*VHfgZLd-1Gq$ViAzPR@H+JKcL3+_W?`W)fq#$xF@G-~A}+d$h&O?bErbq1Bp>b^o0kS~XHHzmKPcR%&_q{pYOE3KJ&}RN@aa&HuKAmM3yK z{MW3|vf+LBKAIU?I-Hl~Kc|M4X!=P0V|r+D0{6YYPYW&5_7VKsoKWG&94!Bu87jb= zFIy_uij!<~ae8{pAI=NqkJwM}gUO*h4ZqR%XN7XH+LT5+js@NPm)W75kvKQLcTQ;G zFs_!8L*k!jhZZP+=;o*pOv%2I6%MEQ-OSK@@^cChmO%G+O?`oup-~7kPp*iv2H1k^)p^P)}>o|TLe=GlQ7|jp;6W$Tmi+6@! z?6!%63<<0BrH_c2)bA?Q4;$ zeK~+y<{@)YTeon%Vx*f;Zq9-hq$q7#~=TZ5!QPInCQY`sp75eYe+6 zjo#7R-rM47Vmp~oN+X6~9Q#W*q(k_%8#1pUGS2@Cz>%Nxa#wM8aQAcH;(i2CfZpc? z{#39A6o9{f9mE6M&tJq3@HazLkZ1Vc^Y6hB)%`6Ce9U{uyY#s?bK9(fw_Ff(MjTLp|;Lh=c=oK z{nXuiE&oxSfxQ=&e_F*E(lxm2+45g@2*0r7_0~noAzWY9ZI*VA)F|jxm3M zd|V;@d||{f=I4cvrQhdA9Akcgd|Xw<@aIMxV}7Ar94E`pQ4TS8jzzSw(xE2S?1|zm zcC^VM6=r$l3A}zWyMA+(tD}fbAoVQeDG#A(AgY_GsCQHekDo5i7dG~KdOanc-EAFh zh%G#JsyIhFDPg&KQoa#BRoe-h6g^$t!mZ(-%BNgC!jG9C#H;h{Y3uIkI#SW&*#{Xv zM;(|T7zc!5AHaFFe74H7Z7%>DaE@apX`|CW+?UcNR%>$BAx4)wmU;C8EWAgT;(c*C8eAn+MXcN%(+;o;%ZqTn zQ4bsD7~V7s>fwa5?1`$z@&7n*_0bXk+qWJXCqq0>DiGMAcR-+woMP#Z8hzy`!x+z# zGKAK>+NTs>8Dlzk`AQMoXwMS|3L#w4iX4`@eICk|k%|+=-%eze)0JRJCrt(^rS! z#;!bXL=i*}N$f0go39q}3ExwE5Eb%5obl1GJU9Aq>O|S}h8G^&d{qdYB)`#0l%@Om zQJVRf`TZ8(1{7h4->CHduZ`FLuZ5w(aGx!q$*gFjon1vw)D-O%msWQu1F^M<#x&;E z+SqaW|InEzLpSe?QvR?}dTZzmgkDNlHIe;)=yU|v%?+cJJC5CKTj(?tVo>Z~cj#0^ zC%U~6eX~SSSK_FxFW(WGgffWY3rENZ_y3`ZC_pzal5`*9^#7p=gbHZ%|2D1)?f=h< z_lg7Je%SM0Af76G2+;t(E?grV5gK3(U_AdO@Pge7aY6UN8bAib2YQ8jk~_{FfuAa$ zxgpqqKca2(=~**EumwMn?S95tA=rd3o7J(`i+z35Gi@Q*eXqHbKixJX1Uv8(*jLl1 zpBjR__p^uWt3^(jS=Ogdn-_vT_j26Q#M{`@r=AmnJ?{xO=rgNv`joRnuy=kql7sZg zlS8l-KVNM;XY2&&8B;>Ahd(aaK>C?eL%;$MpBo|ljG3XjVHOV3PtOc(Ok}iAKW%oX zb_7=M^iyYsYKAdcr%##^szyze1}NNnr%#*~s=`%>p_ihj9_&Tnr&!A-u;~-d4pm|; zO1WAqi0Rgh&;}Ei8zEpQ@@=|hT4=ojj}KNv!423 z!lS|;#0lbZv032wpNU_Db-~{&uXyBN!ui}&6SzCt(r${<El`8s;KI@?`6hcoNYDhbEko$Vf18*@$yU*_HguCcD3 zE_X-wZckU{HZ_Qp+YRRL%*{-vsNZ#Ynmxb^m$@mC$CGU`+ID66t;|H8c?7Ml@;Nkq z+xnx=WL~H$H(cWaXXVVplB_O!XI*D+53uaoB~6RlJDc~KzAgQx3!ES7anS>VpF4zZ zG&VQy?{yvVw6(X`4zY{6>@{^Y4fPe(*c+8NOwXdxySb~xQCYOb^yD}(0}dS3C8lqo z)wsD!9?97q6`LHU=U6G!Ctam=HLz^ptTTO==`xh-M35I)kn@N$%Eix17ejz>skC{f zr=!l~o4zTP4YUCt&1YEg;a2SLJml$eAu+GZGrm3h6=sk-PP7}By&wnCVS3zb$Q%-Gb_~3FZ_~ab{)-t&vqXRctm8!iZj{qv4}@R z)>`=$DXVbS*KJ{A$0i?(Tx#4VdKR)&_x5(_5z`vkHv3q-Qr%KyYpB*HdKRrT8Jp-? z=+Y!?qGusYbsN#-YKz=Nzum`TnCgBpRM-*jQjICN0$8mf6no1_^sgg zf0Vx)m;nFDzbZ`Rehzy9=W*}yrwR_i4R(O*g$IP6!V3QcFp-uk>qw?k-4gY7u!UxKd)s-Q%y}6i_yUI8utU(iBHM4~ z25i||x(-5%*WBuHwMZQNuKit|yMdoK&5m84lI`ihAG!9Q34BHhm^?DrI!lCkV^~Hv zw1h35-R|CY7<3$V9dx(%dNQ}D%Ml)oG_r9+#BX63(xBD{TUNl4TGldk5g@O*)!mi3 zR^9SPRKQ$yBhMDsG0K1omhwAy@6Oz){-xBwv)-*lUFT9qJk;A{7OTs#zgH^9q4=k3 z)Y?Ng*23;WsanJ*bz6sSdWrg(z--aH-U8rm1W~kT1#qNkn zUph6^qiMofk{Rk&^orxyy!fn8*RY1mMH!(3@y%0(w$OgX1{7mSNiUcl>P%ol%D06& zl%L1U71Q%3hxTb0gK}qt+7sJkbEby&Dix!)1Eep^44s?Mez;&ps7*1(#<8ZS&z}}* zRZMgBQI@}XvqO7EVt<@FFSJ{+-lFXUCtglhX-!>KQ9aDD%3P%l)poYOD?NK!$fJmi zwg%3b8fwv0_?+3HW~DruoT=%vr-gtUSA%&q{p?vGV8ty{n|q_T!Kcrf7XpG@*&;oR zPG`*t0ZndA7*ZbM#e}9vpNa3kiL2y1>R)Bl>wM|n!P%406%)e%T{gvL*$}qz z#p>%_I#@XoLZ+~b_ek4qqlX;sBYI7N4N<1RSP4V>Am#0l$}Wi5OJy?}aGh>QHrMG^ z4MnuLRaN_EWL2~-4l7nPxIS#7g?oZFTKTtZ2&>Q@>%B2r+^tb!!gnXa%BfKzS&2(G z4^~X#8l(s7((N`&L-;9VHbPB`VZADCkGe%t51&{j>W5K!dONz?_H=k!vT)o7`@9!t zty&fLG=xXUotGsK_p=r+$m;CMfBk5 zzWwcUoJDSqGN(1wI8kpB;VE#Y@^EwU88#FL)(!jh$1M^23m_JGOze4o? zSpociUf~?D_@4{w`!{ff8n1e@ZwLA$7;b>tj#83gfNDZPNiaZdLpcT+ptd5mfd;58 zh;M`es>z3YwJf@AvKm8(%|5oPEPu2kf!$FtbYtOn`8Hv}b-Q4zkfX=_JA4f&M7K#? z780{XR(k)-Ik4od1dpE!gc-2IXD7@A?&iuh-v79#cluhfpvJmEvR!z(Um$6Cgi|QR zF=LZ&Hx}Or`b-Z36M4B~p<}(E8htG&L-*UMR7}{bWUH?kp>?}nE6@?XHrsr=5S-9& zIdXr&4xby*b-y}N(c`Wr?L+~(TP{gJjG?F5=R$bh-K+$!wVE{g@jn}Qltk>N9K#8i zzJ$rXw6@4by8wyj#0dH%Vdl`3CYuIkE)C2)8kqSsFbim47Sh1v(7@!v_tv`*xgn{?mWTyJc|UB-shx zJ5!1(C26l-qaJOIM$bViG}nU^e|UL)OSJ}s4=P5XcGYjGb--d!L0(=g>94x1@(PXD zKDZ#fNdZ>yFp#1AQnBV!UO56j4ZZr+MCqp`N7hkm2`{2ZVKs^e=Z7hC-8PFtnH$Fu zK(8KaqV$lSg*bvxkq9L;uM2BYH8^jQ92?J@A_d1A`jy&SL9Yt=@l{X@8M+VnsC9!A zovQ~QtwoEME{T1(qMRvYg~su3a^?Ioj$a0T|K)rwu>bDlTY>NAFn1e@1qPsBz#77v!h66F%)!op ziQ;7NCdvk`;AOB!pd2`X8pWMrE9@~m3`~OoUxmOat(WE)4+*o;&^KHn4QEbrVacSU0nD zsDS1W>~kgG|Re!r8BKAmY!wZ$uj@1K=cwnO4>V?!ivBY{QOC8qBSXyfBV`-Vy$I^0ZKT9jDewMDc23Wem z8f0mu^>UV0S&y=`+Ij^`YpkDRX|44bOE+2vSXyTdvD9h3l9i|4I>^!n>s2h>WWAcD zo2}Qdw9$GkOSf3BW9e4w^(@_Hy@91o)*D&6-Flp*JFK5)smpp3OLtmNu+(im$~QXvEIhg-PYS#y2pA4OIxjXvb4?m1(u#`y^E!LtzTqmyY)*f-Dka< zr5)BUv$WIt6_)O|-ow%Z)_YmnWxbE3-PW(Nw8#22miAh|&eDU{`&oL(`VE#Iwm!hp zBi095dY<(mmY#2Yn57q3A7SZ*)<;=-k@Yc_UTl4wrI%QrV5!&oO_pA2eUhb@S)XEQ zpY>^$`mEo=`Tsb61s8YiA7}sg8kqmk!2FX2<|7)If6>5vx~lkN z8m0bA0wZ!XFgy*6Ai%qw#)JKjOF3OwBLsz?h%>}*i086Xdf)s1{r=Ng11S?}o*of= zM~U2G9s(#LpB9+InqDALQ1}r*5n0-P3vbwXno|7(poludw|Y6Ji^%_TMieu(50Z{Q}A$G(#zC z|NT5d>$U(Yw>4tze^)<*oglEsMuIm~GvEF&H>Pu&?_v~Ukb{BScM+l!-QEb}1X$~o zz}Od}4BZyxArplXd|M_klHPxa|AF@Z-wBrqv*7)Aga6+hawHI~R-mbF7_8y7gQ-$Dx?6*#YdJU$@0{jL&O()&+A z5xSiVl~+}5N#E8#4)F=!Qhb-f^o9NDh)y0jud&~ZxP%R_V*l??L+GT~|8f4G&U?8? zpMQw>@hqJB-zOP0Kr$p0X-1afDKw=SM+0M`fk~l(Nu_~Fqk*9r|BLC#^Z(I1PB2L! zk9EVm%x-{g7-_Pq8|F_mrFokMMsjM>t(4@{q!%XTS`wvFuA_muo(ARy8kietV2n5e_5~z>xDxQ<@1Na$I|{kc^@Elg$u-Og62&f3aJA`AHANOX1;VJ7x%ck z_jbd@j?r9PKAMXwMsxA{(OkTN-GG)AO})E%J2sfS8N*f$4zZC;qsd;fp{ZUY@^*SU zA=bDx;>9B`7KGiX0&DddTX<#|n-fmwZ{Ygjk3WmeVl&qgx%1O*79j&$Vd2{~Bc6 zL!pO&X{{%x83K_wYbwDBrm>{9C_m3tRAMi{gS_2GrwmD0N+Y3;Nyv8<*{f>vs!>p( z3(n0Z{YFCa=8v>tyYJ-qB)e!!stz%Et>eX3! zunm3$pYum>jeN<$T2#5s)83K|bvv@pg(JHx%hTTN8PTPqDe!*aw(LH*yWI^nl9fNQ zB9FAdc>AksYM~~=f8k?>@4v`FkhC}W_l187K5>!k(<9b;S0A@c~4alzln;8It= z0CIA3b5~_Gbae0cG`H<;19}C3=if=PIgQ?1D&JW7UbpGi=_wEU%ym|8%iGb6WXnQSMujvNWEX{ACRqIdM@n5QCG#3_*KDV#nlY>Gx81> zHdG>E#*hX}@E&Ql5UQ$Jl2rx6%6QelBt}$2wN^DOHliA)$FBw^Yoyh{9@UXm!(z>9 zU=rnO!0~^ouz(X5KqSA1VANkPeu;lQ@(3=7`D`?KXY-?dPB8W{juKor{*@1!n!9@P za-63)Ox{zphpHNbi{@Pg1$p^R5QVMH-464Jr6efJNKlrOpsXN4SxJJjiUegf3CbE0 zl(h{e=n+Qy9Lu9Xji%r97ei3rHw5*AapISO=;Kum{(F!6m> zCYr=k!SgpqTm?~t8^zsX4{(Ks#1rC|AqwcwKZr?KSJzNmFH^~H8SQcVVSLlFru-l5#uov}i7v{H4nN_Dhab+krxv{rSrPIXkIIx1Ej*;Pj+sw0Q$s8n^t zVo!#3C|BjN=$7HU^{TuLs-sHPQI+bbT6I*TI;vG2ZB!lAsg9hgqk7d*gX(CL>S(j- zs8MyaCGu#RS9Nr$>gY1nQJ?C_r#k9a9r;y90o74Zb#%Gv=&0)G3f0l)R7b~DM+2&( zkm~44)zP5p=ql)j>*YH=?P@qGm5-)_`xIvlAK{)|<>(RB(W9!P$8h{_;-2Dw_jD_N z1^1NjA~5*2iuX(3+z`PI{E1AJX2zd5qzVSwCDo;CM7l(Z z)l??(B9%4`PpqEAZVXPjrm;I?!MUfSv7+8(uY-^X_M%FXJ98vzXdNRZJN}qC=5A!q zRc=)bh^(Bq;)zugVJ?}$+bmPs*!*d}(|s@;#Fs=R_wJzp&tNlZYk?;X11q#OXSH>- zLzIauEL>$xby-%V;4JA{MTN*rx%5#07XBSh;J~BsAHu!Dy%4;3EPcQC+(&XJaWlPk zG!%Ge*(@{9uvx$fqd1>M8P=>2tzms)Gh1YE^a{1%z`}NR8f)T zvW)ynx#bEsQu<3>tS)s{ma2$xCWEWtT>erte=x4dZclGk3q12#75MTYNw{jdt3tyt z&+@&8w*KjfU=Nv%PwobrWg)bcZCwXk2R+STdFcjL=(ZlYf<~&gJdsn+>h`(YI&zxN zjDCn&vl%Th`l*f1mrIX7zO?F*=1E+c*CN;~z21E`OBpuzMf>-+gEnw;L@H5sI49l@l?N;OcQNWaA3S{`S13I^TWpp>i!DNXWW8rB_QVyyr-v&b@jYe2 z6W>&JNsL+z4;M}3=6mgEKR#r$%t!OFbHf%_S#3p4z6-Z@k5wg&#iYnyj?ax6;6#aL z{ld@}m`)ex<>f7h{~IbJhBHw=kria?|N8iU*-B)j_QRhTi=VJ~M-1*K33De+X}&-M za~BQF7inO=L<4g-4a}EmV7@{Fa}N#7y)-cQVgEl4EP$io|LvcO?#UIAul!ivMA;i( zj!xi&_&zPY?Vc_e!}WM}_fJ77HPljKVjy_>C!?S$GC@wyKKK4s=$>IOLlq4B4wtj= zzgzlQIP=9+a-`M!URVh2XxZM+!kFt0LoMHuXkL-VeiqAIcbIe)z7&9}sh>qMUrAam zN>GE%{VaxgK0W-deipx6cL;V>oy73}_R|C~mxaVIN{zn%k7;I|HNIt5j#(3A++xOehRc|=jmApuDjii1drW$+CLM8EZ5uZC_*Bs zt=;`uh(78mr)--~H23fbNltq(ChHcmFhm*FDUZ;I;U_rT2doC*C5i1MaSiVgLW*d?WWS z?q+Tk_@7$LOU;Y5Tyot<7hnmA9zzXo`=j$wh9RxY(Rm1MP%CqEE`l4}${fu`Ax5<_ zN9Q0q(d~_B0V4OeA3X;umIoT(2o1b9;tON^?O)-y z-yhp=g;ej@KJ5*##s6&1su4;#qvAI-K zyXx)5+xr(1Hsd(dh~}VRLm9%J6#F}cgMtlW7V51aX(-1^k4!Gk#(p+}Asie#xS{bRaMnc?`U*5-TiFrLNox2 zKfVsn|8EnQ2|tHD0F(KL`5oNH+^xgS|2_T7@Rdx0-Fzv^(S7S=6R6s5zJ#P%QDH}r zUpMwIMtt2bs0v@Un=e9W-Q&V&X!ntZj-Iym&HaT4Z;0Kz0Fiaij8p}WwVUUo5Z%La zSxAiCytO|M1vvG-^lAYb>{q!cO7}cf7Nugp`V86s*U^|fiC~IoN>fY&W2b>Bp@DJG zz?9O!l+nPH)4){Fz^tc%*&y}*vpDfOF<*FIXctc5@8;KYuX6!z*3i^@{%==0zxkZ~(40n6E>0qLGw_DXV`i%Fx~ANYxY}Lot}IK>@~@viesODiF_<)xQb_ z=pM32H5A8Sz7pXLHkdc}uON{k_r_Y@FUwJi@!l`t@&D-8|NJFbMBQUsrCCtc|NM4@ z);;1;pd;7+{K;s}{DwAX{v$XHiLx&g7oCt5o;#nOc8@+h85rycsWXiP@XYs5S1te$j ztOiBtHYLfrs20z5_E#gg?g3Xq$CoM;q5CCM23%^#7wP>!ixY1bR|!8B_6cba?Y9gF zLHoJ0r1#(5zY|M9G)Myn^1u6 z7E7w3IJWa`2yeLUd@G3*`DN6yoo_)Y#@o(4{f#In2_7(;QI76Omt1X;9x$Jw@&6v0 zArBEuD@|$IXkgBzf!Rv~(@q1kj|QfL2Bwn+W0R?u)L;bLtB3vLMO?1){3%pkL46K;y9u1A!)}I z5s}8T-H2_3@yvt3M8iKV<5>&JAbft`@`zx1X-adD2IdeA%wZasBQ!AQ(ZHNf19Jfl%!M>C7tz36EcO5E zIPorVz3@lDFU;e=3I6~8HMPy_tVDwB7b_KtK79(9>RKpotvmAiuD_!de; zei0y^x8CGELvI-mvOV~x0o(;++xZWSJDm9B7=L>Ze*5h){?;#z{}*uL9il^cOYp+} z->>nN+&fU+3!?As_Wp|qM^Nz=(Jn-M-J@m6oDz2t?E(~_d$J-4h_i@xKEfNmh;|-{ z6nPx3wTN~Er6gk!?Jx>T!Xnxslw-&u+V=i~h^>2SA>Wc%PncfB*KHqF;Y*${()$nm zA1B3?!fzm!*EIe~zKIt{#sA?qWASuP-V`%vtm)jJMsoKQ5fP?ye=1@dU^@4wAh5Bf zbH52?=zcVmicw7Gei5N{Pxuw+NYlArKyZUi=YDWxC!LZQMse2 z#APqWh@LE#jLacrA0n$12WVhIG%&|#U_M<+T}h+VAPvk_G%#1wz+6KEb1eW2=YE5E&s+Tyv0+V$;oLs~Md|KG z<+68r+e>~zFWjObrg6QOi^G5$T#3dYfDSO8J z=?I+^x0jLF|J6;6`Ut{$j^V_Zi2J`5Bj}Ta`8rK$?x%tI1`W&uG%yd+z&u0)^Dqs} zBQ!9N(!e}M1M|4l|1aXiJH;~LZQ%+b5B&dJu>OA)2jqxq*HywPSf ze^R0t`I8mJ$e*MrMt%dM82Js3V&pe2ijm*gC`Nvxq8MTSKaO9)#hv}vig(3t0Y-n8 zrn$PE2IeLT7z&J5@kSb$<1{dzr-31<-&XMiO=(Wjz}!p&a|;d3tu!#VN&P?g|DP1s z3NH)i3Dfxp`K{c4VgK(4{r@-ljiNvH&&F{8k$qLe^W1+n${?J@MVQZLA++vkzcOuB zna|HcaHGxVGf@cP#9VDY&q8#f+Z$opjx?Y9XP^w@%;($vnJ9qBHWFt^+;1aPAkLEb zNap|Q-ae+`8N-P&P29g3Bj}Tad6K3yPtm|UO#|~S8klEjV7^TQ^Bo$P|D%CBu*;!k4m62I}mOZ>(KFOlB=(Z&DvCxrpopCkrkk3UIqO#BAMG4UH5$HZ@3 z9238>aZLP%#WC?GBaVsR;5a6uAOFXU31UVf!=D(-z}>Vc2KSSMSxi%!B{VQgX<%pq zcbjMecbitwD7BIXW)%(0Y8sd|G%#yN|Nh4a9>a;Tytv{EF@ioxnD5b)=KC}-KcInm zkp||6G%!D+f%!2F%ui@weo6!LGa8tm5BL7Z^!D*jc&GJU%)*5?nA(FE=?mC-0wP6I;|xXVNnxXZMG zMyX0^{;xCsuitnYRKKw_sN4L8#x3w06t}={T-*YG65|&5jgMR4H!yC2->A3+eh1+S zY5WE7;rjpB{Xa1c&lpaOWdI=lGDgrR3G*wO()^kR<|P`K-_XFkOat><8kkpTV17pf z^C}I@?`dFOlluP^82@Lq@xT2^Vn6m9$9}xsZ*T|$zi}Z9{Kkeb@EaDwz@Ll|27aSM z82FPH!oY7}2!qd1|NlBolSc&e22E++q=9*h2Ih}6Fn^+fd7B329U7Q-X<+_L1M?mY z%wLfI>lE%B9=MCVum`A8cwe|)DByp>AB2-{1FErnasFIjwvqC^W4CSe^K=9dd*w z$0+7026qvtKd!#Uwtc$QRpeh06pDp^4h7N zg^uR--WE?&cV}}>tNGW!N|)1M^3ET#l;+MZPgC>WWqAcn_@|5gnbVpQ0OZFFLB0Tx z|7!^Hen5WG5abqV{6C8muM_iy=Y@9R6#j00J@+~n;ATm0KDW!C43=}hku2wKe-dIC z`HhZYBVTMt);s82OVD!^oeM7)Jgi#W0fIf4ca;enUx+{l<_WH~NhWVd76> z2ot~YAx!)RhA{CP6~e@ygb*fv<3gDD4GdxO8JhopKr`hbg87i9G=HUm`5O()-)Ug} zK?Czo8kmo0VE#n|^KTlM|IomEEcO3mi~s94nDx|e80%@1-`J=ne#4@c_>&Q}#BX%e z5`XfdmiUc~TH-f8YKh<2s3o7B{@=urGBu)@EPj=Ei_FY5sa0lG!tlGCepx6qJcS;2Ie#xnA2%s&Y*!glLjV(24=F<|LcnX z9WagvIgmUedssA5g{Lg^FWTydx$xfRB#s)43 zBqeY`ASr6sX-2mvM1Z)Ms3QE9U0IaHlIvh1WP!!3NT!-9sfLKk6cpD&YBt`rxAnqVVd|Vp; z>x%yyFpB;-U_AYCW1s}*8ivIG4cHOdp!mOmVgxrh{%@cNg%}n8H?R)Tjg9{sSc@_Y zjQ<;0g940;{~K6MsK6NG|Eh-?>Z5q}|CnKU%uiyjXsTaW?kFm8*^3Jb^738wk_}Cz zT^>(eeT~!J*|EEA4=}eq@~MJ(l%_O~(ZD=T1M>t83{9lwlqYFQ^Arut(=;&OqJepa z2IkvR|38-azk%ctAO{R2K;9WJK6pvM;NT?zLxYzD3<_QnFfMpWAc?_C0>%d~2^bf= zQ9iS+(M{GS`emBO!t z^MonQPj>~9L1!K?l+HYm1UmD8(RAhkgXzozM$?%G zjHNRVB!kXedjECC{|p#UgBUQD260=!P~P%@LA>Pw<9N#hN#rdL7|&ZCFp#%AU=(k8 zz2$l4%5IKp@BJ%2IhPkm-*VWd$9E}zAtw9{}6fQJaQgywfZfDSV<7Lob z<7LoL<7Lnw<7Ln|<7F_3#>=4b#>=2_#>>yp_`jZ*(l7yman9``E{ZW*bssB*ZRl@<1i>avF5DTqGmVL|j( zf@Zd*puy>IA$py&F*pu!33mb2SJ*eW%4=#iv<1@x=50uF{&is-pUO zs1#ReL$$rWqNdupGiXLxb~;&g4tqnLvtpCORn<`MXmmKY1k+H&VmcAEbq+^WEtY>% z(5Mgw!6bw*2pSi{AZTC+1L^%ATl~+U!K|l2!&pz7g2qNI2pSf(AefA(1wo^u76d0^ zE8^7Kid0nFD;r82uHM7-?(V&1o*rk9yLoSU+n(0V?jBE9mAh;2*5CvbrF$2qEXt!u z>hbIhT1gt*{heJs_PPq_G>R%+)ea|X)+?%A_4eZJK?{l?+F;1Kyt*R0!&O>juc)l3 z-|`t6|9_rl$U_8k6HRGO(7>Fefw`Fm<`x>5TWMf!qk*}d2IdYLm^*1;z99Ag3FChT zlR$GCG??aed(hy}1wo@j7X*zBT@Xx4=z?HULKg&+6}ljpq|gOH<3bmFhWh_6(lmKQ zFkhl6&D}IGU#5Zi3JuIXG%)wlz}!az^Hmy{uhGDKod)K9ssGm%|1&rbXDG%P&*ma@ zl8k5BBy%~%wiw5FHU~u*WIQt}h(Rz3K@5V%1u+O38N?u%j35R8H-~YfqBqi0&^q!{}^^}lC~;^ zrgNf#q3PpNX!^Jmnm#UtrjJXZ>Elvp`nZ(u(>#7Zpn-Xj2Ihw}Fh7#||53&N3?_s3 zFlaFEVQa7!2NcOMoYkNxqYP)&BxA3HhO;UZVW8ox67dZ)oNYjKa>H3;a6RH0v+P}g z&`DYL#{NG=sN;k>;V$80v0nTVf0w`sjlzARS==gq1@{0)H#O16tuY<`2*P=o{zL=w zHVw=>G%)XOHhJ?$9oGxPoRoO>b+Wi8c(4$UnwneN_PaXV`#d?VCWCNO=y4lN-ua`B z$|Y|RZ|>~!G&S#CmRHb(f4bP8p#EPCLH(N{sDC#E^&f_y{!{AzM;ZS&Xe{w*Fd4+B z&B3IwmaQvX}>rVll`5{}is8ga2;lKH_WnJNbVr zV*&AgjvHyagV&ApT2-L0;oAOx8G`z6Ls0)?2? z?*Z7vk^PTvF>WAfWg86G!g34&(_Dbil1q#%+lnpQNH!%Hgp0rqZpbzzUFkif1Bt;l zx%6I~-gCM1klqt6<&w)Kx%5lV|IJ9N-M8A6+ltHg|BEoQ^V!*bZ)SFOcFHT!H-En3 zjOaNrIU|}*OwQOJPE5{-suPnl_Jb3XGotOpRi+B~q{9u=1b5Z{z>M_juz|XZa@>46X60rGA6Kz|l9Dyx(qn6*1Roce$#; zVyCmfUFs=vRX9Bkw@cHei!w`&0#{9eCoZ*gqfV5?nSf|I3zm(K?;u%E)rmoO4wYAPMJIr+{N^2U>LcpG78(wm`cS)p6)Tbx4m ze`A^H48NMYha1bbGtV;9`C0rW{3Z08FAMw`yNd+I44XR>pii(E78>#lD{?hoce;Zm zz9dWX^K{bLMQ-?6$f7+g zi$mUbA1I3-4?2tURkE15yHH?~L$$aVYO$bluHM!7*`U`d%>8bG*{FNu(LhiaPYNirI7XUx$~ z8(XTKmi(6pY2FBF$45vTdckNJl3$HL^IPq-l(7-grbS3QG(y_e2x(_VNP93s+D8%6 ze%4MKJ0?Qf{IUG3Km)5Nukt`EvlX}sV?G5EgD22N zT2T#cG@;qVX9n*kSXiUL$13o41-?yzpHtxfU~C?*zfmQn8bf4PjDN}yhzw%PyHkIXm+4RPa{Wnm z>rZl*{v>znPqIgUlD+zq?9-p*9{ovPk;sl=EX*|w^Az)M=9-i`654le6EUuTkk9&>#nm6#%cpK~=ZsjlHZ{nZgKblW_PkXuYi~l0-h?37y z;Ok_VMy0q5a(vHbh8^@O>1njd0)n5z^j? zkoKE)nmNMv-yGrlZ{8e%<~b44_C!c~JVM(05z>CrPD?rwgK%^$c@8Yh*XDPjNH2)42~|bl=0nLb38!6JHyjmPHrT zI=8la8@%hN#pNo9YbJO)H7B>qCBfiA(|k`^r7eHXmM!w75%YqY{lJ2hj;wSlOE>gF zgl&6Nt|7$9TGB{~t8O_Qzm||Ei*X|)ueJ1cS&dGWqqg*a_Ys76!pL(UzJmXbUinsA zivQk2@|`^Ld^_EhbLZq1&7F(3M3Rzpqu&IZZ%dkMj|yzi1sAK6W|8+ln_0{7AHui% zdibVy!ngfk_{PU@pTPJ2W|;YJffazmU?m`){fynqtYzp}k9m+ z0-vYAZ3?_hfoCc37>tcyDe$Wbe6Iput~w=6K2`O!@ha8XZjE+*C!Y}^tt&#>;Stgn zMo5eBy-NC3`@W)hb{=~eTgonDYvJwQ%$~@e18aeM*c;iq!7JeN?3?UI?3e7% zTr6ki(z&TzKI|5jaBgl5*95bGi@6@|IQxWf?WU?>;tsI zH~vg`|F4AIfJb0I;9dCs{{(vi<6tb14fy?gvKH?4xv

h4%|K`-LbDK> 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%0DU3;>;6XZSzJe# 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 z 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�ia!Z#I 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 diff --git a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/refactoring.db b/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/.cdk/refactoring.db deleted file mode 100644 index bda411557251b00fd97c97fa5a8a1a16c615747b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1321984 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

)wCUyToeZ#l%` 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
-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 }CcnHVNp=+sk7ot62;6=nTK+Sv|#wlNEX6hL;p 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 N!XCn7gvSX_{1=T|F_{1W diff --git a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.session b/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.session deleted file mode 100644 index 06a8eb6e9c1..00000000000 --- a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.session +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.tags b/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/RTOSDemo.tags deleted file mode 100644 index 48f59420d043e9a324c57a73714ce6309d4b617b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1015808 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%0A=6_%yzPp9m8EH}Plq@5s&kF8&;737+c| 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
oT$J4;R?+N@2ME8CPzYZ3DAK*_R_MeL+ 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

acEM??B${S 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�rBD7UF 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 HWOw{Ox=H0h diff --git a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/compilation.db b/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/compilation.db deleted file mode 100644 index ffe8a393d4d99ea31d2cb34916c02c6cecca641a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7168 zcmeH}Pfo%>6vk(0X`>Ni!h(gHA#p(y6@isID;=N-w9ppBRRa+d5`};yy3%j~58=@~ zfD2FHw3I(}XiVJEyh%%E=C%Fa_nUd4cB?*|4aog?`q-P15)u){=!y`8kQ|)s;x~!? zib3DI;EjG%S4L-_Cn*+{a2^R0;V|)@IL04ru$yfn$(hSMp3B40-QcBcHkx`}b#&8k z9re0SU0v&zxLLVuQPrVDH#FKMT-bkzm@uT;@KiF8Y#Vy3y)+xX#ed3^4NvEqmf571bE~`x z3$NK|uLaJlxJ{V5Yo*Oaa=v9lZBV6`kTQyb-)6o3!yuewcq9ax{;L17Lsou>L%Yr? z37GjKWqyF=OrC9_sxQK2!%ZYYQe2p<(+}iUD;SK~CR+CV{Yu?RU9H-SbiCRORrPMx zC1ec*fWSWpc=eBkFT@ULKmZ8Dn!phjvT3bPI)mxca6BrWU+jB+H^1s*?H|km0U)qR tz^i{Od?R*10|G!G_5@Nwc5nR&0RR87UvMx81R@DQ{YRpK01${hfgcMW-!1?E diff --git a/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/refactoring.db b/FreeRTOS/Demo/T-HEAD_CB2201_CDK/RTOSDemo_CDK/RTOSDemo/.cdk/refactoring.db deleted file mode 100644 index bc6fc03426adbda3fdd12136b8fd77807a923f5b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10240 zcmeHN-EPw`6tn_+7jE zB6{mLs?701-`cCO&@LYr;{v_pGRtSwcFOFS#z*8-+Uq8Sg^DeW7*Dfuh4Hm3m~lJW zA6GCJR&cC3GnyHVY;EC_QS13xH0+=8Z3~A{e;jpBuXeLj`_eypWp1I{>O|XI)A(qs zI?3npr$E|_UtzqRNmz@I6znob$!Gh_rA^naTkZ+1vJ+|re#3USTAexmHeIp^FX@rx zmJTepU=|-5OKUbN6_5F|OIccNx^aK4SF;@!IzfGpyFGQ^=wO|gCcel@C|y>uN`Aw& zo&C@&9Wai}f<#Hcx;Rb?N6hu?hC_#=LA(2kz8SPTt-(2c9i1B`MI(<*jO4vG-Qd=E z)RX;i(O76M%2W}Rw|IrspNJn&00BTC9SG=(Ld>1ron7&O$LbHn4=8{DAdm_K)>MLJ z_$%W1pLnZJh5z6rAOHvm1R(z5J^%#Li-7#V7yqi4UMRqGKp=GpK>Vj}%fVqlV2%L1 z|IeX-1|X0+1VsGj&;~*s^c8O^9p#IU0Rmc0o-E-CE)kt79@TxK`Si0-Ay_3KFTf1kpz;+%`sCyl($iEfixoU3x{Fk A(f|Me

joEg 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¥F4v!YD2G%Rz`9QwA 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�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