tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Thumb mode on ARM



On Wed, 29 Oct 2008 08:55:27 +0000, Richard Earnshaw wrote:
>On Wed, 2008-10-29 at 09:03 +0100, Ignatios Souvatzis wrote:
>> On Wed, Oct 29, 2008 at 09:15:19AM +0200, Mikko Rapeli wrote:
>> > Hello,
>> > 
>> > I wrote down the instructions to get thumb mode userspace working with
>> > NetBSD current:
>> > 
>> > http://wiki.netbsd.se/How_to_use_thumb_mode_on_ARM
>> > 
>> > It basically boils down to upgrading binutils and then building machine
>> > independent parts to thumb and machine dependent parts to ARM with a
>> > script.
>> > 
>> > Comments and additions are welcome.
>> 
>> Can you plese add a list of NetBSD ports for which this is useful? Some
>> CPUs don't have thumb mode.
>
>Thumb support is a practical proposition for any cpu implementing
>architecture v5 or later, for CPUs implementing v7, then Thumb2 means it
>may well be the option of choice for most applications.
>
>R.
>
>PS. In theory any v4T or later chip can support Thumb mode, but shared
>library interworking on that architecture is tricky and the gains are
>less obvious given the overhead of ensuring ARM/Thumb interworking in
>all procedure calls.

Yes any from ARM v4T till ARMv7 (excluded) supports Thumb instruction set 
(except if differently specified by the processor maker).

On ARMv5TE extra instructions were added for changing state between ARM and 
Thumb.

Examples of use of thumb with NetBSD could be whatever embedded application 
where the "dimension" of the application code is important (as on ARM processor 
with small amount of cache, of cheap smart phones etc...), or where less clock 
cycles into fetching instructions from memory makes the difference (thumb is 
16b, so, used with 8-bit memory, you need only 2 cycles to fetch a thumb opcode 
instead of the 4 cycles needed for a ARM 32-bit opcode and so on).

-Paolo 



Home | Main Index | Thread Index | Old Index