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

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

Отправлено Kirilloff 24 сентября 2003 г. 01:48

Proc - TMS320C6414.
Проблема в следующем.
Процессор грузит некую программу из ПЗУ. (Сам грузит...)
Программа стартует.
Эта программа перемещает себя с 0-го адреса в область старших адресов.
Потом через двухпортовую память (один порт - это IBM PC) грузит с 0-го адреса уже настоящую программу.
После чего делает JUMP на 0-й адрес.

Эффект такой - начинает работать загрузчик (как бы до своего перемещения).
Думал пишу неправильно. Проверяю - правильно. Затираю загрузчик - один черт. Хуже того, загрузчик позволяет
затереть ВСЮ память и при этом остается в рабочем состоянии.
Дело в том, что ДАННЫЕ пишутся в кэш первого уровня L1. А программа выполняется из L2. Кэш программ и данных разный. В смысле их 2 штуки.

А так как данным нет причины обновиться, то вновь загруженная программа так и сидит в L1, а содержимое L2 остается прежним.

Победить удалось тем, что прорграмму гружу и запускаю с адреса, где еще не ступала нога программы. Тогда - все хорошо.
Еще удалось заставить работать загружаемую программу - писать ее 2 раза подряд в одно и тоже место.

Первый способ нехорош - неуниверсален. Второй - время от времени - (редко, но очень надолго) отказывется работать (пишет программу неполностью!!!)

Может есть стандартные способы победить кэш первого уровня?

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru