Программирование ARM. Eclipse, Keil,IAR,CooCox - всё сюда.

Статус: Offline
Реєстрація: 17.08.2005
Повідом.: 49007
Программирование ARM. Eclipse, Keil,IAR,CooCox - всё сюда.

Поскольку я активно перехожу на ARM - пытаюсь сразу подружиться со всем инструментарием, который доступен и используется.

Насчитал используемых IDE разной степени глючности в общем случае аж 3 (может кто и больше юзает.

1. IAR - старичёк со многими нелюбимым IDE, но отличным компилятором, кучей екзамплов и т.д.

2. Keil - ввёл меня в когнитивный диссонанс. При том, что я выбираю камень в визарде, оно само подтягивает все нужные инклуды и драйвера, "но... Он любит вас!"(С)Карлин ВСЁ РАВНО РУКАМИ надо показывать. ПЗДЦ. Долго тупил как заставить его дружить с J-Link - оказалось надо просто показать 2 раза. 1й - выбрать в списке чем дебажу, 2 - показать в папке проекта "ах куда же я положил драйвер"(С)забывчивый Keil.

Верхние 2 - платные.
Eclipse - прородитель и сен-сей всякой фришной поебени.
На его базе сделаны CooCox и некий монстр от Olimex (да, Olimex перебрали еклипс под свои борды. На вскидку - не менее вздроченный, чем сам оригинальный еклипс, что не странно).

____________________________________________________

Впечатления от IAR - ни каких. То есть - стартовал и не заметил. Причем было это лет 5 назад и дебажилось виглером.
Взял екзампл от олимекса на какую-то из плат, выкинул лишнее - получилась рыба с готовыми библиотеками всей периферии.
В общем - Plug And Prei.

Впечатление от Keil - как от шизофреника. Эдакий дедушка профессор, крутой, дорогой, но... с маразмом.
Тем не менее - проект откомпилился и дебажится. Хотя понять чего ему было надо - было непросто. (Ну не привык я, что коммерческому продукту, в котором есть визард и он даже работает, надо показывать куда он, суко, сам свои файлы запихал).

Eclipse - вот тут-то начинается самое весёлое. Сам еклипс компилит, но совершенно не хочет дружить с J-Link-ом, хотя его поддержку туда совсем недавно вернули.
CooCox на базе еклипса - не компилит вообще. 2 из трёх багов выловил на просторах интернета и оба они связаны либо с повторным объявлением в CooCox-овских инклудах, либо с тупняком в них же.
Хотя у IDE есть свой визард, который неплохо сам подтягивает, но штук 5 несмертельных варнингов о том, что что-то 2 раза объявлено - присутствуют.

Я посмотрел на это и думаю, что не поддержу этот проект не то что донатом, но ещё и матюков могу написать.

Eclipse for Olimex Development Suite - сразу после создания пустого проекта ругнулся
Description Resource Path Location Type
make: *** Нет правила для сборки цели `all'. Останов. Olimex2 C/C++ Problem

Description Resource Path Location Type
make: *** Нет правила для сборки цели `all'. Останов. TestOlimex_v1 C/C++ Problem

Чем развлёк, напугал, ввёл в ступор - одновременно.


___________________________________________

Я в раздумьях... Из всего многообразия есть платное и Eclipse, не дружащий с J-Tagom.
Взял бы IAR и не парился, но так как я хочу положить что-то на SourceForge - хотелось бы использовать всёж опенсорсную среду.
____________________________________________

Итого - кто уже дружил Eclipse с J-Link?

P.S. Ну и вообще - давайте про армьё сюда писать, а-то всё как-то получилось разбросанным по разным темом, если и упоминалось.
 
1. IAR - старичёк со многими нелюбимым IDE, но отличным компилятором, кучей екзамплов и т.д.
Вот только линкер...
"Не знаю почему индусы решили усложнить нам жизнь..."(с)

Хотя я таки использую его так как поддерживает ВСЕ( именно большими буквами). Начинал с CooCox, но быстро вляпался заюзав неподдерживаемый камень.
 
Вот только линкер...
"Не знаю почему индусы решили усложнить нам жизнь..."(с)

Хотя я таки использую его так как поддерживает ВСЕ( именно большими буквами). Начинал с CooCox, но быстро вляпался заюзав неподдерживаемый камень.

Ну дык платный он... Сам бы юзал, тем более, что работаю с широко применяемым и всеми поддерживаемым STM32F103. К стати, если кокоса вообще удалось запустить - неподдерживаемый камени приаттачить из еклипса или кейла не получилось? По идее должен дружить. Хидеры и флэшмапы вроде везде сишные, или я ошибаюсь?
 
CrossWorks забыли
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
 
Хидеры и флэшмапы вроде везде сишные, или я ошибаюсь?
Теоретически можно попробовать, но не хочется же шаманить, и так каждый раз.
Хочется работать нормально через стандартные меню и средства.

ф103 конечно в коксе лучше ибо проще.
Хотя после продвинутых иде для шарпа и явы трудно писать на си, очень трудно...
 
Теоретически можно попробовать, но не хочется же шаманить, и так каждый раз.
Хочется работать нормально через стандартные меню и средства.

ф103 конечно в коксе лучше ибо проще.
Хотя после продвинутых иде для шарпа и явы трудно писать на си, очень трудно...

Дооо. Даже атмел перестал выделываться и стянул оболочку с 2010 визуалстудии, которую доблестно и прикрутил к своим компиляторам :)
Теперь атмел-студия имеет дополнение синтаксиса и прочие приятные плюшки :)

Только не пойму связи продвинутых IDE с трудностями писания на чистом С :) Оно ж не от IDE зависит. Тот же еклипс, как IDE - неплох. Подсвечивает, группирует, дерево показывает и т.д. Тольк приходится ипатсо, чтобы заработало, а так ничего :)

CrossWorks забыли
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Я им не пользовался.
Если ты юзал - опиши впечатления- я добавлю в стартпост :)
 
Только не пойму связи продвинутых IDE с трудностями писания на чистом С Оно ж не от IDE зависит. Тот же еклипс, как IDE - неплох. Подсвечивает, группирует, дерево показывает и т.д. Тольк приходится ипатсо, чтобы заработало, а так ничего
Ну тут на саомм деле имелись ввиду плюшки ИДЕ для удобства написания кода, а не язык и его приятные дополнения. Ну например анализ зон видимости элементов и их типов для их автоподстановки.
 
Касательно бесплатных средств разработки есть древний опус "Using Open Source Tools for AT91SAM7S Cross Development" в котором очень подробно описано как все это делать бесплатно.
Кроме того, был отличный компилятор CodeSourcery, который все еще вроде как распрострняется бесплатно в версии лайт. Он легко интегрируется с Eclipse.
И еще на сайте Macraigor есть простое описание как наладить open tools хоть и с уклоном в их детище, но вполне универсальное:
Тільки зареєстровані користувачі бачать весь контент у цьому розділі


Но вообще, многое зависит от того, какой из АРМов выбирать. Бесплатный PIC32 не уступает АРМ7 ни в чем, а АРМ9 и больше имеет смысл только если использовать Линукс или производить страшные real-time расчеты.
 
Ну тут на саомм деле имелись ввиду плюшки ИДЕ для удобства написания кода, а не язык и его приятные дополнения. Ну например анализ зон видимости элементов и их типов для их автоподстановки.
Еклипс, как раз, удобством по лучше IAR и Keil, не умеющих даже скобки закрывать.

Анализ зон видимости, видимо, приятная шняга, но не понимаю как он облегчит жизнь. Если проект влазит в фэш арма - очень трудно забыть, что ты вызываешь метод функции, находящейся в другом файле.
Тут решает систематизированный подход, а не подсказка компилятора.
*.C+*.h на каждый объект виртуализации, если объект можно выделить. Флэшки максимум 128к - не космос.

Касательно бесплатных средств разработки есть древний опус "Using Open Source Tools for AT91SAM7S Cross Development" в котором очень подробно описано как все это делать бесплатно.
Кроме того, был отличный компилятор CodeSourcery, который все еще вроде как распрострняется бесплатно в версии лайт. Он легко интегрируется с Eclipse.
И еще на сайте Macraigor есть простое описание как наладить open tools хоть и с уклоном в их детище, но вполне универсальное:
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
Надо зазырить.
А чем кодесоурцери лучше других? И чем у него лайт отличается от остальных?

