A ještě k těm knihovnám - pokud knihovna, původně psaná v C pro AVR GCC přímo neobsluhuje HW procesoru a nejde zkompilovat v ARM GCC, tak je něco hodně špatně (mezi židlí a klávesnicí u autora)... A všichni se tady přece baví o tom, že ty "hotový knihovny jsou použít jenom na AVR"
putchar() se přece používá stejně, ať je přesměrovaný do HD64380A, FT800 nebo na UART... Aplikaci je to jedno, ta jenom zavolá funkci. Low level funkcionalita se přiohne bez ohledu na kód ve vyšších vrstvách. Stejně tak se dají od HW abstrahovat celý fyzický rozhraní stylem I2C_WriteByte(char Adr, char Byte) a modul nemusí hrabat přímo na železo.