Добрый вечер! Хотелось бы узнать, какой средой лучше пользоваться для написания программ для ARM на языке ассемблера. Только если это возможно, с режимом отладки (где видно, что сейчас процессор выполняет и видны содержимые регистров). Большое спасибо заранее!
_________________ Не умеешь - не берись, но не взявшись не научишься...
Я пользуюсь IAR ARM. Содержимое регистров можно посмотреть на вкладке View. Только отлаживать прерывания в нем не получается у меня. Ой! На асме... Сорри. Если интересно почитать, выдели пост мышкой.Не советую на асме ARMы прогать С 8битками прокатывает нормально, но с 32биткой сложновато. Времени тратится раза в 4 больше чем на Си, а итог на несколько килобайт меньше кода, чем на Си. Сейчас в ARMах памяти достаточно, чтобы этот запас в несколько килобайт оставить на "огрехи компилятора". К тому же есть оптимизация по размеру кода и по скорости выполнения. Очень удобно в общем. Это раньше каждый байт берегли, сейчас нет смысла, поскольку память быстро дешевеет и все больше и жирнее память в контроллерах.
Stalker46, какой ARM выбрал? На asm-е под ARM не пишут. Максимум - вставки. В ARM-ах ОСи поднимают и фреймворками пользуются. Заходишь на сайт производителя камней, скачиваешь примеры. В примерах должны быть проекты заточенные под конкретные IDE/компиляторы. Выбирай из них.
p.s. прикинь/набросай код на asm инициализации и моргание битом порта...
Пользуюсь Keil. Отладчик там вроде нормальный, все видно. А полностью на ассемблере писать под арм "довольно" сложно. Как уже сказали, инициализация контроллера на порядок сложнее, чем в во всяких восьмибитниках.
Keil. ИМХО, куда удобнее и вменяемее, чем IAR (у последней, например, тот же транслятор ассемблера у меня неадекватно реагировал на какую-то из русских букв в комментариях), и не требует жутких плясок с бубном, чтобы заставить работать, как Eclipse и прочее свободное ПО.
asteroid7
Цитата:
На asm-е под ARM не пишут. Максимум - вставки. В ARM-ах ОСи поднимают и фреймворками пользуются.
На асме можно писать под что угодно, в том числе и под АРМ. В конце концов, в 1960-70-е на асме писались проекты в миллионы строк, ну а уж несколько тысяч или даже десятков тысяч -- это не шибко большая проблема. Целесообразно ли -- это уже другой вопрос, но если речь идёт об освоении микроконтроллера, то как раз лучше на асме: на ЯВУ его толком не почувствуешь.
Furius
Цитата:
Как уже сказали, инициализация контроллера на порядок сложнее, чем в во всяких восьмибитниках
Ну, насчёт порядка Вы загнули, хотя сложней, и существенно. Впрочем, разобраться с этим проблемы не составляет. Со своим первым АРМом -- ATMEL AT91SAM9261 -- я сладил примерно за день (включая установку и настройку ПО), ну а уже с NXP LPC2478 -- за пару часов, хотя фирмы разные, и настройка прилично отличается, т.е. документацию пришлось всё равно читать внимательно.
Содержимое регистров он отслеживает посредственно даже на максимальной оптимизации, а посему регулярно генерирует совершенно ненужные инструкции. Впрочем, я смотрел лишь для интереса (поскольку Си/Си++ ненавижу и пишу на них только под страхом смертной казни -- т.е. практически никогда) и не сравнивал с другими трансляторами, в частности, с кейловским.
Ура ! Я тоже пишу на Сях только если припрут. А так - на ассемблере или на самодельном Форте. Сейчас придется писать для Conexant CX24303, так там тоже ARM core. Так я лучше на него Форт портирую, что уже не раз делал на другие платформы, чем от Си блевать.
Собственно, я понимаю, что Си хорош для АРМ... Но, вам не кажется, что я о другом спрашивал?) Нужна СРЕДА РАЗРАБОТКИ для arm-микроконтроллеров (в частности) at91sam7 на языке ассемблера! Мне надо изучить эти микроконтроллеры, а не писать пока что на них уже готовые программы.
_________________ Не умеешь - не берись, но не взявшись не научишься...
Все перечисленные среды поддерживают не только Си, но и ассемблер. Кейл вроде как "полуофициально" поддерживается самой АРМ (во всяком случае, на странице средств разработки АРМовского сайта будет отсылка на Кейл), но при желании можно работать и в ИАР, и с ГНУсным ассемблером (без среды или разобравшись с Эклипсой)...
Конечно "Кейл", во-первых он уже пренадлежит "АРМ"у, во-вторых там прекрасный отладчик как для эмуляции, так и для "жтаг"-а п.с. в отличии от "АВР"-, "АРМ" для "Си" целево не разрабатывались, и вся изящность программирования его команд является именно "АСМ"-ом, для любителей все-же структурного подхода , "АРМ" компенсрует избыточность компиляторов своей мощей...
Я смотрел, но сразу отверг: транслятор ассемблера в комментариях (!) неадекватно реагирует на некоторые русские буквы, так что от такого ожидать в дальнейшем? Кроме того, он откровенно убог. Поэтому использую КЕИЛ (только ассемблер, который там получше, чем у ИАРа, хотя тоже далеко не фонтан; компоновщик и саму среду с отладчиком; Си не использую) + ГНАТ (транслятор Ады, входящий в состав ГЦЦ).
_________________ Загружая на вход компьютера "мусор", на выходе получим "мусор^32". PS. Не работаю с: Proteus, Multisim, EWB, Micro-Cap... не спрашивайте даже
Забыл сказать- ссылку для скачивания. Там, я понял, описание этой среды разработки. я сейчас качаю вот отсюда http://www.zagsoft.ru/soft/3964-keil-re ... -v412.html пойдет такая? я только начал осваивать МК, поэтому заранее извиняюсь за примитивные вопросы
Keil - мудрено и запутано. Eclipse (+gcc) - вообще мозг сломать можно. IAR - то, что надо. Просто, удобно, без лишних наворотов. Удобный и приятный инструмент. Хорошие демоверсии с ограничением только по коду - даже кряк искать не надо. Думаю даже и для AVR на него перейти... Хотя пока для них использую AVR Studio.
А и правда, для ARM в целом лучше С. Писать полностью на асме слишком утомительно. А чтобы почувствовать железо, достаточно первое время не использовать стандартных библиотек.
Если же до этого опыта работы с МК вообще не было, то да, лучше начать с асма, но какого-нибудь более простого семейства. Классика - AVR, более экзотично, но тоже вполне - MSP430. Для начала "с нуля" ARM не подходит категорически; к ARM надо приходить с чего-то более простого. Это архитектура на вырост.
Цитата:
"АРМ" для "Си" целево не разрабатывались, и вся изящность программирования его команд является именно "АСМ"-ом
Неправда это. Например, Cortex-M3 заточен именно под C.
Цитата:
Так я лучше на него Форт портирую
О, мосье знает толк в извращениях!
_________________ Разница между теорией и практикой на практике гораздо больше, чем в теории.
Keil - мудрено и запутано. Eclipse (+gcc) - вообще мозг сломать можно. IAR - то, что надо. Просто, удобно, без лишних наворотов. Удобный и приятный инструмент. Хорошие демоверсии с ограничением только по коду - даже кряк искать не надо. Думаю даже и для AVR на него перейти... Хотя пока для них использую AVR Studio.
С эклипсой да, пляски те ещё... Но вот что у Вас с кейлом не сложилось, понять не могу: всё просто, заработало сразу... Бесплатная версия тоже есть, отличается от платной лишь объёмом кода (до 32 Кбайт). Понятно, что и кряки без проблем находятся, но это уже другая тема
Цитата:
А и правда, для ARM в целом лучше С. Писать полностью на асме слишком утомительно. А чтобы почувствовать железо, достаточно первое время не использовать стандартных библиотек.
Ну, я для применения в наших агрегатах пишу свою операционку на асме. По словам тех, кто ковырялся с другими типа ОСРВ, я уже в целом обошёл по функционалу и FreeRTOS, и всякие коммерческие (вроде той же RTX или как её, что с кейлом идёт), но их я даже не рассматривал: они крайне убоги по функционалу, а я стремлюсь в конечном итоге сделать ядро (подчеркну: именно ядро, а не всю систему вообще), по функциональности не уступающее линуху/винде, но при этом остающееся достаточно лёгким и быстрым, подходящим для задач реального времени. Вот прикладные программы, а также системные, но режима пользователя, а не режима ядра, писаться будут на Аде, там на асме действительно замучаешься. Си не использую ни в каком виде, разве что если быстро надо что-то попробовать по готовым примерам, а такое крайне редко бывает: обычно проще разобраться по документации, чем по быдлокоду в этих примерах...
Цитата:
Если же до этого опыта работы с МК вообще не было, то да, лучше начать с асма, но какого-нибудь более простого семейства. Классика - AVR, более экзотично, но тоже вполне - MSP430. Для начала "с нуля" ARM не подходит категорически; к ARM надо приходить с чего-то более простого. Это архитектура на вырост.
Ну, если у человека есть терпение и настойчивость, можно и с АРМа, но там надо намного больше понять до того, как начнёт получаться что-то практическое. Сразу сесть и начать, вообще говоря, не получится. Ну или получится, но из серии "Освой Дельфи за 24 часа": натыкать-то кнопочки научиться можно, а вот понимать, как вся эта хрень работает...
Цитата:
Неправда это. Например, Cortex-M3 заточен именно под C.
Вот это как раз неправда. Нет там никакой заточки ни под что конкретное. Просто, в отличие от "настоящих" АРМов, у Кортех-М при сбросе из заранее заданных ячеек памяти грузятся указатель стека и адрес точки входа, в результате чего в простых проектах можно всё написать на языке высокого уровня, вообще без ассемблера. Ну а то, что этим языком в 99% случаев является Си, не означает ещё, что процессор под Си заточен.
Карма: 26
Рейтинг сообщений: 108
Зарегистрирован: Чт ноя 04, 2010 01:56:36 Сообщений: 7439 Откуда: г. Москва
Рейтинг сообщения:0
Эклипс - это жутко неповоротливое и тяжелое аморфное нечто подо все сразу, но ни под что конкретно неудобное. аналогично с GCC - компиляторы под все сразу, но с оптимизацией под чтото конкретное - большие вопросы. Keil какой то игрушечный - шустрое начало по заранее проложенным рельсам, но шаг в сторону считается побегом - никаких настроек. IAR по интерфейсу среды разработчика где то в конце 90х годов застрял, но привыкнуть и не очень страдать можно. Но настройкам, гибкости, эффективности компилятора - видимо лучший, причем с приличным отрывом.
Так что порекомендовал бы эклипс-гцц фанатам опенсоурс и прочих горепингвиней, Keil начинающим, IAR людям с опытом и хорошим пониманием вопроса.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения