Initial transfer from sourceforge
This commit is contained in:
commit
f2259c5424
415 changed files with 73200 additions and 0 deletions
188
Asixtool/asix-testcode/interrupt_ax110xx.c
Normal file
188
Asixtool/asix-testcode/interrupt_ax110xx.c
Normal file
|
@ -0,0 +1,188 @@
|
|||
#include "ax110xx.h"
|
||||
#include "cpu_ax110xx.h"
|
||||
#include "interrupt_ax110xx.h"
|
||||
#include "types_ax110xx.h"
|
||||
|
||||
#if LBI_IRQ_ENABLE
|
||||
#include "lbi.h"
|
||||
#endif
|
||||
|
||||
#if ETH_IRQ_ENABLE
|
||||
#include "ethernet/mac.h"
|
||||
#include "ethernet/stoe.h"
|
||||
#endif
|
||||
|
||||
#if I2C_IRQ_ENABLE
|
||||
#include "i2c.h"
|
||||
#endif
|
||||
|
||||
#if SPI_IRQ_ENABLE
|
||||
#include "spi.h"
|
||||
#endif
|
||||
|
||||
#if ONEWIRE_IRQ_ENABLE
|
||||
#include "onewire.h"
|
||||
#endif
|
||||
|
||||
#if CAN_IRQ_ENABLE
|
||||
#include "can.h"
|
||||
#endif
|
||||
|
||||
#if HSUART_IRQ_ENABLE
|
||||
#include "hsuart.h"
|
||||
#endif
|
||||
|
||||
void ax11000_PeripherialISR(void) __interrupt 9;
|
||||
|
||||
#if POWER_MANAGEMENT_IRQ_ENABLE
|
||||
void ax11000_PmmISR(void);
|
||||
#endif
|
||||
|
||||
#if WATCHDOG_IRQ_ENB
|
||||
void ax11000_WatchDogISR(void);
|
||||
#endif
|
||||
|
||||
void ax11000_PeripherialISR(void) __interrupt 9
|
||||
{
|
||||
unsigned int intrStt1 = 0;
|
||||
unsigned int intrStt2 = 0;
|
||||
|
||||
/* Interrupt type check */
|
||||
while (1)
|
||||
{
|
||||
EA = 0;
|
||||
intrStt1 = PISSR1;
|
||||
intrStt2 = PISSR2;
|
||||
EA = 1;
|
||||
|
||||
if ((intrStt1 == 0) && (intrStt2 == 0))
|
||||
break;
|
||||
|
||||
#if LBI_IRQ_ENABLE
|
||||
if (intrStt1 & LB_INT_STU)
|
||||
{
|
||||
LocalBusFunc();
|
||||
}
|
||||
|
||||
if (intrStt1 & LB_EXT_INT_STU)
|
||||
{
|
||||
LocalBusAccessCompleteFunc();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ETH_IRQ_ENABLE
|
||||
#if (MAC_GET_INTSTATUS_MODE == MAC_INTERRUPT_MODE)
|
||||
if (intrStt1 & ETH_INT_STU)
|
||||
{
|
||||
MAC_SetInterruptFlag();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ETH_IRQ_ENABLE
|
||||
#if (STOE_GET_INTSTATUS_MODE == STOE_INTERRUPT_MODE)
|
||||
if (intrStt1 & TOE_INT_STU)
|
||||
{
|
||||
STOE_SetInterruptFlag();
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if CAN_IRQ_ENABLE
|
||||
if (intrStt1 & CAN_INT_STU)
|
||||
{
|
||||
CAN_Func();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if I2C_IRQ_ENABLE
|
||||
if (intrStt1 & I2C_INT_STU)
|
||||
{
|
||||
I2C_Func();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if SPI_IRQ_ENABLE
|
||||
if (intrStt1 & SPI_INT_STU)
|
||||
{
|
||||
SPI_Func();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if ONEWIRE_IRQ_ENABLE
|
||||
if (intrStt1 & OW_INT_STU)
|
||||
{
|
||||
ONEWIRE_Func();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HSUART_IRQ_ENABLE
|
||||
if (intrStt2 & UART2_INT_STU)
|
||||
{
|
||||
HSUR_Func();
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
#if POWER_MANAGEMENT_IRQ_ENABLE
|
||||
void ax11000_PmmISR(void) __interrupt 11
|
||||
{
|
||||
unsigned int wakeStatus = 0;
|
||||
unsigned int mode = 0;
|
||||
unsigned int sysClk = 0;
|
||||
unsigned int canReg = 0;
|
||||
unsigned int intEnb = 0;
|
||||
|
||||
EA = 0;
|
||||
EIF &= ~INT6F; // Clear the flag of interrupt 6.
|
||||
EA = 1;
|
||||
|
||||
|
||||
|
||||
wakeStatus = PCON;
|
||||
if (!(wakeStatus & SWB_))
|
||||
{
|
||||
PCON &= ~ (PMM_ | STOP_);
|
||||
}
|
||||
|
||||
#if ETH_IRQ_ENABLE
|
||||
/* Ethernet wake up function */
|
||||
/* disable wake up interrupt */
|
||||
MDR = 0;
|
||||
MCIR = MAC_STOP_PMM_INT_ENABLE_REG;
|
||||
/* clear MAC status register */
|
||||
CLI_MacRd((ULONG)MAC_STOP_PMM_INT_STATUS_REG, &WakeStatus, 1);
|
||||
STOE_Standby = 0;
|
||||
#endif
|
||||
|
||||
#if CAN_IRQ_ENABLE
|
||||
/* CAN wake up function */
|
||||
CAN_WakeUpEvent(0); // 0 for exit power management mode
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
#if WATCHDOG_IRQ_ENB
|
||||
ax11000_WatchDogISR(void) __interrupt 12
|
||||
{
|
||||
if (EWDI)
|
||||
{
|
||||
if (EWT)
|
||||
{
|
||||
TA = 0xAA;
|
||||
TA = 0x55;
|
||||
WDIF = 0; // clear WatchDog Interrupt Flag.
|
||||
WTRF = 0; // clear the Watchdog Timer Reset Flag.
|
||||
RWT = 1; // reset watchdog timer.
|
||||
}
|
||||
else
|
||||
{
|
||||
TA = 0xAA;
|
||||
TA = 0x55;
|
||||
WDIF = 0; //clear WatchDog Interrupt Flag.
|
||||
RWT = 1; // reset watchdog timer.
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue