[an error occurred while processing this directive] [an error occurred while processing this directive]
Вот только вчера изучали С для ADSP
(«Телесистемы»: Конференция «Микроконтроллеры и их применение»)
[an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive]

Отправлено Smav 09 января 2002 г. 12:28
В ответ на: Процедуры старта контроллера от разных компаний интересуют. отправлено diwil 08 января 2002 г. 16:47

Это, конечно, не МК, но разницы большой нет.
Старт код выполнен ввиде отдельных процедур (типа init_CPU, init_RAM,init_ALL- точные имена не помню). Сделано это прежде всего потому, что компилятор поддерживает несколько типов процессоров с разными регистрами, объемами ОЗУ и т.д.).
Шедевр - вектора прерываний. У ADSP каждому прерыванию соответствует свой адрес. Так они сначала сгребают все в одну кучу, загрузив в регистр номер прерывания, а затем уходят на общую процедуру, которая их разгребает с использованием дополнительной таблицы в ОЗУ. Сделано видимо, чтобы не дублировать сохранение/восстановление контекста. Короче сделали прерывание с одним вектором аля ПИК. В результате огромное время входа/выхода из прерывания. Эту часть скорее всего придется переписать.

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

Ответы



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

E-mail: info@telesys.ru