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

📄 fipuser_ecos.c

📁 这是一个SIGMA方案的PMP播放器的UCLINUX程序,可播放DVD,VCD,CD MP3...有很好的参考价值.
💻 C
字号:
/* * Here are all PRIVATE definitios and functions definied, which are the same for all players. * To simplify it, we also declare common functions here!!! * * Copyright(c) 2002 Sigma Designs, Inc. * Author: Markus Brenner * September 2002 */// #include "fipuser.h"#include "fip_private.h"#include "fip.h"#include "irstate.h"#include <cyg/hal/hal_io.h>#include <cyg/kernel/kapi.h>cyg_flag_t fip_flag;static cyg_handle_t fip_timer_interrupt, fip_pio_interrupt;static cyg_interrupt fip_timer_interrupt_struct, fip_pio_interrupt_struct;static cyg_uint32 fip_timer_ISR(cyg_vector_t vector, cyg_addrword_t data){	cyg_interrupt_acknowledge(vector);		/* clear the timer1 interrupt */	*CYG_DEVICE_TIMER_STATUS = 2;	if(vector == CYGNUM_HAL_INTERRUPT_WDTIMER) {			if(fip_timer())					return CYG_ISR_HANDLED | CYG_ISR_CALL_DSR;			return CYG_ISR_HANDLED;	}		diag_printf("wrong fip timer interrupt vector: %d\n", vector);		return CYG_ISR_HANDLED;}static void fip_timer_DSR(cyg_vector_t vector, cyg_uint32 count, cyg_addrword_t data){		if(count>1) {		diag_printf("missed %d fip timer interrupt(s)\n", count-1);	}	cyg_flag_setbits(&fip_flag, 0x1);		return;}static cyg_uint32 fip_pio_ISR(cyg_vector_t vector, cyg_addrword_t data){	cyg_interrupt_acknowledge(vector);	/* clear the pio interrupt */	HAL_WRITE_UINT32(JASPER_PIO0_BASE + PIO_INT, 0x00010001<<IR_PIO );	if(vector != CYGNUM_HAL_INTERRUPT_PIO0) {			diag_printf("wrong fip pio interrupt vector: %d\n", vector);			return CYG_ISR_HANDLED;	}		if(ir_pio())			return CYG_ISR_HANDLED | CYG_ISR_CALL_DSR;	else			return CYG_ISR_HANDLED;}static void fip_pio_DSR(cyg_vector_t vector, cyg_uint32 count, cyg_addrword_t data){		if(count>1) {		diag_printf("missed %d fip pio interrupt(s)\n", count-1);	}		cyg_flag_setbits(&fip_flag, 0x1);	return;}int fip_loadmodule(void){		cyg_flag_init(&fip_flag);	cyg_interrupt_create(CYGNUM_HAL_INTERRUPT_WDTIMER, 0, 0, &fip_timer_ISR, &fip_timer_DSR,					&fip_timer_interrupt, &fip_timer_interrupt_struct);	cyg_interrupt_attach(fip_timer_interrupt);	cyg_interrupt_create(CYGNUM_HAL_INTERRUPT_PIO0, 0, 0, &fip_pio_ISR, &fip_pio_DSR,					&fip_pio_interrupt, &fip_pio_interrupt_struct);	cyg_interrupt_attach(fip_pio_interrupt);	ir_init();	fip_init();	cyg_interrupt_unmask(CYGNUM_HAL_INTERRUPT_WDTIMER);	cyg_interrupt_unmask(CYGNUM_HAL_INTERRUPT_PIO0);			return 0;}int fip_open(void){    return 0;}	void fip_close(void){    return;}

⌨️ 快捷键说明

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