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

 
 
> Q: знатокам arm-вского ассемблера
abcdefg
сообщение Aug 5 2006, 16:54
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 201
Регистрация: 23-01-06
Из: Msk
Пользователь №: 13 490



есть команда STR R1, [R0, #0x0]
при R1 = 0x00000000, R0 = 0x400002B5
пишет нули по адресу 0x400002B4 !!!

Есть ли выравнивание по адресу записи?! Если это так, то надо аккуратно работать в keil'e с void-скими указателями sad.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
GetSmart
сообщение Aug 11 2006, 02:03
Сообщение #2


.
******

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



Сергей Борщ
Именно так я извратился ещё вчера. (в смысле float = ((packed_float_t *)getAddr())->data;)
Но скомпиленный код получился ужасный. Хотя корректный.

Через memcpy тоже вобщем нормально. Точнее не хуже этого.

Странно ещё то, что компилятор даже warning не выдал когда скомпилил мой приведённый отрывок. Мало того, неправильно его скомпилил, так ещё я подумал что он достаточно умный чтоб не ошибиться. На мой взгляд это какая-то недоработка.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Aug 11 2006, 08:16
Сообщение #3


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(GetSmart @ Aug 11 2006, 05:03) *
Сергей Борщ
Именно так я извратился ещё вчера. (в смысле float = ((packed_float_t *)getAddr())->data;)
Говорят, "у дураков мысли сходятся" :-) Однако продолжение почему-то забывают: "но у умных - чаще!"
Цитата
Странно ещё то, что компилятор даже warning не выдал когда скомпилил мой приведённый отрывок. Мало того, неправильно его скомпилил, так ещё я подумал что он достаточно умный чтоб не ошибиться. На мой взгляд это какая-то недоработка.
Вроде у Страуструпа читал, что если уж используешь явное преобразование указателей - сам смотри. Ведь в зависимости от контекста этот код может быть как абсолютно правильным (если этот char * в прошлой жизни был float *) и тогда предупреждения компилятора будут мешать или неправильным как в твоем случае. Видимо, придется просто запомнить, что в подобных случаях могут быть грабли.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- abcdefg   Q: знатокам arm-вского ассемблера   Aug 5 2006, 16:54
- - DASM   Цитата(abcdefg @ Aug 5 2006, 20:54) есть ...   Aug 5 2006, 17:33
|- - zltigo   Цитата(DASM @ Aug 5 2006, 20:33) И Keil т...   Aug 5 2006, 17:48
|- - DASM   Цитата(zltigo @ Aug 5 2006, 21:48) Цитата...   Aug 5 2006, 18:18
|- - abcdefg   Цитата(DASM @ Aug 5 2006, 22:18) гм.. ну ...   Aug 6 2006, 18:00
|- - Andy Mozzhevilov   Цитата(abcdefg @ Aug 7 2006, 00:00) Цитат...   Aug 7 2006, 03:22
|- - abcdefg   Цитата(Andy Mozzhevilov @ Aug 7 2006, 07...   Aug 7 2006, 07:52
- - Rst7   Цитата(abcdefg @ Aug 5 2006, 19:54) есть ...   Aug 6 2006, 10:58
|- - zltigo   Цитата(Rst7 @ Aug 6 2006, 13:58) А что ва...   Aug 6 2006, 11:26
|- - Rst7   Цитата(zltigo @ Aug 6 2006, 14:26) Цитата...   Aug 6 2006, 11:53
|- - zltigo   Цитата(Rst7 @ Aug 6 2006, 14:53) Так что ...   Aug 6 2006, 12:11
- - Rst7   ЦитатаДавить? :-))) Что??? Куда??? Да и это вам п...   Aug 6 2006, 12:24
- - goodwin   А вообще-то это зависит от конкретного компилятора...   Aug 6 2006, 18:14
- - Harbour   что-то видать намучено в linker script с align опц...   Aug 7 2006, 09:36
|- - zltigo   Цитата(Harbour @ Aug 7 2006, 12:36) что-т...   Aug 7 2006, 10:00
|- - defunct   Цитата(zltigo @ Aug 7 2006, 13:00) Никаки...   Aug 7 2006, 10:19
||- - abcdefg   Цитата(defunct @ Aug 7 2006, 14:19) Цитат...   Aug 7 2006, 13:46
|- - Harbour   Цитата(zltigo @ Aug 7 2006, 13:00) Цитата...   Aug 7 2006, 11:14
- - Harbour   Проверил на arm-elf-gcc 4.1.1 - в любом случае (pa...   Aug 7 2006, 11:40
|- - zltigo   Цитата(Harbour @ Aug 7 2006, 14:40) а в с...   Aug 7 2006, 11:55
- - defunct   ЦитатаКод небрежный - отсюда и результат. Автору н...   Aug 7 2006, 13:33
- - defunct   Для тестов использовал приведенный выше пример Сиш...   Aug 7 2006, 21:20
- - goodwin   Вот и я о том. Лучше перебдеть, чем недобдеть - ра...   Aug 7 2006, 21:39
- - GetSmart   Фактически была некорректной эта команда: КодU32 *...   Aug 8 2006, 01:20
- - defunct   Отправил bug report в Keil, сказали пофиксят..   Aug 9 2006, 12:38
- - GetSmart   Нашёл у себя в ИАР то ли баг, то ли я тупой? Напиш...   Aug 10 2006, 11:53
- - GetSmart   Или может я ошибаюсь? Может выравнивание прикрепля...   Aug 10 2006, 12:18
|- - Сергей Борщ   Цитата(GetSmart @ Aug 10 2006, 15:18) Или...   Aug 10 2006, 12:33
- - GetSmart   Ну допустим. Тогда как проще (и желательно красиве...   Aug 10 2006, 13:30
|- - ek74   Цитата(GetSmart @ Aug 10 2006, 17:30) Ну ...   Aug 10 2006, 14:32
|- - Сергей Борщ   Цитата(GetSmart @ Aug 10 2006, 16:30) Ну ...   Aug 10 2006, 15:14
- - Rst7   Ну есть еще злой способ: Кодfloat getfloat(cha...   Aug 11 2006, 05:14


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

 


RSS Текстовая версия Сейчас: 21st August 2025 - 04:23
Рейтинг@Mail.ru


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