임베디드 면접 용어 사전
자동차 표준

윈도우 워치독

정해진 시간 창 안에서만 리프레시를 받아들이는 워치독. 너무 늦어도, 너무 일러도 리셋시켜 폭주까지 잡는다.

일반 워치독은 "늦으면 리셋"이지만, 윈도우 워치독은 "이르면도 리셋" 이다.

왜 이른 것도 막나

일반 워치독은 이런 고장을 못 잡는다.

while (1) { WDOG_feed(); }   /* 코드가 폭주해 여기만 돌아도 워치독은 만족한다 */

주기가 무너진 것을 감지하지 못한다. 창(window)을 두면 "정상 주기로 돌고 있을 때만" 리프레시가 받아들여진다.

    허용 창
├────────┼───────────┼────────►  시간
0       하한        상한
 리셋      정상        리셋

어디서 먹이나 — 위치가 곧 설계다

volatile uint8_t alive_mask;                  /* 태스크마다 자기 비트를 세운다 */

void task_sensor(void) { measure();  alive_mask |= BIT_SENSOR; }
void task_comm(void)   { send_can(); alive_mask |= BIT_COMM;   }

void supervisor_10ms(void) {
    if (alive_mask == (BIT_SENSOR | BIT_COMM)) {  /* 전원 생존 확인 */
        WDOG_refresh();
        alive_mask = 0;
    }
    /* 하나라도 빠지면 먹이지 않는다 → 리셋 */
}

타이머 인터럽트에서 무조건 먹이는 코드는 최악이다. 태스크가 전부 죽어도 인터럽트만 살아 있으면 통과하므로, 감시 대상이 사라진다.

자동차에서 한 겹 더

MCU 내부 워치독은 MCU가 통째로 이상해지면 같이 죽을 수 있다. 그래서 외부 감시 칩(SBC 등)이 별도로 감시하고, 응답이 없으면 전원을 끊거나 리셋한다.

함께 보면 좋은 용어

노트에서 맥락과 함께 보기 — 자동차 임베디드 표준 — AUTOSAR·ISO 26262(ASIL)·MISRA·UDS/ISO-TP·E2E