1 /* 2 * Copyright 2020-2023 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 #ifndef OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK 7 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK 8 9 #ifdef __cplusplus 10 extern "C"{ 11 #endif 12 13 /*================================================================================================== 14 * INCLUDE FILES 15 * 1) system and project includes 16 * 2) needed interfaces from external units 17 * 3) internal and external interfaces from this unit 18 ==================================================================================================*/ 19 #include "OsIf_Cfg.h" 20 21 /*================================================================================================== 22 * SOURCE FILE VERSION INFORMATION 23 ==================================================================================================*/ 24 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID 43 25 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION 4 26 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION 7 27 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION 0 28 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION 3 29 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION 0 30 #define OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION 0 31 32 /*================================================================================================== 33 * FILE VERSION CHECKS 34 ==================================================================================================*/ 35 /* Checks against OsIf_Cfg.h */ 36 #if (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_VENDOR_ID != OSIF_CFG_VENDOR_ID) 37 #error "OsIf_Timer_System_Internal_Systick.h and OsIf_Cfg.h have different vendor ids" 38 #endif 39 #if ((OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MAJOR_VERSION != OSIF_CFG_AR_RELEASE_MAJOR_VERSION) || \ 40 (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_MINOR_VERSION != OSIF_CFG_AR_RELEASE_MINOR_VERSION) || \ 41 (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_AR_RELEASE_REVISION_VERSION != OSIF_CFG_AR_RELEASE_REVISION_VERSION)) 42 #error "AUTOSAR Version Numbers of OsIf_Timer_System_Internal_Systick.h and OsIf_Cfg.h are different" 43 #endif 44 #if ((OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MAJOR_VERSION != OSIF_CFG_SW_MAJOR_VERSION) || \ 45 (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_MINOR_VERSION != OSIF_CFG_SW_MINOR_VERSION) || \ 46 (OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK_SW_PATCH_VERSION != OSIF_CFG_SW_PATCH_VERSION) \ 47 ) 48 #error "Software Version Numbers of OsIf_Timer_System_Internal_Systick.h and OsIf_Cfg.h are different" 49 #endif 50 51 /*================================================================================================== 52 * CONSTANTS 53 ==================================================================================================*/ 54 55 /*================================================================================================== 56 * DEFINES AND MACROS 57 ==================================================================================================*/ 58 59 /*================================================================================================== 60 * ENUMS 61 ==================================================================================================*/ 62 63 /*================================================================================================== 64 * STRUCTURES AND OTHER TYPEDEFS 65 ==================================================================================================*/ 66 67 /*================================================================================================== 68 * GLOBAL VARIABLE DECLARATIONS 69 ==================================================================================================*/ 70 71 /*================================================================================================== 72 * FUNCTION PROTOTYPES 73 ==================================================================================================*/ 74 #if defined(OSIF_USE_SYSTICK) 75 #if (OSIF_USE_SYSTICK == STD_ON) 76 77 #define BASENXP_START_SEC_CODE 78 #include "BaseNXP_MemMap.h" 79 /*! 80 * @brief Initialize SysTick timer 81 * 82 * This function initializes SysTick timer 83 * 84 * @param[in] SystemCounterFreq Systick's frequency 85 * @return void 86 */ 87 void OsIf_Timer_System_Internal_Init(uint32 SystemCounterFreq); 88 89 /*! 90 * @brief Get current counter value of SysTick timer 91 * 92 * This function gets current counter value of SysTick timer 93 * 94 * @param[in] void 95 * @return current counter value 96 */ 97 uint32 OsIf_Timer_System_Internal_GetCounter(void); 98 99 /*! 100 * @brief Get elapsed time 101 * 102 * This function gets elapsed time 103 * 104 * @param[in] CurrentRef - pointer to old counter value 105 * @return elapsed time 106 */ 107 uint32 OsIf_Timer_System_Internal_GetElapsed(uint32 * const CurrentRef); 108 109 #define BASENXP_STOP_SEC_CODE 110 #include "BaseNXP_MemMap.h" 111 112 #endif /* OSIF_USE_SYSTICK == STD_ON */ 113 #endif /* defined(OSIF_USE_SYSTICK) */ 114 115 #ifdef __cplusplus 116 } 117 #endif 118 119 #endif /* OSIF_TIMER_SYSTEM_INTERNAL_SYSTICK */ 120