Продолжение темы: Китайцы - такие китайцы. Сначала продали мне WCH-LinkW вместо WCH-LinkE. Теперь оказалось, что вместо программатора - отладчика, продали
эмулятор!
Второй день бьюсь над свежим портом FreeRTOS на CH32V317. Перевожу на
блокировку прерываний порогом ITRHESDR. Но светодиод не мигает. Кучу
косячков поправил, всё работает, вроде, а из задачи - не мигает.
Уже биты, настройки порта проверяю. Оказывается, настройки GPIO в норме,
бит выхода - мигает. Правда, раз в 10 мдленнее, чем надо...
Проверил - по схеме платы именно с этого бита, этого порта сигнал на светодиод должен идти. Проверил даже регистр входа этой лапки - соответствует! А светодиод - не мигает. Безвыходная ситуация!
Почесл репу. Думаю, дай хоть исключу, что отлаживаю что-то другое, а не свою плату. Отключил от компа другие шнуры USB. То же самое.
Ещё почесал. Отключил WCH-LinkE от CH32V317. Снял питание с платы. И...
Отладка запускается! По инструкциям шагает, GPIO ODR и IDR битом клацают!!! Короче, оно исполняется в самом WCH-LinkW, в его чипе, а не в моём таргете, который отключён. Отсюда и меньшая скорость мигания.
Ранее я писал про случай, когда CH32V317, вроде, отлаживался, но выходы не работали. Так вот, похоже, это было исполнение кода моего проекта (а он всего ~15кБ) в отладчике. Отладчик, по факту, оказался эмулятором!
Чудеса какие-то.