rtl problem when processing arm thumb mode switch
van.freenix at gmail.com
Fri May 10 01:48:18 UTC 2013
I think if the rap file is compiled in thumb, this size of the rap file
will be reduced.
So i want to introduce it. If this is not needed, it would be easy to just
handle arm to arm and thumb to thumb call.
2013/5/10 Chris Johns <chrisj at rtems.org>
> Peng Fan wrote:
>> I am trying to make the mode switch work on rtl for arm.
> What does "mode switch" mean ?
> The following code is disassembled using arm linux gcc.
>> elf object file: compiled in thumb mode.
>> 38:f7ff bffe b.w0 <rtems>
>> 38: R_ARM_THM_JUMP24rtems
>> It invokes a function "rtems" which are in arm mode.
>> elf executable file:
>> 8414:f000 b85c b.w84d0 <__rtems_from_thumb>
>> 000084d0 <__rtems_from_thumb>: //stub code
>> 84d0:4778 bxpc
>> 84d2:46c0 nop; (mov r8, r8)
>> 84d4:eaffffc0 b83dc <rtems>
>> the arm linux gcc uses a stub code to handle the thumb to arm invoking.
> Why would we want this ? I would assume RTL loaded code must be the same
> as the base kernel code.
> I also want to introduce this for arm rtl.But I do not have a good idea
>> about how to manage the stub code. Each rap file may contain many such
>> reloc entry, each such reloc entry needs a stub code.
>> How to manage the stub codes?
> RTEMS does not have the requirement to support multiple code "modes" at
> runtime and Linux does. For embedded systems it is sensible to enforce one
> code type.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the devel