]> git.sur5r.net Git - freertos/blob - Demo/NEC_78K0R_IAR/ButtonISR.s26
Add code for near memory model.
[freertos] / Demo / NEC_78K0R_IAR / ButtonISR.s26
1 ;       FreeRTOS.org V5.1.1 - Copyright (C) 2003-2008 Richard Barry.\r
2 ;\r
3 ;       This file is part of the FreeRTOS.org distribution.\r
4 ;\r
5 ;       FreeRTOS.org is free software; you can redistribute it and/or modify\r
6 ;       it under the terms of the GNU General Public License as published by\r
7 ;       the Free Software Foundation; either version 2 of the License, or\r
8 ;       (at your option) any later version.\r
9 ;\r
10 ;       FreeRTOS.org is distributed in the hope that it will be useful,\r
11 ;       but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 ;       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 ;       GNU General Public License for more details.\r
14 ;\r
15 ;       You should have received a copy of the GNU General Public License\r
16 ;       along with FreeRTOS.org; if not, write to the Free Software\r
17 ;       Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA\r
18 ;\r
19 ;       A special exception to the GPL can be applied should you wish to distribute\r
20 ;       a combined work that includes FreeRTOS.org, without being obliged to provide\r
21 ;       the source code for any proprietary components.  See the licensing section\r
22 ;       of http://www.FreeRTOS.org for full details of how and when the exception\r
23 ;       can be applied.\r
24 ;\r
25 ;       ***************************************************************************\r
26 ;       See http://www.FreeRTOS.org for documentation, latest information, license\r
27 ;       and contact details.  Please ensure to read the configuration and relevant\r
28 ;       port sections of the online documentation.\r
29 ;       ***************************************************************************\r
30 ;\r
31 ;------------------------------------------------------------------------------\r
32 \r
33 ;\r
34 ; This file defines a wrapper for the interrupt generated each time the button\r
35 ; on the target board is pushed.  The asm wrapper is used to save and restore\r
36 ; the task context as a context switch may occur within the ISR itself.\r
37 ; The C portion of the ISR is defined within ButtonTask.c.\r
38 ;\r
39 \r
40 ; Include the portSAVE_CONTEXT and portRESTORE_CONTEXT macros.\r
41 #include "ISR_Support.h"\r
42 \r
43         PUBLIC    vButtonISRWrapper\r
44         EXTERN    vButtonISRHandler\r
45 \r
46     RSEG CODE:CODE\r
47         \r
48 vButtonISRWrapper:\r
49         ; Save the current task context.        \r
50         portSAVE_CONTEXT\r
51 \r
52         ; Call the C portion of the ISR.\r
53         call vButtonISRHandler\r
54 \r
55         ; Restore the context of whichever task is to run next - which might be\r
56         ; different from the task that was originally interrupted.\r
57         portRESTORE_CONTEXT\r
58         reti\r
59 \r
60 \r
61 \r
62         ; Place the ISR into the vector table.\r
63         COMMON INTVEC:CODE:ROOT(1)\r
64         ORG 8\r
65 `??vButtonISRWrapper??INTVEC 8`:\r
66         DW vButtonISRWrapper\r
67 \r
68 \r
69         END\r