debugers:fretsaw

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
debugers:fretsaw [2025/10/26 14:10] – создано admindebugers:fretsaw [2025/10/26 19:25] (текущий) – [Настройка VSCode] admin
Строка 1: Строка 1:
 ====== Лобзик ====== ====== Лобзик ======
 +{{ :debugers:fr.png?direct&200|}}
 +===== SWD/JTAG отладчик на базе Black Magic Debug =====
 +
 +  * Полная поддержка Black Magic Debug: отладка «из коробки» без необходимости в дополнительном ПО вроде OpenOCD.
 +  * Два режима подключения: SWD (Serial Wire Debug) и JTAG — для максимальной гибкости.
 +  * Встроенная GDB-серверная функциональность: подключайтесь напрямую через GDB — никаких промежуточных утилит.
 +  * Открытая прошивка и схемотехника: вы можете изучать, модифицировать и адаптировать под свои задачи.
 +  * Поддержка целей RISC-V: идеален для работы с современными микроконтроллерами.
 +  * Поддержка **К1921ВГ015**
 +
 +[[https://kitslab.ru/debugers/sch.pdf|Схема отладчика]]
 +
 +{{ :debugers:pinout_1.png?direct&400 |}}
 +===== Настройка VSCode =====
 +Отладчик «Лобзик», полностью совместим с расширением Cortex-Debug для Visual Studio Code. Ниже приведено пошаговое руководство по настройке отладки.
 +=== 🔧 Предварительные требования ===
 +  - Установлено расширение Cortex-Debug в VS Code.
 +  - Установлен GDB, соответствующий архитектуре вашей цели:
 +  - Для ARM Cortex-M: arm-none-eabi-gdb
 +  - Для RISC-V: riscv32-unknown-elf-gdb или riscv64-unknown-elf-gdb (в зависимости от ядра)
 +  - Прошивка «Лобзика» обновлена до актуальной версии.
 +  - Целевая плата подключена к «Лобзику» через SWD или JTAG, и подано питание на цель,включая сигнал VTARGET (VCC).
 +=== 📄 Настройка launch.json ===
 +Откройте папку проекта в VS Code и создайте/отредактируйте файл ''.vscode/launch.json''.
 +
 +//Пример конфигурации для ARM Cortex-M (например, STM32)://
 +<code c>
 +{
 +  "version": "0.2.0",
 +  "configurations": [
 +    {
 +      "name": "Debug via Лобзик (BMP)",
 +      "type": "cortex-debug",
 +      "request": "launch",
 +      "servertype": "bmp",
 +      "BMPGDBSerialPort": "COM4",               // ← замените на ваш порт (Windows)
 +      // "BMPGDBSerialPort": "/dev/ttyACM0",    // ← Linux/macOS
 +      "gdbPath": "arm-none-eabi-gdb",
 +      "executable": "${workspaceFolder}/build/firmware.elf",
 +      "svdFile": "${workspaceFolder}/STM32F407.svd",
 +      "interface": "swd",
 +    }
 +  ]
 +}
 +</code>
 +//Пример конфигурации для RISC-V (K1921VG015)://
 +<code c>
 +{
 +  "name": "Debug RISC-V via Лобзик",
 +  "type": "cortex-debug",
 +  "request": "launch",
 +  "servertype": "bmp",
 +  "BMPGDBSerialPort": "COM7",                  // ← ваш COM-порт
 +  "gdbPath": "riscv-none-elf-gdb",
 +  "executable": "${workspaceFolder}/build/app.elf",
 +  "svdFile": "${workspaceFolder}/K1921VG015.svd",
 +  "interface": "jtag",
 +  // "powerOverBMP": "enable",                // ← Питание целевого устройства от отладчика (3.3V)
 +  "overrideLaunchCommands": [
 +    //"mon freq 1000000",                     // ← Частота JTAG
 +    "load"
 +  ],
 +  "overrideResetCommands": [
 +    "mon swreset"
 +  ],
 +  "overrideRestartCommands": [
 +    "mon swreset",
 +    "load"
 +  ]
 +}
 +</code>
 +
 +=== 💡 Примечания: === 
 +
 +Порт ''BMPGDBSerialPort'' можно найти в диспетчере устройств (Windows) или через ls /dev/tty* (Linux/macOS). «Лобзик» создаёт два COM-порта: первый — для GDB, второй — для UART.
 +Команда ''mon swdp_scan'' (для SWD) или ''mon jtag_scan'' (для JTAG) необходима для обнаружения целевого ядра.
 +''att 1'' — подключается к первому обнаруженному ядру (часто ''targetId: 1'').
 +Для ''K1921VG015'' добавлены кастомные команды сброса ''mon swreset'' и ''mon hwreset'' и команда стирания flash-памяти ''mon erase_mass''. Лобзик сам считывает состояние сервисного режима ''K1921VG015'' и сам выбирает метод стирания.
 +
 +Для стирания flash ''K1921VG015'' в сервисном режиме:
 +  * Подключить вывод ''SERVEN'' к питанию 3.3V 
 +  * Подключить питание ''K1921VG015''
 +  * Открыть в терминале ''riscv-none-elf-gdb''
 +  * Выполнить команды:
 +    * ''tar ext com2'' - указать com-порт отладчика
 +    * ''mon jtag''
 +    * ''att 1''
 +    * ''mon erase_mass''
 +При успешном стирании должны получить ''Erasing device Flash: done''
 +
 +=== ▶️ Запуск отладки ===
 +
 +  - Соберите проект и убедитесь, что .elf-файл содержит отладочную информацию (-g в флагах компиляции).
 +  - Нажмите F5 или выберите конфигурацию в панели отладки и нажмите «Start Debugging».
 +  - Cortex-Debug автоматически:
 +    * Подключится к «Лобзику» через указанный COM-порт,
 +    * Выполнит команды инициализации,
 +    * Загрузит прошивку (load)
 +
 +=== 📚 Полезные ссылки ===
 +
 +  * [[https://github.com/Marus/cortex-debug?spm=a2ty_o01.29997173.0.0.5784c9218ENmxG|Официальная документация Cortex-Debug]]
 +  * [[https://github.com/blackmagic-debug/blackmagic/blob/main/README.md?spm=a2ty_o01.29997173.0.0.5784c9218ENmxG&file=README.md|Black Magic Debug — User Guide]]
 +
  • debugers/fretsaw.1761477040.txt.gz
  • Последнее изменение: 2025/10/26 14:10
  • admin