реклама на сайте
подробности

 
 
> Неявное преобразование типов IAR ARM 6.10
grv
сообщение Feb 22 2011, 11:30
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 28-04-06
Пользователь №: 16 592



Перевожу проект с меги 128 на LPC23xx
Есть такой кусок на С:

Код
                           i=((unsigned short*)&(bin_buff[1]))[0];


где
unsigned short i;
unsigned char bin_buff[18];
линкер раскидал bin_buff[] с адреса 0x4000 01e4

этой строкой хочу взять 16 бит без знака из двух байт bin_buff[2]:bin_buff[1]

проверяю на симуляторе -все ок
в железе старший байт всегда равен 0, младший - правильный

в окне дизасма в симуляторе код получился такой

Код
                           i=((unsigned short*)&(bin_buff[1]))[0];
        0x710: 0xe59f113c     LDR       r1, ??DataTable10_12   ; bin_buff
        0x714: 0xe1d110b1     LDRH      r1, [r1, #0x1]
        0x718: 0xe1cd10b0     STRH      r1, [sp]


рылся-рылся в итоге чисто случайно обращаю внимание на сообщение loga:

Tue Feb 22 13:01:20 2011: Warning: The LDRH instruction at addr: 0x00000714 made an illegal unaligned access to 0x400001E5

Ну и сразу все стало на свои места.
Теперь вопрос собственно: какого %ера компилятор в купе с линкером не выдали хотя бы варнинг по этму поводу ? Все варнинги и ероры были включены. Или иначе, где я должен был почитать о такой ситуации чтоб ее не допустить ?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Feb 22 2011, 12:21
Сообщение #2


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Для начала нужно почитать чем отличается неявное преобразование типов от явного sm.gif

Вот пример неявного преобразования со странностями.
В 4.хх ИАРе легко можно было написать
Код
float f;
...
int tmp = f + 0.5f;

Никаких варнингов не было.
А в 5.хх уже вылазит зачем-то варнинг. Кто бы объяснил зачем его ввели?

Сообщение отредактировал GetSmart - Feb 22 2011, 12:30


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 23:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01369 секунд с 7
ELECTRONIX ©2004-2016