Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как загнать в RAM sam7s библиотечные sin, cos и тд?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Goofy
subj
aaarrr
Если хотите получить высокое быстродействие, то разместите в RAM таблицы.

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

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


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

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

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

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

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


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

Синус и косинус я назвал для примера... Ещё необходимы и обратные им функции.
О варианте с таблицами тоже думал. Скорее всего будет меньшим из зол именно так сделать, раз слинковать в рам те функции столь проблематично
aaarrr
Цитата(Goofy @ Dec 20 2007, 17:14) *
как через scatter тоже ясно.

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

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

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

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


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

sin.o(m_ts.l)

Так выходит эту .l линковать?
aaarrr
Цитата(Goofy @ Dec 20 2007, 19:24) *
либо я чего то недопонял, но у меня в *.map пишет

sin.o(m_ts.l)

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

Да, тогда будет *m_ts.l (*). Я просто на RVDS 2.2 проверял.
Goofy
Всё получилось, большое спасибо! Внёс дополнительно .l овечающий за операции с float, время выполнения процедуры сократирось на 10-15% Это нормально? Или должно быть больше?
gladov
В любом случае после размещения библиотеки в ОЗУ Вы получите большой расход памяти. Так не лучше ли эту память использовать под таблицы? Ведь большого прироста производительности от размещения функций в ОЗУ Вы не получите, а вот скорость выборки значений из таблиц будет в разы выше, чем вычисление "на лету".
aaarrr
Цитата(Goofy @ Dec 20 2007, 22:20) *
Всё получилось, большое спасибо! Внёс дополнительно .l овечающий за операции с float, время выполнения процедуры сократирось на 10-15% Это нормально? Или должно быть больше?

Это нормально. Если нужно поднять производительность более серьёзно, то лучше перевести вычисления в целочисленный формат и использовать таблицы.
Goofy
Да я пока так, играюсь, что называется. Первый опыт с ARM. Как только всё более конкретно обрисуется в текущем проекте, тогда и приму решение. Спасибо за советы!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.