최근 에 오픈 소스 부트 로더 인 U-boot를 실행하는 Atmel AT91SAM9G20 SBC로 작업하고있는 불쾌한 버그의 원인을 알아 냈습니다 . 문제의 핵심은 U-boot가 하드웨어가 내가 만든 것과 다르게 구성 될 것으로 예상했기 때문에 일부 장치 레지스터가 잘못 구성되었다는 것입니다.
이제 문제를 파악 했으므로 레지스터를 올바르게 구성하려면 U-boot를 조정해야합니다. 프로그램의 끝에 몇 줄의 코드를 추가하여 맹목적으로 할 수는 있지만 지저분합니다.
이것은 내 질문에 이르게합니다 : main ()에서 시작하여 모든 파일에서 가능한 모든 코드 경로를 읽는 것보다 U-boot가 어떻게 효율적으로 작동하는지 알 수 있습니까? 파일을 둘러보고 관련 식별자 근처의 코드를 보았습니다. 이것은 효과가없는 것으로 판명되었습니다. 대부분의 코드는 내가 신경 쓰지 않는 하위 시스템의 드라이버 인 것 같습니다. 나는 실제로 부트 로더가 어떻게 잘 작동하는지 이해하지만, 순진한 접근법보다 더 나은 방법이 있기를 바랍니다.