Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Eclipse + GCC для ARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2, 3, 4, 5, 6
_3m
Цитата(klen @ Feb 9 2011, 01:47) *
а попробуйте кусочками грузить

тогда не упадет, пробовал
Частично помогает если дать gdb команду
set remotetimeout NN
где NN должно больше времени заливки бинарника.

ARV
Вопрос чисто по Eclipse: после того, как я завершаю отладку своей программы (т.е. нажимаю кнопку Terminate), в окне с исходником остается выделенной строка, на которой я прервал отладку. При переключении перспективы в "обычный" режим редактирования это выделение остается.

Существует ли способ это убрать? все-таки не совсем хорошо, когда отладка прекращена, а стрелочка указывает на строку и сама строка подсвечена...

Aaron
Ну что ж, все активные проекты в Keil вроде перешли в состояние "всё работает, файлы упаковать в архив и убрать в дальний угол". Так что начинаю осуществлять свою давнюю мечту - изучить Eclipse + gcc + make. Прочитал все 11 страниц этой темы, узнал много нового. Для себя составил пока такое представление (буду работать с cortex-m3):
1. для самостоятельной сборки под винду различных полезных утилит, включая gdb и openocd, необходим mingw. Но его можно не ставить на первом этапе знакомства, потому как все необходимые тулзы доступны в скомпилированном виде.
2. качается eclipse-cpp сборка (helios самая последняя), gdb сервер идёт из пакета CDT и в эклипсе доступен по умолчанию (или накрайняк ставится через install new software), на zylin можно смело забить.
3. В eclipse ставятся плагины c/c++ gcc cross compiler support и c/c++ gdb hardware debugging - второй нужен, чтобы видеть в режиме отладки регистры процессора? а первый для чего?
4. опять же в Eclipse ставится плагин gnuarmeclipse - доступен как отдельный проект на sf.net - позволяет через оконный интерфейс задавать настройки проекта - нужен новичкам типа меня, которые не смыслят в дебрях makefile (я туда заглянул, процентов 10 понял с первого раза sm.gif )
5. Для сборки проектов под арм необходим тулчейн (который как раз при полном понимании можно пересобирать из репозиториев с помощью mingw) - грубо говоря набор утилит линкер-компилер-ещё всякие необязательные плюшки. для работы "из коробки" в порядке убывания предпочтительны - kgp (Klen GNU Package? sm.gif Не нашёл расшифровки; сборки klen'а все хвалят) - yagarto - sourcery g++ - ну и древние gnuarm, winarm - ими уже вроде как никто давно не пользуется. Качаем сборку kgp, ставим, прописываем путь к kgp\bin в Path (равно как и для mingw\bin).
6. поскольку в сборке kgp есть openocd, то далее можно уже запускать эклипс, добавлять туда новый тулчейн через настройки, и при создании нового своего проекта указывать использование тулчейна kgp.
7. для отладки в железе надо создавать профиль отладки в свойствах проекта. отладка в симуляторе почти бесполезна, поскольку система знает только про ядро, по периферии конкретных контроллеров библиотек нет. Хотя тут надо глянуть, что такое skyeye - я так понял он из этой области как раз.
По мере уточнения информации могу эти пункты откорректировать.
С источниками файлов всех в эклипсе разобрался, запнулся на следующем: на работе сидим за проксёй с авторизацией, и эклипс не выкачивает просто так файлы через 'install new software', хотя список файлов с сервера получает. В опциях General->Network Connections ставлю active provider в 'Manual', и в http,https,socks указываю нашу проксю + логин и пароль, но эклипс всё равно не выкачивает файлы.
Посему у меня такой вопрос: правильно ли я понимаю, что вся связка eclipse+plugins+toolchain в принципе является portable? в том плане, что допустим я дома всю связку настраиваю с прописыванием Path, - копирую на usb диск, - копирую на работе, - прописываю Path и работаю, - и всё то же самое в обратном порядке если что вдруг поменяю?
Буду рад за активную критику и дополнение пунктов. А так, по 6 и 7 пункту видел хорошие руководства для новичков с картинками - я по ним знакомился со средой, делал как описано, всё начинало работать.
AHTOXA
Цитата(Aaron @ May 24 2011, 00:22) *
правильно ли я понимаю, что вся связка eclipse+plugins+toolchain в принципе является portable?

Да. Я одно время таскал эклипсу на USB-HDD. (Надо только чтоб везде стояла джава)
ARV
сам Eclipse вроде бы "portable", да вот только с Java у него какие-то особые отношения...
сведения противоречивые: одни говорят, что достаточно установить JRE последней версии, другие - что нужно где-то в реестре (?) что-то прописывать... во всяком случае просто так скопированный на флешку Eclipse на "не родной" машине не стартует. попытка сделать portable-комплект при помощи Virtual Box и Thinstall Virtualization Suite пока что успехом не увенчалась, хотя на виртуалке устанавливал и JRE...
Petka
Цитата(ARV @ May 24 2011, 09:35) *
сам Eclipse вроде бы "portable", да вот только с Java у него какие-то особые отношения...
сведения противоречивые: одни говорят, что достаточно установить JRE последней версии.

так и есть.
запускаю эклипс из батника так:
Код
set JRE_ROOT=%DEVEL_ROOT%/jre/jre-6u12

set WORKSPACE_ROOT=%DEVEL_ROOT%/workspace

set ECLIPSE_ROOT=%DEVEL_ROOT%/eclipse/eclipse-cpp-ganymede-SR2-win32/eclipse

"%ECLIPSE_ROOT%/eclipse.exe"  -vm "%JRE_ROOT%/bin/javaw" -os win32 -arch x86  -data "%WORKSPACE_ROOT%" -vmargs -Xms512m -Xmx1024m

Где DEVEL_ROOT - путь к каталогу на флэшке.
Aaron
Цитата(Petka @ May 24 2011, 14:54) *
запускаю эклипс из батника так:
...

Шикарно! спасибо! Скопировал просто установленную jre6 из папки program files в portable каталог - всё работает.
klen
полезный прием однако, спасибо.

2_Aaron
Цитата
kgp (Klen GNU Package? sm.gif Не нашёл расшифровки

почти угадал ! логика однако сильная штука , не правда ли?
расшифровку искать не нада - ее даст любая тулса которую я собрал запущенная с опцией -v:
Код
klen@klen-desktop:~$ arm-kgp-eabi-ld -v
GNU ld (Klen's GNU package (KGP) for ARM/elf platform) 2.21.52.20110617
flyinghollander
Доброго времени суток коллеги,

Заранее извиняюсь если не в ту тему запостил.
Вопрос собственно вот в чем:

Есть некая железяка с ARM + Embedded Linux, есть родной SDK (включая тулчейн), который естественно под линукс, есть даже хост-машина где все это развернуто под Debian'ом и работает biggrin.gif
Есть другая машина под виндами, с эклипсом и CDT. Хотелось бы собирать все то же самое на ней. Какие телодвижения нужны для этого? rolleyes.gif
Petka
Цитата(flyinghollander @ Jun 26 2011, 20:27) *
...
Есть некая железяка с ARM + Embedded Linux, есть родной SDK (включая тулчейн), который естественно под линукс, есть даже хост-машина где все это развернуто под Debian'ом и работает biggrin.gif
Есть другая машина под виндами, с эклипсом и CDT. Хотелось бы собирать все то же самое на ней. Какие телодвижения нужны для этого? rolleyes.gif

Гуглите "cygwin". Но лучше используйте нативный линукс.
flyinghollander
Цитата(Petka @ Jun 26 2011, 22:17) *
Гуглите "cygwin". Но лучше используйте нативный линукс.

А если взять виндовый кросс-компилятор под ARM (бинарники), а хедеры и либы перетянуть из родного SDK? Будет работать?
Petka
Цитата(flyinghollander @ Jun 27 2011, 10:12) *
А если взять виндовый кросс-компилятор под ARM (бинарники), а хедеры и либы перетянуть из родного SDK? Будет работать?

Обычно для систем сборки линукса и его окружения нужна НОРМАЛЬНАЯ файловая система, поддерживающая: атрибуты "файл запускаем", симлинки, для скриптов configure нужен нормальный, человеческий шелл, утилиты (make, patch, tar и прочие). Cygwin пытается дать такое окружение.
Если даже всё это вам и удастся обеспечить под виндой, то работать это будет ооооочень медленно. Субъективно сборка одного и того-же проекта одной и той-же версией компилятора под виндой раз 5 осуществляется дольше.
klen
Цитата(Petka @ Jun 27 2011, 13:42) *
под виндой раз 5 осуществляется дольше.

на моих машинах в 4 раза.
ИМХО для маленьких проектов для микроконтроллеров непринципиално.
flyinghollander
Цитата(Petka @ Jun 27 2011, 13:42) *
Cygwin пытается дать такое окружение.

Спасибо за разъяснение. Хоть понял для чего нужен Cygwin rolleyes.gif

Итак, если хочется под виндами собирать под линукс, без cygwin'а не обойтись? А какой собственно кросс-компилятор посоветуете?
Petka
Цитата(flyinghollander @ Jun 27 2011, 19:32) *
Спасибо за разъяснение. Хоть понял для чего нужен Cygwin rolleyes.gif

Итак, если хочется под виндами собирать под линукс, без cygwin'а не обойтись? А какой собственно кросс-компилятор посоветуете?

1. А какая причина использовать для сборки линукса виндоуз?
2. Компилятор для линукса сейчас практически один - gcc.
3. Рекомендую обратить внимание на проект "buildroot". Это набор скриптов, с помощью которого автоматизированно собирается нужный вам кросс-компилятор (из исходных кодов gcc), ядро линукса, загрузчик, файловая система, на которой будет запускаться ядро и минимальный набор утилит, которым все привыкли пользоваться в линуксе.
flyinghollander
Цитата(Petka @ Jun 27 2011, 20:18) *
1. А какая причина использовать для сборки линукса виндоуз?

Да собственно линукс-то в данном проекте собирать и не нужно, всего лишь приложеньице под него biggrin.gif
Petka
Цитата(flyinghollander @ Jun 27 2011, 20:30) *
Да собственно линукс-то в данном проекте собирать и не нужно, всего лишь приложеньице под него biggrin.gif

Тогда цигвина может быть достаточно.
Aaron
У меня такой вопрос: можно ли, и главное - как, прикрутить к eclipse справку по gcc? Примерно как в Keil: по ctrl+f1 выдаёт совпадение по ключевым словам в существующих файлах справки.
Аналогично хочется видеть нечто подобное и для eclipse+gcc, может хоть в online ссылаться - лишь бы было интегрированно.
Например, я вот хочу узнать, что за разделы .section и как с ними работать, или даже банально узнать типы данных и разрядность под архитектуры - вызвать справку по long и т.п. Есть же что-то такое в природе?
klen
формально это ответ на ваш вопрос но.... понравится ли Вам?
в меню внешних тулсов добавить вызов
firefox.exe http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc.pdf
firefox.exe http://gcc.gnu.org/onlinedocs/gcc-4.6.1/gcc/

далее моя мысль не пошла, мне этого хватает
Aaron
да, печаль sm.gif
svss
Цитата(Сергей Борщ @ Dec 7 2010, 19:57) *
новые сборки компиляторов с некоторых пор идут с arm-none-eabi-gcc

А какая между ними разница и почему-зачем разнообразие:
gcc
arm-none-eabi-gcc
arm-linux-gcc
... ... (не хочется замусоривать текст сообщения)

Понятно, что gcc - это GNU, arm-none-eabi-gcc - это Codesourcery, а arm-linux- arm-angstrom-linux - есть gnuarm, yagarto, angstrom и иже с ими.
Догадываюсь, что хотя написано, что gcc от GNU генерирует код для arm, но на самом деле это не совсем так (пробовал).
Читал (codesourcery), что arm-eabi- - есть для голых машин, а arm-linux- - для машин с Linux ядром.
Так это или не совсем, или совсем не так?

Казалось бы, почему бы не быть единственному компилятору, имеющему достаточно крючков в командной строке...
Aaron
я вот тоже в этом вопросе не совсем разбираюсь, голова кругом идёт sm.gif но вообще-то по идее arm-linux на уровне машинных кодов использует ARM инструкции, и код должен запускаться на ARM ядрах, так что мб там просто используются библиотеки какие-то специфичные линуксовые, типа например обработчики прерываний таймера заточены под таймеры линукс-ОС и тд? sm.gif
svss
Цитата(Aaron @ Aug 12 2011, 14:12) *
я вот тоже в этом вопросе не совсем разбираюсь, .. но вообще-то по идее arm-linux на уровне машинных кодов использует ARM инструкции, и код должен запускаться на ARM ядрах .. ?

(шёпотом) Угу, а arm-none- должен исполняться под .NET cool.gif

Занятный хинт из одного форума:
Цитата

То есть примерно так: gcc от GNU работает на ядре от kernel.org, независимо от железа.
(объектный код для какой машины оно/он генерить умеет, правда, остаётся загадкой).
alx2
Цитата(svss @ Aug 12 2011, 10:04) *
Догадываюсь, что хотя написано, что gcc от GNU генерирует код для arm, но на самом деле это не совсем так (пробовал).

??? Это как это? Можно чуть подробнее? Как это у Вас GCC "не совсем генерировал" код для ARM?
svss
Цитата(alx2 @ Aug 15 2011, 13:14) *
??? Это как это? Можно чуть подробнее? Как это у Вас GCC "не совсем генерировал" код для ARM?
(ответ без претензии на глубину владения темой: я вопрос задал, а не попытался кого-то учить)

Я пробовал компилить GCC 4.3.4 20090804 проект для arm. Пробовал разумные варианты ключей вокруг -march.
Компилятор упорно ругался на ключ (что-то около -march=arm926, точно не помню), хотя я его честно списал из мануала.
Плюнул, взял тулчейн arm-non-gnueabi-..., получилось, с тем и живу. Вполне возможно, что просто "не вник в суть"...
_3m
Начинаю использовать gcc для программирования кортекс-м0. Появляются вопросы.
установил эклипс+cdt, поставил zylyn cdt. Собрал из исходников openocd-5.0
скачал компилятор от klen arm-kgp-eabi-20110924.

Но чтобы писать программу еще нужны заголовочные файлы к чипам, стартап и желательно стандартный скрипт линкера. Где это берется? Например у меня работа с чипами lpc11c14 и em773
не описывать же всю перифирию самому.
Aaron
Цитата(_3m @ Oct 14 2011, 11:56) *
Но чтобы писать программу еще нужны заголовочные файлы к чипам, стартап и желательно стандартный скрипт линкера. Где это берется? Например у меня работа с чипами lpc11c14 и em773
не описывать же всю перифирию самому.

дак это же всё можно взять из примеров использования с сайта производителя, softpack какой-нибудь. тем более что у кортексов CMSYS есть, там всё стандартно.
кстати, а zylyn cdt вроде как не нужен ведь в eclipse indigo, там уже собственный cdt поддерживает hardware debugging. Сам ещё не пробовал.
Собственно тут же вопрос в зал:
- пробую openocd запускать с interface jlink (у меня mt-link), пишет что девайс не найден. openocd из последней сборки KGP под win32. Вроде помню говорили что с jlink уже можно работать. что я делаю не так?
_3m
Цитата(Aaron @ Oct 14 2011, 12:19) *
Собственно тут же вопрос в зал:
- пробую openocd запускать с interface jlink (у меня mt-link), пишет что девайс не найден. openocd из последней сборки KGP под win32. Вроде помню говорили что с jlink уже можно работать. что я делаю не так?

Только что проверил с jlink. Коннектится, но у меня ubuntu 64 бит.
запускаю через судо так как права настаривать лень.

XXXXXX@ubuntu:/opt/arm-kgp-eabi/bin$ sudo ./openocd -f interface/jlink.cfg
Open On-Chip Debugger 0.6.0-dev-00084-gdaa4147 (2011-09-24-18:18)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Warn : Adapter driver 'jlink' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
Info : J-Link initialization started / target CPU reset initiated
Info : J-Link ARM V7 compiled Feb 15 2011 11:03:33
Info : J-Link caps 0xb9ff7bbf
Info : J-Link hw version 70000
Info : J-Link hw type J-Link
Info : J-Link max mem block 9000
Info : J-Link configuration
Info : USB-Address: 0x0
Info : Kickstart power on JTAG-pin 19: 0x0
Info : Vref = 3.280 TCK = 1 TDI = 0 TDO = 1 TMS = 0 SRST = 0 TRST = 0
Info : J-Link JTAG Interface ready
Error: An adapter speed is not selected in the init script. Insert a call to adapter_khz or jtag_rclk to proceed.
in procedure 'init'
Aaron
С одной стороны:
Код
SEGGER J-Link Commander V4.22f ('?' for help)
Compiled Jan 31 2011 19:09:31
DLL version V4.22f, compiled Jan 31 2011 19:09:18
Firmware: J-Link compiled Jul 30 2008 11:24:37 ARM Rev.5
Hardware: V5.00
S/N: 11111117
OEM: IAR
VTarget = 3.339V
Info: TotalIRLen = 4, IRPrint = 0x01
Found 1 JTAG device, Total IRLen = 4:
#0 Id: 0x3F0F0F0F, IRLen: 04, IRPrint: 0x1, ARM7TDMI Core
Found ARM with core Id 0x3F0F0F0F (ARM7)
JTAG speed: 100 kHz
J-Link>

С другой стороны:
Код
c:\DevTools\openocd>openocd -f scripts/interface/jlink.cfg
Open On-Chip Debugger 0.6.0-dev (2011-08-14-17:46)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.berlios.de/doc/doxygen/bugs.html
Warn : Adapter driver 'jlink' did not declare which transports it allows; assuming legacy JTAG-only
Info : only one transport option; autoselect 'jtag'
Error: Cannot find jlink Interface! Please check connection and permissions.
in procedure 'init'

sad.gif
podelkin
Захотел тут через меню ExternalTools в Eclipse залить камень. Использую openocd под виноус (приходится в нем на работе сидеть crying.gif )
Встала задача через .bat файл подключиться через telnet и выполнить скрипт (openocd всегда работает в фоне)
.bat это вам не shell в линукс. всякие перенаправления не работают. Нашел решение:
используем TST10.exe (Telnet Scripting Tool) google в помощь - первая ссылка.
запускаем из external tools
TST10.exe /r:telnet_script.txt
сам :telnet_script.txt:
Код
localhost 4444
SEND "script load_firmware.tcl\m"
WAIT ">"
SEND "exit\m"

в load_firmware.tcl пишем собственно прошивку.
у меня так
Код
echo "Load Firmware"
halt
flash write_image erase unlock ../Debug/firmware.hex 0 ihex
reset

может кому поможет wink.gif

Цитата(ARV @ Apr 29 2011, 20:06) *
Вопрос чисто по Eclipse: после того, как я завершаю отладку своей программы (т.е. нажимаю кнопку Terminate), в окне с исходником остается выделенной строка, на которой я прервал отладку. При переключении перспективы в "обычный" режим редактирования это выделение остается.

Существует ли способ это убрать? все-таки не совсем хорошо, когда отладка прекращена, а стрелочка указывает на строку и сама строка подсвечена...

если используете openocd то попробуйте при инициализации вставить определение события при отключении gdb продолжить выполнение
как-то так
Код
#продолжить выполнение, когда отключается GDB
$_TARGETNAME configure -event gdb-detach { echo "GDB disconnect, but resume"; resume }

может поможет, у меня так стоит и ничего не вылезает
oliva_av
Подскажите пожалуйста, как установить точки останова в оболочке Eclipse?

Использую оболочку Eclipse (Helios Release Build id: 20100617-1415). Компилятор gcc version 4.4.1. и отладчик gdb (GDB) 7.0.
Пытаюсь отлаживать ядро Linux. При попытке поставить точку останова в некоторых файлах исходников ядра, вместо нее появляется желтый треугольник с восклицательным знаком? В чем проблема?


Aaron
сейчас попробовал - ставятся точки останова в любом месте, никаких проблем (eclipse indigo).
oliva_av
Цитата(Aaron @ Nov 10 2011, 16:02) *
сейчас попробовал - ставятся точки останова в любом месте, никаких проблем (eclipse indigo).

А если в например в файле ./linux/net/compat.c?

При этом gdb trace выводит:
650,138 (gdb)
650,138 1817-break-insert /usr/src/linux-2.6.31.14/net/compat.c:36
650,502 1817^error,msg="No source file named /usr/src/linux-2.6.31.14/net/compat.c."

При удачной установки:
208,155 1823-break-insert /usr/src/linux-2.6.31.14/net/socket.c:269
208,334 1823^done,bkpt={number="11",type="breakpoint",disp="keep",enabled="y",addr="0xc0526138",func\
="init_once",file="net/socket.c",fullname="/usr/src/linux-2.6.31.14/net/socket.c",line="269",times="\
0",original-location="/usr/src/linux-2.6.31.14/net/socket.c:269"}
Aaron
blush.gif простите, я не имел ввиду linux, мне до вас далеко. Копаюсь чисто в своих embedded проектах.
Но быстрое гугление говорит о том, что проблема в CDT7 при установке брейкпоинтов в файлах библиотек, слинкованных к проекту. Как вариант попробуйте предлагают брейкпоинты переставлять заново после запуска GDB.
oliva_av
Модули должны быть статическими, ставятся точки без проблем.
Сергей Борщ
Сегодня из рассылки по OpenOCD удалось выловить ссылки на еще две сборки gсc-arm. Не припомню, чтобы они упоминалось на этом форуме. Обе сборки под Win и Lin.

Цитата
As part of its ongoing commitment to maintaining and enhancing GCC compiler support for the ARM architecture, ARM is maintaining a GCC toolchain source branch targeted at Embedded ARM Processors, namely Cortex-R/Cortex-M processor families. As part of this, ARM will, at regular intervals, release binaries pre-built and tested from the ARM embedded branch. The improvements will be freely available for integration into 3rd party toolchains, and for direct download by end-users.

GNU Tools for ARM Embedded Processors
Там также есть подробная инструкция "как собрать атомную бомбу gcc для винды или линуха под убунтой самостоятельно".


Цитата
The Toolchain Working Group now provides pre-built binary versions of Linaro GCC, Linaro GDB and binutils. These binary versions work under generic Linux and Windows and can be used by an end developer to cross-compile programs for either a Linaro Evaluation Build or a bare-metal target.

Linaro (искать в конце страницы)
ReAl
Спасибо, бум посмотреть.
В первой ссылке попутаны местами название и линк.
IgorKossak
Фактически, ссылка в конце страницы Linaro ссылается на GNU Tools for ARM Embedded Processors, но там много и другой полезной информации.
Порадовало наличие библиотек с плавучкой под cortex-m4f, как abi-soft, так и hard (в отличие от Sourcery Code Bench Lite).
Хотелось бы ещё проверить насколько тяжелы у них реализации функций форматированного вывода.
Сергей Борщ
QUOTE (IgorKossak @ Jan 27 2012, 12:19) *
Фактически, ссылка в конце страницы Linaro ссылается на GNU Tools for ARM Embedded Processors,
А предыдущая - на их собственную сборку. Сам пока не смотрел.
AHTOXA
Попробовал "GNU Tools for ARM Embedded Processors", сравнил с последним "свежаком" от klen-а. Вот что вышло на небольшом проекте (Cortex-M3):
Код
         text    data     bss
kgp     34436      32   38352
ARM     40836      32   38352

Это под линуксом. Работоспособность результата пока не проверял.
_Артём_
А как в eclipse с автодополнением.
Нажимаю Ctrl+Space и ... никакий ассоциаций:

Нажмите для просмотра прикрепленного файла

Как-то настраивать надо?
AHTOXA
Попробуйте поставить перед ef "::":
Код
::ef.

Иногда эклипсу немножко переклинивает, в чём дело - не понял. В других проектах всё нормально, отлично автодополняет. А вот именно в примерах к scmRTOS - нет. Причём и в них местами работает - попробуйте в main().
_Артём_
Цитата(AHTOXA @ Feb 22 2012, 16:13) *
Попробуйте поставить перед ef "::":
Код
::ef.

Помогло. Но этож две лишних буквы писать.

Цитата(AHTOXA @ Feb 22 2012, 16:13) *
местами работает - попробуйте в main().


Да - всё работает.

Цитата(AHTOXA @ Feb 22 2012, 16:13) *
Попробуйте поставить перед ef "::":
Код
::ef.

В других проектах всё нормально, отлично автодополняет. А вот именно в примерах к scmRTOS - нет.

Хм...тенденция однако.
Редактирую обычно проекты в Studio: в 99% всё устраивает.
Создал проект с scmRTOS - та же фигня: часто не те блоки #if...#endif становятся неактивными/неактивными, автодополнение как правило работает (возможно благодаря VisualAssist, не знаю справился бы IntelleSence), ну и целом создалось впечатление что с проектом что-то нетак.
Думал, что недоконфигурил проект для студии, но теперь получается что Eclipse тоже scmRTOS не переваривает.
Возможно все глюки вызваны широким использованием шаблонов и современные IDE не справляются.
Надо бы найти время и попробывать создать проект с scmRTOS в AVRStudio 5 - может она справится?

AHTOXA
Цитата(_Артём_ @ Feb 22 2012, 20:35) *
получается что Eclipse тоже scmRTOS не переваривает.

У меня другие проекты, в которых автодополнение работает - тоже с scmRTOS. Видимо просто звёзды не так расположилисьsm.gif
У эклипсы самый навороченный парсер, полноценный парсер си/си++, практически компилятор. А в таких сложных системах практически невозможно отловить все баги.
_Артём_
Цитата(AHTOXA @ Feb 22 2012, 18:19) *
У меня другие проекты, в которых автодополнение работает - тоже с scmRTOS.

Обнадёживает.

Цитата(AHTOXA @ Feb 22 2012, 18:19) *
Видимо просто звёзды не так расположилисьsm.gif

Звёзды наверное на месте.
Как назвали так работает - затмение солнца.
Только как его расчитать.


Цитата(AHTOXA @ Feb 22 2012, 18:19) *
У меня другие проекты, в которых автодополнение работает - тоже с scmRTOS. Видимо просто звёзды не так расположилисьsm.gif
У эклипсы самый навороченный парсер, полноценный парсер си/си++, практически компилятор. А в таких сложных системах практически невозможно отловить все баги.

Да, не поймать.

Сделал так:
Код
void Process2()
{
    for(;;)
    {
        OS::sleep(1000);
        LedOn();
        OS::sleep(10);
        LedOff();
    }
}
namespace OS
{

template <>
    OS_PROCESS void TProc2::exec()
    {
        Process2();
    }
}

Автозавершение появилось. Но по шагам не ходит в отладчике. И корректно ли это?


_Артём_
Цитата(_Артём_ @ Feb 22 2012, 20:41) *
И корректно ли это?

Тьфу, б.. она же static.
011119xx
Установил Eclipse Indigo, встроил в нее Keil 4.23. Импортировал проект из C:\Keil\ARM\Examples\ST\STM32F10xFWLib\Project. Eclipse указывает знак вопроса на строку #include "stm32f10x_lib.h", то есть не видит файл расположеный в C:\Keil\ARM\INC\ST\STM32F10x. Вопрос такой. Где надо прописать пути, чтобы видела? На сколько я понимаю пути уже прописаны, если есть такие настройки, но не видит файлов.
DmitryM
Цитата(011119xx @ Mar 22 2012, 13:59) *
Установил Eclipse Indigo, встроил в нее Keil 4.23. Импортировал проект из C:\Keil\ARM\Examples\ST\STM32F10xFWLib\Project. Eclipse указывает знак вопроса на строку #include "stm32f10x_lib.h", то есть не видит файл расположеный в C:\Keil\ARM\INC\ST\STM32F10x. Вопрос такой. Где надо прописать пути, чтобы видела? На сколько я понимаю пути уже прописаны, если есть такие настройки, но не видит файлов.

Linked Folder
011119xx
Спасибо. Это помогло. Далее появились следующие сложности. Пытаюсь скомпилировать проект, для чего захожу в Project и вижу следующее:
Нажмите для просмотра прикрепленного файла
Команды компиляции не доступны. Догадываюсь, что в проекте не указан Builder и иду в свойства проекта и вижу там следующее:
Нажмите для просмотра прикрепленного файла
Выбираю Builders и жму на New... и попадаю в окно:
Нажмите для просмотра прикрепленного файла
А как здесь все правильно настроить?
gvest
Добрый день.
Имеется nxp lpc3250 - попробовал в качестве сред разработки и Keil, и IAR - не пошло (но работает), наверное, потому что уже три года с Eclipse имею дело, привычка что ли...
Поставил дома(пока под win) Eclipse Indigo sr2 + gnu arm plugin + code sourcery codebench lite. Компилируется, линкуется...
А вот с запуском есть вопрос - приложение у меня standalone (никаких ОС), поэтому для правильной работы нужен startup-файл
инициализации процессора (и nand, контроллера памяти и т.д.), в Keil такой автоматически генерировался, а тут получается его прийдётся с нуля написать или я что то упустил?

ps. ещё надо будет отладку прикручивать - много чего прочитал, однако не допонял надо ли мне все это - есть srarterkit'овский jetlink ultra,
можно ли его использовать в eclipse через segger-овский же GDB, или нужна будет какая то лицензия для работы их gdb-сервера?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.