Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Embedded Hardware Abstraction Layer
C++ C Other
branch: master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
arch
core
doc
drivers
scripts
src
test
.gitignore
Makefile
README.adoc

README.adoc

Embedded Hardware Abstraction Layer.

  • Is a portable interface definition and implementation for MCU peripherals. (think CMSIS, StellarisWare and the like.)

  • This lib is crafted to be very light on resources.

  • Pay for what you use. Disable what you don’t via config files.

Feature Matrix

┏━━━━━━━━━━━━━━━━━━┓
┃avr/atmegaX8      ┣━━━━━━━━━━┓
┃arm-cm4/lm4f120   ┣━━━━━━━━┓ ┃
┃arm-cm3/stm32f10x ┣━━━━━━┓ ┃ ┃
┃msp430/msp430f21x1┣━━━━┓ ┃ ┃ ┃
┃msp430/msp430f25x2┣━━┓ ┃ ┃ ┃ ┃
┣━━━━━━━━━━━━━━━━━━┛  ┃ ┃ ┃ ┃ ┃
┣━━━━━━━━━┓          ┏┻┳┻┳┻┳┻┳┻┓
┃adc      ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃can      ┣━━━━━━━━━━┫x┃x┃ ┃ ┃x┃
┃cpu      ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃dac      ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃dma      ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃x┃
┃eeprom   ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃ethernet ┣━━━━━━━━━━┫x┃x┃ ┃ ┃x┃
┃flash    ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃gpio     ┣━━━━━━━━━━┫ ┃v┃ ┃v┃v┃
┃i2c      ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃pwm      ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃spi      ┣━━━━━━━━━━┫ ┃ ┃ ┃v┃ ┃
┃timer    ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┃uart     ┣━━━━━━━━━━┫ ┃ ┃ ┃v┃ ┃
┃usb      ┣━━━━━━━━━━┫x┃x┃ ┃ ┃x┃
┃watchdog ┣━━━━━━━━━━┫ ┃ ┃ ┃ ┃ ┃
┗━━━━━━━━━┻━━━━━━━━━━┻━┻━┻━┻━┻━┛

☑, [v] - peripheral implemented.
☐, [ ] - peripheral not implemented.
☒, [x] - peripheral not present in MCU/arch.

┏━┳━┓
┃ ┃ ┃
┣━╋━┫
┃ ┃ ┃
┗━┻━┛

A set of drivers using the above mentioned APIs:

  • hd44780 (based display drivers.)

In the plans are:

  • nrf24l01 (2.4GHz low power radio.)

  • Nokia 5110 (based display drivers.)

Libs for Driver development:

  • bm (bitmask common operations.)

  • queue (Single linked list queue.)

  • jobs (Defer heavy jobs out of IRQs.)

  • bbuf (zero copy circular buffer with non fixed element sizes.)

  • ringbuf (circular buffer that needs no lock for 1 producer - 1 consumer.)

Something went wrong with that request. Please try again.