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

 
 
 
Reply to this topicStart new topic
> fixed point 16 lib and ARM, Есть ли у кого?
SpiritDance
сообщение Aug 29 2008, 10:09
Сообщение #1


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Вобщем нужна библиотека на ассемблере (оптимизированная понятно - времени на обработку мало) для arm7 с простыми арифметическими дейтсвиями для формата с фиксированной запятой в 16 разрядов - сложение, вычитание, умножение, деление. Может есть у кого? Поделитесь плиз (возможно небезвозмездно), очень не хочется тратить время на то, что уже наверняка не раз сделано.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 29 2008, 10:20
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



07.gif Библиотека для сложения, вычитания, умножения на ассемблере - зачем??? Инструкции же есть соответствующие.
А деление можете выдрать из какого-нибудь компилятора, дело на полчаса работы.
Go to the top of the page
 
+Quote Post
SpiritDance
сообщение Aug 29 2008, 11:26
Сообщение #3


Дух погибшего транзистора
****

Группа: Свой
Сообщений: 877
Регистрация: 6-09-05
Из: Москва
Пользователь №: 8 288



Цитата(aaarrr @ Aug 29 2008, 14:20) *
07.gif Библиотека для сложения, вычитания, умножения на ассемблере - зачем??? Инструкции же есть соответствующие.

Да про сложение и вычитание я, пожалуй, загнул
нужно совершать вычисления 16fpx16fp=32fp -> 16fp(res), 16 fp(res)*16fp т.е. несколько операций умножения. Собственно вопрос накопления разрядов меня и смущает, каким образом быстро приводить результат умножения к 16 разрядам?
Извиняюсь за сумбурность - голова в пятницу уже не работает.


--------------------
Yes, there are two paths you can go by But in the long run Theres still time to change the road youre on.
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 29 2008, 11:42
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(SpiritDance @ Aug 29 2008, 15:26) *
каким образом быстро приводить результат умножения к 16 разрядам?

Если результат знаковый, то:
Код
LSL    r0, r0, #16
ASR    r0 ,r0, #16

если беззнаковый -
Код
LSL    r0, r0, #16
LSR    r0, r0, #16


Можете просто написать все нужные конструкции на C, а затем дизассемблировать и использовать.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 13:58
Рейтинг@Mail.ru


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