Но вообще, многое зависит от того, какой из АРМов выбирать. Бесплатный PIC32 не уступает АРМ7 ни в чем, а АРМ9 и больше имеет смысл только если использовать Линукс или производить страшные real-time расчеты.
По соотношению цена/качество STM пока всех делает.
Если не лезть в "страшные real-time расчеты", то его 72МГц хватает на многое.
Для страшного многие используют DSP и плиски (для страшно-быстрого).
Я вижу ARM как замену 8-ми биток в средствах автоматизации и роботах. На это его сил хватает с головой. Даже ARM7 хватает, но он уже отходит. Cortex гораздо приятнее.
 
По-настоящему перспективным и интересным могло быть сразу попробоватх soft-core processor. Вкратце это процессоры внутри FPGA, т.е. сначала загружается VHDL (или verilog) код для процессора, а потом уже С код для программы. Как ни странно, по цене они сопоставимы с недорогими микроконтроллерами, а некоторые даже распространяются с бесплатными IDE (ACTEL, например поддерживает Cortex). Одно из их бесспорных преимуществ -можно добавлять любой (насколько хватит места) набор периферийных модулей или логических устройств в том же чипе. Если вы все еще не пределились, стотит добавитх в список.
 
По-настоящему перспективным и интересным могло быть сразу попробоватх soft-core processor. Вкратце это процессоры внутри FPGA, т.е. сначала загружается VHDL (или verilog) код для процессора, а потом уже С код для программы. Как ни странно, по цене они сопоставимы с недорогими микроконтроллерами, а некоторые даже распространяются с бесплатными IDE (ACTEL, например поддерживает Cortex). Одно из их бесспорных преимуществ -можно добавлять любой (насколько хватит места) набор периферийных модулей или логических устройств в том же чипе. Если вы все еще не пределились, стотит добавитх в список.

Пока это для отдаленного будущего.
В принципе - задумка хорошая, продавать один унифицированный камень, а потом кто на чем привык писать - тот то из него и прошивает, а потом под него пишет.
Нехватает только массовой рекламы таких решений :) Ну и интернета, пестрящего екзамплами. А-то как показывает практика - стартонуть на бесплатной IDE по мануалам - не так-то и просто. Они все корявые и требуют напильника. Плюс - добавляется ещё один программатор, что для предприятия, в принципе, фигня, а вот для одиночки-любителя - иногда проблема. Тем более - для начинающих.

P.S. Но я верю, что когда-нибудь именно так и будет выглядеть элементная база: программируемые матрицы и всё. Потом делай из неё что угодно, хоть проц, хоть всю логику одним чипом, хоть и то и то вместе.
 
P.S. Но я верю, что когда-нибудь именно так и будет выглядеть элементная база: программируемые матрицы и всё. Потом делай из неё что угодно, хоть проц, хоть всю логику одним чипом, хоть и то и то вместе.
Когда-то уже так и выглядело, только проволочками перевязывай :)
 
А вот эти смотрели?

Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Тільки зареєстровані користувачі бачать весь контент у цьому розділі
 
А вот эти смотрели?

Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Неа, я пока воюю с еклипсом. Не пойму в чем кривизна, но не работает связка.
Возможно срутся меж собой 3 еклипса, так как все, и кукос и олимекс, суть - еклипс. Щас попробую поо удалять лишние и настраивать по одному.

______________________________________-


ЫЫЫЫЫЫЫЫЫЫЫЫЫЫ
Фак мой моцк.
Как заставить еклипс ВООБЩЕ работать.
Он задолбал уже

