- •1.Способы организации реакции процессора на внешние события.
- •2. Механизм обслуживания прерывания.
- •3. Особенности подпрограмм обработки прерываний.
- •4. Приоритеты прерываний, маскирование прерываний, флаги прерываний.
- •7. Опишите процесс вызова подпрограммы и возврата из неё.
- •9.Способы передачи параметров в подпрограммы, возвращения результата, сохранения контекста вызывающей программы.
- •10.Способы реализации стека для хранения адреса возврата из подпрограммы. Проблемы, связанные с использованием стека.
- •11.Какими средствами можно установить, сбросить, инвертировать значения отдельных битов регистров общего назначения?
- •12.Какими средствами можно установить, сбросить, инвертировать значения отдельных битов регистров ввода/вывода?
- •13.Почему для каждого порта ввода-вывода 3 регистра?
- •18. Сколько регистров имеют микроконтроллеры семейства avr?
- •19.Что такое risc-архитектура. Какие у неё достоинства?
- •20. Каким образом осуществляется доступ к регистрам, пространству ввода вывода, памяти данных?
- •22.Какие источники сброса есть у микрокантролеров avr?
- •24.Что такое шим?
- •25.Для чего нужен сторожевой таймер?
- •26.Что такое uart?
- •27.Как рассчитывается скорость передачи данных uart?
7. Опишите процесс вызова подпрограммы и возврата из неё.
Механизм вызова подпрограммы и возврата из нее заключается в следующем. Команда вызова подпрограммы сохраняет в стеке адрес ячейки памяти следующей за этой командой (т.е., адрес следующей команды) и загружает в программный счетчик адрес вызываемой подпрограммы. После этого выполняется тело подпрограммы, в конце которой находится команда возврата. Команда возврата извлекает из стека адрес возврата (т.е., адрес команды, следующей за командой вызова) и загружает его в программный счетчик, возвращая тем самым управление вызывающе программе.
9.Способы передачи параметров в подпрограммы, возвращения результата, сохранения контекста вызывающей программы.
Передачу параметров в подпрограммы можно организовать: через стек, через регистры, через глобальные переменные (неявно). Возврат результата может происходить аналогичными способами.
Для сохранения контекста, очевидно, необходимо скопировать все регистры, которые используются подпрограммой, в некоторую область памяти; после выполнения – восстановить содержимое регистров. Наиболее удобно для целей сохранения/восстановления использовать механизм стека. В простейшем случае это может быть тот же стек, что применяется для сохранения адреса возврата из подпрограммы, в других случаях – отдельный программно реализуемый стек.
10.Способы реализации стека для хранения адреса возврата из подпрограммы. Проблемы, связанные с использованием стека.
Для реализации подпрограмм необходимы команды вызова подпрограммы и возврата из подпрограммы. Эти команды являются особыми командами передачи управления – для их работы требуется сохранение адреса возврата из подпрограммы. Для такого сохранения обычно используют стек. В некоторых процессорах такой стек реализуется аппаратно: имеется специальная память (обычно – всего несколько ячеек) и счетчик ячеек стека. При помещении информации в стек этот счетчик увеличивается, при извлечении – уменьшается. В других процессорах стек реализуется аппаратно-программно: программистом под стек отводится область памяти данных, для доступа используется специальный регистр – указатель стека (англ. Stack Pointer – SP). Указатель стека хранит адрес вершины стека. После помещения информации в стек его указатель автоматически уменьшается; перед извлечением – увеличивается. Основное достоинство программного стека – потенциально бόльший объем, чем у аппаратного. Однако перед использованием такого стека обязательно нужно проинициализировать указатель стека значением адреса конца области стека!
11.Какими средствами можно установить, сбросить, инвертировать значения отдельных битов регистров общего назначения?
С помощью команд побитового И и ИЛИ реализуется сброс и установка битов регистров общего назначение.
12.Какими средствами можно установить, сбросить, инвертировать значения отдельных битов регистров ввода/вывода?
Четыре команды позв
оляют устанавливать и сбрасывать отдельные биты в регистрах ввода/вывода. Команды SBI и CBI, соответственно, устанавливают и сбрасывают отдельные биты регистров ввода/вывода с адресами 0x00…0x1F. Команды BSET и BCLR устанавливают и сбрасывают отдельные биты регистра статуса процессора SREG (он имеет адрес 0x3F в адресном пространстве регистров ввода/вывода). На основе команд BSET и BCLR с помощью компилятора реализуется целая группа команд установки и сброса флагов (мнемоники команд этой группы начинаются с символов SE и CL).
