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
Hệ thống nhúng và các giải pháp IoT công nghiệp sử dụng vi xử lý nâng cao tại Việt Nam có thể gặp hiện tượng tương tự khi làm việc với bộ nhớ nhạy cảm. Kỹ sư cần lưu ý kiểm tra cấu hình phần mềm công cụ nạp và debug, đặc biệt là tính năng cache, để đảm bảo dữ liệu đọc ra phản ánh chính xác trạng thái thực tế của thiết bị trước khi triển khai.