Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Создание, редактирование и запись программ

ИНТЕГРИРОВАННАЯ СИСТЕМА

ПРОГРАММИРОВАНИЯ «ТУРБОАССЕМБЛЕР-52»

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

При запуске системе на экран монитора могут быть выведены окна редактора текста (исходный текст), дизассемблера и аппаратных ресурсов микроконтроллера.

В верхней части экрана даётся строка основного меню, которая содержит перечень возможных режимов работы пользователя с интегрированной системой программирования:

File - выполнение операций с файлами;

Edit - редактирование текста программы;

Search - поиск фрагмента текста;

Compile - трансляция исходного текста в машинный код;

Run -выполнение программы в шаговом режиме или в режиме прогона;

Debug - отладка программы;

Tools - вызов других приложений, не выходя из системы;

Options - настройка интегрированной системы согласно требованиям пользователя;

Hard -задание аппаратных условий при отладке программы пользователя в системе;

Windows -управление форматом и содержанием информации на экране монитора;

Help -обращение к справочной информации.

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

F1 Help - вызов справочной информации;

F2 Save -сохранение текущего файла;

F3 Open -открытие нового файла

Alt+F9 Compile - трансляция файла активного окна редактора в объектный модуль;

F9 Make -перетрансляция изменённых файлов и формирование выполняемого кода в памяти контроллера.

После загрузки интегрированной системы вызов на экран основного меню производится нажатием клавиши F10. Выбор режима работы осуществляется с помощью «мыши» или клавиш “ , “®”. Для выбранного режима на экран выдаётся список (меню) операций, выполняемых в данном режиме. Выбор операций производится «мышью» или клавишами “ ­”, “ ¯”. Ряд операций может вызываться с помощью горячих клавиш, указанных для этих операций.

Рассмотрим подробнее основные режимы и операции, используемые при выполнении работ лабораторного практикума.

Режим File обеспечивает выполнение следующих операций:

Open... (F3)

New

Save (F2)

Save as...

Read HEX...

----------------------------------------

Write HEX/BIN/DIS...

----------------------------------------

Change dir

DOS shell

Exit (Alt+X)

Операция Open загружает в новое окно редактора исходный текст требуемого файла. Операция New открывает новое окно редактора для создания текста, который затем может быть сохранён в новом файле. Сохранение файла активного окна редактора со старым именем реализует операция Save, сохранение с присвоением нового имени – операция Save as. Специфические процедуры чтения загрузочного HEX-файла и записи файла в формате HEX или BIN реализуются операциями Read HEX и Write/HEX/BIN/DIS. Последние три операции Change dir, DOS shell, Exit позволяют менять текущую директорию, временно выходить в DOS, завершать текущий сеанс работы с интегрированной системой.

В режиме Edit система выполняет стандартные операции редактирования текста:

Copy

Cut

Paste

Clear

-------------------

Show clipboard

Эти операции обеспечивают копирование выделенного блока текста в буфер (Copy), перемещения в буфер (Cut), вставки из буфера (Paste), изъятия без помещения в буфер (Clear), а также просмотр содержимого буфера (Show clipboard).

В режиме Search для поиска фрагмента текста используются операции:

Find...

Replace...

Search again

----------------------

Do to line number

С помощью этих операций в активном окне редактора выполняется поиск по шаблону (Find), контекстная замена (Replace), повторение последней операции поиска или замены (Search again), перемещение курсора в заданную строку текста (Go to line number).

В режиме Compile выполняется трансляция рабочей программы с помощью операций:

Compile to OBJ (Alt+F9)

Make (F9)

Build

-----------------------------------------

Edit project...

Project file...

Clear

При выполнении операций Compile to OBJ файл из активного окна редактора текста транслируется в объектный модуль. Если при трансляции возникает ошибка, появляется сообщение об ошибке, а курсор указывает на первую из обнаруженных ошибок. Операция Make осуществляет перетрансляцию изменённых со времени последней трансляции файлов проекта программы пользователя в объектные модули, формирование машинного кода программы в памяти микроконтроллера и, если задано в опциях редактора связей, формирование загрузочного модуля HEX формата. Операция Build аналогична операции Make, только она перетранслирует заново все исходные файлы проекта. С помощью операции Edit project создаётся список файлов проекта. Операция Project file позволяет подключить уже существующий файл проекта. Выбор необходимого файла проекта осуществляется в распахивающимся окне Open a Project.

В режиме Run система запускает исполняемый модуль, реализуя операции:

Run (Ctrl+F9)

Program reset (Ctrl+F2)

Go to cursor (F4)

Jump to cursor (Shift+F4)

Trace into (F7)

Step over (F8)

Animate

Stop run (Shift+F2)

--------------------------------------------

Real time run (Shift+F9)

Режим реального времени поддерживается только при выполнении операции Real time run при отладке программы с помощью платы контроллера. В этом случае остановка выполнения программы возможна лишь с помощью программной контрольной точки lcall 8400h на следующей за ней команде.

Операция Run осуществляет прогон программы до её завершения или до ближайшей контрольной точки, установленной с помощью горячих клавиш Ctrl+F8 (снимается контрольная точка с помощью этих же клавиш). В случае завершения программы на экран выдаётся сообщение: Program is terminated. Если со времени последней компиляции исходный код был модифицирован, то интегрированная система автоматически перекомпилирует программу и отредактирует связи. Операция Program reset прекращает текущий сеанс отладки и производит инициализацию системы для проведения следующего сеанса работы. Операция Go to cursor осуществляет выполнение программы до строки, на которой находится курсор. Она используется для перехода к отлаживаемому в текущем сеансе фрагменту программы с накоплением результатов выполнения предыдущей части программы. Если курсор установлен на неисполняемой строке, то программа будет выполняться до следующей точки останова или до конца. Операция Jump to cursor осуществляет переход на строку курсора без выполнения предыдущей части программы. Для пошагового выполнения (трассировки) программы используется операция Trace into, которая обеспечивает выполнение очередной команды, в том числе и команды внутри вызванной подпрограммы. Таким образом, при использовании этой операции осуществляется трассировка подпрограмм, вызванных с помощью команд ACALL, LCALL микроконтроллера. Операция Animate осуществляет трассировку автоматически, переходя к выполнению следующей команды без участия оператора. Операция Step over выполняет следующую команду только в текущей программе, без трассировки подпрограмм. Операция Stop run останавливает выполнение программы, находящейся в режиме прогона.

Для реализации режимов Run необходимо, чтобы подпрограммы проекта были предварительно оттранслированы с созданием необходимой отладочной информации, что реализуется с помощью установки опции Debug information в режиме меню Option/Compiler. Модули проекта невидимы отладчику, если эта опция не установлена.

Режим Debug обеспечивает отладку программы с помощью следующих операций:

Evaluate/modify (Ctrl+F4)

Breakpoints...

------------------------------------------------

Add watch... (Ctrl+F7)

Delete watch

Edit watch

Remove all watches

Операция Evaluate/modify позволяет вычислять значения выражений и изменять значения переменных. Это бывает полезно при отладке вычислительной части рабочей программы, оперирующей с данными целого или вещественного типов (Byte, Integer, Word, Real). В систему программирования входит библиотека функций CROSS52.LIB, которая содержит ряд подпрограмм целочисленной арифметики, арифметики с плавающей запятой и тригонометрических функций. Библиотека подключается автоматически при входе в систему программирования.

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

Остальные операции этого режима обеспечивают работу с окном просмотра, которое в процессе отладки позволяет контролировать и корректировать ход выполнения программы. Операция Add watch открывает окно просмотра Watch и вставляет в него выражение. По умолчанию отображается переменная байтового типа (Byte), расположенная по адресу, представленному меткой. Для отображения значений переменных целого и вещественного типов (Byte, Integer, Word, Real) необходимо задавать переменные или выражения, определяющие адрес, в специальном формате.

Операция Delete watch удаляет текущее выражение (помеченное ромбиком слева) из окна просмотра Watch. Операция Edit watch позволяет редактировать текущее выражение в окне просмотра. Операция Remove all watches удаляет все выражения из окна просмотра Watch.

Для реализации Debug необходимо, чтобы подпрограммы проекта были предварительно оттранслированы с созданием необходимой отладочной информации, что реализуется с помощью установки опции Symbol information в режиме меню Option/Compiler. В противном случае в выражениях, определяющих адреса переменных, нельзя использовать программные метки.

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

Compiler...

Linker...

Directories...

Animate...

Tools...

----------------

Environment

----------------

Open...

Save...

Команда Compiler открывает диалоговое окно, в котором указывается необходимость создания при ассемблировании отладочной и символьной информации (Debug information и Symbol information, соответственно), дополнительных файлов ассемблерного листинга и файла макрорасширений (Assembler listing и Macros listing, соответственно), условий трансляции с использованием дисковой памяти или без неё (Disk или Memory).Опции Condition и Macro generation не реализованы и поэтому не влияют на результаты трансляции. Если необходимо создавать отладочную информацию, то она реализуется в виде списков с указанием необходимой отладчику информации для каждой команды. В дальнейшем это даёт возможность отладчику остановиться на нужной команде и подсветить соответствующую строку исходного текста. В качестве символьной информации, в случае необходимости, формируется список описаний локальных и глобальных переменных. Это позволяет отладчику определить тип и положение переменной в памяти. В этом случае на стадии отладки можно просматривать и модифицировать переменные в окне Watch. К дополнительным файлам, формируемым на этапе ассемблирования, относятся файлы листингов трансляции для каждого транслируемого модуля и файла макрорасширений.

С помощью команды Directories в меню Options разработчик указывает каталоги, из которых загружаются программные модули для компиляции и редактирования связей и в которые помещаются исполняемые файлы с результатами компиляции. Команда Animate служит для задания режимов автоматического пошагового выполнения программы без участия оператора. Команда Tools позволяет указать имена внешних программ, которые затем можно вызывать по имени в процессе сеанса работы с системой программирования. Команда Environment позволяет задавать параметры экранного интерфейса (размер экрана, цветовую палитру, параметры входа в систему и выхода из неё), параметры текстового редактора. Команда Save позволяет сохранить текущую конфигурацию системы.

Режим меню Hard предназначен для управления аппаратными средствами загрузки и выполнения программы. Его меню содержит команды:

Platform...

Parameters...

Map...

Fill memory...

Goto address... (Shift+F5)

Change regs order... (Shift+F3)

Clear clock

-------------------------------------------------

Restart hardware (Alt+F2)

Команда Platform определяет выбор средств моделирования (программный симулятор, отладочная плата или схемный эмулятор), задаёт тип используемого контроллера. Команда Parameters используется для задания параметров работы аппаратного обеспечения, которые зависят от выбранного средства моделирования. Команда Map позволяет установить карту памяти отлаживаемой системы, а команда Fill memory – заполнить ячейки в заданном диапазоне адресов одинаковым кодом. Команда Goto address позволяет переместиться на заданный адрес памяти в окне ресурсов Resource. Команда Change regs order позволяет поменять регистры, которые отображаются в окне Resource. Команда Clear clock очищает значение внутреннего счётчика тактов работы микроконтроллера, который поддерживается только для программного симулятора и схемного эмулятора.

Команда Restart hardware даёт возможность проинициализировать заново ту аппаратуру, на которой происходит процесс моделирования. Эта команда выполняется автоматически при запуске системы и при любом изменении в окне Hard/Platform. С помощью этой команды устанавливается соединение с эмулятором или отладочным контроллером, система выводится из состояния зависания.

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

Cascade

Close

-------------------------------------------

Size/Move (Ctrl+F5)

Zoom (F5)

Next (F6)

Previous (Shift+F6)

Close (Alt+F3)

-------------------------------------------

Resource

Disassembler

Watch

Trace

User Screen (Alt+F5)

List (Alt+0)

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

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

Режим Help обеспечивает выдачу справочной информации по различным вопросам практического применения интегрированной системы программирования.

Для запуска интегрированной системы программирования её необходимо предварительно установить на жёстком диске и после этого запустить файл Casm52x.exe.

На экране монитора появится изображение рабочего экрана интегрированной системы со строкой основного меню.

После этого система готова к созданию исходного текста программы на языке Ассемблер.

Создание, редактирование и запись программ

Для создания программы нажмите клавишу F10, войдите в режим файл, в открывшимся окне выберите операцию New. В рабочей области экрана появится окно редактирования с именем NONAMExx. Вводите свою программу, нажимая клавишу “Enter” в конце каждой строки. Для перемещения в окне редактирования используются клавиши управления курсором. Редактирование текста производится с помощью программы-редактора, входящего в состав интегрированной системы.

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

После ввода программы следует записать её на диск, выполнив операцию Save в меню File. По умолчанию файлу будет присвоено имя NONAMExx.A52. Переименовать файл можно с помощью операции Save as, введя новое имя файла и нажав клавишу “Enter”. Можно выполнить запись на диск, нажав клавишу F2 и введя затем новое имя файла. При последующем нажатии клавиши “Enter” файл будет записан на диск с заданным именем.

