vitko 0 8 июля, 2010 Опубликовано 8 июля, 2010 · Жалоба Наблюдаю такую картину. Есть массив __packed структур в BatteryRAM, размер структуры не кратен 32. При записи в массив DWORD, лежащие на стыке двух структур, портятся, если граница не совпадает с границей DWORD. А именно, все его байты заполняются тем байтом, который пишется в старший байт. В обычной RAM запись в такой массив идет нормально. Чем это объяснить ? Может чего-то недочитал, с ARM работаю недавно... Компилятор Keil 4.10 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 0 8 июля, 2010 Опубликовано 8 июля, 2010 · Жалоба Может чего-то недочитал. Да именно так. К батарейной RAM только 32bit доступ. Документировано черным по белому. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vitko 0 8 июля, 2010 Опубликовано 8 июля, 2010 · Жалоба Да именно так. К батарейной RAM только 32bit доступ. Документировано черным по белому. Да, в общем-то, видел. Просто внутри структуры есть байтовые поля, и они нормально прописываются через memcpy, кроме стыковых. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться