реклама на сайте
подробности

 
 
> Eclipse + GCC для ARM, Среда разработки для ARM, причем бесплатная...
sleo2000
сообщение Oct 23 2007, 22:52
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 23-10-07
Из: Москва
Пользователь №: 31 665



Всем хороши коммерческие версии типа Keil, IAR, ... кроме цены. А "лекарство" выходит частенько с опозданием на год и более. Да и отладчики (JTAG) у них не самые дешевые.
Сейчас многие начинают советовать GCC на платформе Eclipce с OpenOCD дебагером, который поддерживает от wiggler-а до Segger-а - кому что по карману.
Да, GCC уступает немного коммерческим компиляторам по скорости и плотности кода, на у ARM-ов и памяти и скорости для большинства задач - с запасом.
Одна беда - при всем разнообразии подобных пакетов нет ни одного, чтобы поставил - и сразу заработало...
Может кто-то уже прошел через эти тернии? Вопрос не праздный...


--------------------
Sleo
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Leen
сообщение Nov 14 2007, 22:03
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 5-08-06
Из: Владивосток
Пользователь №: 19 343



Так все ж стандартно...
main.c
Код
#include <stdio.h>

при вызове компилера (во флагах в макефайле или напрямую в ком. строке)
-I "путь к заголовку".
Если надо влинковать библиотеки
-L "путь к библиотекам"
Про эти флаги очень подробно расписано в мане по гцц, ближе к концу.
PS: выложи, пожалуйста.
Go to the top of the page
 
+Quote Post
sleo2000
сообщение Nov 15 2007, 15:51
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 25
Регистрация: 23-10-07
Из: Москва
Пользователь №: 31 665



Цитата(Leen @ Nov 15 2007, 02:03) *
Так все ж стандартно...
main.c
Код
#include <stdio.h>

при вызове компилера (во флагах в макефайле или напрямую в ком. строке)
-I "путь к заголовку".
Если надо влинковать библиотеки
-L "путь к библиотекам"
Про эти флаги очень подробно расписано в мане по гцц, ближе к концу.
PS: выложи, пожалуйста.


1. По поводу библиотек. Их 8 пар (!) - то есть 16 штук одноименных (например. 16 штук libc.a) - методом перебора ничего не достигли, то не нравится несовместимость по little-big endian (по этому признаку, как понял, они поделены на две группы по 8 штук). Дальше внутри группы то не нравится реализация floating point - ругается на несовместимость аппаратной и программной реализаций (хотя в LPC2138 аппаратной реализации нет). Структура директорий GCC при установке Eclipse - стандартная. Так из какой директории брать библиотеки?

2. "Выложить пожалуйста" - имеется в виду доку с примером? - если подскажете, как положить на форуме, то выложу все не таясь... По крайней мере, программы для LPC213x-LPC214x без системных (GCC) библиотек работают и отлаживаются уже без проблем.

ВОЗНИКЛА СЛЕДУЮЩАЯ БЕДА! Два дня пытаюсь сделать простейший пример на С++ под Eclipse - он упорно делает проект, в котором сам делает makefile, назначает старт программы с адреса 0x8000, и никакие манипуляции с настройками не могут этого изменить.
Задача у меня простая: написать простейшую программу с примитивнейшим объектом (классом) типа LED, который будет мигать, и заставить ее работать в плате LPC-P2138.

У кого-то есть возможность помочь? Чувствуется, что среда умеет многое, но как ее все заставить сделать это? и под моим управлением... Если получится - готов для остальных тоже описать все в виде учебника...


--------------------
Sleo
Go to the top of the page
 
+Quote Post
Puzan
сообщение Nov 16 2007, 07:25
Сообщение #4


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-12-05
Пользователь №: 12 295



Цитата(sleo2000 @ Nov 15 2007, 18:51) *
1. По поводу библиотек. Их 8 пар (!) - то есть 16 штук одноименных (например. 16 штук libc.a) - методом перебора ничего не достигли, то не нравится несовместимость по little-big endian (по этому признаку, как понял, они поделены на две группы по 8 штук). Дальше внутри группы то не нравится реализация floating point - ругается на несовместимость аппаратной и программной реализаций (хотя в LPC2138 аппаратной реализации нет). Структура директорий GCC при установке Eclipse - стандартная. Так из какой директории брать библиотеки?


Обычно компилятор и newlib собраны с опцией multilib и interwork, это для того, чтобы можно было компилить в ARM, THUMB и ARM+THUMB одновременно. По этому есть несколько версий libc и libgcc, которые нужно выбрать в зависимости от флагов компиляции. Это можно автоматизировать (как сделал я). Кусок makefile'а:
Код
LIBGCC  = `$(CC) $(CFLAGS) -print-libgcc-file-name`
LIBDIR  = /opt/armgcc/arm-elf/lib/`$(CC) $(CFLAGS) -print-multi-directory`
LIBC    = $(LIBDIR)/libc.a

где $(CC) = arm-elf-gcc
и подставляем линкеру $(LIBGCC) $(LIBC)

Почему так? Я использую опцию -nostdlib.


Цитата(Paramedic @ Nov 16 2007, 10:05) *
Пытаюсь под Ubuntu 7.04 настроить связку Eclipse + OpenOCD + GDB + Wiggler + AT91RM9200. При попытке отладить простой проектик возникают проблемы - при выполнении загрузки вижу такое сообщение:
putpkt: write failed: Broken pipe.


А кто выводит это сообщение? OpenOCD, GDB или Eclipse?
Go to the top of the page
 
+Quote Post
axle
сообщение Nov 16 2007, 08:08
Сообщение #5


Частый гость
**

Группа: Новичок
Сообщений: 81
Регистрация: 19-04-07
Пользователь №: 27 167



Цитата(Puzan @ Nov 16 2007, 13:25) *
Это можно автоматизировать (как сделал я). Кусок makefile'а:
Код
LIBGCC  = `$(CC) $(CFLAGS) -print-libgcc-file-name`
LIBDIR  = /opt/armgcc/arm-elf/lib/`$(CC) $(CFLAGS) -print-multi-directory`
LIBC    = $(LIBDIR)/libc.a

где $(CC) = arm-elf-gcc
и подставляем линкеру $(LIBGCC) $(LIBC)


Если бы вы использовали arm-elf-gcc для сборки, а не arm-elf-ld все было бы гораздо проще.
Он бы сам в зависимости от флагов выбирал необходимую библиотеку.
Go to the top of the page
 
+Quote Post
Puzan
сообщение Nov 16 2007, 10:23
Сообщение #6


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-12-05
Пользователь №: 12 295



Цитата(axle @ Nov 16 2007, 11:08) *
Если бы вы использовали arm-elf-gcc для сборки, а не arm-elf-ld все было бы гораздо проще.
Он бы сам в зависимости от флагов выбирал необходимую библиотеку.


Внимательней читайте. У меня стоит опция -nostdlib.


Цитата(Paramedic @ Nov 16 2007, 11:12) *
Судя по всему gdb выводит в консоли eclipse при исполнении команды load.


А openocd запущен? Находит устройство? Порт правильный слушает?
Go to the top of the page
 
+Quote Post
Paramedic
сообщение Nov 16 2007, 10:26
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



Цитата(Puzan @ Nov 16 2007, 13:23) *
А openocd запущен? Находит устройство? Порт правильный слушает?

Да, даже ресет на таргет проходит. Порт parport 0. Я поэтому и прошу какой-нить простенький примерчик, может дело в make-файле, опциях компиляции...
Go to the top of the page
 
+Quote Post
Puzan
сообщение Nov 16 2007, 10:52
Сообщение #8


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-12-05
Пользователь №: 12 295



Цитата(Paramedic @ Nov 16 2007, 13:26) *
Да, даже ресет на таргет проходит. Порт parport 0. Я поэтому и прошу какой-нить простенький примерчик, может дело в make-файле, опциях компиляции...


А причем тут makefile. Если собирается, значит должно что-то работать. Посмотри дизассемблер. Может быть с расположением что-то попутал (в смысле линкуешь для flash, а запускаешь в ram)?
Go to the top of the page
 
+Quote Post
Paramedic
сообщение Nov 16 2007, 10:59
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



Цитата(Puzan @ Nov 16 2007, 13:52) *
А причем тут makefile.

Думаю может не хватать отладочной информации... Хотя опцию -g включил и оптимизация на нуле.

Цитата(Puzan @ Nov 16 2007, 13:52) *
Посмотри дизассемблер. Может быть с расположением что-то попутал (в смысле линкуешь для flash, а запускаешь в ram)?

