]> git.sur5r.net Git - freertos/commitdiff
Carry on working on the Zynq demo - still a work in progress.
authorrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 22 Jan 2014 15:43:27 +0000 (15:43 +0000)
committerrtel <rtel@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Wed, 22 Jan 2014 15:43:27 +0000 (15:43 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@2172 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

12 files changed:
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/.cproject
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOSConfig.h
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_asm_vectors.S [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_tick_config.c [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/asm_vectors.S [deleted file]
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/lscript.ld
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main.c
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main_blinky.c [new file with mode: 0644]
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.cproject
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/.project
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/libgen.log [deleted file]
FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/system.mss

index 7059635ed279bdc20da7baf33489977e1496204c..24b21be6d3487e2549a6803ece8207abaeaded3b 100644 (file)
@@ -36,6 +36,7 @@
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src}&quot;"/>\r
                                                                        <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/src/FreeRTOS_Source/portable/GCC/ARM_CA9}&quot;"/>\r
                                                                </option>\r
+                                                               <option id="xilinx.gnu.compiler.misc.other.591008063" name="Other flags" superClass="xilinx.gnu.compiler.misc.other" value="-c -fmessage-length=0" valueType="string"/>\r
                                                                <inputType id="xilinx.gnu.arm.c.compiler.input.1279195555" name="C source files" superClass="xilinx.gnu.arm.c.compiler.input"/>\r
                                                        </tool>\r
                                                        <tool id="xilinx.gnu.arm.cxx.toolchain.compiler.debug.309485210" name="ARM g++ compiler" superClass="xilinx.gnu.arm.cxx.toolchain.compiler.debug">\r
                                                                        <listOptionValue builtIn="false" value="-Wl,--start-group,-lxil,-lgcc,-lc,--end-group"/>\r
                                                                </option>\r
                                                                <option id="xilinx.gnu.c.linker.option.lscript.609053533" name="Linker Script" superClass="xilinx.gnu.c.linker.option.lscript" value="../src/lscript.ld" valueType="string"/>\r
+                                                               <option id="xilinx.gnu.c.link.option.ldflags.1670905029" superClass="xilinx.gnu.c.link.option.ldflags" value="" valueType="string"/>\r
+                                                               <option id="xilinx.gnu.c.link.option.other.1460714584" superClass="xilinx.gnu.c.link.option.other" valueType="stringList">\r
+                                                                       <listOptionValue builtIn="false" value="-Map=rtosdemo.map"/>\r
+                                                               </option>\r
                                                                <inputType id="xilinx.gnu.linker.input.1414431390" superClass="xilinx.gnu.linker.input">\r
                                                                        <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>\r
                                                                        <additionalInput kind="additionalinput" paths="$(LIBS)"/>\r
                                                        <tool id="xilinx.gnu.arm.size.debug.484243311" name="ARM Print Size" superClass="xilinx.gnu.arm.size.debug"/>\r
                                                </toolChain>\r
                                        </folderInfo>\r
-                                       <folderInfo id="xilinx.gnu.arm.exe.debug.2107277346.1555222947" name="/" resourcePath="src/Standard_Demo_Tasks/Minimal">\r
-                                               <toolChain id="xilinx.gnu.arm.exe.debug.toolchain.1743802113" name="Xilinx ARM GNU Toolchain" superClass="xilinx.gnu.arm.exe.debug.toolchain" unusedChildren="">\r
-                                                       <tool id="xilinx.gnu.arm.c.toolchain.assembler.debug.335155760" name="ARM gcc assembler" superClass="xilinx.gnu.arm.c.toolchain.assembler.debug.1072989377"/>\r
-                                                       <tool id="xilinx.gnu.arm.c.toolchain.compiler.debug.540874291" name="ARM gcc compiler" superClass="xilinx.gnu.arm.c.toolchain.compiler.debug.399974114"/>\r
-                                                       <tool id="xilinx.gnu.arm.cxx.toolchain.compiler.debug.663459635" name="ARM g++ compiler" superClass="xilinx.gnu.arm.cxx.toolchain.compiler.debug.309485210"/>\r
-                                                       <tool id="xilinx.gnu.arm.toolchain.archiver.1142616239" name="ARM archiver" superClass="xilinx.gnu.arm.toolchain.archiver.1960622276"/>\r
-                                                       <tool id="xilinx.gnu.arm.c.toolchain.linker.debug.61228036" name="ARM gcc linker" superClass="xilinx.gnu.arm.c.toolchain.linker.debug.2137204862"/>\r
-                                                       <tool id="xilinx.gnu.arm.cxx.toolchain.linker.debug.946601962" name="ARM g++ linker" superClass="xilinx.gnu.arm.cxx.toolchain.linker.debug.1458226319"/>\r
-                                                       <tool id="xilinx.gnu.arm.size.debug.486408782" name="ARM Print Size" superClass="xilinx.gnu.arm.size.debug.484243311"/>\r
-                                               </toolChain>\r
-                                       </folderInfo>\r
                                </configuration>\r
                        </storageModule>\r
                        <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>\r
                </scannerConfigBuildInfo>\r
        </storageModule>\r
        <storageModule moduleId="refreshScope"/>\r
+       <storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>\r
 </cproject>\r
index d2002def6d891bc1c4fd9dbda78c008be3560499..52b21ac9a0d69796a91021d49b3a4a97a7d4441e 100644 (file)
@@ -66,6 +66,8 @@
 #ifndef FREERTOS_CONFIG_H\r
 #define FREERTOS_CONFIG_H\r
 \r
+#include "xparameters.h"\r
+\r
 /*-----------------------------------------------------------\r
  * Application specific definitions.\r
  *\r
  * "FromISR".  FreeRTOS maintains a separate interrupt safe API to enable\r
  * interrupt entry to be shorter, faster, simpler and smaller.\r
  *\r
- * The Zynq implements 32 unique interrupt priorities.  For the purpose of\r
- * setting configMAX_API_CALL_INTERRUPT_PRIORITY 31 represents the lowest\r
+ * The Zynq implements 256 unique interrupt priorities.  For the purpose of\r
+ * setting configMAX_API_CALL_INTERRUPT_PRIORITY 255 represents the lowest\r
  * priority.\r
  */\r
-#define configMAX_API_CALL_INTERRUPT_PRIORITY  25\r
+#define configMAX_API_CALL_INTERRUPT_PRIORITY  18\r
 \r
 \r
 #define configCPU_CLOCK_HZ                                             100000000UL\r
@@ -157,11 +159,11 @@ readable ASCII form.  See the notes in the implementation of vTaskList() within
 FreeRTOS/Source/tasks.c for limitations. */\r
 #define configUSE_STATS_FORMATTING_FUNCTIONS   1\r
 \r
-/* The following constants describe the hardware, and are correct for the\r
+/* The following constant describe the hardware, and are correct for the\r
 Zynq MPU. */\r
-#define configINTERRUPT_CONTROLLER_BASE_ADDRESS        0xE8201000\r
-#define configINTERRUPT_CONTROLLER_CPU_INTERFACE_OFFSET 0x1000\r
-#define configUNIQUE_INTERRUPT_PRIORITIES              32\r
+#define configINTERRUPT_CONTROLLER_BASE_ADDRESS                ( XPAR_PS7_SCUGIC_0_DIST_BASEADDR )\r
+#define configINTERRUPT_CONTROLLER_CPU_INTERFACE_OFFSET ( -0xf00 )\r
+#define configUNIQUE_INTERRUPT_PRIORITIES                              32\r
 \r
 /* Run time stats gathering definitions. */\r
 unsigned long ulGetRunTimeCounterValue( void );\r
@@ -197,5 +199,7 @@ void vAssertCalled( const char * pcFile, unsigned long ulLine );
 void vConfigureTickInterrupt( void );\r
 #define configSETUP_TICK_INTERRUPT() vConfigureTickInterrupt()\r
 \r
+#define configINSTALL_FREERTOS_VECTOR_TABLE 1\r
+\r
 #endif /* FREERTOS_CONFIG_H */\r
 \r
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_asm_vectors.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_asm_vectors.S
new file mode 100644 (file)
index 0000000..b40c312
--- /dev/null
@@ -0,0 +1,167 @@
+/******************************************************************************
+*
+* (c) Copyright 2009-13 Xilinx, Inc. All rights reserved.
+*
+* This file contains confidential and proprietary information of Xilinx, Inc.
+* and is protected under U.S. and international copyright and other
+* intellectual property laws.
+*
+* DISCLAIMER
+* This disclaimer is not a license and does not grant any rights to the
+* materials distributed herewith. Except as otherwise provided in a valid
+* license issued to you by Xilinx, and to the maximum extent permitted by
+* applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL
+* FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS,
+* IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
+* MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;
+* and (2) Xilinx shall not be liable (whether in contract or tort, including
+* negligence, or under any other theory of liability) for any loss or damage
+* of any kind or nature related to, arising under or in connection with these
+* materials, including for any direct, or any indirect, special, incidental,
+* or consequential loss or damage (including loss of data, profits, goodwill,
+* or any type of loss or damage suffered as a result of any action brought by
+* a third party) even if such damage or loss was reasonably foreseeable or
+* Xilinx had been advised of the possibility of the same.
+*
+* CRITICAL APPLICATIONS
+* Xilinx products are not designed or intended to be fail-safe, or for use in
+* any application requiring fail-safe performance, such as life-support or
+* safety devices or systems, Class III medical devices, nuclear facilities,
+* applications related to the deployment of airbags, or any other applications
+* that could lead to death, personal injury, or severe property or
+* environmental damage (individually and collectively, "Critical
+* Applications"). Customer assumes the sole risk and liability of any use of
+* Xilinx products in Critical Applications, subject only to applicable laws
+* and regulations governing limitations on product liability.
+*
+* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE
+* AT ALL TIMES.
+*
+******************************************************************************/
+/*****************************************************************************/
+/**
+* @file asm_vectors.s
+*
+* This file contains the initial vector table for the Cortex A9 processor
+*
+* <pre>
+* MODIFICATION HISTORY:
+*
+* Ver   Who     Date     Changes
+* ----- ------- -------- ---------------------------------------------------
+* 1.00a ecm/sdm 10/20/09 Initial version
+* 3.05a sdm    02/02/12 Save lr when profiling is enabled
+* 3.10a srt     04/18/13 Implemented ARM Erratas. Please refer to file
+*                       'xil_errata.h' for errata description
+* </pre>
+*
+* @note
+*
+* None.
+*
+******************************************************************************/
+
+#include "xil_errata.h"
+
+#define __ARM_NEON__ 1
+
+.org 0
+.text
+
+.globl _boot
+.globl _freertos_vector_table
+
+.globl FIQInterrupt
+//.globl IRQInterrupt
+//.global SWInterrupt
+.global DataAbortInterrupt
+.global PrefetchAbortInterrupt
+
+.extern FreeRTOS_IRQ_Handler
+.extern FreeRTOS_SWI_Handler
+
+//.globl IRQHandler
+//.globl prof_pc
+
+.section .freertos_vectors
+_freertos_vector_table:
+       B         _boot
+       B         FreeRTOS_Undefined
+       ldr   pc, _swi
+       B         FreeRTOS_PrefetchAbortHandler
+       B         FreeRTOS_DataAbortHandler
+       NOP       /* Placeholder for address exception vector*/
+       LDR   PC, _irq
+       B         FreeRTOS_FIQHandler
+
+_irq:   .word FreeRTOS_IRQ_Handler
+_swi:   .word FreeRTOS_SWI_Handler
+
+
+
+FreeRTOS_FIQHandler:                                   /* FIQ vector handler */
+       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
+#ifdef __ARM_NEON__
+       vpush {d0-d7}
+       vpush {d16-d31}
+       vmrs r1, FPSCR
+       push {r1}
+       vmrs r1, FPEXC
+       push {r1}
+#endif
+
+FIQLoop:
+       bl      FIQInterrupt                    /* FIQ vector */
+
+#ifdef __ARM_NEON__
+       pop     {r1}
+       vmsr    FPEXC, r1
+       pop     {r1}
+       vmsr    FPSCR, r1
+       vpop    {d16-d31}
+       vpop    {d0-d7}
+#endif
+       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
+       subs    pc, lr, #4                      /* adjust return */
+
+
+FreeRTOS_Undefined:                                    /* Undefined handler */
+       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
+
+       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
+
+       b       _prestart                       
+
+       movs    pc, lr
+
+
+FreeRTOS_DataAbortHandler:                             /* Data Abort handler */
+#ifdef CONFIG_ARM_ERRATA_775420
+       dsb
+#endif
+       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
+
+       bl      DataAbortInterrupt              /*DataAbortInterrupt :call C function here */
+
+       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
+
+       subs    pc, lr, #4                      /* adjust return */
+
+FreeRTOS_PrefetchAbortHandler:                         /* Prefetch Abort handler */
+#ifdef CONFIG_ARM_ERRATA_775420
+       dsb
+#endif
+       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
+
+       bl      PrefetchAbortInterrupt          /* PrefetchAbortInterrupt: call C function here */
+
+       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
+
+       subs    pc, lr, #4                      /* adjust return */
+
+
+.end
+
+
+
+
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_tick_config.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/FreeRTOS_tick_config.c
new file mode 100644 (file)
index 0000000..493ada6
--- /dev/null
@@ -0,0 +1,96 @@
+/*\r
+    FreeRTOS V8.0.0:rc2 - Copyright (C) 2014 Real Time Engineers Ltd. \r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that has become a de facto standard.             *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly and support the FreeRTOS         *\r
+     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+     *                                                                       *\r
+     *    Thank you!                                                         *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+    >>! NOTE: The modification to the GPL is included to allow you to distribute\r
+    >>! a combined work that includes FreeRTOS without being obliged to provide\r
+    >>! the source code for proprietary components outside of the FreeRTOS\r
+    >>! kernel.\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+     *    not run, what could be wrong?"                                     *\r
+     *                                                                       *\r
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+    license and Real Time Engineers Ltd. contact details.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+/* FreeRTOS includes. */\r
+#include "FreeRTOS.h"\r
+#include "Task.h"\r
+\r
+/*\r
+ * The application must provide a function that configures a peripheral to\r
+ * create the FreeRTOS tick interrupt, then define configSETUP_TICK_INTERRUPT()\r
+ * in FreeRTOSConfig.h to call the function.  This file contains a function\r
+ * that is suitable for use on the Renesas RZ MPU.\r
+ */\r
+void vConfigureTickInterrupt( void )\r
+{\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * Crude implementation of a run time counter used to measure how much time\r
+ * each task spends in the Running state.\r
+ */\r
+unsigned long ulGetRunTimeCounterValue( void )\r
+{\r
+       return 0;\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+void vInitialiseRunTimeStats( void )\r
+{\r
+}\r
+\r
+\r
+\r
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/asm_vectors.S b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/asm_vectors.S
deleted file mode 100644 (file)
index 6526f13..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-/******************************************************************************
-*
-* (c) Copyright 2009-13 Xilinx, Inc. All rights reserved.
-*
-* This file contains confidential and proprietary information of Xilinx, Inc.
-* and is protected under U.S. and international copyright and other
-* intellectual property laws.
-*
-* DISCLAIMER
-* This disclaimer is not a license and does not grant any rights to the
-* materials distributed herewith. Except as otherwise provided in a valid
-* license issued to you by Xilinx, and to the maximum extent permitted by
-* applicable law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND WITH ALL
-* FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES AND CONDITIONS, EXPRESS,
-* IMPLIED, OR STATUTORY, INCLUDING BUT NOT LIMITED TO WARRANTIES OF
-* MERCHANTABILITY, NON-INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE;
-* and (2) Xilinx shall not be liable (whether in contract or tort, including
-* negligence, or under any other theory of liability) for any loss or damage
-* of any kind or nature related to, arising under or in connection with these
-* materials, including for any direct, or any indirect, special, incidental,
-* or consequential loss or damage (including loss of data, profits, goodwill,
-* or any type of loss or damage suffered as a result of any action brought by
-* a third party) even if such damage or loss was reasonably foreseeable or
-* Xilinx had been advised of the possibility of the same.
-*
-* CRITICAL APPLICATIONS
-* Xilinx products are not designed or intended to be fail-safe, or for use in
-* any application requiring fail-safe performance, such as life-support or
-* safety devices or systems, Class III medical devices, nuclear facilities,
-* applications related to the deployment of airbags, or any other applications
-* that could lead to death, personal injury, or severe property or
-* environmental damage (individually and collectively, "Critical
-* Applications"). Customer assumes the sole risk and liability of any use of
-* Xilinx products in Critical Applications, subject only to applicable laws
-* and regulations governing limitations on product liability.
-*
-* THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS PART OF THIS FILE
-* AT ALL TIMES.
-*
-******************************************************************************/
-/*****************************************************************************/
-/**
-* @file asm_vectors.s
-*
-* This file contains the initial vector table for the Cortex A9 processor
-*
-* <pre>
-* MODIFICATION HISTORY:
-*
-* Ver   Who     Date     Changes
-* ----- ------- -------- ---------------------------------------------------
-* 1.00a ecm/sdm 10/20/09 Initial version
-* 3.05a sdm    02/02/12 Save lr when profiling is enabled
-* 3.10a srt     04/18/13 Implemented ARM Erratas. Please refer to file
-*                       'xil_errata.h' for errata description
-* </pre>
-*
-* @note
-*
-* None.
-*
-******************************************************************************/
-#if 0
-#include "xil_errata.h"
-
-#define __ARM_NEON__ 1
-
-.org 0
-.text
-
-.globl _boot
-.globl _vector_table
-
-.globl FIQInterrupt
-.globl IRQInterrupt
-.globl SWInterrupt
-.globl DataAbortInterrupt
-.globl PrefetchAbortInterrupt
-
-.globl IRQHandler
-.globl prof_pc
-
-.section .vectors
-_vector_table:
-       B       _boot
-       B       Undefined
-       B       SVCHandler
-       B       PrefetchAbortHandler
-       B       DataAbortHandler
-       NOP     /* Placeholder for address exception vector*/
-       B       IRQHandler
-       B       FIQHandler
-
-
-IRQHandler:                                    /* IRQ vector handler */
-       
-       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code*/
-#ifdef __ARM_NEON__
-       vpush {d0-d7}
-       vpush {d16-d31}
-       vmrs r1, FPSCR
-       push {r1}
-       vmrs r1, FPEXC
-       push {r1}
-#endif
-
-#ifdef PROFILING
-       ldr     r2, =prof_pc
-       subs    r3, lr, #0
-       str     r3, [r2]
-#endif
-
-       bl      IRQInterrupt                    /* IRQ vector */
-       
-#ifdef __ARM_NEON__
-       pop     {r1}
-       vmsr    FPEXC, r1
-       pop     {r1}
-       vmsr    FPSCR, r1
-       vpop    {d16-d31}
-       vpop    {d0-d7}
-#endif
-       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
-       
-
-       subs    pc, lr, #4                      /* adjust return */
-
-
-FIQHandler:                                    /* FIQ vector handler */
-       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
-#ifdef __ARM_NEON__
-       vpush {d0-d7}
-       vpush {d16-d31}
-       vmrs r1, FPSCR
-       push {r1}
-       vmrs r1, FPEXC
-       push {r1}
-#endif
-
-FIQLoop:
-       bl      FIQInterrupt                    /* FIQ vector */
-
-#ifdef __ARM_NEON__
-       pop     {r1}
-       vmsr    FPEXC, r1
-       pop     {r1}
-       vmsr    FPSCR, r1
-       vpop    {d16-d31}
-       vpop    {d0-d7}
-#endif
-       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
-       subs    pc, lr, #4                      /* adjust return */
-
-
-Undefined:                                     /* Undefined handler */
-       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
-
-       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
-
-       b       _prestart                       
-
-       movs    pc, lr
-
-
-SVCHandler:                                    /* SWI handler */
-       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
-
-       tst     r0, #0x20                       /* check the T bit */
-       ldrneh  r0, [lr,#-2]                    /* Thumb mode */
-       bicne   r0, r0, #0xff00                 /* Thumb mode */
-       ldreq   r0, [lr,#-4]                    /* ARM mode */
-       biceq   r0, r0, #0xff000000             /* ARM mode */
-
-       bl      SWInterrupt                     /* SWInterrupt: call C function here */
-
-       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
-
-       subs    pc, lr, #4                      /* adjust return */
-
-
-DataAbortHandler:                              /* Data Abort handler */
-#ifdef CONFIG_ARM_ERRATA_775420
-       dsb
-#endif
-       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
-
-       bl      DataAbortInterrupt              /*DataAbortInterrupt :call C function here */
-
-       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
-
-       subs    pc, lr, #4                      /* adjust return */
-
-PrefetchAbortHandler:                          /* Prefetch Abort handler */
-#ifdef CONFIG_ARM_ERRATA_775420
-       dsb
-#endif
-       stmdb   sp!,{r0-r3,r12,lr}              /* state save from compiled code */
-
-       bl      PrefetchAbortInterrupt          /* PrefetchAbortInterrupt: call C function here */
-
-       ldmia   sp!,{r0-r3,r12,lr}              /* state restore from compiled code */
-
-       subs    pc, lr, #4                      /* adjust return */
-
-
-.end
-
-#endif
-
-
index 2e2e12984fbf2f30d182f16c6cd9ef2736169230..5312b3bdcab144561f9ad5c3b1f3444bf04649e3 100644 (file)
@@ -30,13 +30,14 @@ MEMORY
 \r
 /* Specify the default entry point to the program */\r
 \r
-ENTRY(_vector_table)\r
+ENTRY(_freertos_vector_table)\r
 \r
 /* Define the sections, and where they are mapped in memory */\r
 \r
 SECTIONS\r
 {\r
 .text : {\r
+   *(.freertos_vectors)\r
    *(.vectors)\r
    *(.boot)\r
    *(.text)\r
index b5174deb9f3e31e804b9d1ebe7279c6851219b11..6924f045c747083d047467d6547ddef5f5748a2f 100644 (file)
 #include "xscugic.h"
 #include "xil_exception.h"
 
-int main()
-{
-    init_platform();
+/* Set mainCREATE_SIMPLE_BLINKY_DEMO_ONLY to one to run the simple blinky demo,
+or 0 to run the more comprehensive test and demo application. */
+#define mainCREATE_SIMPLE_BLINKY_DEMO_ONLY     1
 
-    print("Hello World\n\r");
+/*-----------------------------------------------------------*/
 
-    return 0;
-}
+/*
+ * Configure the hardware as necessary to run this demo.
+ */
+static void prvSetupHardware( void );
 
-void vAssertCalled( const char * pcFile, unsigned long ulLine )
-{
-       ( void ) pcFile;
-       ( void ) ulLine;
-}
+/*
+ * main_blinky() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1.
+ * main_full() is used when mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 0.
+ */
+#if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1
+       extern void main_blinky( void );
+#else
+       extern void main_full( void );
+#endif /* #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1 */
+
+/* Prototypes for the standard FreeRTOS callback/hook functions implemented
+within this file. */
+void vApplicationMallocFailedHook( void );
+void vApplicationIdleHook( void );
+void vApplicationStackOverflowHook( xTaskHandle pxTask, char *pcTaskName );
+void vApplicationTickHook( void );
+
+/*
+ * Creates and verifies different files on the volume, demonstrating the use of
+ * various different API functions.
+ */
+extern void vCreateAndVerifySampleFiles( void );
 
+/*-----------------------------------------------------------*/
 
-void vConfigureTickInterrupt( void )
+int main( void )
 {
+       /* Configure the hardware ready to run the demo. */
+       prvSetupHardware();
+
+       /* The mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting is described at the top
+       of this file. */
+       #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 1
+       {
+               main_blinky();
+       }
+       #else
+       {
+               main_full();
+       }
+       #endif
+
+       return 0;
 }
+/*-----------------------------------------------------------*/
 
 static void prvSetupHardware( void )
 {
+int Status;
+static XScuGic InterruptController;    /* Interrupt controller instance */
+extern void FreeRTOS_IRQ_Handler( void );
+extern void FreeRTOS_SWI_Handler( void );
+
+       __asm volatile ( "cpsid i" );
        Xil_ExceptionInit();
 
+       XScuGic_Config *IntcConfig; /* The configuration parameters of the
+                                                                       interrupt controller */
+       /*
+        * Initialize the interrupt controller driver
+        */
+       IntcConfig = XScuGic_LookupConfig(XPAR_SCUGIC_SINGLE_DEVICE_ID);
+       configASSERT( IntcConfig );
+       configASSERT( IntcConfig->CpuBaseAddress == ( configINTERRUPT_CONTROLLER_BASE_ADDRESS + configINTERRUPT_CONTROLLER_CPU_INTERFACE_OFFSET ) );
+       configASSERT( IntcConfig->DistBaseAddress == configINTERRUPT_CONTROLLER_BASE_ADDRESS );
+
+       Status = XScuGic_CfgInitialize(&InterruptController, IntcConfig, IntcConfig->CpuBaseAddress );
+       configASSERT( Status == XST_SUCCESS );
+
+       Xil_ExceptionRegisterHandler( XIL_EXCEPTION_ID_IRQ_INT, (Xil_ExceptionHandler)FreeRTOS_IRQ_Handler,     &InterruptController);
+       Xil_ExceptionRegisterHandler( XIL_EXCEPTION_ID_SWI_INT, (Xil_ExceptionHandler)FreeRTOS_SWI_Handler,     &InterruptController);
+
+//     Xil_ExceptionEnableMask( XIL_EXCEPTION_ALL );
+//     Xil_ExceptionEnable();
+
        /*
         * Connect the interrupt controller interrupt handler to the hardware
         * interrupt handling logic in the ARM processor.
@@ -142,19 +204,111 @@ static void prvSetupHardware( void )
                        (void *)8);
 #endif
 }
+/*-----------------------------------------------------------*/
 
+void vApplicationMallocFailedHook( void )
+{
+       /* Called if a call to pvPortMalloc() fails because there is insufficient
+       free memory available in the FreeRTOS heap.  pvPortMalloc() is called
+       internally by FreeRTOS API functions that create tasks, queues, software
+       timers, and semaphores.  The size of the FreeRTOS heap is set by the
+       configTOTAL_HEAP_SIZE configuration constant in FreeRTOSConfig.h. */
+       taskDISABLE_INTERRUPTS();
+       for( ;; );
+}
+/*-----------------------------------------------------------*/
+
+void vApplicationStackOverflowHook( xTaskHandle pxTask, char *pcTaskName )
+{
+       ( void ) pcTaskName;
+       ( void ) pxTask;
+
+       /* Run time stack overflow checking is performed if
+       configCHECK_FOR_STACK_OVERFLOW is defined to 1 or 2.  This hook
+       function is called if a stack overflow is detected. */
+       taskDISABLE_INTERRUPTS();
+       for( ;; );
+}
+/*-----------------------------------------------------------*/
 
 void vApplicationIdleHook( void )
 {
+volatile size_t xFreeHeapSpace;
+
+       /* This is just a trivial example of an idle hook.  It is called on each
+       cycle of the idle task.  It must *NOT* attempt to block.  In this case the
+       idle task just queries the amount of FreeRTOS heap that remains.  See the
+       memory management section on the http://www.FreeRTOS.org web site for memory
+       management options.  If there is a lot of heap memory free then the
+       configTOTAL_HEAP_SIZE value in FreeRTOSConfig.h can be reduced to free up
+       RAM. */
+       xFreeHeapSpace = xPortGetFreeHeapSize();
+
+       /* Remove compiler warning about xFreeHeapSpace being set but never used. */
+       ( void ) xFreeHeapSpace;
+
+       #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY != 1
+       {
+               /* If the file system is only going to be accessed from one task then
+               F_FS_THREAD_AWARE can be set to 0 and the set of example files is
+               created before the RTOS scheduler is started.  If the file system is
+               going to be     access from more than one task then F_FS_THREAD_AWARE must
+               be set to 1 and the set of sample files are created from the idle task
+               hook function. */
+               #if F_FS_THREAD_AWARE == 1
+               {
+                       static portBASE_TYPE xCreatedSampleFiles = pdFALSE;
+
+                       /* Initialise the drive and file system, then create a few example
+                       files.  The output from this function just goes to the stdout window,
+                       allowing the output to be viewed when the UDP command console is not
+                       connected. */
+                       if( xCreatedSampleFiles == pdFALSE )
+                       {
+                               vCreateAndVerifySampleFiles();
+                               xCreatedSampleFiles = pdTRUE;
+                       }
+               }
+               #endif
+       }
+       #endif
 }
+/*-----------------------------------------------------------*/
 
-void vApplicationStackOverflowHook( TaskHandle_t xTask, const char * pcTaskName )
+void vAssertCalled( const char * pcFile, unsigned long ulLine )
 {
+volatile unsigned long ul = 0;
+
+       ( void ) pcFile;
+       ( void ) ulLine;
+
+       taskENTER_CRITICAL();
+       {
+               /* Set ul to a non-zero value using the debugger to step out of this
+               function. */
+               while( ul == 0 )
+               {
+                       portNOP();
+               }
+       }
+       taskEXIT_CRITICAL();
 }
+/*-----------------------------------------------------------*/
 
 void vApplicationTickHook( void )
 {
+       #if mainCREATE_SIMPLE_BLINKY_DEMO_ONLY == 0
+       {
+               /* The full demo includes a software timer demo/test that requires
+               prodding periodically from the tick interrupt. */
+               vTimerPeriodicISRTests();
+
+               /* Call the periodic queue overwrite from ISR demo. */
+               vQueueOverwritePeriodicISRDemo();
+       }
+       #endif
 }
+/*-----------------------------------------------------------*/
 
 void vApplicationIRQHandler( uint32_t ulICCIAR )
 {
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main_blinky.c b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo/src/main_blinky.c
new file mode 100644 (file)
index 0000000..aba3cfc
--- /dev/null
@@ -0,0 +1,232 @@
+/*\r
+    FreeRTOS V8.0.0:rc2 - Copyright (C) 2014 Real Time Engineers Ltd.\r
+    All rights reserved\r
+\r
+    VISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    FreeRTOS provides completely free yet professionally developed,    *\r
+     *    robust, strictly quality controlled, supported, and cross          *\r
+     *    platform software that has become a de facto standard.             *\r
+     *                                                                       *\r
+     *    Help yourself get started quickly and support the FreeRTOS         *\r
+     *    project by purchasing a FreeRTOS tutorial book, reference          *\r
+     *    manual, or both from: http://www.FreeRTOS.org/Documentation        *\r
+     *                                                                       *\r
+     *    Thank you!                                                         *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    This file is part of the FreeRTOS distribution.\r
+\r
+    FreeRTOS is free software; you can redistribute it and/or modify it under\r
+    the terms of the GNU General Public License (version 2) as published by the\r
+    Free Software Foundation >>!AND MODIFIED BY!<< the FreeRTOS exception.\r
+\r
+    >>! NOTE: The modification to the GPL is included to allow you to distribute\r
+    >>! a combined work that includes FreeRTOS without being obliged to provide\r
+    >>! the source code for proprietary components outside of the FreeRTOS\r
+    >>! kernel.\r
+\r
+    FreeRTOS is distributed in the hope that it will be useful, but WITHOUT ANY\r
+    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS\r
+    FOR A PARTICULAR PURPOSE.  Full license text is available from the following\r
+    link: http://www.freertos.org/a00114.html\r
+\r
+    1 tab == 4 spaces!\r
+\r
+    ***************************************************************************\r
+     *                                                                       *\r
+     *    Having a problem?  Start by reading the FAQ "My application does   *\r
+     *    not run, what could be wrong?"                                     *\r
+     *                                                                       *\r
+     *    http://www.FreeRTOS.org/FAQHelp.html                               *\r
+     *                                                                       *\r
+    ***************************************************************************\r
+\r
+    http://www.FreeRTOS.org - Documentation, books, training, latest versions,\r
+    license and Real Time Engineers Ltd. contact details.\r
+\r
+    http://www.FreeRTOS.org/plus - A selection of FreeRTOS ecosystem products,\r
+    including FreeRTOS+Trace - an indispensable productivity tool, a DOS\r
+    compatible FAT file system, and our tiny thread aware UDP/IP stack.\r
+\r
+    http://www.OpenRTOS.com - Real Time Engineers ltd license FreeRTOS to High\r
+    Integrity Systems to sell under the OpenRTOS brand.  Low cost OpenRTOS\r
+    licenses offer ticketed support, indemnification and middleware.\r
+\r
+    http://www.SafeRTOS.com - High Integrity Systems also provide a safety\r
+    engineered and independently SIL3 certified version for use in safety and\r
+    mission critical applications that require provable dependability.\r
+\r
+    1 tab == 4 spaces!\r
+*/\r
+\r
+/******************************************************************************\r
+ * NOTE 1:  This project provides two demo applications.  A simple blinky style\r
+ * project, and a more comprehensive test and demo application.  The\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY setting in main.c is used to select\r
+ * between the two.  See the notes on using mainCREATE_SIMPLE_BLINKY_DEMO_ONLY\r
+ * in main.c.  This file implements the simply blinky style version.\r
+ *\r
+ * NOTE 2:  This file only contains the source code that is specific to the\r
+ * basic demo.  Generic functions, such FreeRTOS hook functions, and functions\r
+ * required to configure the hardware are defined in main.c.\r
+ ******************************************************************************\r
+ *\r
+ * main_blinky() creates one queue, and two tasks.  It then starts the\r
+ * scheduler.\r
+ *\r
+ * The Queue Send Task:\r
+ * The queue send task is implemented by the prvQueueSendTask() function in\r
+ * this file.  prvQueueSendTask() sits in a loop that causes it to repeatedly\r
+ * block for 200 milliseconds, before sending the value 100 to the queue that\r
+ * was created within main_blinky().  Once the value is sent, the task loops\r
+ * back around to block for another 200 milliseconds...and so on.\r
+ *\r
+ * The Queue Receive Task:\r
+ * The queue receive task is implemented by the prvQueueReceiveTask() function\r
+ * in this file.  prvQueueReceiveTask() sits in a loop where it repeatedly\r
+ * blocks on attempts to read data from the queue that was created within\r
+ * main_blinky().  When data is received, the task checks the value of the\r
+ * data, and if the value equals the expected 100, toggles an LED.  The 'block\r
+ * time' parameter passed to the queue receive function specifies that the\r
+ * task should be held in the Blocked state indefinitely to wait for data to\r
+ * be available on the queue.  The queue receive task will only leave the\r
+ * Blocked state when the queue send task writes to the queue.  As the queue\r
+ * send task writes to the queue every 200 milliseconds, the queue receive\r
+ * task leaves the Blocked state every 200 milliseconds, and therefore toggles\r
+ * the LED every 200 milliseconds.\r
+ */\r
+\r
+/* Kernel includes. */\r
+#include "FreeRTOS.h"\r
+#include "task.h"\r
+#include "semphr.h"\r
+\r
+/* Standard demo includes. */\r
+#include "partest.h"\r
+\r
+/* Priorities at which the tasks are created. */\r
+#define mainQUEUE_RECEIVE_TASK_PRIORITY                ( tskIDLE_PRIORITY + 2 )\r
+#define        mainQUEUE_SEND_TASK_PRIORITY            ( tskIDLE_PRIORITY + 1 )\r
+\r
+/* The rate at which data is sent to the queue.  The 200ms value is converted\r
+to ticks using the portTICK_RATE_MS constant. */\r
+#define mainQUEUE_SEND_FREQUENCY_MS                    ( 200 / portTICK_RATE_MS )\r
+\r
+/* The number of items the queue can hold.  This is 1 as the receive task\r
+will remove items as they are added, meaning the send task should always find\r
+the queue empty. */\r
+#define mainQUEUE_LENGTH                                       ( 1 )\r
+\r
+/* The LED toggled by the Rx task. */\r
+#define mainTASK_LED                                           ( 0 )\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/*\r
+ * The tasks as described in the comments at the top of this file.\r
+ */\r
+static void prvQueueReceiveTask( void *pvParameters );\r
+static void prvQueueSendTask( void *pvParameters );\r
+\r
+/*\r
+ * Called by main() to create the simply blinky style application if\r
+ * mainCREATE_SIMPLE_BLINKY_DEMO_ONLY is set to 1.\r
+ */\r
+void main_blinky( void );\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+/* The queue used by both tasks. */\r
+static xQueueHandle xQueue = NULL;\r
+\r
+/*-----------------------------------------------------------*/\r
+\r
+void main_blinky( void )\r
+{\r
+       /* Create the queue. */\r
+       xQueue = xQueueCreate( mainQUEUE_LENGTH, sizeof( unsigned long ) );\r
+\r
+       if( xQueue != NULL )\r
+       {\r
+               /* Start the two tasks as described in the comments at the top of this\r
+               file. */\r
+               xTaskCreate( prvQueueReceiveTask,                               /* The function that implements the task. */\r
+                                       "Rx",                                                           /* The text name assigned to the task - for debug only as it is not used by the kernel. */\r
+                                       configMINIMAL_STACK_SIZE,                       /* The size of the stack to allocate to the task. */\r
+                                       NULL,                                                           /* The parameter passed to the task - not used in this case. */\r
+                                       mainQUEUE_RECEIVE_TASK_PRIORITY,        /* The priority assigned to the task. */\r
+                                       NULL );                                                         /* The task handle is not required, so NULL is passed. */\r
+\r
+               xTaskCreate( prvQueueSendTask, "TX", configMINIMAL_STACK_SIZE, NULL, mainQUEUE_SEND_TASK_PRIORITY, NULL );\r
+\r
+               /* Start the tasks and timer running. */\r
+               vTaskStartScheduler();\r
+       }\r
+\r
+       /* If all is well, the scheduler will now be running, and the following\r
+       line will never be reached.  If the following line does execute, then\r
+       there was either insufficient FreeRTOS heap memory available for the idle\r
+       and/or timer tasks to be created, or vTaskStartScheduler() was called from\r
+       User mode.  See the memory management section on the FreeRTOS web site for\r
+       more details on the FreeRTOS heap http://www.freertos.org/a00111.html.  The\r
+       mode from which main() is called is set in the C start up code and must be\r
+       a privileged mode (not user mode). */\r
+       for( ;; );\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvQueueSendTask( void *pvParameters )\r
+{\r
+portTickType xNextWakeTime;\r
+const unsigned long ulValueToSend = 100UL;\r
+\r
+       /* Remove compiler warning about unused parameter. */\r
+       ( void ) pvParameters;\r
+\r
+       /* Initialise xNextWakeTime - this only needs to be done once. */\r
+       xNextWakeTime = xTaskGetTickCount();\r
+\r
+       for( ;; )\r
+       {\r
+               /* Place this task in the blocked state until it is time to run again. */\r
+               vTaskDelayUntil( &xNextWakeTime, mainQUEUE_SEND_FREQUENCY_MS );\r
+\r
+               /* Send to the queue - causing the queue receive task to unblock and\r
+               toggle the LED.  0 is used as the block time so the sending operation\r
+               will not block - it shouldn't need to block as the queue should always\r
+               be empty at this point in the code. */\r
+               xQueueSend( xQueue, &ulValueToSend, 0U );\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
+static void prvQueueReceiveTask( void *pvParameters )\r
+{\r
+unsigned long ulReceivedValue;\r
+const unsigned long ulExpectedValue = 100UL;\r
+\r
+       /* Remove compiler warning about unused parameter. */\r
+       ( void ) pvParameters;\r
+\r
+       for( ;; )\r
+       {\r
+               /* Wait until something arrives in the queue - this task will block\r
+               indefinitely provided INCLUDE_vTaskSuspend is set to 1 in\r
+               FreeRTOSConfig.h. */\r
+               xQueueReceive( xQueue, &ulReceivedValue, portMAX_DELAY );\r
+\r
+               /*  To get here something must have been received from the queue, but\r
+               is it the expected value?  If it is, toggle the LED. */\r
+               if( ulReceivedValue == ulExpectedValue )\r
+               {\r
+                       vParTestToggleLED( mainTASK_LED );\r
+                       ulReceivedValue = 0U;\r
+               }\r
+       }\r
+}\r
+/*-----------------------------------------------------------*/\r
+\r
index 42ffdde1ed3afa80061dbba9c9fabc660d333394..66c94fd3aa86336bb859690f4c91bb3da7138d8b 100644 (file)
@@ -13,7 +13,7 @@
        </storageModule>\r
        <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>\r
        <storageModule moduleId="org.eclipse.cdt.core.pathentry">\r
-               <pathentry excluding="ps7_cortexa9_0/libsrc/standalone_v3_12_a/src/asm_vectors.S" kind="src" path=""/>\r
+               <pathentry kind="src" path=""/>\r
                <pathentry kind="out" path=""/>\r
        </storageModule>\r
 </cproject>\r
index 7e36292914f4ee51b5bfec19761891c3324fafc1..1ac923aef74bb118e7a3e378c21142a8cecbf67d 100644 (file)
                <nature>org.eclipse.cdt.core.cnature</nature>\r
                <nature>org.eclipse.cdt.make.core.makeNature</nature>\r
        </natures>\r
+       <filteredResources>\r
+               <filter>\r
+                       <id>1390399902942</id>\r
+                       <name></name>\r
+                       <type>6</type>\r
+                       <matcher>\r
+                               <id>org.eclipse.ui.ide.multiFilter</id>\r
+                               <arguments>1.0-name-matches-false-false-asm_vectors.S</arguments>\r
+                       </matcher>\r
+               </filter>\r
+       </filteredResources>\r
 </projectDescription>\r
diff --git a/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/libgen.log b/FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702/RTOSDemo_bsp/libgen.log
deleted file mode 100644 (file)
index bf4fc59..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-Release 2013.4 - libgen Xilinx EDK 2013.4 Build EDK_2013.4.20131205
- (nt)
-Copyright (c) 1995-2013 Xilinx, Inc.  All rights reserved.
-
-Command Line: libgen -hw ../ZC702_hw_platform/system.xml -pe ps7_cortexa9_0 -log\r
-libgen.log system.mss 
-
-
-Staging source files.
-Running DRCs.
-Running generate.
-Running post_generate.
-Running include - 'make -s include "COMPILER=arm-xilinx-eabi-gcc"\r
-"ARCHIVER=arm-xilinx-eabi-ar" "COMPILER_FLAGS= -O2 -c"\r
-"EXTRA_COMPILER_FLAGS=-g"'.
-
-Running libs - 'make -s libs "COMPILER=arm-xilinx-eabi-gcc"\r
-"ARCHIVER=arm-xilinx-eabi-ar" "COMPILER_FLAGS= -O2 -c"\r
-"EXTRA_COMPILER_FLAGS=-g"'.
-Running execs_generate.
index dec7138ff2509219a9829639ae3285ecb9e17c13..b2637b0a8c28c2fdab7f76685a6d8b54f82f5c94 100644 (file)
@@ -15,6 +15,7 @@ BEGIN PROCESSOR
  PARAMETER DRIVER_NAME = cpu_cortexa9\r
  PARAMETER DRIVER_VER = 1.01.a\r
  PARAMETER HW_INSTANCE = ps7_cortexa9_0\r
+ PARAMETER EXTRA_COMPILER_FLAGS = -g -O0\r
 END\r
 \r
 \r