Инструменты разработки ARM Cortex-M3?


36

Я планирую перейти на архитектуру NXP Cortex M3, и я немного потерян между существующими инструментами разработки.

Кейл дорог, и я не знаю, стоит ли оно того. Кто-нибудь, кто пробовал какой-то компилятор, может дать какой-нибудь совет?

Я нашел этот компилятор http://www.code-red-tech.com/red-suite-2.php он кажется хорошим и не дорогим. Любой, кто попробовал это или знает об этом, может дать мне больше информации?


Это компилятор, поставляемый с платами LPCXpresso, и использующий gcc с Eclipse IDE. Инструменты Rowley CrossWorks намного лучше.
Леон Хеллер

2
Чем они лучше? Я спрашиваю, потому что у меня есть плата LPCXpresso, и инструменты, кажется, работают хорошо, поэтому мне интересно, как другие инструменты лучше?
Джон Бертон

Разве мы не можем сделать это CW?
Stevenvh

Большинство возможностей должно быть пересмотрено в 2012 году, так как Microsoft Visual Studio 2012 поддерживает ARM как цель первого класса.

Для небольших проектов пробная версия компилятора Keil бесплатна.
Саймон Рихтер

Ответы:


17

В последнее время в свое свободное время я играл с STM32 (также Cortex M3) и использовал дистрибутив CodeSourcery от GCC, который хорошо сработал.

Коллега, который профессионально работал с ARM micros в прошлом, сказал мне, что он удовлетворен набором инструментов IAR, хотя я не знаю, какова стоимость или какова поддержка Cortex.


1
Насколько я могу судить, IAR - это компания, специализирующаяся на компиляторах. Я использую их на работе, и у них есть некоторые льготы и несколько недостатков. Я нахожу их поддержку довольно превосходной, хотя мы используем MSP430, но они, кажется, охватывают каждый процессор, который я смотрю.
Кортук

16

Я использую кросс-компиляторы CodeSourcery (Lite) для Linux для программирования микроконтроллеров TI Stellaris . Они работают с любым Cortex-M3. Они полностью бесплатны, с двоичными файлами для Windows и Linux.

Вот краткий рецепт (Debian / Ubuntu) для установки:

Загрузите набор инструментов (подойдет любая версия, но я использую эту)

Установите Java Runtime Environment (для проклятого установщика)

sudo apt-get install sun-java6-jre ia32-libs

устанавливать

chmod 755 arm-2009q3-68-arm-none-eabi.bin
./arm-2009q3-68-arm-none-eabi.bin -i console

Добавьте кросс-компилятор bin в ваш PATH

echo 'export PATH=$PATH:~/CodeSourcery/Sourcery_G++_Lite/bin/' >> ~/.bashrc 
. ~/.bashrc 

Для загрузки кода и отладки вам понадобится OpenOCD и либо GDB, либо один из графических интерфейсов.

Вам также понадобится адаптер JTAG .


Я также использую инструменты CodeSourcery в одном из моих классов с комплектом разработчика Stellaris LM-3s6965. Наша вики (ссылка на набор инструментов) находится здесь: claymore.engineer.gvsu.edu/egr326/… (см. Также инструкции по установке MacOS X ниже.) В комплект поставки входит ограниченная по времени демонстрация их инструментов с графическим интерфейсом, но команда Линейные инструменты не ограничены.
Кевин Вермеер

9

Я начал использовать один из них (доска для разработчиков MBED). Большим преимуществом для меня было то, что я мог программировать на C или C ++, прямое соединение с USB и удобная онлайн-среда разработки (никакой локальной установки инструмента вообще не требовалось!).

http://mbed.org/

Через пять минут после открытия у меня была примерная мигающая программа («Привет, мир» изгнанного мира), выполняющая следующее:

#include "mbed.h"

DigitalOut myled(LED1);

int main()
{
    while(1)
    {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

Это оно! Выше полная программа!

Он основан на ARM Cortex M3, быстром и большом количестве памяти для встроенных проектов (100 МГц, 256 КБ флэш-памяти и 32 КБ оперативной памяти). У инструментов онлайн-разработки есть очень хорошая библиотека, множество примеров и очень активный форум. Много помощи при подключении устройств к MBED и т. Д.

Несмотря на то, что у меня есть большой опыт работы со встроенными системами (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC и т. Д.), Я все же обнаружил, что эта система очень проста в освоении, имея серьезные возможности.

После первоначальной игры с ним на базовом макете я купил базовую доску у этих парней: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207, Это имеет кучу устройств ввода / вывода (включая миниатюрный OLED и 3-осевой акселерометр). С того же сайта я также купил одну из процессорных плат LCPExpresso, которая является дешевой, с меньшим энергопотреблением и памятью, чем MBED, но идеально подходит для небольших работ (но все же вышибает дерьмо из процессоров PIC / Atmega). Базовая плата поддерживает как LCPExpresso, так и MBED. Приобретая плату процессора LCPExpress, я также получил отладчик JTAG и автономную среду разработки (набор разработчика Code Red на основе GCC / Eclipse). Это намного сложнее, чем онлайновая среда разработки MBED, но это логичное развитие после того, как вы приобрели опыт работы с MBED.

Что касается моей первоначальной идеи, обратите внимание, что контроллер MBED гораздо более эффективен, чем контроллер LPCExpresso, но гораздо проще в использовании и обучении.


Существует также отличный проект Адама Грина gcc4mbed, который позволяет вам компилировать в автономном режиме (за счет большего размера кода): github.com/adamgreen/gcc4mbed
Кевин Чен

9

хороший источник исходного кода, или используйте emdebian. или бросьте свой собственный, это довольно легко, если вам не нужна полная библиотека C или gcc, тогда это все еще выполнимо, но немного сложнее. сначала вам не нужен компилятор, поддерживающий thumb2, thumb будет делать то, что вы ищете для цепочки инструментов, которая вам нравится.

llvm - еще один хороший вариант (используйте clang, а не llvm-gcc !!), я знаю, что рука все время становится лучше, версия 27 генерировала более быстрый код, чем текущий gcc для конкретного теста. Я обнаружил ошибку со стороны большого пальца при работе с эмулятором большого пальца (thumbulator.blogspot.com), которая была быстро исправлена. Лучшая часть про llvm - это по умолчанию кросс-компилятор, никакой дополнительной работы или опыта сборки не требуется. В следующие несколько лет я вижу, как они глубже врезаются в gcc и пропускают gcc для кросс-компиляции / встраивания.

Я однажды попробовал инструмент code-red с платой lpcxpresso, конечный результат - я определенно никогда не использую code-red и спорю о том, стоит ли вносить черный список в lpc. YMMV. Если вам нужно платить за инструмент, я бы пошел с keil только потому, что он был куплен рукой, и частью пакета является компилятор rvct. Конечно, исходный код является платным, если вы не соответствуете ограничениям lite или решили получить поддержку, так как gcc обеспечивает лучшую поддержку из всех компиляторов. Не так давно, когда я смог опробовать их на метапрограммах, а инструменты arm взорвали gcc, насколько качество создаваемого кода. gcc работает вверх и вниз, некоторые версии 3.x производят лучший код, чем 4.x, они, похоже, не улучшаются с каждым выпуском, но они сделали это, или, возможно, исходники кода добавили поддержку thumb2 не так давно, чего не делают версии 3.x / не будет иметь.


If you have to use a pay for tool I would go with keil only because they were bought by arm- Вы пробовали компиляторы Keil? Я не был впечатлен инструментами Keil 8051 по крайней мере. Они чувствуют себя динозаврами по сравнению с соревнованиями на основе GCC или набором LLVM / Clang, ИМХО.
Мортен Дженсен

8

Я использую программное обеспечение Rowley для разработки ARM и MSP430:

http://www.rowley.co.uk

Это отлично Cortex-M3 поддерживается.


1
Я пробую пробную версию и думаю, что это будет мой выбор. это полностью хорошо документировано и не очень дорого (личная лицензия за 150 $)
mba7

Набор инструментов Rowley отличный, а поддержка отличная.
Радиан


5

Я довольно успешно использовал цепочки компилятора / отладки IAR для моей разработки ARM. Они предлагают относительно стабильные инструменты разработки в комплекте со средой Embedded C ++ (что кажется довольно редким). - В зависимости от размера вашей кодовой базы, они также предлагают отличные аппаратные / программные «KickStart Kits» с ограниченным по размеру версиями своих инструментов.


4

IAR отлично, и если вы делаете небольшие проекты, есть бесплатная версия с ограниченным размером кода 32K. Размер обновления, однако, немного дороже, я считаю. Они также содержат множество хороших примеров проектов, обычно по несколько для каждого семейства процессоров.


2
Да, они сильно сократили мою школу, это было все еще в тысячах после снижения цены на 95%.
Кортук

4

Последние пару дней я потратил на то, чтобы полностью настроить инструментальную цепочку CodeSourcery GNU для EFM32G micro на OS X. Это того стоило. По сравнению со многими отладчиками на основе графического интерфейса, которые я пробовал (в основном на основе Eclipse); Makefiles, GCC и GDB - мечта, ставшая реальностью; плюс все это работает с моего терминала Linux или Mac.

Единственная часть, которая отстой - это адаптер J-Link, встроенный в плату. Программа J-Link для Windows и Linux GDBServer является закрытым исходным кодом. Что еще хуже, версия для Linux НАМНОГО дальше. Поэтому для того, чтобы GDB работал, мне нужно запустить образ Windows VMWare, единственная цель которого - запустить GDBServer (потому что Linux не работает).

Да, и в дополнение к тому, что он работает некорректно, сервер GDB на базе Linux от J-Link связывается с 127.0.0.1 и слушает ТОЛЬКО пакеты с этим как dest; так что связываться с iptables и пересылкой нужно для подключения к удаленной машине. Смешной; Сеггер должен собраться.


Я согласен, что jlink - это ужасная проблема для Linux, но я думаю, что вы можете заставить его работать, используя LD_LIBRARY_PATH. Также вы можете исправить проблему с адресом привязки, либо используя SSH forward, либо используя LD_PRELOAD или подобное, чтобы обернуть сетевые вызовы и изменить сетевой адрес. Но жалко, когда с дорогими инструментами труднее работать, чем с дешевыми, такими как ST-LINK, для которых полностью открытые драйверы были перепроектированы.
Крис Страттон

4

Я использую QtCreator и GNU Tools ARM Embedded. Работает хорошо.

Преимущества:

  • Абсолютно бесплатно (и с открытым исходным кодом)
  • QtCreator - это великолепная современная C ++ IDE с завершением рабочего кода, гиперссылками символов, рефакторингом и т. Д.
  • QtCreator поддерживает чистую отладку (да - вы можете графически размещать точки останова, код шага и проверять переменные). (Требуется JTAG или SWD ссылка на ваш MCU, но это было не так сложно, как я думал.)
  • Не на основе Eclipse или Eclipse.

Недостатки:

  • Поддержка Baremetal очень нова, и у меня было немало проблем, которые в конечном итоге были преодолены благодаря превосходной помощи автора в списке рассылки QtCreator.
  • Может быть, немного сложнее настроить, чем Кейл или код красный.

Когда все настроено правильно, я могу щелкнуть, чтобы создать точку останова в моем коде, а затем нажать кнопку «отладка». Он будет компилироваться, мигать, выполняться и останавливаться на точке останова примерно через 5 секунд (и одновременно заставит вас злиться, если вам когда-нибудь придется вернуться в Arduino "IDE").

Я работаю над руководством по настройке этого с другим чипом ARM - nRF51822 на базе Cortex-M0.


5
Возможно, стоит добавить немного больше информации о том, что вам нравится, несколько хороших функций и т. Д., Чтобы сделать ответ более полезным.
PeterJ

Можете ли вы предложить грубую схему ??
Скотт Сейдман


1

Я использую arm-eabi-gcc и прилагаемую к нему цепочку инструментов, установленную с помощью скрипта summon arm . Скрипт устанавливает среду для выполнения голой металлической работы над ARM. Это бесплатный и открытый исходный код, и все это работает надежно для меня. Я также использовал IAR для этого, и, безусловно, лучше, потому что он позволяет вам делать более дружественную отладку и делать вещи, как в IDE, но в целом я чувствую себя более комфортно с gcc, если по какой-то другой причине, потому что я не нужно никому оправдывать расходы.

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.