|
IDE под кросскомпилятор Sourcery CodeBench Lite IA32 GNU/Linux, ищу IDE |
|
|
|
Nov 30 2012, 18:41
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(alexast @ Nov 30 2012, 23:06)  Может быть кто уже пробавал пристыкнуть IDE оболочку под кросскомпилятор Sourcery CodeBench Lite IA32 GNU/Linux чтобы компилировать под ARM. Если да то подскажите что можно использовать в качестве IDE под Линукс. Заранее спасибо с уважением Алексей. Мне кажется, что можно прикрутить оболочку Code::Blocks. Что касается меня лично, то я тоже в свое время, когда перелез с Виндовс на Линукс, тоже страдал такой фигней -- "вынь, да положь мне на тарелочку оболочку!" Ну, привык я работать в Виндовсе, и на мир смотрел через призму а-ля-Виндовс. Я тоже искал оболочку, которая меня бы устроила. Не нашел. Но потом, подначитавшись умных книжек (Э.Реймонд "Искусство программирования для UNIX", Б.Керниган и Р.Пайк "Программное окружение UNIX", Уильямс Ричард Стивенс "UNIX. Профессиональное программирование", Н.Мэтью и Р. Стоунс "Основы программирования в Linux" и др.), я кое- что понял. Я понял, что я неправильно понимаю дух (природу) Линукса. Я пытаюсь требовать от него Вендового поведения или Вендовых подходов. Виндовс и Линукс -- это две разные технологии, хотя у них есть много чего схожего. Феномен IDE в Линуксе -- это не то, чтобы нечто второстепенное,... скорее -- не столь важное, как это есть в Виндовсе. Виндовс идет по пути: "всё, что можно, -- всё вложить в (одну) программу. Всю функциональность закатать по максимуму. Надо-не надо -- не важно! Важно, чтобы программа была самодостаточной жирной единицей, независимой от других программ." Такой подход становится понятен, когда начинаешь задумываться о природе Виндовс. Виндовс и вся ее экосистема задумана и живет с целью ПОЛУЧЕНИЯ ПРИБЫЛИ. И если ты (абстрактно, не персонально к топикстартеру) -- программист, то твоя задача -- писать и продавать свои проги. Следовательно, тебе будет очень не уютно, когда твоя прога должна будет использовать какую-то стороннюю функциональность. Поэтому ты будешь вынужден напихать в свою прогу по максимуму всё. Всё что надо и не надо. В результате мы наблюдаем появление таки монстров как Atmel Studio. Жуть! "А шо делать?" -- Рабинович. (с) фраза из анекдота Линукс же идет несколько иным путем. Парадигма Линукса состоит в том, что имеется система, состоящая из ядра и множества утилит и программ. Утилиты и программы обладают ограниченной функциональностью, но при этом легко стыкуются друг с другом. Таким образом, обладая набором тщательно отлаженных качественных программ мы с помощью "клея" (скриптов и каналов) можем создавать из них любую, нужную нам, функциональность. Поскольку небольшие программы и утилиты легко писать и отлаживать, то это гарантирует высокую их надежность. А если система состоит из надежных проверенных "кирпичей", то и вся стена будет так же надежна. Остается только добавить, что если даже вдруг случайно где-то встретится трухлявый "кирпич", то, поскольку, никто секретов из исходников не делает, этот кирпич тут же будет замечен и исправлен. Разнообразие "кирпичей" и их способов соединения порождает бесконечное число вариантов -- стен, строений, домов и т.д. Имея набор акварельных красок, можно нарисовать ЛЮБУЮ картину. Виндовс же вместо красок предлагает уже готовый и сильно фиксированный эстамп. Что называется -- почувствуйте разницу. Я Вас не убеждаю, что одна одна операционная система лучше, чем другая. (В конце концов, каждый сам делает свой выбор!) Я лишь говорю о том, что не все подходы , которые приняты в Виндовсе, нужно переносить в Линукс. Они, конечно, наверняка будут работать, но это не совсем верное решение -- переносить один к одному методы работы при фундаментальной смене технологий. Намаетесь, потому как природа операционной системы -- другая, здесь другие подходы. Понятно, что используя родные подходы для системы, можно добиться значительно больших результатов, чем при использовании "иностранных". Теперь, я хотел бы вернуться к IDE. Я перебрал несколько IDE, и остановился на том, что наиболее лучим вариантом для меня буде не готовая IDE, а то, что я сам создам своими руками из готовых кирпичей. Мои кирпичи -- это окна Наутилуса и Гном-терминала. Это несколько рабочих столов, это могут быть чистые консоли (Ctrl-Alt-F1? Ctrl-Alt-F2, ...), в том числе и удаленные консоли на других компах. Это мои Мейк-файлы, это компиляторы, отладчики, утилиты и другие программы, которые я вызываю из Мейк-файла. Ну и другие мелочи, которые я не хотел бы сейчас перечислять. Ни один IDE монолитный не способен на такую гибкость! Я согласен, что по началу чувствуешь себя несколько дискомфортно, из-за того, что оно (аналог IDE) не существует в виде единого монолита, а как-то все разрозенно и раскидано. "Где, что и как потом собирать?" -- это надуманный вопрос. Это влияние Виндовса на наши умы (по крайней мере -- на мой). После некоторого времени работы с таким виртуальным IDE, убеждаешься не только в его работоспособности и возможности его принципиально запускаться каждый раз, но и в его удобстве и в своем всемогуществе УПРАВЛЯТЬ системой. (Зря что-ли пошла поговорка: кто кого имеет -- ты систему, или она тебя.) Поэтому, я хотел бы обратить Ваше внимание на вот какой момент. IDE в Линуксе -- это, конечно, хорошо. Но если Вы нацеливаетесь на серьезную работу, то Вам по-любому придется копать глубоко Линуксовые технологии, и вот тогда... тогда Вам откроются секреты, почему в Линуксе с IDE "как-то не очень". Я не знаю, сколько времени Вы уже пользуете Линукс, но я могу сказать, что сменить образ жизни с Вендового на Линуксовый -- это достаточно ощутимая работа ума. Говорить, что легко перскочил с Венды На Линукс -- это лукавство. Ну, либо человек просто идет по верхам, и глубоко не копает. Чудес не бывает, но есть определенный объем умственной работы, который нужно совершить, и есть ограничение -- 24 часа в сутки на все про все! Зайдите ко мне в блог, у меня там есть несколько публикаций для начинающих эмбеддеров, где я расписываю как работать в Линуксе, как создавать свою среду для работы с микроконтроллерами. Не поймите меня меня неправильно -- я не против использования IDE в Линуксе. Я лишь попытался обрисовать общую картину, расширить, так сказать, мир, чтобы вы не замыкались на IDE, а могли видеть дальше и больше, и знать, что вообще происходит. Дополнительные знания дают правильную ориентацию. А правильная ориентация приведет к правильному выбору инструментария для достижению ваших целей. Еще раз мои извинения, за "много слов". Ну не умею я говорить кратко о сложных технологиях.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Dec 1 2012, 07:29
|
Частый гость
 
Группа: Участник
Сообщений: 150
Регистрация: 11-05-09
Пользователь №: 48 916

|
Цитата(_Pasha @ Nov 30 2012, 23:30)  Ситуёвина такая. 1. Code::Blocks хорош, но из-за небольшой кривизны сабжевого GDB плагин отладчика там не работает 2. Eclipse хорош, но CDT плагин из-под нее радует сюрпризами. В общем, эта часть там глючная. В связи с этим создается проект , основанный только на Makefile. Зато отладка работает. Собсна, что человеку надо: редактор с автозаполнением, да ctags... Преогромнейшее всем спасибо за ответы. Логика zhevakа мне понятно. Теперь вкратце о себе. Я некий такой нулик без хвостика как в Линуксе так и Виндовз. Поэтому будучи пластичным материалом из меня можно сделать что угодно. Поэтому тезисы мне ясны, и скорее всего перед прикручиванием IDE наверное попробую без него. Я только начал изучать Линукс сразу на своей задаче. В блог схожу и почитаю и приму обязательно грамотные мысли мудрого опытного человека. Я прекрасно понимаю при переходе с одного на другое возникает некое противление. Ну как всё неудобно, ну неужели нельзя было сделать как ...А потом спустя какое-то время уже работаю начинаешь понимать да нет не всё так просто. Поэтому проработав более 10 лет преподавателем в телекоме и преподавая технику определённого производителя когда встречаешься с теми кто работал с другими технологиями и аппартными исполнениями очень хорошо понимаю, что мне докладывают. Вся информация принята. Я в себе это чувство научился притуплять (поспешные выводы) как у Вас всё не правильно. Так что в Линукс. Буду постигать. С уважением Алексей.
|
|
|
|
|
Dec 3 2012, 09:15
|
Местный
  
Группа: Свой
Сообщений: 234
Регистрация: 3-10-04
Из: Кукуево-Дальнее
Пользователь №: 767

|
Цитата(alexast @ Nov 30 2012, 21:06)  Может быть кто уже пробавал пристыкнуть IDE оболочку под кросскомпилятор Sourcery CodeBench Lite IA32 GNU/Linux чтобы компилировать под ARM. Если да то подскажите что можно использовать в качестве IDE под Линукс. Я остановился на make + qtcreator + openocd.
|
|
|
|
|
Dec 6 2012, 13:03
|
Гуру
     
Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136

|
Цитата(_Pasha @ Dec 6 2012, 15:40)  C::B гораздо удобнее эклипса. Вопрос по Code::Blocks: как там обстоят дела с навигацией по коду (к примеру, прыгнуть на определение переменной, увидеть список функций, вызывающих подсвеченную и т.д.) ? Вопрос не праздный, так как я давно использую Source Insight и сильно подсел на эти фишки. К сожалению, Source Insight при анализе кода не разворачивает макросы (в частности, protothreads), поэтому в некоторых участках кода навигация не работает. Кроме того, он сваливает в одну кучу одноименные переменные и функции, даже если они в разных файлах и объявлены как static. Для пробы установил Eclipse: там нет таких проблем, но его монструозность напрягает.
|
|
|
|
|
Dec 6 2012, 14:44
|
;
     
Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509

|
Цитата(scifi @ Dec 6 2012, 17:03)  Вообще-то вышел RC недавно 12-й версии, но под вынь, пробовать не особо когда. Эклипс с этой точки зрения хорош, но там даже не монстр-сть - там некоторые вещи казалось бы настроил и вперед - нет, напрягают. По мелочам, но из этих мелочей - нивазможна  просто. И чтобы работал разворот макросов - нужно дефайнить внешние макросы по два раза и builtins В C::B 10 это все не работает, как хотелось бы.
|
|
|
|
|
Dec 6 2012, 15:01
|
Местный
  
Группа: Свой
Сообщений: 437
Регистрация: 27-08-04
Пользователь №: 551

|
QUOTE (scifi @ Dec 6 2012, 15:03)  К сожалению, Source Insight при анализе кода не разворачивает макросы (в частности, protothreads), поэтому в некоторых участках кода навигация не работает. Кроме того, он сваливает в одну кучу одноименные переменные и функции, даже если они в разных файлах и объявлены как static.
Не в тему, но вы наверняка знаете о understand c++. У нас в проектах используется изощренная система макросов и SI действительно пасует перед такими задачами. В таких случаях understand просто вне конкуренции. У нас автоматом генерятся файлы проектов с помощью make файла CODE #------------------------------------ # Build "Understand C++" database #------------------------------------
# Make a file listing the C source files for the target $(TARGET)-filelist.txt: $(CSRCFILENAMEFILES) @findstr /E /I /C:".c" $(subst \,\\,$(RELSDIRFULL)\*.csrc) | $(SED) -r "s/^.*://g" - > $(subst \,\\,$(RELSDIRFULL)\$(TARGET)-filelist.txt)
$(TARGET).udc: $(TARGET)-filelist.txt @echo Making Understand C++ database $@ @echo $(C51INC),%CD%| $(SED) "s/,/\n/g" - > $(subst \,\\,$(RELSDIRFULL)\$(TARGET)-includepathlist.txt) @echo __C51__, $(CDEFINES)| $(SED) "s/ *, */\n/g" - > $(subst \,\\,$(RELSDIRFULL)\$(TARGET)-cdefineslist.txt) c:\SciTools_26_32\bin\pc-win32\und -create -db $(subst \,\\,$(RELSDIRFULL)\$@) -addFiles @$(subst \,\\,$(RELSDIRFULL)\$(TARGET)-filelist.txt) -languages C++ -include_addfound On -include_addfoundsys On -define @$(subst \,\\,$(RELSDIRFULL)\$(TARGET)-cdefineslist.txt) -include @$(subst \,\\,$(RELSDIRFULL)\$(TARGET)-includepathlist.txt) -compiler_name "Keil c51" -analyzeAll
# "understand" database creation is optional. # use "make UNDERSTAND_C=1 ZWxxxxx...." ifeq ($(UNDERSTAND_C),1) all: $(TARGET).udc endif Идея простая - в папке RELSDIRFULL собирается список файлов проекта, добавляются пути с инклюдами includepathlist.txt и значения дефайнов cdefineslist.txt. Создается база данных проекта и запускается на анализ. Understand анализирует очень акуратно, у нас в некоторых проектах почти все функции определяются через макросы. Навигация в SI в этом случае не работает. С Understand все работает замечательно.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|