하드웨어 정의 사용

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

참고

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 를 검색하고 매개 변수를 TARGET_DEFINITION 대상 보드의 하드웨어 정의 JSON 파일로 설정합니다. 다음 예제에서는 애플리케이션에서 TARGET_DEFINITION MT3620 RDB(참조 개발 보드)를 사용하는 경우 매개 변수를 설정하는 방법을 보여 있습니다.

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

  2. 기본.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. 기본.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. 애플리케이션을 컴파일하고 패키지합니다.