23:46:51 **** Incremental Build of configuration Debug for project testEclipseCpp ****
make all
Building target: testEclipseCpp.elf
Invoking: Cross ARM C++ Linker
arm-none-eabi-g++ -mcpu=cortex-m3 -mthumb -mthumb-interwork -mbig-endian -Os -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -g3 -ggdb -p -pg -T mem.ld -T libs.ld -T sections.ld -nostartfiles -Xlinker --gc-sections -L"../ldscripts" -Wl,-Map,"testEclipseCpp.map" -o "testEclipseCpp.elf" ./src/main.o ./libs/misc/src/_sbrk.o ./libs/misc/src/_write.o ./libs/misc/src/trace_impl.o ./libs/StdPeriph/src/misc.o ./libs/StdPeriph/src/stm32f10x_adc.o ./libs/StdPeriph/src/stm32f10x_bkp.o ./libs/StdPeriph/src/stm32f10x_can.o ./libs/StdPeriph/src/stm32f10x_cec.o ./libs/StdPeriph/src/stm32f10x_crc.o ./libs/StdPeriph/src/stm32f10x_dac.o ./libs/StdPeriph/src/stm32f10x_dbgmcu.o ./libs/StdPeriph/src/stm32f10x_dma.o ./libs/StdPeriph/src/stm32f10x_exti.o ./libs/StdPeriph/src/stm32f10x_flash.o ./libs/StdPeriph/src/stm32f10x_fsmc.o ./libs/StdPeriph/src/stm32f10x_gpio.o ./libs/StdPeriph/src/stm32f10x_i2c.o ./libs/StdPeriph/src/stm32f10x_iwdg.o ./libs/StdPeriph/src/stm32f10x_pwr.o ./libs/StdPeriph/src/stm32f10x_rcc.o ./libs/StdPeriph/src/stm32f10x_rtc.o ./libs/StdPeriph/src/stm32f10x_sdio.o ./libs/StdPeriph/src/stm32f10x_spi.o ./libs/StdPeriph/src/stm32f10x_tim.o ./libs/StdPeriph/src/stm32f10x_usart.o ./libs/StdPeriph/src/stm32f10x_wwdg.o ./libs/CMSIS/src/core_cm3.o ./libs/CMSIS/src/startup_cm.o ./libs/CMSIS/src/startup_stm32f10x.o ./libs/CMSIS/src/system_stm32f10x.o ./libs/CMSIS/src/vectors_stm32f10x.o
c:/gtaemb/4_8_2013q4/bin/../lib/gcc/arm-none-eabi/4.8.3/../../../../arm-none-eabi/bin/ld.exe: cannot find -lc_p-lc_p
collect2.exe: error: ld returned 1 exit status
make: *** [testEclipseCpp.elf] Ошибка 1

23:46:52 Build Finished (took 1s.125ms)

Где-то есть нормальный мануал по его настройке и прикручиванию к нему ништяков? Хоть на каком-нибудь языке...

Нашел, что
The problem probably comes from the space in your linker paths. General rule of thumb on Windows: no spaces in paths, they’re evil. Even when quoting them properly, they can be problematic.

So you have two options there: – Reinstall your dependencies in folders without spaces – Use 8.3 names (you can get them using dir /x in a cmd prompt)
Переставил в корень С, удалив в путях все пробелы.
Та же херня.

/../arm-none-eabi/bin/ld.exe: cannot find -lc_p-lc_p
Это кто чего найти не может?

Ведь простой же прожект.
#include "stm32f10x.h"
//#include <stdlib.h>



// ----------------------------------------------------------------------------

int main (void)
{


while (1)
{

}

}
только опенсорсная среда способна не скомпилировать это :D
 
Так а почему не заюзать любую "оболочку" того еклипса, которых тысячи?
 
Так а почему не заюзать любую "оболочку" того еклипса, которых тысячи?

Эммм... это и есть оболочка того еклипса.
А вот компилятор с линкером туда прикрычиваться в паре ни как не хотят. Ну или хотят, но чего-то не находят.

P.S. Любая оболочка того еклипса у меня глючит. И какос и олимекс глючат. По разому, но глючат.

Это линкер ругается,не может найти имя -lc_p-lc_p.

Это была метафора. Линкер - там написано :) Что за херь "-lc_p-lc_p." вообще такая?

Гугль впадает в глухое недоумение при поиске -lс
 
Ну кокс у меня нормально работает. Никаких проблем никогда не было.

Правда сейчас я ИАР Юзаю, но ввиду обновления недавнего( в котором наконец поддержка кучки нужных процом появилась) думаю обратно на кокс свалю.
 
а на makefile можно посмотреть ?
 
Назад
Зверху Знизу