Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Code::Blocks -> How To
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
Страницы: 1, 2, 3, 4, 5
AndOr
Доброго времени дня всем коллегам по нищастью.
Интересно в связке C::B + ARMGCC кто нибудь с LPC2* работал? С каким железом? ...
Не могу никак простой GCC проект оживить под этой связкой.
Поделитесь опытом, плз. crying.gif
_Pasha
Цитата(AndOr @ Dec 14 2010, 20:57) *
Не могу никак простой GCC проект оживить под этой связкой.

Что именно не получается?
MrYuran
Цитата(_Pasha @ Dec 15 2010, 10:00) *
Что именно не получается?

Полагаю, что "Nothing to be done"
Скорее всего, неправильно настроен тулчейн в вкладке "Compiler Options"
Это я так, телепатирую sm.gif
AndOr
Спс за реакцию!
1) "Nothing to be done" я проехал довольно быстро, но посредством подключения arm-elf-gcc.exe и иже с ним из WinARM (что быстро нашлось).
2) Работаю с железкой te-lcd5.6_touchscreen_lpc2478 от Терры. Экзэмпл для IAR из комплекта заработал сразу, но начав работать с IAR понял что это не моё и тем более за деньги (хоть и не мои).
3) порылся на форуме - принял решение C::B + GCC, но экзэмпл, тот же но под ГЦЦ из комплекта te-lcd5.6... не идет :-(.
Во первых компилятор не воспринимал // как коменты, только /* ляля */ - ну хорошо, поправил.
теперь получаю:

-------------- Build: default in te-lcd56_gcc_cb_v1 ---------------

[100.0%] Running command: make.exe -f Makefile default
MAKE Version 5.2 Copyright © 1987, 1998 Inprise Corp.
Error Makefile 43: Command syntax error
*** 1 errors during make ***

Ах, да - для я начала создал в С::В новый проект под какой то эвалборт с LPC2129, но не нашел где его теперь сменить.
Но думаю Command syntax error с этим не связан.
Мне кажется что проблема в настройках или с WinARM-овским компилятором.
Вообще подскажите где взять arm-elf-gcc.exe и остальной комплект для работы с LPC2478 (или из чего надергать).
Из ИАРА можно как-то выдрнуть компилятор? он то точно работает - проверено.
_Pasha
Цитата(AndOr @ Dec 15 2010, 12:14) *
Error Makefile 43: Command syntax error
****
Но думаю Command syntax error с этим не связан.
Мне кажется что проблема в настройках или с WinARM-овским компилятором.

Ё! что тама думать?! Что написано в мэйкфайле на 43 строке??? Там и ошибка. maniac.gif для начала
AndOr
Готов согласицся, что на 43-й строке.
Вот только в чем ошибка?
Нажмите для просмотра прикрепленного файла
Я Makefile подложил Теровский из комплекта laughing.gif
Где бы еще почитать как и о чем там писать, кроме того что тут описано по настройкам компилятора?

Вот Makefile целиком.
Нажмите для просмотра прикрепленного файла
Кстати, в удобнее его редактировать?
А еще и Startup.s - тоже муть мутная...
Нажмите для просмотра прикрепленного файла
ИМХО это сильно усложняет старт, по крайней мере мне, не люблю делать то, смысл чего не осознаю. wacko.gif
Видимо избаловался я.
AHTOXA
Цитата(AndOr @ Dec 15 2010, 14:14) *
MAKE Version 5.2 Copyright © 1987, 1998 Inprise Corp.


У вас make не той системыsm.gif
Пропишите GNU make первым в PATH.
datiqor
Цитата(AndOr @ Dec 15 2010, 11:14) *
[100.0%] Running command: make.exe -f Makefile default
MAKE Version 5.2 Copyright © 1987, 1998 Inprise Corp.
Error Makefile 43: Command syntax error
*** 1 errors during make ***


Форматы makefile для GNU-make и Borland(Inprise)-make --- отличаются.
Убедитесь, что не пытаетесь обработать "гнутый" мэйкфайл.
_Pasha
надо поправить настройки для мейка вместо
make.exe -f Makefile default
надо make.exe -f Makefile all
хотя all не вижу в списке .PHONY smile3046.gif
навороченный мейкфайл, для компиляции всего, что есть в директории - это не гуд.
Тут кто-то когда-то наваял: Нажмите для просмотра прикрепленного файла - могут люди критиковать, но там хоть культурненько все.

Потом, для того, чтобы пользоваться С::В плагином армовым, надо его допилить - добавлять все, что coocox сделали для м3, например - т.е. по известным эвалюхам. В общем, в процессе развития пока еще эта дребедень.

Цитата(AHTOXA @ Dec 15 2010, 13:51) *
У вас make не той системыsm.gif
Пропишите GNU make первым в PATH.

Да, это засада - зоопарк мейков, лучше их все загнать в батник, если шелл не будет ругаться, чего не помню ...
AHTOXA
Цитата(_Pasha @ Dec 15 2010, 16:09) *
навороченный мейкфайл, для компиляции всего, что есть в директории - это не гуд.

А я как раз такие люблю. Чтоб не лазить в мейкфайл по каждому чиху. Добавил файл в папку проекта == добавил в проект. Убрал из папки проекта == убрал из проекта. Есть конечно минусы и у такого подхода, но плюсов, имхо, большеsm.gif

Цитата(_Pasha @ Dec 15 2010, 16:09) *
Да, это засада - зоопарк мейков, лучше их все загнать в батник, если шелл не будет ругаться, чего не помню ...


А можно просто прибить борланд мейк. Всё равно он скорее всего не используется.
AndOr
Мда.
Продвинулся, но не сильно...
Прописал путь к WinARM'овскому make.exe , получил вот что:

[100.0%] Running command: C:\WinARM\utils\bin\make.exe -f Makefile default
set -e; arm-elf-gcc -MM -I. Touchscreen.c | sed 's/\.o[ :]*/\.o Touchscreen.d : /' | sed 's/^\(.*\.o\)/.\/\1/' > Touchscreen.d
"sed" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
C:\WinARM\utils\bin\make.exe: *** [Touchscreen.d] Error 255
Process terminated with status 2 (0 minutes, 0 seconds)
0 errors, 0 warnings

Отсюда три вопроса:
1) О чем это?
2) В каком месте менять -f Makefile default на -f Makefile all ? Если это действительно надо...
3) То что я Makefile под С::В и планирую редактить это нормально, или есть какие нить спец. инструменты?

Спасибо за MakeFile_Arm.7z - изучаю и всем стартующим советую... a14.gif
MrYuran
Цитата(AHTOXA @ Dec 15 2010, 14:45) *
А я как раз такие люблю. Чтоб не лазить в мейкфайл по каждому чиху. Добавил файл в папку проекта == добавил в проект. Убрал из папки проекта == убрал из проекта. Есть конечно минусы и у такого подхода, но плюсов, имхо, большеsm.gif

На худой конец, есть ifndef, ifeq и многое другое.
Я так сделал переключение между разными версиями mspgcc (3,4).

Но вообще, мне тоже нравится, когда не надо файлы поимённо перечислять, достаточно вписать корень модуля.
Хотя, круче было бы автоматически выявлять зависимости и формировать по ним список файлов для компиляции.
Но это пока ниасилил..
Да и неохота ломать то, что работает

Цитата(AndOr @ Dec 15 2010, 14:50) *
3) То что я Makefile под С::В и планирую редактить это нормально, или есть какие нить спец. инструменты?

Это самое нормальное решение.
Иметь под рукой сценарий сборки, не вылезая из проекта.
Тем более что и синтаксис отлично подсвечивается, и даже комментарии по Shift-Ctrl-C/X ставятся/убираются правильно (#, а не // )
_Pasha
Цитата(AndOr @ Dec 15 2010, 14:50) *
Отсюда три вопроса:
1) О чем это?
2) В каком месте менять -f Makefile default на -f Makefile all ? Если это действительно надо...
3) То что я Makefile под С::В и планирую редактить это нормально, или есть какие нить спец. инструменты?
***
Как я понял там описание мейк файла для MArm.exe, т.е. мне нужно вместо make.exe указать путь к MArm.exe. Верно ?!

1. О том, что sed и прочие binutils не прописаны в PATH
2. Меняется в Project/Build options, и еще в свойствах проекта надо указать, This is a custom makefile
3. Нормально

cranky.gif там просто заготовка, которая берется при каждом file/new, потом сохраняете куда хотите... да что чесслово...поклацать лень?
AndOr
custom makefile указал давно, иначе бы он и не цепанулся ащще.
Сейчас в Project/Build options -> Buid Project/Target заменил C:\WinARM\utils\bin\make.exe -f $makefile $target на C:\WinARM\utils\bin\make.exe -f $makefile all
И... резальт тот же.
Цитата
1. О том, что sed и прочие binutils не прописаны в PATH

Это что, нужно в AUTOEXEC.BAT прописать? Типа SET PATH=%PATH%;C:\WinARM... ???
Если да, то дайте образчик плз, устал вжэ голову морщить...
Цитата
да что чесслово...поклацать лень?

Не лень. Я на ассемблере пару-тройку клав сточил. Вот отползаю на С.
Но привык знаете ли, понимать что делаю, точнее ассемблер приучил wacko.gif
Да, на счет MArm.exe ошибочка вышла, пардоньте rolleyes.gif
AndOr

ООчень интересная ссылочка.
А не отползти ли мне обратно в IAR (будь он не ладен)... wacko.gif
AndOr
Ну наконец что-то начало получаться, не без мата конечно, но хекс загрузился точка на ЖКД за пальцем бегает. maniac.gif
Всем пасиб за помощь и подсказки beer.gif
Но грабли еще не все собрал, так что прошу тему не забывать...

Вот например свежий вопрос:
Если WinARM'овскому компилеру что не понравится, то C::B это уже пофиг?
В смысле он строку с ошибкой показать не сможет? Или можно обратную связь наладить как-то?
AHTOXA
Цитата(AndOr @ Dec 16 2010, 03:03) *
ООчень интересная ссылочка.

Что-то там автор слегка приврал, насчёт выкидывания ГЦЦ обращений к volatile:)
MrYuran
Цитата(AndOr @ Dec 16 2010, 03:02) *
Если WinARM'овскому компилеру что не понравится, то C::B это уже пофиг?
В смысле он строку с ошибкой не показать не сможет? Или можно обратную связь наладить как-то?

Нормально парсит, ошибки/варнинги как компилятора, так и линкера.

Цитата(AndOr @ Dec 15 2010, 15:33) *
Это что, нужно в AUTOEXEC.BAT прописать? Типа SET PATH=%PATH%;C:\WinARM... ???
Если да, то дайте образчик плз, устал вжэ голову морщить...

Мой комп->Свойства->Дополнительно->Переменные среды->Path->Изменить->Добавляем свой путь
_Pasha
Цитата(AndOr @ Dec 16 2010, 02:03) *
ООчень интересная ссылочка.
А не отползти ли мне обратно в IAR (будь он не ладен)... wacko.gif

А Вы не читайте столетней давности заметки - они уже не актуальны, это ж не математика biggrin.gif
IgorKossak
AndOr, Ваша статья по ссылке древняя. Ваш тулчейн ещё более древний.
Почитайте лучше это. Тоже не самый свежак и на английском, но зато намного квалифицированнее написано.
А ещё можно почитать Getting Started от Code Sourcery.
AndOr
Итак, продолжаю пыхтеть, что бы освоить С::В, прежде чем выкинуть и забыть.
По совету бывалых, еще немного почитал на английском...
Цитата
Почитайте лучше это. Тоже не самый свежак и на английском, но зато намного квалифицированнее написано.
А ещё можно почитать Getting Started от Code Sourcery.

Хотя и так последние лет 8-10 на русском читаю на порядок меньше.
Поскольку местные Гуру делиться с чайниками не разбежались, я раздобыл свежий toolchain на стороне, ибо если я сам (чайник) его сделаю, то уверенности не будет.
Автор нового toolchain'а решил дать файлам свои имена, так что кроме прописки в PATH пришлось заменить и в Makefile все arm-elf-... на новые.
И подумал я, что теперь начну ваять, да не тут то было.
например меня сразу остановило вот это:
Нажмите для просмотра прикрепленного файла
при том флаг CFLAGS = -std=gnu99 в Makefile присутствует:
Нажмите для просмотра прикрепленного файла

Вопрос 1:
Это и правда не допустимая конструкция в GCC или я еще что-то не настроил?
Вопрос 2:
Как сделать так, чтобы такие ошибки (на выходе компилятора) в Build messages отправляли к строке с этой ошибкой?
Я имею ввиду не номер строки, а именно "правой кнопкой мышки, двумя кликами или еще как-то" попадаешь на нужную строку нужного файла, даже если он не открыт в данный момент.

Жду советов, а пока отползаю в IAR, - надо программу все же дальше продвигать, да и похоже "глаз замылился" во всех этих настройках...
AHTOXA
Цитата(AndOr @ Dec 25 2010, 05:00) *
при том флаг CFLAGS = -std=gnu99 в Makefile присутствует:

А двумя строчками ниже CFLAGS заменяется на что-то другое.
Замените там "CFLAGS =" на "CFLAGS +=".
AndOr
AHTOXA респект!
Теперь кушает.
Но вопрос один еще остался:
Цитата
Как сделать так, чтобы ошибки на выходе компилятора из Build messages отправляли к строке с этой ошибкой?
Я имею ввиду не номер строки в файле, а именно "правой кнопкой мышки, двумя кликами или еще как-то" попадаешь на нужную строку нужного файла, еще лучше, если он до того не был открыт.

И еще один вопрос нарисовался:
Не могу настроить дебаг, что бы видеть значения и вообще жизнь переменных.
Иногда важно знать даже как они убиваются, особенно если используются регистры.
А тут просто список всего подряд в колоночку, как то не очень. laughing.gif
Я правда не помню когда последний раз дебажил (программые ловушки мне ближе), но помню как, как-то давно, дебажил сложную подпрограмку критичную ко времени исполнения и для частого вызова.
Так что подскажите, если не трудно, это хотя бы удобно реализовано в С::В для реальной работы или есть где по-лучше?
AndOr
Решил немного отвлечься (пока помощь не пришла) и полазил по другим веткам где GNU упоминается.
Ба! Да все мои помощники на Eclipse сидят... sad.gif и toolchain там от klen думаю по-лучше моего "на стороне" добытого будет...
Я конечно люблю делать свои ошибки нежели повторять чужие, но пожалуй надо тоже закачать Eclipse и по горячим следам сравнить с С::В.
Взгляд с колокольни начинающего toolчайника, так сказать.
koluna
Здравствуйте!

Решил пока не открывать новую тему и вопрос задать здесь.

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

Может, плагин какой... или сценарий?
MrYuran
Цитата(n_bogoyavlensky @ Feb 2 2011, 09:37) *
Решил пока не открывать новую тему и вопрос задать здесь.

Это правильно, пусть будет всё вместе.
Пора бы уже FAQ состряпать, а то сам иногда забываю разные вещи по мелочи...
Цитата
Можно ли как-нибудь в Code::Blocks автоматизировать процесс "сворачивания" функций и т. п. (т. е., скрыть их тела, оставив заголовки, чтобы на экране места занимали минимум)?
Если исходник большой и в нем много функций, то напрягает постоянно вручную нажимать на "-", чтобы скрыть функции, с которыми работать не нужно в данный момент...

Settings->Editor->Folding

Fold All On File Open v
Bass
а еще symbols browser может тут помочь, тогда и сворачивать не надо.
(settings->editor->Code-completion...->symbols browser)
koluna
Цитата(MrYuran @ Feb 2 2011, 09:55) *
Это правильно, пусть будет всё вместе.
Пора бы уже FAQ состряпать, а то сам иногда забываю разные вещи по мелочи...


FAQ было бы очень неплохо состряпать.

Цитата
Settings->Editor->Folding

Fold All On File Open v


Спасибо, нашел sm.gif


Цитата(Bass @ Feb 2 2011, 10:09) *
а еще symbols browser может тут помочь, тогда и сворачивать не надо.
(settings->editor->Code-completion...->symbols browser)


Хммм... пока не понял как.
MrYuran
Цитата(n_bogoyavlensky @ Feb 2 2011, 10:42) *
FAQ было бы очень неплохо состряпать.

Если есть что сказать, ВЭЛКАМ!

Начал было, да вот пока никак...
Да и с картинками пока непонятно что, а без картинок тоскливо...
Bass
Цитата(n_bogoyavlensky @ Feb 2 2011, 13:42) *
Хммм... пока не понял как.

ну упрощает навигацию по коду, когда все функции перед глазами...быстро перейти на нужную не составляет труда.
koluna
Цитата(Bass @ Feb 2 2011, 12:35) *
ну упрощает навигацию по коду, когда все функции перед глазами...быстро перейти на нужную не составляет труда.


Не понял пока как его заюзать...
Выставил где Вы показали "Display as free floating/docking window".
Появилось окно, но оно пустое... ничего там нет...

Bass
Цитата(n_bogoyavlensky @ Feb 2 2011, 17:31) *
Не понял пока как его заюзать...
Выставил где Вы показали "Display as free floating/docking window".
Появилось окно, но оно пустое... ничего там нет...

Как все выглядит у меня:
во-первых он встраивается в панельку справа "managment" если не ставить галочку docking window
далее...выставляем в symbols browser режим view "current fike's symbol" чтобы показывать данные для просматриваемого файла
теперь в проекте при просмотре файла тыкаем в панели symbols browser на строчку global functions и ниже (за разделителем) видим перечень всех функций в текущем файле.
жмем 2 раза на нужное название и в окне редактора прыгаем на эту функцию.
MrYuran
Это имеется в виду наверно панель Symbol Browser - удобная, правда я как-то пока не привык пользоваться.
Я её вытащил отдельным фреймом, благо wide 24" монитор позволяет sm.gif
Bass
да...именно о ней речь и идет
MrYuran
А я вот никак не могу побороть такой феномен:
В одном проекте выводится полный лог всего процесса компиляции, а в соседнем - только конечный результат.
Либо, если возникает error, а не warning, то тоже выводится полный список.
мэйкфайлы различаются только списком подключенных модулей, различий в настройках проектов не обнаружил, однако ж...

