{
  "id": "embedded/rtc-alarm-interrupt-missed",
  "signature": "RTC: Alarm A interrupt missed, trigger time 12:30:00 exceeded by 500ms",
  "signature_zh": "RTC: 报警A中断丢失，触发时间12:30:00已超过500ms",
  "regex": "RTC: Alarm [AB] interrupt missed, trigger time \\d{2}:\\d{2}:\\d{2} exceeded by \\d+ms",
  "domain": "embedded",
  "category": "runtime_error",
  "subcategory": null,
  "root_cause": "The RTC alarm interrupt was not serviced in time because a higher-priority interrupt or task delayed processing beyond the alarm window.",
  "root_cause_type": "generic",
  "root_cause_zh": "RTC报警中断未能及时服务，因为更高优先级的中断或任务延迟了处理，超过了报警窗口。",
  "versions": [
    {
      "version": "STM32Cube_FW_H7 v1.11.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "STM32Cube_FW_L4 v1.18.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "RTC HAL Driver v2.0.0",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "Increase the RTC alarm prescaler to reduce interrupt frequency",
      "why_fails": "The alarm is a one-shot event; changing the prescaler does not affect the interrupt latency for a single trigger.",
      "fail_rate": 0.9,
      "condition": "",
      "sources": []
    },
    {
      "action": "Disable all other interrupts to give RTC priority",
      "why_fails": "Disabling other interrupts can break critical system functions like timers or communication; it is not a sustainable fix.",
      "fail_rate": 0.85,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Set the RTC alarm interrupt priority to the highest level (e.g., NVIC_SetPriority(RTC_Alarm_IRQn, 0)) and ensure no other interrupt uses the same priority group.",
      "success_rate": 0.8,
      "how": "Set the RTC alarm interrupt priority to the highest level (e.g., NVIC_SetPriority(RTC_Alarm_IRQn, 0)) and ensure no other interrupt uses the same priority group.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Use a polling-based approach instead of interrupts: check the RTC alarm flag in the main loop every 10ms with HAL_RTC_GetAlarmFlag() and handle the event there.",
      "success_rate": 0.75,
      "how": "Use a polling-based approach instead of interrupts: check the RTC alarm flag in the main loop every 10ms with HAL_RTC_GetAlarmFlag() and handle the event there.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Set the RTC alarm interrupt priority to the highest level (e.g., NVIC_SetPriority(RTC_Alarm_IRQn, 0)) and ensure no other interrupt uses the same priority group.",
    "Use a polling-based approach instead of interrupts: check the RTC alarm flag in the main loop every 10ms with HAL_RTC_GetAlarmFlag() and handle the event there."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://www.st.com/resource/en/reference_manual/rm0383-stm32f411xce-reference-manual-stmicroelectronics.pdf",
  "official_doc_section": null,
  "error_code": "RTC_ALARM_MISS",
  "verification_tier": "ai_generated",
  "confidence": 0.83,
  "fix_success_rate": 0.78,
  "resolvable": "true",
  "first_seen": "2024-01-22",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}