Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Unduh, buat, flash, dan jalankan demo FreerTOS OTA di Renesas RX65N
penting
Integrasi referensi ini di-host di repositori Amazon-Freertos yang tidak digunakan lagi. Kami menyarankan Anda mulai di sini ketika Anda membuat proyek baru. Jika Anda sudah memiliki proyek FreeRTOS yang sudah ada berdasarkan repositori Amazon-Freertos yang sekarang tidak digunakan lagi, lihat. Panduan Migrasi Repositori RTOS Github Bebas Amazon
Bab ini menunjukkan caranya mengunduh, membangun, mem-flash, dan menjalankan aplikasi demo FreerTOS OTA di Renesas RX65N.
Topik
Siapkan lingkungan operasi Anda
Prosedur di bagian ini menggunakan lingkungan berikut:
-
IDE: 2 studio 7.8.0, dan 2 studio 2020-07
-
Rantai Alat: CCRX Compiler v3.0.1
-
Perangkat target: RSKRX65N-2MB
-
Debugger: E 2, E 2 Lite emulator
-
Perangkat lunak: Renesas Flash Programmer, Renesas Secure Flash Programmer.exe, Tera Term
Untuk mengatur perangkat keras Anda
-
Hubungkan emulator E 2 Lite dan port serial USB ke papan RX65N dan PC Anda.
-
Hubungkan sumber daya ke RX65N.
Siapkan AWS sumber daya Anda
-
Untuk menjalankan demo FreeRTOS, Anda harus memiliki akun dengan pengguna IAM AWS yang memiliki izin untuk mengakses layanan. AWS IoT Jika Anda belum melakukannya, ikuti langkah-langkahnyaMenyiapkan AWS akun dan izin.
-
Untuk mengatur pembaruan OTA, ikuti langkah-langkahnyaOTAmemperbarui prasyarat. Secara khusus, ikuti langkah-langkahnyaPrasyarat untuk pembaruan menggunakan OTA MQTT.
-
Buka konsol AWS IoT
. -
Di panel navigasi kiri, pilih Kelola, lalu pilih Things to create a thing.
Sesuatu adalah representasi dari perangkat atau entitas logis di AWS IoT. Ini bisa berupa perangkat fisik atau sensor (misalnya, bola lampu atau sakelar di dinding). Ini juga bisa menjadi entitas logis seperti contoh aplikasi atau entitas fisik yang tidak terhubung AWS IoT, tetapi terkait dengan perangkat yang melakukannya (misalnya, mobil yang memiliki sensor mesin atau panel kontrol). AWS IoT menyediakan registri sesuatu yang membantu Anda mengelola barang-barang Anda.
-
Pilih Buat, lalu pilih Buat satu hal.
-
Masukkan Nama untuk barang Anda, lalu pilih Berikutnya.
-
Pilih Buat sertifikat.
-
Unduh tiga file yang dibuat dan kemudian pilih Aktifkan.
-
Pilih Lampirkan kebijakan.
-
Pilih kebijakan yang Anda buatKebijakan perangkat.
Setiap perangkat yang menerima pembaruan OTA menggunakan MQTT harus terdaftar sebagai sesuatu AWS IoT dan benda tersebut harus memiliki kebijakan terlampir seperti yang terdaftar. Anda dapat menemukan informasi selengkapnya tentang item dalam
"Action"
dan"Resource"
objek di AWS IoT Core Policy Actions dan AWS IoT Core Action Resources.Catatan
-
iot:Connect
Izin memungkinkan perangkat Anda terhubung AWS IoT melalui MQTT. -
iot:Publish
Iziniot:Subscribe
dan pada topik AWS IoT pekerjaan (.../jobs/*
) memungkinkan perangkat yang terhubung untuk menerima pemberitahuan pekerjaan dan dokumen pekerjaan, dan untuk mempublikasikan status penyelesaian pelaksanaan pekerjaan. -
iot:Publish
Iziniot:Subscribe
dan tentang topik aliran AWS IoT OTA (.../streams/*
) memungkinkan perangkat yang terhubung untuk mengambil data pembaruan OTA dari. AWS IoT Izin ini diperlukan untuk melakukan pembaruan firmware melalui MQTT. -
iot:Receive
Izin memungkinkan AWS IoT Core untuk mempublikasikan pesan tentang topik tersebut ke perangkat yang terhubung. Izin ini diperiksa pada setiap pengiriman pesan MQTT. Anda dapat menggunakan izin ini untuk mencabut akses ke klien yang saat ini berlangganan topik.
-
-
-
Untuk membuat profil penandatanganan kode dan mendaftarkan sertifikat penandatanganan kode pada. AWS
-
Buka konsol AWS IoT
. Di panel navigasi kiri, pilih Kelola, lalu Pekerjaan. Pilih Create a job lalu Create OTA update Job. -
Di bawah Pilih perangkat yang akan diperbarui pilih Pilih lalu pilih hal yang Anda buat sebelumnya. Pilih Selanjutnya.
-
Pada halaman pekerjaan Create a FreeRTOS OTA update, lakukan hal berikut:
-
Untuk Pilih protokol untuk transfer gambar firmware, pilih MQTT.
-
Untuk Pilih dan tandatangani gambar firmware Anda, pilih Tanda tangani gambar firmware baru untuk saya.
-
Untuk profil penandatanganan kode, pilih Buat.
-
Di jendela Buat profil penandatanganan kode, masukkan nama Profil. Untuk platform perangkat keras perangkat pilih Windows Simulator. Untuk sertifikat penandatanganan kode pilih Impor.
-
Telusuri untuk memilih sertifikat (
secp256r1.crt
), kunci privat sertifikat (secp256r1.key
), dan rantai sertifikat (ca.crt
). -
Masukkan Pathname sertifikat penandatanganan kode di perangkat. Lalu pilih Buat.
-
-
Untuk memberikan akses ke penandatanganan kode AWS IoT, ikuti langkah-langkahnyaBerikan akses ke penandatanganan kode untuk AWS IoT.
Jika Tera Term tidak diinstal pada PC Anda, Anda dapat mengunduhnya dari https://ttssh2.osdn.jp/index.html.en
Impor, konfigurasikan file header dan buat aws_demos dan boot_loader
Untuk memulai, Anda memilih versi terbaru dari paket FreerTOS, dan ini akan diunduh GitHub dari dan diimpor secara otomatis ke proyek. Dengan cara ini Anda dapat fokus pada konfigurasi FreeRTOS dan menulis kode aplikasi.
-
Luncurkan e 2 studio.
-
Pilih File, lalu pilih Impor...
-
Pilih Proyek Renesas FreeRTOS (dengan GitHub pustaka IoT).
-
Pilih Periksa versi lainnya... untuk menampilkan kotak dialog unduhan.
-
Pilih paket terbaru.
-
Pilih Setuju untuk menerima perjanjian lisensi pengguna akhir.
-
Tunggu hingga unduhan selesai.
-
Pilih proyek aws_demos dan boot_loader, lalu pilih Selesai untuk mengimpornya.
-
Untuk kedua proyek, buka properti proyek. Di panel navigasi, pilih Tool Chain Editor.
-
Pilih toolchain saat ini.
-
Pilih pembangun saat ini.
-
-
Pada panel navigasi, silakan pilih Pengaturan. Pilih tab Toolchain, lalu pilih Versi toolchain.
Pilih tab Pengaturan Alat, perluas Konverter dan kemudian pilih Output. Di jendela utama, pastikan Output hex file dipilih, dan kemudian pilih jenis file Output.
-
Dalam proyek bootloader, buka
projects\renesas\rx65n-rsk\e2studio\boot_loader\src\key\code_signer_public_key.h
dan masukkan kunci publik. Untuk informasi tentang cara membuat kunci publik, lihat Cara menerapkan FreeRTOS OTA dengan menggunakan Amazon Web Services di RX65N dan bagian 7.3 “Menghasilkan Pasangan Kunci ECDSA-SHA256 dengan OpenSSL” diKebijakan Desain Pembaruan Firmware MCU Renesas. Kemudian bangun proyek untuk dibuat
boot_loader.mot
. -
Buka
aws_demos
proyek.-
Buka konsol AWS IoT
. -
Pada panel navigasi kiri, pilih Pengaturan. Catat titik akhir kustom Anda di kotak teks titik akhir data Perangkat.
-
Pilih Kelola, lalu pilih Things. Catat nama AWS IoT benda papan Anda.
-
Dalam
aws_demos
proyek, bukademos/include/aws_clientcredential.h
dan tentukan nilai-nilai berikut.#define clientcredentialMQTT_BROKER_ENDPOINT[] = "
Your AWS IoT endpoint
"; #define clientcredentialIOT_THING_NAME "The AWS IoT thing name of your board
" -
Buka file
tools/certificate_configuration/CertificateConfigurator.html
. -
Impor file PEM sertifikat dan file PEM Kunci Pribadi yang Anda unduh sebelumnya.
-
Pilih Generate dan save aws_clientcredential_keys.h dan ganti file ini di direktori.
demos/include/
-
Buka
vendors/renesas/boards/rx65n-rsk/aws_demos/config_files/ota_demo_config.h
file, dan tentukan nilai-nilai ini.#define otapalconfigCODE_SIGNING_CERTIFICATE [] = "
your-certificate-key
";Di mana
kunci-sertifikat Anda adalah nilai
dari file.secp256r1.crt
Ingatlah untuk menambahkan “\” setelah setiap baris dalam sertifikasi. Untuk informasi selengkapnya tentang membuatsecp256r1.crt
file, lihat Cara menerapkan FreeRTOS OTA dengan menggunakan Amazon Web Services diRX65N dan bagian 7.3 “Menghasilkan Pasangan Kunci ECDSA-SHA256 dengan OpenSSL” di Kebijakan Desain Pembaruan Firmware MCU Renesas.
-
-
Tugas A: Instal versi awal firmware
-
Buka
vendors/renesas/boards/board/aws_demos/config_files/aws_demo_config.h
file, beri komentar#define CONFIG_CORE_MQTT_MUTUAL_AUTH_DEMO_ENABLED
, dan tentukan salah satuCONFIG_OTA_MQTT_UPDATE_DEMO_ENABLED
atauCONFIG_OTA_HTTP_UPDATE_DEMO_ENABLED
. -
Buka
demos/include/ aws_application_version.h
file, dan atur versi awal firmware ke0.9.2
. -
Ubah pengaturan berikut di Penampil Bagian.
-
Pilih Build untuk membuat
aws_demos.mot
file.
-
-
Buat file
userprog.mot
dengan Renesas Secure Flash Programmer.userprog.mot
adalah kombinasi dariaws_demos.mot
danboot_loader.mot
. Anda dapat mem-flash file ini ke RX65N-RSK untuk menginstal firmware awal.-
Unduh https://github.com/renesas/Amazon-FreeRTOS-Tools
dan buka Renesas Secure Flash Programmer.exe
. -
Pilih tab Firm Awal dan kemudian atur parameter berikut:
-
Private Key Path — Lokasi
secp256r1.privatekey
. -
Jalur File Boot Loader — Lokasi
boot_loader.mot
(projects\renesas\rx65n-rsk\e2studio\boot_loader\HardwareDebug
). -
File Path — Lokasi dari
aws_demos.mot
(projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug
).
-
-
Buat direktori bernama
init_firmware
, Hasilkanuserprog.mot
, dan simpan keinit_firmware
direktori. Verifikasi bahwa hasil berhasil.
-
-
Flash firmware awal pada RX65N-RSK.
-
Buka
vendors\renesas\rx_mcu_boards\boards\rx65n-rsk\aws_demos\flash_project\erase_from_bank\ erase.rpj
file untuk menghapus data di bank. -
Pilih Mulai untuk menghapus bank.
-
Untuk mem-flash
userprog.mot
, pilih Browse... dan navigasikan keinit_firmware
direktori, pilihuserprog.mot
file dan pilih Mulai.
-
Versi 0.9.2 (versi awal) firmware diinstal ke RX65N-RSK Anda. Papan RX65N-RSK sekarang mendengarkan pembaruan OTA. Jika Anda telah membuka Tera Term di PC Anda, Anda melihat sesuatu seperti berikut ketika firmware awal berjalan.
------------------------------------------------- RX65N secure boot program ------------------------------------------------- Checking flash ROM status. bank 0 status = 0xff [LIFECYCLE_STATE_BLANK] bank 1 status = 0xfc [LIFECYCLE_STATE_INSTALLING] bank info = 1. (start bank = 0) start installing user program. copy secure boot (part1) from bank0 to bank1...OK copy secure boot (part2) from bank0 to bank1...OK update LIFECYCLE_STATE from [LIFECYCLE_STATE_INSTALLING] to [LIFECYCLE_STATE_VALID] bank1(temporary area) block0 erase (to update LIFECYCLE_STATE)...OK bank1(temporary area) block0 write (to update LIFECYCLE_STATE)...OK swap bank... ------------------------------------------------- RX65N secure boot program ------------------------------------------------- Checking flash ROM status. bank 0 status = 0xf8 [LIFECYCLE_STATE_VALID] bank 1 status = 0xff [LIFECYCLE_STATE_BLANK] bank info = 0. (start bank = 1) integrity check scheme = sig-sha256-ecdsa bank0(execute area) on code flash integrity check...OK jump to user program 0 1 [ETHER_RECEI] Deferred Interrupt Handler Task started 1 1 [ETHER_RECEI] Network buffers: 3 lowest 3 2 1 [ETHER_RECEI] Heap: current 234192 lowest 234192 3 1 [ETHER_RECEI] Queue space: lowest 8 4 1 [IP-task] InitializeNetwork returns OK 5 1 [IP-task] xNetworkInterfaceInitialise returns 0 6 101 [ETHER_RECEI] Heap: current 234592 lowest 233392 7 2102 [ETHER_RECEI] prvEMACHandlerTask: PHY LS now 1 8 3001 [IP-task] xNetworkInterfaceInitialise returns 1 9 3092 [ETHER_RECEI] Network buffers: 2 lowest 2 10 3092 [ETHER_RECEI] Queue space: lowest 7 11 3092 [ETHER_RECEI] Heap: current 233320 lowest 233320 12 3193 [ETHER_RECEI] Heap: current 233816 lowest 233120 13 3593 [IP-task] vDHCPProcess: offer c0a80a09ip 14 3597 [ETHER_RECEI] Heap: current 233200 lowest 233000 15 3597 [IP-task] vDHCPProcess: offer c0a80a09ip 16 3597 [IP-task] IP Address: 192.168.10.9 17 3597 [IP-task] Subnet Mask: 255.255.255.0 18 3597 [IP-task] Gateway Address: 192.168.10.1 19 3597 [IP-task] DNS Server Address: 192.168.10.1 20 3600 [Tmr Svc] The network is up and running 21 3622 [Tmr Svc] Write certificate... 22 3697 [ETHER_RECEI] Heap: current 232320 lowest 230904 23 4497 [ETHER_RECEI] Heap: current 226344 lowest 225944 24 5317 [iot_thread] [INFO ][DEMO][5317] ---------STARTING DEMO--------- 25 5317 [iot_thread] [INFO ][INIT][5317] SDK successfully initialized. 26 5317 [iot_thread] [INFO ][DEMO][5317] Successfully initialized the demo. Network type for the demo: 4 27 5317 [iot_thread] [INFO ][MQTT][5317] MQTT library successfully initialized. 28 5317 [iot_thread] [INFO ][DEMO][5317] OTA demo version 0.9.2 29 5317 [iot_thread] [INFO ][DEMO][5317] Connecting to broker... 30 5317 [iot_thread] [INFO ][DEMO][5317] MQTT demo client identifier is rx65n-gr-rose (length 13). 31 5325 [ETHER_RECEI] Heap: current 206944 lowest 206504 32 5325 [ETHER_RECEI] Heap: current 206440 lowest 206440 33 5325 [ETHER_RECEI] Heap: current 206240 lowest 206240 38 5334 [ETHER_RECEI] Heap: current 190288 lowest 190288 39 5334 [ETHER_RECEI] Heap: current 190088 lowest 190088 40 5361 [ETHER_RECEI] Heap: current 158512 lowest 158168 41 5363 [ETHER_RECEI] Heap: current 158032 lowest 158032 42 5364 [ETHER_RECEI] Network buffers: 1 lowest 1 43 5364 [ETHER_RECEI] Heap: current 156856 lowest 156856 44 5364 [ETHER_RECEI] Heap: current 156656 lowest 156656 46 5374 [ETHER_RECEI] Heap: current 153016 lowest 152040 47 5492 [ETHER_RECEI] Heap: current 141464 lowest 139016 48 5751 [ETHER_RECEI] Heap: current 140160 lowest 138680 49 5917 [ETHER_RECEI] Heap: current 138280 lowest 138168 59 7361 [iot_thread] [INFO ][MQTT][7361] Establishing new MQTT connection. 62 7428 [iot_thread] [INFO ][MQTT][7428] (MQTT connection 81cfc8, CONNECT operation 81d0e8) Wait complete with result SUCCESS. 63 7428 [iot_thread] [INFO ][MQTT][7428] New MQTT connection 4e8c established. 64 7430 [iot_thread] [OTA_AgentInit_internal] OTA Task is Ready. 65 7430 [OTA Agent T] [prvOTAAgentTask] Called handler. Current State [Ready] Event [Start] New state [RequestingJob] 66 7431 [OTA Agent T] [INFO ][MQTT][7431] (MQTT connection 81cfc8) SUBSCRIBE operation scheduled. 67 7431 [OTA Agent T] [INFO ][MQTT][7431] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Waiting for operation completion. 68 7436 [ETHER_RECEI] Heap: current 128248 lowest 127992 69 7480 [OTA Agent T] [INFO ][MQTT][7480] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Wait complete with result SUCCESS. 70 7480 [OTA Agent T] [prvSubscribeToJobNotificationTopics] OK: $aws/things/rx65n-gr-rose/jobs/$next/get/accepted 71 7481 [OTA Agent T] [INFO ][MQTT][7481] (MQTT connection 81cfc8) SUBSCRIBE operation scheduled. 72 7481 [OTA Agent T] [INFO ][MQTT][7481] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Waiting for operation completion. 73 7530 [OTA Agent T] [INFO ][MQTT][7530] (MQTT connection 81cfc8, SUBSCRIBE operation 818c48) Wait complete with result SUCCESS. 74 7530 [OTA Agent T] [prvSubscribeToJobNotificationTopics] OK: $aws/things/rx65n-gr-rose/jobs/notify-next 75 7530 [OTA Agent T] [prvRequestJob_Mqtt] Request #0 76 7532 [OTA Agent T] [INFO ][MQTT][7532] (MQTT connection 81cfc8) MQTT PUBLISH operation queued. 77 7532 [OTA Agent T] [INFO ][MQTT][7532] (MQTT connection 81cfc8, PUBLISH operation 818b80) Waiting for operation completion. 78 7552 [OTA Agent T] [INFO ][MQTT][7552] (MQTT connection 81cfc8, PUBLISH operation 818b80) Wait complete with result SUCCESS. 79 7552 [OTA Agent T] [prvOTAAgentTask] Called handler. Current State [RequestingJob] Event [RequestJobDocument] New state [WaitingForJob] 80 7552 [OTA Agent T] [prvParseJSONbyModel] Extracted parameter [ clientToken: 0:rx65n-gr-rose ] 81 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: execution 82 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: jobId 83 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: jobDocument 84 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: afr_ota 85 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: protocols 86 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: files 87 7552 [OTA Agent T] [prvParseJSONbyModel] parameter not present: filepath 99 7651 [ETHER_RECEI] Heap: current 129720 lowest 127304 100 8430 [iot_thread] [INFO ][DEMO][8430] State: Ready Received: 1 Queued: 0 Processed: 0 Dropped: 0 101 9430 [iot_thread] [INFO ][DEMO][9430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 102 10430 [iot_thread] [INFO ][DEMO][10430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 103 11430 [iot_thread] [INFO ][DEMO][11430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 104 12430 [iot_thread] [INFO ][DEMO][12430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 105 13430 [iot_thread] [INFO ][DEMO][13430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 106 14430 [iot_thread] [INFO ][DEMO][14430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0 107 15430 [iot_thread] [INFO ][DEMO][15430] State: WaitingForJob Received: 1 Queued: 0 Processed: 0 Dropped: 0
-
Tugas B: Perbarui versi firmware Anda
-
Buka
demos/include/aws_application_version.h
file dan naikkan nilaiAPP_VERSION_BUILD
token ke0.9.3
. -
Membangun kembali proyek.
-
-
Buat
userprog.rsu
file dengan Renesas Secure Flash Programmer untuk memperbarui versi firmware Anda.-
Buka file
Amazon-FreeRTOS-Tools\Renesas Secure Flash Programmer.exe
. -
Pilih tab Perbarui Perusahaan dan atur parameter berikut:
-
File Path — Lokasi
aws_demos.mot
file (projects\renesas\rx65n-rsk\e2studio\aws_demos\HardwareDebug
).
-
-
Membuat sebuah direktori bernama
update _firmware
. Hasilkanuserprog.rsu
dan simpan keupdate_firmware
direktori. Verifikasi bahwa hasil berhasil.
-
-
Unggah pembaruan firmware,
userproj.rsu
, ke dalam bucket Amazon S3 seperti yang dijelaskan dalam. Buat bucket Amazon S3 untuk menyimpan pembaruan Anda -
Buat pekerjaan untuk memperbarui firmware pada RX65N-RSK.
AWS IoT Jobs adalah layanan yang memberi tahu satu atau beberapa perangkat yang terhubung tentang Job yang tertunda. Pekerjaan dapat digunakan untuk mengelola armada perangkat, memperbarui firmware dan sertifikat keamanan pada perangkat, atau melakukan tugas administratif seperti memulai ulang perangkat dan melakukan diagnostik.
-
Masuk ke konsol AWS IoT
tersebut. Di panel navigasi, pilih Kelola, dan pilih Pekerjaan. -
Pilih Buat pekerjaan, lalu pilih Buat pekerjaan Pembaruan OTA. Pilih sesuatu, lalu pilih Berikutnya.
-
Buat pekerjaan pembaruan FreeRTOS OTA sebagai berikut:
-
Pilih MQTT.
-
Pilih profil penandatanganan kode yang Anda buat di bagian sebelumnya.
-
Pilih gambar firmware yang Anda unggah ke bucket Amazon S3.
-
Untuk Pathname gambar firmware pada perangkat, masukkan
test
. -
Pilih peran IAM yang Anda buat di bagian sebelumnya.
-
-
Pilih Selanjutnya.
-
Masukkan ID lalu pilih Buat.
-
-
Buka kembali Tera Term untuk memverifikasi bahwa firmware berhasil diperbarui ke versi demo OTA 0.9.3.
-
Di AWS IoT konsol, verifikasi bahwa status pekerjaan berhasil.