|
Ошибка считывание DWORD данных из BYTE массива |
|
|
|
Nov 9 2009, 14:36
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
В программе, написанной на C++ (Keil) для LPC2366 обнаружилась следующая проблема при работе с массивом:
Вот оптимизированный для просмотра отрывок из программы:
BYTE byData[8] = {0x12, 0x00, 0x0A, 0x00, 0x01, 0x00, 0x02, 0x00}; BYTE* prtBuf = (BYTE*)byData; DWORD dwVal1 = *((DWORD*)(prtBuf)); DWORD dwVal2 = *((DWORD*)(prtBuf + 1)); DWORD dwVal3 = *((DWORD*)(prtBuf + 2)); DWORD dwVal4 = *((DWORD*)(prtBuf + 4));
На выходе получаю следующие значения: dwVal1 = 0x000A0012; dwVal2 = 0x12000A00; dwVal3 = 0x0012000A; dwVal4 = 0x00020001;
Ошибка возникает в значении dwVal2 и dwVal3, т.е. при смещении относительно начала массива, не кратно DWORD. Из-за чего это происходит и можно ли с этим бороться!?
Сообщение отредактировал Yaumen - Nov 9 2009, 14:43
|
|
|
|
|
 |
Ответов
|
Nov 9 2009, 14:59
|
Частый гость
 
Группа: Свой
Сообщений: 187
Регистрация: 22-06-05
Из: Минск, Беларусь
Пользователь №: 6 213

|
Цитата(aaarrr @ Nov 9 2009, 16:50)  Из-за того, что ARM7 сам по себе не умеет читать слова по невыровненным адресам. Т.е. или все выравнивать или формировать DWORD самому, считывая побайтно?
|
|
|
|
Сообщений в этой теме
Yaumen Ошибка считывание DWORD данных из BYTE массива Nov 9 2009, 14:36   koyodza Цитата(zltigo @ Nov 9 2009, 17:05) Вообще... Nov 9 2009, 17:54    zltigo Цитата(koyodza @ Nov 9 2009, 20:54) Подро... Nov 9 2009, 18:09     Yaumen А будет ли та же проблема со структурой, объявленн... Nov 10 2009, 09:13     koyodza Цитата(zltigo @ Nov 9 2009, 20:09) Не над... Nov 10 2009, 16:10      zltigo Цитата(koyodza @ Nov 10 2009, 19:10) кейл... Nov 10 2009, 16:22       koyodza Цитата(zltigo @ Nov 10 2009, 18:22) Явный... Feb 9 2010, 19:31 aaarrr Ну, не обязательно самому, можно написать:
КодDWOR... Nov 9 2009, 15:02 esaulenka Проблем быть не должно - будет медленное обращение... Nov 10 2009, 09:31 aaarrr Хм. А какой комментарий вы рассчитываете получить ... Feb 9 2010, 19:51
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|