[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Это, конечно, не МК, но разницы большой нет.
Старт код выполнен ввиде отдельных процедур (типа init_CPU, init_RAM,init_ALL- точные имена не помню). Сделано это прежде всего потому, что компилятор поддерживает несколько типов процессоров с разными регистрами, объемами ОЗУ и т.д.).
Шедевр - вектора прерываний. У ADSP каждому прерыванию соответствует свой адрес. Так они сначала сгребают все в одну кучу, загрузив в регистр номер прерывания, а затем уходят на общую процедуру, которая их разгребает с использованием дополнительной таблицы в ОЗУ. Сделано видимо, чтобы не дублировать сохранение/восстановление контекста. Короче сделали прерывание с одним вектором аля ПИК. В результате огромное время входа/выхода из прерывания. Эту часть скорее всего придется переписать.
E-mail: info@telesys.ru