Cho mình hỏi trong diễn đàn đã có ai từng làm, hoặc từng nghiên cứu về việc upload từ firmware từ xa qua internet(hoặc 1 phương thức nào đó tương tự) chưa nhỉ.
Ai biết chỉ giúp mình với nhé.
Cám ơn trước
Update new firmware bây giờ các chip mới support rất nhiều. Nếu em đã từng dùng pic, tài liệu của microchip về vấn đề này khá chi tiết. Ví dụ như link này(update qua UART):
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en530200
Để thực hiện được 1 bootloader, em cần tìm hiểu:
- Bộ nhớ flash ứng với chip đó(xóa/ghi flash như thế nào)
- Hiểu được file linker(để sắp xếp xem chương trình thực hiện bootloader nằm ở đâu, firmware mới nằm ở vùng nào...)
- Quản lý được interrupt vector table(Bootloader có dùng ngắt hay không, nếu có thì khi chạy firmware khi chạy sẽ dùng ngắt đó như thế nào...)
- Quá trình update firmware.
Nói tóm tắt quá trình update firmware như thế này:
- Sau khi reset, bootloader sẽ chạy.
- Dựa vào 1 sự kiện nào đó(button có được nhấn hay không chẳng hạn) để thực hiện update firmware hay cho chạy firmware cũ (nếu đã có sẵn firmware trong flash)
- Nếu vào mode thực hiện update firmware, bootloader sẽ nhận firmware mới từ Host qua giao tiếp nào đó(UART, CAN, USB, Ethernet...)
- Bootloader thực hiện ghi firmware mới vào flash.
- Sau khi kết thúc, chạy firmware mới.