Bộ tải khởi động Arduino nhanh hơn Arduino Arduino


7

Bộ tải khởi động Arduino có thời gian chờ để tạo điều kiện tải lên "phác thảo" (mã); điều này gây ra sự chậm trễ vài giây trước khi bắt đầu mã chính.

Tôi muốn sửa đổi tệp bootloader (cụ thể cho Arduino Mega) để giảm thời gian này xuống dưới 1000 mili giây tối đa.

Tôi không chắc làm thế nào để bắt đầu điều này - Ai đó có thể chỉ cho tôi đi đúng hướng không?

(Lưu ý: Tôi biết rằng thay vào đó tôi chỉ có thể tải lên trực tiếp tệp hex tương ứng với phần sụn của mình, nhưng trong trường hợp này, tôi muốn duy trì bộ tải khởi động.)

Câu trả lời:


6

Để biết tổng quan về bộ nạp khởi động, hãy xem trang Phát triển bộ tải khởi động .

Mã nguồn thực tế có sẵn và có thể được duyệt ở đây . Để sửa đổi thời gian chờ (hoặc hành vi của chờ), hãy xem tệp ATmegaBOOT.c .

Trong dòng 91 được MAX_ERROR_COUNTxác định và sử dụng để xác định thời điểm bắt đầu ứng dụng thực tế trên arduino của bạn. Để giảm thời gian chờ, tôi sẽ bắt đầu bằng cách đặt MAX_ERROR_COUNTgiá trị thấp hơn.


Sau khi bạn đăng bình luận của mình, tôi đã có cái nhìn khác về mã nguồn.

Tại dòng 433, "vòng lặp mãi mãi" được khởi động và trong dòng 436, hàm getch()được gọi. Trong hàm này có một vòng lặp khác, kiểm tra một ký tự nhận được. Nếu không có ký tự nào được nhận trong khoảng thời gian nhất định, mã ứng dụng sẽ được gọi. Thời lượng của khoảng thời gian được xác định bởi MAX_TIME_COUNT.

Vì vậy, thay đổi MAX_TIME_COUNTdường như là phù hợp hơn sau đó thay đổi MAX_ERROR_COUNT.


Có lẽ cũng có liên quan trong cùng một tập tin là dòng mã nêu sau đây? Mặc dù nó dường như được nhận xét và đề cập đến Makefile: #define MAX_TIME_COUNT (F_CPU >> 4)
boardbite

@Inga - Bạn nói đúng! Tôi cập nhật câu trả lời của tôi.
PetPaulsen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.