Большая часть наших разработчиков формировалась в условиях очень ограниченного выбора элементной базы, доступной для применения, и практически полного отсутствия профессиональных инструментальных средств разработки и отладки. Сформировавшийся в этих условиях "аскетический" стиль ведения разработки, был характерен тремя основными особенностями:
- фактическая предопределенность в "выборе" ядра разрабатываемой системы - либо 1816ВЕ31 либо 1816ВЕ35, с их не очень разнообразной встроенной периферией;
- написание программ исключительно на ассемблере;
- ведение разработки как правило без инструментальных средств и без "сервисных излишеств".
Сейчас ситуация кардинально изменилась:
- Практически все зарубежные производители микроконтроллеров имеют свои представительства или как минимум своих дистрибьюторов в России. И весь громадный спектр разнообразнейших компонентов, прежде доступный только западным коллегам, стал доступным и российским разработчикам.
- Появился рынок инструментальных средств разработки, и появилась возможность выбора профессиональных инструментальных средств.
Встречаются, хотя и редко, радикально настроенные разработчики, которые считают, что вообще не нуждаются в отладочных средствах.
Менее бескомпромиссные разработчики применяют для отладки программ самодельные отладочные мониторы.
На наш взгляд живучесть "аскетического" стиля можно объяснить отчасти отсутствием необходимой информации, отчасти укоренившейся привычкой. И если привычка - вещь деликатная, и с ней приходится считаться, то с отсутствием необходимой информации мириться нельзя.
Основные аргументы "не сторонников" профессиональных инструментальных средств отладки можно сформулировать следующим образом:
- Инструментальные средства стоят дорого.
- Все то же, что дают профессиональные средства отладки, можно сделать за счет внимания, опыта и напряжения собственного интеллекта.
- Все то же самое, что дают профессиональные средства отладки, можно сделать с помощью самодельных средств.
- Инструментальные средства работают ненадежно.
- Профессиональные инструментальные средства слишком специализированы, на каждый случай нужен свой инструментарий.
- Инструментальные средства слишком сложны и требуют долгого изучения.
Аргумент 1."Инструментальные средства стоят дорого".
Да действительно, очень дешевыми профессиональные инструментальные средства не назовешь. И тем не менее, в качестве контр довода можно привести несколько соображений:
Универсальный закон сохранения, применительно к предмету нашего обсуждения мог бы выглядеть следующим образом: " За скорость, надежность и удобство при разработке - приходится платить." Не хотелось бы проводить аналогий, но представление о чрезмерной стоимости, сродни нашим старым представлениям о дешевизне труда как такового, и в особенности труда интеллектуального.В условиях не монополизированного рынка, стоимость преимуществ предоставляемых профессиональными инструментальными средствами определяется очень быстро и объективно, а следовательно говорить о чрезмерности цены не приходится.
Спектр инструментальных средств, в части функциональных возможностей , достаточно широк, а функциональные возможности средств, как правило хорошо коррелируются с их ценой. Поэтому всегда можно подобрать средство отладки приемлемое по цене, и отвечающее предъявляемым требованиям по показателю "функциональность/цена".
Цены на инструментальные средства западных производителей соответствуют реалиям западного рынка, и для отечественного разработчика, в большинстве случаев, пока являются практически недоступными. Однако следует заметить, что для наиболее популярных семейств микроконтроллеров, существуют отечественные профессиональные инструментальные средства, некоторые из них как минимум не уступают по функциональным возможностям западным образцам, а по ценовым характеристикам, заметно выигрывают, поскольку соответствуют реалиям нашего рынка.
Аргумент 2."Все то же, что дают профессиональные средства отладки, можно сделать за счет внимания, опыта и напряжения собственного интеллекта."
Да, действительно можно напрячься и внимательно проанализировать исходный текст, посмотреть с помощью осциллографа, что происходит на выводах микроконтроллера, и можно исправить все ошибки. В принципе, такой способ отладки применим, если у разработчика есть большой опыт, отличное знание применяемого микроконтроллера, транслятор, который всегда генерирует правильный код (обычно это ассемблер), а главное, достаточное количество времени.
Но что будет если:
- Разрабатываемое или отлаживаемое устройство достаточно сложное, с большими ресурсами, а программа теряет обозримость?
- Используемый микроконтроллер не родной и привычный, с которым уже не одну собаку съел, а внешне привлекательный, с массой встроенной периферии - но "новый", и потому ведущий себя порой непредсказуемо?
- Процесс разработки идет нормально, но разработчик участвует не в "социалистическом соревновании", а должен предъявить изделие "капиталистическому" заказчику, да и слова "неустойка" и "конкуренты" уже звучали?
Действительно, некоторые разработчики применяют для отладки программ самодельные отладочные мониторы. Отладочный монитор - это набор отладочных подпрограмм, загружаемых в микроконтроллер вместе с основной программой. Основная программа вызывает в контрольных точках подпрограммы отладочного монитора, а те могут тем или иным способом выдать информацию о состоянии ресурсов микроконтроллера разработчику. Так можно отладить практически любую программу, но у отладки с помощью монитора есть недостатки, которые могут оказаться существенными.
- Отладочному монитору необходимо предоставить для работы часть ресурсов микроконтроллера: как минимум - часть адресного пространства кода и некоторое количество ячеек стека, как максимум - еще и часть ОЗУ и периферийные устройства микроконтроллера, используемые монитором для отображения информации. Выделить достаточные ресурсы отладочному монитору бывает непросто, если основная программа сама активно загружает микроконтроллер. Например, у PIC16C5x семейства Microchip PIC всего две ячейки стека, и использовать вызовы подпрограмм отладочного монитора затруднительно.
- Вызовы монитора отнимают время у основной программы и, следовательно, отладочный монитор нельзя вызывать из критичных ко времени частей программы.
- Создание отладочного монитора само по себе требует времени.
На этот аргумент ответ предельно прост: выбирайте производителя, инструментальные средства которого не имеют неприемлемых для Вас ограничений, и при этом работают надежно.
Аргумент 5."Профессиональные инструментальные средства слишком специализированы, на каждый случай нужен свой инструментарий".
Действительно, некоторые инструментальные средства трудно причислить к разряду универсальных.
Отчасти это объясняется объективными причинами, отчасти субъективными, когда по маркетинговым или иным соображениям, сознательно ограничивается перечень поддерживаемых устройств и/или форматов компиляторов.
Тем не менее, существуют производители профессиональных инструментальных средств, которые за счет применения современных технологий, создают средства отладки, позволяющие корректно поддерживать максимально широкий спектр микроконтроллеров.
И для того чтобы данный аргумент потерял свою значимость, потенциальному пользователю можно посоветовать:
Выбирая средство отладки, помимо прочего учитывайте и широту спектра поддерживаемых устройств и/или форматов. Учитывая то обстоятельство, что спектр доступных микросхем постоянно расширяется, несомненное предпочтение следует отдавать изделиям с перезагружаемой аппаратной структурой. В противном случае, велика вероятность того, что Ваше приобретение, в недалеком будущем не сможет поддерживать новых членов семейства, без существенной аппаратной доработки. Аргумент 6."Инструментальные средства слишком сложны и требуют долгого изучения".
Как правило, разработчики профессиональных инструментальных средств нормальные люди, хорошо знающие проблемы разработчиков микропроцессорных систем, и более того, люди заинтересованные в доступности и популярности своих изделий. Поэтому, большинство профессиональных инструментальных средств, имеет достаточно простой, а зачастую и интуитивно понятный интерфейс. В наибольшей степени это относится к средствам, предназначенным для работы в среде Windows.
Нелишне будет отметить, что инструментальные средства западных производителей, как правило сопровождаются сверх подробными описаниями с массой полиграфических изысков. И если отечественные производители пока уступают в полиграфичности своих описаний, несомненным их преимуществом можно считать: русский язык описаний и руководств, и доступность для консультаций и пояснений.
Мы предлагаем Вашему вниманию несколько статей обзорного характера, которые , как мы надеемся, помогут хотя бы некоторым разработчикам, сориентироваться в современном многообразии микроконтроллеров и инструментальных средств.
Говоря о целесообразности использования профессиональных инструментальных средств отладки, можно приводить множество аргументов, мы сознательно не стали этого делать, поскольку считаем что любой профессиональный разработчик или инженер прикладник, только встающий на стезю разработки микропроцессорных систем, в состоянии самостоятельно сделать выводы, при наличии необходимой информации. Приведем лишь одно соображение. Западные разработчики микроконтроллерных систем, которых трудно заподозрить в не прагматизме или в не умении считать деньги, давно и интенсивно используют в своей работе профессиональные инструментальные средства. При этом большинство разработок, особенно сложных систем, ведется с применением языков высокого уровня. Об этом стоит задуматься. Понятно что Запад нам не указ, но законы экономики неумолимы, а значит и на рынке встраиваемых систем конкуренция между разработчиками будет нарастать.