RTEMS 4.6 and tools

Ralf Corsepius corsepiu at faw.uni-ulm.de
Mon Jan 19 08:49:49 UTC 2004


On Mon, 2004-01-19 at 08:56, Steven Johnson wrote:
> Hi,
> 
> Im trying to use RTEMS 4.6 currently with a target that will run ARM and Thumb 
> code. This requires thumb-interworking.  Unfortunaltey the libraries and gcc for 
> rtmes as built are not enabled for arm-thumb interworking.
Exactly, they are disabled.

> Is it possible, before release to have the tools rebuilt for arm
No, no changes possible at this point in time. Though it has not been
formally announced, at least I consider everything for 4.6.0 to be
frozen.

>  with 
> --enable-interworking option, which will build all the multilib libraries that 
> will allow arm and thumb code to co-exist.
This will not work. 

You'd have to patch gcc to get this working (gcc/config/arm/rtems.h and
gcc/config/arm/t-rtems are the responsible files).

>   As it stands, the thumb libraries 
> are unusable because memcpy is an arm function in the thumb library, and cant be 
> linked to from thumb code.
As mentioned before, you would have to add thumb support to gcc and
build a corresponding multilib'ed gcc/newlib toolset with this enabled.

Additionally you would have to add thumb support to the arm port in
RTEMS.

> BTW, has anyone tried building rtems on a arm-thumb target before?
Yes.

>   I know the 
> assembly that has to change (in RTEMS) to eliminate the inline ARM code,
Exactly, this is were I had stopped and had decided to take out thumb
support in gcc. If someone adds the required asm to RTEMS, reenabling
thumb support in gcc should not be difficult.

>  but are 
> there any other gotchas I should be aware of.
* There had been a time, when gcc  -mthumb was too broken to compile
itself (IIRC, this was gcc-3.2.3). I haven't tried with gcc-3.3.x yet.
* To activate thumb multilibs in RTEMS, you'll have to remove the
-mthumb filters from config-ml.in in RTEMS's toplevel directory.

Ralf





More information about the users mailing list