Что за напасть, не понимаю.
Код
mingw32-make.exe: Nothing to be done for `makefile'.
del .\Obj\*.o
del .\Lst\*.lst
Cleaned "1002TU - Release"

-------------- Build: Release in 1002TU ---------------

Target is up to date.
Nothing to be done.

Вот результаты во втором случае
Bass
настройки проектов для сборок debug и release тоже сравнивали? может в них различия

Возник вопрос, заметил такой косяк:
есть проект под atmega16a, после компиляции вижу что на порту А всегда 0 (хотя на выход инициализируется - видно в протеусе).
теже файлы скомпилированные под AVR Studio под atmega16 дают нормальный результат.
Кто-нибудь с подобным сталкивался?
используется соответственно avr-gcc, в code::blocks добавлял в перечень МК atmega16a. Компилировал для обоих вариантов (m16 и m16a) - эффект один, на порту А нули.
Bass
вопрос снят.
дело было в опции компилятора "Produce debugging symbols (-g)" в сборке Debug. Хотя и странно почему она так влияет на результат.
koluna
Цитата(Bass @ Feb 2 2011, 16:23) *
во-первых он встраивается в панельку справа "managment" если не ставить галочку docking window


Нашел его там sm.gif

Цитата
далее...выставляем в symbols browser режим view "current fike's symbol"


Выставил.

Цитата
теперь в проекте при просмотре файла тыкаем в панели symbols browser на строчку global functions и ниже (за разделителем) видим перечень всех функций в текущем файле.


А вот этого у меня нет.
Картинка ниже.
MrYuran
Цитата(n_bogoyavlensky @ Feb 3 2011, 13:38) *
А вот этого у меня нет.
Картинка ниже.

А вот это есть?
Нажмите для просмотра прикрепленного файла
koluna
Цитата(MrYuran @ Feb 3 2011, 14:47) *
А вот это есть?


Да, плагин включен.
Может, еще что включить надо?
Bass
Файл именно из текущего проекта должен быть...такая вот недоработка...в других файлах он разбор не делает.
koluna
Цитата(Bass @ Feb 3 2011, 18:25) *
Файл именно из текущего проекта должен быть...такая вот недоработка...в других файлах он разбор не делает.


Файл из текущего проекта... как и все остальные файлы... ни в одном не работает sad.gif
_Pasha
Цитата(MrYuran @ Feb 2 2011, 19:47) *
А я вот никак не могу побороть такой феномен:

Что-то с перенаправлением потоков?
Bass
Цитата(n_bogoyavlensky @ Feb 3 2011, 21:29) *
Файл из текущего проекта... как и все остальные файлы... ни в одном не работает sad.gif

странно...а при загрузке в области уведомлений никаких сообщений нету?
koluna
Цитата(Bass @ Feb 4 2011, 08:04) *
странно...а при загрузке в области уведомлений никаких сообщений нету?


При загрузке проекта?
Область уведомлений - "Logs & others"?
По F2 которая?

Проект загрузил - там на всех вкладках пусто...

Гы... сейчас перешел в очередной раз в Management->Symbols.
Все появилось sm.gif
MrYuran
Цитата(n_bogoyavlensky @ Feb 4 2011, 09:20) *
Гы... сейчас перешел в очередной раз в Management->Symbols.
Все появилось sm.gif

Похоже, настройки применяются один раз при загрузке IDE

Цитата(_Pasha @ Feb 3 2011, 21:27) *
Что-то с перенаправлением потоков?

Помню, где-то я про это читал...
Однако где, когда и что...
Память превратилась в ФИФО-буфер, причём очень короткий sad.gif

В консоли всё нормально, make all выводит полный лог, от и до.
Bass
Можно ли элемент из Tools поместить на панельку в виде кнопки?
_Pasha
Цитата(MrYuran @ Feb 4 2011, 10:35) *
Помню, где-то я про это читал...
Однако где, когда и что...

Максимум, с чем я сталкивался - под вынью надо было кое-где явно указывать cmd /c <command_to_execute>

Цитата(Bass @ Feb 8 2011, 08:54) *
Можно ли элемент из Tools поместить на панельку в виде кнопки?

Низзя.
Bass
А переключатся между вкладками без назойливого всплывающего окошка возможно? чтоб просто по ctrl+tab перелетал на последнюю открытую вкладку
_Pasha
Цитата(Bass @ Feb 17 2011, 12:18) *
А переключатся между вкладками без назойливого всплывающего окошка возможно? чтоб просто по ctrl+tab перелетал на последнюю открытую вкладку

А Вы переключались при таких условиях:
1. Несколько открытых проектов
2. Файлы называются одинаково
?
Без окошка - сплошной бардак
Имхо, это в хотелки надо внести - чтоб если имена открытых файлов уникальны, то окошко и не надо...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.