Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шпора з романова.docx
Скачиваний:
6
Добавлен:
22.11.2019
Размер:
6.65 Mб
Скачать

16. Основы разработки встроенных систем. Типовая среда разработки с использованием кросс- платформы. Рисунок, пояснения.

Одной из характерных особенностей ВС является кроссплатформенность среды разработки.

Основные составляющие среды разработки:

  1. Центральная система (хост-система)

  2. Целевая система

  3. Разнообразные соединения между системами

Многие производители микросхем признают необходимость встроенной в микропроцессор отладки, называемой отладкой на чипе (ОНЧ) (OCD). BDM и JTAG являются двумя типами решения ОНЧ, которые позволяют осуществить прямой доступ к микропроцессору и контроль над ним и ресурсами системы, без использования служб отладки на целевой системе или дорогих внутрисистемных эмуляторов. BDM – это фоновый режим отладки. Он использует интерфейс отладки, введенный компанией Motorola для своих микропроцессоров. Этот термин также описывает подход метода отладки, предоставляемый решением ОНЧ. JTAG – объединённая группа тестирования, созданная производителями электроники для разработки нового и экономически выгодного метода тестирования. Результатом работы консорциума JTAG стал стандарт IEEE 1149.1. основные инструменты разработки предлагаемой хост-системой являются: крос-компилятор, компоновщик, отладчик на уровне исходного кода,

Целевая встроенная система должна предоставить динамический загрузчик, загрузчик связей, монитор, отладчик. Между хост- и целевой системой могут присутствовать ряд соединений. Эти соединения используются для загрузки образов программ с хост-системы в целевую систему. Эти соединения также могут использоваться для передачи информации между отладчиком хост-системы и средством отладки на целевой системе. Программы, включая программное обеспечение системы, ОС РВ, ядро и код приложения должны быть разработаны в первую очередь, откомпилированы в объектный код и скомпонованы друг с другом в исполняемый образ. Программисты, пишущие приложения, выполняемые в той же среде что используется и для разработки, называемой "родной" разработкой, не беспокоятся о том как исполняемый код загружается в память и как управление на выполнение передается приложению.

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

15. Системы, управляемые прерываниями. Программы обработки прерываний.

Операция процессора, состоящая в регистрации состояния процессора, предшествовавшего прерыванию и установлению нового состояния, называется прерыванием.

Прерывание – это реакция процессора на некоторые события, которые возникли в процессоре или вне его. Прерывание позволяет обработать возникшее событие специальной программой и вернуться к прерванной программе.

В системах, управляемых прерыванием основная программа состоит из бесконечного цикла. Разнообразные задачи планируются в системе посредством аппаратных либо программных прерываний, тогда как диспетчеризация выполняется программами-обработчиками прерываний. При использовании аппаратного планирования тактовый генератор, либо какое-то другое устройство, вырабатывает сигналы, передаваемые контроллеру прерываний. Если архитектура контроллера поддерживает множественные(многоуровневые) прерывания, то и аппаратура также поддерживает диспетчеризацию. Если доступен всего один уровень прерываний, программа обработки прерываний должна прочесть вектор прерываний с контроллера прерываний, определить какое прерывание произошло и организовать обработку соответствующих задач. В некоторых процессорах такая система осуществлена на уровне микрокода в связи с чем реализация ее функционирования есть обязанность разработчиков ОС.

Программы обработки прерываний

При написании приложений для встроенных систем очень важно понимать каким образом работает система прерываний, потому что программа РВ нуждается в обслуживании прерываний от одного или более отдельных устройств. В большинстве случаев инженеру по разработке ПО необходимо написать новый драйвер устройства или адаптировать поставляемый драйвер.

В любой системе существует два вида прерываний:

  1. аппаратное прерывание – сигнал генерируется периферийным устройством и посылается центральному процессору, в свою очередь ЦП выполняет программу обслуживания прерывания(ISR), которая обрабатывает прерывание в соответствии с его типом;

  2. программное прерывание – подобно аппаратному прерыванию, но в этом случае оно вызывает один модуль кода для передачи управления другому.

Различия между аппаратным и программным прерыванием состоит в режиме переключения. Переключателем аппаратного прерывания является электрический сигнал от внешнего устройства. В то время как переключателем программного прерывания является выполнение команды машинного языка.

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

Аппаратные прерывания являются асинхронными по своей природе, т.е. прерывание может произойти в любой момент времени. Если происходит прерывание, то выполняемая в текущий момент программа останавливается(подвешивается) пока ЦП активирует программу обслуживания прерывания(ISR), часто разработчику приложения приходится самому писать программу обработки прерываний для конкретного типа аппаратного прерывания, в этом случае необходимо также понимать внутреннее состояние ЦП и, если есть необходимость сохранения программы обслуживания прерывания(ISR) чего-либо еще в дополнение к регистрам общего назначения.

Доступ к ресурсам, разделяемых с программой обслуживания прерывания(ISR) обычно контролируется запретом прерываний в приложении для любых команд, обращающихся к ресурсу при записи или чтении. Механизмы синхронизации не могут быть использованы в программах обслуживания прерывания(ISR), поскольку они не могут находиться в состоянии неопределенного ожидания при доступности ресурса. Когда прерывания запрещены, возможности системы получить воздействие извне является минимальной. Важно учитывать, что работа секции кода, в которой прерывания запрещены, должна быть как можно короче по времени. Если процедура обработки прерываний в программе обслуживания прерывания(ISR) чересчур затянута, внешнее устройство может слишком долго ждать обслуживания, что повлечет за собой сбой СРВ. Вне зависимости от стиля написания программы обслуживания прерывания(ISR) моментальный снимок(snapshot) состояния компьютера, называемый контекстом должен быть сохранен перед переключением задач так, чтобы быть восстановленным перед возобновлением прерванного процесса.

16. Переключение контекста. Содержимое стековой структуры данных.

Переключение контекста – это процесс сохранения и восстановления необходимой и достаточной информации для задачи реального времени таким образом, чтобы она могла быть возобновлена после прерывания. Контекст обычно сохраняется в стековой структуре данных.

Правило для сохранения контекста простое: сохранить минимальное количество информации, необходимой для восстановления любого процесса после его прерывания. Чаще всего такая информация включает: содержимое регистров общего назначения, содержимое программного счетчика (счетчика команд, BC), содержимое регистров сопроцессора (если такой имеется), регистр страницы памяти (при страничной адресации), образы распределения адресов памяти устройств ввода/вывода (образы зеркала). Обычно, в рамках программ обработки прерываний прерывания запрещены во время критического переключения контекста. Иногда, тем не менее, после того, как необходимый контекст сохранен, прерывания могут быть разрешены для управления последовательностью (пакетом прерываний) или для обнаружения ложных прерываний.