Bersiap untuk menguji papan mikrokontroler Anda untuk pertama kalinya - FreeRTOS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bersiap untuk menguji papan mikrokontroler Anda untuk pertama kalinya

penting

Ini adalah versi arsip dari Panduan Pengguna FreeRTOS untuk digunakan dengan rilis FreerTOS 202012.00. Untuk versi terbaru dari dokumen ini, lihat Panduan Pengguna FreeRTOS.

Anda dapat menggunakan IDT untuk FreeRTOS untuk menguji saat Anda mem-port antarmuka FreerTOS. Setelah Anda mem-porting antarmuka FreeRTOS untuk driver perangkat papan Anda, Anda AWS IoT Device Tester gunakan untuk menjalankan tes kualifikasi di papan mikrokontroler Anda.

Tambahkan lapisan porting perpustakaan

Untuk mem-port FreeRTOS untuk perangkat Anda, ikuti petunjuk di Panduan Porting FreerTOS.

Konfigurasikan AWS kredensyal Anda

Anda perlu mengonfigurasi AWS kredensialnya AWS IoT Device Tester untuk berkomunikasi dengan Cloud. AWS Untuk informasi selengkapnya, lihat Menyiapkan AWS Kredensial dan Wilayah untuk Pengembangan. AWS Kredensyal yang valid harus ditentukan dalam file devicetester_extract_location/devicetester_afreertos_[win|mac|linux]/configs/config.json konfigurasi.

Buat kumpulan perangkat di IDT untuk FreeRTOS

Perangkat yang akan diuji diatur dalam kumpulan perangkat. Setiap kumpulan perangkat terdiri dari satu atau lebih perangkat yang identik. Anda dapat mengonfigurasi IDT untuk FreeRTOS untuk menguji satu perangkat di kolam renang atau beberapa perangkat di kolam renang. Untuk mempercepat proses kualifikasi, IDT untuk FreerTOS dapat menguji perangkat dengan spesifikasi yang sama secara paralel. Ini menggunakan metode round-robin untuk mengeksekusi kelompok uji yang berbeda pada setiap perangkat dalam kumpulan perangkat.

Anda dapat menambahkan satu atau beberapa perangkat ke kumpulan perangkat dengan mengedit devices bagian device.json templat di configs folder.

catatan

Semua perangkat di kolam yang sama harus memiliki spesifikasi teknis dan SKU yang sama.

Untuk mengaktifkan build paralel dari kode sumber untuk grup pengujian yang berbeda, IDT untuk FreerTOS menyalin kode sumber ke folder hasil di dalam folder yang diekstrak IDT untuk FreeRTOS. Jalur kode sumber dalam perintah build atau flash Anda harus direferensikan menggunakan sdkPath variabel testdata.sourcePath atau. IDT untuk FreeRTOS menggantikan variabel ini dengan jalur sementara dari kode sumber yang disalin. Untuk informasi selengkapnya, lihat IDT untuk variabel FreeRTOS.

Berikut ini adalah device.json file contoh yang digunakan untuk membuat kumpulan perangkat dengan beberapa perangkat.

[ { "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" } ] } ] } ]

Atribut berikut digunakan dalam device.json file:

id

ID alfanumerik yang ditentukan pengguna yang secara unik mengidentifikasi kumpulan perangkat. Perangkat yang termasuk dalam kolam harus dari jenis yang sama. Saat serangkaian pengujian sedang berjalan, perangkat di kolam digunakan untuk memparalelkan beban kerja.

sku

Nilai alfanumerik yang secara unik mengidentifikasi papan yang Anda uji. SKU digunakan untuk melacak forum yang berkualitas.

catatan

Jika Anda ingin mencantumkan papan Anda di Katalog Perangkat AWS Mitra, SKU yang Anda tentukan di sini harus cocok dengan SKU yang Anda gunakan dalam proses pencatatan.

features

Array yang berisi fitur yang didukung perangkat. AWS IoT Device Tester menggunakan informasi ini untuk memilih tes kualifikasi yang akan dijalankan.

Nilai yang didukung adalah:

TCP/IP

Menunjukkan apakah papan Anda mendukung TCP/IP tumpukan dan apakah itu didukung on-chip (MCU) atau diturunkan ke modul lain. TCP/IP diperlukan untuk kualifikasi.

WIFI

Menunjukkan apakah papan Anda memiliki kemampuan Wi-Fi. Harus disetel ke No if Cellular diatur keYes.

Cellular

Menunjukkan apakah papan Anda memiliki kemampuan seluler. Harus disetel ke No if WIFI diatur keYes. Ketika fitur ini disetel keYes, FullSecureSockets pengujian akan dijalankan menggunakan EC2 instans AWS t2.micro dan ini dapat menimbulkan biaya tambahan ke akun Anda. Untuk informasi selengkapnya, lihat EC2 harga Amazon.

TLS

Menunjukkan apakah papan Anda mendukung TLS. TLS diperlukan untuk kualifikasi.

PKCS11

Menunjukkan algoritma kriptografi kunci publik yang didukung papan. PKCS11 diperlukan untuk kualifikasi. Nilai yang didukung adalahECC,RSA, Both danNo. Bothmenunjukkan papan mendukung kedua ECC dan RSA algoritma.

KeyProvisioning

Menunjukkan metode penulisan sertifikat klien X.509 tepercaya ke papan Anda. Nilai yang valid adalahImport, Onboard danNo. Penyediaan kunci diperlukan untuk kualifikasi.

  • Gunakan Import jika papan Anda mengizinkan impor kunci pribadi. IDT akan membuat kunci pribadi dan membangun ini ke kode sumber FreeRTOS.

  • Gunakan Onboard jika board Anda mendukung pembuatan kunci pribadi on-board (misalnya, jika perangkat Anda memiliki elemen aman, atau jika Anda lebih suka membuat key pair dan sertifikat perangkat Anda sendiri). Pastikan Anda menambahkan secureElementConfig elemen di setiap bagian perangkat dan meletakkan jalur absolut ke file kunci publik di publicKeyAsciiHexFilePath bidang.

  • Gunakan No jika papan Anda tidak mendukung penyediaan kunci.

OTA

Menunjukkan apakah papan Anda mendukung fungsionalitas pembaruan over-the-air (OTA). OtaDataPlaneProtocolAtribut menunjukkan protokol dataplane OTA mana yang didukung perangkat. Atribut diabaikan jika fitur OTA tidak didukung oleh perangkat. Kapan "Both" dipilih, waktu eksekusi pengujian OTA diperpanjang karena menjalankan MQTT, HTTP, dan tes campuran.

BLE

Menunjukkan apakah papan Anda mendukung Bluetooth Low Energy (BLE).

devices.id

Pengenal unik yang ditetapkan pengguna untuk perangkat yang sedang diuji.

devices.connectivity.protocol

Protokol komunikasi yang digunakan untuk berkomunikasi dengan perangkat ini. Nilai yang didukung: uart.

devices.connectivity.serialPort

Port serial komputer host digunakan untuk terhubung ke perangkat yang sedang diuji.

devices.secureElementConfig.PublicKeyAsciiHexFilePath

Jalur absolut ke file yang berisi hex byte kunci publik yang diekstrak dari kunci pribadi onboard.

Contoh format:

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

Jika kunci publik Anda dalam format.der, Anda dapat menyandikan kunci publik secara langsung untuk menghasilkan file hex.

Contoh perintah untuk kunci publik.der untuk menghasilkan file hex:

xxd -p pubkey.der > outFile

Jika kunci publik Anda dalam format.pem, Anda dapat mengekstrak bagian yang dikodekan base64, mendekodekannya ke dalam format biner, dan kemudian hex menyandikannya untuk menghasilkan file hex.

Misalnya, gunakan perintah ini untuk menghasilkan file hex untuk kunci publik.pem:

  1. Keluarkan bagian kunci yang dikodekan base64 (strip header dan footer) dan simpan dalam file, misalnya beri namabase64key, jalankan perintah ini untuk mengubahnya menjadi format.der:

    base64 —decode base64key > pubkey.der
  2. Jalankan xxd perintah untuk mengubahnya menjadi format hex.

    xxd -p pubkey.der > outFile
devices.secureElementConfig.SecureElementSerialNumber

(Opsional) Nomor seri elemen aman. Berikan bidang ini saat nomor seri dicetak bersama dengan kunci publik perangkat saat Anda menjalankan proyek FreeRTOS demo/test .

devices.secureElementConfig.preProvisioned

(Opsional) Setel ke “Ya” jika perangkat memiliki elemen aman yang telah disediakan sebelumnya dengan kredensil terkunci, yang tidak dapat mengimpor, membuat, atau menghancurkan objek. Konfigurasi ini berlaku hanya ketika features telah KeyProvisioning disetel ke “Onboard”, bersama dengan PKCS11 disetel ke “ECC”.

identifiers

(Opsional) Sebuah array pasangan nama-nilai arbitrer. Anda dapat menggunakan nilai-nilai ini dalam perintah build dan flash yang dijelaskan di bagian selanjutnya.

Konfigurasikan pengaturan build, flash, dan uji

Agar IDT untuk FreeRTOS dapat membangun dan mem-flash tes ke papan Anda secara otomatis, Anda harus mengonfigurasi IDT untuk menjalankan perintah build dan flash untuk perangkat keras Anda. Pengaturan perintah build dan flash dikonfigurasi dalam file userdata.json template yang terletak di config folder.

Konfigurasikan pengaturan untuk perangkat pengujian

Pengaturan build, flash, dan test dibuat dalam configs/userdata.json file. Kami mendukung konfigurasi Echo Server dengan memuat sertifikat dan kunci klien dan server di file. customPath Untuk informasi selengkapnya, lihat Menyiapkan server gema di Panduan Porting FreeRTOS. Contoh JSON berikut menunjukkan bagaimana Anda dapat mengkonfigurasi IDT untuk FreeRTOS untuk menguji beberapa perangkat:

{ "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" } ] } }

Berikut ini mencantumkan atribut yang digunakan dalamuserdata.json:

sourcePath

Jalur ke root kode sumber FreeRTOS yang diporting. Untuk pengujian paralel dengan SDK, sourcePath dapat diatur menggunakan dudukan {{userData.sdkConfiguration.path}} tempat. Misalnya:

{ "sourcePath":"{{userData.sdkConfiguration.path}}/freertos" }
vendorPath

Jalur ke kode FreeRTOS khusus vendor. Untuk pengujian serial, vendorPath dapat diatur sebagai jalur absolut. Misalnya:

{ "vendorPath":"C:/path-to-freertos/vendors/espressif/boards/esp32" }

Untuk pengujian paralel, vendorPath dapat diatur menggunakan dudukan {{testData.sourcePath}} tempat. Misalnya:

{ "vendorPath":"{{testData.sourcePath}}/vendors/espressif/boards/esp32" }

vendorPathVariabel hanya diperlukan saat berjalan tanpa SDK, variabel dapat dihapus jika tidak.

catatan

Saat menjalankan pengujian secara paralel tanpa SDK, {{testData.sourcePath}} placeholder harus digunakan di bidangvendorPath,,buildTool. flashTool Saat menjalankan pengujian dengan satu perangkat, jalur absolut harus digunakan di flashTool bidang vendorPathbuildTool,,. Saat menjalankan dengan SDK, {{sdkPath}} placeholder harus digunakan dalam perintahsourcePath,buildTool, dan. flashTool

sdkConfiguration

Jika Anda memenuhi syarat FreeRTOS dengan modifikasi apa pun pada file dan struktur folder di luar apa yang diperlukan untuk porting, maka Anda perlu mengonfigurasi informasi SDK Anda di blok ini. Jika Anda tidak memenuhi syarat dengan FreeRTOS porting di dalam SDK, maka Anda harus menghilangkan blok ini sepenuhnya.

sdkConfiguration.name

Nama SDK yang Anda gunakan dengan FreeRTOS. Jika Anda tidak menggunakan SDK, maka seluruh sdkConfiguration blok harus dihilangkan.

sdkConfiguration.version

Versi SDK yang Anda gunakan dengan FreeRTOS. Jika Anda tidak menggunakan SDK, maka seluruh sdkConfiguration blok harus dihilangkan.

sdkConfiguration.path

Jalur absolut ke direktori SDK Anda yang berisi kode FreeRTOS Anda. Jika Anda tidak menggunakan SDK, maka seluruh sdkConfiguration blok harus dihilangkan.

buildTool

Jalur lengkap ke skrip build Anda (.bat atau .sh) yang berisi perintah untuk membangun kode sumber Anda. Semua referensi ke jalur kode sumber dalam perintah build harus diganti dengan AWS IoT Device Tester variabel {{testdata.sourcePath}} dan referensi ke jalur SDK harus diganti dengan{{sdkPath}}.

buildImageInfo
testsImageName

Nama file yang dihasilkan oleh perintah build saat membuat pengujian dari freertos-source/tests folder.

demosImageName

Nama file yang dihasilkan oleh perintah build saat membuat pengujian dari freertos-source/demos folder.

flashTool

Jalur lengkap ke skrip flash Anda (.sh atau.bat) yang berisi perintah flash untuk perangkat Anda. Semua referensi ke jalur kode sumber dalam perintah flashash harus diganti oleh variabel IDT untuk FreeRTOS {{testdata.sourcePath}} dan semua referensi ke jalur SDK Anda harus diganti dengan variabel IDT untuk FreeRTOS. {{sdkPath}}

clientWifiConfig

Konfigurasi Wi-Fi klien. Tes perpustakaan Wi-Fi memerlukan papan MCU untuk terhubung ke dua titik akses. (Dua titik akses bisa sama.) Atribut ini mengkonfigurasi pengaturan Wi-Fi untuk titik akses pertama. Beberapa kasus uji Wi-Fi mengharapkan titik akses memiliki keamanan dan tidak terbuka. Pastikan kedua titik akses berada pada subnet yang sama dengan komputer host yang menjalankan IDT.

wifi_ssid

Wi-Fi SSID.

wifi_password

Kata sandi Wi-Fi.

wifiSecurityType

Jenis keamanan Wi-Fi yang digunakan. Salah satu nilai:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

catatan

Jika papan Anda tidak mendukung Wi-Fi, Anda masih harus menyertakan clientWifiConfig bagian dalam device.json file Anda, tetapi Anda dapat menghilangkan nilai untuk atribut ini.

testWifiConfig

Konfigurasi Wi-Fi uji. Tes perpustakaan Wi-Fi memerlukan papan MCU untuk terhubung ke dua titik akses. (Dua titik akses bisa sama.) Atribut ini mengkonfigurasi pengaturan Wi-Fi untuk titik akses kedua. Beberapa kasus uji Wi-Fi mengharapkan titik akses memiliki keamanan dan tidak terbuka. Pastikan kedua titik akses berada pada subnet yang sama dengan komputer host yang menjalankan IDT.

wifiSSID

Wi-Fi SSID.

wifiPassword

Kata sandi Wi-Fi.

wifiSecurityType

Jenis keamanan Wi-Fi yang digunakan. Salah satu nilai:

  • eWiFiSecurityOpen

  • eWiFiSecurityWEP

  • eWiFiSecurityWPA

  • eWiFiSecurityWPA2

  • eWiFiSecurityWPA3

catatan

Jika papan Anda tidak mendukung Wi-Fi, Anda masih harus menyertakan testWifiConfig bagian dalam device.json file Anda, tetapi Anda dapat menghilangkan nilai untuk atribut ini.

echoServerCertificateConfiguration

Placeholder pembuatan sertifikat server gema yang dapat dikonfigurasi untuk pengujian soket aman. Bidang ini wajib diisi.

certificateGenerationMethod

Menentukan apakah sertifikat server dihasilkan secara otomatis atau disediakan secara manual.

customPath

Jika certificateGenerationMethod “Kustom”, certificatePath dan privateKeyPath diperlukan.

certificatePath

Menentukan filepath untuk sertifikat server.

privateKeyPath

Menentukan filepath untuk kunci pribadi.

eccCurveFormat

Menentukan format kurva didukung oleh papan. Diperlukan saat PKCS11 disetel ke “ecc” didevice.json. Nilai yang valid adalah “P224", “P256", “P384", atau “P521".

echoServerConfiguration

Port server gema yang dapat dikonfigurasi untuk WiFi dan pengujian soket aman. Bidang ini bersifat opsional.

securePortForSecureSocket

Port yang digunakan untuk mengatur server gema dengan TLS untuk uji soket aman. Nilai defaultnya adalah 33333. Pastikan port yang dikonfigurasi tidak diblokir oleh firewall atau jaringan perusahaan Anda.

insecurePortForSecureSocket

Port yang digunakan untuk mengatur server gema tanpa TLS untuk uji soket aman. Nilai default yang digunakan dalam pengujian adalah 33334. Pastikan port yang dikonfigurasi tidak diblokir oleh firewall atau jaringan perusahaan Anda.

insecurePortForWiFi

Port yang digunakan untuk setup server echo tanpa TLS untuk WiFi pengujian. Nilai default yang digunakan dalam pengujian adalah 33335. Pastikan port yang dikonfigurasi tidak diblokir oleh firewall atau jaringan perusahaan Anda.

otaConfiguration

Konfigurasi OTA. [Opsional]

otaFirmwareFilePath

Jalur lengkap ke gambar OTA yang dibuat setelah build. Misalnya, {{testData.sourcePath}}/relative-path/to/ota/image/from/source/root.

deviceFirmwareFileName

Jalur pengisian lengkap pada perangkat MCU tempat firmware OTA berada. Beberapa perangkat tidak menggunakan bidang ini, tetapi Anda masih harus memberikan nilai.

otaDemoConfigFilePath

Jalan lengkap keaws_demo_config.h, ditemukan diafr-source/vendors/vendor/boards/board/aws_demos/config_files/. File-file ini termasuk dalam template kode porting yang disediakan FreeRTOS.

codeSigningConfiguration

Konfigurasi penandatanganan kode.

signingMethod

Metode penandatanganan kode. Nilai yang mungkin adalah AWS atauCustom.

catatan

Untuk Wilayah Beijing dan Ningxia, gunakanCustom. AWSpenandatanganan kode tidak didukung di Wilayah ini.

signerHashingAlgorithm

Algoritma hashing didukung pada perangkat. Nilai yang mungkin adalah SHA1 atauSHA256.

signerSigningAlgorithm

Algoritma penandatanganan didukung pada perangkat. Nilai yang mungkin adalah RSA atauECDSA.

signerCertificate

Sertifikat tepercaya yang digunakan untuk OTA.

Untuk metode penandatanganan AWS kode, gunakan Amazon Resource Name (ARN) untuk sertifikat tepercaya yang diunggah ke file. AWS Certificate Manager

Untuk metode penandatanganan kode kustom, gunakan jalur absolut ke file sertifikat penandatangan.

Untuk informasi selengkapnya tentang membuat sertifikat tepercaya, lihatBuat sertifikat penandatanganan kode.

signerCertificateFileName

Lokasi sertifikat penandatanganan kode pada perangkat.

compileSignerCertificate

Setel ke true jika sertifikat verifikasi tanda tangan penandatangan kode tidak disediakan atau di-flash, sehingga harus dikompilasi ke dalam proyek. AWS IoT Device Tester mengambil sertifikat tepercaya dan mengkompilasinya menjadi. aws_codesigner_certifiate.h

untrustedSignerCertificateArn

ARN untuk sertifikat penandatanganan kode diunggah ke ACM.

signerPlatform

Algoritma penandatanganan dan hashing yang digunakan AWS Code Signer saat membuat pekerjaan pembaruan OTA. Saat ini, nilai yang mungkin untuk bidang ini adalah AmazonFreeRTOS-TI-CC3220SF danAmazonFreeRTOS-Default.

  • Pilih AmazonFreeRTOS-TI-CC3220SF jika SHA1 danRSA.

  • Pilih AmazonFreeRTOS-Default jika SHA256 danECDSA.

Jika Anda membutuhkan SHA256 | RSA atau SHA1 | ECDSA untuk konfigurasi Anda, hubungi kami untuk dukungan lebih lanjut.

Konfigurasikan signCommand jika Anda memilih Custom untuksigningMethod.

signCommand

Perintah yang digunakan untuk melakukan penandatanganan kode kustom. Anda dapat menemukan template di /configs/script_templates direktori.

Dua placeholder {{inputImageFilePath}} dan {{outputSignatureFilePath}} diperlukan dalam perintah. {{inputImageFilePath}}adalah jalur file gambar yang dibangun oleh IDT untuk ditandatangani. {{outputSignatureFilePath}}adalah jalur file dari tanda tangan yang akan dihasilkan oleh skrip.

otaDemoConfigFilePath

Jalan lengkap keaws_demo_config.h, ditemukan di dalamafr-source/vendors/vendor/boards/board/aws_demos/config_files/. File-file ini termasuk dalam template kode porting yang disediakan oleh FreeRTOS.

cmakeConfiguration

CMake konfigurasi [Opsional]

catatan

Untuk menjalankan kasus CMake uji, Anda harus memberikan nama papan, nama vendor, dan salah satu frToolchainPath ataucompilerName. Anda juga dapat memberikan cmakeToolchainPath jika Anda memiliki jalur khusus ke CMake rantai alat.

boardName

Nama papan yang diuji. Nama papan harus sama dengan nama folder di bawahpath/to/afr/source/code/vendors/vendor/boards/board.

vendorName

Nama vendor untuk papan yang diuji. Vendor harus sama dengan nama folder di bawahpath/to/afr/source/code/vendors/vendor.

compilerName

Nama kompiler.

frToolchainPath

Jalur yang sepenuhnya memenuhi syarat ke toolchain kompiler

cmakeToolchainPath

Jalur yang sepenuhnya memenuhi syarat ke rantai alat. CMake Bidang ini opsional

freertosFileConfiguration

Konfigurasi file FreerTOS yang IDT memodifikasi sebelum menjalankan tes.

required

Bagian ini menentukan tes wajib yang file konfigurasinya telah Anda pindahkan, misalnya, TLS PKCS11, dan sebagainya.

configName

Nama tes yang sedang dikonfigurasi.

filePath

Jalur absolut ke file konfigurasi dalam freertos repo. Gunakan {{testData.sourcePath}} variabel untuk menentukan jalur.

optional

Bagian ini menentukan tes opsional yang file konfigurasinya telah Anda pindahkan, misalnya OTA, WiFi, dan sebagainya.

configName

Nama tes yang sedang dikonfigurasi.

filePath

Jalur absolut ke file konfigurasi dalam freertos repo. Gunakan {{testData.sourcePath}} variabel untuk menentukan jalur.

catatan

Untuk menjalankan kasus CMake uji, Anda harus memberikan nama papan, nama vendor, dan salah satu afrToolchainPath ataucompilerName. Anda juga dapat memberikan cmakeToolchainPath jika Anda memiliki jalur khusus ke CMake rantai alat.

IDT untuk variabel FreeRTOS

Perintah untuk membangun kode Anda dan mem-flash perangkat mungkin memerlukan konektivitas atau informasi lain tentang perangkat Anda agar berhasil berjalan. AWS IoT Device Tester memungkinkan Anda untuk mereferensikan informasi perangkat dalam flash dan membangun perintah menggunakan JsonPath. Dengan menggunakan JsonPath ekspresi sederhana, Anda dapat mengambil informasi yang diperlukan yang ditentukan dalam device.json file Anda.

Variabel jalur

IDT untuk FreeRTOS mendefinisikan variabel jalur berikut yang dapat digunakan dalam baris perintah dan file konfigurasi:

{{testData.sourcePath}}

Memperluas ke jalur kode sumber. Jika Anda menggunakan variabel ini, itu harus digunakan dalam perintah flash dan build.

{{sdkPath}}

Memperluas ke nilai dalam Anda userData.sdkConfiguration.path saat digunakan dalam perintah build dan flash.

{{device.connectivity.serialPort}}

Memperluas ke port serial.

{{device.identifiers[?(@.name == 'serialNo')].value[0]}}

Memperluas ke nomor seri perangkat Anda.

{{enableTests}}

Nilai integer yang menunjukkan apakah build untuk pengujian (nilai 1) atau demo (nilai 0).

{{buildImageName}}

Nama file gambar yang dibangun oleh perintah build.

{{otaCodeSignerPemFile}}

File PEM untuk penandatangan kode OTA.