Здравствуйте. Пытаюсь отладить плату STM32F0Discovery через встроенный STLink из Keil. Не получается, при попытке запуска появляется ошибка "Cannot load flash devise description".
StLink Utility программирует без проблем. Кто-то что подсказать сможет?
PS: При открытии проекта Keil ругается Loading PDSC Description Failed. Может, это в тему?
А в Flash -> Cunfigure Flash Tools... вкладка Debug все настроил как надо?
В верхнем правом углу Use выбрать ST-Link Debugger, рядом кнопик Setting, там на вкладке Debug в секции Debug Adapter выбрать Unit ST-LINK/V2, в секции Target com выбрать Port SW, далее на вкладке Flash Download в секции Download Function добавить галочку Reset and Run и, если Кейл 5.27 или свежее, на вкладке Pack поставить галочку Enable.
А еще, в том же Configure Flash Tools, на вкладке С/С++ можно подкрутить уровень оптимизации.
Кто мешает тебе выдумать порох непромокаемый? (К. Прутков, мысль № 133)
Удалось стереть и запрограммить Flash. Уже прогресс. Но отладка пока не стартует.
Зато ошибка теперь другая: Error: Target DLL has been cancelled. Debugger aborted !
Хм... Будешь смеяться, но я не умею.
Ну, то есть я пробовал, но кэил начал ныть что-то про хочу кубу... а он к тому моменту уже так меня достал своим нытьем...
Вобщем, щаз еще раз попробую
Если вкратце, то в новых версиях Koil-a были обновлены библиотеки для отладчика ST-Link и платы с V1x версиями отладчиков остались за бортом. Подробнее здесь - https://www.keil.com/support/docs/4204.htm Но указанный метод лечения мне не помог, а помогла установка старой версии Koil-a (V4.74.0.0)
- на новом компе, ставлю Keil 5.34 и ST-Link v4.6.0
- ST-Link шьет камень любой без проблем, версия "свистка" V2J37S7, но Keil ни в какую не хочет прошивать камень! (знакомая ситуация)) )
- весь день потрошил разные версии Keil-а от 5.29 и выше, также меняя дрова для ST-Link и версию прошивки, результатов не давало
- все рекомендации, в. т.ч. Keil-а по замене dll, не работают
Но нашел у себя проект который на удивление шился и дебажился без проблем!!!
Попробовал повторить его настройки в текущем, вплоть до копирования файлов проекта и сборки проекта с нуля, результата нет...
Наконец, ковыряясь в настройках успешно "сломал" работающий проект, вот - поймал!
Проверяю на "не работающем" - заработал.
Вот в чем была проблема:
Входим в Project/Options ..., на вкладку Debug.
Жмем кнопку [Settings]
Открываем вкладку Flash Download
Раздел RAM for Algorithm
в поле Size: вбиваем тупо 0x00001000 (не зависимо от реального размера RAM!!!)
Все, теперь работает!
ps
Я правил этот параметр согласно реальному RAM, например для STM32L151C8T вписывал 0x00008000 (32kB), и все вылетало.
0x1000 если не думать, для конкретного камня подходит до 0x4000, но на борту у него 32K
СОБАКУ целиком не съел, но по надкусывал.
Написал в Keil тест. Суть теста: запустить systick и ждать события командой WFE, затем возврат на WFE.
Залил через куб и он уснул. Подключил ST-link по SW. Зажал резет, нажал флеш загрузку в keil и сразу опустил резет.. прошился.
Еще был затор с Programming Algorithm нужный мне .flm файл лежал не в рабочей папке а в подкачиваемом пакете.