Port for AT91SAM7S-EK using CrossWorks GCC?

brucewehr wrote on Friday, March 17, 2006:

I am new to both FreeRTOS and AT91, and would like to use the FreeRTOS demo as a launch pad to learn my way around both.  I have the AT91SAM7S-EK evaluation board and Rowley’s CrossWorks (GCC) IDE.  FreeRTOS provides ports of the demo for both the 7S processor (but using the IAR IDE) and GCC (but using the 7X processor).

I’ve tried using the GCC 7X demo on the 7S-EK board with no luck (verifier errors).  Does anyone have a port of the demo (or porting instructions) for the S-EK eval board using GCC?

As an aside, does anyone know where I could get an AT91SAM7X-EK eval board?


nobody wrote on Friday, March 17, 2006:

I think you should be able to get the SAM7X converted for the S fairly easily.

Do you get this error on the download?

Have you, checked the FreeRTOSConfig.h file to check the heap size is as per the S demo, ensure you have changed the CrossWorks target to the S to get the right linker script.

rtel wrote on Saturday, March 18, 2006:

I have not actually tried it but I think the following procedure will get you pretty close:

1) Copy the demo/lwIP_Demo_Rowley_ARM7 directory to a new directory called something like demo/Rowley_SAM7S.

2) From within CrossStudio open the rtosdemo workspace in the new Rowley_SAM7S directory.

3) In the project explorer right click on the rtosdemo project, select properties from the pop up menu, select the built tab of the pop up windows, and set the target processor to the one you are using.  In the same pop up window select the linker tab and set the memory map file to the one for the processor you are using.

4) Back in the project explorer window, delete the following files from the build:

i) The entire lwIP folder.
ii) USC-CDC.c
iii) USBISR.c
iv) semtest.c
v) pollq.c
vi) integer.c
vii) blockq.c
viii) BasicWEB.c

This leaves you with just the flash tasks for a simple starting point.

5) The file partest.c contains the code that writes to the LED’s on the board.  The code for this is therefore dependent on the  EK you are using.  Open up partest.c and write the function to initialise, set and LED and toggle an LED to use the correct ports for your target board.  If you are using the same EK as per the FreeRTOS SAM7S IAR demo then look at the partest.c file that comes with this demo for most of the code you need.  Test that the partest.c code works in isolation (just create a main() function that calls these functions so you know they work before you try and use them with the rtos).

6) Take the FreeRTOSConfig.h file from the IAR SAM7S demo and copy all the #defines into the FreeRTOSConfig.h file in your new Rowley_SAM7S directory.  Don’t just replace the file as it might contain other settings you require.

7) Open port.c and replace the included header file AT91SAM7X256.h with the correct header for your processor.

Try compiling and see how you go.  The Rowley tools have an excellent debugger so you should be able to isolate any problems fairly easily.