AVR Development
Over the years I have done quite a bit of firmware programming using various flavors of the
Atmel AVR 8-bit RISC microcontroller and the AVR target of the
GNU C compiler. Below I share a couple of C libraries I have written that were originally used on personal projects and on manufacturing automation projects.
AVR Helper Library
The AVR Helper Library is a small collection of modules written in C
that I have found useful while developing and prototyping Atmel AVR-based
software. It includes a buffered USART module, buffered and
unbuffered SPI modules, and some odds and ends like "gentle" EEPROM
update functions, a thermistor temperature calculation function, and
"endian" conversion functions.
The library builds for different AVR families which include the ATmega128,
the ATmega103, the AT90S8515, the AT90S8535, and the AT90S4433. It should
be relatively easy to modify the make files and source to build the libraries
for other AVR microcontrollers.
I have released this code under the
GNU Lesser General Public License
with the hope that others might find it useful.
I have moved the sources for this library to Bitbucket,
https://bitbucket.org/dferreyra/avr-helper/wiki/Home.
You can find the
online documentation here.
AVR Threads Library
The AVR Threads Library provides basic preemptive multitasking/multi-threading to
the Atmel AVR family of microcontrollers. It is written mostly in C
with some assembly language. It implements a simple round-robin style
task switcher.
This library provides basic thread start and stop functions, a couple
of flavors of mutual exclusion semaphore, and events to help
synchronize threads.
The library builds for three AVR families which include the ATmega128,
the ATmega103, and the AT90S8515 and AT90S8535. It should be relatively
easy to modify the make files and source to build the libraries for
other AVR microcontrollers.
I have released this code under the
GNU Lesser General Public License
with the hope that others might find it useful.
I have moved the sources for this library to Bitbucket,
https://bitbucket.org/dferreyra/avr-threads/wiki/Home. There you will also find patches for improvements that were kindly provided by other users.
You can find the
online documentation here.