Sau khi hoàn thành thiết kế phần cứng và hoàn thành chương trình thực nghiệm sử dụng thư viện cập nhật chương trình từ xa thì tỉ lệ cập nhật chương trình đã được kiểm thử với 03 chương trình ứng dụng với 03 kích cỡ khác nhau là 15KByte, 30KByte và 60KByte. Mỗi chương trình được biên dịch và tạo thành 1 tập tin dạng Hex và 1 tập tin dạng Bin. Mỗi tập tin được thử nghiệm 100 lần và cho kết quả tỉ lệ cập nhật thành công là 100%. Kết quả này cho thấy độ tin cậy của thư viện xây dựng được trong việc cập nhật thành công là rất cao, có thể áp dụng thực tế được.
Bảng tỉ lệ thử nghiệm cập nhật chương trình từ xa thành công
Hai định dạng phổ biến thường được sử dụng để cập nhật chương trình từ xa là tập tin định dạng HEX và tập tin định dạng BIN đều được quan tâm đến vấn đề toàn vẹn dữ liệu.
- Tập tin định dạng HEX đã có sẵn trường checksum. Sau khi một phần tập tin hoặc toàn bộ tập tin được tải về bộ nhớ SRAM, Thuật toán checksum đã được xây dựng để kiểm tra từng hàng dữ liệu trước khi ghi vào bộ nhớ Flash.
- Tập tin định dạng BIN đã được bổ sung thêm CRC vào cuối tập tin. Sau khi toàn bộ tập tin chương trình ứng dụng mới kèm với giá trị CRC- 32bit này được tải về và ghi vào bộ nhớ Flash, Chương trình OTA sẽ sử dụng khối ngoại vi CRC Caculator được tích hợp sẵn trong vi điều khiển STM32 để tính toán giá trị CRC của tập tin và so sánh với giá trị CRC được thêm vào.
- Phương pháp cập nhật chương trình từ xa được đề xuất có tích hợp tính phát hiện chương trình ứng dụng mới cập nhật gặp sự cố làm thiết bị khởi động lại liên tục. Trong trường hợp này, bootloader sẽ điều khiển thực hiện chương trình ứng dụng trước đó – chắc chắn thực thi được để đảm bảo thiết bị còn có thể thực hiện được tính năng cập nhật chương trình từ xa.
Các quy trình được xây dựng đã bao gồm việc xử lý các sự cố trong quá trình cập nhật chương trình từ xa để đảm bảo thiết bị vẫn hoạt động trong các trường như mất nguồn trong quá trình cập nhật, phiên bản chương trình mới tồn tại lỗi, lỗi trong quá trình nhận tập tin chương trình mới và mất kết nối Internet trong quá trình cập nhật.
Chúc các bạn thành công!
Thuong Nguyen