Скрипт линкера брал готовый, может в нём и косяк, но он вроде простой и адреса указаны правильные:
MEMORY {
ram : ORIGIN = 0x200000, LENGTH = 0x4000
}
Go to the top of the page
 
+Quote Post
Puzan
сообщение Nov 16 2007, 11:30
Сообщение #10


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 16-12-05
Пользователь №: 12 295



Цитата(Paramedic @ Nov 16 2007, 13:59) *
Думаю может не хватать отладочной информации... Хотя опцию -g включил и оптимизация на нуле.
Скрипт линкера брал готовый, может в нём и косяк, но он вроде простой и адреса указаны правильные:
MEMORY {
ram : ORIGIN = 0x200000, LENGTH = 0x4000
}


Отладочная информация по-любому не причем. В мап-файл посмотри, правильно он память распределил, или нет.
Варианта остается два: конфиг openocd и хардварная проблема, типа JTAGSEL неправильно установил, или банально не контачит.



Цитата(axle @ Nov 16 2007, 14:09) *
У меня тоже! smile.gif
-nostdlib не значит, что надо путь к библиотекам указывать.
Просто стандартные библиотеки не будут подключаться по умочанию.
Что бы их использовать, нужно непосредственно указывать в опциях:
-lc -lm -lgcc и т.д.


Не работает laughing.gif
Go to the top of the page
 
+Quote Post
Paramedic
сообщение Nov 16 2007, 11:32
Сообщение #11


Частый гость
**

Группа: Свой
Сообщений: 181
Регистрация: 15-01-07
Пользователь №: 24 436



Цитата(Puzan @ Nov 16 2007, 14:30) *
или банально не контачит.

Это исключено - под виндой в ИАР всё работает...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sleo2000   Eclipse + GCC для ARM   Oct 23 2007, 22:52
- - DASM   Баян http://electronix.ru/forum/index.php?act=S.....   Oct 23 2007, 22:59
|- - sleo2000   Цитата(DASM @ Oct 24 2007, 02:59) Баян h...   Oct 23 2007, 23:51
|- - dch   Цитата(DASM @ Oct 24 2007, 01:59) Баян h...   Nov 14 2007, 02:30
||- - Leen   Цитата(dch @ Nov 14 2007, 12:30) ссылка б...   Nov 14 2007, 02:54
|- - dch   Цитата(DASM @ Oct 24 2007, 01:59) http://...   Jan 2 2009, 03:10
- - Puzan   Я использую Eclipse+GCC+OOCD+самосборное подобие W...   Oct 24 2007, 13:15
- - Leen   2 Puzan: не могли бы вы выложить рекомендации по н...   Oct 24 2007, 22:49
|- - klen   1. Устанавливаете Sun JRE 6u3 (тоесть самый свежий...   Oct 25 2007, 05:37
|- - Abo   Цитата(klen @ Oct 25 2007, 09:37) 4. удал...   Oct 25 2007, 06:32
- - Leen   Цитата(klen @ Oct 25 2007, 16:37) 6. наст...   Oct 25 2007, 08:52
|- - Сергей Борщ   Цитата(Leen @ Oct 25 2007, 11:52) Вот с э...   Oct 25 2007, 09:44
|- - sleo2000   Цитата(Сергей Борщ @ Oct 25 2007, 13:44) ...   Oct 25 2007, 12:54
|- - axle   Цитата(sleo2000 @ Oct 25 2007, 19:54) Гот...   Oct 26 2007, 03:27
- - Terminator   Немного offtopic Есть проект в eclipse, вроде всё ...   Oct 26 2007, 02:45
- - etoja   В GCC некорректно работает обработчик прерывания I...   Oct 26 2007, 03:38
|- - Terminator   Цитата(etoja @ Oct 26 2007, 10:38) В GCC ...   Oct 26 2007, 04:34
|- - axle   Цитата(etoja @ Oct 26 2007, 10:38) Оба ес...   Oct 26 2007, 05:47
||- - etoja   Будем реалистами. Китайцы бульдозерами утрамбовыва...   Oct 26 2007, 05:58
|- - xelax   Цитата(etoja @ Oct 26 2007, 07:38) В GCC ...   Oct 26 2007, 09:26
- - etoja   Вот обсуждение этого вопроса. Проблеме уже больше ...   Oct 26 2007, 04:45
|- - Terminator   Цитата(etoja @ Oct 26 2007, 11:45) Вот об...   Oct 26 2007, 06:32
- - Leen   Цитата(etoja @ Oct 26 2007, 14:38) В GCC ...   Oct 26 2007, 08:24
- - Puzan   Цитата2 Puzan: не могли бы вы выложить рекомендаци...   Oct 26 2007, 10:22
|- - zltigo   Цитата(Puzan @ Oct 26 2007, 13:22) но вот...   Oct 26 2007, 18:24
|- - sleo2000   Цитата(Puzan @ Oct 26 2007, 14:22) ..... ...   Nov 9 2007, 13:02
||- - Puzan   Цитата(sleo2000 @ Nov 9 2007, 16:02) Если...   Nov 10 2007, 16:55
||- - sleo2000   Цитата(Puzan @ Nov 10 2007, 20:55) ОК. То...   Nov 14 2007, 14:31
||- - Puzan   Цитата(sleo2000 @ Nov 14 2007, 17:31) Теп...   Nov 15 2007, 08:07
|- - Doka   Цитата(Puzan @ Oct 26 2007, 13:22) В прин...   Dec 31 2008, 07:36
|- - alx2   Цитата(Doka @ Dec 31 2008, 12:36) следую ...   Dec 31 2008, 10:44
- - etoja   Вопрос к LEEN: Печатные платы вы чем разводите? С...   Oct 26 2007, 13:44
|- - Puzan   Цитата(etoja @ Oct 26 2007, 17:44) Вопрос...   Oct 27 2007, 06:31
|- - zltigo   Цитата(Puzan @ Oct 27 2007, 09:31) Тестир...   Oct 27 2007, 06:53
|- - klen   Цитата(zltigo @ Oct 27 2007, 10:53) Тесты...   Oct 27 2007, 08:54
|- - zltigo   Цитата(klen @ Oct 27 2007, 11:54) с каким...   Oct 27 2007, 10:19
- - IgorKossak   etoja, тема называется: ЦитатаEclipce + GCC для AR...   Oct 26 2007, 17:58
- - Сергей Борщ   Не стал создавать новую ветку. Вопрос такой - а ка...   Nov 1 2007, 09:43
- - ZiB   Всем, привет! Скачал документ "http://ww...   Nov 11 2007, 14:23
|- - xelax   Цитата(ZiB @ Nov 11 2007, 17:23) Severity...   Nov 12 2007, 06:46
|- - axle   Зачем вы изобретаете велосипед??? Вы makefile с ну...   Nov 16 2007, 04:26
||- - Paramedic   Пытаюсь под Ubuntu 7.04 настроить связку Eclipse +...   Nov 16 2007, 07:05
|||- - Puzan   Цитата(Paramedic @ Nov 16 2007, 14:32) Эт...   Nov 16 2007, 12:03
|||- - Paramedic   Цитата(Puzan @ Nov 16 2007, 15:03) Хм... ...   Nov 16 2007, 12:39
||- - axle   Цитата(Puzan @ Nov 16 2007, 16:23) Внимат...   Nov 16 2007, 11:09
||- - sleo2000   Цитата(axle @ Nov 16 2007, 14:09) У меня ...   Nov 16 2007, 15:56
|- - Paramedic   Цитата(Puzan @ Nov 16 2007, 10:25) А кто ...   Nov 16 2007, 08:12
|- - sleo2000   ПРОБУЮ ВЫЛОЖИТЬ АРХИВ С РАБОТАЮЩИМ ПРИМЕРОМ ПОД EC...   Nov 16 2007, 18:27
- - Leen   Покажи конфиг gcc. И сколько их у тебя? У меня lib...   Nov 15 2007, 22:42
- - KA_ru   Какой сборкой пользоваться. всего нашёл три штуки....   Nov 16 2007, 16:20
- - вася пупкин блин   Так, стыковать все это чудо с ходу не удалось Буд...   Nov 30 2007, 14:31
- - вася пупкин блин   Эй! ну что - все всё наладили и ушли с форума?...   Dec 1 2007, 17:21
|- - IgorKossak   Цитата(вася пупкин блин @ Dec 1 2007, 19...   Dec 1 2007, 19:54
- - 123730   Здесь было рассмотрено уже это но у мя не получило...   Dec 20 2007, 18:48
|- - v_shamaev   Цитата(123730 @ Dec 20 2007, 21:48) ........   Dec 20 2007, 20:53
|- - axle   Цитата(123730 @ Dec 21 2007, 00:48) Здесь...   Dec 21 2007, 08:56
- - 123730   Да конешн), файлег был стырен с каково-то примера:...   Dec 20 2007, 21:31
- - 123730   Стырил я syscalls.c, serials.h, serials.c с рабоче...   Dec 26 2007, 16:25
- - gte   Может ли кто поделиться или подсказать где поискат...   Mar 17 2008, 17:27
|- - Hz!   Цитата(gte @ Mar 17 2008, 19:27) Может ли...   Mar 18 2008, 16:16
- - Doka   alx2 очевидно из требования сборки newlib target-...   Dec 31 2008, 14:06
|- - alx2   Цитата(Doka @ Dec 31 2008, 19:06) очевидн...   Jan 1 2009, 16:24
- - Doka   Цитата(alx2 @ Jan 1 2009, 20:24) Или спро...   Apr 8 2009, 09:45
|- - alx2   Цитата(Doka @ Apr 8 2009, 14:45) 1) судя ...   Apr 9 2009, 10:52
- - Doka   Цитата(alx2 @ Jan 1 2009, 20:24) Или спро...   Apr 10 2009, 09:52
|- - klen   1. достаточно одного прохода 2. компиллеру для сбо...   Apr 10 2009, 14:26
|- - alx2   Цитата(Doka @ Apr 10 2009, 14:52) хорошо....   Apr 13 2009, 10:33
- - Doka   всё.......я сдаюсь............. где взять правиль...   Apr 13 2009, 20:05
|- - alx2   Цитата(Doka @ Apr 14 2009, 01:05) где взя...   Apr 14 2009, 11:03
|- - klen   у меня и того проще конфиг GCC ../....   Apr 15 2009, 05:10
- - 011119xx   Пытаюсь запустить Эклипс. Пользуюсь документом Usi...   Feb 28 2010, 14:34
- - Genadi Zawidowski   Проект не плюсовый? Вываливай... Код/DISCARD/ ...   Feb 28 2010, 19:49
- - 011119xx   Извините, но мне не понятно что делать. То что это...   Mar 1 2010, 17:41
|- - AHTOXA   Цитата(011119xx @ Mar 1 2010, 22:41) Изви...   Mar 1 2010, 19:34
- - 011119xx   Спасибо. Это помогло.   Mar 2 2010, 16:26
- - USTAL   Всё.... Имел я ввиду этот Eclipse CDT для ARM вмес...   May 14 2010, 02:50
|- - Сергей Борщ   Цитата(USTAL @ May 14 2010, 05:50) Дальше...   May 14 2010, 05:39
|- - klen   Цитата(USTAL @ May 14 2010, 06:50) Имеете...   May 14 2010, 06:44
- - IgorKossak   YAGARTO + Cygwin - это же надо было додуматься...   May 14 2010, 06:51
|- - AHTOXA   Цитата(IgorKossak @ May 14 2010, 12:51) А...   May 14 2010, 07:47
- - ZiB   Всем, привет! Подскажите пожалуйста по Eclipse...   May 16 2010, 06:45
|- - klen   Цитата(ZiB @ May 16 2010, 10:45) Всем, пр...   May 16 2010, 08:20
|- - AHTOXA   Цитата(klen @ May 16 2010, 14:20) а сразу...   May 16 2010, 09:11
- - ZiB   Конечно это не сильная проблема, на данный момент ...   May 16 2010, 10:06
|- - klen   а зачем эклипсу вообще знать чтото - мой личный по...   May 17 2010, 08:03
|- - AHTOXA   Ну банальный пример: Код#ifndef STM32F10X_CL RCC-...   May 17 2010, 08:18
|- - Сергей Борщ   Цитата(klen @ May 17 2010, 11:03) а зачем...   May 17 2010, 08:24
- - ZiB   Попробовал указать в Compiler invocation command и...   May 17 2010, 09:52
- - 011119xx   При компиляции проекта получаю следующее: **** Bu...   Jun 11 2010, 16:04
- - AHTOXA   Цитата(011119xx @ Jun 11 2010, 22:04) und...   Jun 11 2010, 21:07
3 страниц V   1 2 3 >


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 00:34
Рейтинг@Mail.ru


Страница сгенерированна за 0.03461 секунд с 7
ELECTRONIX ©2004-2016