Сообщение от kvark85
|
кстати,может кто знает, подскажите, есть ли что либо подобное CVAVR на линукс? очень пригодилось бы
|
Я попробую ответить.
Прямого аналога нет. Но не спешите расстраиваться!
У Вас сейчас незавидное тяжелое время. Время выбора себе бизнес-партнера. Под партнером я подразумеваю программное обеспечение, которое не откажется работать, не кинет вас в неподходящий момент. Которое в случае необходимости Вы сможете починить, подкорректировать и дальше вместе с ним продолжать путь. Т.е. партнер, на которого можно положиться, который Вас понимает и Вы его понимаете и можете друг другу оказать помощь.
Сначала ответьте себе на вопрос: что для Вас важнее графическое мышкотыкание по готовым кнопочкам или же понимаение сути происходящего? (ну, в смысле того, как оно это все устроено и работает. И что нужно написать, чтобы сделать тонкую настройку проекта.)
Если Вы навострили лыжи в Линукс, то ответ уже известен.
Начну с плохого. Почему мне, когда я еще работал в Венде, не понравился CV. Закроем глаза на то, что CV был как у всех -- ворованный. (Это к стати тоже сподвигло меня перебраться на Линь.) Как-то работая над очередным проектом, я вдруг обнаружил, что я никак не могу передать структуру из функции. Перебрал все, обратился на форум electronix.ru, где мне подтвердили мои догадки -- CV не умеет это делать в принципе. Потом были еще пара-тройка таких же "отказов" и я понял, что с CV надо завязывать. Эта система для начинающих, относить себя к коим было бы уже как-то странно.
Перебрался на IAR. Разумеется, тоже ворованный. По сравнению с CV он отличался мощностью и "непричесанностью". IAR -- это что-то типа PICAD-а, такое же монструозное и латанное-перелатанное. Эти два проекта развивались много лет и каждая версия "долепляла" очередную порцию функционала по типу "а куда получиться прикрутить, туда и ладно". Ну да бог с ними!
Перекинувшись в Линух, я тоже искал замену привычному инструментарию. И я очень сожалел, но я ничего подобного не нашел и мне приходилось мучиться со своими проектами в консоли. И я реально мучился. Я ведь все еще был виндузятником и, естественно, все мои попытки работать в Линухе были насквозь про-Вендовыми. Конечно, ничего кроме отрицательных эмоций такой способ общения с Линем не вызывает. (Понятно, почему вендовые пользователи так сильно не любят Линух -- они его меряют своей Вендовой линейкой.)
Итак. Для полноценной и приносящей удовольствие работы мне оказалось нужно совсем не много. (Мой Линух -- это Убунту. Поэтому я буду говорить в контексте Убунты.) Оказалось, что для полного счастья мне достаточно иметь на графической консоли три окна:
1. Окно открытого текстового редактора. (Слева вверху. Занимает большую часть экрана).
2. Окно терминала (псевдоконсоли). (Внизу, высотой примерно 1/3 от размера экрана).
3. Окно Наутилуса. (Справа)
Другими словами, я сконструировал самопальную IDE.
В качестве тестового редактора я использую Gedit. Для одновременной работы с несколькими текстами этот редактор имеет вкладки. В нем так же предусмотрена подсветка синтаксиса и другие фичи, типа автоматического отступа. Т.е. минимальный набор необходимого функционала имеется.
По нажатию на F3 Наутилус позволяет открывать вторую панель. Это бывает нужно, когда возникает необходимость скопировать файл из одного места в другое.
Консольное окно. Вообще под консолью подразумевается все то, что находится на экране при нажатии на Alt-Ctrl-F1..7. Первые шесть "экранов" -- это символьные консоли, в них нет никакой графики. Седьмая консоль -- графическая. Но на этой графической консоли можно еще открыть целую кучу текстовых консолей. Вообще, упрощенно говоря, при входе в систему пользователю предоставляется консоль, которая должна запросить имя и пароль. При этом существует выбор запустить сеанс под тем или иным пользователем. Линукс -- многопользовательская система, а это предполагает возможность одновременной работы нескольких пользователей. Так вот, текстовые консоли, которые открываются в графической консоли, не имеют этой процедуры. Они не спрашивают паролей и сразу принадлежат тому пользователю, который открыл графическую консоль. Поэтому они и называются псевдоконсоли. Там еще есть много всяких нюансов, но я не хотел бы, чтобы лекция о компиляторах превратилась в лекцию о консолях.
Я использую gnome-terminal. Он также позволяет открыть несколько вкладок.
Теперь, когда у Вас на экране три открытых приложения, Вы можете переключаться между ними с помощью ... (про мышь забываем! Чай не в Венде сидим.) с помощью Alt-Tab.
Внутри приложения (Gedit или gnome-terminal) по вкладкам перемещаться с помощью Ctrl-1...9, где цифра соответствует номеру вкладки.
Кроме того, если у Вас на экране произошло скопление окон, то вы можете переключить рабочий стол. Нажмите Ctrl-Atl-(стрелка влево) или Ctrl-Atl-(стрелка вправо). Некоторые извращенцы создают двумерное поле из рабочих столов, тогда можно еще и воспользоваться Ctrl-Atl-(стрелка вверх) и Ctrl-Atl-(стрелка вниз).
Блин! Я многое могу и хочу сказать. Но как? Не писать же тут книгу по работе ембеддеров в среде Линуха.
Хех! Продолжим.
Вот примерный алгоритм, как я создаю новый проект и работаю с ним.
Вначале я открываю окно Наутилуса и позиционирую его в правую часть экрана. (Все это можно автоматизировать в виде скриптов. Но я со скриптами не очень.) Открываю свой рабочий директорий и создаю в нем поддиректорий для проекта. Захожу в него.
Если у меня существует старый проект, который я могу взять за основу (А это почти всегда так и это даже рекомендуется делать -- использовать то, что уже отработано), я нажимаю F3. В наутилусе открывается вторая панель. В ней перехожу в директорий старого проекта и копирую из него файлы в директорий нового проекта. Затем снова переключаю панель и нажимаю F3. Вторая панель закрылась.
Затем, находясь в Наутилусе, я нажимаю Ctrl-L, и верхний рад кнопочек с именами директориев превращается в строку редактирования. Но мне не нужно редактировать путь, мне нужно скопировать его. Я нажимаю Ctrl-C. Строка пути скопирована во второй буфер обмена. (Вы в курсе, что в Линуксе не один буфер обмена и работают они немного по разному?)
Далее, я нажимаю Ctrl-T (комбинация действует не в приложении, а вообще) и на экране появляется окно терминала (с открытой и залогиненной псевдоконсолью). Перехожу в терминал (Alt-Tab). Консоль открывается в домашнем директории пользователя, но мне нужно попасть в рабочий. Строка (путь) к рабочему директорию у нас лежит в буфере обмена. Я набираю команду cd и нажимаю... хе-хе, Виндузятники -- радуйтесь! юю нажимаю колесико мыши. Строка из буфера копируется в командную строчку в консоли. Должно получиться что-то типа:
$ cd /home/alex/work/spectron
Остается нажать Enter. Вы в консоли, и находитесь в рабочем директории. Не отходя от кассы нажимаем Ctrl-Shift-T (или придется мышкой, если у вас Ctrl-Shift занято под переключение раскладки клавиатуры) и открываем новую вкладку. Если хотите, можно открыть еще одну. Все вкладки открываются в том же директории.
В первой вкладке я обычно даю команды на компиляцию и, при необходимости, получение листинга. Во второй вкладке у меня работает программатор (avrdude) или debugger. По разному. Я иногда работаю с MSP430, иногда с AVR, иногда с Cortex-ами. У них у каждого немного свои особенности. Возможно Вы выработаете свой подход.
Но давайте пойдем дальше. В рабочем директории у меня находится Makefile, который описывает действия, как компилировать, как линковать, как удалять ненжные файлы, как заливать Хекс в микроконтроллер, и т.д. Все ваши действия, которые Вы заметите, что Вы из сочершаете раз за разом, Вы можете занести в него. Потом Вы этот Mikefile будете копировать другие (новые проекты). Это Ваш капитал.
Это может сейчас не очень понятно, но потом все встанет на свои места. Спустя какое-то время Вы почувствуете, что Вы свой "движок" способны разобрать и заново собрать с закрытыми глазами. Это и есть независимость. Это такой кайф, что не передать словами. Как можно объяснить человеку понятие "свобода", если он никогда этого не знал?
Я отдаю себе отчет, что я тут уже всех утомил. Но у кого остались вопросы, попробуйте почитать тут
http://forum.e-lug.ru/viewforum.php?id=27 . Это наш местный форум Линуксойдов, конкретно тема про паяльники и микроконтроллеры. Я не перетягиваю людей на тот или иной форум. В интернете нет расстояний. И мне писать свои опусы без разницы туда или сюда.