[an error occurred while processing this directive] [an error occurred while processing this directive]
Ответ: Это не совсем верно. Компиляторы как правило строятся так, что вначале
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Bill 25 июня 2002 г. 23:42
В ответ на: Ответ: Дело не функциях, которые можно "не пользовать", а в модуле "main", который заводит стек, передаёт параметры между функциями и т.д. Линкер тоже должен быть не обычный: уметь генерировать бинарные файлы кода, а не .EXE. А вот распределение на сегмент кода и сегмент данных - это не проблема, в интеловском процессоре это само получается. отправлено sasha1 25 июня 2002 г. 22:55

запускается startup модуль, который инициализирует указатель стека, сегменты инициализируемых данных, обнуление сегментов неинициализируемых данных и лишь затем вызывает функцию main. Что касается linker-а, то он должен уметь выдавать на выходе код, пригодный для прошивки ПЗУ. Формат выходного файла не имеет особого значения (двоичный, hex и т.д.). Естественно exe файлы в это категорию не попадают. С другой стороны, хотя linker, как Вы правильно заметили, и разделяет сегменты кода и данных, но он должен уметь размещать эти сегменты по заданным физическим адресам. Возможности стандартных linker-ов вэтом смысле очень и очень невелики, если не сказать что они вовсе отсутствуют.

Составить ответ  |||  Конференция  |||  Архив

Ответы



Перейти к списку ответов  |||  Конференция  |||  Архив  |||  Главная страница  |||  Содержание  |||  Без кадра

E-mail: info@telesys.ru