Оставшийся после
вчерашнего вопрос "А как же прошить получившийся код в плату с помощью ST-LINK V2" наконец-то решен. Небезупречно, но тем не менее...
Итак, встроенный в IDE OpenSTM32 OpenOCD вполне успешно работает под Ubuntu 16 - и flash шьет, и отлаживает. Просто я был сбит с толку двумя фактами:
- Пробный код не заработал из-за ошибки в первом параметре HAL_GPIO_WritePin() - светодиод не мигал, и я не знал, прошит ли мой код или нет
- OpenOCD на моей плате не может сделать hardware reset, поэтому для того, чтобы он не завершался аварийно, надо на плате держать нажатой кнопку Reset и отпускать ее после окончания прошивки, но до таймаута отладчика
Такая вот условно-рабочая конфигурация получилась. Надо все же научить OpenOCD ресету, для чего надо попоравить один из сотни cfg-файлов, описывающих конкретную плату. Какой из них используется в моем случае - не могу понять пока. Но это не ожидаемый nucleo_f103rb.cfg, который указан в настройках проекта. В общем, надо все же решить этот вопрос, чтобы стало совсем ... ну не то, чтобы удобно, но хотя бы приемлемо.
А пока собрал из исходников git-а
утилиты st-flash и st-info и четко шью код с их помощью из командной строки: "st-flash write blink.bin 0x08000000" не имея проблем с reset-ом.
И вот, пометка себе на будущее - надо еще научиться в OpenSTM32 собирать код без отладочной информации - просто переключив профиль от дефолтного Debug на Release теряю все настройки - инклюды не ищутся и т.п. печали. В общем тяжело идет переход от Ардуины к STM32, будто у меня гири к ногам привязаны, а к поясу - цепь, на конце которой шина от К700 по земле за мной волочится.