URL
https://opencores.org/ocsvn/pss/pss/trunk
Subversion Repositories pss
[/] [pss/] [trunk/] [pss/] [SW/] [onboard/] [Trap/] [Trap.c] - Rev 4
Go to most recent revision | Compare with Previous | Blame | View Log
#define IO_GPR (*(volatile unsigned int *)(0x8A000000)) #define REG_CPU_CONTROL (*(volatile unsigned int *)(0x40000000)) #define REG_CPU_PC (*(volatile unsigned int *)(0x40000004)) #define REG_CPU_A31 (*(volatile unsigned int *)(0x40000008)) #define REG_DBG_A31 (*(volatile unsigned int *)(0x4000000C)) #define REG_INTC_CONTROL (*(volatile unsigned int *)(0x40000010)) #define REG_INTC_MASK (*(volatile unsigned int *)(0x40000014)) #define REG_INTC_REQ (*(volatile unsigned int *)(0x40000018)) #define REG_MEM_SIZE_KB (*(volatile unsigned int *)(0x4000001C)) #define REG_DMA_CONTROL (*(volatile unsigned int *)(0x40000020)) #define REG_DMA_SOURCEADDR (*(volatile unsigned int *)(0x40000024)) #define REG_DMA_DESTADDR (*(volatile unsigned int *)(0x40000028)) #define REG_DMA_SIZE (*(volatile unsigned int *)(0x4000002C)) #define REG_SGI (*(volatile unsigned int *)(0x40000030)) #define REG_BUS_ERROR_ADDR (*(volatile unsigned int *)(0x40000038)) #define REG_BUS_ERROR_PC (*(volatile unsigned int *)(0x4000003C)) #define REG_TRAP_CONTROL (*(volatile unsigned int *)(0x40000040)) #define REG_TRAP_ADDR (*(volatile unsigned int *)(0x40000044)) #define REG_INTC_CONTROL (*(volatile unsigned int *)(0x40000010)) #define REG_INTC_MASK (*(volatile unsigned int *)(0x40000014)) #define REG_INTC_REQ (*(volatile unsigned int *)(0x40000018)) void _zpu_interrupt(void) { IO_GPR = 0x123455AA; REG_INTC_REQ = 0xFF; // deasserting requests while (1) {} } int recursive_count(int counter) { int i; for (i = 0; i < 100000; i++) {} counter++; IO_GPR = counter; if (counter == 10000) return counter; else recursive_count(counter); } int main() { int counter; counter = 0; REG_TRAP_ADDR = 0x00001800; REG_TRAP_CONTROL = 0x01; REG_INTC_MASK = 0xFF; REG_INTC_CONTROL = 0x01; // enabling IE IO_GPR = recursive_count(counter); while (1) {} }
Go to most recent revision | Compare with Previous | Blame | View Log