]> git.sur5r.net Git - freertos/commitdiff
Update to use Yagarto compiler and use the noinline attribute on the serial port...
authorrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 18 Sep 2009 13:55:43 +0000 (13:55 +0000)
committerrichardbarry <richardbarry@1d2547de-c912-0410-9cb9-b8ca96c0e9e2>
Fri, 18 Sep 2009 13:55:43 +0000 (13:55 +0000)
git-svn-id: https://svn.code.sf.net/p/freertos/code/trunk@851 1d2547de-c912-0410-9cb9-b8ca96c0e9e2

Demo/ARM7_AT91FR40008_GCC/atmel-ram.ld
Demo/ARM7_AT91FR40008_GCC/atmel-rom.ld
Demo/ARM7_AT91FR40008_GCC/serial/serialISR.c

index 69220266198c23937ef2a848438dce9b1be7e035..763519c49384daa13b3d7574e42458dde227b72a 100644 (file)
@@ -35,6 +35,12 @@ SECTIONS
                *(.bss)\r
        } >ram\r
 \r
+       . = ALIGN(4);\r
+       .eh_frame :\r
+       {\r
+                KEEP (*(.eh_frame))\r
+       } > ram\r
+       \r
        /* Align here to ensure that the .bss section occupies space up to\r
        _end.  Align after .bss to ensure correct alignment even if the\r
        .bss section disappears because there are no input sections.  */\r
index 35578fd96c067b68ca5f5a33c4fb66ebcbe3d46e..95727eee2a9690e8ec519f74cd74c741f88ca1c5 100644 (file)
@@ -36,6 +36,12 @@ SECTIONS
                *(.bss)\r
        } >ram\r
 \r
+       . = ALIGN(4);\r
+       .eh_frame :\r
+       {\r
+                KEEP (*(.eh_frame))\r
+       } > ram\r
+       \r
        /* Align here to ensure that the .bss section occupies space up to\r
        _end.  Align after .bss to ensure correct alignment even if the\r
        .bss section disappears because there are no input sections.  */\r
index 959ede8f5898a1217ad85aa9ee7dc23327ce743d..ea415502974835b6479f73494d1823c0d7e97e86 100644 (file)
@@ -93,7 +93,7 @@ void vUART_ISR_Wrapper( void ) __attribute__ ((naked));
 \r
 /* The ISR function that actually performs the work.  This must be separate \r
 from the wrapper to ensure the correct stack frame is set up. */\r
-void vUART_ISR_Handler( void );\r
+void vUART_ISR_Handler( void ) __attribute__ ((noinline));\r
 \r
 /*-----------------------------------------------------------*/\r
 void vSerialISRCreateQueues( unsigned portBASE_TYPE uxQueueLength, xQueueHandle *pxRxedChars, xQueueHandle *pxCharsForTx )\r
@@ -116,7 +116,7 @@ void vUART_ISR_Wrapper( void )
 \r
        /* Call the handler.  This must be a separate function to ensure the \r
        stack frame is correctly set up. */\r
-       vUART_ISR_Handler();\r
+       __asm volatile( "bl vUART_ISR_Handler" );\r
 \r
        /* Restore the context of whichever task will run next. */\r
        portRESTORE_CONTEXT();\r