Описание тега semihosting

1 ответ

Выход OpenOCD по точке останова

Я разрабатываю приложение на STM32F042. Я прогоняю все из make-файла, включая свои модульные тесты. Я использую OpenOCD и ST-LINK для прошивки цели. Мои модульные тесты выполняются на хосте и на целевом компьютере. Драйвер модульного тестирования хо…
05 сен '19 в 17:40
1 ответ

Куда идет STDOUT с GDB, OopenOCD и полухостингом?

Пытаюсь разобраться в полухостоне на ARM (STM32042). Я вижуprintf вывод, если я бегу openocd прямо из командной строки и подключиться к ней из gdbпо TCP. Но если я запустилopenocd изнутри gdb, вывод идет в какой-то большой /dev/null в небе. Если я з…
27 сен '19 в 03:02
2 ответа

Какой смысл предоставлять входные и выходные операнды, если они не указаны в шаблоне ASM?

Я нашел следующий фрагмент кода в u-boot/arch/arm/lib/semihosting.c, который используетbkpt и другие инструкции и предоставляет входные и выходные операнды, даже если они не указаны в шаблоне ASM: static noinline long smh_trap(unsigned int sysnum, v…
02 июн '20 в 18:14
1 ответ

Bare-metal ARM Cortex-A7 newlib crt0 не инициализирует регионы .bss и .data

Я учусь писать прошивку ARM Cortex-A7 для работы на QEMU с полухостингом. Я знаю, что в ARM GCC есть реализация libc под названием newlib, которая поддерживает полухостинг для общих функций libc. Итак, я пытаюсь заставить работать newlib. После реше…
16 фев '21 в 23:19
0 ответов

ARM MCU останавливается после включения

Я потратил некоторое время на поиск, почему мой MCU останавливается после включения. Отладка с J-Link работает хорошо. Найдя несколько ответов о подключении вывода NRST и настройке BOOT0, я не нашел первопричины. Что ж, после попытки очистить код я …
23 июн '21 в 10:51
1 ответ

Захват QEMU Semihosted I/O

В целях модульного тестирования я хочу иметь возможность запускать двоичный файл с нуля с qemu и фиксировать его вывод. Образец файла: #include <stdio.h> #include <stdint.h> static void qemu_exit() { register uint32_t r0 __asm__("r0"); r…
15 дек '21 в 06:02
1 ответ

Полухостинг QEMU не производит вывод

Я пытаюсь настроить среду тестирования для своего проекта, используя полухостинг в QEMU. До сих пор у меня не было проблем с выполнением этого ответа , однако у меня возникли проблемы с его работой с CMake. Вот как я строю то же самое hello.c( файл …
11 май '22 в 10:51
0 ответов

Как позволить Python взаимодействовать с консолью stdout/stdin консоли GDB?

Я пытаюсь провести автоматическое тестирование с помощью встроенного приложения, работающего на микроконтроллере ARM. Для обмена вводом-выводом я настроил Semihosting, используя arm-none-eabi-gdb в качестве клиента GDB: arm-none-eabi-gdb my_binary.a…
30 июл '22 в 17:43
0 ответов

QEMU Semihosting не работает при сборке QEMU из исходного кода

Я эмулирую Cortex-M33, используя QEMU на хосте Linux. Я установил QEMU, используяsudo apt-get qemu-system-armи полухостинг работает нормально (printf и файловый ввод-вывод). Я вызываю QEMU следующим образом: /usr/bin/qemu-system-arm -machine mps2-an…
02 фев '23 в 16:42
0 ответов

Можете ли вы программно удалить точки останова в приложении ARM Cortex M3 во время выполнения?

В моем чистом металлическом приложении C для CM3 у меня есть сценарий запуска, который запускает CRC для разделов кода и данных в их целевых областях памяти. Я заметил, что иногда проверка кода завершается ошибкой, иногда нет, в зависимости от того,…
27 фев '23 в 23:36
1 ответ

Работает ли полухостинг для qemu-system-aarch64?

Я использую Rust для написания кода в среде [no_std], ориентируясь на aarch64-unknown-none от ARM. Когда я включаю -semihosting, как указано в параметрах команды qemu-system-aarch64 ниже, я никогда не вижу никакого изображения на моем главном компью…
13 мар '23 в 18:02