RTEMS 4.6 and tools
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:
> 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
> --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
> BTW, has anyone tried building rtems on a arm-thumb target before?
> 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.
More information about the users