Имярек (powerkite) wrote,
Имярек
powerkite

Осваиваю инструментарий STM32

Оставшийся после вчерашнего вопрос "А как же прошить получившийся код в плату с помощью 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 по земле за мной волочится.
Tags: electronics
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments