Средства программирования и отладки

При разработке конкретных микропроцессорных систем и устройств их характеристики и параметры зависят от эффективности взаимодействия аппаратного и программного обеспечения. Поэтому важную роль в процессе создания приложений играет обеспеченность разрабатываемого проекта средствами программирования и отладки. Объединение инструментальных средств разработки программного и аппаратного обеспечения является важным фактором, который не только существенно облегчает процесс разработки конкретного устройства, но и позволяет получить требуемые его характеристики и параметры. Наиболее высокий уровень обеспечения средствами программирования и отладки в настоящее время имеют микроконтроллеры. О них и пойдет речь ниже.

Языки программирования

Общие понятия. Работу любой микропроцессорной, в том числе и микроконтроллерной, системы можно рассматривать как исполнение последовательности поступающих на ее центральный процессор машинных команд в виде двоичных кодов, каждая из которых реализует некоторое элементарное действие. Микроконтроллерная система управления функционирует по определенному алгоритму, представляющему собой строго регламентированную последовательность действий, или машинных команд. Набор команд, на котором можно задать алгоритм функционирования системы управления, составляет машинный язык, или язык кодовых комбинаций. Какие команды включить в машинный язык, решает разработчик при создании микроконтроллера (процессорного ядра), поэтому каждое семейство микроконтроллеров имеет свой набор команд или свой машинный язык. Обычно стремятся к упрощению машинных команд, что позволяет избежать сложных схемных решений и снизить затраты на изготовление контроллера. Так как большинство машинных языков примитивны, непосредственное использование их для описания алгоритма связано с известными трудностями.

Для представления алгоритма системы управления в понятном для человека виде служат специальные языки программирования, отличающиеся от естественных языков ограниченным количеством слов (операторов, команд) и строгими правилами их записи. Совокупность правил записи слов образует синтаксис языка программирования, а смысловое содержание слов и других конструкций языка – его семантику. Формализованное описание алгоритма с использованием языков программирования называется программой. Для составления текста программы используются редакторы. Нарушение формы записи программы приводит к синтаксическим ошибкам, а несоответствие текста программы алгоритму – к семантическим. Процесс поиска ошибок в программе называется тестированием, процесс устранения ошибок – отладкой.

Языки низкого уровня (Low-Level Language). Для микроконтроллера (процессора) единственно понятным является язык кодовых комбинаций, образующих систему его команд. Программирование на этом языке позволяет:

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

Главный недостаток языка кодовых комбинаций – трудности составления программ, связанные с написанием, поиском ошибок и внесением исправлений. Поэтому он применялся на раннем этапе развития компьютерной техники.

Вместо языка кодовых комбинаций стал использоваться язык ассемблера, относящийся к языку низкого уровня, который представляет каждую машинную команду не в виде кода, а с помощью символьных (условных) обозначений, называемых мнемониками. Так как системы команд для каждой модели микроконтроллера различаются, каждой конкретной архитектуре соответствует свой язык ассемблера, и написанная на нем программа может быть использована только в этой среде.

Мнемоническая форма записи операций уменьшает указанные выше трудности при составлении программ. Составленная на языке ассемблера программа перед исполнением переводится на язык кодовых комбинаций и в таком виде помещается в память микропроцессорного устройства. Эта функция обычно выполняется с помощью программы трансляции, называемой ассемблером (отсюда и название языка), хотя ее можно выполнить и вручную. Язык макроассемблера, в котором предусмотрена возможность присвоения имени некоторой последовательности команд, позволяет в еще большей мере сократить запись программ и улучшить их обозримость. Язык ассемблера (макроассемблера) не является универсальным, т.е. каждому микроконтроллеру (микропроцессору) присущи свои особенности языка.

Язык ассемблера относится к машинно-ориентированным языкам и требует хорошего знания архитектуры микроконтроллера.

Достоинство языков низкого уровня (ассемблеров) – возможность создания эффективных и компактных программ благодаря тому, что разработчик имеет доступ ко всем ресурсам микроконтроллера.

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

Областями применения языка ассемблера являются микроконтроллеры, небольшие системные приложения, драйверы устройств, модули стыковки с нестандартным оборудованием, библиотеки, т.е. когда важнейшими требованиями являются компактность, быстродействие и возможность прямого доступа к аппаратным ресурсам.

Языки высокого уровня (High-Hevel Language) создавались с ориентацией на облечение труда программистов, поэтому в них используются термины, которые ближе к словам естественного языка или к математическим формулам, чем к командам ассемблера. Языки высокого уровня позволяют пользователю составлять программы, не имея представления о тех действиях, которые осуществляет микроконтроллер (процессор) во время выполнения программы. Особенности конкретных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносятся на другие платформы, для которых создан транслятор этого языка. Разрабатывать программы на языках высокого уровня с помощью понятных и мощных команд значительно проще, а ошибок при их создании допускается гораздо меньше. Каждая команда языка высокого уровня эквивалентна нескольким командам в машинных кодах, поэтому программы, написанные на языках высокого уровня, более компактны.

Языки высокого уровня предназначены для решения общих задач (проблем), и поэтому их часто называют проблемно-ориентированными языками. Благодаря указанным выше достоинствам они находят широкое применение при программировании микроконтроллерных систем управления.

 
< Пред   СОДЕРЖАНИЕ     След >