Gần đây tôi đã tìm ra nguyên nhân của một lỗi khó chịu mà tôi đang làm việc với Atmel AT91SAM9G20 SBC chạy U-boot , một bộ tải khởi động nguồn mở. Cốt lõi của vấn đề là U-boot dự kiến phần cứng sẽ được cấu hình khác với tôi đã xây dựng nên một số thanh ghi thiết bị bị cấu hình sai.
Bây giờ tôi đã tìm ra vấn đề, tôi cần phải điều chỉnh U-boot để cấu hình các thanh ghi một cách chính xác. Tôi có thể làm điều này một cách mù quáng bằng cách thêm một vài dòng mã vào cuối chương trình, nhưng điều đó rất lộn xộn.
Điều này đưa tôi đến câu hỏi của mình: làm thế nào tôi có thể tìm ra cách U-boot hoạt động hiệu quả hơn so với bắt đầu tại main () và đọc tất cả các đường dẫn mã có thể trên tất cả các tệp? Tôi đã thử grepping trong các tập tin và xem mã gần các định danh liên quan. Điều này đã tỏ ra không hiệu quả; có vẻ như hầu hết các mã là trình điều khiển cho các hệ thống con mà tôi không quan tâm. Tôi thực sự hiểu làm thế nào bộ tải khởi động hoạt động khá tốt, nhưng tôi hy vọng có một phương pháp tốt hơn phương pháp ngây thơ của tôi.