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

📄 vector.c

📁 UCOSII的移植,及多任务的管理,处理器为EPSON公司的
💻 C
字号:
/********************************************************************************************************
 *													*
 *	Copyright (C) SEIKO EPSON CORP. 2002								*
 *													*
 *	File name: vector.c										*
 *	  This is vector table program with C.								*
 *													*
 *	Revision history										*
 *		2002.04.28	Andrew Yin	Start.							*
 *													*
 *******************************************************************************************************/
#include "stdio.h"

/* Prototype */
extern void vIntBoot( void );
void vIntAddressError( void );
void vIntZeroDiv( void );
void vIntDebugExp( void );
void vIntNMI( void );
void dummy( void );

//TouchPanel used interrupt function
//extern void vIntTouchPanelScanHandler( void );
//extern void vIntTouchPanelAD( void );			// This version not use this interrupt
//extern void vIntTouchPanel( void);
extern void vIntKey( void );
//extern void vIntUart0TransmitData( void );
//extern void vIntUart0ReceiveData( void );
//extern void vIntUart1TransmitData( void);
//extern void vIntUart1ReceiveData( void );
//extern void vIntRTC( void );
extern void OSTickISR();
extern void OSCtxSw();
// vector table
const unsigned long vector[] = {
	(unsigned long)vIntBoot,			// 0	0	Reset
	0,						// 4	1	reserved
	0,						// 8	2	reserved
	0,						// 12	3	reserved
	(unsigned long)vIntZeroDiv,			// 16	4	Zero division
	0,						// 20	5	reserved
	(unsigned long)vIntAddressError,		// 24	6	address error exception
	(unsigned long)vIntDebugExp,			// 28	7	Debugging exception
	(unsigned long)vIntNMI,				// 32	8	NMI
	0,						// 36	9	reserved
	0,						// 40	10	reserved
	0,						// 44	11	reserved
	(unsigned long)OSCtxSw,				// 48	12	software exception 0
	(unsigned long)dummy,				// 52	13	software exception 1
	(unsigned long)dummy,				// 56	14	software exception 2
	(unsigned long)dummy,				// 60	15	software exception 3
	(unsigned long)dummy,				// 64	16	prot input interrupt 0
	(unsigned long)dummy,				// 68	17	prot input interrupt 1
	(unsigned long)dummy,				// 72	18	prot input interrupt 2
	(unsigned long)dummy,				// 76	19	prot input interrupt 3
	(unsigned long)vIntKey,				// 80	20	Key input interrupt 0
	(unsigned long)dummy,			        // 84	21	Key input interrupt 1
	(unsigned long)dummy,				// 88	22	High-speed DMA Ch.0
	(unsigned long)dummy,				// 92	23	High-speed DMA Ch.1
	(unsigned long)dummy,				// 96	24	High-speed DMA Ch.2
	(unsigned long)dummy,				// 100	25	High-speed DMA Ch.3
	(unsigned long)dummy,				// 104	26	IDMA
	(unsigned long)dummy,				// 108	27	reserved
	(unsigned long)dummy,				// 112	28	reserved
	(unsigned long)dummy,				// 116	29	reserved
	(unsigned long)dummy,				// 120	30	16-bit programmable timer 0 - comparison B
	(unsigned long)dummy,				// 124	31	16-bit programmable timer 0 - comparison A
	(unsigned long)dummy,				// 128	32	reserved
	(unsigned long)dummy,				// 132	33	reserved
	(unsigned long)dummy,				// 136	34	16-bit programmable timer 1 - comparison B
	(unsigned long)dummy,				// 140	35	16-bit programmable timer 1 - comparison A
	(unsigned long)dummy,				// 144	36	reserved
	(unsigned long)dummy,				// 148	37	reserved
	(unsigned long)dummy,				// 152	38	16-bit programmable timer 2 - comparison B
	(unsigned long)dummy,				// 156	39	16-bit programmable timer 2 - comparison A
	(unsigned long)dummy,				// 160	40	reserved
	(unsigned long)dummy,				// 164	41	reserved
	(unsigned long)dummy,	            // 168	42	16-bit programmable timer 3 - comparison B
	(unsigned long)dummy,				// 172	43	16-bit programmable timer 3 - comparison A
	(unsigned long)dummy,				// 176	44	reserved
	(unsigned long)dummy,				// 180	45	reserved
	(unsigned long)dummy,				// 184	46	16-bit programmable timer 4 - comparison B
	(unsigned long)dummy,				// 188	47	16-bit programmable timer 4 - comparison A
	(unsigned long)dummy,				// 192	48	reserved
	(unsigned long)dummy,				// 196	49	reserved
	(unsigned long)dummy,				// 200	50	16-bit programmable timer 5 - comparison B
	(unsigned long)dummy,				// 204	51	16-bit programmable timer 5 - comparison A
	(unsigned long)dummy,				// 208	52	8-bit programmable timer - timer 0 underflow
	(unsigned long)dummy,				// 212	53	8-bit programmable timer - timer 1 underflow
	(unsigned long)OSTickISR,			// 216	54	8-bit programmable timer - timer 2 underflow
	(unsigned long)dummy,				// 220	55	8-bit programmable timer - timer 3 underflow
	(unsigned long)dummy,				// 224	56	S/I ch.0 - receive error
	(unsigned long)dummy,		// 228	57	S/I ch.0 - receive buffer full
	(unsigned long)dummy,		// 232	58	S/I ch.0 - transmit buffer empty
	(unsigned long)dummy,				// 236	59	reserved
	(unsigned long)dummy,				// 240	60	S/I ch.1 - receive error
	(unsigned long)dummy,		// 244	61	S/I ch.1 - receive buffer full
	(unsigned long)dummy,		// 248	62	S/I ch.1 - transmit buffer empty
	(unsigned long)dummy,				// 252	63	reserved
	(unsigned long)dummy,		// 256	64	A/D converter
	(unsigned long)dummy,				// 260	65	clock timer
	(unsigned long)dummy,				// 264	66	reserved
	(unsigned long)dummy,				// 268	67	reserved
	(unsigned long)dummy,				// 272	68	prot input interrupt 4
	(unsigned long)dummy,				// 276	69	prot input interrupt 5
	(unsigned long)dummy,				// 280	70	prot input interrupt 6
	(unsigned long)dummy				// 284	71	prot input interrupt 7
};

/*************************************************************************************************
 * IntAddressError
 *   Type :	void
 *   Ret val :	none
 *   Argument :	void
 *   Function :	Address error interrupt program.
 *************************************************************************************************/
void vIntAddressError( void )
{
	asm("reti");
}

/*************************************************************************************************
 * IntZeroDiv
 *   Type :	void
 *   Ret val :	none
 *   Argument :	void
 *   Function :	Zero division interrupt program.
 *************************************************************************************************/
void vIntZeroDiv( void )
{
	asm("reti");
}

/*************************************************************************************************
 * vIntNMI
 *   Type :	void
 *   Ret val :	none
 *   Argument :	void
 *   Function :	NMI interrupt program.
 *************************************************************************************************/
void vIntNMI( void )
{
	asm("nop");
	asm(".global ESC");
	asm("ESC:");
	asm("reti");
}

/*************************************************************************************************
 * vIntDebugExp
 *   Type :	void
 *   Ret val :	none
 *   Argument :	void
 *   Function :	Debugging exception interrupt program.
 *************************************************************************************************/
void vIntDebugExp( void )
{
INT_LOOP:
	goto	INT_LOOP;
}

/*************************************************************************************************
 * dummy
 *   Type :	void
 *   Ret val :	none
 *   Argument :	void
 *   Function :	dummy program.
 *************************************************************************************************/
void dummy(  )
{
INT_LOOP:
	goto	INT_LOOP;
	//asm("	reti");
}

⌨️ 快捷键说明

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