title: How to illustrate an interrupt-driven process?
body: <p>This question is related to diagraming a software process. As an electrical engineer, much of the software I do is for embedded micro-controllers. In school, we learned to illustrate our algorithm using a flowchart. However, nowadays, many of my embedded projects are heavily interrupt-driven where the main process runs some basic algorithm a variety of interrupt sources provide its stimulus. So, my question is, what are some diagramming techniques that I can use to illustrate my process such that future developers can understand what I am doing easily and get involved in development?</p>
  
  <p>Here are some key features that I am looking for:</p>
  
  <ul>
  <li>Shows data structures and how data is passed between processes &amp; interrupts</li>
  <li>Shows conditions that cause each interrupt</li>
  <li>Shows how data is gathered and passed through a downlink</li>
  <li>Shows how command messages are received, parsed, and executed</li>
  <li>Ideally is well suited for hierarchical breakdown into smaller processes with greater levels of detail</li>
  </ul>