Каждый раз, когда ваш процессор запускается, он по определению выходит из состояния сброса.То, что делает регистр состояния сброса, указывает источник или причину сброса, такие как включение питания, сторожевой таймер, отключение, инструкция по программному обеспечению, контакт сброса и т. Д.
Это не имеет значениязнать, когда ваш процессор перезагружен - это подразумевается тем фактом, что ваш код перезапустился.Это скорее вопрос знания причины сброса.
Вам вообще не нужно отслеживать или считывать состояние сброса, если ваше приложение не нуждается в этом, но, возможно, в некоторых приложенияхэто полезная диагностика, например, для поддержания количества различных причин сброса, так как это может указывать на стабильность программного обеспечения вашей системы, ее источника питания или поведение операторов.В идеале вы должны записать причину с отметкой времени, предполагая, что у вас есть подходящий источник RTC достаточно рано при запуске.Время сброса часто является полезной диагностикой, когда простого подсчета их может не быть.
Любой подсчет причины сброса должен произойти на раннем этапе запуска вашего кода, прежде чем будут разрешены какие-либо прерывания (потому что прерывание может само по себе вызватьсброс).Это может потребовать от вас реализации счетчиков в коде запуска до вызова main()
в тех случаях, когда код запуска может разрешать прерывания - например, для поддержки stdio или файловой системы.