2009-11-27 4 views
4

수 있습니다. 시작/부팅 코드를 실행하는 동안 워치 독을 활성화 또는 비활성화해야하는지 여부를 알려줄 수있는 사람은 누구입니까? 내 친구는 일반적으로 부트 코드에서 워치 독을 사용 중지한다고 말했습니다. 아무도 나에게 그렇게하는 이점이나 단점이 무엇인지 말해 줄 수 있습니까 ??워치 도그 타이머에 대해서

답변

4

정말 프로젝트에 따라 다릅니다. 워치 독은 코드를 실행하는 동안 프로그램이 "멈추지"않게하는 데 도움이됩니다. - 부트 절차 중에 프로그램이 중단 될 가능성이있는 경우에는 워치 독도 통합하는 것이 좋습니다.

그런데 일반적으로 부트 업 절차가 끝나면 워치 독을 시작합니다.

0

트랜지스터 전환이 적어서 전력 소모가 아주 적습니다. 당신이 얼마나 많이 자느냐에 따라 이것은 실제로 큰 절약 일 수 있습니다. 친구가 실제로 뭔가를 할 때 WDT를 끄고 잠자기 할 때 WDT를 끄는 연습을하는 것일 수 있습니다. WDT를 정상 작동 (FWDTEN = 0), 다음 SWDTEN 비트 (RCON < 5>) 동안 사용하지 않으면

"방금 전에 WDT를 켜하는 데 사용할 수 있습니다 마이크로 칩은 약 their PICs 제공하는 좋은 작은 지점이있다 잠자기 모드로 들어가기 "

3

일반적으로 WD (watchdog)는 프로그램이"루프 "에 들어가고 주기적으로 WD를 시작하기 때문에 부팅 절차 후에 활성화됩니다. 부팅하는 동안 하드웨어 및 주변 장치의 선형 초기화를 의미한다고 가정하면 코드에 주기성이 훨씬 적고 WD 실행주기를 삽입하기가 어렵습니다.

2

항상 사용하도록 설정했습니다. 사용 중지의 이점은 무엇입니까? 부트 코드 중에 리셋해야한다면 어떻게해야할까요?

3

생산 코드는 항상 워치 독을 활성화해야합니다. 취미 및/또는 프로토 타입 프로젝트는 워치 독이 필요하지 않은 특수한 경우입니다.

부팅하는 동안 워치 독이 활성화되어있는 경우 고려해야 할 특별한 경우가 있습니다. 메모리 지우기 및 쓰기에는 시간이 오래 걸립니다 (전체 장치를 지우면 완료하는 데 몇 초가 걸릴 수 있습니다). 따라서 지우기 및 쓰기 루틴이 재설정을 방지하기 위해 정기적으로 워치 독에 서비스하는지 확인해야합니다.

3

디버깅하는 경우 코드를 사용하지 않으려면 디버그를 해제하거나 장치를 다시 부팅하십시오. 그렇지 않으면 그것은 당신에게 달려 있습니다. 워치 독이 프로젝트의 엉덩이를 저장하는 것을 보았고 워치 독이 실수로 재부팅 루프로 이어져 고객이 지원 라인을 막히게되어 회사에 비용이 들게되었습니다.

전화를 겁니다.

3

전원을 켰을 때 워치 독이 자동으로 활성화되도록하는 것이 가장 좋습니다. 하드웨어가 스위치를 위해 설계되지 않은 경우 가능한 한 빨리 켜십시오. 일반적으로 부트 업 동안 워치 독을 오랜 기간 동안 설정했지만 부팅이 끝나면 짧은 시간 동안 나가서 정기적으로 워치 독에 서비스를 제공합니다.

플랜트를 종료하고 원격 위치에서 다시 시작한 후 정지 한 보드를 항상 재설정 할 필요는 없습니다. 또는 보드가 접근 할 수없는 지하 크롤링 공간에 위치하고 있으며 전원이 꺼진 후에 보드가 다시 시작되지 않았습니다. 랩 쉬운 방법은 현실 세계 최고의 사례가 아닙니다.

