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