Explain the volatile keyword and provide a specific hardware scenario where failing to use it would cause a critical bug.