]> git.sur5r.net Git - freertos/blob - Demo/NEC_78K0R_IAR/ButtonISR.s26
Update to V5.4.1
[freertos] / Demo / NEC_78K0R_IAR / ButtonISR.s26
1 ;/*\r
2 ;       FreeRTOS V5.4.1 - Copyright (C) 2009 Real Time Engineers Ltd.\r
3 ;\r
4 ;       This file is part of the FreeRTOS distribution.\r
5 ;\r
6 ;       FreeRTOS is free software; you can redistribute it and/or modify it     under \r
7 ;       the terms of the GNU General Public License (version 2) as published by the \r
8 ;       Free Software Foundation and modified by the FreeRTOS exception.\r
9 ;       **NOTE** The exception to the GPL is included to allow you to distribute a\r
10 ;       combined work that includes FreeRTOS without being obliged to provide the \r
11 ;       source code for proprietary components outside of the FreeRTOS kernel.  \r
12 ;       Alternative commercial license and support terms are also available upon \r
13 ;       request.  See the licensing section of http://www.FreeRTOS.org for full \r
14 ;       license details.\r
15 ;\r
16 ;       FreeRTOS is distributed in the hope that it will be useful,     but WITHOUT\r
17 ;       ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or\r
18 ;       FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for\r
19 ;       more details.\r
20 ;\r
21 ;       You should have received a copy of the GNU General Public License along\r
22 ;       with FreeRTOS; if not, write to the Free Software Foundation, Inc., 59\r
23 ;       Temple Place, Suite 330, Boston, MA  02111-1307  USA.\r
24 ;\r
25 ;\r
26 ;       ***************************************************************************\r
27 ;       *                                                                         *\r
28 ;       * Looking for a quick start?  Then check out the FreeRTOS eBook!          *\r
29 ;       * See http://www.FreeRTOS.org/Documentation for details                   *\r
30 ;       *                                                                         *\r
31 ;       ***************************************************************************\r
32 ;\r
33 ;       1 tab == 4 spaces!\r
34 ;\r
35 ;       Please ensure to read the configuration and relevant port sections of the\r
36 ;       online documentation.\r
37 ;\r
38 ;       http://www.FreeRTOS.org - Documentation, latest information, license and\r
39 ;       contact details.\r
40 ;\r
41 ;       http://www.SafeRTOS.com - A version that is certified for use in safety\r
42 ;       critical systems.\r
43 ;\r
44 ;       http://www.OpenRTOS.com - Commercial support, development, porting,\r
45 ;       licensing and training services.\r
46 ;*/\r
47 \r
48 ;\r
49 ; This file defines a wrapper for the interrupt generated each time the button\r
50 ; on the target board is pushed.  The asm wrapper is used to save and restore\r
51 ; the task context as a context switch may occur within the ISR itself.\r
52 ; The C portion of the ISR is defined within ButtonTask.c.\r
53 ;\r
54 \r
55 ; Include the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.\r
56 #include "ISR_Support.h"\r
57 \r
58         PUBLIC    vButtonISRWrapper\r
59         EXTERN    vButtonISRHandler\r
60 \r
61     RSEG CODE:CODE\r
62         \r
63 vButtonISRWrapper:\r
64         ; Save the current task context.        \r
65         portSAVE_CONTEXT\r
66 \r
67         ; Call the C portion of the ISR.\r
68         call vButtonISRHandler\r
69 \r
70         ; Restore the context of whichever task is to run next - which might be\r
71         ; different from the task that was originally interrupted.\r
72         portRESTORE_CONTEXT\r
73         reti\r
74 \r
75 \r
76 \r
77         ; Place the ISR into the vector table.\r
78         COMMON INTVEC:CODE:ROOT(1)\r
79         ORG 8\r
80 `??vButtonISRWrapper??INTVEC 8`:\r
81         DW vButtonISRWrapper\r
82 \r
83 \r
84         END\r