기존 이솝 임베디드 포럼의 지식인 서비스가 게시판 형태로 변경되었습니다.

안녕하세요^^;;

 

watchdog을 좀 보고있는데요...  개념이 안잡혀서 기본적인 질문좀 드릴께요^^;;;

(타겟보드.... 퀄컴칩이고 Linux Kernel 2.6.35에 안드로이드 2.3 입니다..)

 

CPU안에 같이 있거나,, 혹은 밖에 있기도한...

HW watchdog이 타이머에 의해서 설정된 카운트를 감소시키는데...

Task들이 정상적으로 동작한다면 타이머를 리셋시키고...

혹시나 문제가 생겨 Kick이 안된다면... watchdog이 processor를 리셋 시키는거 맞나요??

 

그렇다면... watchdog timer를 리셋시키는... kick 레지스터에 값을쓰는,  즉,   개를 발로차는 애가 누구인지 모르겠습니다.

( watchdog 드라이버에 타이머를 리셋시키는 함수를 누가 호출하는건지..;;)

 

구글링 해봐도...  사나운 개(watchdog)를 주기적으로 발로 차줘야 물지않고,,, 혹시나 문다면 리셋이 일어난다는..

이런 이론적인 내용뿐이라.. 실제로 내부적으로는 어떻게 동작하는건지 알고 싶습니다..

(H/W에 대한 개념이 전무한...ㅠ APP 개발자다보니;;;  잘 모르겠습니다..ㅎㅎ)

 

 

그리고.. 커널의 디바이스 드라이버에 보면 데몬으로 동작하는 S/W watchdog이 있는데요..

이게 HW Watchdog과 무슨 차이가 있는건지도 좀 알려주시면 감사하겠습니다~

 

 

 

몇일동안... watchdog 문서만 들여다 보고있으니.. 꿈에도 개가 나올것 같습니다..ㅠ

 

 


funmoney

2011.07.13 04:20:01
*.169.251.167

Q :

CPU안에 같이 있거나,, 혹은 밖에 있기도한...

HW watchdog이 타이머에 의해서 설정된 카운트를 감소시키는데...

Task들이 정상적으로 동작한다면 타이머를 리셋시키고...

혹시나 문제가 생겨 Kick이 안된다면... watchdog이 processor를 리셋 시키는거 맞나요??

 

A. 예 맞습니다. watchdog 이 HW 적인 전기신호를 발생시켜 processor 를 reset 시킵니다.

 

Q : softdog.c 에 있는 software watchdog 이란 무엇인가요?

A : softdog.c 에 있는 software watchdog 이란 sw 적으로 timer를 생성하고 이 timer 에 expired time period 를 설정해놓고

      expired 시의 호출된 callback 함수를 mapping 시켜놓은 것입니다. mapping callback 함수는 sw 적으로 PC(program counter)

      를 0번지 (ARM 의 경우) 또는 Reset Vector 번지 (PPC의 경우) 이동시켜서 rebooting 을 하는 것입니다.

      추가로

      software timer 라 함은 그 그본 clock 역시 SoC processor 내부의 hw 적인 timer 에 근간을 이루고 있습니다.

      이 hw 적인 timer 는 OS 의 심장박동수로 활용이 되는데 이를 sw 적으로 분기시켜서 여러개의 논리적인

      (software적인) timer 를 만들수 있고 여기에 callback 역시 mapping 시킬 수 있습니다.

 

      반면에 HW watchdog 은 물리적으로 독립된 watchdog timer (counter) 가 expired 시점에서 전기적으로 RESET 핀에

      low (0[V]) 를 만들어 내어 software 에 의한 것이 아닌 말그데로 HW 적으로 시스템을 rebooting 하는 것입니다.

 

      그런다면 , 똑같이 reboot 인데 외 software watchdog 을 두고 hardware watchdog 을 사용하는가?

      그 이유는 OS 가 만들어 내는 sw timer 의 경우 OS 에 의하여 counting 이 이루어 집니다. 따라서 만약 OS 가

      뻗었다면(어떤 이유에서인지 무한루프에 빠졌다면) sw timer 는 counting 이 도지 않습니다. 따라서 사실상

      시스템이 멈추었는데도 rebooting 이 되지 않는 위험요소가 존재합니다. 반변에 HW watchdog 은 HW 가 고장나지

      않는한 100 % 시스템의  rebooting을 보장합니다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
» watchdog 관련 질문드립니다. [1] 이종범 2011-07-12 1069

사용자 로그인