Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 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.
Здесь используется прямой способ адресации.
|