기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
디바이스 테스트를 위한 설정 구성
빌드, 플래시 및 테스트 설정은 configs/userdata.json
파일에서 수행됩니다. 클라이언트 및 서버 인증서와 키를 모두 customPath
에서 로드하는 에코 서버 구성을 지원합니다. 자세한 내용은 프리RTOS 포팅 가이드의 에코 서버 설정을 참조하세요. 다음 JSON 예제에서는 여러 디바이스를 테스트하도록 무료 IDT RTOS 를 로 구성하는 방법을 보여줍니다.
{
"sourcePath": "/absolute-path-to/freertos
",
"vendorPath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
",
// ***********The sdkConfiguration block below is needed if you are not using the default, unmodified FreeRTOS repo.
// In other words, if you are using the default, unmodified FreeRTOS repo then remove this block***************
"sdkConfiguration": {
"name": "sdk-name
",
"version": "sdk-version
",
"path": "/absolute-path-to/sdk
"
},
"buildTool": {
"name": "your-build-tool-name
",
"version": "your-build-tool-version
",
"command": [
"{{config.idtRootPath}}/relative-path-to/build-parallel.sh
{{testData.sourcePath}} {{enableTests}}"
]
},
"flashTool": {
"name": "your-flash-tool-name
",
"version": "your-flash-tool-version
",
"command": [
"/{{config.idtRootPath}}/relative-path-to/flash-parallel.sh
{{testData.sourcePath}} {{device.connectivity.serialPort}} {{buildImageName}}"
],
"buildImageInfo" : {
"testsImageName": "tests-image-name
",
"demosImageName": "demos-image-name
"
}
},
"testStartDelayms": 0,
"clientWifiConfig": {
"wifiSSID": "ssid
",
"wifiPassword": "password
",
"wifiSecurityType": "eWiFiSecurityOpen | eWiFiSecurityWEP | eWiFiSecurityWPA | eWiFiSecurityWPA2 | eWiFiSecurityWPA3"
},
"testWifiConfig": {
"wifiSSID": "ssid
",
"wifiPassword": "password
",
"wifiSecurityType": "eWiFiSecurityOpen | eWiFiSecurityWEP | eWiFiSecurityWPA | eWiFiSecurityWPA2 | eWiFiSecurityWPA3"
},
//**********
//This section is used to start echo server based on server certificate generation method,
//When certificateGenerationMethod is set as Automatic specify the eccCurveFormat to generate certifcate and key based on curve format,
//When certificateGenerationMethod is set as Custom specify the certificatePath and PrivateKeyPath to be used to start echo server
//**********
"echoServerCertificateConfiguration": {
"certificateGenerationMethod": "Automatic | Custom",
"customPath": {
"clientCertificatePath":"/path/to/clientCertificate
",
"clientPrivateKeyPath": "/path/to/clientPrivateKey
",
"serverCertificatePath":"/path/to/serverCertificate
",
"serverPrivateKeyPath": "/path/to/serverPrivateKey
"
},
"eccCurveFormat": "P224 | P256 | P384 | P521"
},
"echoServerConfiguration": {
"securePortForSecureSocket": 33333
, // Secure tcp port used by SecureSocket test. Default value is 33333. Ensure that the port configured isn't blocked by the firewall or your corporate network
"insecurePortForSecureSocket": 33334
, // Insecure tcp port used by SecureSocket test. Default value is 33334. Ensure that the port configured isn't blocked by the firewall or your corporate network
"insecurePortForWiFi": 33335
// Insecure tcp port used by Wi-Fi test. Default value is 33335. Ensure that the port configured isn't blocked by the firewall or your corporate network
},
"otaConfiguration": {
"otaFirmwareFilePath": "{{testData.sourcePath}}/relative-path-to/ota-image-generated-in-build-process
",
"deviceFirmwareFileName": "ota-image-name-on-device
",
"otaDemoConfigFilePath": "{{testData.sourcePath}}/relative-path-to/ota-demo-config-header-file
",
"codeSigningConfiguration": {
"signingMethod": "AWS | Custom",
"signerHashingAlgorithm": "SHA1 | SHA256",
"signerSigningAlgorithm": "RSA | ECDSA",
"signerCertificate": "arn:partition
:service
:region
:account-id
:resource
:qualifier
| /absolute-path-to/signer-certificate-file
",
"signerCertificateFileName": "signerCertificate-file-name
",
"compileSignerCertificate": boolean,
// ***********Use signerPlatform if you choose aws for signingMethod***************
"signerPlatform": "AmazonFreeRTOS-Default | AmazonFreeRTOS-TI-CC3220SF",
"untrustedSignerCertificate": "arn:partition
:service
:region
:account-id
:resourcetype
:resource
:qualifier
",
// ***********Use signCommand if you choose custom for signingMethod***************
"signCommand": [
"/absolute-path-to
/sign.sh {{inputImageFilePath}} {{outputSignatureFilePath}}"
]
}
},
// ***********Remove the section below if you're not configuring CMake***************
"cmakeConfiguration": {
"boardName": "board-name
",
"vendorName": "vendor-name
",
"compilerName": "compiler-name
",
"frToolchainPath": "/path/to/freertos/toolchain
",
"cmakeToolchainPath": "/path/to/cmake/toolchain
"
},
"freertosFileConfiguration": {
"required": [
{
"configName": "pkcs11Config",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_tests/config_files/core_pkcs11_config.h"
},
{
"configName": "pkcs11TestConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_tests/config_files/iot_test_pkcs11_config.h"
}
],
"optional": [
{
"configName": "otaAgentTestsConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_tests/config_files/ota_config.h"
},
{
"configName": "otaAgentDemosConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_demos/config_files/ota_config.h"
},
{
"configName": "otaDemosConfig",
"filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-name
/aws_demos/config_files/ota_demo_config.h"
}
]
}
}
다음 목록에서는 userdata.json
에서 사용되는 속성을 나열합니다.
sourcePath
-
포트된 프리RTOS 소스 코드의 루트 경로입니다. 를 사용한 병렬 테스트SDK의 경우
{{userData.sdkConfiguration.path}}
자리 표시자를 사용하여 를 설정할sourcePath
수 있습니다. 예:{ "sourcePath":"{{userData.sdkConfiguration.path}}/
freertos
" } vendorPath
-
공급업체별 무료RTOS 코드의 경로입니다. 직렬 테스트의 경우
vendorPath
를 절대 경로로 설정할 수 있습니다. 예:{ "vendorPath":"C:/
path-to-freertos
/vendors/espressif/boards/esp32
" }병렬 테스트의 경우
vendorPath
를{{testData.sourcePath}}
자리 표시자를 사용하여 설정할 수 있습니다. 예:{ "vendorPath":"{{testData.sourcePath}}/vendors/espressif/boards/esp32" }
vendorPath
변수는 없이 실행할 때만 필요하며SDK, 그렇지 않으면 제거할 수 있습니다.참고
를 사용하지 않고 병렬로 테스트를 실행할 때는 SDK,
vendorPath
,buildTool
flashTool
필드에{{testData.sourcePath}}
자리 표시자를 사용해야 합니다. 단일 디바이스로 테스트를 실행하는 경우vendorPath
,buildTool
,flashTool
필드에 절대 경로를 사용해야 합니다. 를 사용하여 실행할 때는 SDK,sourcePath
buildTool
및flashTool
명령에서{{sdkPath}}
자리 표시자를 사용해야 합니다. sdkConfiguration
-
포팅에 필요한 범위를 벗어나 파일 및 폴더 구조를 수정하여 FreeRTOS를 사용할 수 있는 경우 이 블록에서 SDK 정보를 구성해야 합니다. 내부에서 이식된 프리RTOS를 사용할 수 없는 경우 이 블록을 완전히 생략SDK해야 합니다.
sdkConfiguration.name
-
무료 에서 사용 SDK 중인 의 이름입니다RTOS. 를 사용하지 않는 경우 전체
sdkConfiguration
블록SDK을 생략해야 합니다. sdkConfiguration.version
-
무료 와 함께 사용 SDK 중인 의 버전입니다RTOS. 를 사용하지 않는 경우 전체
sdkConfiguration
블록SDK을 생략해야 합니다. sdkConfiguration.path
-
무료RTOS 코드가 포함된 SDK 디렉터리의 절대 경로입니다. 를 사용하지 않는 경우 전체
sdkConfiguration
블록SDK을 생략해야 합니다.
buildTool
-
소스 코드를 빌드하기 위한 명령이 포함된 빌드 스크립트(.bat 또는 .sh)의 전체 경로입니다. 빌드 명령의 소스 코드 경로에 대한 모든 참조는 AWS IoT Device Tester 변수로 대체되고 SDK 경로에 대한
{{testdata.sourcePath}}
참조는 로 대체되어야 합니다{{sdkPath}}
.{{config.idtRootPath}}
자리 표시자를 사용하여 절대 또는 상대 IDT 경로를 참조합니다. testStartDelayms
-
프리RTOS 테스트 러너가 테스트 실행을 시작하기 전에 대기할 밀리초 수를 지정합니다. 이는 테스트 중인 디바이스IDT가 네트워크 또는 기타 지연 시간으로 인해 연결하고 로깅을 시작할 수 있는 기회가 있기 전에 중요한 테스트 정보를 출력하기 시작하는 경우에 유용할 수 있습니다. 허용되는 최대값은 30,000ms(30초)입니다. 이 값은 무료RTOS 테스트 그룹에만 적용되며 테스트와 같이 무료RTOS 테스트 러너를 사용하지 않는 다른 테스트 그룹에는 적용되지 않습니다OTA.
flashTool
-
디바이스에 대한 플래시 명령이 포함된 플래시 스크립트(.sh 또는 .bat)의 전체 경로입니다. 플래시 명령에서 소스 코드 경로에 대한 모든 참조는 무료RTOS 변수IDT용 로 대체되어야 하며 SDK 경로에 대한
{{testdata.sourcePath}}
모든 참조는 무료RTOS 변수IDT용 로 대체되어야 합니다{{sdkPath}}
.{{config.idtRootPath}}
자리 표시자를 사용하여 절대 또는 상대 IDT 경로를 참조하세요.buildImageInfo
-
testsImageName
-
폴더에서 테스트를 빌드할 때 빌드 명령으로 인해 생성되는 파일의 이름입니다.freertos-source
/tests demosImageName
-
폴더에서 테스트를 빌드할 때 빌드 명령으로 인해 생성되는 파일의 이름입니다.freertos-source
/demos
clientWifiConfig
-
클라이언트 Wi-Fi 구성입니다. Wi-Fi 라이브러리 테스트에는 두 개의 액세스 포인트에 연결하기 위한 MCU 보드가 필요합니다. (두 액세스 포인트는 동일할 수 있습니다.). 이 속성은 첫 번째 액세스 포인트에 대한 Wi-Fi 설정을 구성합니다. 일부 Wi-Fi 테스트 사례에서는 액세스 포인트가 보안을 갖추고 있고 열리지 않아야 합니다. 두 액세스 포인트가 를 실행하는 호스트 컴퓨터와 동일한 서브넷에 있는지 확인하세요IDT.
wifi_ssid
-
Wi-Fi SSID.
wifi_password
-
Wi-Fi 암호입니다.
wifiSecurityType
-
사용되는 Wi-Fi 보안 유형입니다. 값 중 하나는 다음과 같습니다.
-
eWiFiSecurityOpen
-
eWiFiSecurityWEP
-
eWiFiSecurityWPA
-
eWiFiSecurityWPA2
-
eWiFiSecurityWPA3
-
참고
보드가 Wi-Fi를 지원하지 않는 경우에도
clientWifiConfig
섹션을device.json
파일에 포함시켜야 하지만 이러한 속성의 값을 생략할 수 있습니다. testWifiConfig
-
테스트 Wi-Fi 구성입니다. Wi-Fi 라이브러리 테스트에는 두 개의 액세스 포인트에 연결하기 위한 MCU 보드가 필요합니다. (두 액세스 포인트는 동일할 수 있습니다.). 이 속성은 두 번째 액세스 포인트에 대한 Wi-Fi 설정을 구성합니다. 일부 Wi-Fi 테스트 사례에서는 액세스 포인트가 보안을 갖추고 있고 열리지 않아야 합니다. 두 액세스 포인트가 를 실행하는 호스트 컴퓨터와 동일한 서브넷에 있는지 확인하세요IDT.
wifiSSID
-
Wi-Fi SSID.
wifiPassword
-
Wi-Fi 암호입니다.
wifiSecurityType
-
사용되는 Wi-Fi 보안 유형입니다. 값 중 하나는 다음과 같습니다.
-
eWiFiSecurityOpen
-
eWiFiSecurityWEP
-
eWiFiSecurityWPA
-
eWiFiSecurityWPA2
-
eWiFiSecurityWPA3
-
참고
보드가 Wi-Fi를 지원하지 않는 경우에도
testWifiConfig
섹션을device.json
파일에 포함시켜야 하지만 이러한 속성의 값을 생략할 수 있습니다. echoServerCertificateConfiguration
-
보안 소켓 테스트를 위한 구성 가능한 에코 서버 인증서 생성 자리 표시자입니다. 이 필드는 필수 항목입니다.
certificateGenerationMethod
-
서버 인증서를 자동으로 생성할지 수동으로 제공할지를 지정합니다.
customPath
-
certificateGenerationMethod
가 ‘사용자 지정’인 경우certificatePath
및privateKeyPath
는 필수입니다.certificatePath
-
서버 인증서의 파일 경로를 지정합니다.
privateKeyPath
-
프라이빗 키의 파일 경로를 지정합니다.
eccCurveFormat
-
보드에서 지원하는 곡선 형식을 지정합니다.
device.json
에서PKCS11
이 ‘ecc’로 설정된 경우 필수입니다. 유효한 값은 ‘P224’, ‘P256’, ‘P384’ 또는 ‘P521’입니다.
echoServerConfiguration
-
WiFi 및 보안 소켓 테스트를 위한 구성 가능한 에코 서버 포트입니다. 이 필드는 선택 사항입니다.
securePortForSecureSocket
-
보안 소켓 테스트를 TLS 위해 를 사용하여 에코 서버를 설정하는 데 사용되는 포트입니다. 기본값은 33333입니다. 구성된 포트가 방화벽이나 회사 네트워크에 의해 차단되지 않는지 확인합니다.
insecurePortForSecureSocket
-
보안 소켓 테스트를 TLS 위해 를 사용하지 않고 에코 서버를 설정하는 데 사용되는 포트입니다. 테스트에 사용되는 기본값은 33334입니다. 구성된 포트가 방화벽이나 회사 네트워크에 의해 차단되지 않는지 확인합니다.
insecurePortForWiFi
-
WiFi 테스트를 TLS 하지 않고 에코 서버를 설정하는 데 사용되는 포트입니다. 테스트에 사용되는 기본값은 33335입니다. 구성된 포트가 방화벽이나 회사 네트워크에 의해 차단되지 않는지 확인합니다.
otaConfiguration
-
OTA 구성입니다. [선택 사항]
otaFirmwareFilePath
-
빌드 후 생성된 OTA 이미지의 전체 경로입니다. 예:
{{testData.sourcePath}}/
.relative-path/to/ota/image/from/source/root
deviceFirmwareFileName
-
OTA 펌웨어가 있는 MCU 디바이스의 전체 파일 경로입니다. 일부 디바이스는 이 필드를 사용하지 않지만 그래도 값을 입력해야 합니다.
otaDemoConfigFilePath
-
aws_demo_config.h
에 대한 전체 경로이며
에 있습니다. 이러한 파일은 FreeRTOS가 제공하는 포팅 코드 템플릿에 포함됩니다.afr-source
/vendors/vendor/boards/board/aws_demos/config_files/ codeSigningConfiguration
-
코드 서명 구성입니다.
signingMethod
-
코드 서명 방법입니다. 가능한 값은
AWS
또는Custom
입니다.참고
베이징 및 닝샤 리전의 경우
Custom
을 사용합니다.AWS
코드 서명은 이러한 리전에서 지원되지 않습니다. signerHashingAlgorithm
-
디바이스에서 지원되는 해싱 알고리즘입니다. 가능한 값은
SHA1
또는SHA256
입니다. signerSigningAlgorithm
-
디바이스에서 지원되는 서명 알고리즘입니다. 가능한 값은
RSA
또는ECDSA
입니다. signerCertificate
-
에 사용되는 신뢰할 수 있는 인증서입니다OTA.
AWS 코드 서명 방법의 경우 에 업로드된 신뢰할 수 있는 인증서에 Amazon 리소스 이름(ARN)을 사용합니다 AWS Certificate Manager.
사용자 정의 코드 서명 방법의 경우 서명자 인증서 파일의 절대 경로를 사용합니다.
신뢰할 수 있는 인증서 생성에 대한 자세한 내용은 코드 서명 인증서 생성 단원을 참조하십시오.
signerCertificateFileName
-
디바이스에 있는 코드 서명 인증서의 파일 이름입니다. 이 값은
aws acm import-certificate
명령을 실행할 때 입력한 파일 이름과 일치해야 합니다.자세한 내용은 코드 서명 인증서 생성 단원을 참조하십시오.
compileSignerCertificate
-
코드 서명자 서명 확인 인증서가 프로비저닝되지 않았거나 깜박이지 않는
true
경우 를 로 설정하여 프로젝트로 컴파일해야 합니다. 신뢰할 수 있는 인증서를 AWS IoT Device Tester 가져와서 로 컴파일합니다aws_codesigner_certifiate.h
. untrustedSignerCertificate
-
일부 OTA 테스트에서 신뢰할 수 없는 인증서로 사용되는 두 번째 인증서의 ARN 또는 파일 경로입니다. 인증서 생성에 대한 자세한 내용은 코드 서명 인증서 생성을 참조하세요.
signerPlatform
-
AWS Code Signer가 OTA 업데이트 작업을 생성하는 동안 사용하는 서명 및 해싱 알고리즘입니다. 현재 이 필드에 가능한 값은
AmazonFreeRTOS-TI-CC3220SF
및AmazonFreeRTOS-Default
입니다.-
SHA1
및RSA
인 경우AmazonFreeRTOS-TI-CC3220SF
를 선택합니다. -
SHA256
및ECDSA
인 경우AmazonFreeRTOS-Default
를 선택합니다.
구성에
SHA256
|RSA
또는SHA1
|ECDSA
가 필요한 경우 추가 지원을 요청하십시오.signingMethod
에Custom
을 선택한 경우signCommand
를 구성합니다 -
signCommand
-
사용자 정의 코드 서명을 수행하는 데 사용되는 명령입니다.
/configs/script_templates
디렉터리에서 템플릿을 찾을 수 있습니다.명령에는 자리 표시자
{{inputImageFilePath}}
2개와{{outputSignatureFilePath}}
가 필요합니다.{{inputImageFilePath}}
는 서명IDT할 에 의해 빌드된 이미지의 파일 경로입니다.{{outputSignatureFilePath}}
는 스크립트에서 생성되는 서명의 파일 경로입니다.
cmakeConfiguration
-
CMake 구성 [선택 사항]
참고
CMake 테스트 사례를 실행하려면 보드 이름, 공급업체 이름 및
frToolchainPath
또는 중 하나를 제공해야 합니다compilerName
. CMake 도구 체인에 대한 사용자 지정 경로가 있는cmakeToolchainPath
경우 를 제공할 수도 있습니다.boardName
-
테스트 중인 보드의 이름입니다. 보드 이름은
아래의 폴더 이름과 같아야 합니다.path/to/afr/source/code
/vendors/vendor
/boards/board
vendorName
-
테스트 중인 보드의 공급업체 이름입니다. 공급업체는
아래의 폴더 이름과 같아야 합니다.path/to/afr/source/code
/vendors/vendor
compilerName
-
컴파일러 이름입니다.
frToolchainPath
-
컴파일러 도구 체인의 정규화된 경로입니다.
cmakeToolchainPath
-
CMake 도구 체인에 대한 정규화된 경로입니다. 이 필드는 선택 사항입니다.
freertosFileConfiguration
-
테스트를 실행하기 전에 IDT 수정하는 무료RTOS 파일의 구성입니다.
required
-
이 섹션에서는 , 등 이동한 구성 파일의 필수 테스트를 지정합니다PKCS11TLS.
configName
-
구성하는 테스트의 이름입니다.
filePath
-
리포지토리 내에서 구성 파일의 절대 경로입니다.freertos
{{testData.sourcePath}}
변수를 사용하여 경로를 정의합니다.
optional
-
이 섹션에서는 , 등 이동한 구성 파일의 선택적 테스트를 지정합니다OTA WiFi.
configName
-
구성하는 테스트의 이름입니다.
filePath
-
리포지토리 내에서 구성 파일의 절대 경로입니다.freertos
{{testData.sourcePath}}
변수를 사용하여 경로를 정의합니다.
참고
CMake 테스트 사례를 실행하려면 보드 이름, 공급업체 이름 및 afrToolchainPath
또는 중 하나를 제공해야 합니다compilerName
. CMake 도구 체인에 대한 사용자 지정 경로가 있는 cmakeToolchainPath
경우 를 제공할 수도 있습니다.