mmcu: Tweak to the macros to allow multiple declarations

This trick adds the line number in the declaration of the fake
'variable' to allows multiple declarations to coexists, it is used
for the pullup/down declaration in particular

Signed-off-by: Michel Pollet <buserror@gmail.com>
tests: Added a coroutine example

Slapped together test, but demonstrates a nice trick that works
on AVR for havbing multiple tasks concurently (coorperatively)

Signed-off-by: Michel Pollet <buserror@gmail.com>
avr_uart.c: fix to prevent overwriting readonly flags when setting u2x.

	modified:   simavr/sim/avr_uart.c
Merge pull request #33 from bsekisser/uart-u2x-bugfix

avr_uart.c: fix to prevent overwriting readonly flags when setting u2x.
cores: Added PORTA to atmega32

Inspired by sealibora@github

Signed-off-by: Michel Pollet <buserror@gmail.com>
cores: Added mega16

No idea why it wasn't there already. Uncommon part.

Signed-off-by: Michel Pollet <buserror@gmail.com>
core: Fix a possible buffer overrun

From bsekisser@github

Signed-off-by: Michel Pollet <buserror@gmail.com>
simavr: Removed the avr_global_logger global

It was not very clean; Instead there is a new accessor for
setting/getting a global logging function pointer.
Also made sure it is not compiled for the cores, since they use AVR
headers and have no stdarg.h anyway

Signed-off-by: Michel Pollet <buserror@gmail.com>
Merge remote-tracking branch 'upstream/master'
add ATmega2560 core
correct stack usage of interrupt and RET
no longer need an external interrupt
make LCD example a dynamic component
fix out of bound access
Merge branch 'dynamic_components' of https://github.com/nnayo/simavr into dynamic_components
Merge branch 'memory_leak' into dynamic_components
modify update rate
Merge branch 'atmega2560' into dynamic_components