[fpc-devel] More on arm4, armi and thumb

Yury Sidorov jura at cp-lab.com
Thu Nov 1 12:34:45 CET 2007


From: "Felipe Monteiro de Carvalho" 
<felipemonteiro.carvalho at gmail.com>
> It seams that building arm4 software isn't supported for Symbian OS.
> At least for third-party software, and any example build for it
> crashes on startup. So I was investigating other solutions.
>
> I was reading the nokia wiki:
>
> http://wiki.forum.nokia.com/index.php/ARM4,_ARMI_&_THUMB
>
> http://wiki.forum.nokia.com/index.php/Build_Targets
>
> Quoting:
>
> "ARMI is the 32-bit instruction set with extra logic to allow it to
> call THUMB code in addition to other 32-bit code. ARMI is known as 
> ARM
> interchange format."
>
> It seams that ARMI could be a solution. Executables built for ARMI
> actually work normally, but there seams to be a lack of information 
> of
> what exactly is ARMI. The descriptions found are not detailed 
> enougth.
>
> My greatest doubt is: Can I just compile normal arm4 object files 
> with
> fpc and link them together with armi compiled object files to get 
> the
> final executable?
>
> I have a fealing this could work, even if FPC doesn't do that "extra
> logic to call THUMB", because we don't call the OS routines 
> directly,
> but rather thougth a c wrapper.
>
> I will, of course, just test, but it will be a lot of work, and if
> someone knows in advance this should theoretically work, or 
> shouldn't,
> that could speed things up =)

The solution is to create wrapper library for OS calls. The library 
will do arm->thumb interworking. It will switch to thumb mode before 
OS call and switch back to ARM mode after OS call.
Also startup code for FPC program should switch CPU to ARM mode.

Yury. 



More information about the fpc-devel mailing list