Yahoo Groups archive

Lpc2000

Index last updated: 2026-04-28 23:31 UTC

Message

Re: [lpc2000] Re: FREERTOS problem on gcc and LPC2138

2005-10-22 by FreeRTOS Info

> I am using Crossworks for ARM 1.5. I think now, there are some project
> settings, which change code. Strange is that project compiles only for
> Thumb mode. Although it compiles also for ARM mode, but code doesn't
> want to download to the chip with Wiggler from Olimex.

If you are using the uIP Rowley demo, then I have only provided a THUMB
debug sample project (the docs say only to use this configuration).

The FreeRTOS GCC port itself supports both THUMB and ARM builds.  If you
look in the FreeRTOS/Demo/ARM7_LPC2106_GCC directory you will see some batch
files as:

ram_arm.bat
ram_thumb.bat
rom_arm.bat
rom_thumb.bat

These build the LPC2106 demo as per the name of the batch file.  If you take
a look in the batch file you will see that there are some environment
variables that are configured to setup the required build type, prior to
make being called.

e.g. from rom_arm.bat:

--------
set USE_THUMB_MODE=NO
set DEBUG=
set OPTIM=-O3
set RUN_MODE=RUN_FROM_ROM
set LDSCRIPT=lpc2106-rom.ld
make
-------

Using the Rowley IDE you can do something similar by:
+ Creating a new project configuration ARM_Flash_Debug, setup as per the
THUMB_Flash_Debug config, then...
+ Remove the preprocessor definition THUMB_INTERWORK from the
project->properties->preprocessor settings.
+ Set the instruction set to ARM mode for ALL files using the
project->properties->compiler->instruction set setting.  This can be done
globally for the configuration.

I think that should be it - although I have not actually tried an ARM build
from Rowley myself.  The kernel port code is the same for the command line
GCC and the Rowley IDE.  The only differences being the native linker script
format used by Rowley CrossWorks.

Regards,
Richard.

http://www.FreeRTOS.org

Attachments

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.