Notepad++ и avr gcc

    Из толп просто редакторов кода, не IDE, лучшим, на мой взгляд, является Notepad++.
image
Он простой, имеет качественную подсветку синтаксиса с подключением стилей, а также русскую локализацию и много различных плагинов.

Для использования с AVR gcc тулчейном его надо немного допилить.

В частности, у Notepad++ есть очень удобный плагин NppExec, он представляет собой консоль с подсветкой вывода и созданием макросов для исполнения, а так же можно прикрутить хоткеи к этим макросам. И соответственно в этой консоли можно вызвать make.
Плагины -> Plugin Manager -> Show Plugin Manager
Находим в списке NppExec и жмем Install.

Далее
Плагины -> NppExec ->

-> Execute…
Тут создаем три скрипта для макросов make all, make clean и make program.
->Advanced Options
Тут настраиваем цвета и макросы

-> Console Output Filters…
Тут настраиваем подсвечивание ошибок
%FILE%:%LINE%: warning:*
%FILE%:%LINE%: error:*

Опции -> Горячие клавиши -> Plugin commands
Тут выставляем хоткеи.
Я поставил:
F4 — make clean
F5 — make all
F6 — make program
( эти хоткеи надо освободить от использования другими функциями )
Соответственно чтобы пере собрать проект и залить его в контроллер надо по очереди нажать F4 F5 F6!
Или зайти в макросы:


Потом можно пройтись по настройкам и выбрать себе оптимальную конфигурацию. Подобрать стиль, шрифт, я пользуюсь стилем Bespin и шрифтом Lucida Console. Этот шрифт моноширинный и им очень удобно делать псевдо-графические подписи, будучи уверенным в том, где расположатся все символы.
Например:


Имеется также простенькое атодописывание кода из тех слов что встречаются в этом же файле.
В общем, Notepad++ на вид намного приятней чем многие стандартные IDE (имея ввиду AVR Studio 4). Если не хочется заморачиваться с грамосткими проектами, то Notepad++ идеально подойдет.

Комментарии (37)

RSS свернуть / развернуть
Сам всё пишу в нём )
Правда собираю и отлаживаю в авр студио.
0
А вот я предпочитаю все в целевой IDE писать. Ну кроме батничков, к ним IDE не предусмотрена) Благо, подсветка есть везде, а больше почти ничем N++ не радует (по крайней мере регулярно нужным, замена по регэкспам и выделение столбцом иногда очень даже полезны).
0
По сравнению с авр студио 4, notepad++ много чем радует)
+1
Ну, лично меня в первую очередь интересует навигация и подсказки. Этого нет ни там, ни там (зато есть в студии 5). Зато студия интегрирована с тулзами, а N++ — нет.
Разумней тогда уж (с моей точки зрения разумеется) воспользоваться пятой студией (юзая для отладки сим из 4-й, если МК не поддерживается симом пятой) или поставить Code::Blocks. N++ я разумеется тоже часто юзаю, но для других целей — почитать исходник (за исключением случаев, когда исходник сложен и без средств навигации IDE малочитабелен), почитать/подправить текстовый файл (или строчку в исходнике без его компиляции) и т.п.
0
Ну все таки да, NP++ не IDE. Но для маленьких проектов вполне может ее заменить!
0
удобный, давно использую. не появился плагин атодописывание по нескольким файлам?
0
  • avatar
  • ZiB
  • 20 мая 2011, 06:27
суровые программисты пользуют Vim
0
под линухом гоняю, хорош :)
0
да, я тоже. а вот под виндой почему-то не уживаюсь я с ним
0
А что за шрифт используется? Не очень похож на курьер
0
Сказано же, Lucida Console. Еще есть из моноширинных Consolas, его последние версии мелкомягкой студии используют. Мне впрочем больше всего нравится Courier New.
0
попробуйте Droid Mono
0
Очень хорошо. С pn в winavr не сравнить.
0
Очень долго этим PN из WinAVR пользовался, но топорность настроек добивала, особенно, когда эти самые настройки слетали непонятно почему…
0
Всё хорошо, но, как я понимаю, из консольного окна при щелчке по ошибке, в окно редактора (ошибочную строку) не улетает, как в PN? Тогда весь кайф теряется.
0
Неправда, по двойному счелчку вполне переходит на ту строку где ошибка/варнинг…
0
Во, блин. А у меня нет… Вываливается окно Console, сыплются ошибки и никакой реакции при двойном щелчке по ним…
0
Ага, неплохо бы всё до конца дочитывать! Поставил подсвечивание ошибок в Console Output Filters и всё ОК. Лох, одним словом((.
0
мне avr studio 5 больше нравится… отлаживаю на макетке своей
0
hexanaft, если не сложно, выложите цветовую схему?
0
  • avatar
  • Muzl
  • 27 сентября 2011, 17:21
Опции -> Определение стилей -> Выбрать стиль: -> Bespin
Шрифт: Lucida Console
Размер: 12
Галка на
Общий шрифт
и Общий размер шрифта
0
спасибо!
0
Надо же, прикольная вещь. Не знал, что у этого редактора есть такие возможности. Между прочим, я использую инициализацию конфигурационных регистров несколько наоборот:

Инициализация двоичной константой в C++

Вот тут много примеров на этот счёт: MCU.cpp
0
  • avatar
  • uni
  • 24 сентября 2012, 03:31
этта шо?
а то из обрезанного скриншота нихера не ясно. ну моноширинный шрифт. ну и что?
0
Сравни с последней картинкой в посте.
0
  • avatar
  • Vga
  • 24 сентября 2012, 03:39
ааАААааааа…
ну да. разница на лице.

но из поста вариант мне нравится сильно больше.
0
(хотя npp за пределами обычного блокнота почти не пользую. мой выбор продвинутого редактора — слик)
0
Мне тоже, он продвинутей. Впрочем, сам я предпочитаю инициализацию в стиле (1 << UDRIE) | (1 << TXIE) — не вижу смысла переписывать даташит и тратить по экрану места на регистр.
Алсо, вариант uni — хардкод, тогда как вариант из статьи основан на дефайнах.
0
  • avatar
  • Vga
  • 24 сентября 2012, 03:51
вариант с вертикальной организацией приятнее тем, что можно перемещаться между битами буквально одной кнопкой.
0
В С++ нельзя так просто присваивать двоичные константы, это во-первых.
А во-вторых, когда проект написан и мне нужно поизменять конфигурационные биты, то я не бегаю по datasheet, а прямо в коде меняю то, что нужно. В этом и весь смысл такого документирования. Когда мне надоело по pdf бегать (просто достало) я решил раз и навсегда сделать для себя такие шаблоны.

Да, это очевидно долго писать, но один раз для каждого контроллера.
0
  • avatar
  • uni
  • 24 сентября 2012, 03:58
аха. хочешь сказать, что в зависимости от исходника меняются комменты?
а наоборот?
0
В каком смысле? В зависимости от исходника и называния битов меняются, я уж не говорю про названия конфигурационных регистров.
Да, комменты изменяются, но для каждого отдельного контроллера, а не для разных проектов.

Для разных проектов одного шаблона я ввёл внизу поле «Примечание» и там нужно записывать конкретное пояснение по конкретной настройке в конкретном проекте.

Смысл в чём — вот пройдёт год, нужно мне будет окинуть взглядом, не шарясь в pdf, и я по моим комментам пойму что и как. Они не общие, они вполне конкретные.

Кстати, то, что я использую макрос BIN8() вовсе не означает, что я не пользуюсь предопределёнными дефайнами. Скажу больше, этот код у меня одинаково работает и в IAR, и в GCC, т.к. в IAR с некоторых пор переняли GCC вариант именования всей периферии. Теперь они идентичны.
0
  • avatar
  • uni
  • 24 сентября 2012, 04:08
в смысле АВТОМАТИЧЕСКИ. меняешь бит — меняется коммент.
0
да. каюсь. статью внимательно не читал. а если и читал — уже забыл за неактуальностью.
0
Всё равно не понял. Для чего это? Мои комменты описывают функционал, как можно видеть, для отдельного бита или группы битов. Т.е. значение их не важно. Шаблон так и должен быть составлен — самодокументация общих мест.

А вот поле «Примечание», как я сказал, и предназначено для программиста, где он должен вписать, если захочет, конкретное пояснение.

Вот ниже есть другой пример в том же формате. Там уже не конфигурационный регистр, но вот всё остальное совершенно такое же. Кроме того, что я могу даже пояснение к каждому выводу сделать. Мне это очень помогает, когда я забываю конкретную связь между символом вывода и тем, что к нему подключено. Поэтому я взял за правило описывать схему в этой части исходника. Опять же не нужно никуда переключаться — посмотрел этот файл исходника и освежил как всё подключено.
0
  • avatar
  • uni
  • 24 сентября 2012, 04:28
я имел в виду, что при изменении исходника меняется и содержательная часть комментария.

в общем, этого нет. проехали.
0
Вот ещё пример, чтобы было понятней о моём подходе (настройка DDRA для Pinboard II):

Самодокументирование кода
0
  • avatar
  • uni
  • 24 сентября 2012, 04:12
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.