LINUX.ORG.RU

ARM Cortex-M3 под Linux


0

3

Хочу разрабатывать под линуксом встраиваемые системы с микроконтроллерами на ARM cortex-m3.

Порекомендуйте, пожалуйста, решение, включающее
1) модель МК
2) IDE
3) библиотеку CMSIS
4) библиотеку драйверов для периферии
5) доки по библиотеке драйверов, Doxygen устроит
6) отладчик и загрузчик ПО в МК

Пока остановился на lpcxpresso со встроенным в плату проприетарным USB-интерфейсом для программирования и отладки, оно есть нативно под линукс, но там, мне показалось, нет библиотеки драйверов для периферии, только CMSIS, или я неправ? Какие есть ещё решения с приемлемой компромиссностью?

Раньше использовал
- avr с avr-binutils + avrplugin + eclipse, очень нравится, но 8бит - это про другое
- avr32 с фирменным проприетарным плагином для eclipse, поддерживающим линукс, тоже годная вещь, но 32-е авры, отличные от uc3a1256, надо искать днём с огнём даже в ДС, а мне хочется шину EBI

Производители IDE для кортексов, похоже, линуксом не особо заморачиваются, кроме code_red, а к открытым решениям не прикрутить фирменных библиотек. Или я что-то упустил? Как вообще народ обычно разработкой под кортексы занимается?

★★★☆☆

Последнее исправление: prischeyadro (всего исправлений: 1)

С ARM знаком недавно. Заказал несколько чипов LPC1343 от NXP. Собрал макетку не сразу - испортил два чипа. Чипы дешевые - по 90р (в отличии от atmega16 - 120-180р), периферия скромная, шьются по USB как mass storage device. Это сильно радует. С библиотеками и высокоуровневой разработкой не разбирался.

exst ★★★★
()

yagarto или sat toolchain - компилеры/линкеры/прочий binutils

IDE - чем именно должна отличаться IDE для кортексов от любой другой сишной? есть эклипс, у него есть поддержка openocd дебаггеров. соотв-но в качестве аппаратного дебаггера любой поддерживаемый openocd

из камней, с которыми приходилось иметь дело - STM32. очень приятная документация и совместимость по периферии и выводам от младших к старшим. есть CMSISы и STM32 StdPeriphLib. и отличная эмбед-операционка ChibiOS.

еще говорят хороши Luminary от TI, но с ними не работал

marvin_yorke ★★★
()

да, загугли еще codesourcery. они IDE какую-то дают на базе эклипса, но за деньги. в бесплатной версии только консольные тулзы, причем под капотом тот же yagarto, емнип

marvin_yorke ★★★
()
Ответ на: комментарий от exst

>шьются по USB как mass storage device. Это сильно радует
Это бутлоадер, вещь полезная, но отладку через JTAG от неё не получить.

yagarto — он разве не вин-онли? Впрочем, если я правильно понимаю, то гнутые утилиты там от CodeSourcery (то есть это как раз у yagarto под капотом CodeSourcery Lite), OpenOCD кроссплатформенный, следовательно, можно собрать самому
sat toolchain — гугл молчит.

Я вот тут подумал — поскольку на CodeSourcery Lite основаны практически все среды разработки, то можно сделать полностью опенсорс-среду, взяв библиотеки под камни от производителя.

Например: kate/kdevelop/eclipse + arm-none-eabi-gcc + arm-none-eabi-gdb + openocd + jlink JTAG. Для среды должны быть плагины gcc и gdb, сейчас это умеют практически все. OpenOCD цепляется к GDB и к программатору/отладчику — например, JLink.

Вопрос — как это дело друг с другом интегрировать? Как писать makefile? Честно говоря, с фирменными средами мне ещё ни разу не приходилось этого делать, мейкфайл генерировался автоматически. В идеале, это всё можно обвешать скриптами, которые будут делать всё автоматически, только я пока немного в растерянности, что нужно делать.

BTW, lpcxpresso@code_red — очень неплохая среда, библиотеки для периферии есть, они поставляются вместе с демопроектами, которые являются лучшей документацией к ним. Под линуксом работает прекрасно, был только один прикол при написании правил для udev, когда в определённый момент при загрузке бинарника lpcxpresso отключается от usb, потом подключается под другим id — надо правильно назначить права.

prischeyadro ★★★☆☆
() автор топика
Ответ на: комментарий от exst

А в чём разрабатывал/компилировал, кстати?

prischeyadro ★★★☆☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.