Отладка приложения, поддерживающего режим реального времени
Внимание
Это документация по Azure Sphere (устаревшая версия). Служба Azure Sphere (устаревшая версия) выходит на пенсию 27 сентября 2027 г., и к этому времени пользователи должны перейти в Azure Sphere (интегрированная). Используйте селектор версий, расположенный над toC, чтобы просмотреть документацию по Azure Sphere (интегрированная).
RTApps отлаживаются с помощью OpenOCD, который устанавливается с пакетом SDK Для Azure Sphere и версией GDB, установленной в рамках цепочки инструментов ARM GNU Embedded.
Отладка приложения RTApp с помощью Visual Studio
Убедитесь, что ваше устройство подключено к компьютеру через USB. В меню "Задать элемент запуска" выберите приложение Azure Sphere (RT Core), где приложение Azure Sphere — это имя текущего приложения, поддерживающего режим реального времени, или нажмите клавишу F5.
Если появится запрос о создании проекта, выберите Да. Visual Studio компилирует приложение, поддерживающее режим реального времени, создает пакет образа, загружает его на доску и запускает его в режиме отладки. Загрузка неопубликованного приложения означает, что приложение доставляется непосредственно с компьютера по проводному подключению, а не через облако.
Обратите внимание на идентификатор образа пакета изображений в выходных>: выходные данные сборки при готовности к созданию развертывания необходимо знать путь к пакету образа.
По умолчанию в окне вывода отображаются выходные данные из выходных данных устройства. Чтобы увидеть сообщения отладчика, выберите Отладка в раскрывающемся меню Show output from: (Показать выходные данные из:). Также в меню Отладка>Окна можно проверить дизассемблированный код программы, ее регистры или память.
Visual Studio устанавливает подключения между сервером GDB и OpenOCD, чтобы вы могли использовать стандартный интерфейс отладки Visual Studio (клавиши F5, F6, F9 для точек останова и так далее) для приложения RTApp так же, как для высокоуровневого приложения.
Остановив точку останова в исходном коде C, можно открыть окно дизассембли, отображающее текущий адрес, а также сведения, связанные с текущей командой, а также сведения, такие как регистры или выполняемая команда исходного кода.
Чтобы открыть окно Дизассембли:
- Убедитесь, что исходный файл кода C, содержащий точку останова, открыт в Visual Studio.
- Выберите "Отладить"Дизассембли>" или нажмите клавиши ALT+8.
Отладка приложения RTApp с помощью Visual Studio Code
Visual Studio Code отладится, нажав клавишу F5 или выполнив команду отладки из представления отладки на левой панели. В примерах vscode/launch.json уже существует, поэтому отладка начнется немедленно. В новом приложении во время отладки сначала запрашивается тип приложения (HLApp или RTApp) и создается vscode/launch.json из ответа. После этого будет включена отладка.
При остановке в точке останова в исходном коде C можно открыть представление Дизассембли, отображающее текущий адрес, необработанные шестнадцатеричные данные, сборщик mnemonic для текущей команды и сведения, такие как регистры, участвующие или выполняемая команда исходного кода.
Чтобы открыть представление Дизассембли, выполните следующие действия.
- Убедитесь, что исходный файл кода C, содержащий точку останова, открыт в редакторе Visual Studio Code.
- Щелкните правой кнопкой мыши в окне редактора и выберите "Открыть дизассемблированное представление" или ">> дизассембли".
Отладка приложения RTApp с помощью CLI
Запустите приложение для отладки.
azsphere device app start --component-id <component id>
Эта команда возвращает ядро, на котором работает приложение.
Перейдите в папку Openocd для sysroot, с помощью которого было создано приложение. В этом кратком руководстве sysroot имеет значение 5+Beta2004. Компоненты sysroot устанавливаются в папку установки пакета SDK для Azure Sphere. Например, по умолчанию в Windows папка устанавливается по пути
C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\5+Beta2004\tools\openocd
, а в Linux по пути/opt/azurespheresdk/Sysroots/5+Beta2004/tools/sysroots/x86_64-pokysdk-linux/usr/bin/openocd
.Выполните
openocd
, как показано в следующем примере. В этом примере предполагается, что приложение работает с использованием ядра 0. Если приложение работает на ядре 1, измените "targets io0" на "targets io1":Откройте интерфейс командной строки с помощью PowerShell, командной строки Windows или командной оболочки Linux.
Перейдите в папку, которая содержит OUT-файл приложения, и запустите команду
arm-none-eabi-gdb
, которая входит во внедренную цепочку инструментов GNU ARM.Командная строка Windows
"C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
Windows PowerShell
& "C:\Program Files (x86)\GNU Arm Embedded Toolchain\9 2020-q2-update\bin\arm-none-eabi-gdb" IntercoreComms_RTApp_MT3620_BareMetal.out
Сервер OpenOCD предоставляет серверный интерфейс GDB через порт 4444. Установите цель для отладки.
target remote :4444
Выполните все команды gdb, которые вы выбрали.
Разработка с помощью партнерских приложений
Когда вы загружаете приложение на устройство Azure Sphere, по умолчанию средства развертывания этой службы удаляют все существующие приложения. Чтобы предотвратить это при разработке приложений, взаимодействующих друг с другом, необходимо пометить приложения как партнеров. При развертывании одного из приложений его партнеры не будут удалены. См. сведения о том, как помечать приложения как партнерские.
Устранение неполадок
Если у вас возникли проблемы, см. руководство по устранению неполадок в приложениях с поддержкой режима реального времени.