Как использовать агент отладки vxWorks для отладки перед ядром? - PullRequest
3 голосов
/ 08 октября 2008

Документация vxWorks гласит:

Сам агент WDB не зависит от целевой операционной системы: он подключается к сервисам ОС во время выполнения через виртуальную функцию интерфейс. Агент WDB может выполняться до запуска VxWorks (как в ранние этапы переноса BSP на новую плату). "

Как использовать агент отладки до запуска ядра vxWorks?

1 Ответ

2 голосов
/ 08 октября 2008

Во-первых, чтобы иметь возможность использовать агент для выполнения отладки перед ядром, вы должны иметь последовательный порт, доступный для отладки. Этот последовательный порт должен быть инициализирован и функционировать, так как он будет каналом отладки.

Существует ограничение на то, как рано вы можете начать отладку. Отладка на основе WDB начнется после запуска первой функции аппаратной инициализации (sysHwInit) и до самой инициализации ядра (kernelInit).

В зависимости от используемой версии vxWorks, существуют разные способы достижения этого результата.

Версии vxWorks на основе Workbench

В инструменте конфигурации ядра вы должны выбрать следующие компоненты:

  • WDB последовательное соединение
  • Отладка системы WDB
  • WDB инициализация системы до ядра

В зависимости от порядка выбора компонентов вы можете получать жалобы из рабочей среды, поскольку некоторые компоненты являются взаимоисключающими (у вас не может быть драйвера WDB END с отладкой перед ядром). Приведенный выше порядок должен быть в порядке.

Сборки командной строки

Отредактируйте файл config.h и выберите следующие параметры:

#define WDB_INIT        WDB_PRE_KERNEL_INIT
#define WDB_COMM_TYPE   WDB_COMM_SERIAL
#define WDB_MODE        WDB_MODE_SYSTEM

Когда vxWorks скомпилирован с этими параметрами, он выполнит первый этап инициализации оборудования и затем приостановит работу, ожидая, пока запущенный на хосте агент отладки подключится к цели.

На этом этапе вы можете выполнять отладку, один шаг и т. Д. *

...