Я работаю над отладкой с помощью gdb. я хотел знать, как gdb работает внутри, чтобы установить брекпоинт на встроенный процессор через JTAG.Как отладчик, такой как gdb, работает, чтобы установить точку останова через JTAG?
ответ
Для каждого процессора все зависит от вас, вам нужно найти детали отладчика jtag для конкретного процессора. не только семейство процессоров, но и конкретный процессор. Руководства по спецификациям/пользователям, если они доступны, обычно доступны от поставщика чипов или основного поставщика в зависимости от продукта.
что я хочу знать, так это то, что после подключения моей платы к ПК с помощью кабеля jtag, если я набираю, например, «bp 25» с GDB, что происходит после этой команды для выполнения с моим встроенным процессором (Microblaze) через JTAG? – jenje
вам нужно найти этот процессор и команды jtag, это может быть несколько-несколько тысяч различных команд, которые реализуют эту вещь. Десяток различных способов обработки процессоров такой командой и т. Д. Если вы не хотите искать данные, посмотрите в gdb soruces, gdb - с открытым исходным кодом, ответы на ваши вопросы - все в открытых документах и программном обеспечении. Перестройте gdb, добавьте некоторые printfs, выкопайте код интереса. –
Он либо программирует аппаратный регистр контрольной точки, либо помещает точку останова программного обеспечения, заменяя инструкцию в точке останова инструкцией, которая вызовет исключение.
Несколько раз, когда я использовал GDB в сочетании с блоком JTAG, GDB передавался через JTAG с помощью программы gdbserver
, которая обрабатывала детали JTAG. Например, с помощью блока OpenOCD JTAG: http://openocd.sourceforge.net/doc/html/GDB-and-OpenOCD.html
Это по существу означает, что GDB не знает почти ничего о блоке JTAG - он опирается на интерфейс gdbserver
, а затем, что сервер делает все, что нужно, чтобы за кулисами делать запросы GDB.
Возможный дубликат [Общий рабочий поток JTAG во встроенной системе разработки?] (Http://stackoverflow.com/questions/3775445/general-jtag-working-flow-in-an-embedded-development-system) – Gilles