본문 바로가기
임베디드.일렉트로닉스/nRF52

nRF52 . 리셋 사유 코드에서 확인 방법

by i.got.it 2023. 7. 26.

 

 

 

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

 


 

댓글



 

비트코인




암호화폐       외환/나스닥/골드         암호화폐/외환/나스닥/골드
     
현물 |선물 인버스 |선물 USDT       전략매니저(카피트레이딩)         프랍 트레이더 온라인 지원가능. MT4,MT5