Rtos API example

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers cmsis_nvic_virtual.h Source File

cmsis_nvic_virtual.h

00001 /*
00002  * Copyright (c) 2016, ARM Limited, All Rights Reserved
00003  * SPDX-License-Identifier: Apache-2.0
00004  *
00005  * Licensed under the Apache License, Version 2.0 (the "License"); you may
00006  * not use this file except in compliance with the License.
00007  * You may obtain a copy of the License at
00008  *
00009  * http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
00013  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 #ifndef __UVISOR_API_NVIC_VIRTUAL_H__
00018 #define __UVISOR_API_NVIC_VIRTUAL_H__
00019 
00020 #include "api/inc/interrupts.h"
00021 #include "api/inc/virq_exports.h"
00022 
00023 /* The NVIC APIs are only wrapped on ARMv7-M. */
00024 #if !defined(ARCH_CORE_ARMv8M) && !defined(TARGET_M33)
00025 
00026 #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping
00027 #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping
00028 #define NVIC_EnableIRQ           vIRQ_EnableIRQ
00029 #define NVIC_DisableIRQ          vIRQ_DisableIRQ
00030 #define NVIC_GetPendingIRQ       vIRQ_GetPendingIRQ
00031 #define NVIC_SetPendingIRQ       vIRQ_SetPendingIRQ
00032 #define NVIC_ClearPendingIRQ     vIRQ_ClearPendingIRQ
00033 #define NVIC_GetActive           __NVIC_GetActive
00034 #define NVIC_SetPriority         vIRQ_SetPriority
00035 #define NVIC_GetPriority         vIRQ_GetPriority
00036 #define NVIC_SystemReset()       vIRQ_SystemReset(RESET_REASON_NO_REASON)
00037 
00038 #else
00039 
00040 #define NVIC_SetPriorityGrouping __NVIC_SetPriorityGrouping
00041 #define NVIC_GetPriorityGrouping __NVIC_GetPriorityGrouping
00042 #define NVIC_EnableIRQ           __NVIC_EnableIRQ
00043 #define NVIC_DisableIRQ          __NVIC_DisableIRQ
00044 #define NVIC_GetPendingIRQ       __NVIC_GetPendingIRQ
00045 #define NVIC_SetPendingIRQ       __NVIC_SetPendingIRQ
00046 #define NVIC_ClearPendingIRQ     __NVIC_ClearPendingIRQ
00047 #define NVIC_GetActive           __NVIC_GetActive
00048 #define NVIC_SetPriority         __NVIC_SetPriority
00049 #define NVIC_GetPriority         __NVIC_GetPriority
00050 #define NVIC_SystemReset()       __NVIC_SystemReset()
00051 
00052 #endif
00053 
00054 #endif /* __UVISOR_API_NVIC_VIRTUAL_H__ */