Đánh giá hiệu quả về chiếm dụng tài nguyên bộ nhớ

Với tính năng cập nhật chương trình từ xa, có những tiêu chí mà nhóm nghiên cứu đã quan tâm và thực hiện đánh gia bao gồm: tiêu chí thứ nhất là việc chiếm tài nguyên bộ nhớ khi triển khai tính năng OTA; tiêu chí thứ hai là tỉ lệ thành công khi thực hiện OTA, độ tin cậy khi thực hiện OTA; tiêu chí thứ ba là thời gian thực hiện quá trình OTA. Trong bài viết này, chúng tôi sẽ trình bày về tiêu chính đầu tiên một cách cụ thể. 

Bộ nhớ chương trình của vi điều khiển trên thiết bị phần cứng thử nghiệm dự kiến được chia thành các phân vùng với thông tin về địa chỉ bắt đầu, địa chỉ kết, kích cỡ phân bổ cho các phân vùng và các phân vùng thuộc các sector như bảng sau:

Bảng các phân vùng trong bộ nhớ Flash

Từ các kết quả thông báo của trình biên dịch, kết hợp với tập tin Linker Map (*.map) của từng chương trình gồm chương trình Bootloader, chương trình OTA ta có các thông tin về chiếm bộ nhớ của các chương trình như sau:

Đối với bộ nhớ Flash:

  • Chương trình Bootloader tự xây dựng chiếm 10,48 KByte.
  • Chương trình OTA cho tập tin định dạng HEX chiếm 22.05 KByte.
  • Chương trình OTA cho tập tin định dạng BIN chiếm 22.16KByte

 Đối với bộ nhớ RAM

  • Chương trình Bootloader chiếm 1.71 KByte
  • Chương trình OTA chiếm 2.4 KByte và kích cỡ Buffer Download do người dùng tự khai báo tùy tài nguyên của phần cứng vi điều khiển.

Vậy có thể thấy chương trình Bootloader và Chương trình OTA chiếm dung lượng bộ nhớ tổng cộng một lượng 32.53 KByte trong bộ nhớ Flash của vi điều khiển cho trường hợp cập nhật chương trình từ xa sử dụng tập tin định dạng HEX hoặc 32.64 KByte cho trường hợp cập nhật chương trình từ xa sử dụng tập tin định dạng BIN. Nếu trình biên dịch được cấu hình tối ưu về kích cỡ chương trình (code size) thì Chương trình Bootloader tự xây dựng chiếm 5.88 KB và Chương trình OTA chiếm 14.5KB cho định dạng HEX (14.4KByte cho định dạng BIN).

Vậy có thể thấy chương trình Bootloader tự xây dựng và chương trình OTA chiếm một phần nhỏ so với tổng dung lượng bộ nhớ Flash của hầu hết các vi điều khiển lõi ARM Cortex–M hiện nay.

 

Chúc các bạn thành công!
Thuong Nguyen

Fanpage Cộng đồng Kỹ thuật TAPIT: TAPIT – Learning, Research and Sharing Community