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

 
 
 
Reply to this topicStart new topic
> Ассемблер и Си, когда кого?
PoDoNoK
сообщение May 4 2007, 12:16
Сообщение #1





Группа: Новичок
Сообщений: 10
Регистрация: 13-10-05
Из: Москва
Пользователь №: 9 584



Здравствуйте! Приходится работать на АДСП 21160 и я чётко не могу понять, когда стоит писать функции на ассемблере, а когда на Си. Как вы для себя определяете, что этот алгоритм оптимальнее по скорости написать на ассемблере, а этот кусок на Си?
Go to the top of the page
 
+Quote Post
fontp
сообщение May 4 2007, 12:37
Сообщение #2


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Вычислительные алгоритмы обработки сигнала или по крайней мере их внутренние циклы обычно пишутся на ассемблере. Всяческая логическая ерунда по организации программы может писаться на С
Как-то так :-) Насколько я помню на всяких 21ххх на С не особо разгуляешься - компилятору маловато регистров общего назначения

Какой из модулей нужно писать на ассемблере в первую очередь, если весь проект на С уже существует, легко оценить в профайлере - тот покажет какую часть производительности ядра поглощает какой модуль
Go to the top of the page
 
+Quote Post
PoDoNoK
сообщение May 7 2007, 05:32
Сообщение #3





Группа: Новичок
Сообщений: 10
Регистрация: 13-10-05
Из: Москва
Пользователь №: 9 584



Цитата(fontp @ May 4 2007, 15:37) *
Вычислительные алгоритмы обработки сигнала или по крайней мере их внутренние циклы обычно пишутся на ассемблере. Всяческая логическая ерунда по организации программы может писаться на С
Как-то так :-) Насколько я помню на всяких 21ххх на С не особо разгуляешься - компилятору маловато регистров общего назначения

Какой из модулей нужно писать на ассемблере в первую очередь, если весь проект на С уже существует, легко оценить в профайлере - тот покажет какую часть производительности ядра поглощает какой модуль


Спасибо огромное! Про Profiling даже не знал! Очень полезная возможность. Век живи - век учись =).
Go to the top of the page
 
+Quote Post
fontp
сообщение May 7 2007, 08:33
Сообщение #4


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(PoDoNoK @ May 7 2007, 09:32) *
Спасибо огромное! Про Profiling даже не знал! Очень полезная возможность. Век живи - век учись =).


:-) RTFM

Вопрос даже в другом - нужно не пренебрегать долбаной документацией

Там в VDSP ещё есть и средства автоматизации деятельности по оптимизации по профилю - и на уровне линкера и на уровне компилятора. Другое дело, что на уровне компилятора profile guided optimization компилятора работает только в симуляторе и полагается на тот тестовый набор данных, который предоставлен. Редко бывает возможным предоставить исчерпывающий набор данных. Кроме того в задачах обработки сигнала реального времени всегда оптимизируется максимальное время вычислений, а не среднее, на что направлена статистическая оптимизация. Получается, что обычно это пустое...
PGO linker автоматизирует, как раз то, что вы желаете - а именно расположение секций в памяти
На сайте analog.com есть описание и примеры использования PGO-линкера. Это Application Note EE-306
Go to the top of the page
 
+Quote Post
PoDoNoK
сообщение May 7 2007, 09:59
Сообщение #5





Группа: Новичок
Сообщений: 10
Регистрация: 13-10-05
Из: Москва
Пользователь №: 9 584



Абсолютно с Вами согласен!
Тут момент немного иной. Я ни в коем случае не пренебрегаю документацией, но как это в жизни всегда происходит - нужно брать быка за рога. Пришлось пересесть с 2189 на 21160. А из-за смены от версии к версии протоколов загрузки, приходилось пользоваться какой то древней версией ВДСП. Мне и сейчас приходится пользоваться ВДСП 2.0 и среду подробнее изучить всё никак не получается, в приоритете ассемблера синтаксис. Но с Вашей подачи, как раз знакомлюсь, за что Вам огромное, человеческое спасибо =)! И за краткое резюме этого профайлера!
Go to the top of the page
 
+Quote Post

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

 


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


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