пока я использовал cubemx для настройки периферийных устройств моего ядра stm32f407, непосредственно перед генерацией кода я проверил и выбрал диалоговое окно «установить все свободные контакты как аналоговые (для оптимизации энергопотребления)» в настройках проекта -> генератор кода -> Настройки HAL без маскировки отладочных контактов (swdio и swclk). После этого я успешно загрузил простой мигающий код внутри микроконтроллера, используя keil ide. но теперь, когда я хочу использовать keil для удаления или загрузки кода, я вижу ошибку «Нет подключенной цели» на вкладке отладки и не могу загрузить какой-либо код. Как я могу решить эту проблему? Спасибо за вашу помощь.
проблема отладки в ARM stm32f407
comment
Это ваш дизайн платы или стандартная плата и т. д.? должен быть способ изменить контакт boot0, часто это кнопка или перемычка. это приведет к альтернативному пути загрузки в их загрузчик, затем вы можете войти с swd, uart, usb или чего-то еще и попробовать еще раз.
- person old_timer   schedule 03.08.2018
comment
Спасибо за Ваш ответ. да ты был прав. но я вроде как новичок в этой области, и я еще не знаю, как использовать uart и другие подобные средства. но в любом случае еще раз спасибо за уделенное время.
- person Alex Maxwell   schedule 04.08.2018
comment
Подключение stlink при сбросе звучит специфично для отладчика, я бы не стал полагаться на него, вывод boot0 — это то, на что вы можете положиться, и это то, что вы должны использовать во всех своих проектах плат. Если на чипе, отличном от stm32, вы хотите создать что-то подобное в своей прошивке, обычно вас убивает инициализация часов, но если вы испортите gpio, то игра также может быть окончена. Конечно, есть эта новая проблема с курицей и яйцом, связанная с изучением gpio без уничтожения доступа к отладке / полевому программированию.
- person old_timer   schedule 04.08.2018
comment
Некоторые конструкции AVR и другие чипы программируются в процессе перезагрузки, легко решая эту проблему. Поставщики ARM до сих пор имели тенденцию использовать загрузчики на основе программного обеспечения для рук или полагаться на swd, который не работает таким образом, а не на разработку логики. в основном они используют то, что пришло с ним, а не делают что-то новое, поэтому вам нужно защитить себя. Еще один способ сделать это: я всегда покупаю по крайней мере два новых для меня продукта, на случай, если я сразу закину один, я могу попытаться продолжить работу с другим, пока жду, когда появятся новые.
- person old_timer   schedule 04.08.2018
Ответы (2)
Примерно через 10 часов поиска я нашел решение. если у кого-то была такая же проблема, вот решение:
person
Alex Maxwell
schedule
04.08.2018