Не очень понятно где лучше обсуждать этот вопрос, пока написал сюда. Итак надо отлаживать драйверы ядра линукс. kgdb на моей платформе не поддерживается а printk недостаточен, да и медленно получается. Имеется работающий jtag адаптер на ft2232. После гугления завелась отладка в eclipse, но остались вопросы. Самый главный вопрос по ремаппингу памяти. Все символы ядра расположены в виртуальном пространстве а при запуске отладки mmu выключен и мы работаем с физическими адресами. Из за этого невозможно установить точки останова при старте. Команда gdb_breakpoint_override hard помогает, но аппаратных брекпойнтов всего два - неудобно. Как бы это обойти ? Более мелкий косяк: если в скрипте инициализации вставить брекпойнт он нигде не показывается - на в gdb ни в openocd и его невозможно удалить.
|