?? int.cxx
字號:
#include "def.h"
#include "at4x0f.h"
#include "debug.h"
#include "rs232.h"
#include "usbotg.h"
#ifdef RS232_UPDATER
extern uchar g_serialBuf[];
extern ulong g_iTail;
#endif // RS232_UPDATER
extern USB_INTERRUPT usb_int;
void __irq Irq_Handler()
{
DWORD iStatus = INT_PENDING;
DWORD iUsbFuncInt;
#ifdef RS232_UPDATER
#ifdef DEBUG_UART_PORT
if (iStatus & INT_MASK_SERIAL_0)
{
INT_RISC_MASK &= ~INT_MASK_SERIAL_0;
iStatus = UART_INT_STATUS;
if(iStatus & UART_INT_RX_DONE_MASK)
{
while (!(UART_RXFIFO_STATUS & UART_RXFIFO_EMPTY))
{
g_serialBuf[g_iTail] = UART_RXFIFO_DATA;
g_iTail ++;
g_iTail &= SERIAL_BUF_AND;
}
}
UART_INT_STATUS = iStatus;
INT_RISC_MASK |= INT_MASK_SERIAL_0;
}
#else // DEBUG_UART_PORT
if (iStatus & INT_MASK_SERIAL_7_6_5_4)
{
if(INT_PENDING_EXT & 0x20)
{
INT_RISC_MASK &= ~INT_MASK_SERIAL_7_6_5_4;
iStatus = USP5_INT_STATUS;
if(iStatus & USP_INT_RX_DONE_MASK)
{
while (!(USP5_RXFIFO_STATUS & USP_RXFIFO_EMPTY))
{
g_serialBuf[g_iTail] = USP5_RXFIFO_DATA;
g_iTail ++;
g_iTail &= SERIAL_BUF_AND;
}
}
USP5_INT_STATUS = iStatus;
INT_RISC_MASK |= INT_MASK_SERIAL_7_6_5_4;
}
}
#endif // DEBUG_UART_PORT
#endif // RS232_UPDATER
if (iStatus & INT_MASK_USB)
{
usb_int.intr = 1;
if(USBOTG_TL_INT_STATUS_ADDR & 0x2)
{
iUsbFuncInt = USBOTG_FC_SYS_INT_STATUS_ADDR & USBOTG_FC_SYS_INT_EN_ADDR;
if (iUsbFuncInt & FC_DONE_REG_INT)
{
usb_int.ep_done |= USBOTG_FC_DONE_REG_ADDR;
USBOTG_FC_DONE_REG_ADDR = usb_int.ep_done;
}
if (iUsbFuncInt & FC_RESET_DETECT_INT)
{
if(USBOTG_FC_CMD_STATUS_ADDR & 0x01)
{
usb_int.connect_detect = 1;
}
}
if (iUsbFuncInt & FC_RESUME_FINISH_INT)
{
usb_int.resume = 1;
}
if (iUsbFuncInt & FC_SUSPEND_DETECT_INT)
{
USBOTG_FC_CMD_STATUS_ADDR |= 0x0004;
}
if (iUsbFuncInt & FC_SOF_INT)
{
usb_int.sof_int = 1;
}
if (iUsbFuncInt)
USBOTG_FC_SYS_INT_STATUS_ADDR = iUsbFuncInt;
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -