기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
처음으로 마이크로 컨트롤러 보드의 테스트 준비
중요
이 문서는 FreeRTOS 릴리스 202012.00에서 사용하기 위한 FreeRTOS 사용 설명서의 보관 버전입니다. 이 문서의 최신 버전은 FreeRTOS 사용 설명서를 참조하세요.
FreeRTOS 인터페이스를 이식할 때 FreeRTOS용 IDT를 사용하여 테스트할 수 있습니다. 보드의 디바이스 드라이버에 대한 FreeRTOS 인터페이스를 이식한 후 AWS IoT Device Tester 를 사용하여 마이크로컨트롤러 보드에서 검증 테스트를 실행합니다.
라이브러리 이식 계층 추가
FreeRTOS를 디바이스에 이식하려면 FreeRTOS 이식 안내서의 지침을 따르세요.
자격 AWS 증명 구성
AWS 클라우드와 통신하려면 AWS IoT Device Tester 에 대한 AWS 자격 증명을 구성해야 합니다. 자세한 내용은 개발을 위한 AWS 보안 인증 정보 및 리전 설정을 참조하세요.
구성 파일에 유효한 AWS 자격 증명을 지정해야 합니다.devicetester_extract_location
/devicetester_afreertos_[win|mac|linux]
/configs/config.json
FreeRTOS용 IDT에서 디바이스 풀 생성
테스트할 디바이스는 디바이스 풀에서 구성됩니다. 각 디바이스 풀은 하나 이상의 동일한 디바이스로 구성됩니다. 풀에서 단일 디바이스를 테스트하거나 풀에서 여러 디바이스를 테스트하도록 FreeRTOS용 IDT를 구성할 수 있습니다. 검증 프로세스를 가속화하기 위해 FreeRTOS용 IDT는 동일한 사양이 있는 디바이스를 병렬로 테스트할 수 있습니다. 라운드 로빈 방법을 사용하여 디바이스 풀에 있는 각 디바이스에 대해 다른 테스트 그룹을 실행합니다.
configs
폴더에서 device.json
템플릿의 devices
섹션을 편집하여 디바이스 풀에 하나 이상의 디바이스를 추가할 수 있습니다.
참고
동일한 풀에 있는 모든 디바이스는 기술 사양과 SKU가 동일해야 합니다.
다른 테스트 그룹에 대한 소스 코드의 병렬 빌드를 활성화하기 위해 FreeRTOS용 IDT는 FreeRTOS용 IDT 압축 해제 폴더 내부의 결과 폴더에 소스 코드를 복사합니다. 빌드 또는 플래시 명령에 있는 소스 코드 경로는 testdata.sourcePath
또는 sdkPath
변수를 사용하여 참조해야 합니다. FreeRTOS용 IDT는 이 변수를 복사된 소스 코드의 임시 경로로 바꿉니다. 자세한 내용은 FreeRTOS용 IDT 변수 섹션을 참조하세요.
다음은 여러 디바이스가 있는 디바이스 풀을 생성하는 데 사용되는 예제 device.json
파일입니다.
[ { "id": "
pool-id
", "sku": "sku
", "features": [ { "name": "WIFI", "value": "Yes | No" }, { "name": "Cellular", "value": "Yes | No" }, { "name": "OTA", "value": "Yes | No", "configs": [ { "name": "OTADataPlaneProtocol", "value": "HTTP | MQTT | Both" } ] }, { "name": "BLE", "value": "Yes | No" }, { "name": "TCP/IP", "value": "On-chip | Offloaded | No" }, { "name": "TLS", "value": "Yes | No" }, { "name": "PKCS11", "value": "RSA | ECC | Both | No" }, { "name": "KeyProvisioning", "value": "Import | Onboard | No" } ], "devices": [ { "id": "device-id
", "connectivity": { "protocol": "uart", "serialPort": "/dev/tty*
" }, ***********Remove the section below if the device does not support onboard key generation*************** "secureElementConfig" : { "publicKeyAsciiHexFilePath": "absolute-path-to/public-key-txt-file: contains-the-hex-bytes-public-key-extracted-from-onboard-private-key
", "secureElementSerialNumber": "secure-element-serialNo-value
", "preProvisioned" : "Yes | No" }, ********************************************************************************************************** "identifiers": [ { "name": "serialNo", "value": "serialNo-value
" } ] } ] } ]
device.json
파일에서 사용되는 속성은 다음과 같습니다.
id
-
디바이스 풀을 고유하게 식별하는 사용자 정의 영숫자 ID입니다. 풀에 속한 디바이스는 동일한 유형이어야 합니다. 테스트 제품군을 실행할 때 풀에 있는 디바이스는 워크로드를 병렬화하는 데 사용됩니다.
sku
-
테스트하는 보드를 고유하게 식별하는 영숫자 값입니다. SKU는 적격 보드를 추적하는 데 사용됩니다.
참고
AWS Partner Device Catalog에 보드를 나열하려면 여기에서 지정하는 SKU가 나열 프로세스에서 사용하는 SKU와 일치해야 합니다.
features
-
디바이스의 지원되는 기능이 포함된 배열입니다.이 정보를 AWS IoT Device Tester 사용하여 실행할 검증 테스트를 선택합니다.
지원되는 값은 다음과 같습니다.
TCP/IP
-
보드가 TCP/IP 스택을 지원하는지 여부 및 보드가 온칩에서 지원되는지(MCU) 또는 다른 모듈로 오프로드되는지를 나타냅니다. 검증에는 TCP/IP가 필요합니다.
WIFI
-
보드에 Wi-Fi 기능이 있는지 여부를 나타냅니다.
Cellular
가Yes
로 설정된 경우No
로 설정되어야 합니다. Cellular
-
보드에 셀룰러 기능이 있는지 여부를 나타냅니다.
WIFI
가Yes
로 설정된 경우No
로 설정되어야 합니다. 이 기능을 로 설정하면Yes
FullSecureSockets 테스트가 AWS t2.micro EC2 인스턴스를 사용하여 실행되며 이로 인해 계정에 추가 비용이 발생할 수 있습니다. 자세한 설명은 Amazon EC2 요금을 참조하세요. TLS
-
보드가 TLS를 지원하는지 여부를 나타냅니다. 검증에는 TLS가 필요합니다.
PKCS11
-
보드가 지원하는 퍼블릭 키 암호화 알고리즘을 나타냅니다. 검증에는 PKCS11이 필요합니다. 지원되는 값은
ECC
,RSA
,Both
,No
입니다.Both
는ECC
및RSA
알고리즘을 모두 지원하는 보드를 가리킵니다. KeyProvisioning
-
신뢰할 수 있는 X.509 클라이언트 인증서를 보드에 작성하는 방법을 나타냅니다. 유효 값은
Import
,Onboard
및No
입니다. 검증에는 키 프로비저닝이 필요합니다.-
보드에서 프라이빗 키 가져오기를 허용하는 경우에는
Import
을 사용합니다. IDT는 프라이빗 키를 생성하고 이를 FreeRTOS 소스 코드에 빌드합니다. -
보드가 온보드 프라이빗 키 생성을 지원하는 경우(예: 디바이스에 보안 요소가 있거나 자체적인 디바이스 키 페어 및 인증서를 생성하려는 경우)에는
Onboard
을 사용합니다. 각 디바이스 섹션에secureElementConfig
요소를 추가하고 퍼블릭 키 파일에 대한 절대 경로를publicKeyAsciiHexFilePath
필드에 입력합니다. -
보드가 키 프로비저닝을 지원하지 않는 경우
No
를 사용합니다.
-
OTA
-
보드가 무선(Over-the-Air) 업데이트 기능을 지원하는지 여부를 나타냅니다.
OtaDataPlaneProtocol
속성은 디바이스가 지원하는 OTA 데이터 영역 프로토콜을 나타냅니다. 디바이스에서 OTA 기능을 지원하지 않으면 이 속성은 무시됩니다."Both"
를 선택하면 MQTT, HTTP 둘 다와 혼합된 테스트가 실행되어 OTA 테스트 실행 시간이 길어집니다. BLE
-
보드가 Bluetooth Low Energy(BLE)를 지원하는지 여부를 나타냅니다.
devices.id
-
테스트 대상 장치의 고유한 사용자 정의 식별자입니다.
devices.connectivity.protocol
-
이러한 장치와 통신하는 데 사용되는 통신 프로토콜입니다. 지원되는 값:
uart
. devices.connectivity.serialPort
-
테스트할 디바이스에 연결하는 데 사용되는 호스트 컴퓨터의 직렬 포트입니다.
devices.secureElementConfig.PublicKeyAsciiHexFilePath
-
온보드 프라이빗 키에서 추출한 16진수 바이트 퍼블릭 키를 포함하는 파일에 대한 절대 경로입니다.
형식의 예:
3059 3013 0607 2a86 48ce 3d02 0106 082a 8648 ce3d 0301 0703 4200 04cd 6569 ceb8 1bb9 1e72 339f e8cf 60ef 0f9f b473 33ac 6f19 1813 6999 3fa0 c293 5fae 08f1 1ad0 41b7 345c e746 1046 228e 5a5f d787 d571 dcb2 4e8d 75b3 2586 e2cc 0c
퍼블릭 키가 .der 형식인 경우 퍼블릭 키를 직접 16진수 인코딩하여 16진수 파일을 생성할 수 있습니다.
.der 퍼블릭 키를 사용하여 16진수 파일을 생성하기 위한 명령 예제:
xxd -p pubkey.der > outFile
퍼블릭 키가.pem 형식인 경우 base64 인코딩 부분을 추출하여 바이너리 형식으로 디코딩한 다음 16진수 인코딩하여 16진수 파일을 생성할 수 있습니다.
예를 들어, 다음 명령을 사용하여 .pem 퍼블릭 키용 16진수 파일을 생성할 수 있습니다.
-
키의 base64 인코딩 부분만 빼내어(헤더 및 푸터를 제거) 파일에 저장하고(예를 들어
base64key
로 이름을 지정) 다음 명령을 실행하여 .der 형식으로 변환합니다.base64 —decode base64key > pubkey.der
-
xxd
명령을 실행하여 이를 16진수 형식으로 변환합니다.xxd -p pubkey.der > outFile
-
devices.secureElementConfig.SecureElementSerialNumber
-
(선택 사항) 보안 요소의 일련 번호입니다. FreeRTOS 데모/테스트 프로젝트를 실행할 때 디바이스 퍼블릭 키와 더불어 일련 번호가 출력되는 경우 이 필드를 제공합니다.
devices.secureElementConfig.preProvisioned
-
(선택 사항) 디바이스에 잠긴 보안 인증 정보를 가진 사전 프로비저닝된 보안 요소가 있고 객체를 가져오거나 생성하거나 삭제할 수 없는 경우 ‘예’로 설정합니다. 이 구성은
features
에서KeyProvisioning
이 ‘온보드’로 설정되고PKCS11
이 ‘ECC’로 설정된 경우에만 적용됩니다. identifiers
-
(선택 사항) 임의 이름-값 페어의 배열입니다. 다음 단원에서 설명하는 빌드 및 플래시 명령에 이러한 값을 사용할 수 있습니다.
빌드, 플래시 및 테스트 설정 구성
FreeRTOS용 IDT를 사용하여 보드에서 자동으로 테스트를 빌드 및 플래시하는 경우, 하드웨어에 대한 빌드 및 플래시 명령을 실행하도록 IDT를 구성해야 합니다. 빌드 및 플래시 명령 설정은 config
폴더에 있는 userdata.json
템플릿 파일에서 구성됩니다.
디바이스 테스트를 위한 설정 구성
빌드, 플래시 및 테스트 설정은 configs/userdata.json
파일에서 수행됩니다. 클라이언트 및 서버 인증서와 키를 모두 customPath
에서 로드하는 에코 서버 구성을 지원합니다. 자세한 내용은 FreeRTOS 이식 가이드의 에코 서버 설정을 참조하세요. 다음 JSON 예제에서는 여러 디바이스를 테스트하도록 FreeRTOS용 IDT를 구성하는 방법을 보여 줍니다.
{ "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": [ "/absolute-path-to/build-parallel.sh
{{testData.sourcePath}} {{enableTests}}" ] }, "flashTool": { "name": "your-flash-tool-name
", "version": "your-flash-tool-version
", "command": [ "/absolute-path-to/flash-parallel.sh
{{testData.sourcePath}} {{device.connectivity.serialPort}} {{buildImageName}}" ], "buildImageInfo" : { "testsImageName": "tests-image-name
", "demosImageName": "demos-image-name
" } }, "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-path
/aws_tests/config_files/core_pkcs11_config.h" }, { "configName": "pkcs11TestConfig", "filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-path
/aws_tests/config_files/iot_test_pkcs11_config.h" } ], "optional": [ { "configName": "otaAgentTestsConfig", "filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-path
/aws_tests/config_files/aws_ota_agent_config.h" }, { "configName": "otaAgentDemosConfig", "filePath": "{{testData.sourcePath}}/vendors/vendor-name
/boards/board-path
/aws_demos/config_files/aws_ota_agent_config.h" } ] } }
다음 목록에서는 userdata.json
에서 사용되는 속성을 나열합니다.
sourcePath
-
이식된 Echo Server 소스 코드의 루트에 대한 경로입니다. SDK를 사용하는 병렬 테스트의 경우
{{userData.sdkConfiguration.path}}
자리 표시자를 사용하여sourcePath
를 설정할 수 있습니다. 예시:{ "sourcePath":"{{userData.sdkConfiguration.path}}/
freertos
" } vendorPath
-
공급업체별 FreeRTOS 코드에 대한 경로입니다. 직렬 테스트의 경우
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 정보를 구성해야 합니다. SDK 내에서 이식된 FreeRTOS를 사용할 수 없다면 이 블록을 완전히 생략해야 합니다.
sdkConfiguration.name
FreeRTOS와 함께 사용 중인 SDK의 이름입니다. SDK를 사용하지 않는 경우 전체
sdkConfiguration
블록을 생략해야 합니다.sdkConfiguration.version
FreeRTOS와 함께 사용 중인 SDK의 버전입니다. SDK를 사용하지 않는 경우 전체
sdkConfiguration
블록을 생략해야 합니다.sdkConfiguration.path
FreeRTOS 코드가 포함된 SDK 디렉터리의 절대 경로입니다. SDK를 사용하지 않는 경우 전체
sdkConfiguration
블록을 생략해야 합니다.
buildTool
-
소스 코드를 빌드하기 위한 명령이 포함된 빌드 스크립트(.bat 또는 .sh)의 전체 경로입니다. 빌드 명령의 소스 코드 경로에 대한 모든 참조는 AWS IoT Device Tester 변수로 대체되고 SDK 경로에 대한
{{testdata.sourcePath}}
참조는 로 대체되어야 합니다{{sdkPath}}
.buildImageInfo
-
testsImageName
-
폴더에서 테스트를 빌드할 때 빌드 명령으로 인해 생성되는 파일의 이름입니다.freertos-source
/tests demosImageName
-
폴더에서 테스트를 빌드할 때 빌드 명령으로 인해 생성되는 파일의 이름입니다.freertos-source
/demos
flashTool
-
디바이스에 대한 플래시 명령이 포함된 플래시 스크립트(.sh 또는 .bat)의 전체 경로입니다. 플래시 명령에서 소스 코드 경로에 대한 모든 참조는 FreeRTOS용 IDT 변수
{{testdata.sourcePath}}
로 바꿔야 하고 SDK 경로에 대한 모든 참조는 FreeRTOS용 IDT 변수{{sdkPath}}
로 바꿔야 합니다. 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 및 SecureSocket 테스트를 위한 구성 가능한 에코 서버 포트입니다. 이 필드는 선택 사항입니다.
securePortForSecureSocket
-
SecureSocket 테스트를 위해 TLS를 사용하여 에코 서버를 설정하는 데 사용되는 포트입니다. 기본값은 33333입니다. 구성된 포트가 방화벽이나 회사 네트워크에 의해 차단되지 않는지 확인합니다.
insecurePortForSecureSocket
-
SecureSocket 테스트를 위해 TLS를 사용하지 않고 에코 서버를 설정하는 데 사용되는 포트입니다. 테스트에 사용되는 기본값은 33334입니다. 구성된 포트가 방화벽이나 회사 네트워크에 의해 차단되지 않는지 확인합니다.
insecurePortForWiFi
-
WiFi 테스트를 위해 TLS를 사용하지 않고 에코 서버를 설정하는 데 사용되는 포트입니다. 테스트에 사용되는 기본값은 33335입니다. 구성된 포트가 방화벽이나 회사 네트워크에 의해 차단되지 않는지 확인합니다.
otaConfiguration
-
OTA 구성입니다. [선택 사항]
otaFirmwareFilePath
-
빌드 후 생성된 OTA 이미지의 전체 경로입니다. 예를 들어
{{testData.sourcePath}}/
입니다.relative-path/to/ota/image/from/source/root
deviceFirmwareFileName
-
MCU 디바이스에 OTA 펌웨어가 위치하는 전체 파일 경로입니다. 일부 디바이스는 이 필드를 사용하지 않지만 그래도 값을 입력해야 합니다.
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
-
디바이스의 코드 서명 인증서의 위치입니다.
compileSignerCertificate
-
코드 서명자 서명 확인 인증서가 프로비저닝되거나 플래시되지 않은
true
경우 로 설정되므로 프로젝트로 컴파일해야 합니다. 신뢰할 수 있는 인증서를 AWS IoT Device Tester 가져와서 로 컴파일합니다aws_codesigner_certifiate.h
. untrustedSignerCertificateArn
-
ACM에 업로드된 코드 서명 인증서의 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}}
및{{outputSignatureFilePath}}
가 필요합니다.{{inputImageFilePath}}
는 서명하기 위해 IDT에서 만든 이미지의 파일 경로입니다.{{outputSignatureFilePath}}
는 스크립트에서 생성하는 서명의 파일 경로입니다. otaDemoConfigFilePath
-
aws_demo_config.h
에 대한 전체 경로이며,
내에 있습니다. 이러한 파일은 FreeRTOS에서 제공한 이식 코드 템플릿에 포함되어 있습니다.afr-source
/vendors/vendor/boards/board/aws_demos/config_files/
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가 수정하는 FreeRTOS 파일의 구성입니다.
required
-
이 섹션에서는 구성 파일을 이동한 필수 테스트(예: PKCS11, TLS 등)를 지정합니다.
configName
-
구성하는 테스트의 이름입니다.
filePath
-
리포지토리 내에서 구성 파일의 절대 경로입니다.freertos
{{testData.sourcePath}}
변수를 사용하여 경로를 정의합니다.
optional
-
이 섹션에서는 구성 파일을 이동한 선택적 테스트(예: OTA, WiFi 등)를 지정합니다.
configName
-
구성하는 테스트의 이름입니다.
filePath
-
리포지토리 내에서 구성 파일의 절대 경로입니다.freertos
{{testData.sourcePath}}
변수를 사용하여 경로를 정의합니다.
참고
CMake 테스트 사례를 실행하려면 보드 이름, 공급업체 이름 및 afrToolchainPath
또는 compilerName
을 제공해야 합니다. CMake 도구 체인에 대한 사용자 지정 경로가 있다면 cmakeToolchainPath
를 제공할 수도 있습니다.
FreeRTOS용 IDT 변수
코드를 빌드하고 디바이스를 플래시하는 명령을 실행하려면 연결 또는 디바이스에 대한 기타 정보가 필요할 수 있습니다.를 AWS IoT Device Tester 사용하면 플래시에서 디바이스 정보를 참조하고 JsonPathdevice.json
파일에 지정된 필수 정보를 가져올 수 있습니다.
경로 변수
FreeRTOS용 IDT는 명령줄과 구성 파일에 사용할 수 있는 다음 경로 변수를 정의합니다.
{{testData.sourcePath}}
-
소스 코드 경로로 확장됩니다. 이 변수를 사용하는 경우 플래시 명령과 빌드 명령에서 이 변수를 모두 사용해야 합니다.
{{sdkPath}}
-
빌드 및 플래시 명령에서 사용할 경우
userData.sdkConfiguration.path
의 값으로 확장됩니다. {{device.connectivity.serialPort}}
-
직렬 포트로 확장됩니다.
{{device.identifiers[?(@.name == 'serialNo')].value[0]}}
-
디바이스의 일련 번호로 확장됩니다.
{{enableTests}}
-
빌드가 테스트용(값 1)인지 데모용(값 0)인지를 나타내는 정수 값입니다.
{{buildImageName}}
-
빌드 명령에 따라 빌드되는 이미지의 파일 이름입니다.
{{otaCodeSignerPemFile}}
-
OTA 코드 서명자용 PEM 파일입니다.