Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Migrasi dari versi 1 ke versi 3 untuk port OTA PAL
Perpustakaan Over-the-air Pembaruan memperkenalkan beberapa perubahan dalam struktur folder dan penempatan konfigurasi yang diperlukan oleh perpustakaan dan aplikasi demo. Untuk aplikasi OTA yang dirancang untuk bekerja dengan v1.2.0 untuk bermigrasi ke v3.0.0 pustaka, Anda harus memperbarui tanda tangan fungsi port PAL dan menyertakan file konfigurasi tambahan seperti yang dijelaskan dalam panduan migrasi ini.
Perubahan OTA PAL
-
Nama direktori port OTA PAL telah diperbarui dari
ota
keota_pal_for_aws
. Folder ini harus berisi 2 file:ota_pal.c
danota_pal.h
. File header PALlibraries/freertos_plus/aws/ota/src/aws_iot_ota_pal.h
telah dihapus dari perpustakaan OTA dan harus ditentukan di dalam port. -
Kode pengembalian (
OTA_Err_t
) diterjemahkan ke dalam enumOTAMainStatus_t
. Lihat ota_platform_interface.huntuk kode pengembalian yang diterjemahkan. Makro pembantu juga disediakan untuk menggabungkan OtaPalMainStatus
danOtaPalSubStatus
kode dan mengekstrakOtaMainStatus
dariOtaPalStatus
dan serupa. -
Masuk ke PAL
-
Menghapus
DEFINE_OTA_METHOD_NAME
makro. -
Sebelumnya:
OTA_LOG_L1( "[%s] Receive file created.\r\n", OTA_METHOD_NAME );
. -
Diperbarui:
LogInfo(( "Receive file created."));
GunakanLogDebug
,LogWarn
danLogError
untuk log yang sesuai.
-
-
Variabel
cOTA_JSON_FileSignatureKey
berubah menjadiOTA_JsonFileSignatureKey
.
Fungsi
Tanda tangan fungsi didefinisikan ota_pal.h
dan dimulai dengan awalan, bukanotaPal
. prvPAL
catatan
Nama pasti PAL secara teknis terbuka, tetapi agar kompatibel dengan tes kualifikasi, nama tersebut harus sesuai dengan yang ditentukan di bawah ini.
Versi 1 |
Versi 3 |
Catatan |
---|---|---|
|
|
Buat file penerima baru untuk potongan data saat mereka masuk. |
|
|
Tulis blok data ke file yang ditentukan pada offset yang diberikan. |
|
|
Aktifkan gambar MCU terbaru yang diterima melalui OTA. |
|
|
Setel ulang perangkat. |
|
|
Otentikasi dan tutup file penerima yang mendasarinya dalam konteks OTA yang ditentukan. |
|
|
Hentikan transfer OTA. |
|
|
Mencoba untuk mengatur status gambar pembaruan OTA. |
|
|
Dapatkan status gambar pembaruan OTA. |
-
Versi 1:
OTA_Err_t prvPAL_CreateFileForRx( OTA_FileContext_t * const *C* );
Versi 3:
OtaPalStatus_t otaPal_CreateFileForRx( OtaFileContext_t * const *pFileContext* );
Catatan: Buat file penerimaan baru untuk potongan data saat masuk.
-
Versi 1:
int16_t prvPAL_WriteBlock( OTA_FileContext_t * const C, uint32_t ulOffset, uint8_t * const pcData, uint32_t ulBlockSize );
Versi 3:
int16_t otaPal_WriteBlock( OtaFileContext_t * const pFileContext, uint32_t ulOffset, uint8_t * const pData, uint32_t ulBlockSize );
Catatan: Tulis blok data ke file yang ditentukan pada offset yang diberikan.
-
Versi 1:
OTA_Err_t prvPAL_ActivateNewImage( void );
Versi 3:
OtaPalStatus_t otaPal_ActivateNewImage( OtaFileContext_t * const *pFileContext* );
Catatan: Aktifkan gambar MCU terbaru yang diterima melalui OTA.
-
Versi 1:
OTA_Err_t prvPAL_ResetDevice( void );
Versi 3:
OtaPalStatus_t otaPal_ResetDevice( OtaFileContext_t * const *pFileContext* );
Catatan: Setel ulang perangkat.
-
Versi 1:
OTA_Err_t prvPAL_CloseFile( OTA_FileContext_t * const *C* );
Versi 3:
OtaPalStatus_t otaPal_CloseFile( OtaFileContext_t * const *pFileContext* );
Catatan: Mengautentikasi dan menutup file penerima yang mendasarinya dalam konteks OTA yang ditentukan.
-
Versi 1:
OTA_Err_t prvPAL_Abort( OTA_FileContext_t * const *C* );
Versi 3:
OtaPalStatus_t otaPal_Abort( OtaFileContext_t * const *pFileContext* );
Catatan: Hentikan transfer OTA.
-
Versi 1:
OTA_Err_t prvPAL_SetPlatformImageState( OTA_ImageState_t *eState* );
Versi 3:
OtaPalStatus_t otaPal_SetPlatformImageState( OtaFileContext_t * const pFileContext, OtaImageState_t eState );
Catatan: Mencoba mengatur status gambar pembaruan OTA.
-
Versi 1:
OTA_PAL_ImageState_t prvPAL_GetPlatformImageState( void );
Versi 3:
OtaPalImageState_t otaPal_GetPlatformImageState( OtaFileContext_t * const *pFileContext* );
Catatan: Dapatkan status gambar pembaruan OTA.
Jenis Data
Versi 1 |
File |
Versi 3 |
File |
Catatan |
---|---|---|---|---|
|
|
|
|
Status gambar diatur oleh implementasi platform. |
|
|
|
|
v1: Ini adalah makro yang mendefinisikan 32 bilangan bulat yang tidak ditandatangani. v3: Enum khusus yang mewakili jenis kesalahan dan terkait dengan kode kesalahan. |
|
|
|
|
v1: Berisi enum dan buffer untuk data. v3: Berisi variabel panjang data tambahan. |
|
|
|
|
OTA Image menyatakan |
-
Versi 1:
OTA_PAL_ImageState_t
Berkas:
aws_iot_ota_agent.h
Versi 3:
OtaPalImageState_t
Berkas:
ota_private.h
Catatan: Status gambar yang ditetapkan oleh implementasi platform.
-
Versi 1:
OTA_Err_t
Berkas:
aws_iot_ota_agent.h
Versi 3:
OtaErr_t OtaPalStatus_t (combination of OtaPalMainStatus_t and OtaPalSubStatus_t)
Berkas:
ota.h
,ota_platform_interface.h
Catatan: v1: Ini adalah makro yang mendefinisikan 32 bilangan bulat yang tidak ditandatangani. v3: Enum khusus yang mewakili jenis kesalahan dan terkait dengan kode kesalahan.
-
Versi 1:
OTA_FileContext_t
Berkas:
aws_iot_ota_agent.h
Versi 3:
OtaFileContext_t
Berkas:
ota_private.h
Catatan: v1: Berisi enum dan buffer untuk data. v3: Berisi variabel panjang data tambahan.
-
Versi 1:
OTA_ImageState_t
Berkas:
aws_iot_ota_agent.h
Versi 3:
OtaImageState_t
Berkas:
ota_private.h
Catatan: Status gambar OTA
Perubahan konfigurasi
File aws_ota_agent_config.h
diubah namanya menjadi ota_config.h
_AWS_OTA_AGENT_CONFIG_H_
keOTA_CONFIG_H_
.
-
File
aws_ota_codesigner_certificate.h
telah dihapus. -
Termasuk tumpukan logging baru untuk mencetak pesan debug:
/**************************************************/ /******* DO NOT CHANGE the following order ********/ /**************************************************/ /* Logging related header files are required to be included in the following order: * 1. Include the header file "logging_levels.h". * 2. Define LIBRARY_LOG_NAME and LIBRARY_LOG_LEVEL. * 3. Include the header file "logging_stack.h". */ /* Include header that defines log levels. */ #include "logging_levels.h" /* Configure name and log level for the OTA library. */ #ifndef LIBRARY_LOG_NAME #define LIBRARY_LOG_NAME "OTA" #endif #ifndef LIBRARY_LOG_LEVEL #define LIBRARY_LOG_LEVEL LOG_INFO #endif #include "logging_stack.h" /************ End of logging configuration ****************/
-
Menambahkan konfigurasi konstan:
/** * @brief Size of the file data block message (excluding the header). */ #define otaconfigFILE_BLOCK_SIZE ( 1UL << otaconfigLOG2_FILE_BLOCK_SIZE )
File Baru: ota_demo_config.h
-
signingcredentialSIGNING_CERTIFICATE_PEM
yang didefinisikan dalamdemos/include/aws_ota_codesigner_certificate.h
telah dipindahkan keota_demo_config.h
asotapalconfigCODE_SIGNING_CERTIFICATE
dan dapat diakses dari file PAL sebagai:static const char codeSigningCertificatePEM[] = otapalconfigCODE_SIGNING_CERTIFICATE;
File
aws_ota_codesigner_certificate.h
telah dihapus. -
Makro
APP_VERSION_BUILD
,APP_VERSION_MINOR
,APP_VERSION_MAJOR
telah ditambahkan keota_demo_config.h
. File lama yang berisi informasi versi telah dihapus, misalnyatests/include/aws_application_version.h
libraries/c_sdk/standard/common/include/iot_appversion32.h
,demos/demo_runner/aws_demo_version.c
.
Perubahan pada tes OTA PAL
-
Menghapus grup uji “Full_ota_agent” bersama dengan semua file terkait. Kelompok uji ini sebelumnya diperlukan untuk kualifikasi. Tes ini untuk perpustakaan OTA dan tidak khusus untuk port OTA PAL. Pustaka OTA sekarang memiliki cakupan pengujian lengkap yang di-host di repositori OTA sehingga grup pengujian ini tidak lagi diperlukan.
-
Menghapus grup uji “Full_OTA_CBOR” dan “Quarantine_OTA_CBOR” serta semua file terkait. Tes ini bukan bagian dari tes kualifikasi. Fungsionalitas yang dicakup tes ini sekarang sedang diuji di repositori OTA.
-
Memindahkan file pengujian dari direktori perpustakaan ke
tests/integration_tests/ota_pal
direktori. -
Memperbarui tes kualifikasi OTA PAL untuk menggunakan v3.0.0 dari API perpustakaan OTA.
-
Memperbarui cara pengujian OTA PAL mengakses sertifikat penandatanganan kode untuk pengujian. Sebelumnya ada file header khusus untuk kredensi penandatanganan kode. Ini tidak lagi berlaku untuk versi baru perpustakaan. Kode pengujian mengharapkan variabel ini didefinisikan dalam
ota_pal.c
. Nilai ditetapkan ke makro yang didefinisikan dalam file konfigurasi OTA khusus platform.
Daftar periksa
Gunakan daftar periksa ini untuk memastikan Anda mengikuti langkah-langkah yang diperlukan untuk migrasi:
-
Perbarui nama folder port ota pal dari
ota
keota_pal_for_aws
. -
Tambahkan file
ota_pal.h
dengan fungsi yang disebutkan di atas. Untukota_pal.h
file contoh, lihat GitHub. -
Tambahkan file konfigurasi:
-
Ubah nama file dari
aws_ota_agent_config.h
menjadi (atau buat)ota_config.h
.-
Tambahkan:
otaconfigFILE_BLOCK_SIZE ( 1UL << otaconfigLOG2_FILE_BLOCK_SIZE )
-
Termasuk:
#include "ota_demo_config.h"
-
-
Salin file di atas ke
aws_test config
folder dan ganti semua termasukota_demo_config.h
denganaws_test_ota_config.h
. -
Tambahkan
ota_demo_config.h
file. -
Tambahkan
aws_test_ota_config.h
file.
-
-
Buat perubahan berikut ke
ota_pal.c
:-
Perbarui sertakan dengan nama file pustaka OTA terbaru.
-
Hapus
DEFINE_OTA_METHOD_NAME
makro. -
Perbarui tanda tangan fungsi OTA PAL.
-
Perbarui nama variabel konteks file dari
C
kepFileContext
. -
Perbarui
OTA_FileContext_t
struct dan semua variabel terkait. -
Perbarui
cOTA_JSON_FileSignatureKey
keOTA_JsonFileSignatureKey
. -
Perbarui
OTA_PAL_ImageState_t
danOta_ImageState_t
jenisnya. -
Perbarui jenis kesalahan dan nilai.
-
Perbarui makro pencetakan untuk menggunakan tumpukan logging.
-
Perbarui
signingcredentialSIGNING_CERTIFICATE_PEM
yang akan menjadiotapalconfigCODE_SIGNING_CERTIFICATE
. -
Perbarui
otaPal_CheckFileSignature
danotaPal_ReadAndAssumeCertificate
fungsi komentar.
-
-
Perbarui
CMakeLists.txt
file. -
Perbarui proyek IDE.