From 02632e83e02dacfbd6a50a1a3d7e1158ae069e5d Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Thu, 25 Jul 2013 10:34:50 +0200 Subject: bsp/csb336: mc9328mxl correct AITC access in bsp_interrupt_dispatch. The original version is missing void and result is that (*x >> 16) is optimized to ldh rX,[rY]. But it is not allowed/supported to access bus/address range used by AITC by other than 32 bit wide accesses and 16-bit access results in the data abort exception. The corrected version works on real hardware and is even more readable. Signed-off-by: Pavel Pisa --- c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'c/src/lib/libcpu/arm') diff --git a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c index 447dedfc8c..7c58a893d6 100644 --- a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c +++ b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c @@ -20,7 +20,8 @@ void bsp_interrupt_dispatch(void) { - rtems_vector_number vector = *((uint32_t *) 0x00223040) >> 16; + + rtems_vector_number vector = MC9328MXL_AITC_NIVECSR >> 16; bsp_interrupt_handler_dispatch(vector); } -- cgit v1.2.3