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

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

Отправлено m_a_x 08 декабря 2002 г. 17:31

Люди, кто сталкивался с такой проблемой. Помогите, пожалуйста.
Я работаю с DSKC6711 (CCS2.1 для DSK), программа на стороне DSP работает под управлением DSP/BIOS. На HOST- стороне использую API функции для DSK и VisualC++. Сами по себе функции (т.е. значение, которое они возвращают, чтобы сообщить об ошибке или ее отсутствии) вызываются нормально. Но загрузка программы HOSTом не проходит. Если программа написана без DSP/BIOS и все секции находятся во внутренней памяти, загрузка и запуск (через dsk6x_hpi_generate_int) проходят нормально (кстати, при экспериментировании выяснилось, что после работы с CCS следует вызывать dsk6x_reset_board, только потом dsk6x_reset_dsp и т.д.).
После этого в конфигурации DSP/BIOS для всех объектов заменил используемый ими сегмент с SDRAM на сегмент, расположенный во внутренней памяти, т.е. вся программа - внутри. Снова ничего не получается.
После этого написал маленькую программу без DSP/BIOS, умещающуюся внутри DSP, она загружается и запускается без проблем. Функция в ней, отвечающая за коммуникации с HOST, расположена в самом конце внутреннего сегмента (т.е. она целиком помещается в L1P, адрес, где она находится не пересекается с адресом внутреннего сегмента для проги с DSP/BIOS – т.е. при записи чего-то другого во внутреннюю память механизм поддержки когерентности L2 SRAM не уничтожает эту функцию). Сначала HOSTом загружается эта программа, далее загружаю программу c DSP/BIOS. Сообщаю маленькой функции, что программа загружена (запись во внутреннюю память, из которой она постоянно читает) она передает управление (делает branch) на 0 (перед этим сбрасываю L1P, L1D кеш; в конфигурации DSP/BIOS .hwi_vec располагаю в секции, начин. с 0-го адреса). В таком виде это все то работает, то нет (причем, когда именно происходит то или другое - непонятно).
Вероятно, какие-то проблемы с API функциями, осуществляющими запись/чтение из SDRAM (например, функция dsk6x_hpi_read из SDRAM читает не всегда правильно, из внутренней – все нормально). С самой SDRAM по идее все хорошо, т.е. через CCS прога грузится и запускается всегда, conftest проходит без осложнений.
Сейчас использую такой вариант: запуск CCS, загрузка программы с DSP/BIOS, выхожу из CCS (программу не останавливаю), далее HOST–прога устанавливает связь с пом. необходимых функций и все работает. Но это довольно некрасивый вариант (тем более, если необходимо читать из SDRAM, придется сообщать DSP, он скопирует внутрь и только тогда читать).
У кого хватило терпения прочитать до конца, подскажите пожалуйста, что можно сделать.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru