Unable to run run-time loaded code on ZedBoard

Chris Johns chrisj at rtems.org
Wed Oct 21 02:03:26 UTC 2015


On 20/10/2015 7:44 pm, Pavel Pisa wrote:
> Hello all,
> 
> one possible problem source.
> 

A very good observation.

> The ARM MMU is setup according to sections from loaded
> image for most ARM BSPs. The area used by heap can be marked
> as nonexecutable or with some other cache/mapping
> problem.

Yes I think it is. I wonder if my testing on the Zynq qemu worked
because the MMU access are not correctly checked by qemu.

> In general, I would prefer to setup all physical memory
> (irrespective to the sections) to be RW, Executable
> and cached (if caching is not in conflict with
> unfinished drivers without correct DMA synchronization).
> Then mark only these areas which are fully covered by
> code and rodata sections as RO and cached.

Yes as a default this make sense. Users with stricter requirements can
tighten down the system.

The libdl loader has the ability to add a custom allocation to provide
fine grain control of the memory allocation process and the ability to
tighten down the various parts of the data loaded into RAM. This is too
difficult to support in a generic manner.

Chris


More information about the users mailing list