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

 
 
 
Reply to this topicStart new topic
> Подскажите библиотеку double для CodeVisionAVR, Требуется поддержка операций с плавающей точкой двойной точности
Konstantin Ilich...
сообщение Jun 22 2011, 13:43
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Добрый день,

Есть готовый проект под CodeVisionAVR на Mega64, в котором требуется добавить математические вычисления с двойной точностью double (8 байт).
CodeVisionAVR поддерживает только float (4 байта), double не поддерживает.

Переводить проект на IAR (поддерживает double) ради этого не хочу, поскольку это потребует много времени на тестирование уже написанного кода, могут вылезти любые глюки, обусловленные особенностями компиляторов. Лучше конечно сразу писать под IAR, но такой возможности на старте проекта не было.

Итак, ищу библиотеку, позволяющую складывать и умножать числа double в соответствии со стандартом IEEE 754, которую можно использовать в CodeVision.

Порекомендуйте что можно сделать!
Go to the top of the page
 
+Quote Post
=GM=
сообщение Jun 22 2011, 14:42
Сообщение #2


Ambidexter
*****

Группа: Свой
Сообщений: 1 589
Регистрация: 22-06-06
Из: Oxford, UK
Пользователь №: 18 282



Напишите простую си-программу для иара, откомпилируйте, вытащите оттуда нужные куски двойной точности и оформите, как библиотеку, ну или как подпрограмму.


--------------------
Делай сразу хорошо, плохо само получится
Go to the top of the page
 
+Quote Post
kovigor
сообщение Jun 22 2011, 15:19
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 5 273
Регистрация: 30-03-10
Пользователь №: 56 295



Цитата(Konstantin Ilichev @ Jun 22 2011, 16:43) *
Порекомендуйте что можно сделать!


Начать переделывать проект под IAR, причем как можно скорее. Сэкономите кучу времени ...
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Jun 23 2011, 07:44
Сообщение #4


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Решение найдено.
Портировал бесплатную библиотеку SoftFloat (http://www.jhauser.us/arithmetic/SoftFloat.html) сначала под Builder. Результаты операций одинаковы со встроенной библиотекой double билдера. Но это в первом приближении, сейчас будем всесторонне тестировать.
Библиотека требует наличие в компиляторе 32-битного целого. В CodeVisionAVR есть long int. На основе этого библиотека предоставляет операции с типами float32 и float64. Последний полностью соответствует привычному double.

После тестирования буду портировать под AVR, там в сущности никаких отличий от i386 нет.

Кому интересны подробности - пишите в личку.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 23 2011, 08:47
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Konstantin Ilichev @ Jun 23 2011, 10:44) *
... буду портировать под AVR, там в сущности никаких отличий от i386 нет....

Я бы даже сказал - они практически идентичны. ))
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Jun 23 2011, 10:02
Сообщение #6


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Цитата(SasaVitebsk @ Jun 23 2011, 12:47) *
Я бы даже сказал - они практически идентичны. ))

Ну а что, там тот же Little Endian, а остальное всё - просто сишный код )).
Тем более никакие аппаратные особенности не используются.

Сообщение отредактировал Konstantin Ilichev - Jun 23 2011, 10:04
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jun 23 2011, 12:47
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Упоминание про Little Endian на 8-ми битной платформе очень по теме. )) Как, собственно и весь этот термин в контексте того, что "Библиотека требует наличие в компиляторе 32-битного целого".
По сути вообще внутреннее представление числа не имеет значения, если нет выхода наружу.
Go to the top of the page
 
+Quote Post
Konstantin Ilich...
сообщение Jun 23 2011, 13:57
Сообщение #8


Участник
*

Группа: Участник
Сообщений: 62
Регистрация: 7-12-06
Пользователь №: 23 250



Цитата(SasaVitebsk @ Jun 23 2011, 16:47) *
Упоминание про Little Endian на 8-ми битной платформе очень по теме. )) Как, собственно и весь этот термин в контексте того, что "Библиотека требует наличие в компиляторе 32-битного целого".
По сути вообще внутреннее представление числа не имеет значения, если нет выхода наружу.

Эээ... Да, согласен! Со всем согласен!!! )
При портировании меня больше всего бесит, почему в исходнике минус приделывают к беззнаковому целому. Мой компилер-то ругается...
Go to the top of the page
 
+Quote Post
haker_fox
сообщение Jun 23 2011, 14:01
Сообщение #9


Познающий...
******

Группа: Свой
Сообщений: 2 963
Регистрация: 1-09-05
Из: г. Иркутск
Пользователь №: 8 125



QUOTE (kovigor @ Jun 23 2011, 00:19) *
Начать переделывать проект под IAR, причем как можно скорее. Сэкономите кучу времени ...

+1. Можно в сторону GCC посмотреть, если цена смущает. Потраченное на освоение время с лихвой окупится в дальнейшем, если проект и работа не разовая.


--------------------
Выбор.
Go to the top of the page
 
+Quote Post

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

 


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


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