Porting Antarmuka Transportasi Jaringan - Gratis RTOS

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

Porting Antarmuka Transportasi Jaringan

Mengintegrasikan pustaka TLS

Untuk autentikasi Keamanan Lapisan Pengangkutan (TLS) yang Anda sukai. Kami merekomendasikan menggunakanTLS Mbedkarena diuji dengan pustaka FreeRTOS. Anda dapat menemukan contoh ini di iniGitHubrepositori.

Terlepas dari implementasi TLS yang digunakan oleh perangkat Anda, Anda harus mengimplementasikan kait transport yang mendasarinya untuk tumpukan TLS dengan tumpukan TCP/IP. Mereka harus mendukungTLS cipher suite yang didukung olehAWS IoT.

Mem-porting perpustakaan Antarmuka Transportasi Jaringan

Anda harus menerapkan antarmuka transportasi jaringan untuk digunakanCoreMQTTdanCoreHTTP. Network Transport Interface berisi pointer fungsi dan data konteks yang diperlukan untuk mengirim dan menerima data pada satu koneksi jaringan. LihatAntarmuka Pengangkutanuntuk lebih jelasnya. FreeRTOS menyediakan serangkaian pengujian antarmuka transportasi jaringan bawaan untuk memvalidasi implementasi ini. Bagian berikut memandu Anda cara menyiapkan proyek Anda untuk menjalankan pengujian ini.

Prasyarat

Untuk mem-port tes ini, Anda memerlukan yang berikut:

  • Proyek dengan sistem build yang dapat membangun FreerTOS dengan port kernel FreerTOS yang divalidasi.

  • Implementasi kerja driver jaringan.

Porting

  • MenambahkanFreertos-perpustakaan-integrasi-tessebagai submodul ke dalam proyek Anda. Tidak masalah di mana submodul ditempatkan dalam proyek, selama itu dapat dibangun.

  • Salinconfig_template/test_execution_config_template.hdanconfig_template/test_param_config_template.hke lokasi proyek di jalur build, dan ganti namanya menjaditest_execution_config.hdantest_param_config.h.

  • Sertakan file yang relevan ke dalam sistem build. Jika menggunakanCMake,qualification_test.cmakedansrc/transport_interface_tests.cmakedigunakan untuk memasukkan file yang relevan.

  • Menerapkan fungsi-fungsi berikut di lokasi proyek yang sesuai:

    • SEBUAHnetwork connect function: Tanda tangan didefinisikan olehNetworkConnectFuncdisrc/common/network_connection.h. Fungsi ini mengambil pointer ke konteks jaringan, pointer untuk meng-host info, dan pointer ke kredensyal jaringan. Ini membuat koneksi dengan server yang ditentukan dalam info host dengan kredensyal jaringan yang disediakan.

    • SEBUAHnetwork disconnect function: Tanda tangan didefinisikan olehNetworkDisconnectFuncdisrc/common/network_connection.h. Fungsi ini mengambil pointer ke konteks jaringan. Ini memutus koneksi yang dibuat sebelumnya yang disimpan dalam konteks jaringan.

    • setupTransportInterfaceTestParam(): Ini didefinisikan dalamsrc/transport_interface/transport_interface_tests.h. Implementasi harus memiliki nama dan tanda tangan yang persis sama seperti yang didefinisikan dalamtransport_interface_tests.h. Fungsi ini mengambil pointer ke aTransportInterfaceTestParamstruct. Ini akan mengisi bidang diTransportInterfaceTestParamstruct yang digunakan oleh uji antarmuka transportasi.

  • MelaksanakanUNITY_OUTPUT_CHARsehingga log keluaran pengujian tidak saling terkait dengan log perangkat.

  • PanggilanrunQualificationTest()dari aplikasi. Perangkat keras perangkat harus diinisialisasi dengan benar dan jaringan harus terhubung sebelum panggilan.

Manajemen kredensyal (kunci yang dihasilkan di perangkat)

KapanFORCE_GENERATE_NEW_KEY_PAIRditest_param_config.hdiatur ke 1, aplikasi perangkat menghasilkan key pair di perangkat baru dan mengeluarkan kunci publik. Aplikasi perangkat menggunakanECHO_SERVER_ROOT_CAdanTRANSPORT_CLIENT_CERTIFICATEsebagai echo server root CA dan sertifikat klien saat membuat koneksi TLS dengan server echo. IDT menetapkan parameter ini selama kualifikasi berjalan.

Manajemen Kredensyal (kunci impor)

Aplikasi perangkat menggunakanECHO_SERVER_ROOT_CA,TRANSPORT_CLIENT_CERTIFICATEdanTRANSPORT_CLIENT_PRIVATE_KEYditest_param_config.hsebagai echo server root CA, sertifikat klien, dan kunci pribadi klien saat membuat koneksi TLS dengan server echo. IDT menetapkan parameter ini selama kualifikasi berjalan.

Pengujian

Bagian ini menjelaskan bagaimana Anda dapat menguji antarmuka transportasi secara lokal dengan tes kualifikasi. Detail tambahan dapat ditemukan di file README.md yang disediakan ditransport_interfacebagian dari FreerTOS-Libraries-Integration-Tests pada GitHub.

Atau, Anda juga dapat menggunakan IDT untuk mengotomatisasi eksekusi. LihatAWS IoT Device Testeruntuk FreeRTOSdiPanduan Pengguna FreeRTOSuntuk detailnya.

Aktifkan tes

Bukatest_execution_config.hdan mendefinisikanTRANSPORT_INTERFACE_TEST_ENABLEDke 1.

Siapkan server gema untuk pengujian

Server gema yang dapat diakses dari perangkat yang menjalankan pengujian diperlukan untuk pengujian lokal. Server echo harus mendukung TLS jika implementasi antarmuka transport mendukung TLS. Jika Anda belum memilikinya,Freertos-perpustakaan-integrasi-tes GitHub repositori memiliki implementasi server echo.

Mengkonfigurasi proyek untuk pengujian

Ditest_param_config.h, perbaruiECHO_SERVER_TITIK AKHIRdanECHO_SERVER_PORTke pengaturan titik akhir dan server pada langkah sebelumnya.

Menyiapkan kredensyal (kunci yang dihasilkan di perangkat)

  • SetECHO_SERVER_ROOT_CAke sertifikat server server echo.

  • SetFORCE_GENERATE_NEW_KEY_PAIRke 1 untuk menghasilkan key pair dan mendapatkan kunci publik.

  • SetFORCE_GENERATE_NEW_KEY_PAIRkembali ke 0 setelah pembuatan kunci.

  • Pengguna kunci publik dan kunci server dan sertifikat untuk menghasilkan sertifikat klien.

  • SetTRANSPORT_CLIENT_CERTIFICATEke sertifikat klien yang dihasilkan.

Siapkan kredensyal (kunci impor)

  • SetECHO_SERVER_ROOT_CAke sertifikat server server echo.

  • SetTRANSPORT_CLIENT_CERTIFICATEke sertifikat klien yang dibuat sebelumnya.

  • SetTRANSPORT_CLIENT_PRIVATE_KEYke kunci pribadi klien yang dibuat sebelumnya.

Membangun dan mem-flash aplikasi

Bangun dan flash aplikasi menggunakan rantai alat pilihan Anda. KapanrunQualificationTest()dipanggil, tes antarmuka transport akan berjalan. Hasil pengujian yang dikeluarkan ke port serial.

catatan

Untuk secara resmi memenuhi syarat perangkat untuk FreeRTOS, Anda harus memvalidasi kode sumber porting perangkat terhadap grup uji OTA PAL dan OTA E2E denganAWS IoT Device Tester. Ikuti instruksi diMenggunakanAWS IoT Device Testeruntuk FreeRTOSdiPanduan Pengguna FreeRTOSuntuk mengaturAWS IoT Device Testeruntuk validasi port. Untuk menguji port pustaka tertentu, grup pengujian yang benar harus diaktifkan didevice.jsonberkas diAWS IoT Device Tester configsfolder.