Компоновку многомодульных программ с помощью линкера link.exe удобно выполнять в диалоговом режиме. При этом компьютер выдает на экран монитора несколько подсказок, на которые требуется ответить. Рассмотрим процесс компоновки программ, полученных в файлах displ.obj и crosscod.obj.
1. На панели TotCom с помощью курсора выделяем файл link.exe и запускаем его. Компьютер выдает первую подсказку:
Input Filename:
Необходимо набрать имя первого входного файла. В нашем случае это будет файл главного модуля displ.obj. По умолчанию расширение .obj можно не вводить. Наберите displ и нажмите Enter.
Далее появляется сообщение:
Enter offset for 'CODE':
Компьютер запрашивает величину смещения (offset) первой команды программы DISPL относительно начального адреса 0000H. Так как для однокристальных микроконтроллеров фирмы “Intel” программа должна обязательно начинаться с адреса 0000H, то смещение равно 0. Нажмите клавишу Enter, что по умолчанию в данном случае означает отсутствие смещения.
2. На экране появляется вторая подсказка:
Input Filename:
Необходимо ввести имя второго входного файла. В данном случае это будет crosscod.obj. Наберите crosscod и нажмите Enter. На экране появится сообщение:
Enter offset for 'CODE':
Компьютер запрашивает величину смещения начального адреса программы CROSSCOD относительно конечного адреса программы DISPL. Как правило, при компоновке программ для микроконтроллеров с целью экономии памяти отдельные модули следуют друг за другом без смещения. Поэтому нажимаем клавишу Enter, что означает отсутствие смещения.
3. На экране появится третья подсказка:
Input Filename:
Так как имена всех входных файлов были уже введены, то нажимаем клавишу Enter, что сообщает компоновщику об окончании списка входных файлов.
4. Компьютер выводит четвертую подсказку:
Output Filename:
Линкер запрашивает имя выходного файла, который им будет создаваться. В принципе имя этого файла может быть произвольным. Однако обычно имя выходного файла совпадает с именем главного модуля программы, в данном случае displ. Если это так, то просто нажимаем клавишу Enter.
5. На экране появляется пятая подсказка:
Library Filename:
Компьютер запрашивает имя файла библиотеки, где могут находиться программы, используемые при компоновке. В нашем случае библиотечные файлы не используются, поэтому в ответ нажимаем клавишу Enter.
6. И, наконец, на экране появляется последняя подсказка:
Options(D,S,A,M,Z,X,H,E…;<CR>=Default):
Компьютер запрашивает имена опций, которые будут использованы при формировании выходного файла. Опции определяют формат файла, тип устройства вывода и т.д. Если в ответ на этот запрос будет нажата клавиша Enter, то по умолчанию компоновщик создаст выходной файл в формате Intel Hex с выводом результатов только на экран дисплея. А так как именно этот формат использует симулятор/отладчик AVSIM51, то просто нажимаем клавишу Enter.
Результаты работы программы-компоновщика (линкера) выводятся на экран в следующем виде: сначала заголовок, затем карта загрузки (LOAD MAP), где указаны имена отдельных модулей, их начальные и конечные адреса, а также размеры модулей в адресном пространстве, затем следует наименование выходного файла и его формат. Компоновка считается успешной, если в нижней строке на экране будет выведено:
Link Errors: 0
В результате работа компоновщика в раскрытой папке на панели TotCom появится файл с именем displ.hex, который будет использоваться при отладке программы DISPL.
Запустите симулятор/отладчик AVSIM51 и загрузите в него файл displ.hex. Отладку программы DISPL рекомендуется делать следующим образом.
1. С помощью клавиши ESC переходим в дисплейную область отладчика AVSIM51. Устанавливаем точку останова на первой от начала команде RET (последняя команда программы DISPL). Устанавливаем (с помощью клавиши F5) низкую скорость работы отладчика (LOW).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.