Trong một bài viết trên Hackaday, Daniel Mangum mô tả hiện tượng debugger trả về giá trị bộ nhớ cũ khi debug vi xử lý nRF54LM20 dựa trên Cortex‑M33. Sự cố này gây nhầm lẫn khi kiểm tra các thao tác ghi/đọc, đặc biệt liên quan tới Key Management Unit dùng để lưu trữ thông tin nhạy cảm.
Điểm chính
• Khi sử dụng GDB để đọc giá trị trên nRF54LM20, lệnh x thường trả về các giá trị đã được cache, khiến người dùng nghĩ rằng thao tác ghi trước đó không thành công. • Lệnh ReadMemAP (được hỗ trợ bởi JLinkGDBServer) cho phép chỉ định cổng truy cập và địa chỉ bộ nhớ, trả về giá trị thực tế, tránh cache. • Kiểm tra cho thấy cache thuộc phần mềm J‑Link; khi tắt cache của J‑Link, việc đọc giá trị trở nên chính xác. • Vấn đề này là một lỗi phần mềm, không phải lỗi phần cứng của MCU.
💡 Góc nhìn kỹ thuật Hagapa
Đối với các dự án IoT công nghiệp và an toàn PCCC tại Việt Nam, việc sử dụng nRF54LM20 để lưu trữ khóa mật mã yêu cầu độ tin cậy cao trong quá trình debug. Khi triển khai, chúng tôi khuyến nghị tắt cache của J‑Link hoặc sử dụng lệnh ReadMemAP để xác minh giá trị thực tế, tránh sai sót trong cấu hình bảo mật. Ngoài ra, nên kiểm tra phiên bản phần mềm J‑Link thường xuyên để nhận các bản vá liên quan đến cache.