C++ meta state machine running bare metal on an MCU
This project is for demonstration purposes. Demonstrates how to combine modern c++ techniques with embedded programing.
There is a UML2 state machine implemented using boost meta state machine framework see http://www.boost.org/doc/libs/1_58_0/libs/msm/doc/HTML/index.html driven by a dispatching embedded framework from Quantum Leaps see http://www.state-machine.com/qpcpp/index.html
The project combines board support package, even dispatching / tracing framework and c++ meta programmed state machine. Project using arm hardware abstraction see : http://www.arm.com/products/processors/cortex-m/cortex-microcontroller-software-interface-standard.php
board support package is for a TI MCU : http://www.ti.com/product/lm3s6965
It uses following development board : http://www.mouser.de/ProductDetail/Texas-Instruments/EKK-LM3S6965/?qs=vnwGVgFuQiaEThtYIQjC0g==
Development board has USB serial ports used for tracing and Jtag using ft2232 serial usb converter. For flashing / and debugging the Open On-Chip Debugger can be used see: http://openocd.org/
For cross compiling Sourcery G++ was used. see http://www.codesourcery.com
- folder ./boost contains boost source code.
- folder ./fw/ql contains Quantum Leaps framework
- folder ./dbg contains configuration files for flas and debug for openodc.
- folder ./tools/compilers/arm/sourcery_2010_q1_none_eabi contains Sourcery G++ cross compiler
- folder ./msm-qk-ev-lm3s6965 contains the boost example and board support package and hw abstraction from arm.
main entry point for the project is : ./msm-qk-ev-lm3s6965/SimpleTutorial.cpp