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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Программа на ассемблере для ARM
Иван_Я
сообщение Feb 12 2009, 08:18
Сообщение #1


Участник
*

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



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


Местный
***

Группа: Свой
Сообщений: 387
Регистрация: 20-12-06
Из: Obninsk
Пользователь №: 23 719



Возможно.
Время выполнения зависит от тактовой ядра.
(???)
Go to the top of the page
 
+Quote Post
richie
сообщение Feb 12 2009, 08:33
Сообщение #3


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

Группа: Свой
Сообщений: 147
Регистрация: 5-07-04
Из: Обнинск
Пользователь №: 261



Не факт, что написанный человеком ассемблерный код будет эффективнее сгенерированного оптимизирующим многопроходным компилятором.
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Feb 12 2009, 09:02
Сообщение #4


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(Иван_Я @ Feb 12 2009, 11:18) *
В даташитах даже не указывается время выполнения команды...?...

AVR32 != ARM
(это я по поводу темы-близнеца)


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 12 2009, 09:08
Сообщение #5


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(MrYuran @ Feb 12 2009, 12:02) *
AVR32 != ARM
(это я по поводу темы-близнеца)

За кросспостинг вааще надо как-то бить wink.gif

По теме: замечено, что в случае с ARM от любого сишного компилятора оторваться в плане эффективности кода очень тяжело. 
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Feb 12 2009, 09:14
Сообщение #6


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(_Pasha @ Feb 12 2009, 15:08) *
По теме: замечено, что в случае с ARM от любого сишного компилятора оторваться в плане эффективности кода очень тяжело. 

Мягко говоря - неправда. Некоторые алгоритмы (циклы и прочее) можно написать на асме со скоростью исполнения в несколько раз быстрее. Но писать из-за этого всю программу на асме - мазохизм.


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 12 2009, 09:24
Сообщение #7


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(GetSmart @ Feb 12 2009, 12:14) *
Некоторые алгоритмы (циклы и прочее) можно написать на асме со скоростью исполнения в несколько раз быстрее.

Отожрать при этом регистры, коих и так мало.  wacko.gif
Go to the top of the page
 
+Quote Post
GetSmart
сообщение Feb 12 2009, 10:49
Сообщение #8


.
******

Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753



Цитата(_Pasha @ Feb 12 2009, 15:24) *
Отожрать при этом регистры, коих и так мало.  wacko.gif

Сколько жадине не давай, ему всегда мало smile.gif
Неуж то сложно сохранить всё ненужное в стеке, а на выходе восстановить?


--------------------
Заблуждаться - Ваше законное право :-)
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 12 2009, 10:54
Сообщение #9


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(GetSmart @ Feb 12 2009, 13:49) *
Неуж то сложно сохранить всё ненужное в стеке, а на выходе восстановить?

Тогда получится Си smile.gif
Go to the top of the page
 
+Quote Post
Иван_Я
сообщение Feb 12 2009, 15:15
Сообщение #10


Участник
*

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



Цитата(MrYuran @ Feb 12 2009, 12:02) *
AVR32 != ARM
(это я по поводу темы-близнеца)


Это я понял. У меня есть и АРМ и АВР32. и вопросы я поднял по теме. так что сам написал, что они не равны.

по теме: Дело в том, что с АВР8 понятно там есть время такта и все команды привязаны к тактам (в основном 1 к 1). а что в АРМ, что АВР 32 не понятно вообще. и Потом, что касается программы на Си - на ней компилятор создает машиный код, но как посчитать например время выполнения одного цикла ПИД алгоритма? на асе как-то понятно. знаешь сколько тактов выполняется команда и уже можешь оценить время выполнения одного цикла того или иного алгоритма....

может быть у кого есть простейшие примеры для АРМ (АВР32) на языке ассемблера). поделитесь пожалуйста.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Feb 12 2009, 15:27
Сообщение #11


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(Иван_Я @ Feb 12 2009, 19:15) *
но как посчитать например время выполнения одного цикла ПИД алгоритма?


У Вас длительность процесса приближается к интервалу его вызова?
Go to the top of the page
 
+Quote Post
scifi
сообщение Feb 12 2009, 16:40
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(Иван_Я @ Feb 12 2009, 11:18) *
В даташитах даже не указывается время выполнения команды...?...

Не знаю, как другие ARMы, а для ARM7TDMI есть такой документ Technical Reference Manual, в котором есть глава Instruction Cycle timings. Конечно, в отдельно взятом МК надо учитывать, как процессор цепляется к памяти и периферии.

Цитата(Иван_Я @ Feb 12 2009, 18:15) *
Потом, что касается программы на Си - на ней компилятор создает машиный код, но как посчитать например время выполнения одного цикла ПИД алгоритма?

Зачем это считать? Для получения нужной периодичности есть таймеры. Считать циклы - это лишняя головная боль и потенциальное минное поле.
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Feb 12 2009, 17:05
Сообщение #13


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

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



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


Участник
*

Группа: Новичок
Сообщений: 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
sergeeff
сообщение Feb 12 2009, 22:29
Сообщение #15


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

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



А если надо работать в нереальном времени? Шутка.

Никак не пойму, причем здесь выполнение арифметических операций и программирование на ассемблере?

Что такое программирование в реальном времени? Надо обрабатывать высокочастотные процессы? А почему "в учебных целях" нельзя обрабатывать низкочастотные процессы?

Можно реализовать некоторое преобразование на реальном процессоре и оценить, до какой частоты входных сигналов он может реально работать. Чем такой подход "в учебных целях" плох?

А какова частота опроса ADC?
Go to the top of the page
 
+Quote Post

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

 


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


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