/**
|
******************************************************************************
|
* @file xl_nvic.h
|
* @author software group
|
* @brief This file contains all the functions prototypes for the NVIC
|
* firmware library.
|
******************************************************************************
|
* @attention
|
*
|
* 2019 by Chipways Communications,Inc. All Rights Reserved.
|
* This software is supplied under the terms of a license
|
* agreement or non-disclosure agreement with Chipways.
|
* Passing on and copying of this document,and communication
|
* of its contents is not permitted without prior written
|
* authorization.
|
*
|
* <h2><center>© COPYRIGHT 2019 Chipways</center></h2>
|
******************************************************************************
|
*/
|
/* Define to prevent recursive inclusion -------------------------------------*/
|
#ifndef __XL_NVIC_H__
|
#define __XL_NVIC_H__
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
/* Includes ---------------------------------------------------------------*/
|
#include "xl6600.h"
|
|
|
#define SCB_AIRCR_PRIGROUP_Pos 8U
|
#define SCB_AIRCR_PRIGROUP_Msk (7UL << SCB_AIRCR_PRIGROUP_Pos)
|
|
|
/** @addtogroup XL6600_StdPeriph_Driver
|
* @{
|
*/
|
|
/** @addtogroup NVIC
|
* @{
|
*/
|
|
/* Exported types ------------------------------------------------------------*/
|
/**
|
* @brief NVIC ³õʼ»¯½á¹¹Ì嶨Òå
|
*/
|
typedef struct
|
{
|
uint8_t NVIC_IRQChannel; /*!< ¶¨ÒåÖжÏͨµÀ */
|
|
uint8_t NVIC_IRQChannelPreemptionPriority; /*!< IRQÖжÏÇÀռʽÓÅÏȼ¶£¬·¶Î§0µ½3 */
|
|
uint8_t NVIC_IRQChannelSubPriority; /*!< IRQÖжÏ×ÓÓÅÏȼ¶£¬·¶Î§0µ½3 */
|
|
FunctionalState NVIC_IRQChannelCmd; /*!< IRQͨµÀʹÄÜ»òÕßʧÄÜ */
|
} NVIC_InitTypeDef;
|
|
|
/* Exported constants --------------------------------------------------------*/
|
/** @defgroup NVIC_Exported_Constants NVICÄ£¿éʹÓòÎÊý¶¨Òå
|
* @{
|
*/
|
/** @defgroup Vector_Table_Base »ù±¾ÖжÏÏòÁ¿±í
|
* @{
|
*/
|
#define AIRCR_VECTKEY_MASK ((uint32_t)0x05FA0000)
|
#define NVIC_VectTab_RAM ((uint32_t)0x20000000)
|
#define NVIC_VectTab_FLASH ((uint32_t)0x00000000)
|
/**
|
* @}
|
*/
|
|
/** @defgroup System_Low_Power NVICϵͳµÍ¹¦ºÄ¶¨Òå
|
* @{
|
*/
|
#define NVIC_LP_SEVONPEND ((uint8_t)0x10)
|
#define NVIC_LP_SLEEPDEEP ((uint8_t)0x04)
|
#define NVIC_LP_SLEEPONEXIT ((uint8_t)0x02)
|
/**
|
* @}
|
*/
|
|
/** @defgroup Preemption_Priority_Group NVICÖжÏ×鶨Òå
|
* @{
|
*/
|
#define NVIC_PriorityGroup_0 ((uint32_t)0x700) /*!< 0λÇÀռʽÓÅÏȼ¶£¬4λ×ÓÓÅÏȼ¶ */
|
#define NVIC_PriorityGroup_1 ((uint32_t)0x600) /*!< 1λÇÀռʽÓÅÏȼ¶£¬3λ×ÓÓÅÏȼ¶ */
|
#define NVIC_PriorityGroup_2 ((uint32_t)0x500) /*!< 2λÇÀռʽÓÅÏȼ¶£¬2λ×ÓÓÅÏȼ¶ */
|
#define NVIC_PriorityGroup_3 ((uint32_t)0x400) /*!< 3λÇÀռʽÓÅÏȼ¶£¬1λ×ÓÓÅÏȼ¶ */
|
#define NVIC_PriorityGroup_4 ((uint32_t)0x300) /*!< 4λÇÀռʽÓÅÏȼ¶£¬0λ×ÓÓÅÏȼ¶ */
|
/**
|
* @}
|
*/
|
|
/** @defgroup SysTick_clock_source CoreʱÖÓÔ´
|
* @{
|
*/
|
#define SysTick_CLKSource_HCLK_Div8 0xFFFFFFFBu
|
#define SysTick_CLKSource_HCLK 0x00000004u
|
/**
|
* @}
|
*/
|
|
/**
|
* @}
|
*/
|
|
/* Exported macro ------------------------------------------------------------*/
|
/* Exported functions --------------------------------------------------------*/
|
void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup);
|
void NVIC_Init(const NVIC_InitTypeDef* NVIC_InitStruct);
|
void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset);
|
void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState);
|
void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource);
|
#ifdef __cplusplus
|
}
|
#endif
|
|
#endif /* __XL_NVIC_H__ */
|
/**
|
* @}
|
*/
|
|
/**
|
* @}
|
*/
|