Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Выравнивание данных в batteryRAM LPC23xx
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > ARM, 32bit
vitko
Наблюдаю такую картину.
Есть массив __packed структур в BatteryRAM, размер структуры не кратен 32. При записи в массив DWORD, лежащие на стыке двух структур, портятся, если граница не совпадает с границей DWORD. А именно, все его байты заполняются тем байтом, который пишется в старший байт.
В обычной RAM запись в такой массив идет нормально.

Чем это объяснить ? Может чего-то недочитал, с ARM работаю недавно...

Компилятор Keil 4.10
zltigo
QUOTE (vitko @ Jul 8 2010, 16:44) *
Может чего-то недочитал.

Да именно так. К батарейной RAM только 32bit доступ. Документировано черным по белому.

vitko
Цитата(zltigo @ Jul 8 2010, 17:02) *
Да именно так. К батарейной RAM только 32bit доступ. Документировано черным по белому.


Да, в общем-то, видел. Просто внутри структуры есть байтовые поля, и они нормально прописываются через memcpy, кроме стыковых.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.