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

 
 
 
Reply to this topicStart new topic
> Как загнать в RAM sam7s библиотечные sin, cos и тд?, вопрос новичка
Goofy
сообщение Dec 20 2007, 04:56
Сообщение #1


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



subj
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 20 2007, 13:01
Сообщение #2


Гуру
******

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



Если хотите получить высокое быстродействие, то разместите в RAM таблицы.

Если все же нужно разместить в RAM библиотечные функции, то постарайтесь грамотно сформулировать вопрос (тип компилятора).
Go to the top of the page
 
+Quote Post
Goofy
сообщение Dec 20 2007, 13:40
Сообщение #3


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Цитата(aaarrr @ Dec 20 2007, 20:01) *
Если хотите получить высокое быстродействие, то разместите в RAM таблицы.

Если все же нужно разместить в RAM библиотечные функции, то постарайтесь грамотно сформулировать вопрос (тип компилятора).


прощу прощения! Keilовский RealView.

Можно по-подробнее про таблицы?
С занесением в RAM собственных функций проблем не возникает, в кейле это можно делать через GUI...

Сообщение отредактировал Goofy - Dec 20 2007, 13:41
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 20 2007, 14:06
Сообщение #4


Гуру
******

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



Цитата(Goofy @ Dec 20 2007, 16:40) *
Можно по-подробнее про таблицы?

С таблицами все очень просто - при помощи функции sin формируете в RAM табличный синус (достаточно 1/4 периода) с нужными параметрами, а дальше работаете с ним как с массивом.

Цитата(Goofy @ Dec 20 2007, 16:40) *
Keilовский RealView.
...
С занесением в RAM собственных функций проблем не возникает, в кейле это можно делать через GUI...

Выдрать в RealView (да и не только в нем) функции sin/cos для отдельного размещения довольно трудно - они последовательно тянут за собой всю математику.
Для начала советую разобраться, как размещать секции без GUI.
Go to the top of the page
 
+Quote Post
Goofy
сообщение Dec 20 2007, 14:14
Сообщение #5


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Цитата(aaarrr @ Dec 20 2007, 21:06) *
С таблицами все очень просто - при помощи функции sin формируете в RAM табличный синус (достаточно 1/4 периода) с нужными параметрами, а дальше работаете с ним как с массивом.
Выдрать в RealView (да и не только в нем) функции sin/cos для отдельного размещения довольно трудно - они последовательно тянут за собой всю математику.
Для начала советую разобраться, как размещать секции без GUI.


как через scatter тоже ясно.

Синус и косинус я назвал для примера... Ещё необходимы и обратные им функции.
О варианте с таблицами тоже думал. Скорее всего будет меньшим из зол именно так сделать, раз слинковать в рам те функции столь проблематично
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 20 2007, 15:29
Сообщение #6


Гуру
******

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



Цитата(Goofy @ Dec 20 2007, 17:14) *
как через scatter тоже ясно.

Синус и косинус я назвал для примера... Ещё необходимы и обратные им функции.
О варианте с таблицами тоже думал. Скорее всего будет меньшим из зол именно так сделать, раз слинковать в рам те функции столь проблематично

Не столь проблематично, как я думал smile.gif

Просто разместите в RAM
Код
*m_a_pu.l (*)
Go to the top of the page
 
+Quote Post
Goofy
сообщение Dec 20 2007, 16:24
Сообщение #7


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Цитата(aaarrr @ Dec 20 2007, 22:29) *
Не столь проблематично, как я думал smile.gif

Просто разместите в RAM
Код
*m_a_pu.l (*)


либо я чего то недопонял, но у меня в *.map пишет

sin.o(m_ts.l)

Так выходит эту .l линковать?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 20 2007, 16:29
Сообщение #8


Гуру
******

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



Цитата(Goofy @ Dec 20 2007, 19:24) *
либо я чего то недопонял, но у меня в *.map пишет

sin.o(m_ts.l)

Так выходит эту .l линковать?

Да, тогда будет *m_ts.l (*). Я просто на RVDS 2.2 проверял.
Go to the top of the page
 
+Quote Post
Goofy
сообщение Dec 20 2007, 19:20
Сообщение #9


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Всё получилось, большое спасибо! Внёс дополнительно .l овечающий за операции с float, время выполнения процедуры сократирось на 10-15% Это нормально? Или должно быть больше?

Сообщение отредактировал Goofy - Dec 20 2007, 19:25
Go to the top of the page
 
+Quote Post
gladov
сообщение Dec 20 2007, 20:51
Сообщение #10


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

Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687



В любом случае после размещения библиотеки в ОЗУ Вы получите большой расход памяти. Так не лучше ли эту память использовать под таблицы? Ведь большого прироста производительности от размещения функций в ОЗУ Вы не получите, а вот скорость выборки значений из таблиц будет в разы выше, чем вычисление "на лету".
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Dec 20 2007, 21:31
Сообщение #11


Гуру
******

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



Цитата(Goofy @ Dec 20 2007, 22:20) *
Всё получилось, большое спасибо! Внёс дополнительно .l овечающий за операции с float, время выполнения процедуры сократирось на 10-15% Это нормально? Или должно быть больше?

Это нормально. Если нужно поднять производительность более серьёзно, то лучше перевести вычисления в целочисленный формат и использовать таблицы.
Go to the top of the page
 
+Quote Post
Goofy
сообщение Dec 21 2007, 04:33
Сообщение #12


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

Группа: Свой
Сообщений: 169
Регистрация: 17-09-07
Из: Красноярск
Пользователь №: 30 600



Да я пока так, играюсь, что называется. Первый опыт с ARM. Как только всё более конкретно обрисуется в текущем проекте, тогда и приму решение. Спасибо за советы!
Go to the top of the page
 
+Quote Post

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

 


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


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