부팅 및보고시 소프트웨어가 재설정 원인을 확인할 수 있도록 하드웨어를 시험하고 설계하십시오. 워치 독 시간 초과가 발생하면 시스템에 장애가 발생하여이를 무시하면 나중에 문제가 발생할 수 있으므로 알아야합니다.

워치 독을 끄고 디버깅하는 것이 더 쉽지만 개발 중에는 워치 독으로 정기적으로 테스트하여 모든 것이 제대로 작동하는지 확인합니다.

2

워치 독 (Watchdogs) IMHO는 세 가지이지만 별개의 주요 목적과 세 번째로 덜 강하게 관련된 목적을 수행합니다. (1) 시스템이 우연히 두절되는 모든 상황에서 결국 복구됩니다. ; (2) 서비스가 제공되지 않고 너무 오래 지나치게 길어서는 안되는 하드웨어가 활성화 된 경우, 그러한 서비스를 방해하는 것이 있으면 시스템을 신속하게 종료해야합니다. (3) 영원히 잠을 자지 않고 잠시 잠들 수있는 방법을 제공하십시오.

부트 로더 중에 워치 독을 비활성화하면 목적 # 2에 영향을 미치지 않을 수 있지만 목적 # 1을 (를) 방해 할 수 있습니다. 필자가 선호하는 것은 부트 로더 (boot loader) 동안 워치 독 (watchdogs)을 사용 가능 상태로 유지하고 시스템이 실제로 부트 로더에 있어야한다는 것을 나타낼 때마다 부트 로더가 워치 독에 충돌하도록하는 것입니다 (예 : 유효한 부트 로더 - 명령 패킷). 내가하지 않았던 한 프로젝트에서 부트 로더가 맹목적으로 워치 독에 먹이를 줬다면, 정적 zaps는 유닛을 때로는 앉아서 부트 로더 모드로 때려 눕힐 수있었습니다. 워치 독이 부팅 로더에서 시스템을 걷어 내면 실제 부트 로딩이 일어나지 않을 때 그 문제가 해결됩니다.

덧붙여 말하자면 "이상적인"임베디드 - 워치 독 회로를 설계하는 경우 최대 워치 독 시간에 하드웨어 구성 가능한 매개 변수가 있으며 '워치 독 시간 요구'및 '최대 워치 독 시간'에 대한 소프트웨어 설정이 있습니다. 처음에는 두 소프트웨어 설정 모두 최대로 설정됩니다. 감시 장치가 공급 될 때마다 시간은 세 가지 설정 중 최소값으로 설정됩니다. 소프트웨어는 '요청 된 감시 시간'을 언제든지 원하는 값으로 변경할 수 있습니다. '최대 워치 독 시간'설정은 언제든지 감소 될 수 있지만 시스템 재설정을 통해서만 증가 될 수 있습니다.

나는 정기 보정 타이머를 포함 할 수도 있는데,이 타이머는 일정 시간 간격으로 시스템을 무조건적으로 재설정하도록 강제합니다. 소프트웨어는이 타이머의 동작을 무시할 수 없지만이를 쿼리하고 초기에 리셋을 요청할 수 있습니다. 워치 독으로 모든 것을 올바르게하려고하는 시스템조차도 여전히 '고장'상태에 빠질 수 있지만 워치 독은 제대로 작동합니다. 정기적 인 예정된 가동 중지 시간이 허용되는 경우 주기적으로 재설정하면 이러한 문제를 피할 수 있습니다. 진행중인 진행중인 작업을 방해하지 않을 때마다 조기에 수행함으로써 시스템의 유용성에 대한 그러한 재설정의 영향을 최소화 할 수 있습니다. 예를 들어 리셋 간격을 7 시간으로 설정하면 시계가 1 시간으로 내려갈 때마다 더 이상의 작업을 요청하지 말고 몇 초 동안 기다려서 누군가가 작업을 보내려고했는지 확인할 수 있습니다 중지하라는 메시지가 표시되고 요청한 작업이없는 경우 다시 설정 한 다음 추가 요청을 요청합니다. 시스템이 재설정하려고했던 것처럼 보내진 요청은 재설정이 발생할 때까지 지연되지만, 완료하는 데는 한 시간 이상 걸리지 않고 요청이 손실되거나 분실되지 않습니다.