[an error occurred while processing this directive]
|
Некоторые забавные вещи:
/******************************************************************************/
1.
страница 3-36 "ADSP-219x/2191 DSP Hardware Reference":
This spill-fill mode (using the stack’s status to generate a stack interrupt)
is disabled on reset. Bits in the ICNTL register control whether the DSP
generates this interrupt based on stack status. Table A-5 on page A-18 lists
the bits in the ICNTL register. The bits in ICNTL that enable the STACK
interrupt are:
• Global interrupt enable. Bit 5 (GIE) globally disables (if 0) or
enables (if 1) unmasked interrupts
• PC stack interrupt enable. Bit 10 (PCSTKE) directs the DSP to disable
(if 0) or enable (if 1) spill-fill mode—ORing of stack status—
to generate the STACK interrupt.
то есть бит 10 в регистре ICNTL управляет типом прерывания стека.
Но!!!!!!
В таблице A-5 на странице A-18 о десятом бите ни слова, зато есть 9-й бит
разрешения прерывания стека - PCSTKE (PC stack interrupt enable).
что есть что?!
объявляем процедуру обработки прерывания стека,
разрешаем прерывания,
проверяем бит 9:
sysreg_write(sysreg_ICNTL, sysreg_read(sysreg_ICNTL) | 0x0200);
устраиваем переполнение стека... прерывание есть.
sysreg_write(sysreg_ICNTL, sysreg_read(sysreg_ICNTL) & ~0x0200);
устраиваем переполнение стека... прерывание есть.
вывод: бит 9 нифига не работает.
проверяем бит 10:
sysreg_write(sysreg_ICNTL, sysreg_read(sysreg_ICNTL) | 0x0400);
устраиваем "переползание" указателя стека через "water-mark" ... прерывание есть.
sysreg_write(sysreg_ICNTL, sysreg_read(sysreg_ICNTL) & ~0x0400);
устраиваем "переползание" указателя стека через "water-mark" ... прерывания нет.
вывод: бит 10 - правильный бит.
/******************************************************************************/
2.
Страница B-42 того же документа. Описание регистра многоканальной настройки
последовательного порта.
Биты 2 и 3 - включение режима упаковки для передачи и приема через ПДП.
В документе означено: "0 = enabled, 1 = disabled".
В сущности дело обстоит наоборот!!!!
/******************************************************************************/
3.
Последовательный порт. ПДП. Автобуфер. Многоканальный режим.
Прерывание приходит два раза за кадр. ???
почему? мне кажется, что я где-то об этом читал, хотя это мог быть просто плохой сон. Сейчас вот не могу найти. :(
E-mail: info@telesys.ru