Сам работал с AVR где-то года 2 пока не пришла мысль "а дай ка я напишу загрузчик"..Сел..И написал ...За полдня... Но правда , чтобы написать за подня надо почти наизусть знать "камень", все нюансы работы с ним..Это понимание приходит с опытом...
На Си не писал..Писал на Асм-е
Примеры работы с самопрограммированием есть в PDF-ах