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

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

Отправлено делавший 09 сентября 2005 г. 10:39
В ответ на: как для 55хх использовать общие для АСМ и С константы ? отправлено man55 09 сентября 2005 г. 07:37

надо было сделать оврелейки - т.е. на этапе линковки в глобальные переменные ложились соотвествующие адреса.А помто подгрузальщик брал адреса и размеры и делал свое дело
В вашем случае надо положить размеры массивов

делать примерна так

а асм файле

; Module contain size of overlayes
; ----- for module 0 -------
.global Module_0_Start
.global _Module_0_Length
; ----- for module 1 -------
.global Module_1_Start
.global _Module_1_Length


в Цэ файле

// -------- external variable ----------
extern UINT32 Module_0; // load adress
extern UINT32 Module_0_Length;

extern UINT32 Module_1; // load adress
extern UINT32 Module_1_Length;


в командном файле

MEMORY
{
PAGE 0: /* ---- Unified Program/Data Address Space ---- */
....
SARAM2 (RWIX): origin = 0x040000, length = 0x010000 /* 64Kb */
...
}

SECTIONS
{
...
.text_Module_0 : load = SARAM2, align 0x100,
{
Module_0_Start=.;
Module_0.obj(.text)
_Module_0_Length=. - Module_0_Start;
}
/*------------------------------------*/
.text_Module_1 : load = SARAM2, align 0x100,
{
Module_1_Start=.;
Module_1.obj(.text)
_Module_1_Length=. - Module_1_Start;
}
...
}

И все

Только в вашем случае вместо
Module_0.obj(.text)
надо будет указать секцию в которой живет ваш массив. Ясно что массив надо положить в отдельную секцию - смотрите PRAGM-ы

ну в общем то достаточно извращенный способ - совсем не понятно почему не передать размер параметром?

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

Ответы


Отправка ответа

Имя (обязательно): 
Пароль: 
E-mail: 
NoIX ключ Запомнить

Тема (обязательно):
Сообщение:

Ссылка на URL: 
Название ссылки: 

URL изображения: 


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

E-mail: info@telesys.ru