Làm cách nào tôi có thể thực hiện cập nhật gia tăng với đèn flash chỉ có thể xóa khối thông minh?


11

Kịch bản

Tôi muốn cập nhật một thiết bị IoT chi phí thấp qua mạng với phần sụn mới cập nhật (các) bộ vi điều khiển của thiết bị. Bộ nhớ vi điều khiển là bộ nhớ flash trong phạm vi từ 32k đến 128k (mỗi xu được tính). Bộ nhớ giá rẻ này có một hạn chế lớn: nó chỉ có thể bị xóa theo khối.

Câu hỏi

Điều đó có nghĩa là tôi không thể thực hiện cập nhật vi sai ( delta )? Tôi có luôn phải cập nhật toàn bộ bộ nhớ của bộ điều khiển (hoặc ít nhất là các bộ phận quan trọng) không?

Tôi muốn giảm nhu cầu flash mọi thứ và mạo hiểm đóng cục thiết bị hoàn toàn nhiều nhất có thể. Có chiến lược hiện có khi flash vi điều khiển trên không?


Điều gì quan trọng hơn cho bạn chi phí hoặc tỷ lệ rủi ro thấp nhất?
Bence Kaulics

@BenceKaulics tìm sự cân bằng giữa hai người, tôi đoán vậy. Sau tất cả, rủi ro gạch cũng là một chi phí (có trọng số).
Helmar

Câu trả lời:


8

Câu trả lời đơn giản là có - bạn cần có đủ khối flash để hỗ trợ bộ tải khởi động và hình ảnh mã A / B nếu bạn muốn độ tin cậy cao. Trước khi kích hoạt hình ảnh mới, bạn có thể viết toàn bộ, xác minh nó và có khả năng thử lại.

Tuy nhiên đây một chiến lược đắt tiền / đáng tin cậy và có những điều bạn có thể làm để giảm chi phí. Hỗ trợ cấp thấp cho các bản cập nhật OTA cũng có thể là một phần của phần sụn thiết bị hoặc HĐH, vì vậy bạn có thể tránh tự mình sử dụng trừ khi bạn muốn tìm hiểu. Tính năng này có thể được mô tả là FOTA.

Phân vùng cơ sở mã của bạn cho phép cập nhật gia tăng, trong trường hợp tốt nhất, bộ tải khởi động có thể hiển thị kết nối mạng, tải xuống và xác minh mã mà không cần bất kỳ mã người dùng dự phòng nào. Với một cổng cục bộ, việc quản lý tác vụ này có thể được ủy quyền từ các điểm cuối chi phí thấp.

Nhiều thiết bị có một lượng nhỏ đèn flash xóa từ và thậm chí không làm được điều này, bạn thường có thể đặt bit mà không cần phải xóa toàn bộ khối. Các tính năng này có thể được sử dụng để thao tác các bảng nhảy và ghép các mã được cập nhật theo các khối kích thước khối. Ngay cả khi ban đầu bạn dự định cho một không gian mã A / B đầy đủ, bạn có thể cần quay lại sơ đồ phức tạp hơn khi cơ sở mã phát triển quá nhiều.

Để làm rõ chức năng có thể đạt được với một giải pháp phần mềm không dây phức tạp, bộ tải khởi động và có khả năng ngăn xếp giao tiếp chính có thể vẫn còn trong khi không gian ứng dụng người dùng còn lại được flash lại. Điều này không cần bất kỳ chi phí nào (đặc biệt nếu phân vùng khối mềm). Trong kịch bản mà ngăn xếp truyền thông cần được nâng cấp, khu vực thường được sử dụng cho mã ứng dụng có thể được sử dụng tạm thời trong quá trình tải xuống và xác minh. Để đạt được điều này cần có một số hỗ trợ trong SoC, nhưng các thiết bị thế hệ 2 và 3 được thiết kế với ý tưởng này đã tồn tại.


6

Tôi muốn giảm nhu cầu flash mọi thứ và mạo hiểm đóng cục thiết bị hoàn toàn nhiều nhất có thể. Có chiến lược hiện có khi flash vi điều khiển trên không?

Ngoài mã của bạn thực hiện cập nhật tương đối tĩnh, bạn cần giữ hai hình ảnh trong bộ lưu trữ của mình: một hình ảnh hoạt động và một hình ảnh sao lưu. Bất cứ khi nào, bạn cần cập nhật, thực hiện trong bản sao lưu, sau đó chuyển nó thành hoạt động. Khi đã ổn định, hãy cập nhật hình ảnh hoạt động cũ sẽ là bản sao lưu của bạn.

Với ý nghĩ đó, bạn có thể sử dụng các thuật toán cân bằng hao mòn khi cập nhật cả hai hình ảnh. Mã cho các thuật toán như vậy có thể chiếm khoảng 10 - 15% tổng dung lượng lưu trữ, nhưng nó cũng đáng để kéo dài tuổi thọ của thiết bị.

Việc cân bằng hao mòn thường được quản lý bởi bộ điều khiển flash, sử dụng thuật toán cân bằng hao mòn để xác định khối vật lý nào sẽ sử dụng mỗi khi dữ liệu được lập trình. Có hai loại cân bằng hao mòn ổ cứng (SSD): động và tĩnh. Các nhóm cân bằng hao mòn động đã xóa các khối và chọn khối có số lần xóa thấp nhất cho lần ghi tiếp theo.

Mặt khác, cân bằng hao mòn tĩnh chọn khối mục tiêu có số lần xóa tổng thể thấp nhất, xóa khối nếu cần, ghi dữ liệu mới vào khối và đảm bảo rằng các khối dữ liệu tĩnh được di chuyển khi số lần xóa khối của chúng ở dưới nguong nhât đinh. Bước bổ sung dữ liệu di chuyển này có thể làm chậm hiệu suất ghi do sử dụng trên bộ điều khiển flash, nhưng cân bằng hao mòn tĩnh có hiệu quả hơn đáng kể so với cân bằng hao mòn động để kéo dài tuổi thọ của các thiết bị trạng thái rắn.

( Techtarget.com: Mặc cân bằng )


6

Bán dẫn Freescale mô tả một cách mạnh mẽ để nâng cấp firmware không dây cho Bộ vi điều khiển Kinetis của họ .

Nó được gọi là: Chương trình hoán đổi bộ nhớ Flash .

Hệ thống sử dụng trao đổi bộ nhớ flash

Trong các thiết bị có hai hoặc nhiều khối flash bên trong hỗ trợ trao đổi, địa chỉ cơ sở bộ nhớ của mỗi khối flash có thể được trao đổi. Do đó, vị trí địa chỉ của từng khối flash sẽ được hoán đổi trong bản đồ bộ nhớ logic của thiết bị. Sau khi thiết lập lại, hệ thống trao đổi flash tích hợp về cơ bản sẽ chọn phần mềm nào thực thi theo vị trí của khối flash trong bản đồ bộ nhớ logic. Điều này cho phép một hệ thống sao lưu mã với sự dễ dàng của lập trình. Bạn có thể thực hiện trong một khối trong khi xóa / lập trình khối khác. Trên các thiết bị Kinetis, hệ thống trao đổi flash giám sát / kiểm soát tất cả các bước chuyển từ ứng dụng cũ sang mới; có thêm một sự đảm bảo về hoạt động đáng tin cậy trong trường hợp mất điện trong một trong những bước đó.

Ưu điểm

  • Dễ lập trình. Ứng dụng luôn thực thi trong khối thấp hơn trong bản đồ bộ nhớ.
  • Mất điện dung.
  • Không cần bootloader. Không chậm trễ để bắt đầu ứng dụng chính.
  • Rất thích hợp cho một hệ điều hành đa tác vụ. Thời gian chết ứng dụng tối thiểu. Trong một hệ thống đa tác vụ, có thể tiếp tục thực thi các tác vụ ứng dụng chính trong khi các tác vụ nền đang chạy để cập nhật bản sao mới của ứng dụng.
  • Sao lưu mã. Có thể trở lại ứng dụng làm việc đã biết.

Nhược điểm

  • Không gian bộ nhớ flash bổ sung cần thiết để lưu trữ bản sao lưu.

Bạn có thể cập nhật các khối và sau đó trao đổi chúng.

trao đổi bộ nhớ trong khi cập nhật trực quan

Các tài liệu liên kết giữ mô tả chi tiết.

Nó đảm bảo nâng cấp firmware an toàn hơn nhưng vì nó đòi hỏi nhiều flash memroy hơn, chắc chắn chi phí cao hơn . Cũng không áp dụng cho bất kỳ loại vi điều khiển nào, chỉ những loại hỗ trợ trao đổi khối flash bên trong.


2
Điều này trông tuyệt vời và trông giống như một giải pháp chắc chắn phải được xem xét nếu nó có thể được cân bằng với các yêu cầu chi phí. + 1
Helmar
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.