다음을 통해 공유


하드웨어 정의 사용

Important

Azure Sphere(레거시) 설명서입니다. Azure Sphere(레거시)는 2027년 9월 27일에 사용 중지되며 사용자는 이 시간까지 Azure Sphere(통합)로 마이그레이션해야 합니다. TOC 위에 있는 버전 선택기를 사용하여 Azure Sphere(통합) 설명서를 볼 수 있습니다.

이 항목에서는 상위 수준 애플리케이션에서 하드웨어 정의를 사용하는 방법을 설명합니다. 고유한 하드웨어 정의 파일을 만드는 방법을 포함하여 하드웨어 정의에 대한 자세한 내용은 하드웨어 정의를 참조하세요.

참고 항목

JSON 하드웨어 정의를 포함하는 디렉터리에는 해당하는 헤더 파일 정의에 대한 inc/hw 하위 디렉터리도 포함되어 있습니다.

SDK에서 하드웨어 정의 사용

Azure Sphere SDK의 HardwareDefinitions 디렉터리에는 일반적인 Azure Sphere 보드 및 사용하는 칩에 대한 정의가 포함되어 있습니다. 이 디렉터리가 %ProgramFiles(x86)%\Microsoft Azure Sphere SDK\HardwareDefinitions Windows 및 /opt/azurespheresdk/HardwareDefinitions Linux에 있습니다.

  1. CMakelists.txt 함수 azsphere_target_hardware_definition 를 검색하고 대상 보드의 하드웨어 정의 JSON 파일로 매개 변수를 설정합니다 TARGET_DEFINITION . 다음 예제에서는 애플리케이션이 TARGET_DEFINITION MT3620 RDB(참조 개발 보드)를 사용하는 경우 매개 변수를 설정하는 방법을 보여 줍니다.

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DEFINITION "mt3620_rdb.json")

  2. main.c에 대상 보드에 해당하는 하드웨어 정의 헤더 파일을 포함합니다.

    #include  "hw/mt3620_rdb.h"
    
  3. 애플리케이션에서 사용되는 주변 장치 유형 및 식별자에 대한 정보를 보려면 헤더 파일 또는 JSON 파일을 참조하세요. 그에 따라 애플리케이션 코드를 만들거나 수정합니다.

    예를 들어 MT3620 RDB(참조 개발 보드)를 대상으로 하는 애플리케이션은 온보드 LED를 사용합니다. LED를 식별하는 데 사용되는 상수는 다음과 같이 헤더 파일 mt3620_rdb.h에 정의됩니다.

    // LED 1 Red channel uses GPIO8.
    #define MT3620_RDB_LED1_RED MT3620_GPIO8
    

    다음 줄은 하드웨어 정의에 제공된 정보를 사용하여 LED를 초기화합니다.

    int fd = GPIO_OpenAsOutput(MT3620_RDB_LED1_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  4. 애플리케이션 매니페스트업데이트하여 앱에서 현재 사용 중인 주변 장치를 사용하도록 설정합니다.

    "Capabilities": {  "Gpio": [ "MT3620_RDB_LED1_RED" ]},
    
  5. 애플리케이션을 컴파일하고 패키지합니다.

SDK와 함께 설치되지 않은 하드웨어 정의 사용

  1. CMakelists.txt 함수를 검색합니다 azsphere_target_hardware_definition .

  2. TARGET_DIRECTORY 사용하려는 하드웨어 정의 파일이 포함된 디렉터리 또는 디렉터리에 대한 상대 경로 또는 절대 경로 또는 경로를 사용하여 매개 변수를 설정합니다.

  3. 매개 변수를 TARGET_DEFINITION 하드웨어 정의 JSON 파일의 이름으로 설정합니다. 빌드 프로세스는 이 파일과 가져온 모든 파일을 나열된 순서대로 대상 디렉터리에서 검색한 다음 SDK 자체에서 검색합니다.

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "<path>/my_app/contoso_hardware_definitions" TARGET_DEFINITION "contoso_board.json")

    각 대상 디렉터리를 큰따옴표로 지정하고 공백이 있는 별도의 디렉터리 이름을 지정합니다. 이 예제 <에서 경로> 는 my_app 폴더의 경로를 나타냅니다.

  4. main.c에는 대상 보드의 하드웨어 정의 헤더 파일이 포함됩니다. 빌드 프로세스는 나열된 순서대로 대상 디렉터리의 'inc' 하위 디렉터리에서 이 파일과 해당 파일이 포함된 파일을 검색한 다음 SDK 자체에서 검색합니다. 따라서 다음 규칙에 따라 대상 디렉터리의 inc/hw 하위 디렉터리에서 contoso_board.h를 찾습니다.

    #include   "hw/contoso_board.h"
    
  5. 애플리케이션에서 사용되는 주변 장치 유형 및 식별자에 대한 정보를 보려면 헤더 파일 또는 JSON 파일을 참조하세요. 그에 따라 애플리케이션 코드를 만들거나 수정합니다.

    int fd = GPIO_OpenAsOutput(CONTOSO_BOARD_LED_RED, GPIO_OutputMode_PushPull, GPIO_Value_High);
    
  6. 애플리케이션 매니페스트(app_manifest.json)를 업데이트하여 앱에서 현재 사용 중인 주변 장치를 사용하도록 설정합니다.

    "Capabilities": {  "Gpio": [ "CONTOSO_BOARD_LED_RED" ]},
    
  7. 애플리케이션을 컴파일하고 패키지합니다.