Кросс-редактор связей Link

Кросс-редактор связей Link работает в среде операционной системы MSDOS (версия не ниже 3.30) и дает пользователю возможность объединять до 20 сформированных кросс-ассемблером X8051 объектных модулей, настраивая их на выполнение с определенного адреса. При этом создается загрузочный модуль МК-программы.

Основные функции кросс-редактора связей Link:

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

- разрешение внешних ссылок;

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

- выявление ошибок редактирования;

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

Работа кросс-редактора связей начинается с запуска файла link.exe и ведется в диалоговом режиме. Сразу после запуска указанного файла на экран выдается заголовок, а затем запрашивается имя входного файла и значение смещения объектного модуля, входящего в этот файл:

Input Filename:

Enter Offset For 'Code':

Эти сообщения повторяются до тех пор, пока все входные файлы не будут перечислены. Расширение входных файлов по умолчанию принимается равным.obj. Шестнадцатеричное значение смещения прибавляется к начальному адресу объектного модуля МК-программы, устанавливаемому, как известно, директивой ORG.

После того, как все входные файлы перечислены, на запрос имени следующего входного файла надо нажать клавишу "Enter" и на экране появится запрос имени выходного файла (загрузочного модуля):

Output Filename:

Если не указано имя выходного файла, то присваивается имя первого входного файла.

После нажатия клавиши "Enter" на экране появится запрос имени файла библиотеки:

Library Filename:

Ответ из нажатия клавиши "Enter" завершает ввод имен библиотечных файлов, расширение которых по умолчанию принимается равным.lib.

В следующем сообщении запрашиваются ключи вывода результатов работы кросс-редактора связей:

Options (D, S, A, M, Z, X, H, E, T, 1, 2, 3, <CR>=Default):

где

D - вывод на диск выходного файла в шестнадцатеричном формате INTEL с расширением.hex (по умолчанию) и файла с расширением.map, содержащего ошибки редактирования, таблицу общих символических имен в алфавитном порядке, карту загрузки;

S - вывод на диск выходного файла в шестнадцатеричном формате INTEL с расширением.hex (по умолчанию) и файла с расширением.sym, содержащего таблицу общих символических имен (длина имени 32 знака);

A - вывод на диск выходного файла в шестнадцатеричном формате INTEL с расширением.hex (по умолчанию) и файла с расширением.sym, содержащего таблицу общих символических имен (длина имени 10 знаков);

M - вывод на диск выходного файла в шестнадцатеричном формате INTEL с расширением.hex (по умолчанию) и файла с расширением.sym в формате MICROTEK, содержащего таблицу символических имен. При этом в исходный модуль МК-программы должна быть включена директива SYMBOLS;

Z - вывод на диск выходного файла в шестнадцатеричном формате INTEL с расширением.hex (по умолчанию) и файла с расширением.sym в формате ZAK, содержащего таблицу символических имен. При этом в исходный модуль МК-программы должна быть включена директива SYMBOLS;

X - не используется;

H - вывод на диск выходного файла с расширением.hex (по умолчанию) в шестнадцатеричном формате INTEL;

E - вывод на диск выходного файла с расширением.hex (по умолчанию) в расширенном шестнадцатеричном формате INTEL;

T - вывод на диск выходного файла с расширением.tek (по умолчанию) в шестнадцатеричном формате TEKTRONIX;

1 - вывод на диск выходного файла с расширением.s19 (по умолчанию) в формате MOTOROLA S19;

2 - вывод на диск выходного файла с расширением.s28 (по умолчанию) в формате MOTOROLA S28;

3 - вывод на диск выходного файла с расширением.s37 (по умолчанию) в формате MOTOROLA S37.

Из перечисленных выше форматов, в которых может быть представлен выходной файл кросс-редактора связей (загрузочный модуль МК-программы), наиболее востребованным является шестнадцатеричный формат INTEL.

Файл в указанном формате состоит из записей (строк), причем каждая строка содержит шесть полей (поле <признак записи>, поле <длина>, поле <адрес загрузки>, поле <тип записи>, поле <данные> и поле <контрольная сумма>).

Поле <признак записи> состоит из одного символа ":" (двоеточие).

Поле <длина> занимает один байт и содержит число байтов данных в записи. Это число не может превышать значение, заданное из диапазона 01H-0FFH операндом директивы RECSIZE. При отсутствии в исходном модуле МК-программы указанной директивы число в поле <длина> не может превышать 10H. Значение поля <длина> последней записи файла равно нулю.

Поле <адрес загрузки> состоит из двух байтов и представляет собой шестнадцатеричный адрес загрузки первого в записи байта данных. В последней записи файла это поле содержит нулевой адрес.

Поле <тип записи> состоит из одного байта, значение которого равно 00H (01H), если запись не последняя (последняя).

Поле <данные> состоит из фактических данных, байты которых нумеруются слева направо. В последней записи файла данные отсутствуют.

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

Пример файла в шестнадцатеричном формате INTEL (файл prim.hex):

:0F00000075F06484F9740AC5F084C425F0F82201

:00000001FF

Пример файла с расширением.map (файл prim.map):

Global Symbol Name Global Value Global Filename

***********************************************************

* LOAD MAP *

***********************************************************

* Section Name Starting Address Ending Address Size *

***********************************************************

* prim.obj *

* CODE 0000 000E 000F *

***********************************************************

Link Errors: 0 Output Format: Intel Hex


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: