STM32L151 - отладчик запускается по неправильному адресу.. иногда

Я только начал работать над микроконтроллером STM32L151. Я настроил отладчик на прерывание при первой инструкции (не основной), но когда я начинаю отладку, счетчик программы останавливается на 0x1ff00b84, который даже не является частью флэш-памяти (начиная с 0x8000000 -> 0x8010000).

Это становится странным, потому что, когда я пытаюсь сбросить сеанс отладки (без повторной загрузки программы), пару раз он наконец останавливается на первой инструкции в моем файле запуска (startup_stm32l1xx_md.s), и все работает гладко, пока в следующий раз я Нужно запрограммировать устройство и снова запустить отладчик.

Я использую CoIDE с компилятором "GNU Tools ARM Embedded 4.8 2014q2". И я бегу на каком-то кастомном HW, который только что прибыл. Я использую SWD с платы обнаружения STM32 для программирования чипа.

Надеюсь, у кого-то есть идея?

1 ответ

Решение

Этот адрес находится в ПЗУ загрузчика. Такое поведение говорит о том, что вывод BOOT0 может быть плавающим; убедитесь, что он привязан к GND для загрузки с флэш-памяти.

Другие вопросы по тегам