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

 
 
> Программа на ассемблере для ARM
Иван_Я
сообщение Feb 12 2009, 08:18
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 8-04-07
Из: Магнитогорск, Россия
Пользователь №: 26 865



Подскажите пожалуйста возможно ли на ассемблере написать программку для ядра ARM ? В даташитах даже не указывается время выполнения команды...?... (Необходимо создать недорогое, но быстрое приложение. Поэтому нужна программа на ассемблере).
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
sergeeff
сообщение Feb 12 2009, 17:05
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Складывается впечатление, что автор текущей ветки не с той стороны заходит на решение поставленной перед ним задачи. И уж, конечно, подсчеты тактов на выполнение - не вариант, про это неоднократно на форуме говорилось.
Go to the top of the page
 
+Quote Post
Иван_Я
сообщение Feb 12 2009, 18:44
Сообщение #3


Участник
*

Группа: Новичок
Сообщений: 23
Регистрация: 8-04-07
Из: Магнитогорск, Россия
Пользователь №: 26 865



Цитата(sergeeff @ Feb 12 2009, 20:05) *
Складывается впечатление, что автор текущей ветки не с той стороны заходит на решение поставленной перед ним задачи. И уж, конечно, подсчеты тактов на выполнение - не вариант, про это неоднократно на форуме говорилось.


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

При управлении векторном есть такое понятие как разложение на dq составляющие. Смотрел в документации на ТМС20хх... там есть пример на ассемблере как это разложение произвести. Но к сожалению нет возможности приобрести отладку для данного проца ( а в наличии есть АРМ LPC и АВР32 распаянный на плате NGW100) (задача реализации в лабораторных условиях и учебных целей).
Короче необходимо выполнять в основном арифметические операции, поэтому и требуется ассемблер.

Цитата(_Pasha @ Feb 12 2009, 18:27) *
У Вас длительность процесса приближается к интервалу его вызова?


Да скорее всего так и будет. Просто хочется сделать запас определенный. ВОт этого я и бось - что длительность одного цикла обсчета приблизится к времени отсчета данных АЦП. Причем не обязательно будет использоваться именно ПИД алгоритм, еще есть цель реализовать dq преобразование... вычисление синуса и косинуса.. Поэтому в основном мне и нужен ассемблер. (Я в учебных целях. Есть большое желание реализовать dq преобразование).
Go to the top of the page
 
+Quote Post
defunct
сообщение Feb 12 2009, 22:51
Сообщение #4


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Иван_Я @ Feb 12 2009, 20:44) *
Да скорее всего так и будет. Просто хочется сделать запас определенный. ВОт этого я и бось - что длительность одного цикла обсчета приблизится к времени отсчета данных АЦП. Причем не обязательно будет использоваться именно ПИД алгоритм, еще есть цель реализовать dq преобразование... вычисление синуса и косинуса.. Поэтому в основном мне и нужен ассемблер. (Я в учебных целях. Есть большое желание реализовать dq преобразование).

Обоснование типа "нужна быстрая математика поэтому - ассемблер" - бредовое.
Вообще-то если нужна быстрая математика брать нужно проц (DSP) где есть реализованные аппаратно требующиеся мат. функции - например проц где синус вычисляется за такт и т.п..
Нет подходящего DSP тогда берется FPGA и реализуется вычислитель, при возможности такой, чтобы всю Вашу формулу считал за такт.

На каком языке пользовать аппаратные возможности - нет разницы, особенно для математики. Скорость упирается в возможности железа.

А про эффективность и удобство языков хорошо сказано здесь:

http://tempo.nnm.ru/kak_prostrelit_sebe_nogu

По-русски это удобство превращается вот во что:
1. или написать
y = sin( x );
и заниматься неделю чем-то полезным, и к тому же быть спокойным, что эта же строчка сразу же заработает на любом другом процессоре.

2. или неделю промудохаться над реализацией одной только этой строчки на АСМ.

Цитата
Потом, что касается программы на Си - на ней компилятор создает машиный код, но как посчитать например время выполнения одного цикла ПИД алгоритма?

Элементарно - с помощью обычного секундомера:

Засечь время, запустить 1 млн циклов, затем разделить полученный интервал времени на млн. - получите время на цикл.
не нравится 1 млн. (тест длится сильно долго или сильно быстро) измените это число.

Помоему это очевидно.

Цитата
Если стоит задача работы в реальном времени (а у меня все такие задачи), то подсчет тактов очень важен.

На самом деле не важен, просто закладывайте проц с запасом.
(если пользоваться правилом - всегда закладывать проц с 50% запасом, то достаточно очень грубой оценки производительности - те самые +/-50%)

Вот Вы говорите у Вас сейчас есть AVR32 (150Mhz) и LPC ARM ~60Mhz.
У первого есть набор DSP инструкций, у второго такого набора нет. Разница по производительности более чем 2.5 раза. А цена - практически одинаковая.
Так какой смысл такты считать?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Иван_Я   Программа на ассемблере для ARM   Feb 12 2009, 08:18
- - KAlex   Возможно. Время выполнения зависит от тактовой ядр...   Feb 12 2009, 08:23
- - richie   Не факт, что написанный человеком ассемблерный код...   Feb 12 2009, 08:33
- - MrYuran   Цитата(Иван_Я @ Feb 12 2009, 11:18) В дат...   Feb 12 2009, 09:02
|- - _Pasha   Цитата(MrYuran @ Feb 12 2009, 12:02) AVR3...   Feb 12 2009, 09:08
||- - GetSmart   Цитата(_Pasha @ Feb 12 2009, 15:08) По те...   Feb 12 2009, 09:14
||- - _Pasha   Цитата(GetSmart @ Feb 12 2009, 12:14) Нек...   Feb 12 2009, 09:24
||- - GetSmart   Цитата(_Pasha @ Feb 12 2009, 15:24) Отожр...   Feb 12 2009, 10:49
||- - _Pasha   Цитата(GetSmart @ Feb 12 2009, 13:49) Неу...   Feb 12 2009, 10:54
|- - Иван_Я   Цитата(MrYuran @ Feb 12 2009, 12:02) AVR3...   Feb 12 2009, 15:15
|- - _Pasha   Цитата(Иван_Я @ Feb 12 2009, 19:15) но ка...   Feb 12 2009, 15:27
- - scifi   Цитата(Иван_Я @ Feb 12 2009, 11:18) В дат...   Feb 12 2009, 16:40
|- - WDT   Цитата(defunct @ Feb 13 2009, 01:51) Элем...   Feb 13 2009, 06:22
|- - defunct   Цитата(WDT @ Feb 13 2009, 08:22) Не факт....   Feb 13 2009, 10:30
- - sergeeff   А если надо работать в нереальном времени? Шутка. ...   Feb 12 2009, 22:29
|- - Иван_Я   Цитата(sergeeff @ Feb 13 2009, 01:29) А е...   Feb 13 2009, 04:28
|- - scifi   Первое суеверие победили, отлично :-) Осталось поб...   Feb 13 2009, 05:49
- - Иван_Я   Я представляю что надо сделать и я об этом писал у...   Feb 13 2009, 07:25
|- - MrYuran   Цитата(Иван_Я @ Feb 13 2009, 10:25) Я пон...   Feb 13 2009, 10:21
- - sergeeff   Вы бы взяли ассемблерный пример от Texas, реализов...   Feb 13 2009, 10:15
- - kons   Ассемблер ARM (не в Thumb варианте) - вообще самый...   Feb 13 2009, 10:54
- - _Pasha   Цитата(kons @ Feb 13 2009, 14:54) архитек...   Feb 13 2009, 11:26


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

 


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


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