|
|
|
Eclipse + GCC для ARM, Среда разработки для ARM, причем бесплатная... |
|
|
|
Oct 26 2007, 05:47
|
Частый гость
Группа: Новичок
Сообщений: 81
Регистрация: 19-04-07
Пользователь №: 27 167
|
Цитата(etoja @ Oct 26 2007, 10:38) Оба есть в местных закромах, так что на счёт цен не надо смешить народ. Зачем подбиваете людей воровать? Они может новую жизнь начинают.
|
|
|
|
|
Oct 26 2007, 06:32
|
Местный
Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382
|
Цитата(etoja @ Oct 26 2007, 11:45) Вот обсуждение этого вопроса. Проблеме уже больше двух лет и никто её не решает, поскольку за GNU проекты никто не отвечает. А зачем вложение в PDF? Я не сталкивался с такой проблемой. Все обработчики объявлены naked и использую Код portENTER_SWITCHING_ISR() portEXIT_SWITCHING_ISR() Проект под FreeRTOS
|
|
|
|
|
Oct 26 2007, 08:24
|
Частый гость
Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343
|
Цитата(etoja @ Oct 26 2007, 14:38) В GCC некорректно работает обработчик прерывания IRQ. До какой версии? Еще не проверял, но это было в версии 4.1.2, сейчас стабильная 4.2.2, в работе 4.3. Цитата(etoja @ Oct 26 2007, 14:38) Для быстрой разработки программ используйте KEIL, а для профессиональной работы - компилятор Green Hills. Оба есть в местных закромах, так что на счёт цен не надо смешить народ. Ага. Так вот. Мы не собираемся смешить народ. Мы хотим научиться использовать именно _бесплатную_ среду (оболочка, асм+компилер+линкер, симулятор, интерфейс эмулятора, кой можно собрать на коленке, и кой будет работать и в вынь, и в линь - на FT2232), а не _ворованную_, как это есть сейчас. И попытаемся помочь другим таким же щепетильным. Мне, например, это не нравится. Потому и баламучу тему. 2 sleo2000: предлагаю работать на свежих утилитах. Мои версии: binutils-2.18 gcc-4.2.2 gdb-6.7 eclipse в понедельник обновлю до 3.3.1, пока 3.3.0 ve-1.2M3 эти два пока не обновлялись - на хомсайте валяются эти версии: zylincdt4.0-20070830 embeddedcdt4.0-20070830 Еще что-то на работе было, не помню. ява 6.2, вышла 6.3. Можно обновить, но тоже в понедельник - там за трафик не ругаются. Что еще надо - добавляй.
|
|
|
|
|
Oct 26 2007, 09:26
|
Местный
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035
|
Цитата(etoja @ Oct 26 2007, 07:38) В GCC некорректно работает обработчик прерывания IRQ. Для быстрой разработки программ используйте KEIL, а для профессиональной работы - компилятор Green Hills. Оба есть в местных закромах, так что на счёт цен не надо смешить народ. А если заказчик требует щепетильности при использовании ПО и соблюдению всех лицензий ... Так что ворованное не прокатит. Пока что связке gcc+eclipse+gdb не вижу альтернативу. Да и переход с iar на эту связку прошёл довольно безболезненно, благодаря James Lynch и его докам. З.Ы. ещё гигантский плюс в том, что в одной IDE проекты для разных платформ можно реализовывать. До этого приходилось два iarа держать на компе для arm и для avr.
|
|
|
|
|
Oct 26 2007, 10:22
|
Участник
Группа: Новичок
Сообщений: 30
Регистрация: 16-12-05
Пользователь №: 12 295
|
Цитата 2 Puzan: не могли бы вы выложить рекомендации по настройке среды с нуля В принципе ничего сложного нет. Компилируем binutils, gcc (с опцией --without-headers, нужен для того, чтобы им скомпилить newlib), newlib и снова gcc (уже полностью, с поддержкой newlib). При этом ставим необходимые опции для целевой платформы (для ARM это --target=arm-elf --enable-interwork --enable-multilib). Всё, можно компилировать программки. Чтобы компилятор не использовал инициализацию от newlib (например crt0), в опциях линкера ставим -nostartfiles -nostdlib и пишем свой инициализирующий код. Чтобы при этом использовать функции из newlib, добавляем с список объектных файлов libc.a. Вот как сделал я (кусок Makefile'a): Код CFLAGS = $(FLAGS) -mcpu=$(MCU) -mtune=$(MCU) -march=$(CPUARCH) $(DEBUG) $(THUMB_IW) \ -Wall -std=gnu99 -O$(OPTLEVEL) $(INCLUDES) LDFLAGS = -nostartfiles -nostdlib -T lpc2148_rom.ld LIBGCC = `$(CC) $(CFLAGS) $(THUMB) -print-libgcc-file-name` LIBDIR = /opt/armgcc/arm-elf/lib/`$(CC) $(CFLAGS) -print-multi-directory` LIBC = $(LIBDIR)/libc.a
...
$(ELF) : $(OBJS) $(OBJS32) $(OBJSAS) @echo $(MSG_LINKING) $@ $(LD) -Map $(MAP) --cref $(LDFLAGS) -o $@ $(OBJALL) $(LIBGCC) $(LIBC) @echo $(MSG_SIZE) $(OBJSIZE) $@
$(OBJS) : %.o : %.c @echo $(MSG_COMPILING) $< $(CC) -c $(CFLAGS) $(THUMB) -o $@ $< ... а вообще, в интернете масса примеров и готовых тулчейнов, в которых можно посмотреть, как это делается. Эклипс настраивается, как и на системный gcc. Все-таки gcc - он и в африке gcc. Использую и отладчик (OpenOCD) и симулятор (skyeye), правда для nxp21xx переферию он не эмулирует, по этому применение довольно ограниченное. Кстати, Zylin Embedded CDT не использовал. Надо попробовать. А вообще, говорят, что gcc во многих случаях делает более быстрый и компактный код, чем keil или iar. Я сам не проверял, но вот люди, типа проверили: ftp://www.raisonance.com/STR7/Benchmark/A...C-Benchmark.pdf (обсуждалось когда-то на этом форуме).
|
|
|
|
|
Oct 26 2007, 18:24
|
Гуру
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244
|
Цитата(Puzan @ Oct 26 2007, 13:22) но вот люди, типа проверили... Дела давно минувших дней. Давайте оставим и отсутствие RVCT (явно "намеряли" они там такого, что и возразить на требование ARM убрать сии "результаты" и возразить было нечего ), и минималистичные упоминания о методике и вообще всю эту проверку на их совести. Проверять нужно исключительно самому, со знанием дела, и на свежих релизах компиляторов.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Oct 27 2007, 06:31
|
Участник
Группа: Новичок
Сообщений: 30
Регистрация: 16-12-05
Пользователь №: 12 295
|
Цитата(etoja @ Oct 26 2007, 17:44) Вопрос к LEEN:
Печатные платы вы чем разводите? Сколько заплатили за САПР? На каждого пользователя лицензия есть или на всех инженеров одна? Микрософт офис на вашем компьютере тоже официально куплен? Хоть вопрос и не мне (к тому-же и оффтоп), но тоже хочется ответить. Мы в нашей организации платы разводим в KiCAD'е, который GPL, и соответственно денег не стоит. Когда есть свободное время, посильно участвуем в разработке - это наш вклад. Микрософт офис тоже не используем - для него давно есть замена в лице OpenOffice, который давно уже в большинстве случаем обогнал MSOffice и по функционалу и по удобству. А вместо Windows используем Linux, что тоже дешевле Цитата(zltigo @ Oct 26 2007, 22:24) Дела давно минувших дней. Давайте оставим и отсутствие RVCT (явно "намеряли" они там такого, что и возразить на требование ARM убрать сии "результаты" и возразить было нечего ), и минималистичные упоминания о методике и вообще всю эту проверку на их совести. Проверять нужно исключительно самому, со знанием дела, и на свежих релизах компиляторов. Тестировал ли кто нибудь (желательно непредвзято) GCC vs RVCT на более-менее комплексных тестах? Интересно узнать результат.
|
|
|
|
|
Oct 27 2007, 10:19
|
Гуру
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244
|
Цитата(klen @ Oct 27 2007, 11:54) с какими библами??? Естественно БЕЗ чего-либо библиотечного в подвергавшихся исследованию местах. Цитата а "комплексные" тесты к компиллеру никаких отношений не имели с роду, к среде разработки ДА!!! Ну перегибать палку не надо - в "С" слишком много на библиотеках, дабы не обращать на это внимание и расуждать о "чистом". С библиотеками ситуация будет похуже для GCC, поскольку при всем их многообразии я, кажется, не наблюдал для GCC библиотек заточенных под ARM и частично писанных на ASM. В коммерческом RVCT это имеется издавна и на тестах с использованием библиотечных он на моей памяти всегда всех делал, иногда очень . Для версии 5.10 IAR ситуация с производительностью некоторых библиотечных функций резко изменилать (например, ранее тормозной мемсpy() начал на некоторых массивах обгонять "самодельный" писанный на ASM и вылизанный ) - налицо безвариантная замена чисто сишной портируемой библионечной функции на специализированную. Кстати, для IAR начиная с 5.10 GNU библиотеки, как родные . И binutils в комплекте.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
|
Nov 9 2007, 13:02
|
Участник
Группа: Участник
Сообщений: 25
Регистрация: 23-10-07
Из: Москва
Пользователь №: 31 665
|
Цитата(Puzan @ Oct 26 2007, 14:22) ..... а вообще, в интернете масса примеров и готовых тулчейнов, в которых можно посмотреть, как это делается. Эклипс настраивается, как и на системный gcc. Все-таки gcc - он и в африке gcc. Использую и отладчик (OpenOCD) и симулятор (skyeye), правда для nxp21xx переферию он не эмулирует, по этому применение довольно ограниченное. Кстати, Zylin Embedded CDT не использовал. Надо попробовать. А вообще, говорят, что gcc во многих случаях делает более быстрый и компактный код, чем keil или iar. Я сам не проверял, но вот люди, типа проверили: ftp://www.raisonance.com/STR7/Benchmark/A...C-Benchmark.pdf (обсуждалось когда-то на этом форуме). Если все так просто - может все-таки поделитесь опытом? Мои мучения с LPC продолжаются. Я не поленился и купил от Olimex плату на SAM7, по известной в Инете PDF-ке все сделал - и все замечательно работает! А на LPC упорно не хочет - может потому, что такой доки нет... Уже три недели курочим примеры, которые есть в сети, но никакого положительного результата. Но раз с Atmel-ом работает - значит может работать! Могу скинуть для анализа ошибок все, что надо от настроек проекта и среды (сейчас установил все сравнительно свежее, под Eclipse 3.3)
--------------------
Sleo
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|