Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Разработка программного обеспечения и отладка микропроцессорного устройства (МПУ). Система команд. Способы адресации





 

Разработка программного обеспечения МПСУ имеет особенности, которые обусловлены следующими причинами:

- необходимость реализации программ управления в реальном масштабе времени, т.е. со строго ограниченным временем выполнения;

- необходимость синхронизации выполнения программ с внешними событиями;

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

Кроме этого к программам управления в МПСУ предъявляются повышенные требования в отношении устойчивости к различного рода сбоям и ошибкам.

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

Разработка алгоритмов управления является наиболее ответственным этапом, от которого существенно зависит качество процесса управления и технические параметры разрабатываемой МПСУ. Даже для относительно простой системы трудно разработать алгоритм, охватывающий все детали и особенности управления объектом, поэтому рекомендуется использовать последовательные уровни детализации алгоритма:

- концептуальная блок-схема программного обеспечения;

- функциональная блок-схема решения отдельных задач;

- машинно-ориентированные блок-схемы.

Концептуальная блок-схема содержит небольшое количество блоков, отделяющих состав программного обеспечения и основные задачи, решаемые программными средствами, которые можно разделить на два класса:

- прикладные, связанные с формированием управления по заданным алгоритмам регулирования;

- системные, связанные с организацией вычислений, управления техническими средствами МПСУ и обслуживанием пульта.

Две первые схемы могут быть сделаны безотносительно к какому-либо микропроцессорному комплекту, третья же схема должна учитывать особенности архитектуры конкретного микропроцессора, на базе которого реализована МПСУ.

Трудоемкость программирования и качество разрабатываемой программы в значительной степени определяется используемым языком программирования. При использовании машинного языка все элементы программы: коды операций, адреса ячеек памяти и регистров, - представляются в двоичной форме, иногда для более компактной записи в восьмеричной или шестнадцатеричной. При этом программист имеет возможность непосредственно управлять всеми программно-доступными элементами МПСУ, полностью контролировать каждый шаг, выполняемый системой. Это позволяет оптимизировать программу с точки зрения времени её выполнения и требуемого для её размещения объёма памяти.

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

При программировании на языке ассемблера вместо двоичных кодов операций используются их символические буквенные обозначения - мнемокоды. Кроме этого ассемблер позволяет записать в символическом виде данные и адреса, используемые в программе, что существенно облегчает процесс программирования и чтения программ. Язык ассемблера, как и машинный язык, требует от программиста свободного владения архитектурой соответствующего МПК. В этом смысле оба языка являются машинно-ориентированными.

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

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

- поле кода операции содержит мнемоническое обозначение кода операции, приводимое в системе команд микропроцессора, или символическое обозначение директивы ассемблера (псевдокоманды), которая используется при трансляции программы;

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

- поле комментария служит для записи информации, поясняющей выполняемые действия. Комментарии нужны программисту, они не воспринимаются МПСУ, а лишь повышают удобство чтения. Поле комментариев обычно отделено от предыдущего поля точкой с запятой.

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

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

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

Отладка аппаратуры предполагает статическую и динамическую проверку. В статике проверяются целостность электрических соединений, работоспособность элементов и величина напряжений в контрольных точках. Динамическая проверка позволяет выявить основной процент неисправностей в аппаратуре. Она проводится при выполнении процессором тестовой программы. При этом проверяется происхождение данных в системе, временные диаграммы сигналов в контрольных точках и взаимодействие отдельных устройств МПСУ. Для локализации неисправностей широко используются различные приборы: осциллографы, вольтметры, амперметры, частотомеры, генераторы тестовых сигналов, логические и сигнатурные анализаторы.

Этап отладки программ МПСУ производится с использованием специальных средств: программных и аппаратно-программных. Программные средства отладки – комплекс программ, позволяющих выводить на дисплей содержимое ячеек памяти и регистров микропроцессора, изменить содержимое регистров и любой ячейки оперативной памяти; начинать выполнение программы с любой ячейки памяти; останавливать выполнение программы по достижению команды, находящейся в определенной ячейке памяти или при выполнении какого-либо условия. Все это дает возможность выполнять прикладную программу в пошаговом режиме, в режиме трассировки, в режиме остановки программы в контрольных точках. При работе прикладных программ в этих режимах эффективно обнаруживаются ошибки и анализируются их причины.

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

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

В режиме остановки на контрольной точке место останова выполнения программы задается в виде адреса, кода команды, слова состояния микропроцессора, содержимого регистров и комбинации кодовых слов. Это дает возможность контролировать порядок выполнения произвольных ветвей прикладной программы.

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

Аппаратно-программные средства обеспечивают комплексную отладку прикладных программ и аппаратуры, соответствующей МПСУ, путем моделирования работы аппаратных средств микропроцессорной системы. При этом пошаговый метод, трассировка и остановка по контрольным точкам позволяют постепенно вовлекать в работу все большую часть программных средств, а средства имитации аппаратуры МПСУ помогают последовательно охватывать отладкой все большую часть соответствующих аппаратных средств. Этим достигается высокая эффективность комплексной отладки всей МПСУ.

 

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

Методы адресации. Код команды состоит из кода операции (КО) и сведений об операндах. Операнды в команде могут быть обозначены по-разному, в зависимости от чего и говорят о разных методах адресации:

-первый метод предусматривает довольно много однобайтных команд, в которой сам код операции несет информацию о внутренних регистрах МП, куда записаны операнды (регистровая адресация); в этом случае регистрам А, В, С, D, E, H, L соответствуют шестнадцатиричные одноразрядные коды 7, 0, 1, 2, 3, 4, 5;

-второй метод заключается в том, что в двухбайтных командах второй байт может представлять собой непосредственно код операнда (непосредственная адресация);

-третий метод заключается в том, что в этом случае второй и третий байты трехбайтной команды представляют собой адрес ячейки памяти, в которой находится операнд (прямая адресация);

-четвертый метод заключается в том, что код команды содержит информацию о 16-разрядном регистре, содержащем адрес ячейки памяти, в которой находится операнд (косвенная адресация);

-пятый метод используется в МП 8080 (стековая адресация); в этом случае однобайтная команда работы со стеком не несет информации об адресе, просто используется очередная ячейка стековой памяти.

Состав команд разделяют по следующим группам: передачи данных; арифметические, логические, ветвления, стека, ввода/вывода и машинного управления.

Группа передачи предназначена для передачи данных между регистрами или ячейками памяти и регистрами. Она содержит команды передачи (MOV, MVI), загрузки (LXI), размещения данных (LD, ST).

Арифметическая группа выполняет команды сложения (ADD, ADC), вычитания (SUB, SBB), инкремента (увеличения на единицу)(DCR, DCX) над данными в регистрах или в памяти.

Логическая группа выполняет операции И (ANA), ИЛИ (ORA), ИЛИ ИСКЛЮЧАЮЩЕЕ (XRA), сравнения (CMP, CPI), перемещение (сдвиг)(RLC, RRC), инвертирование (CMA, CMC) данных.

Группа ветвления вызывает условные переходы (JZ, JNZ, и др.) или безусловные (JMP), вызов программ (CALL, CZ и др.), возвраты (RET, RZ и др.) и повторные запуски (RST).

Группа стека, ВВ и машинного управления выполняет команды операций со стеком (PUSH, POP), ввода-вывода (IN, OUT), обработки прерываний (EI, DI), останова МП (HLT).

Программирование микропроцессорных системы заключается в составлении программы и последующем помещении кодов команд в ячейки памяти системы. Программа может составляться в виде последовательности двоичных машинных кодов команд. Однако она будет ненаглядна. Более удобно пользоваться при написании программ мнемоническими обозначениями команд. Существует специальная программа – ассемблер, с помощью которой можно на ЭВМ перевести написанную таким образом программу в машинные коды.

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

Программа записывается на микро-ЭВМ в последовательных ячейках в виде кодов операций. Рассмотрим простейшую программу, извлекающую число из адреса 8400, инвертирующую его и записывающую результат в адрес памяти 8401.

 

Адрес Содержимое Метка Код операции Операнд Комментарий
      LDA   A,M Передать в аккумулятор число из памяти с адресом 8400
  2F   CMA A Инвертировать аккумулятор
        STA   M,A Передать в ячейку 8401 данные из аккумулятор
  E7   RST   Остановка программы,вызов монитора

Здесь используется прямой способ адресации.


Date: 2015-05-09; view: 1003; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию