Поделиться через


Использование объектов GPIOs в приложениях с поддержкой реального времени

Azure Sphere поддерживает GPIOs (входные и выходные данные общего назначения). GPIO — это тип программируемых цифровых контактов на интегральной схеме. GPIOs не имеют предопределенных функций, и их поведение может быть настроено приложением. Некоторые распространенные способы использования GPIOs — изменение состояния аппаратных устройств, управление светодиодными индикаторами и чтение состояния коммутаторов.

В этом разделе описывается использование объектов GPIOs в приложении с поддержкой реального времени (RTApp). Сведения об использовании GPIOs в высокоуровневых приложениях см. в статье Использование GPIOs в приложениях высокого уровня.

ПРИЛОЖЕНИЕ RTApp может использовать любой из GPIos на устройстве Azure Sphere. Для GPIO поддерживаются следующие операции:

  • Входные данные для чтения
  • Задайте для выходных данных значение "Высокий" или "Низкий"
  • Прерывания опроса программного обеспечения

Примечание

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

Поддержка MT3620 для объектов GPIOs в ядрах в режиме реального времени

В MT3620 большинство объектов GPIOS сопоставляются с ядрами реального времени блоками по четыре, начиная с GPIO 0; однако блоки ISU 0–4 имеют пять объектов GPI. В результате запросы GPIO RTApp могут завершиться ошибкой, если высокоуровневое приложение (или другое приложение RTApp) запрашивает GPIO в том же блоке. Например, если приложение высокого уровня запрашивает GPIO 8, а RTApp запрашивает GPIO 9, второе приложение возвращает ошибку при развертывании.

Каждый светодиодный индикатор в MT3620 RDB сопоставляется с тремя GPIOS: по одному для красных, зеленых и синих каналов.

Сведения о регистрации базовых адресов, номера прерываний, частоту тактов, частоту выборки и другие сведения о MT3620 см. в таблице MT3620 и руководстве пользователя MT3620 M4. Если остались вопросы, вы можете запросить сведения из Avnet, отправив Azure.Sphere@avnet.comпо электронной почте .

Требования GPIO

Коду приложения требуется способ идентификации GPIO и его регистров. Базовый адрес регистра можно найти в документации по оборудованию производителя. Прежде чем приложение RTApp сможет использовать GPIO, оно должно инициализировать блоки, которые будут использоваться. Инициализация требуется только один раз для каждого блока, который использует приложение.

Дополнительные сведения о MT3620 см. в разделе Поддержка MT3620 для объектов GPIOs в ядрах реального времени.

Параметры манифеста приложения

Чтобы использовать GPIO, приложение RTApp должно отобразить его в разделе Возможности манифеста приложения. Определите GPIO с помощью параметра AppManifestValue, определенного для него в JSON-файле для целевого оборудования. Например, следующая строка резервирует GPIOs 8 и 12:

"Capabilities": {
 "Gpio": [ 8, 12 ]
}

Пример приложения GPIO

В примере GPIO показано, как использовать GPIOs в RTApp. В файлах README содержатся подробные сведения и инструкции.