Поиск
Показаны результаты для тегов 'st-link'.
-
В аппаратно-программной системе проблема при подаче питания. Требуется отладка. Но отладчик STM32CubeIDE отваливается при снятии с STM32 питания. Как быть?
-
Имеется МК на Cortex-M4, подключенный к IAR через ST-Link. Хочется запустить в его ОЗУ своё приложение не трогая прошивку во флешь. Создал проект, слинковал его в ОЗУ данного МК. Если теперь загрузить этот проект на исполнение в МК, то он нормально грузится, но начальное содержимое PC и SP берётся из той области, которая указана как загрузочная в данный момент при помощи BOOT-пина. Таковых областей может быть две: 1)флешь программ, 2)системная ROM. Т.е. - PC:SP берутся из начала этих областей. Мне же нужно, чтобы после загрузки программы через ST-Link в МК, начальное содержимое PC:SP бралось из таблицы векторов из начала ОЗУ. В МК есть возможность старта из ОЗУ, но для этого нужно установить в требуемое положение бит BOOT1 (это не пин, а бит во флешь). Сейчас этот бит стоит в таком положении, что выбирается старт из system-ROM. Как, не меняя этого бита во флешь, и не меняя флешь вообще, выставить PC:SP как надо? Я создал .mac-файл и делаю ремап ОЗУ на адрес 0 и заношу в VTOR начало моей таблицы векторов в начале ОЗУ. Так: Память нормально ремапится, таблица векторов - тоже. Но на PC:SP это не влияет. И если сейчас нажать F5, то исполняться пойдёт код из Flash или system-ROM (в зависимости от BOOT0-пина). Как изменить регистры CPU макросами? - я что-то не нашёл в доках. Можно конечно руками менять, но это неудобно при каждой загрузке делать это. Пробовал делать в execUserReset() после __RemapSRAM1(): __writeMemory32(0x05FA0001, 0xE000ED0C, "Memory"); //activate reset irq (NVIC.AIRCR=0x5FA0001); Но тогда выполнение кода стартует сразу же после загрузки (стартует правильно - мой загруженный в ОЗУ код). Но как сделать, чтобы регистры поменялись, но выполнение не стартовало???