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

 
 
> Минус ноль, Умножение float
Garoldy
сообщение Jul 9 2017, 09:55
Сообщение #1





Группа: Участник
Сообщений: 13
Регистрация: 21-11-09
Из: Беларусь, Минск
Пользователь №: 53 770



Здравствуйте.
Среда Keil v5.13.0.0
Работаю с float на stm32
Результатом умножения нуля на отрицательное значение является минус ноль (80 00 00 00).
В дизассемблерном файле видно что вызывается функция __aeabi_fmul.
Можно ли указать функции что бы она возвращала ноль без знака?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Garoldy
сообщение Jul 9 2017, 13:48
Сообщение #2





Группа: Участник
Сообщений: 13
Регистрация: 21-11-09
Из: Беларусь, Минск
Пользователь №: 53 770



Портирую проект с моторолы. Код был написан на одной из первых версий IAR и при работе с float значения -0 никогда не получалось. проверки на это не делали.
С удовольствием закрыл бы вопрос просто проверкой на -0, но в проекте сотни вызовов этой функции. Напрашивается корректировка функции умножения.
В дизассемблере видно что перед тем как вернуть нулевой результат, происходит накладывание маски (and) 0x80 00 00 00. Сейчас разбираюсь как скорректировать стандартную библиотеку для работы с float, что бы маска была 0x00.
Go to the top of the page
 
+Quote Post



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

 


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


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