Знаю что такие темы уже были, тем не менее я так и не разобрался как сделать лучше и проще всего Есть Atmel AT91RM9200, на котором крутится Linux, и на который надо портировать софтинку, в которой есть необходимость обращаться к элементам структуры типа:
struct blabla { char ch; int that; } blabla_t
При обращении к that и происходит, собсно, невыровненный доступ к памяти. При этом объявить структуру с параметром __attribute__ ((__aligned__(4))), или дополнить паддингом я не могу, ибо по сети приходит пакет, на который собсно и накладывается структура. Да и отловить все подобные обращения в сотне исходный файлов не представляется оптимальным путём.
Собственно, вопрос, как быть? Неужели нет простой возможности обойти проблему в банальнейшей операции обращения к полю структуры?
И еще одна непонятка. Вроде бы бит A в CP15 включен, однако никаких исключений при таких обращения не происходит. Поэтому я даже не могу узнать о таком обращении. ЧЯДНТ? Может, надо еще что то где то включить? Или в линухе реализована обработка подобного исключения но у меня она почему то не работает?
Всем спасибо!
|