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


36

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

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

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


Це компілятор, що постачається з платами LPCXpresso, і використовує gcc з IDE Eclipse. Інструменти Rowley CrossWorks значно кращі.
Леон Геллер

2
У чому вони кращі? Я запитую, оскільки у мене є плата LPCXpresso, і інструменти, здається, працюють добре, тому мені цікаво, як інші інструменти краще?
Джон Бертон

Чи не можемо ми зробити це КВ?
stevenvh

Більшість можливостей мають бути переглянуті у 2012 році, оскільки Microsoft Visual Studio 2012 підтримує ARM як ціль 1-го класу.

Для невеликих проектів пробна версія компілятора 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

Додайте до Вашого 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 та акселерометр 3axis). З цього ж сайту я також придбав одну з процесорних плат LCPExpresso, яка дешевша, менша потужність / пам'ять, ніж MBED, але ідеально підходить для менших робочих місць (все ще забиває лайно з процесорів PIC / Atmega). Основна плата підтримує як LCPExpresso, так і MBED. Придбання плати процесора LCPExpress також отримало мені приєднаний відладчик JTAG та офлайн-розробник (набір розробників на основі GCC / Eclipse на основі Code Red). Це набагато складніше, ніж онлайн-середовище розробників MBED, але є логічним прогресом після того, як ви набули досвіду з MBED.

З посиланням на мою первісну точку зору, що контролер MBED набагато більш здатний, ніж контролер LPCExpresso, але НЕ набагато простіше у використанні та навчанні.


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

9

code sourcery lite - це добре, або використовувати emdebian. або розкачати свій власний, це досить просто, якщо вам не потрібна повна бібліотека C або gcc, тоді це все ще можливо, але трохи складніше. спочатку вам не потрібен компілятор, здатний на підтримку thumb2, великий палець виконуватиметься під час пошуку потрібної вам ланцюжка інструментів.

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

Я спробував кодовий червоний інструмент один раз з платою lpcxpresso, кінцевим результатом є те, що я точно ніколи не використовую кодовий червоний колір і я обговорюю, чи потрібно також чорний список lpc. ymmv. Якщо вам доведеться використовувати інструмент оплати, я б пішов з keil тільки тому, що вони були куплені за руку, а частина пакета - компілятор rvct. Зрозуміло, вихідний код також є оплатним домом, якщо ви не дотримуєтесь обмежень у програмі чи вирішите отримати підтримку, оскільки gcc має найкращу підтримку з усіх компіляторів. Не так давно, коли мені вдалося спробувати їх металеві засоби та збройові інструменти, підірвали 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, IMHO.
Мортен Йенсен

8

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

http://www.rowley.co.uk

Це чудово. Cortex-M3 підтримується.


1
я намагаюся пробну версію, і я думаю, що це буде моїм вибором. це повністю добре задокументовано та не дуже дорого (особиста ліцензія за 150 $)
mba7

Набір інструментів Роулі чудовий, а підтримка - відмінна.
Радіан


5

Я мав досить хороший успіх, використовуючи компілятори / налагодження IAR для моєї розробки ARM. Вони пропонують відносно стабільні інструменти розробки, в комплекті із вбудованим середовищем C ++ (що здається дещо рідкісним). - Залежно від розміру вашої кодової бази, вони також пропонують чудові апаратні / програмні засоби "KickStart Kits" з обмеженими розмірами коду версій своїх інструментів.


4

IAR є чудовим, і якщо ви робите невеликі проекти, є безкоштовна версія 32K з обмеженим розміром коду. Однак, я вважаю, що оновлення розміру є дещо дорогим. Вони також пропонують безліч хороших прикладних проектів, як правило, кілька для кожної родини процесорів.


2
Так, вони дуже скоротили мою школу, вона була все ще тисячами після зниження ціни на 95%.
Кортук

4

Останні кілька днів я витратив на повне налаштування ланцюжка інструментів CodeSourcery GNU для мікрофона EFM32G на 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 і слухає ТОЛЬКІ пакети з цим як призначення; тому потрібне возитися з iptables та переадресувати, щоб з’єднати його з віддаленої машини. Смішні; Сеггер повинен зібрати свій вчинок разом.


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

4

Я використовую QtCreator та GNU Tools ARM Embedded. Добре працює.

Переваги:

  • Цілком безкоштовно (та з відкритим кодом)
  • QtCreator - це чудовий сучасний ID + C ++ з доповненням робочого коду, гіперпосиланнями символів, рефакторингом тощо.
  • QtCreator підтримує налагодження з чистого металу (так - ви можете графічно розміщувати точки прориву, крок коду та перевіряти змінні). (Потрібна посилання JTAG або SWD до вашого MCU, але це було не так складно, як я думав.)
  • Не засноване на затемненні чи затемненні.

Недоліки:

  • Підтримка Baremetal є дуже новою, і у мене було досить багато проблем - врешті-решт подолавши її за допомогою чудової допомоги автора у списку розсилки QtCreator.
  • Можливо, трохи складніше налаштувати, ніж Keil або червоний код.

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

Я працюю над підручником, як налаштувати це за допомогою іншого мікросхеми ARM - Corp.-M0 на основі nRF51822.


5
Напевно, варто додати трохи детальніше про те, що вам подобається, кілька хороших функцій тощо, щоб зробити відповідь кориснішою.
PeterJ

Чи можете ви запропонувати грубі контури ??
Скотт Сейдман

2

Я використовую інструменти CooCox, він відмінний, але безкоштовний у використанні, не обмежений розміром коду. http://www.coocox.org/


1

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

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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.