Пр о ц е с с о р 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
- имя блока
памяти, в который загружается секция или физический адрес загрузки;
I...,145,146,147,148,149,150,151,152,153,154 156,157,158,159,160,161,162,163,164,165,...186