?? viccontrol.h
字號:
/****************************************Copyright (c)**************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info-------------------------------------------------------------------------------
** File name: vicControl.h
** Last modified Date: 2007-07-09
** Last Version: 1.00
** Descriptions: VIC_Control 軟中斷函數接口
**------------------------------------------------------------------------------------------------------
** Created by: LinEnqiang
** Created date: 2007-07-06
** Version: 1.00
** Descriptions: The original version
**------------------------------------------------------------------------------------------------------
** Modified by:
** Modified date:
** Version:
** Descriptions:
********************************************************************************************************/
#ifndef _VIC_CONTROL_H_
#define _VIC_CONTROL_H_
#ifdef __cplusplus
extern "C" {
#endif
/*********************************************************************************************************
兼容定義,以后不要使用
*********************************************************************************************************/
#define VIC_Config VIC_IRQ_CFG
#define pVIC_Config PVIC_IRQ_CFG
#define SetVICIRQ vicIrqFuncSet
#define FreeVICIRQ vicIrqFuncClr
#define ReEnableVICIRQ vicIrqEnable
#define DisableVICIRQ vicIrqDisable
#define GetVICIRQState vicIrqStatusGet
#define SetVICFIQ vicFiqSet
#define FreeVICFIQ vicFiqClr
#define SetDefIRQFunction DefIrqFuncSet
#define EnableDefIRQ DefIrqEnable
#define DisableDefIRQ DefIrqDisable
#define EnableSoftInt SoftIntEnable
#define DisableSoftInt SoftIntDisable
/*********************************************************************************************************
VIC配置信息定義
*********************************************************************************************************/
struct vic_irq_cfg {
INT32U ulChannel; /* 通道 */
INT32U ulPri; /* 優先級 */
INT32U ulFunctionAddr; /* ISR地址 */
INT32U ulEnable; /* 使能標識 */
};
typedef struct vic_irq_cfg VIC_IRQ_CFG;
typedef struct vic_irq_cfg *PVIC_IRQ_CFG;
/*********************************************************************************************************
** Function name: swiHandle
** Descriptions: SWI函數聲明
** input parameters: iHandle: 用于區分功能
** 其他: 根據功能決定
** output parameters: 根據功能決定
** Returned value: 根據功能決定
*********************************************************************************************************/
__swi(0x01) unsigned int swiHandle (int iHandle, unsigned int, unsigned int, unsigned int);
/*********************************************************************************************************
** Function name: vicIrqFuncSet
** Descriptions: 設置所選外設的中斷優先級、中斷服務函數地址,并使能中斷
** input parameters: uiChannel: 外設對應的中斷通道號
** uiPri: 中斷優先級
** uiFuncAddr: 中斷服務函數地址
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int vicIrqFuncSet (unsigned int uiChannel,
unsigned int uiPri,
unsigned int uiFuncAddr)
{
return swiHandle(0x100, uiChannel, uiPri, uiFuncAddr);
}
/*********************************************************************************************************
** Function name: vicIrqFuncClr
** Descriptions: 清除所選外設的IRQ資源
** input parameters: uiChannel: 外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int vicIrqFuncClr (unsigned int uiChannel)
{
return swiHandle(0x101, uiChannel ,0 ,0);
}
/*********************************************************************************************************
** Function name: vicIrqEnable
** Descriptions: 使能相應外設的中斷
** input parameters: uiChannel: 外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int vicIrqEnable (unsigned int uiChannel)
{
return swiHandle(0x102, uiChannel, 0, 0);
}
/*********************************************************************************************************
** Function name: vicIrqDisable
** Descriptions: 禁止相應外設的中斷
** input parameters: uiChannel: 外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int vicIrqDisable (unsigned int uiChannel)
{
return swiHandle(0x103, uiChannel, 0, 0);
}
/*********************************************************************************************************
** Function name: vicIrqStatusGet
** Descriptions: 獲取所選外設的中斷通道號、優先級、中斷服務函數地址及中斷使能狀態
** input parameters: uiChannel: 外設對應的中斷通道號
** output parameters: pvicInfo: 配置信息
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int vicIrqStatusGet (unsigned int uiChannel, PVIC_IRQ_CFG pvicInfo)
{
return swiHandle(0x104, uiChannel, (unsigned int)pvicInfo, 0);
}
/*********************************************************************************************************
** Function name: vicFiqSet
** Descriptions: 設置并使能所選中斷通道號為FIQ中斷
** input parameters: uiChannel: 外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int vicFiqSet (unsigned int uiChannel)
{
return swiHandle(0x105, uiChannel, 0, 0);
}
/*********************************************************************************************************
** Function name: vicFiqClr
** Descriptions: 清除所選中斷通道號的FIQ中斷
** input parameters: uiChannel: 外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int vicFiqClr (unsigned int uiChannel)
{
return swiHandle(0x106, uiChannel, 0, 0);
}
/*********************************************************************************************************
** Function name: DefIrqFuncSet
** Descriptions: 設置非向量中斷服務程序地址
** input parameters: uiFuncAddr :中斷服務程序(普通C語言函數)
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int DefIrqFuncSet(unsigned int uiFuncAddr)
{
return swiHandle(0x107, uiFuncAddr, 0, 0);
}
/*********************************************************************************************************
** Function name: DefIrqEnable
** Descriptions: 使能所選中斷通道號的非向量中斷
** input parameters: uiChannel :外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int DefIrqEnable(unsigned int uiChannel)
{
return swiHandle(0x108, uiChannel, 0, 0);
}
/*********************************************************************************************************
** Function name: DefIrqDisable
** Descriptions: 釋放所選中斷通道號的非向量中斷
** input parameters: uiChannel :外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int DefIrqDisable(unsigned int uiChannel)
{
return swiHandle(0x109, uiChannel, 0, 0);
}
/*********************************************************************************************************
** Function name: SoftIntEnable
** Descriptions: 使能所選中斷通道號的向量軟中斷
** input parameters: uiChannel :外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int SoftIntEnable(unsigned int uiChannel)
{
return swiHandle(0x10A, uiChannel, 0, 0);
}
/*********************************************************************************************************
** Function name: SoftIntDisable
** Descriptions: 禁止所選中斷通道號的向量軟中斷
** input parameters: uiChannel :外設對應的中斷通道號
** output parameters: none
** Returned value: 1: 成功
** 0: 失敗
*********************************************************************************************************/
__inline unsigned int SoftIntDisable(unsigned int uiChannel)
{
return swiHandle(0x10B, uiChannel, 0, 0);
}
/*********************************************************************************************************
允許中斷嵌套宏定義
*********************************************************************************************************/
#define OS_ENABLE_NESTING OS_EXIT_CRITICAL
#define OS_DISABLE_NESTING OS_ENTER_CRITICAL
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __TARGET_H */
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -