Идеальная Среда Разработки Для Pic – Личный Опыт

В связи с нововведениями на сайте я решил наконец выйти из подполья и написать что-нибудь полезное.

Ну а так как я программирую различные микроконтроллеры (MCU) и являюсь поклонником Eclipse, то решил написать об этом.

Начну со своей истории знакомства с программированием PIC, а закончу советами тем, кто по долгу службы или хобби программирует на МК семейства PIC, хотя, впрочем, эти же советы подойдут и для других архитектур МК .

Среди металлистов я оказался в 2006 году, на 4-м курсе университета, когда пошел на стажировку в научно-технический центр, где, собственно, и работаю по сей день.

В то время мейнстримом в нашей компании было использование Keil uVision2 для МК на базе C51 и ARM. Однако под ПИК мне давались простые задачи, такие как мониторинг и управление одним сигналом (кнопкой включения-выключения), а моей первой средой разработки были блокноты - бумага и компьютер, плюс бумажные книги на ПОС.

Моя среда разработки выглядела примерно так:

Идеальная среда разработки для PIC – личный опыт

Для компиляции файлов мне дали экзешник компилятора и bat-файл, который я использовал совершенно необдуманно — даже не знаю, что там за компилятор.

В общем, времена были суровые.

Эх, если бы мне тогда кто-нибудь сказал, что существует такое чудо, как notepad++!

Идеальная среда разработки для PIC – личный опыт

Потом был MPASM, но он убогий и мне о нем почти нечего вспомнить.

Кажется, я тоже писал для него программы в блокноте.



MPLAB IDE

Совершенствуя свои навыки, я узнал, что вместо Блокнота можно использовать самую крутую, как мне тогда казалось, MPLAB IDE:

Идеальная среда разработки для PIC – личный опыт

Оно включает:
  • CC18 и какой-нибудь другой компилятор, который можно выбрать в настройках проекта;
  • хороший набор библиотечных функций;
  • inc-файлы плагинов, описывающие МК семейства PIC, адаптированные для использования в ассемблере;
  • встроенный отладчик и программатор;
  • Но главное — поддержка языка C — для меня это было глотком свежего воздуха!
Хотя, если присмотреться к этой среде разработки, то ее убогость и отсталость могут отпугнуть любого более-менее привыкшего к хорошим условиям программиста, но я тогда об этом не знал.

Справку по встроенным функциям библиотеки надо открывать отдельно и искать, что, где и как называется.

Для новичков это невыполнимая задача.

Однако на тематических форумах до сих пор спрашивают, какой компилятор лучше использовать; некоторые продолжают использовать MPLAB IDE.

МикроС

Задания для ПОС мне давались все реже и реже; развитие с МК серии C51, ARM7 (не путать с ARMv7!) и Cortex-M начало набирать обороты.

Но иногда ко мне снова обращались за помощью в написании программ для PIC, и я из любопытства пробовал новые инструменты разработки.

К тому моменту я уже давно активно программировал в Keil uVision3 — возвращаться к допотопной MBLAB IDE мне не хотелось.

Вот так я познакомился с MikroC, который поставляется в комплекте с программатором PICKit:

Идеальная среда разработки для PIC – личный опыт

Набор вкусностей практически такой же, как в MBLAB IDE, но все же богаче:

  • твой собственный компилятор
  • встроенные библиотеки функций с удобным поиском и доступными описаниями;
  • подключаемые h-файлы, описывающие МК семейства PIC;
  • набор дополнительных внешних утилит
  • широкий спектр примеров с источниками
  • встроенный отладчик и программатор;
  • встроенные вкладки открытия файлов;
  • навигация по функциям в файле
Честно говоря, для небольших простых проектов, составляющих основную нишу программ для PIC, этого вполне достаточно.

Даже новички смогут легко разобраться с помощью помощи и быстро создать работающий код. Большинство наших разработчиков, работающих с PIC, используют эту среду при разработке.

Так или иначе, завершив очередной проект в MikroC, я радостно забыл о PIC и подумал, что никогда к ним не вернусь.



Однако история любит повторяться!

Через 3 года, в 2013 году, возникла задача разработать программное обеспечение на основе готовой конструкторской документации, которая содержала PIC18F4680 .

Честно говоря, я даже не знал, что среди ПИКов есть такие монстры, всегда занимался только мелочами! Задачи были нетривиальные — реализация загрузчика для внутрисхемного обновления ПО, работа в режиме жёсткого реального времени, работа с АЦП, внешними ЦАП, линиями управления и несколькими таймерами-компараторами.

Кстати, немного отвлекшись от темы: только на этом проекте я полностью понял, что такое банки памяти в PIC, как они работают и какие ограничения накладывают на разработку ПО.

Например, все банки МК имеют размер 256 байт. И хоть убей, невозможно создать структуру для PIC, превышающую по объёму эти 256 байт - ограничение выявилось в ходе реализации протокола обмена, ну да ладно, поехали.

К этому времени Keil uVision3 мне уже изрядно поднадоел, так как сложность проектов росла и мне не хватало функционала, доступного в Keil. Примерно в 2011 году я освоил Eclipse, GCC, синтаксис makefile и начал запускать все свои проекты с использованием этих инструментов.

Кроме того, у меня уже был опыт использования связки Eclipse+ СДКК для реализации проекта по С51 МК.

После появления Keil uVision4 я установил его, потестировал полчаса и снес, так как по простоте программирования он все еще сильно отстает от Eclipse.

Затмение + SDCC

В настоящее время Eclipse является фактическим стандартом в области разработки программного обеспечения для встраиваемых систем.

Вот список IDE на базе Eclipse от популярных брендов:

  • NXP LPCXpresso IDE
  • Freescale CodeWarrior
  • Студия платформы Xilinx
  • Инструменты Техаса CCS
  • Инструменты разработки Android
Автоподстановка, всплывающие подсказки по автозаполнению, макросы, затемнение неактивных участков кода, удобная навигация по коду и многое-многое другое - все перечислять не буду - многие разработчики встраиваемых систем совершенно отвыкли и не знают всех этих вкусностей.

которые значительно облегчают жизнь:

Идеальная среда разработки для PIC – личный опыт

Основной проблемой чистого Eclipse для разработки на C/C++ под МК является сложность вовлечения в него аппаратных программистов, заменяющих привычные инструменты, работающие после установки в 1-2 клика, какими-то плагинами, требующими настройки, или, того хуже, с ручные написанные make-файлы — все это требует значительных первоначальных усилий по чтению и изучению документации, поиску помощи и обучающих программ для новичков в Интернете.

Говорю как человек, имеющий опыт перевода команды аппаратных программистов на Eclipse. Только для моей команды разработчиков Если вы прочитали эту статью, дайте знать, я хотя бы узнаю, как читаются наши профильные хабы на Хабрахабре.

Однако, полностью освоив синтаксис за месяц и написав один раз качественный make-файл, все остальные проекты создаются по устоявшемуся шаблону и требуют лишь минимальной индивидуальной настройки.

Также нам пришлось сделать ряд дополнительных шагов по настройке проектов для PIC — по умолчанию Eclipse понимает синтаксис GCC. Различные макросы и директивы, встроенные в другие компиляторы (будь то CC18 или SDCC), приходится разделять на этапе компиляции и на этапе индексации проекта.

Чтобы редактор не выдавал ложные ошибки для неизвестных директив при навигации по коду, к исходникам проекта подключается файл.

eclipse-syntax.h : eclipse-syntax.h

   

#ifndef ECLIPSE_SYNTAX_H_ #define ECLIPSE_SYNTAX_H_ // keyword SDCC defined when compiling with SDCC compiler #ifndef SDCC

Теги: #pic #mikroc #mplab ide #eclipse #цветовая тема eclipse #makefile #sdcc #gputils #keil #cc18 #programming #eclipse
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.