[fpc-pascal] access violations on new ARM hardware
Mark Morgan Lloyd
markMLl.fpc-pascal at telemetry.co.uk
Mon Jan 26 21:15:53 CET 2015
Björn Schreiber wrote:
> Hi *.*,
> we use an ARM based SOM for a device developed by us, the software is
> developed using Lazarus. Now we are testing a new version of the SOM and
> can't get our software to work.
> Old SOM:
> Samsung S5PV210
> one Cortex-A8 (?) core
> Windows CE 6.0 R3 kernel
> New SOM:
> Freescale Vybrid dual core CPU
> one Cortex-A5 core
> one Cortex-M4 core
> Windows CE 6.0 R3 / Windows Compact 7
> In order to gather some more information (even wince-stub isn't
> running on the device so we can't use GDB) we used a fresh install of
> FPC 2.6.4.
> A empty FPC program worked without any problems, even using the
> Windows function MessageBox() worked flawless. But if we included the
> unit SysUtils we got access violations right after the start - the same
> behaviour as our Lazarus application.
> By modifying the original source of SysUtils by some MessageBox()
> calls we tracked the first access violation down to the procedure
> GetFormatSettings, to be more precise to the first call of GetLocaleStr.
> If we removed the call to GetFormatSettings, the empty FPC program
> worked flawless.
> FPC was used with the following command line:
> fpc -Twince -Parm -FiC:\FPC\2.6.4\units\arm-wince\rtl\inc -O- test.pas
> Any ideas what goes wrong? Did we miss a compiler switch, perhaps?
Since nobody else has suggested anything: is the new hardware
susceptible to alignment errors in a way that the old hardware wasn't?
Have you tried a later compiler? My recollection is that there were
issues on SPARC that might have included alignment problems, and on that
architecture I had to abandon 2.6.4 promptly and move onto trunk. I'm
currently testing Lazarus trunk at about 47318 is OK with FPC 2.7.1
29398 on various CPUs running Linux, can't speak for CE.
Mark Morgan Lloyd
markMLl .AT. telemetry.co .DOT. uk
[Opinions above are the author's, not those of his employers or colleagues]
More information about the fpc-pascal