Recientemente he descubierto la causa de un error desagradable en el que he estado trabajando con un SBC Atmel AT91SAM9G20 ejecutando U-boot , un gestor de arranque de código abierto. El núcleo del problema era que U-boot esperaba que el hardware estuviera configurado de manera diferente a como lo había construido, por lo que algunos de los registros del dispositivo estaban mal configurados.
Ahora que he resuelto el problema, necesito modificar U-boot para configurar los registros correctamente. Puedo hacer esto a ciegas agregando algunas líneas de código al final del programa, pero eso es complicado.
Esto me lleva a mi pregunta: ¿cómo puedo averiguar cómo funciona U-boot de manera más eficiente que comenzar en main () y leer todas las rutas de código posibles en todos los archivos? He intentado grepping en los archivos y mirar el código cerca de identificadores relevantes. Esto ha resultado ineficaz; Parece que la mayoría del código son controladores para subsistemas que no me importan. De hecho, entiendo cómo funciona bastante bien el gestor de arranque, pero espero que exista un método mejor que mi ingenuo enfoque.