Предыдущая Следующая

1. RealMonitor входит в цикл опроса DCC. Если буфер чтения DCC полон, управление передается функции rm_ReceiveData() (внутренняя функция RealMonitor). Если буфер записи DCC пуст, управление передается функции rm_TransmitData() (внутренняя функция RealMonitor). Если условия вызова ни одной из функций не выполняются, то управление возвращается вызывающей программе. При опросе DCC и установлении очередности вызова вышеуказанных функций, чтение DCC имеет более высокий приоритет, нежели запись.

2. RealMonitor останавливает приоритетное приложение. Запросы IRQ и FIQ продолжают обслуживаться, если они были разрешены в приоритетном приложении до его остановки.

24.3.1. Разрешение работы RealMonitor

Чтобы разрешить работу RealMonitor, необходимо выполнить ициализацию стеков. Пользователь должен гарантировать, что в его приложении определены стеки для каждого из режимов процессора, используемых RealMonitor, т. е. для каждого из этих режимов RealMonitor требует задания некоторого количества слов в пространстве стека. В общем случае, пользователь должен определить под стек пространство, достаточное для совместной работы RealMonitor и своего приложения.

Требования, предъявляемые к стеку со стороны RealMonitor, приведены в Табл. 24.1.

Таблииа-24.1. Требования RealMonitor к размеру области стека

Режим процессора

Необходимый для RealMonitor размер области стека [байт]

Неопределенная команда (Undefined)

48

Аварийное прекращение работы выбора с упреждением (Prefetch Abort)

16

Аварийное прекращение выборки данных (Data Abort)

16

IRQ

8

Режим IRQ. Для этого режима всегда требуется стек. RealMonitor использует 2 слова (по 4 байта) стека на входе в программу обработки прерывания. Эти 2 слова освобождаются до того, как разрешаются вложенные прерывания.

Режим Undefined. Для этого режима всегда требуется стек. При обработке исключительной ситуации «неопределенная команда», RealMonitor использует 12 слов стека.

Режим Supervisor (SVC). В этом режиме RealMonitor не использует стек.

Режим Prefetch Abort. RealMonitor использует 4 слова на входе в программу обработки прерывания от аварийного прекращения работы выбора с упреждением.

Режим Data Abort. RealMonitor использует 4 слова на входе в программу обработки прерывания от аварийного прекращения выборки данных.

Режим User/System. В этом режиме RealMonitor не использует стек.

Режим FIQ. В этом режиме RealMonitor не использует стек.

24.4. Обработка исключительных ситуаций

В этом разделе описаны особенности совместного использования обработчиков исключительных ситуаций программным модулем RealMonitor и пользовательским приложением.

24.4.1. Обработка исключительных ситуаций RealMonitor

Чтобы функционировать должным образом, RealMonitor должен иметь возможность блокировать некоторые прерывания и ИС. Диаграмма, изображенная на Рис. 24.3, демонстрирует, какие ИС могут потребоваться RealMonitor непосредственно или могут быть разделены между RealMonitor и пользовательским приложением. Если приложение требует совместного использования ИС, то это совместное использование должна обеспечивать соответствующая функция-обработчик (например, app_IRQDispatch()). В зависимости от типа исключительной ситуации, этот обработчик может также:


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_241.html on line 178

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_241.html on line 178

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_241.html on line 178