[rtems commit] bsp/csb336: mc9328mxl correct AITC access in bsp_interrupt_dispatch.

Sebastian Huber sebh at rtems.org
Mon Aug 19 08:51:40 UTC 2013


Module:    rtems
Branch:    4.10
Commit:    4eeddefb220bd89ef862ac75e0239795637cca77
Changeset: http://git.rtems.org/rtems/commit/?id=4eeddefb220bd89ef862ac75e0239795637cca77

Author:    Pavel Pisa <ppisa at pikron.com>
Date:      Thu Jul 25 10:34:50 2013 +0200

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 <ppisa at pikron.com>

---

 c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c
index d0d4927..de7ccd8 100644
--- a/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c
+++ b/c/src/lib/libcpu/arm/mc9328mxl/irq/irq.c
@@ -21,7 +21,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);
 }




More information about the vc mailing list