nRF52 리셋 사유 확인 코드
main()
{
APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
NRF_LOG_DEFAULT_BACKENDS_INIT();
uint32_t ui32_reset_reason = NRF_POWER->RESETREAS;
NRF_LOG_INFO("Reset Reason = 0x%x\n", ui32_reset_reason);
NRF_POWER->RESETREAS = NRF_POWER->RESETREAS; // a field is cleared by writing 1.
.. // softdevice 활성화 전에 상기 실행해야함.
while()
{
...
}
}
상기 코드에서 NRF_POWER->RESETREAS = NRF_POWER->RESETREAS; 부분이 통상적이지 않은 코드 인데, 본 레지스터의 특성이 1을 기록하면 해당 비트값이 0이 됨.
레지스터 NRF_POWER->RESETREAS 는 사용자가 별도로 비트값을 지우지 않으면 이전 정보들이 지워지지 않고 계속 남아있기에 직전 리셋 사유를 알고 싶은 경우에는 모두 0으로 초기화 하는 코드임.
위 코드로 디버깅 시켜 출력 확인예.

16진 4 이므로 바이너리로는 100 . 100 즉 아래서 3번째 비트가 1인 것을 문서 (https://infocenter.nordicsemi.com/pdf/nRF52840_PS_v1.7.pdf 페이지 78) 에서 확인해보면 soft reset 임.
만일 핀 리셋을 시켜보면 Reset Reason = 0x1 로 보인다.
연관
nRF52 리셋 전체
nRF52 . reset
Reset Reason - nRF52 는 총12개의 리셋 요인 있고, 레지스터 RESETREAS 에서 어떤 요인에 의하여 리셋되었는지 확인 가능. - 레지스터에는 9개의 리셋요인만 있고, 9개 중 어느 것도 아닌 경우에는 파워온
igotit.tistory.com
상위정리
https://igotit.tistory.com/244 의 nRF52
STM32. nRF52. ESP32. EFM8. EFM32. PSoC 활용 정리.
STM32. nRF52. ESP32. EFM8. EFM32. PSoC 총정리 제조사 칩 주요특징 실리콘랩 8bit MCU EFM8 시리즈 32bit EFM32 시리즈 EFM8 싸다. STM STM32 . 최고 항상 만족. Cypress pSoC pSoC6 은 기대해볼만. NORDIC nRF52 블투 무선솔루
igotit.tistory.com
첫 등록 : 2023.07.26
최종 수정 :
단축 주소 : https://igotit.tistory.com/4746
'임베디드.일렉트로닉스 > nRF52' 카테고리의 다른 글
SES . 해결 . #error "libc++ does not support using GCC with C++03. Please enable C++11" (0) | 2023.07.27 |
---|---|
nRF52 . 코드에서 핀 리셋 용 GPIO 핀 연결 설정 . CONFIG_GPIO_AS_PINRESET (0) | 2023.07.26 |
nRF52 . reset (0) | 2023.07.26 |
SES . 프로젝트 복사하여 다른 이름 새 프로젝트 만들기. (0) | 2023.07.24 |
nRF52 . 플래시 메모리 쓰기, 지우기 (0) | 2023.07.24 |
댓글