📄 isr_config.c
字号:
/******************************************************************************/
//
// Name: BF533 EZ-KIT Interrupt Setup
//
/******************************************************************************
(C) Copyright 2003 - Analog Devices, Inc. All rights reserved.
File Name: ISR_Config.c
Date Modified: 10/25/04 TL Rev 0.2
Software: VisualDSP++3.1
Hardware: ADSP-BF533 EZ-KIT Board
Special Connections: None
Purpose: The file sets up all interrupts required
*********************************************************************************/
#include <cdefBF533.h>
#include <sys\exception.h> //Interrupt Handling Header
#include <stdio.h>
extern unsigned char * pImage656_start;
extern unsigned char * pImage656_0;
extern unsigned char * pImage656_1;
extern unsigned int n;
extern unsigned int N;
extern unsigned char * pImage656_start;
extern void IMAGE656TOYUV(unsigned char * p_s);
void SelectAVN(unsigned char Num);
EX_INTERRUPT_HANDLER(DMA0_PPI_ISR) // <--|declaration in exception.h -->
{ // |declaration with _pragma(interrupt) the ISR Startaddress
//disable the interrupt request
*pDMA0_IRQ_STATUS = 0x1;
*pPPI_CONTROL = 0x0;
if (pImage656_start == pImage656_0)
{
*pDMA0_START_ADDR = pImage656_1;
// pImage656_start = pImage656_1;
}
else
{
*pDMA0_START_ADDR = pImage656_0;
// pImage656_start = pImage656_0;
}
if(n<N)
{
*pDMA0_CONFIG = DMAEN | DI_EN | WNR | WDSIZE_16| DMA2D | RESTART;
*pPPI_CONTROL = PORT_EN | FLD_SEL | PACK_EN | DLEN_8 ;
IMAGE656TOYUV(pImage656_start);
if (pImage656_start == pImage656_0) pImage656_start = pImage656_1;
else pImage656_start = pImage656_0;
*pDMA0_IRQ_STATUS = 0x0;
if(n==1) SelectAVN(4);
else if(!((n-1)%3))
{
if(!((n-1)%6))
SelectAVN(4);
else SelectAVN(1);
}
printf("the %d frame is dumped successfully\n",n++);
}
printf( "\nThe DMA0 PPI Interrupt has been entered!\n" );
}//end DMA0_PPI_ISR
void Init_Interrupts(void)
{
// configure interrupt
*pSIC_IAR0 = *pSIC_IAR0 & 0xffffffff | 0x00000000;
*pSIC_IAR1 = *pSIC_IAR1 & 0xffffffff | 0x00000001; // map DMA0 PPI Interrupt -> IVG8
*pSIC_IAR2 = *pSIC_IAR2 & 0xffffffff | 0x00000000;
register_handler(ik_ivg8, DMA0_PPI_ISR); // assign DMA0 PPI ISR to interrupt vector 8
*pSIC_IMASK=0x00000100; // all interrupts 0=disabled but DMA0 PPI interrupt enabled
}//end Init_Interrupts
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -