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

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

Отправлено AntZ 15 декабря 2002 г. 20:56

Работаю с 5416 который может адресовать (теоретически) до 8MB памяти, используя 128 станиц по 64K в каждой. По всей вероятности 54xx проектировался как DSP адресуюший до 64K памяти, потом к нему притянули расщиренную модель памяти с регистром XPC. Вот здесь и начинается веселье.

SPRU103f, стр 5-10 (5.4.4):
By default, all pointers are 16 bits. When the –mf option is used, pointers are 24 bits and are able to point to extended memory.

Это что это за новый тип такой в 54xx? Это неправда, sizeof(pointer) всегда дает 1 (16 bit word), TI просто бред пишет, все указатели всегда 16bit, независимо от ключей, можификаторов far и прочей дребедени. Я пытался использовать SARAM4-7 из программы на C (0x038000-0x03FFFF), в результате у меня затерся main(), который находился по адресу 0x018000:

0001:8000 main
0001:8000 0000 ADD 0h,A
0001:8001 0001 ADD 1h,A
0001:8002 0002 ADD 2h,A
0001:8003 0003 ADD 3h,A
0001:8004 0004 ADD 4h,A

Слинковано было все корректно, просто С компилер не удосуживается менять регистр XPC! Адреса могут принимать значения 0x000000-0x7FFFFF, а поинтеры только от 0x0000 до 0xFFFF. Получается что поинтеры не могут адресовать весь диапазон памяти, а могут только адресовать адреса в пределах одной страницы. Надо иметь не только указатель, но и сокровенное знание на какой странице нужные данные расположены.

Модель памяти в 54xx конечно уродская, но зачем врать про двадцатичетырехбитные указатели и что C может использовать более 64K памяти данных без уродских извращений из ассемблерных вставок? На асме все делается легко и просто, пришется функция, которая вызывается из C, меняет XPC и делает все что надо, затем возвращает XPC на место.

Просто достал TI с шизанутой документацией которая рассказывает сказки про замечательную расширенную модель памяти.



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

Ответы


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

Имя (обязательно): 
Пароль: 
E-mail: 

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

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

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


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

E-mail: info@telesys.ru