Отладка микроконтроллеров 1986ВЕ в VSCode через J-Link

В VSCode для отладки микроконтроллеров используется плагин Cortex-Debug. При отладке контроллеров 1986ВЕ1Т через J-Link я столкнулся с проблемой, что при запуске отладки не происходит полное стирание памяти. Стираются только страницы, которые будет занимать новое приложение.

В целом в этом нет ничего плохо, но в моем случае мне нужна была полная очистка памяти. Чтобы этого добиться нужно добраться до исходных файлов плагина, которые в Linux расположены по адресу (зависит от версии плагина):

/home/$USER/.vscode-oss/extensions/marus25.cortex-debug-0.2.6/out/src

Там найти файл openocd.js и в функции launchCommands() добавить команду flash erase_sector 0 0 1. Этот кусок будет выглядеть так:

launchCommands() {
        const commands = [
            'interpreter-exec console "monitor reset halt; flash erase_sector 0 0 1"',
            'target-download',
            'interpreter-exec console "monitor reset halt"',
            'enable-pretty-printing'
        ];
        if (this.args.swoConfig.enabled) {
            const swocommands = this.SWOConfigurationCommands();
            commands.push(...swocommands);
        }
        return commands;
    }

Эта команда стирает полностью весь сектор файла, а в конфигурации для openocd у этих контроллеров вся память указана одним сектором. Полный файл доступен по ссылке.

После этого при каждом запуске отладки стираться будет вся память, а не только ее часть.