Программный
Для различных целей нам необходимо бывает перезапустить МК. Чтобы не было "костылей" по типу - линия порта к линии сброса, в нашем МК предусмотрен программный сброс.
Для начала создадим папку проекта:
nis@jane ~/stm32/f4examples/08-reset $ cp -a 01-hardware/ 02-software
nis@jane ~/stm32/f4examples/08-reset $ cd 02-software/
Алгоритм работы кода следующий: мы в обработчике внешнего прерывания на линии 0 (к которой подключена наша кнопка пользователя), вызываем программный сброс. В функции work(), помимо инициализации периферии мы обрабатывает данные от регистра статуса и контроля RCC_CSR.
Начнем с добавления обработчика в startup.c.
После добавим инициализацию используемой периферии и заодно новый выбор для типа сброса в work.c.
Соберем проект и загрузим в МК:
nis@jane ~/stm32/f4examples/08-reset $ make write
Видео: