Я недавно купил STMicroelectronics NUCLEO-F446ZE , и я пытаюсь настроить среду сборки и отладки с использованием Visual Studio Code и создать с помощью mbed Framework .
Что я сделал:
Я настроил MSYS для make в Windows.
Я скачал gcc-avr-none-eabitoolchain
Я создал проект mbed с онлайн-инструментами mbed и загрузил его для использования вместе с make.
Я обновил ST-Ссылка прошивки на мою плату
Я установил USB-драйвер для Windows
Я установил ST-Link-Server
Я установил расширение cortex для vscode
Это простой код, который я пытаюсь отладить (для тестирования этоработает просто отлично)
#include "mbed.h"
DigitalOut myled(LED1);
int main()
{
while (1)
{
myled = 1; // LED is ON
wait(0.2); // 200 ms
myled = 0; // LED is OFF
wait(0.2); // 200 ms
myled = 1; // LED is ON
wait(0.2); // 200 ms
myled = 0; // LED is ON
wait(1.0); // 1 sec
}
}
И после того как я все это сделал почти все заработало!Я могу построить, я могу прошить, и я могу даже отладить, НО символы cpp, кажется, не совпадают.
Некоторые из моих точек останова не достигнуты вообще, а с другими программа останавливается на одну строку выше или ниже требуемоголиния.Я не могу прочитать какие-либо переменные на панели «Смотреть» и не имею информации о разборке.
Вот ссылка на gif , которая показывает оба: одна точка останова игнорируется, другая останавливается нанеправильная строка.
Также, если я нажимаю F10, чтобы перешагнуть через инструкцию, выделенная строка иногда перемещается назад.
Я действительно не знаю, как исправить это раздражающее поведение.Я думаю , что у меня были похожие проблемы при отладке "обычного" кода C ++, работающего локально на моем ноутбуке (с MingW).Так что, возможно, это не имеет ничего общего со встроенной разработкой, но это общая проблема c ++ в vscode?
Редактировать:
Когда выполнение останавливается в неправильной строке, консоль отладки фактически говорит:
Breakpoint 1, main () at ../main.cpp:12
12 wait(0.2); // 200 ms
Но я установил точку останова в строке 11 в редакторе, а не в строке 12.: (