Tôi đang làm việc trên thiết bị dựa trên Cortex-M3 và tôi cần triển khai cơ chế lập trình trong ứng dụng (IAP) để có thể cập nhật phần mềm thiết bị mà không cần JTAG (thay vào đó, chúng tôi sẽ sử dụng TFTP hoặc HTTP). Trong khi các ví dụ mã liên quan đến IAP có sẵn từ ST Microelectronics là đủ rõ ràng với tôi, tôi không thực sự hiểu làm thế nào các công trình tái nhấp nháy.Lập trình trong ứng dụng cho ARM (Cortex M3) hoạt động như thế nào?
Theo tôi hiểu, các hướng dẫn được lấy bởi CPU từ Flash thông qua bus ICode (và khối tìm nạp trước). Vì vậy, đây là câu hỏi khá ngớ ngẩn của tôi: tại sao chương trình đang chạy bị hỏng trong khi nó tự khởi động lại (tức là thay đổi bộ nhớ Flash mà nó đang chạy)?
Ah-ha ... Đúng vậy, tôi đã bỏ lỡ phần đó khi nghiên cứu mã! –
Có, tuy nhiên trên nhiều thiết bị, nó thực sự cần thiết để chạy từ ram trong khi lập trình flash, vì vậy một đoạn mã lập trình ngắn phải được sao chép vào RAM và được gọi để thực hiện lập trình thực tế, ngay cả khi quá trình tổng thể được quản lý mã trong một phần dành riêng của flash. –
Có nhiều kịch bản lỗi mà bạn cần phải xem xét, nếu không, bạn có thể sẽ làm hỏng hệ thống của bạn.IAP là một hòn đá góc phát triển f/w và làm nó đặc biệt đúng trên mạng bị mất có thể phức tạp. – Amit