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

Отправлено Евгений 19 апреля 2002 г. 11:27

Вопрос для знающих ADSP218x.
Допустим, в главной части подпрограммы у меня крутится процедура, в которой, например, 3 вложенных цикла:
CNTR=1000;
DO myloop1 UNTIL CE;
CNTR=1000;
DO myloop2 UNTIL CE;
CNTR=1000;
DO myloop3 UNTIL CE;
.....................
myloop3: nop;
myloop2: nop;
myloop1: nop;

Где-то во время выполнения третьего, самого вложенного цикла возникает прерывание, в котором также имеются несколько вложенных циклов.

sport1_rx:
CNTR=1000;
DO sport1_rx_myloop1 UNTIL CE;
CNTR=1000;
DO sport1_rx_myloop2 UNTIL CE;
CNTR=1000;
DO sport1_rx_myloop3 UNTIL CE;
.....................
sport1_rx_myloop3: nop;
sport1_rx_myloop2: nop;
sport1_rx_myloop1: nop;
rti;

Теперь, собственно, сам вопрос: в документации сказано, что в стеке возможно хранить только 4 значения цикла (count stack), то есть, допускается не более четырех уровней вложенности. Как видно из приведенного алгоритма, при возникновении прерывания стек уже заполнен тремя значениями. А в обработчике прерывания еще требуется три. Каким образом такая ситуация обрабатывается процессором, и насколько она корректна? Может знающие люди посоветуют чего-нибудь? Или ссылку дадут? Или вспомнят свой случай? Буду весьма признателен.
Благодарю за внимание.

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

Ответы


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

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

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

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

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


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

E-mail: info@telesys.ru