Optiboot là về bộ tải khởi động nhỏ nhất có sẵn.
Tuy nhiên, có một bộ điều khiển khởi động mạnh mẽ hơn (với bảng điều khiển sẵn có để kiểm tra phần cứng, kiểm tra nội dung RAM và Flash, v.v.) với giao thức truyền thông stk500v2 phát triển và mạnh mẽ hơn giữa avrdude và bộ tải khởi động AVR.
Tôi đã sử dụng nó trên ATmega2560 và trên ATmega1284p. Nó hoạt động cho cả MCU bộ đếm chương trình 3 byte và 2 byte.
Tôi có phiên bản Bộ tải khởi động STK500v2 trên Sourceforge .
Bộ tải khởi động này dựa trên bộ tải khởi động Peter Fleury STK500v2, được cập nhật bởi Mark Sproul. Tôi đã thực hiện các chỉnh sửa để hỗ trợ nó với bảng Goldilocks (bảng ATmega1284p).
Tính năng chính là sử dụng giao thức STK500v2 để tải hình ảnh Flash lên Arduino. Giao thức này mạnh hơn và cho khả năng lỗi tốt hơn giao thức avr109 . Ngoài ra, giao thức avr109 được gọi là "Arduino" trong thế giới Arduino, bởi vì nó bật DTR (để đặt lại bo mạch và tự động nhập bộ nạp khởi động), và giao thức STK500v2 được gọi là "Đấu dây" trong thế giới Arduino, vì giống nhau lý do.
Bộ tải khởi động Fleury / Sproul STK500v2 được thiết kế để hoạt động với ATmega2560 có thanh ghi chương trình 3 byte, vì kích thước Flash lớn hơn. Nhưng, nó cũng hỗ trợ bảng 2 byte bình thường (mọi thứ khác thực sự).
Đối với các bo mạch có nhiều Flash (như Goldilocks 1284p), có một màn hình phần cứng có thể được sử dụng để truy vấn Flash, SRAM và phần cứng; bạn có thể kiểm tra các kết nối mà không cần mã bổ sung và kiểm tra nội dung thực tế của Flash và EEPROM. Vì 1284p hỗ trợ 2 USART, tôi đã thêm khả năng gỡ lỗi trên USART1 , để quá trình tải lên qua USART0 không bị xáo trộn.