Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Pemecahan Masalah
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.
Setiap eksekusi test suite memiliki ID eksekusi unik yang digunakan untuk membuat folder bernama results/
dalam execution-id
results
direktori. Log grup pengujian individu berada di bawah results/
direktori. Gunakan keluaran konsol IDT untuk FreeRTOS untuk menemukan id eksekusi, id kasus uji, dan id grup uji dari kasus uji yang gagal lalu buka file log untuk kasus uji yang bernama. execution-id
/logsresults/
Informasi dalam file ini meliputi: execution-id
/logs/test_group_id
__test_case_id
.log
-
Output perintah build dan flash penuh.
-
Uji output eksekusi.
-
IDT lebih verbose untuk keluaran konsol FreeRTOS.
Kami merekomendasikan alur kerja berikut untuk pemecahan masalah:
-
Jika Anda melihat kesalahan "tidak
user/role
diizinkan untuk mengakses sumber daya ini”, pastikan Anda mengonfigurasi izin seperti yang ditentukan dalam. -
Baca output konsol untuk menemukan informasi, seperti eksekusi UUID dan tugas yang sedang dijalankan.
-
Lihat di
FRQ_Report.xml
file untuk pernyataan kesalahan dari setiap pengujian. Direktori ini berisi log eksekusi dari setiap kelompok uji. -
Lihat di file log di bawah
/results/
.execution-id
/logs -
Selidiki salah satu bidang masalah berikut:
-
Konfigurasi perangkat, seperti file konfigurasi JSON di
/configs/
folder. -
Antarmuka perangkat. Periksa log untuk menentukan antarmuka mana yang gagal.
-
Perkakas perangkat. Pastikan bahwa rantai alat untuk membangun dan mem-flash perangkat diinstal dan dikonfigurasi dengan benar.
-
Pastikan Anda memiliki versi kode sumber FreeRTOS yang bersih dan kloning. Rilis FreeRTOS ditandai sesuai dengan versi FreeRTOS. Untuk mengkloning versi kode tertentu, gunakan perintah berikut:
git clone --branch
version-number
https://github.com/aws/amazon-freertos.git cd amazon-freertos git submodule update --checkout --init --recursive
-
Mengatasi masalah konfigurasi perangkat
Ketika Anda menggunakan IDT untuk FreeRTOS, Anda harus mendapatkan file konfigurasi yang benar di tempat sebelum Anda menjalankan biner. Jika Anda mendapatkan kesalahan penguraian dan konfigurasi, langkah pertama Anda adalah menemukan dan menggunakan templat konfigurasi yang sesuai dengan lingkungan Anda. Template ini terletak di
direktori.IDT_ROOT
/configs
Jika Anda masih mengalami masalah, lihat proses debugging berikut.
Di mana saya melihat?
Mulailah dengan membaca output konsol untuk menemukan informasi, seperti eksekusi UUID, yang direferensikan seperti execution-id
dalam dokumentasi ini.
Selanjutnya, lihat FRQ_Report.xml
file di /results/
direktori. File ini berisi semua kasus uji yang dijalankan dan cuplikan kesalahan untuk setiap kegagalan. Untuk mendapatkan semua log eksekusi, cari file execution-id
/results/
untuk setiap kasus uji.execution-id
/logs/test_group_id
__test_case_id
.log
Kode kesalahan IDT
Tabel berikut menjelaskan kode kesalahan yang dihasilkan oleh IDT untuk FreeRTOS:
Kode Kesalahan | Nama Kode Kesalahan | Kemungkinan Akar Penyebab | Pemecahan Masalah |
---|---|---|---|
201 |
InvalidInputError |
Bidang dalam |
Pastikan bidang yang diperlukan tidak hilang dan dalam format wajib dalam file yang terdaftar. Untuk informasi selengkapnya, lihat Bersiap untuk menguji papan mikrokontroler Anda untuk pertama kalinya. |
202 |
ValidationError |
Bidang di |
Periksa pesan kesalahan di sisi kanan kode kesalahan dalam laporan:
|
203 |
CopySourceCodeError |
Tidak dapat menyalin kode sumber FreeRTOS ke direktori tertentu. |
Verifikasi item berikut:
|
204 |
BuildSourceError |
Tidak dapat mengkompilasi kode sumber FreeRTOS. |
Verifikasi item berikut:
|
205 |
FlashOrRunTestError |
IDT FreeRTOS tidak dapat mem-flash atau menjalankan FreeRTOS di DUT Anda. |
Verifikasi informasi |
206 |
StartEchoServerError |
IDT FreeRTOS tidak dapat memulai server gema untuk tes soket atau aman. WiFi |
Verifikasi port yang dikonfigurasi |
Kesalahan penguraian debugging
Kadang-kadang, eror ketik dalam konfigurasi JSON dapat menyebabkan penguraian eror. Sebagian besar waktu, masalahnya adalah akibat dari menghilangkan tanda kurung, koma, atau kutipan dari file JSON Anda. IDT untuk FreeRTOS melakukan validasi JSON dan mencetak informasi debugging. IDT mencetak garis di mana kesalahan terjadi, nomor baris, dan nomor kolom kesalahan sintaks. Informasi ini seharusnya cukup untuk membantu Anda memperbaiki kesalahan, tetapi jika Anda masih mengalami masalah dalam menemukan kesalahan, Anda dapat melakukan validasi secara manual di IDE Anda, editor teks seperti Atom atau Sublime, atau melalui alat online seperti. JSONLint
Kegagalan pemeriksaan integritas debugging
Ketika Anda menjalankan grup RTOSIntegrity uji Gratis dan Anda mengalami kegagalan, pertama-tama pastikan bahwa Anda belum memodifikasi file
direktori apa pun. Jika Anda belum, dan masih melihat masalah, pastikan Anda menggunakan cabang yang benar. Jika Anda menjalankan freertos
list-supported-products
perintah IDT, Anda dapat menemukan cabang
repo yang diberi tag mana yang harus Anda gunakan.freertos
Jika Anda mengkloning cabang freertos
repo yang diberi tag yang benar dan masih mengalami masalah, pastikan Anda juga menjalankan perintah. submodule update
Alur kerja klon untuk freertos
repo adalah sebagai berikut.
git clone --branch version-number https://github.com/aws/amazon-freertos.git cd amazon-freertos git submodule update --checkout —init —recursive
Daftar file yang dicari pemeriksa integritas ada di checksums.json
file di
direktori Anda. Untuk memenuhi syarat port FreeRTOS tanpa modifikasi apa pun pada file dan struktur folder, pastikan tidak ada file yang tercantum di bagian '' dan freertos
exhaustive
minimal
'' file yang telah dimodifikasi. checksums.json
Untuk menjalankan dengan SDK yang dikonfigurasi, verifikasi bahwa tidak ada file di bawah bagian 'minimal
' yang telah dimodifikasi.
Jika Anda menjalankan IDT dengan SDK dan telah memodifikasi beberapa file di
direktori Anda, pastikan Anda mengonfigurasi SDK dengan benar di file Anda. freertos
userdata
Jika tidak, pemeriksa Integritas akan memverifikasi semua file di
direktori.freertos
Kegagalan grup FullWiFi uji debugging
Jika Anda melihat kegagalan dalam grup FullWiFi pengujian, dan pengujian "AFQP_WiFiConnectMultipleAP
" gagal, ini bisa jadi karena kedua titik akses tidak berada di subnet yang sama dengan komputer host yang menjalankan IDT. Pastikan bahwa kedua titik akses berada di subnet yang sama dengan komputer host yang menjalankan IDT.
Mendebug kesalahan “parameter yang diperlukan hilang”
Karena fitur baru ditambahkan ke IDT untuk FreeRTOS, perubahan pada file konfigurasi mungkin diperkenalkan. Penggunaan file konfigurasi lama mungkin akan merusak konfigurasi Anda. Jika ini terjadi,
file di bawah test_group_id
__test_case_id
.logresults/
direktori secara eksplisit mencantumkan semua parameter yang hilang. IDT untuk FreeRTOS memvalidasi skema file konfigurasi JSON Anda untuk memastikan bahwa versi terbaru yang didukung telah digunakan.execution-id
/logs
Mendebug kesalahan “tidak dapat memulai pengujian”
Anda mungkin melihat kesalahan yang mengarah ke kegagalan selama pengujian dimulai. Karena ada beberapa kemungkinan penyebab, periksa area berikut untuk kebenaran:
-
Pastikan bahwa nama pool yang Anda sertakan dalam perintah eksekusi Anda benar-benar ada. Ini direferensikan langsung dari
device.json
file Anda. -
Pastikan perangkat atau perangkat di kolam Anda memiliki parameter konfigurasi yang benar.
Mendebug kesalahan “tidak diizinkan untuk mengakses sumber daya”
Anda mungkin melihat kesalahan "tidak user/role
diizinkan untuk mengakses sumber daya ini” di output terminal atau di test_manager.log
file di bawah/results/
. Untuk mengatasi masalah ini, lampirkan execution-id
/logsAWSIoTDeviceTesterForFreeRTOSFullAccess
kebijakan terkelola untuk pengguna pengetesan Anda. Untuk informasi selengkapnya, lihat .
Kesalahan pengujian jaringan debugging
Untuk pengujian berbasis jaringan, IDT memulai server gema yang mengikat ke port yang tidak dicadangkan pada mesin host. Jika Anda mengalami kesalahan karena batas waktu atau koneksi yang tidak tersedia dalam pengujian soket WiFi atau aman, pastikan jaringan Anda dikonfigurasi untuk memungkinkan lalu lintas ke port yang dikonfigurasi dalam rentang 1024 - 49151.
Tes soket aman menggunakan port 33333 dan 33334 secara default. WiFi Tes menggunakan port 33335 secara default. Jika ketiga port ini sedang digunakan atau diblokir oleh firewall atau jaringan, Anda dapat memilih untuk menggunakan port yang berbeda di userdata.json untuk pengujian. Untuk informasi selengkapnya, lihat Konfigurasikan pengaturan build, flash, dan uji. Anda dapat menggunakan perintah berikut untuk memeriksa apakah port tertentu sedang digunakan:
-
Windows:
netsh advfirewall firewall show rule name=all | grep port
-
Linux:
sudo netstat -pan | grep port
-
macOS:
netstat -nat | grep port
Kegagalan Pembaruan OTA karena payload versi yang sama
Jika kasus pengujian OTA gagal karena versi yang sama ada di perangkat setelah OTA dilakukan, itu mungkin karena sistem build Anda (misalnya cmake) tidak memperhatikan perubahan IDT pada kode sumber FreeRTOS dan tidak membangun biner yang diperbarui. Hal ini menyebabkan OTA dilakukan dengan biner yang sama yang saat ini ada di perangkat, dan pengujian gagal. Untuk mengatasi masalah kegagalan pembaruan OTA, mulailah dengan memastikan bahwa Anda menggunakan versi terbaru yang didukung dari sistem build Anda.
Kegagalan uji OTA pada kasus PresignedUrlExpired
uji
Salah satu prasyarat dari tes ini adalah bahwa waktu pembaruan OTA harus lebih dari 60 detik, jika tidak pengujian akan gagal. Jika ini terjadi, pesan kesalahan berikut ditemukan di log: “Tes membutuhkan waktu kurang dari 60 detik (waktu kedaluwarsa url) untuk selesai. Silakan hubungi kami.”
Mendebug antarmuka perangkat dan kesalahan port
Bagian ini berisi informasi tentang antarmuka perangkat yang digunakan IDT untuk terhubung ke perangkat Anda.
Platform yang didukung
IDT mendukung Linux, macOS, dan Windows. Ketiga platform memiliki skema penamaan yang berbeda untuk perangkat serial yang melekat padanya:
-
Linux:
/dev/tty*
-
macOS: atau
/dev/tty.*
/dev/cu.*
-
Jendela: COM*
Untuk memeriksa port perangkat Anda:
-
Untuk Linux/macOS, buka terminal dan jalankan.
ls /dev/tty*
-
Untuk macOS, buka terminal dan jalankan
ls /dev/tty.*
atau.ls /dev/cu.*
-
Untuk Windows, buka Device Manager dan perluas grup perangkat serial.
Untuk memverifikasi perangkat mana yang terhubung ke port:
-
Untuk Linux, pastikan bahwa
udev
paket diinstal, dan kemudian jalankanudevadm info –name=
. Utilitas ini mencetak informasi driver perangkat yang membantu Anda memverifikasi bahwa Anda menggunakan port yang benar.PORT
-
Untuk macOS, buka Launchpad dan cari.
System Information
-
Untuk Windows, buka Device Manager dan perluas grup perangkat serial.
Antarmuka perangkat
Setiap perangkat yang disematkan berbeda, yang berarti mereka dapat memiliki satu atau lebih port serial. Adalah umum bagi perangkat untuk memiliki dua port saat terhubung ke mesin:
-
Port data untuk mem-flash perangkat.
-
Port baca untuk membaca output.
Anda harus mengatur port baca yang benar di
device.json
file Anda. Jika tidak, membaca output dari perangkat mungkin gagal.Dalam kasus beberapa port, pastikan untuk menggunakan port baca perangkat di
device.json
file Anda. Misalnya, jika Anda mencolokkan WRover perangkat Espressif dan dua port yang ditetapkan padanya adalah/dev/ttyUSB0
dan/dev/ttyUSB1
, gunakan/dev/ttyUSB1
dalam file Andadevice.json
.Untuk Windows, ikuti logika yang sama.
Membaca data perangkat
IDT untuk FreeRTOS menggunakan build perangkat individual dan perkakas flash untuk menentukan konfigurasi port. Jika Anda menguji perangkat Anda dan tidak mendapatkan output, coba pengaturan default berikut:
-
Tingkat baud: 115200
-
Bit data: 8
-
Paritas: Tidak ada
-
Hentikan bit: 1
-
Kontrol aliran: Tidak ada
Pengaturan ini ditangani oleh IDT untuk FreeRTOS. Anda tidak harus mengaturnya. Namun, Anda dapat menggunakan metode yang sama untuk membaca output perangkat secara manual. Di Linux atau macOS, Anda dapat melakukan ini dengan perintah. screen
Di Windows, Anda dapat menggunakan program seperti TeraTerm.
Screen: screen /dev/cu.usbserial 115200
TeraTerm: Use the above-provided settings to set the fields explicitly in the GUI.
Masalah rantai alat pengembangan
Bagian ini membahas masalah yang dapat terjadi dengan toolchain Anda.
Code Composer Studio di Ubuntu
Versi Ubuntu yang lebih baru (17.10 dan 18.04) memiliki versi glibc
paket yang tidak kompatibel dengan Code Composer Studio 7. x versi. Kami menyarankan Anda menginstal Code Composer Studio versi 8.2 atau yang lebih baru.
Gejala ketidakcocokan mungkin termasuk:
-
FreeRTOS gagal membangun atau mem-flash ke perangkat Anda.
-
Penginstal Code Composer Studio mungkin membeku.
-
Tidak ada output log yang ditampilkan di konsol selama proses build atau flash.
-
Build command mencoba untuk meluncurkan dalam mode GUI bahkan ketika dipanggil sebagai headless.
Pencatatan log
IDT untuk log FreeRTOS ditempatkan di satu lokasi. Dari direktori root IDT, file-file ini tersedia di bawahresults/
:execution-id
/
-
FRQ_Report.xml
-
awsiotdevicetester_report.xml
-
logs/
test_group_id
__test_case_id
.log
FRQ_Report.xml
dan logs/
merupakan log yang paling penting untuk diperiksa. test_group_id
__test_case_id
.logFRQ_Report.xml
berisi informasi tentang kasus uji mana yang gagal dengan pesan kesalahan tertentu. Anda kemudian dapat menggunakan logs/
untuk menggali lebih jauh ke dalam masalah untuk mendapatkan konteks yang lebih baik. test_group_id
__test_case_id
.log
Kesalahan konsol
Saat AWS IoT Device Tester dijalankan, kegagalan dilaporkan ke konsol dengan pesan singkat. Lihat results/
untuk mempelajari lebih lanjut tentang kesalahan.execution-id
/logs/test_group_id
__test_case_id
.log
Kesalahan log
Setiap eksekusi test suite memiliki ID eksekusi unik yang digunakan untuk membuat folder bernamaresults/
. Log kasus uji individu berada di bawah execution-id
results/
direktori. Gunakan output konsol IDT untuk FreeRTOS untuk menemukan id eksekusi, id kasus uji, dan id grup uji kasus uji yang gagal. Kemudian gunakan informasi ini untuk menemukan dan membuka file log untuk kasus uji yang bernama execution-id
/logsresults/
Informasi dalam file ini mencakup output perintah build dan flash penuh, output eksekusi pengujian, dan lebih banyak keluaran AWS IoT Device Tester konsol verbose.execution-id
/logs/test_group_id
__test_case_id
.log
Masalah bucket S3
Jika Anda menekan CTRL+C saat menjalankan IDT, IDT akan memulai proses pembersihan. Bagian dari pembersihan itu adalah menghapus sumber daya Amazon S3 yang telah dibuat sebagai bagian dari pengujian IDT. Jika pembersihan tidak dapat diselesaikan, Anda mungkin mengalami masalah di mana Anda memiliki terlalu banyak bucket Amazon S3 yang telah dibuat. Ini berarti lain kali Anda menjalankan IDT pengujian akan mulai gagal.
Jika Anda menekan CTRL+C untuk menghentikan IDT, Anda harus membiarkannya menyelesaikan proses pembersihan untuk menghindari masalah ini. Anda juga dapat menghapus bucket Amazon S3 dari akun Anda yang dibuat secara manual.
Memecahkan masalah kesalahan batas waktu
Jika Anda melihat kesalahan batas waktu saat menjalankan rangkaian pengujian, tingkatkan batas waktu dengan menentukan faktor pengganda batas waktu. Faktor ini diterapkan ke nilai batas waktu default. Nilai apa pun yang dikonfigurasi untuk bendera ini harus lebih besar dari atau sama dengan 1.0. Untuk menggunakan pengganda batas waktu, gunakan tanda --timeout-multiplier
saat menjalankan rangkaian pengujian.
Fitur seluler dan AWS biaya
Ketika Cellular
fitur diatur ke Yes
dalam device.JSON
file Anda, FullSecureSockets akan menggunakan EC2 instans t.micro untuk menjalankan pengujian dan ini dapat menimbulkan biaya tambahan ke akun Anda. AWS Untuk informasi lebih lanjut, lihat harga Amazon EC2
Kebijakan pembuatan laporan kualifikasi
Laporan kualifikasi hanya dihasilkan oleh versi AWS IoT Device Tester (IDT) yang mendukung versi FreeRTOS yang dirilis dalam dua tahun terakhir. Jika Anda memiliki pertanyaan tentang kebijakan dukungan, silakan hubungi AWS Dukungan