[an error occurred while processing this directive]
Насчет перемещений функций по памяти
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)

миниатюрный аудио-видеорекордер mAVR

Отправлено Baser 29 октября 2002 г. 16:39
В ответ на: Насчет перемещений функций по памяти (+) отправлено Беня 29 октября 2002 г. 16:02

HT-PICC при компиляции почти каждую функцию (иногда по несколько, закономерности я не нашел) пакует в свою секцию (psect textN) внутри объектного файла. Далее линкер может размещать объектные файлы не целиком, а кусками, секциями. Тут можно было сделать дополнительную оптимизацию размещения секций по кускам доступной свободной памяти, но её нет. Это я наблюдал, когда при увеличении программы на несколько строк (и превышении критического размера кода) внезапно менялось распределение памяти и длина кода уменьшалась на пару сотен слов!

Есть в подходе с разбиениями файла на секции и минус, т.к. для вызова функций из разных секций компилятору приходится ВСЕГДА переключать страницы прогр.памяти, т.к. он не знает в какую страницу её загонит линкер.

У IAR-а нет и этого, он требует непрерывного куска памяти (внутри страницы) для размещения всего объектного файла.

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

Ответы



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

E-mail: info@telesys.ru