"DVDXpert" - компас в мире Hi-Fi и High End техники и другой stereo и home cinema аппаратуры.

ГЕНЕРАЦИЯ ОБЪЕКТНЫХ МОДУЛЕЙ (ФАЙЛОВ)

19-01-2024

АЛГОРИТМ РАЗМЕЩЕНИЯ СЕКЦИЙ

Алгоритм размещения кодов и данных, именуемых секциями, позволяет компоновщику эффективно управлять размещением этих секций в памяти. Существует четыре разновидности размещения, доступных компоновщику. Секции могут быть абсолютными или перемещаемыми (неабсолютными) и они могут быть либо связаны с заданным блоком памяти при помощи командного файла компоновщика, либо не связаны. Итак, существует четыре типа размещения секций: абсолютный связанный; абсолютный несвязанный; перемещаемый связанный; перемещаемый несвязанный.

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

Когда заканчивается размещение абсолютных секций, компоновщик приступает к размещению перемещаемых связанных секций. Для них компоновщик проверяет наличие необходимого объема памяти и в случае нехватки генерирует ошибку. Размещение перемещаемых секций происходит в том порядке, в каком они описаны в командном файле. После окончания размещения связанных секций, компоновщик начинает размещать перемещаемые несвязанные секции. Компоновщик начинает работу с наибольшей перемещаемой секции и последовательно переходит к меньшим секциям. При этом для каждой перемещаемой несвязанной секции из имеющихся блоков памяти подбирается оптимальный. Такой алгоритм позволяет значительно увеличить шансы бесконфликтного размещения перемещаемых несвязанных секций.

Стек не является секцией, но размещается во время обработки секций. Командный файл компоновщика может либо связывать, либо не связывать стек с определенным блоком памяти. Если стек связан с определенным участком памяти, то он обязательно размещается до начала обработки перемещаемых секций. Если стек не связан, то он размещается после окончания обработки перемещаемых связанных секций, но до начала обработки перемещаемых несвязанных секций.

Загрузочный код по сбросу обращается к этой таблице и переносит данные в ОЗУ.

Существуют и другие примеры, очень большие и сложные, иллюстрирующие применение компоновщика, но их описание выходит за рамки этой книги Как правило, сложные проекты из множества файлов, со сложными скриптами компоновщика применяются для написания программ под микроконтроллеры, более мощные, чем PIC 16F83/84. Для создания таких проектов недостаточно прочесть однудве книги. Необходим опыт программирования более простых приложений, желательно для микроконтроллеров различных семейств.


Смотрите также:
 «Рекьявик» - новая фишка Яндекс
 Маршрутизатор
 Цифровое телевидение в России
 Интерактивное телевидение
 Экспресс.

Добавить комментарий:
Введите ваше имя:

Комментарий:

Защита от спама - решите пример: