Проблема с выравниванием в Gcc
Пользую компилятор GCC, под чип AVR.
Вопрос такой: при чтении данных с флэшки такая картинка наблюдается:
чтение 4-байтового корректно работает, если читаем с адреса кратного 4, соответственно 2 байтового - кратного 2. Байты - нормально читаются ;-)
Ассемблер посмотрел - там есть такая фича при чтениии, но почему при этом варнинги при компиляции исходника на С++ не выскакивают, когда читаю, например DWORD, с адреса не кратного 4 - непонятно. И вообще - есть в GCC какой-нить ключ, который такую фичу лечит, т.е. корректно читает 2,4-байтовое с адреса не кратного, соответственно, 2, 4?