debugers:fretsaw

Лобзик

  • Полная поддержка Black Magic Debug: отладка «из коробки» без необходимости в дополнительном ПО вроде OpenOCD.
  • Два режима подключения: SWD (Serial Wire Debug) и JTAG — для максимальной гибкости.
  • Встроенная GDB-серверная функциональность: подключайтесь напрямую через GDB — никаких промежуточных утилит.
  • Открытая прошивка и схемотехника: вы можете изучать, модифицировать и адаптировать под свои задачи.
  • Поддержка целей RISC-V: идеален для работы с современными микроконтроллерами.
  • Поддержка К1921ВГ015

Схема отладчика

Отладчик «Лобзик», полностью совместим с расширением Cortex-Debug для Visual Studio Code. Ниже приведено пошаговое руководство по настройке отладки.

🔧 Предварительные требования

  1. Установлено расширение Cortex-Debug в VS Code.
  2. Установлен GDB, соответствующий архитектуре вашей цели:
  3. Для ARM Cortex-M: arm-none-eabi-gdb
  4. Для RISC-V: riscv32-unknown-elf-gdb или riscv64-unknown-elf-gdb (в зависимости от ядра)
  5. Прошивка «Лобзика» обновлена до актуальной версии.
  6. Целевая плата подключена к «Лобзику» через SWD или JTAG, и подано питание на цель,включая сигнал VTARGET (VCC).

📄 Настройка launch.json

Откройте папку проекта в VS Code и создайте/отредактируйте файл .vscode/launch.json.

Пример конфигурации для ARM Cortex-M (например, STM32):

{
  "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",
    }
  ]
}

Пример конфигурации для RISC-V (K1921VG015):

{
  "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"
  ]
}

💡 Примечания:

Порт 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

▶️ Запуск отладки

  1. Соберите проект и убедитесь, что .elf-файл содержит отладочную информацию (-g в флагах компиляции).
  2. Нажмите F5 или выберите конфигурацию в панели отладки и нажмите «Start Debugging».
  3. Cortex-Debug автоматически:
    • Подключится к «Лобзику» через указанный COM-порт,
    • Выполнит команды инициализации,
    • Загрузит прошивку (load)

📚 Полезные ссылки

  • debugers/fretsaw.txt
  • Последнее изменение: 2025/10/26 19:25
  • admin