본문 바로가기

Architecture/LM3S8962

[LM3S8962] WatchDog


워치독 타이머 모듈의 기능은 시스템이 중단되지 않도록하는 것이다. 와치도그 타이머 모듈은 32bit 다운 카운터, programmable load register, interrupt generationn logic, locking register로 구성되어 있다.
 워치독이란것은 말 그대로 해석하면 감시견이라고 할수 있다. 시스템이 이상이 생겨 비정상적으로 동작하면 자동으로 시스템을 리셋하여 다시 정상적으로 프로그램이 동작하도록 해주는 기능이다.
 동작원리는 리셋이 가능한 타이며이며 타이머가 시간이 오버될때 리셋이 되도록 구성되어 있습니다. 그래서 워치독타이머를 활성화 한 상태에서 주기적으로 워치독타이머를 계속 초기화 해주어야 한다. 만일 메인 프로그램이 한번 돌때 한번씩 초기화 해준다고 할때 정상적일때는 초기화가 지속적으로 이루어저 정상 동작하지만 외부잡음등으로 메인프로그램이 멈춘경우 또는 엉뚱한 곳으로 점프한 경우 위치타이머가 초기화되지 않으므로 시스템 리셋이 발생하여 프로그램이 다시 정상적으로 복귀된다.
워치독을 사용할 경우 데이터나 변수 등을 리셋되기 전 상태로 디ㅗ돌리는 등의 소프트웨어 기교가 필요하다.
 외부 잡음이 심한환경이나 고 신뢰성이 요구되는 시스템은 워치독차이머 사용이 필수이나 일반적인곳은 사용하지 않는것이 대부분이다.






1. 워치독 라이브러리 함수
 1. 워치독 제어함수
WatchdogEnable - 워치독 타이머 사용
WatchdogRunning - 워치독 타이머 사용중인지 리턴
WatchdogResetEnable - 워치독 타이머 리셋(재설정) 기능 사용
WatchdogResetDisable - 워치독 타이머 리셋(재설정) 기능 사용하지 않음
WatchdogStallEnable - 디버깅 과정 중에 워치독 타이머 일시정지 될수 있도록
WatchdogStallDisable - 디버깅 과정에서 워치독 타이머 정지

2. 세팅함수
WatchdogReloadSet - 워치독 타이머 리로드 값을 세팅
WatchdogReloadGet - 워치독 타이머 리로드 값을 가져옴
WatchdogValueGet - 현재 워치독 타이머 값 가져옴
WatchdogLock - 워치독 타이머 락 메커니즘을 활성화
WatchdogUnlock - 워치독 타이머 락 메커니즘 비활성화
WatchdogLockState - 워치독 타이머 락 상태 리턴

3. 인터럽트 함수
WatchdogIntEnable - 워치독 인터럽트 활성화 함수
WatchdogIntStatus - 워치독 인터럽트 레지스터 값 받아옴
WatchdogIntClear - 인터럽트 레지스터값 클리어
WatchdogIntRegister - 워치독 인터럽트 핸들러 등록
WatchdogIntUnregister - 워치독 인터럽트 핸들러 해제

4. 워치독 루틴
 소스코드 참고