DataAbort with LPC2000, Rowley and ARM mode

nobody wrote on Thursday, December 08, 2005:

Why LPC2000 and Rowley example works only in THUMB? In ARM configuration I got data aborts (just hit run and pause after some time).
I removed Common preprocesor definition THUMB_INTERWORK and put it to THUMB configurations only. No more aborts.

Best regards,
Slawc (slawc at email dot si)

rtel wrote on Thursday, December 08, 2005:

The ARM7 GCC port used by both the LPC2000 (GCC) and Rowley demos supports both ARM and THUMB modes. 

The Rowley demo is configured just to make use of the THUMB code as this is the most common configuration.

The (command line) GCC demo for the LPC2106 provides an example of how to switch between ARM and THUMB modes.  Take a look at the ROM_THUMB.bat and ROM_ARM.bat files in the Demo/ARM7_LPC2106_GCC directory.  These set up environment variables used during compilation to produce either ARM/THUMB interworking, or purely ARM output.  If you search for THUMB_INTERWORK and USE_THUMB_MODE in the source/make files then you will see the differences these environment variables make - which is very minimal.

When THUMB interworking is used tasks are setup to initially run in THUMB mode, otherwise they are setup to start their execution in ARM mode.