Project

General

Profile

CompilingFirmware » History » Revision 23

Revision 22 (peteruithoven, 2014-04-13 21:59) → Revision 23/25 (peteruithoven, 2014-04-13 22:09)

{{>toc}} 

 h1. Compiling from source 

 It is possible to compile the software from source and make a binary image that runs on the mbed. There are 3 methods:  
 # With MBED online compiler (at http://mbed.org): You need an account on mbed.org and a Internet connection.  
 # With gcc4mbed offline compiler, using GCC. Download at (https://github.com/adamgreen/gcc4mbed) 
 # With open source MBED from GitHub (recommended method).  

 h2. With gcc4mbed 

 You can use GCC4MBED on your platform, or use a linux virtual machine to compile the sources. See: 
 http://jeelabs.net/projects/tosca/wiki/ARM_toolchain_setup_GCC4ARM 

 Installation of gcc4mbed on linux: 
 <pre> 
 wget https://github.com/adamgreen/gcc4mbed/zipball/master 
 mv master adamgreen-gcc4mbed.zip 
 unzip adamgreen-gcc4mbed.zip 
 mv adamgreen-gcc4mbed-* gcc4mbed 
 cd gcc4mbed 
 ./linux_install</pre> 
 Check the "Github gcc4mbed page":https://github.com/adamgreen/gcc4mbed when you run into problems.  
 Then download / clone the firmware 
 <pre>git clone https://github.com/LaosLaser/Firmware.git</pre> 
 Place laser folder in gcc4mbed folder 
 Run the following command in that folder 
 <pre>make</pre> 
 And copy the resulting bin file to your MBED or LPC. 

 The compiler (currently) creates two .bin files. (laos.bin and laos-lpc.bin) laos-LPC is (experimental) for the lpcexpresso (not mbed). 

 h2. With open source MBED from GitHub 

 Download the firmware from github (mbed-gcc branch): 

 <pre>git clone --recursive https://github.com/LaosLaser/Firmware.git -b mbed-gcc</pre> 

 Optional, maybe not necessary: update mbed libs. For patch compatibility we update from the /pbrier/mbed repository. See [issue 96](http://redmine.laoslaser.org/issues/96) libs: 

 <pre>cd Firmware/mbed 
 git pull https://github.com/pbrier/mbed master</pre> 

 Patch mbed libraries:  

 <pre>cd mbed/ 
 patch -p1 < ../laser/mbed.patch</pre> 

 Download _GCC ARM_ from the following address and place it in a folder 
 _https://launchpad.net/gcc-arm-embedded/+download_ 

 Copy _Firmware/mbed/workspace_tools/settings.py_ to _Firmware/mbed/workspace_tools/private_settings.py_.  
 Update the _GCC_ARM_PATH_ path in _private_settings.py_ to for example: _/Developer/gcc-arm-none-eabi-4_7-2013q3/bin_ (Make sure you specify the _bin_ folder). 

 Now, compile the libraries 

 <pre>python workspace_tools/build.py -m LPC1768 -t GCC_ARM -r -e -u -c</pre> 

 Link LaOSlaser as an mbed example project  
 <pre>cd libraries/tests/net/protocols/</pre> 

 <pre>ln -s ../../../../../laser</pre> 

 Compiling the firmware: 
 <pre>cd ../../../../</pre> 

 <pre>python workspace_tools/make.py -m LPC1768 -t GCC_ARM -n laser</pre> 

 Then you should be able to find your new firmware at:   
 _Firmware/mbed/build/test/LPC1768/GCC_ARM/laser/laser.bin_ 

 Read http://mbed.org/handbook/mbed-tools for more info 

 h1. Debugging 

 You can debug the MBED by means of a USB/serial connection. This is included in the mbed (no USB/serial adapter required). 
 See the [[MBED Serial Debugging]] page for more information. 

 <pre>...</pre>