Tools for SAM7X: IAR vs GCC vs CrossStudio

I have recently secured an AT91SAM7X-EK. I am eager to get FreeRTOS loaded. I have used and been quite impressed with both IAR and WinAVR + AVR Studio (GCC) for the Atmel AVR. Both seem to be quite capable and useful. I have been doing embedded systems work since 1990. Now that I’m looking at the ARM 7 based AT91SAM7X, I again have to make the choice. I would not be opposed to the cost of the IAR setup, if it gives a good advantage over the CGG tools. However, I hope to eventually open up the hardware platform to customers, letting them write their own code as they see fit. In this case, lower cost will make the project much more attractive. (My tools expense will be amortized over many units, a customer’s code may only run on one or two.) So, now to my questions. 1) For hardware I have the AT91SAM-ICE (as well as the AT91SAM7X-EK). It looks like the IAR environment will talk to the AT91SAM-ICE directly. How does the GCC tool set talk to the AT91SAM-ICE? Does it use some Atmel provided tools? 2) I am not at all familiar with the "Rowley CrossStudio". It appears to be an IDE and JTAG debugger interface, but uses the GCC underneath. Can you offer your opinion of it compared to IAR or the GCC only tool sets? 3) My application will probably mainly use UDP in a streaming mode. (The data is time critical and if it does not arrive, it would be better to just send updated data rather than try to resend what would now be old data.) This will be the main communications method. It also needs to be able to host a very simple web page to set parameters. Will either of the two available stacks (uIP and lwIP) work for this? 3) How much code and RAM space can I expect the FreeRTOS to consume on the AT91SAM7X256? Or, how much free space will I have for my application? I am excited about this project, and look forward to working with FreeRTOS. Thank you in advance for your comments.

Tools for SAM7X: IAR vs GCC vs CrossStudio

>2) I am not at all familiar with the "Rowley >CrossStudio". It appears to be an IDE and JTAG >debugger interface, but uses the GCC underneath. >Can you offer your opinion of it compared to IAR or >the GCC only tool sets? The main problem with using GCC is the debug support.  You can use Insight with a wiggler but I have found it a bit clunky under windows.  It might be better on linux. Rowley tools get around this for you.  Their ide and jtag tools are very good and less expensive than iar.  The same FreeRTOS demo can be compiled using gcc and Rowley (other than the linker script being different?).  This would give your customers an option should the command line gcc become an issue for them. >3) How much code and RAM space can I expect the >FreeRTOS to consume on the AT91SAM7X256? Or, >how much free space will I have for my application? The amount of RAM used depends on the number of tasks you create.

Tools for SAM7X: IAR vs GCC vs CrossStudio

1) Not sure about this as I have never used the AT91SAM-ICE. 2) IAR and CrossStudio are both good tools.  If you go down the GCC route then CrossStudio is a good investment for two reasons – first the debug facilities it offers and second the GCC build is more optimal.  When building lwIP I have found the CrossStudio build to use much less stack than the command line GCC equivalent.  I think this is due to the CrossStudio libraries – which of coarse you could build yourself if time/effort is not of concern to you. 3) uIP has much less processor and RAM overhead than lwIP so may be a good choice.  I have only used it with TCP however not UDP so you might want to experiment.  uIP’s main disadvantage is that it can only have one outstanding packet on the network at any one time, but this should not be a problem for UDP (?). 4) The RAM space is really dependent on the number of tasks/queues/semaphores you created.  As a minimum each task will require about 120*4 bytes for the stack, but more if you have a large call nesting depth, or use a lot of library calls, etc.  For example the lwIP task and WEB server task in the FreeRTOS demo have much larger stacks. Code space use is tiny – I think an optimised IAR build of the kernel itself with most options is in the region of 4K?  You might want to check that though. Regards.

Tools for SAM7X: IAR vs GCC vs CrossStudio

Did you look at WinARM? Some kind of WinAVR for ARM-Controllers. (Cross-) Debugging is a problem with GNU. Have a look at Abatron. Their BDI2000 offers a real GDB-Server over Ethernet for your JTAG/BDM Controller. Quite expensive of course.