Цитата(inventor @ Jun 15 2010, 14:21)

Насколько я понимаю, эта внутренняя флеш устроена таким образом,
что у нее в одной ячейке записаны ДВА байта.
Не морочьте себе голову. Это странная прихоть писателей даташитов от атмела, что память адресуется словами. Обратите внимание, что согласно даташиту для команды LPM в Z грузится адрес слова сдвинутый на 1 и в младший бит - признак "младший/старший байт слова". Которые вместе образуют честный байтовый адрес. Чтение все равно происходит по одному байту за раз, а как оно устроено внутри - знают только сами разработчики кристалла. gcc-avr (WinAVR) использует нормальную байтовую адресацию. Словная адресация используется только для указателей на функции, которые физически не могут указывать на нечетный байтовый адрес.
Цитата(inventor @ Jun 15 2010, 14:21)

ТО есть если я читаю предположим с адреса 0,
то я должен прочитать ДВА байта функцией pgm_read_word
а с адреса 1 следующие ДВА байта.
Нет. В первом случае получите 2 байта с адресов 0,1, во втором - с адресов 1,2.