Иван_Я 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Подскажите пожалуйста возможно ли на ассемблере написать программку для ядра ARM ? В даташитах даже не указывается время выполнения команды...?... (Необходимо создать недорогое, но быстрое приложение. Поэтому нужна программа на ассемблере). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
KAlex 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Возможно. Время выполнения зависит от тактовой ядра. (???) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
richie 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Не факт, что написанный человеком ассемблерный код будет эффективнее сгенерированного оптимизирующим многопроходным компилятором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
MrYuran 29 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба В даташитах даже не указывается время выполнения команды...?... AVR32 != ARM (это я по поводу темы-близнеца) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба AVR32 != ARM (это я по поводу темы-близнеца) За кросспостинг вааще надо как-то бить ;) По теме: замечено, что в случае с ARM от любого сишного компилятора оторваться в плане эффективности кода очень тяжело. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба По теме: замечено, что в случае с ARM от любого сишного компилятора оторваться в плане эффективности кода очень тяжело. Мягко говоря - неправда. Некоторые алгоритмы (циклы и прочее) можно написать на асме со скоростью исполнения в несколько раз быстрее. Но писать из-за этого всю программу на асме - мазохизм. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Некоторые алгоритмы (циклы и прочее) можно написать на асме со скоростью исполнения в несколько раз быстрее. Отожрать при этом регистры, коих и так мало. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
GetSmart 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Отожрать при этом регистры, коих и так мало. Сколько жадине не давай, ему всегда мало :) Неуж то сложно сохранить всё ненужное в стеке, а на выходе восстановить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Неуж то сложно сохранить всё ненужное в стеке, а на выходе восстановить? Тогда получится Си :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Иван_Я 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба AVR32 != ARM (это я по поводу темы-близнеца) Это я понял. У меня есть и АРМ и АВР32. и вопросы я поднял по теме. так что сам написал, что они не равны. по теме: Дело в том, что с АВР8 понятно там есть время такта и все команды привязаны к тактам (в основном 1 к 1). а что в АРМ, что АВР 32 не понятно вообще. и Потом, что касается программы на Си - на ней компилятор создает машиный код, но как посчитать например время выполнения одного цикла ПИД алгоритма? на асе как-то понятно. знаешь сколько тактов выполняется команда и уже можешь оценить время выполнения одного цикла того или иного алгоритма.... может быть у кого есть простейшие примеры для АРМ (АВР32) на языке ассемблера). поделитесь пожалуйста. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_Pasha 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба но как посчитать например время выполнения одного цикла ПИД алгоритма? У Вас длительность процесса приближается к интервалу его вызова? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба В даташитах даже не указывается время выполнения команды...?... Не знаю, как другие ARMы, а для ARM7TDMI есть такой документ Technical Reference Manual, в котором есть глава Instruction Cycle timings. Конечно, в отдельно взятом МК надо учитывать, как процессор цепляется к памяти и периферии. Потом, что касается программы на Си - на ней компилятор создает машиный код, но как посчитать например время выполнения одного цикла ПИД алгоритма? Зачем это считать? Для получения нужной периодичности есть таймеры. Считать циклы - это лишняя головная боль и потенциальное минное поле. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Складывается впечатление, что автор текущей ветки не с той стороны заходит на решение поставленной перед ним задачи. И уж, конечно, подсчеты тактов на выполнение - не вариант, про это неоднократно на форуме говорилось. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Иван_Я 0 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба Складывается впечатление, что автор текущей ветки не с той стороны заходит на решение поставленной перед ним задачи. И уж, конечно, подсчеты тактов на выполнение - не вариант, про это неоднократно на форуме говорилось. Обычно перед созданием программы оценивают возможности процессора. Если стоит задача работы в реальном времени (а у меня все такие задачи), то подсчет тактов очень важен. При управлении векторном есть такое понятие как разложение на dq составляющие. Смотрел в документации на ТМС20хх... там есть пример на ассемблере как это разложение произвести. Но к сожалению нет возможности приобрести отладку для данного проца ( а в наличии есть АРМ LPC и АВР32 распаянный на плате NGW100) (задача реализации в лабораторных условиях и учебных целей). Короче необходимо выполнять в основном арифметические операции, поэтому и требуется ассемблер. У Вас длительность процесса приближается к интервалу его вызова? Да скорее всего так и будет. Просто хочется сделать запас определенный. ВОт этого я и бось - что длительность одного цикла обсчета приблизится к времени отсчета данных АЦП. Причем не обязательно будет использоваться именно ПИД алгоритм, еще есть цель реализовать dq преобразование... вычисление синуса и косинуса.. Поэтому в основном мне и нужен ассемблер. (Я в учебных целях. Есть большое желание реализовать dq преобразование). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sergeeff 1 12 февраля, 2009 Опубликовано 12 февраля, 2009 · Жалоба А если надо работать в нереальном времени? Шутка. Никак не пойму, причем здесь выполнение арифметических операций и программирование на ассемблере? Что такое программирование в реальном времени? Надо обрабатывать высокочастотные процессы? А почему "в учебных целях" нельзя обрабатывать низкочастотные процессы? Можно реализовать некоторое преобразование на реальном процессоре и оценить, до какой частоты входных сигналов он может реально работать. Чем такой подход "в учебных целях" плох? А какова частота опроса ADC? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться