title: Accessing Simulink Functions from inside Atomic Subchart
body: <p>For reasons far outside my control, I have now been thrust into doing MATLAB/Simulink/Stateflow work.  I've done the On-Ramp training, and already I despise how unintuitive it is to do things that are just common and easy in any text-based programming language.</p>
  <p>So here's my issue: I am trying to create Stateflow subcharts that I can reuse like a function, like a series of steps to take when requesting a series of responses from an SPI bus.  I want to be able to use this subchart from within other subcharts in the same parent Stateflow diagram.  My research has so far led me to Atomic Subcharts.</p>
  <p>The problem is, my subchart relies on a number of Simulink Functions, which in turn call S-Functions to communicate with an STM32 target.  I can make the subchart, no problem, with the Simulink Functions in the root Stateflow diagram.  But when I convert the subchart into an Atomic Subchart, it can no longer detect the Simulink functions, giving me errors in the subchart for them.</p>
  <p>All of this I am doing inside of a library as common code for a particular chip we use on a number of in-house circuit boards.  As a final wrinkle, this whole thing is being used inside a much larger system and uses the &quot;after()&quot; transition between states so that the RTOS can go do other things.  As far as I am aware, I cannot do the same thing inside of a Simulink or MATLAB function and HAVE to do this in Stateflow, which means I can't just make a normal &quot;do all SPI reads&quot; function but need a &quot;Stateflow function&quot;.</p>
  <ul>
  <li>Is there any way to access Simulink Functions from inside an Atomic Function?</li>
  <li>Is there any other way to reuse a Stateflow diagram like a function, so that I can update the root diagram without having to modify the same copy/pasted diagram code in multiple places?</li>
  </ul>
  <ul>
  <li>I also cannot use graphical functions because these diagrams have loops, and apparently you can't backtrack inside of a graphical function.</li>
  </ul>