
- •Основные понятия и определения. Лекция №1. Микропроцессоры и микроконтроллеры. Общие сведения. Шина адреса, шина управления.
- •Что такое микропроцессор?
- •Шинная структура связей
- •Лекция №2. Архитектура микропроцессоров и микроконтроллеров. Risc и cisc система команд в мп и мк. Архитектура микропроцессорных систем
- •Типы микропроцессорных систем
- •Risc и cisc система команд в мп и мк
- •Команды пересылки данных
- •Арифметические команды
- •Логические команды
- •Команды переходов
- •Лекция №3. Внутренняя организация процессора. Назначение и функциональные особенности блоков. Быстродействие процессора
- •Классификация и структура
- •Процессорное ядро
- •Функции процессора
- •Лекция №4. Последовательность выполнения команд микропроцессором. Режимы адресации.
- •Адресация операндов
- •Методы адресации
- •Адресация байтов и слов
- •Регистры процессора
- •Система команд мп. Лекция №5. Архитектура изучаемого микроконтроллера. Назначение внутренних блоков. Микроконтроллеры семейства avr
- •Микроконтроллер aTtiny2313 фирмы Atmel
- •Архитектура микроконтроллеров семейства Tiny
- •Организация памяти
- •Память программ
- •Память данных
- •Способы адресации памяти данных
- •Прямая адресация
- •Лекция №6. Блок регистров общего назначения. Команды с непосредственной адресацией. Различные режимы адресации. Энергонезависимая память данных (eeprom)
- •Доступ к eeprom
- •Меры предосторожности
- •Счетчик команд и выполнение программы
- •Лекция №7. Система команд изучаемого микроконтроллера.
- •Лекция №8. Команды переходов и сдвига. Остальные команды.
- •Выводы микроконтроллера. Лекция №9. Описание выводов микроконтроллера.
- •Описание выводов
- •Кварцевый генератор
- •Лекция №10. Пространство ввода/вывода микроконтроллера.
- •Порт ввода/вывода в
- •Регистр направления данных порта b - ddrb
- •Альтернативные функции portb
- •Порт ввода/вывода d
- •Регистр направления данных порта b - ddrb
- •Порт d, как порт ввода/вывода общего назначения
- •Альтернативные функции порта d
- •Регистры и обработка прерываний микроконтроллера. Лекция №13. Регистр состояния и указатель стека микроконтроллера.
- •Регистр состояния - sreg
- •Указатель стека sp
- •Лекция №14. Обработка внешних прерываний в микроконтроллере.
- •Обработка внешних прерываний. Общий регистр маски прерываний gimsk
- •Общий регистр флагов прерываний
- •Регистр управления микроконтроллером - mcucr
- •Лекция №15. Обработка прерываний от таймеров/счетчиков в микроконтроллере.
- •Регистр маски прерывания от таймера/счетчика - timsk
- •Регистр флагов прерываний от таймеров/счетчиков - tifr
- •Прерывания в микроконтроллере. Лекция №16. Определитель таймеров/счетчиков. Принцип работы таймера/счетчика 0.
- •Определитель таймеров/счетчиков
- •Регистр управления таймером/счетчиком 0 - tccr0
- •Лекция №17. Режимы работы таймера/счетчика 1.
- •Регистр a управления таймером/счетчиком 1 - tccr1a
- •Таймер/счетчик 1 - tcnt1h и tcnt1l
- •Регистр совпадения a таймера/счетчика 1 - ocr1ah и ocr1al
- •Регистр захвата таймера/счетчика 1 - icr1h и icr1l
- •Таймер/счетчик в режиме шим
- •Лекция №18. Универсальный асинхронный приемо-передатчик. Принцип работы и управления.
- •Передача данных
- •Прием данных
- •Управление uart регистр ввода/вывода uart
- •Регистр состояния uart (usr)
- •Регистр управления uart (ucr)
- •Генератор скорости передачи
- •Лекция №19. Аналоговый компаратор и сторожевой таймер микроконтроллера.
- •Аналоговый компаратор регистр управления и состояния аналогового компаратора (acsr).
- •Регистр управления сторожевым таймером - wdtcr
- •Форматы представления чисел в эвм. Лекция №20. Формат чисел с фиксированной точкой и элементарные операции над ними.
- •Компьютерное представление целых чисел
- •Лекция №21. Формат чисел с плавающей точкой и элементарные операции над ними.
- •Компьютерное представление вещественных чисел
- •Цифро-аналоговые преобразователи. Лекция №22. Основные понятия и определения цифро-аналоговых преобразователей (цап). Виды погрешностей преобразования.
- •Параметры цап
- •Лекция №23. Цап на взвешивающей матрице и на матрице r-2r. Принцип работы. Достоинства и недостатки. Цап на взвешивающей матрице
- •Цап на матрице r-2r
Лекция №4. Последовательность выполнения команд микропроцессором. Режимы адресации.
Прежде чем вести речь о последовательности выполнения команд рассмотрим диаграммы состояний и переходов процесса.
Процесс – целенаправленная последовательность вычислительных действий, которая характеризуется:
сопоставленной ему программой, т.е. последовательностью операций, реализующих действий, которые должны осуществляться процессом;
содержимым соответствующей ему памяти, а также тем множеством данных, которым он может манипулировать, дескриптором процесса и совокупностью численных и текстовых сведений, определяющих состояние ресурсов, предоставленных процессу.
Процессы
|
Примитивы
|
Процессы помещаются в очередь диспетчера, следовательно, их выполнение может быть прервано и продолжено. |
Примитив если был запущен, то должен быть выполнен до конца (бывают исключения). |
Процессам всегда приписываются некоторые численные полномочия, отличные от полномочий задачи. Они определяют порядок перемещений процессов в очереди диспетчера. |
Полностью отсутствуют какие-либо численные характеристики для примитивов. |
Поскольку функции ОС имеют вид процесса, то в некоторой очереди диспетчера может находиться несколько записей, относящиеся к одной и той же функции. В результате одна и та же функция, с помощью механизмов семафора может обслуживать несколько прикладных программ. Уровень обслуживания определяется диспетчером |
Примитив в процессе выполнения может выполнять только одну функцию. |
Таблица 4.1. Характерные отличия процессов и примитивов.
Нить (поток) – некоторая совокупность кодов внутри процесса, получаемая процессорное время для выполнения.
В каждом процессе есть минимум один поток, который создается автоматически при создании процесса.
Каждый поток имеет:
уникальный идентификатор потока;
содержимое набора регистров процесса, определяющих его состояние;
два стека, первый используется потоком при выполнении в режиме ядра, другой в режиме задачи;
закрытую область памяти, называемую локальной памятью потока.
Теперь рассмотрим диаграммы.
Рис. 4.1. Диаграмма состояний процесса.
Стрелки соответствуют следующим переходам:
диспетчеризация (запуск процесса);
вызов системных служб;
прерывание;
запрос к системе;
завершение ожидания;
остановка работы задачи (если недоступен ресурс);
активация задачи;
контроль задачи;
запрос к системным службам;
прерывание и возврат из прерывания.
Но могут появиться и новые стрелки:
создание процесса – переход из состояния рождения в состояние готовности;
уничтожение процесса – переход из состояния выполнения в состояние смерти;
восстановление процесса – переход из состояния готовности в состояние выполнения;
изменение приоритета процесса – переход из состояния выполнения в состояние готовности;
блокировка процесса – переход из состояния выполнения в состояние ожидания;
пробуждение процесса – переход из состояния ожидания в состояние готовности;
запуск (выбор) процесса – переход из состояния готовности в состояние выполнения.
Следующая диаграмма представляет собой ориентированный граф, его вершины – состояния, в которые может перейти процесс, а дуги – события, являются причиной перехода от одного состояния к другому. Переход между двумя состояниями разрешен, если существует дуга из одного состояния во второе. При наличии нескольких дуг, выходящих из одного состояния, переход происходит в зависимости от того, какое событие произошло в системе.
Рис. 4.2. Диаграмма переходов процесса.
Состояния:
процесс выполняется в режиме задачи;
процесс выполняется в режиме ядра;
процесс не выполняется, но готов к запуску под управлением ядра;
процесс приостановлен и находится в оперативной памяти;
процесс готов к запуску, но программа подкачки должна еще загрузить процесс в оперативную память, прежде чем он будет запущен под управлением ядра;
процесс приостановлен, программа подкачки выгрузила его во внешнюю память, чтобы в оперативной памяти освободилось место для других процессов;
процесс возвращен из режима ядра в режим задачи; ядро резервирует его и переключает контекст на другой процесс;
процесс вновь создан и находится в переходном состоянии; он существует, но не готов к выполнению и не приостановлен;
процесс вызывает системную функцию exit() и прекращает существование, однако после него осталась запись, содержащая код выхода и некоторая хронометрическая статистика, собираемая родительским процессом.
Всё начинается с системного вызова int pid=fork() – рождение процесса, по которому создаётся процесс.
Стрелки:
достаточно памяти;
запуск процесс;
возврат из прерывания;
прерывание (или функция прерывания);
прерывание и возврат из прерывания;
приостановка;
возобновление;
выгрузка;
возобновление;
загрузка;
выгрузка;
нехватка памяти;
конец работы;
резервирование;
возврат;
зарезервирован.