⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 event.h

📁 基于ADI 公司的blackfin芯片的通用中断框架程序
💻 H
字号:
#ifndef	INTERRUPT_EVENT_HANDLER

#define INTERRUPT_EVENT_HANDLER

#include "..\common\common.h"

//! type of interrupt handler
typedef void (*HINTR)(void);



//! core interrupt vector 14
#define IVG14	*(volatile unsigned long*)0xffe02038

//! core interrupt vector 15
#define IVG15	*(volatile unsigned long*)0xffe0203c

/// In the safe region of a interrupt handler,
/// another higher priority interrupt may be triggered.
#define BEGIN_SAFE_REGION		BEGIN_REGION	asm("[--sp] = reti;");

#define END_SAFE_REGION			asm("reti = [sp++];");	END_REGION


//! get ivg number
#define IVG_ID(val)		(1UL << (val))


//! max number of storage of imask temporary variables
#define MAX_TEMP_IMASK	64


//! max number of elements in the event queue
#define MAX_QUEUE_ELEM	5


//! Processor frequency
#define PROCESSOR_FREQ	(400UL << 20)

//! core timer tick
#define CORE_TIMER_TICK	((PROCESSOR_FREQ >> 10) * 5)		// 5 ms per tick 



//! register user-defined system interrupt vector
EXTERN void reg_sys_intrv(HINTR handler, unsigned handler_type);

//! unregister user-defined system interrupt vector
EXTERN void unreg_sys_intrv(unsigned handler_type);

//! initialize core interrupt vector
EXTERN void init_interrupt_vector(void);

//! set core interrupt mask
EXTERN void set_imask(unsigned event_id);

//! clear core interrupt mask
EXTERN void clear_imask(unsigned event_id);

//! enable core interrupt temporarily
EXTERN void enable_intr(unsigned event_id);

//! disable core interrupt temporarily
EXTERN void disable_intr(unsigned event_id);

//! restore the current imask to the original one
EXTERN void restore_imask(void);



#endif


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -