Пр о ц е с с о р TMS 3 2 0C4 x
155
5. Процесс компоновки
Процесс компоновки (редактирования связей) программы для
TMS320C4x имеет некоторые особенности, связанные с наличием разных об-
ластей памяти – внутренней, локальной и глобальной. Целевые системы могут
иметь различное распределение памяти, поэтому для компоновки программы,
рассчитанной на работу в конкретной целевой системе, компоновщику необхо-
димо указать распределение памяти. Кроме того, иногда бывает необходимо
разместить секции программы в конкретных блоках памяти целевой системы,
например, в ПЗУ. Компоновщик поддерживает две директивы:
•
MEMORY
– описание физической памяти целевой системы;
•
SECTIONS
– размещение программных секций в памяти целевой системы.
Синтаксис директивы MEMORY:
MEMORY
{
name1[(attr)] : origin =
constant1
, length =
constant2
;
name2[(attr)] : origin =
constant3
, length =
constant4
;
}
name
– имя блока памяти до восьми символов;
attr
– атрибуты блока:
R –
разрешено считывание блока памяти;
W –
разрешена запись в блок памяти;
X –
блок памяти может содержать исполнимый код;
I –
блок памяти может быть инициализирован;
origin
– начальный адрес блока;
length
– размер блока в словах;
constant
– соответствующие константы
Синтаксис директивы SECTIONS:
SECTIONS
{
name: [
property, property, property,. . .
]
name: [
property, property, property,. . .
]
name: [
property, property, property,. . .
]
}
Каждая строка содержит спецификацию секции, где
name
– имя выходной секции (секции в исполнимом файле);
property
–
свойства секции.
Некоторые свойства секций:
•
Адрес загрузки
Синтаксис
load =
allocation
или
>
allocation
, где
allocation
- имя блока
памяти, в который загружается секция или физический адрес загрузки;