Перейти к содержанию
    

Программа на ассемблере для ARM

Подскажите пожалуйста возможно ли на ассемблере написать программку для ядра ARM ? В даташитах даже не указывается время выполнения команды...?... (Необходимо создать недорогое, но быстрое приложение. Поэтому нужна программа на ассемблере).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не факт, что написанный человеком ассемблерный код будет эффективнее сгенерированного оптимизирующим многопроходным компилятором.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В даташитах даже не указывается время выполнения команды...?...

AVR32 != ARM

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AVR32 != ARM

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

За кросспостинг вааще надо как-то бить ;)

 

По теме: замечено, что в случае с ARM от любого сишного компилятора оторваться в плане эффективности кода очень тяжело. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По теме: замечено, что в случае с ARM от любого сишного компилятора оторваться в плане эффективности кода очень тяжело. 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Отожрать при этом регистры, коих и так мало.  :wacko:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отожрать при этом регистры, коих и так мало.  :wacko:

Сколько жадине не давай, ему всегда мало :)

Неуж то сложно сохранить всё ненужное в стеке, а на выходе восстановить?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Неуж то сложно сохранить всё ненужное в стеке, а на выходе восстановить?

Тогда получится Си :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AVR32 != ARM

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

 

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

 

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

 

может быть у кого есть простейшие примеры для АРМ (АВР32) на языке ассемблера). поделитесь пожалуйста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

но как посчитать например время выполнения одного цикла ПИД алгоритма?

 

У Вас длительность процесса приближается к интервалу его вызова?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В даташитах даже не указывается время выполнения команды...?...

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

 

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

Зачем это считать? Для получения нужной периодичности есть таймеры. Считать циклы - это лишняя головная боль и потенциальное минное поле.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Складывается впечатление, что автор текущей ветки не с той стороны заходит на решение поставленной перед ним задачи. И уж, конечно, подсчеты тактов на выполнение - не вариант, про это неоднократно на форуме говорилось.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Складывается впечатление, что автор текущей ветки не с той стороны заходит на решение поставленной перед ним задачи. И уж, конечно, подсчеты тактов на выполнение - не вариант, про это неоднократно на форуме говорилось.

 

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

 

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

Короче необходимо выполнять в основном арифметические операции, поэтому и требуется ассемблер.

 

У Вас длительность процесса приближается к интервалу его вызова?

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

 

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

 

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

 

А какова частота опроса ADC?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...