Author Topic: Rowley GCC Crossworks project available  (Read 22738 times)

Offline mark

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3238
    • View Profile
    • uTasker
Rowley GCC Crossworks project available
« on: September 16, 2007, 01:42:05 AM »
Hi All

I know that several users have been using Rowley GCC Crossworks for their projects and I helped out a bit earlier in the year to get the V1.3 for the SAM7X running in that environment.

But the time has come to integrate the Rowley project into the uTasker project and so, rather than wait for the next SAM7X SP release, it has been added as an intermediate release so that interested and loyal Rowley fans can get it into productive use.

I have worked with Rowley CrossWorks a little, and also used their CrossConnect JTAG debugger. I have also had contact with Paul at Rowley Associates so can assure that they have a good solution for professional developments based on the GNU compiler. It is all well thought out and of high quality and the debugger is very easy to use. The big advantage of the CrossWorks package for ARM is that it is so easy to install and use. Install the IDE and all tools as any other Windows program and plug in the JTAG debugger (various ones are supported, including the popular J-Link). Open the (new) uTasker project in the IDE, compile and click on the debug button. When using the FLASH target the SAM7X FLASH will automatically be erased and the new code loaded and then you are running and - it all works very reliably. If there are any question just send the guys in Gloucestershire, England a mail and you will very quickly get the answer to your problem.

Visit the Rowely Associates web site at:
    http://www.rowley.co.uk/
where you can not only get a copy of the CrossWorks software (evaluation possible) but you can even read about what Paul has been up to in his own blog!

Note that as well as the full commerical license, they offer reduced priced educational and now personal licenses. I see that there is presently, for a limited time, an offer where you get a CrossConnect Lite JTAG adapter free when purchasing ARM software.

One final point worth noting is that the run-time library delivered with CrossWorks is a version optimised by Rowely Associates and not the normal GCC library version, which is otherwise rumoured to be the weak link in the GCC chain (although I can't comment in any more detail on this).

The new SP 1 (Rowely) can be found on the Service Packs page of the web site:
    http://www.utasker.com/software/softwareV1.3.html
Simple use your standard V1.3 SAM/X project password!

Good luck

Regards

Mark

Offline gsepic

  • Newbie
  • *
  • Posts: 1
    • View Profile
Re: Rowley GCC Crossworks project available
« Reply #1 on: February 26, 2008, 10:54:37 PM »
When I compile wit CrossWorks I get this error:
Linking uTaskerV13.elf — 1 error
MB Flash Debug/SAM7X.o: In function `main':C:/sam7/uTaskerV1.3.0_SAM7X_licenciran/Applications/uTaskerV1.3/Rowley_SAM7X/../../../Hardware/SAM7X/SAM7X.c:184: undefined reference to `_end'

The problem is in this code:

#else
    extern unsigned char _end;
    #define HEAP_START_ADDRESS &_end                                     // GNU last location of static variables
#endif

What I should do?

Offline mark

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3238
    • View Profile
    • uTasker
Re: Rowley GCC Crossworks project available
« Reply #2 on: February 27, 2008, 02:14:16 AM »
Hi

_end is a variable that the GNU compiler places on the top of the variables in RAM. &_end thus gives the address of the address after the very last variable in the system. This technique is used in all projects when compiling with GNU (Rowley uses GNU compiler).

Unfortunately I don't know why the linker is not finding this variable and throwing this error.
What version of Crossworks are you using - I wonder whether someone ar Rowley Associates could give you a quick answer?

Regards

Mark

Offline mark

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 3238
    • View Profile
    • uTasker
Re: Rowley GCC Crossworks project available
« Reply #3 on: February 27, 2008, 02:57:29 AM »
Hi

I have just checked in more detail.

I was wrong to state that _end is always generates by GCC - it depends on the linker script setup.

The problem that you have is that you haven't installed the service pack which supports the Rowley set up. Go to the service pack page:
http://www.utasker.com/software/softwareV1.3.html

and install the newest service pack. SP1 (Rowley) was the first to support Crossworks, but it is best to install the newest available (it includes also all intermediate stuff).

Then you should be able to build the project correctly. The variable used is actually called __heap_end__


Regards

Mark