Интегрированная система позволяет пользователю работать одновременно с несколькими файлами, реализуя многооконный экранный интерфейс. При этом рабочее окно вызываемого файла накладывается на окно текущего файла, аналогично тому, как это делается в современных текстовых редакторах Word, Lexicon.

Компиляция программы

Для компиляции программы в исполняемый код следует выбрать операцию Make в меню Compile или нажать клавишу F9. Ассемблер оттранслирует программу, переведя её с языка Ассемблер в машинный код микроконтроллера и загрузит его в аппаратуру в соответствии с заданными опиями меню Hard/Platform. Одновременно может быть создан образ загрузочного кода в виде HEX файла на диске, если установлена соответствующая опция в меню Options/Linker.

С момента начала компиляции на экране появляется окно, в котором даются сведения о происходящей компиляции. В окне появляется сообщение о необходимости нажатия клавиши Esc, если требуется прервать компиляцию. Если компиляция завершена успешно, то на экране появляется сообщение “Compile successful: Press any key”. Окно сохраняется, пока не будет нажата какая-либо клавиша.

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

Отладка программы

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

Пошаговая отладка обычно выполняется с помощью выбора операции Trace into в меню Run или путём нажатия клавиши F7. Начало сеанса отладки задаётся нажатием клавиши “Enter” при выборе операции Trace into или клавиши F7. При этом первый оператор в тексте программы подсвечивается, указывая границу выполнения программы. При последующих нажатиях клавиш “Enter” или F7 будет производиться последовательное выполнение команд программы. При этом курсор будет автоматически перемещаться, указывая на очередную выполняемую команду. После каждого шага можно выбрать команду Add watch в меню режима Debug (или нажать клавиши Ctrl+F7) для просмотра и редактирования значения переменной в открывающимся окне Watch или окне Debug. Текст в окне можно менять, если нажать клавишу “ и использовать соответствующие команды редактора текста. При открытии окна ресурсов с помощью операции Resource в меню Windows пользователь может контролировать текущее состояние всех регистров и внутренней памяти данных микроконтроллера после выполнения каждой команды.

Для пошаговой отладки можно использовать также команду Step over (клавиша F8), если пользователь не хочет выполнять трассировку подпрограмм, вызываемых командами ACALL, LCALL микроконтроллера. Команда Step over приводит к исключению подпрограмм из процесса трассировки, что целесообразно в случаях, когда эти подпрограммы ещё не готовы или пользователь хочет проконтролировать выполнение программы без вызова дополнительных процедур. Закончить программу желательно командой SJMP $ и поставить на этой команде контрольную точку нажатием клавиш Ctrl+F8. При попадании отладчика на эту команду необходимо сбросить систему нажатием клавиш Ctrl+F2.

При отладке с остановами в контрольных точках отладчик выполняет прогон программы (операция Run в меню режима Run) до поступления команды, отмеченной в качестве точки останова (контрольная точка выставляется и отменяется нажатием клавиш Ctrl+F8, при этом она не должна устанавливаться на пустых строках, комментариях или директивах Ассемблера). После останова отладчик ожидает ввода следующих команд отладки.

После задания контрольных точек производится запуск программы выбором операции Run в меню Run или нажатием клавиш Ctrl+F9. Когда будет достигнута первая из контрольных точек, отладчик останавливает выполнение программы. При этом исходный текст выдаётся в окно на экране монитора, и курсор останавливается на строке с контрольной точкой. Далее пользователь может реализовать различные варианты отладки, а именно:

· просмотреть исходный текст программы, выполнить редактирование переменных и окне Watch;

· проконтролировать состояние всех текущих ресурсов микроконтроллера;

· изменить состояние любого ресурса в окне Resource, подведя предварительно курсор к изменяемому значению ресурса;

· продолжить выполнение программы до следующей контрольной точки или до конца программы, выбрав операцию Run (клавиши Ctrl+F9);

· установить новые контрольные точки или удалить их;

· вернуться к началу программы с помощью выбора операции Program reset в меню Run (клавиши Ctrl+F2) и запустить её снова;

· перейти к пошаговому выполнению программы путём выполнения команд Trace into или Step over (клавиши F7 или F8).

При отладке программы в режиме реального времени Run/Real time run на плате контроллера необходимо в программе поставить программные контрольные точки LCALL 8400h. В этом случае остановы происходят на следующих за ними командах.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...