| ;/* | |
| ; * FreeRTOS Kernel V10.3.0 | |
| ; * Copyright (C) 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved. | |
| ; * | |
| ; * Permission is hereby granted, free of charge, to any person obtaining a copy of | |
| ; * this software and associated documentation files (the "Software"), to deal in | |
| ; * the Software without restriction, including without limitation the rights to | |
| ; * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of | |
| ; * the Software, and to permit persons to whom the Software is furnished to do so, | |
| ; * subject to the following conditions: | |
| ; * | |
| ; * The above copyright notice and this permission notice shall be included in all | |
| ; * copies or substantial portions of the Software. | |
| ; * | |
| ; * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| ; * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS | |
| ; * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR | |
| ; * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER | |
| ; * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN | |
| ; * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. | |
| ; * | |
| ; * http://www.FreeRTOS.org | |
| ; * http://aws.amazon.com/freertos | |
| ; * | |
| ; * 1 tab == 4 spaces! | |
| ; */ | |
| ; | |
| ; This file defines a wrapper for the interrupt generated each time the button | |
| ; on the target board is pushed. The asm wrapper is used to save and restore | |
| ; the task context as a context switch may occur within the ISR itself. | |
| ; The C portion of the ISR is defined within ButtonTask.c. | |
| ; | |
| ; Include the portSAVE_CONTEXT and portRESTORE_CONTEXT macros. | |
| #include "ISR_Support.h" | |
| PUBLIC vButtonISRWrapper | |
| EXTERN vButtonISRHandler | |
| RSEG CODE:CODE | |
| vButtonISRWrapper: | |
| ; Save the current task context. | |
| portSAVE_CONTEXT | |
| ; Call the C portion of the ISR. | |
| call vButtonISRHandler | |
| ; Restore the context of whichever task is to run next - which might be | |
| ; different from the task that was originally interrupted. | |
| portRESTORE_CONTEXT | |
| reti | |
| ; Place the ISR into the vector table. | |
| COMMON INTVEC:CODE:ROOT(1) | |
| ORG 8 | |
| `??vButtonISRWrapper??INTVEC 8`: | |
| DW vButtonISRWrapper | |
| END |