Перейти к содержанию
    

STM32L051/ G071 не стирает и не пишет флэш, если есть активные брейкпоинты (Keil MDK-ARM + ST-Link V2)

Друзья,

Есть STM32L051, STM32G071.

Среда разработки Keil MDK-ARM (обновил до 5.35).

Отладчик ST-Link V2 (синий свисток) (прошивка обновлена до свежей).

Если в программе есть активные брейкпоинты, то при попытке стирания или записи страницы внутреннего флэша возникает ошибка HAL_ERROR (даже в фирменных примерах из MX_Cube)

Если использовать отладчик J-Link то все ок.

Как-то подружить ST-Link V2 с Keil можно ?

Изменено пользователем TOG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

41 минуту назад, TOG сказал:

Если в программе есть активные брейкпоинты, то при попытке стирания или записи страницы внутреннего флэша возникает ошибка HAL_ERROR (даже в фирменных примерах из MX_Cube)

Если использовать отладчик J-Link то все ок.

J-Link умеет аппаратные бряки, а ваш ST-Link - видимо нет (а может такая настройка у вас в свойствах проекта), ставит их только во флешь. Отсюда и ошибка.

41 минуту назад, TOG сказал:

Как-то подружить ST-Link V2 с Keil можно ?

Перешить его в J-Link.

Хотя я не уверен сколько в перешитом будет аппаратных бряков (и будут ли вообще). Надо проверять.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Друзья, ситуация страшная.

У меня еще есть отладка STM32F746-Discovery (в ней встроенный ST-Link V2.1).

Беру фирменный HAL'овский пример FLASH (стирает несколько страниц и записывает туда какие-то значения).

Такая-же беда:

при установке брейкпоинта, микроконтроллер сразу выставляет флаг PGSERR (Programming sequence error), отладка программы идет нормально, но все операции с внутренним флешем обламываются (страницы не стираются, данные во флеш не пишутся).

Если брейкпоинт не ставить, а проходить программу пошагово, то все работает, страницы стираются, данные пишутся.

Видимо действительно отладчик пытается ставить не аппаратные, а программные брейкпоинты (которые в общем-то нормально срабатывают и отладка идет нормально). 

Если попытаться поставить более 8 брейкпоинтов, то Keil показывает окно, что "All HW breakpoints in use. SW breakpoints can't write to memory"

Где это можно как-то настроить ума не приложу. Спасайте дурня.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если МНИМС, то обладателю "дискавери" Сеггеры позволяют совершенно легально встроенный st-link препрошить в jlink-ob (без плясок с бубном вокруг патчения прошивки). Подозреваю, что с jlink-ob жизнь будет бодрее.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...