다음을 통해 공유


상위 수준 애플리케이션에서 주변 장치 사용

고급 애플리케이션은 전용 용도로 주변 장치를 매핑할 수 있습니다. 상위 수준 애플리케이션에서 하나 이상의 주변 장치를 사용하려면 다음을 수행합니다.

  • 애플리케이션 매니페스트에 주변 장치를 추가합니다.
  • 인터럽트 처리기(필요한 경우) 및 기타 지원 코드를 애플리케이션에 추가합니다.
  • 각 주변 장치가 시작 시 알려진 양호한 상태인지 확인하는 코드를 추가합니다.

상위 수준 앱에서 사용하는 모든 리소스는 애플리케이션 매니페스트에 지정해야 합니다. 상위 수준 앱에서는 대상 칩의 하드웨어 정의 JSON 파일에서 AppManifestValue에 할당된 리소스의 이름 또는 하드웨어 정의 헤더 파일의 리소스에 할당된 상위 수준 이름을 사용할 수 있습니다. 예를 들어 MT3620 하드웨어의 ISU0에서 I2C를 식별하는 값을 찾으려면 Microsoft Azure Sphere SDK 폴더에 설치된 HardwareDefinitions 폴더의 mt3620.json 파일을 확인합니다. 이 주변 장치는 JSON 파일에서 다음과 같이 정의됩니다.

 {"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},

I2C 주변 장치의 AppManifestValue에 할당된 값은 "ISU0"이고 상위 수준 이름은 "MT3620_ISU0_I2C"입니다.

동시에 로드된 애플리케이션은 리소스를 공유할 수 없습니다. 리소스 사용은 단일 애플리케이션에만 적용됩니다. Azure Sphere OS는 애플리케이션을 로드할 때 다음과 같은 몇 가지 중요한 작업을 수행합니다.

  • 주변 장치와 연결된 핀이 요청된 기능에 대해 구성되도록 멀티플렉싱을 구성합니다.
  • 애플리케이션이 요청된 주변 장치와 연결된 레지스터에 액세스할 수 있도록 방화벽을 구성하는 핵심 매핑을 설정합니다.
  • 매니페스트를 확인하고 다른 앱에서 이미 클레임한 리소스를 클레임하는 경우 애플리케이션을 로드하지 못합니다.

이 섹션의 나머지 부분에서는 특정 주변 장치 사용에 대한 세부 정보를 제공합니다.

참고

Azure Sphere OS는 시작 시 주변 장치를 다시 설정하지 않습니다. 애플리케이션은 시작 시 또는 다시 시작한 후 주변 장치가 알려진 상태가 되도록 해야 합니다.

주변 장치를 사용하는 새 애플리케이션이 설치되고 다음 조건이 충족되면 디바이스 재부팅이 트리거됩니다.

디바이스 다시 부팅이 시작되면 다시 부팅이 완료되고 디바이스가 응답할 때까지 기다립니다.

항목 설명
상위 수준 애플리케이션에서 ADC 사용 Azure Sphere에서 ADC(아날로그-디지털 변환기)를 사용하는 방법을 설명합니다.
상위 수준 애플리케이션에서 GPIO 사용 Azure Sphere에서 GPIO(범용 입력/출력)를 사용하는 방법을 설명합니다.
상위 수준 애플리케이션에서 I2C 사용 직렬 통신에 Inter-Integrated 회로(I2C)를 사용하는 방법을 설명합니다.
상위 수준 애플리케이션에서 PWM 사용 Azure Sphere에서 PWM(펄스 너비 변조)을 사용하는 방법을 설명합니다.
상위 수준 애플리케이션에서 SPI 사용 직렬 통신에 SPI(직렬 주변 장치 인터페이스)를 사용하는 방법을 설명합니다.
상위 수준 애플리케이션에서 UART 사용 직렬 통신에 UART를 사용하는 방법을 설명합니다.
상위 수준 애플리케이션에서 Watchdog 타이머 사용 Watchdog 타이머를 사용하는 방법을 설명합니다.