Компьютер запрашивает величину смещения (offsset) первой команды программы MAIN относительно начального адреса 0000H. Так как для микропроцессоров фирмы Intel программа должна обязательно начинаться с адреса 0000H, то смещение равно 0. Нажмите клавишу Enter, что по умолчанию в данном случае означает отсутствие смещения.
2. На экране появляется вторая подсказка:
Input Filename:
Необходимо ввести имя второго входного файла. В данном случае это будет pr810.obj. Напечатайте pr810 и нажмите Enter. На экране появится сообщение:
Enter offset for 'CODE':
Компьютер запрашивает величину смещения начального адреса программы PR810 относительно конечного адреса программы MAIN. Как правило, при компоновке программ для микроконтроллеров с целью экономии памяти отдельные модули следуют друг за другом без смещения. Поэтому нажимаем клавишу Enter, что означает отсутствие смещения.
3. На экране появится третья подсказка:
Input Filename:
Необходимо ввести имя третьего входного файла. Это будет файл crosscod.obj. Напечатайте crosscod и нажмите Enter.
На экране появится сообщение:
Enter offset for 'CODE':
В ответ нажите клавишу Enter, что будет означать отсутствие смещения.
4. На экране появится четвертая подсказка:
Input Filename:
Так как имена всех входных файлов были уже введены, то нажимаем клавишу Enter, что сообщает компоновщику об окончании списка входных файлов.
5. Компьютер выводит пятую подсказку:
Output Filename:
Компоновщик запрашивает имя выходного файла, который им будет создаваться. В принципе имя этого файла может быть произвольным. Однако обычно имя выходного файла совпадает с именем главного модуля программы, в данном случае main. Если это так, то просто нажимаем клавишу Enter.
6. На экране появляется шестая подсказка:
Library Filename:
Компьютер запрашивает имя файла библиотеки, где могут находиться программы, используемые при компоновке. В нашем случае библиотечные файлы не используются, поэтому в ответ нажимаем клавишу Enter.
7. И, наконец, на экране появляется последняя подсказка:
Options(D,S,A,M,Z,X,H,E…;<CR>=Default):
Компьютер запрашивает имена опций, которые будут использованы при формировании выходного файла. Опции определяют формат файла, тип устройства вывода и т.д. Если в ответ на этот запрос будет нажата клавиша Enter, то по умолчанию компоновщик создаст выходной файл в формате Intel Hex с выводом результатов только на экран дисплея. А так как именно этот формат использует экранный отладчик AVSIM85, то просто нажимаем клавишу Enter.
Результаты работы программы-компоновщика выводятся на экран в следующем виде: сначала заголовок, затем карта загрузки (LOAD MAP), где указаны имена отдельных модулей, их начальные и конечные адреса, а также размеры модулей в адресном пространстве, затем следует наименование выходного файла и его формат. Компоновка считается успешной, если в нижней строке на экране будет выведено:
Link Errors: 0
В результате работы компоновщика в каталоге MP85 появится новый файл main.hex, который и будет использоваться при отладке программы.
3.2.3. Отладка многомодульной программы. Отладка многомодульных программ во многом аналогична отладке отдельных программ, методика которой рассмотрена в п.3.1. Однако имеются различия, которые удобно рассмотреть на примере отладки программы MAIN микроконтроллера.
Задание. Запустите отладчик AVSIM85 и загрузите в него файл main.hex.
Так как в программе MAI используется ОЗУ, то требуется загружать в отладчик файла ram (без расширения), находящийся в текущем каталоге MP85. В этом файле (в формате Intel Hex) содержатся начальный адрес ОЗУ – 0800H, конечный адрес – 09FFH, и данные для начальной загрузки ячеек ОЗУ – 00H.
Для загрузки файла ram необходимо выполнить команду:
LOAD→DATA
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.