Setting up mbed with Rowley Crossworks for ARM

This notebook entry details the steps I have used to set up an mbed project with Rowley Crossworks for ARM based on a GCC export from the mbed online compiler (with some success) .

Rowley Crossworks recently released a Board Support Package for the mbed which includes support for cmsis-dap: http://www.rowleydownload.co.uk/arm/packages/mbed_NXP_LPC1768.htm

In my test, debugging and downloading over cmsis-dap worked perfectly. However, I had some problems with compiling Serial.h and LocalFileSystem.h

Steps to set up project.

1. Install latest version of rowley crossworks 2.3.1 and request for evaluation license key.

2. Install the board support package for mbed. Go to Tools>Package Manager. Follow the installation instructions from the link above.

3. Select File > New Project. If the BSP was installed successfully you should be able to see an mbed executable project option. You can choose to generate a bin file output as a build option.

4. In the project explorer, add files the from gcc export under source files. You can create the same project folder structure as the GCC export. You will need to right-click on the individual folders > Properties > Preprocessor Options > User Include Directories > add the path to sub-folders.

5. I encountered compilation error due to missing sys/fcntl.h etc in Serial.h and LocalFileSystem.h (the error eventually pointed to the file FileBase.h) so I commented those out for the time being. Other things I tried were to use the GCC includes instead but I had several errors and definition/usage conflicts.

6. After compilation (without Serial.h and LocalFileSystem.h), you can start debugging by selecting CMSIS-DAP as a connection option in the "Targets" pane. Simply hit connect and everything should go from there.

7. One issue you may encounter is that the debug binary does not run on reset (when debugger is disconnected). To make your binary run at startup, you must include a preprocessor directive STARTUP_FROM_RESET inside Preprocessor definitions in project properties. Please see https://rowley.zendesk.com/entries/251134-application-not-starting-up-from-reset-lpc1000

I had added my project folder and files here > /media/uploads/timothyteh/testbed.zip


6 comments on Setting up mbed with Rowley Crossworks for ARM:

03 Jun 2013

If you were able to comment out #include "sys/fcntl.h" and everything still worked, then I think you are fine. Rowley has their own C library which may be organized slightly differently. The necessary definitions likely came from some other included file.

15 Jun 2013

So. I am quite interested in seeing how this works out. Do you have any other updates? I would really like a offline compiler and I already have used the Crossworks compiler so I should be good to go with license etc.

24 Jun 2013

So far so good but I cannot seem to work through a linker error.

Linking ExFromNet.elf - 5 errors THUMB Flash Debug/main.o: In function `mbed::DigitalOut::DigitalOut(PinName)': undefined reference to `gpio_init' THUMB Flash Debug/main.o: In function `main': undefined reference to `wait' undefined reference to `wait'

I am really new to all of this with an offline compiler and am happy that I have gotten this far. however if you could shed some light, it would be appreciated.

All files have been added and the paths have been updated. I am not sure at all where to go with this one.

Cheers,

Steve

04 Sep 2013

OK. I am finally up and running and having the same problem with serial.h. Has anyone found a solution to this? I am missing some include files that are not included with the Crossworks includes. Bummer. So close, yet so far. UARTs are important!!! :)

30 Jul 2014

Has anybody gotten any further? I am curious about using Rowley, it would be nice if this was officially supported since it seems like a nice clean IDE that runs on MAC natively.

28 Mar 2018

Has anybody had any luck with this ever? I have tried for so long to get my mbed projects to work in crossworks, to no avail. Disappointing when you've paid for a licence and cant use the thing :(

Please log in to post comments.