Embedded software (firmware) for the laser system and components, including configuration files
C++ C Makefile
Latest commit ccec756 Oct 20, 2015 @jrv jrv Merge pull request #56 from matthijskooijman/debug
Add instructions for using openocd / gdb to README
Failed to load latest commit information.
config homespeed is in ustep/sec (fixes issue #45) Dec 16, 2014
laser Option to disable runtime cancel button checking. Sep 19, 2015
mbed @ d1b1a93 updated mbed libraries, added CHANGELOG Mar 18, 2015
.gitignore Add .gitignore file to ignore GCC generated files and .DS_Store OS X … Oct 1, 2012
CHANGELOG added support for longer step pulses Apr 21, 2015
README.md Add instructions for using openocd / gdb to README Oct 20, 2015
laoslaser-2012-08-12.bin Renamed binary files Mar 10, 2015
laoslaser-2012-09-14.bin Renamed binary files Mar 10, 2015
laoslaser-2012-12-08.bin Renamed binary files Mar 10, 2015
laoslaser-2014-05-22.bin Renamed binary files Mar 10, 2015
laoslaser_LPC1768.bin latest working firmware Jul 7, 2012


Embedded software (firmware) for the laser system and components, including configuration files.

Build setup, using MBED library sources

(No GCC4MBED required)

Get your compiler

Download from: https://launchpad.net/gcc-arm-embedded (or use the one that comes with your distribution: apt-get install gcc-arm-none-eabi ). On Ubuntu 14.04 64 bit, you need to install libc6:i386.

Download LaosLaser source:

git clone --recursive https://github.com/LaosLaser/Firmware.git

Patch mbed libraries:

cd Firmware/mbed/
patch -p1 < ../laser/mbed.patch

Set your GCC path

Set the path to the gcc compiler in a workspace_tools/private_settings.py file. Make sure you end with the bin folder. For example using:

echo 'GCC_ARM_PATH = "home/usr/gcc-arm-none-eabi-4_8-2014q1/bin/"' > workspace_tools/private_settings.py

Build MBED libraries:

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

You might need to install the python-colorama package for this to work.

Link LaOSlaser as an mbed example project

cd libraries/tests/net/protocols/
ln -s  ../../../../../laser .
cd ../../../..

Build LaosLaser:

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

Link IOtest as an mbed exmaple project

cd libraries/tests/net/protocols/
ln -s ../../../../../iotest_board/ iotest
cd ../../../..

Build IOtest:

python workspace_tools/make.py -m LPC1768 -t GCC_ARM -n iotest

Attach debugger for step-by-step debugging

arm-none-eabi-gdb build/test/LPC1768/GCC_ARM/laser/laser.elf --eval-command \
    'target remote | openocd -c "gdb_port pipe" --file /usr/share/openocd/scripts/interface/cmsis-dap.cfg --file /usr/share/openocd/scripts/target/lpc1768.cfg -cinit -chalt'

This starts gdb and lets gdb start openocd to connect to the board. It seems you can only attach after startup. Normally, you can also use -c 'reset halt' to reset the board and start debugging from the start, but since the startup procedure uses "semihost" calls to read config.txt from the flash, this generates dozens of SIGTRAP interrupts, making debugging effectively useless.

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