Вопрос

Я проверил какой-то код низкого уровня на архитектуре руки. Как правило, эксперименты довольно сложные на настоящей доске, поэтому я думал о QEMU.

То, что я хотел бы получить, это какая-то информация о отладке информации, такая как printfs или gdb. Я знаю, что это просто с Linux, поскольку он реализует как драйвер устройства для интегратора QEMU и функции GDB, но я не работаю с Linux. Также я подозреваю, что извлечение такого рода функциональность из исходного кода ядра Linux будет сложно.

Я ищу из некоторых просто Операционная система, которая уже реализует одну из этих функций. У вас есть несколько советов?

Это было полезно?

Решение

Вам не нужна целевая ОС для отладки кода, которая работает внутри QEMU - Qemu уже делает это для вас.

В частности, QEMU поддерживает удаленную отладку из GDB - вы можете запустить QEMU с соответствующими параметрами командной строки, и она экспортирует интерфейс, к которому можно подключиться копию GDB (работает на хостом). В этот момент вы можете отладить программу в GDB в значительной степени так же, как если бы вы работали на хост-машине.

http://wiki.osdev.org/gdb. кажется, имеет немного более базовой информации; Возможно, недостаточно, чтобы полностью вызвать, но, по крайней мере, дайте вам основную идею и некоторые условия для поиска в документации QEMU и GDB. Пропустить немного о «внедрении заглушек GDB», который не применяется здесь, поскольку QEMU уже есть уже, и начать в разделе «Использование эмуляторных заглушек». Краткая форма просто что вы начнете Qemu с -s опция (экспортировать соединение GDB на localhost: 1234) и -S опция (дождитесь команды GDB «Продолжить» перед началом выполнения), а затем в GDB на хосте вы говорите target remote :1234 вместо run. Отказ Кроме того, конечно, вам нужно использовать версию ARM GDB, а не на родной x86.

(Кроме того, если вы готовы платить за коммерческое решение, инструментальная инструментарий ARM CodeSourcery имеет интеграцию IDE, чтобы установить все это автоматически, включая поддержку «printf» для печати в консоль отладчиков. Это работает на физической доске ТОО, если у вас есть аппаратный отладчик. Обычный отказ от ответственности обо мне - это сотрудник Codesourcery - но я нахожу его очень простым в использовании.)

Обновление, 2012: Насущная инструментарий Codesourcery теперь называется Mentor Graphics Graphics Sodelbench, но все вышеперечисленное по-прежнему относится.

Другие советы

Я понимаю, что я обращаюсь к вашей первоначальной проблеме здесь, а не предлагаемое решение (возможно, это лучше?), Но использовать GDB (или Insight / GDB) непосредственно на цели, используйте недорогой инструмент JTAG и Openocd.. Отказ Пример такой настройки и как реализовать его можно найти здесь.

Если у вас есть более крупный бюджет, более полнофункциональный отладчик JTAG может быть полезен, например, Abatron bdi3000 с прошивкой BDIGDB который позволяет программировать дистанционную отладку и устройство для Ethernet с GDB и без специальных драйверов или агента отладки цели.

Может быть, микромердже, как ОКЛ4 подойдет вашим потребностям?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top