Peripheral Template Library - efficient solution for cross-MCU development

Currently, PTL supports following MCU architectures and boards:

    * TI MSP430
        * MSP430 Launchpad
    * Atmel AVR
        * Arduino Duemilanove
    * ARM Cortex-M
        * ST STM32
            * STM32VLDISCOVERY
        * Energy Micro EFM32
            * EFM32GG-STK3700
        * TI Tiva C TM4 (former Stellaris LM4)
            * Stellaris/Tiva Launchpad

Here's expected LED blinker example in PTL:

#include <gpio.hpp>
#include <cpu.hpp>
#include <board.hpp>
#include <delay_static.hpp>
#include <delay_time.hpp>

using namespace PTL;

typedef TimeDelay<board::freq, StaticDelay> delayer;

int main()
{
    cpu::init(cpu::DEFAULT);
    board::LED::port::enable();
    board::LED::output();
    while (true) {
        board::LED::high();
        delayer::delay_ms(500);
        board::LED::low();
        delayer::delay_ms(500);
    }
}

Again, this example can be compiled to any of the boards listed above without any changes and will "just work", and at the same time will contain only as little code as needed to implement the functionality.