Недавно я выяснил причину неприятного бага, над которым я работал, с Atmel AT91SAM9G20 SBC, работающей с U-boot , загрузчиком с открытым исходным кодом. Суть проблемы заключалась в том, что U-boot ожидал, что аппаратное обеспечение будет настроено не так, как я его построил, поэтому некоторые регистры устройств были неправильно настроены.
Теперь, когда я разобрался с проблемой, мне нужно настроить U-boot для правильной настройки регистров. Я могу сделать это вслепую, добавив несколько строк кода в конце программы, но это грязно.
Это подводит меня к моему вопросу: как я могу понять, как U-boot работает более эффективно, чем запуск в main () и чтение всех возможных путей кода во всех файлах? Я попытался просмотреть файлы и просмотреть код рядом с соответствующими идентификаторами. Это оказалось неэффективным; кажется, что большая часть кода - это драйверы для подсистем, которые меня не интересуют. Я действительно понимаю, как загрузчик работает довольно хорошо, но я надеюсь, что существует лучший метод, чем мой наивный подход.