Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как работает компилятор C для BlackFin?
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
K A A
Начал писать программу для BlackFin и возникло несколько вопросов:
1. Объектные файлы линкуются, используя информацию из .ldf. Где можно почитать об этом подробно по-русски, как этот ldf настраивать? Знаю, что есть описание на английском, но тяжеловато все сразу осилить.
2. Это принятый в индустрии метод или что-то специфичное для AD, все эти секции, а в них какие-то непонятные объекты? До этого писал программы на C с помощью gcc для AVR, там с такими вещами не сталкивался.
Заранее спасибо.
dxp
Цитата(K A A @ Oct 12 2006, 18:24) *
Начал писать программу для BlackFin и возникло несколько вопросов:
1. Объектные файлы линкуются, используя информацию из .ldf. Где можно почитать об этом подробно по-русски, как этот ldf настраивать? Знаю, что есть описание на английском, но тяжеловато все сразу осилить.
2. Это принятый в индустрии метод или что-то специфичное для AD, все эти секции, а в них какие-то непонятные объекты? До этого писал программы на C с помощью gcc для AVR, там с такими вещами не сталкивался.
Заранее спасибо.

ldf - линкерный скрипт, служит для управления размещением секций с данными, кодом и т.д. по конкретным физическим адресам в процессе компоновки. Это обычно дело, такой подход используется почти везде. И в gcc тоже - например, в виндовом avr-gcc линкерные скрипты лежат WinAVR\avr\lib\ldscripts\. Это есть и у IAR, и у VDSP, и CCS и у многих других пакетов. А как иначе управлять компоновкой?

Насчет русскоязычного описания не знаю, вряд ли оно существует. И лучше на это не рассчитывать. Если уж взялись за этот проц, надо быть готовым к шудированию сотен страниц на аглицком. Он нам не такой уж и сложный (совсем не Хемингуэй smile.gif ).

В составе VDSP еще есть визуальный редактор линкерных скриптов, называется Expert Linker (меню Tools). Позволяет выдавать карту памяти в графике и редактировать ее в этом виде. Но я не пользовался. smile.gif
K A A
ОК, а чем отличается Memory Segment от Output Section?
dxp
Цитата(K A A @ Oct 12 2006, 20:13) *
ОК, а чем отличается Memory Segment от Output Section?

Секции - это то, куда компилятор и ассемблер "складывают" объекты (переменные). Типа контейеров данных в объектных файлах. А сегменты памяти - это области физической памяти целевой платформы. И скрипт как раз и указывает линкеру какие секции (с объектами) в какие сегменты физической памяти рассовывать.
impatt
Цитата(K A A @ Oct 12 2006, 14:24) *
Начал писать программу для BlackFin и возникло несколько вопросов:
1. Объектные файлы линкуются, используя информацию из .ldf. Где можно почитать об этом подробно по-русски, как этот ldf настраивать? Знаю, что есть описание на английском, но тяжеловато все сразу осилить.
2. Это принятый в индустрии метод или что-то специфичное для AD, все эти секции, а в них какие-то непонятные объекты? До этого писал программы на C с помощью gcc для AVR, там с такими вещами не сталкивался.
Заранее спасибо.

Так как не понял, каким компилятором пользуешься, предполагаю, что gcc.
Линкер в состеве gcc, можно сказать, отсутствует, - он находится в составе binutils и называется ld. Информации на русском по линкеру и его скриптам можно найти здесь: http://www.opennet.ru/docs/RUS/gnu_ld/
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.