rt-thread-official/libcpu/arm/AT91SAM7X/trap.c

50 lines
943 B
C
Raw Normal View History

/*
2021-03-27 17:51:56 +08:00
* Copyright (c) 2006-2021, RT-Thread Development Team
*
* SPDX-License-Identifier: Apache-2.0
*
* Change Logs:
* Date Author Notes
* 2006-08-25 Bernard first version
*/
#include <rtthread.h>
#include <rthw.h>
#include "AT91SAM7X256.h"
/**
* @addtogroup AT91SAM7
*/
/*@{*/
void rt_hw_trap_irq(void)
{
2021-03-27 17:51:56 +08:00
int irqno;
extern struct rt_irq_desc irq_desc[];
2021-03-27 17:51:56 +08:00
/* get interrupt number */
irqno = AT91C_BASE_AIC->AIC_ISR;
2013-03-30 08:15:27 +08:00
2021-03-27 17:51:56 +08:00
/* invoke isr with parameters */
irq_desc[irqno].handler(irqno, irq_desc[irqno].param);
2021-03-27 17:51:56 +08:00
/* end of interrupt */
AT91C_BASE_AIC->AIC_EOICR = 0;
}
void rt_hw_trap_fiq(void)
{
rt_kprintf("fast interrupt request\n");
}
2013-01-08 21:05:02 +08:00
extern struct rt_thread* rt_current_thread;
void rt_hw_trap_abort(void)
2013-01-08 21:05:02 +08:00
{
rt_kprintf("Abort occured!!! Thread [%s] suspended.\n",rt_current_thread->parent.name);
2021-03-27 17:51:56 +08:00
rt_thread_suspend(rt_current_thread);
rt_schedule();
}
/*@}*/