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.
Chris
_______________________________________________
rtems-devel mailing list
[email protected]
http://www.rtems.org/mailman/listinfo/rtems-devel