[RTEMS Project] #2438: ARM cache problem after libdl load

RTEMS trac trac at rtems.org
Thu Oct 29 19:44:45 UTC 2015

#2438: ARM cache problem after libdl load
 Reporter:  pggauvin  |      Owner:  chrisj
     Type:  defect    |     Status:  new
 Priority:  normal    |  Milestone:  4.11.1
Component:  libdl     |    Version:  4.11
 Severity:  normal    |   Keywords:  libdl, ARM, ZedBoard, Zynq
 * '''RTEMS Version:''' Branch "4.11", commit
 * '''System type:''' ARM Cortex-A9, Xilinx Zynq 7020, xilinx_zynq_zedboard
 * '''Compiler toolchain version:''' GCC 4.9.3, Newlib,
 Binutils 2.24
 * '''RTEMS configure options:''' {{{ --target=arm-rtems4.11 --enable-
 rtemsbsp="xilinx_zynq_a9_qemu xilinx_zynq_zedboard"  --enable-posix
 --prefix=$HOME/development/rtems/4.11 --enable-tests }}}
 * '''Code used to reproduce:'''

 '''Expected Behavior'''

 Successful execution of the loaded function from dl-o1.o. Note that the
 dl01 example runs successfully in QEMU with the xilinx_zynq_a9_qemu BSP.

 '''Actual Behavior'''

 System crash on execution of loaded code. After the first branch is taken
 to loaded code (dl-load.c:54), GDB indicates that the processor is
 executing instructions at the correct address, but they do not behave as
 expected, eventually leading to the system rebooting.

 After discussion on the users mailing list, it was found that flushing the
 data cache and invalidating the instruction cache before calling the
 loaded function resulted in its successful execution. This was tested by
 adding the following at dl-load.c:54:


Ticket URL: <http://devel.rtems.org/ticket/2438>
RTEMS Project <http://www.rtems.org/>
RTEMS Project

More information about the bugs mailing list