Baru-baru ini saya menemukan penyebab bug jahat yang telah saya kerjakan dengan Atmel AT91SAM9G20 SBC yang menjalankan U-boot , sebuah bootloader open source. Inti masalahnya adalah bahwa U-boot mengharapkan perangkat keras dikonfigurasikan secara berbeda dari yang saya buat, jadi beberapa register perangkat salah konfigurasi.
Sekarang saya sudah menemukan masalahnya, saya perlu men-tweak U-boot untuk mengkonfigurasi register dengan benar. Saya bisa melakukan ini secara membabi buta dengan menambahkan beberapa baris kode di akhir program, tapi itu berantakan.
Ini membawa saya ke pertanyaan saya: bagaimana saya bisa mengetahui bagaimana U-boot bekerja lebih efisien daripada memulai di main () dan membaca semua jalur kode yang mungkin di semua file? Saya sudah mencoba melihat-lihat dalam file dan melihat kode di dekat pengidentifikasi yang relevan. Ini terbukti tidak efektif; tampaknya sebagian besar kode adalah driver untuk subsistem yang tidak saya pedulikan. Saya benar-benar mengerti bagaimana bootloader bekerja dengan sangat baik sekarang, tapi saya berharap ada metode yang lebih baik daripada pendekatan naif saya.