|
157 | 157 | <div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span> </div> |
158 | 158 | <div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include "cmsis_os2.h"</span> <span class="comment">/* CMSIS-RTOS2 API */</span></div> |
159 | 159 | <div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div> |
160 | | -<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">// Parameter datatype for the graph</span></div> |
161 | | -<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">// An application needs to customize it to adapt to the graph's needs.</span></div> |
162 | | -<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment">// This is not provided by the CMSIS-Stream pack and must come from the user </span></div> |
163 | | -<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment">// application.</span></div> |
164 | | -<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include "hello_params.h"</span></div> |
165 | | -<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> </div> |
166 | | -<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>}</div> |
| 160 | +<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="preprocessor">#include "hello_params.h"</span></div> |
| 161 | +<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div> |
| 162 | +<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span>}</div> |
| 163 | +<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span> </div> |
| 164 | +<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="preprocessor">#include "cg_enums.h"</span></div> |
| 165 | +<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="preprocessor">#include "stream_rtos_events.h"</span></div> |
| 166 | +<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div> |
167 | 167 | <div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div> |
168 | | -<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="preprocessor">#include "cg_enums.h"</span></div> |
169 | | -<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="preprocessor">#include "stream_rtos_events.h"</span></div> |
| 168 | +<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span> </div> |
| 169 | +<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="keyword">extern</span> osEventFlagsId_t cg_streamEvent;</div> |
170 | 170 | <div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div> |
171 | | -<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span> </div> |
172 | | -<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span> </div> |
173 | | -<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="keyword">extern</span> osEventFlagsId_t cg_streamEvent;</div> |
174 | | -<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> </div> |
175 | | -<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment">// FIFO buffers are placed in a dedicated section so the linker can apply the</span></div> |
176 | | -<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment">// memory layout selected for the generated graph. </span></div> |
177 | | -<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment">// When memory optimization setting is used in the Python generator, the memory</span></div> |
178 | | -<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">// for FIFOs is shared and the buffers must be aligned to avoid unaligned accesses.</span></div> |
179 | | -<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor">#define CG_BEFORE_BUFFER __ALIGNED(16) __attribute__((section(".bss.stream_fifo"</span>)))</div> |
180 | | -<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div> |
181 | | -<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor">#define CG_BEFORE_NODE_EXECUTION(id) \</span></div> |
182 | | -<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor"> { \</span></div> |
183 | | -<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor"> uint32_t res = \</span></div> |
184 | | -<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor"> osEventFlagsWait(cg_streamEvent, STREAM_PAUSE_EVENT | STREAM_DONE_EVENT, \</span></div> |
185 | | -<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor"> osFlagsWaitAny, 0); \</span></div> |
186 | | -<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor"> if (!(res & 0x80000000)) \</span></div> |
187 | | -<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor"> { \</span></div> |
188 | | -<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor"> if ((res & STREAM_DONE_EVENT) != 0) \</span></div> |
189 | | -<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor"> { \</span></div> |
190 | | -<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor"> cgStaticError = CG_STOP_SCHEDULER; \</span></div> |
191 | | -<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="preprocessor"> goto errorHandling; \</span></div> |
192 | | -<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor"> } \</span></div> |
193 | | -<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor"> if ((res & STREAM_PAUSE_EVENT) != 0) \</span></div> |
194 | | -<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor"> { \</span></div> |
195 | | -<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor"> cgStaticError = CG_PAUSED_SCHEDULER; \</span></div> |
196 | | -<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="preprocessor"> goto errorHandling; \</span></div> |
197 | | -<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="preprocessor"> } \</span></div> |
198 | | -<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="preprocessor"> } \</span></div> |
199 | | -<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="preprocessor"> }</span></div> |
| 171 | +<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">// FIFO buffers are placed in a dedicated section so the linker can apply the</span></div> |
| 172 | +<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment">// memory layout selected for the generated graph. </span></div> |
| 173 | +<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment">// When memory optimization setting is used in the Python generator, the memory</span></div> |
| 174 | +<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment">// for FIFOs is shared and the buffers must be aligned to avoid unaligned accesses.</span></div> |
| 175 | +<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="preprocessor">#define CG_BEFORE_BUFFER __ALIGNED(16) __attribute__((section(".bss.stream_fifo"</span>)))</div> |
| 176 | +<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span> </div> |
| 177 | +<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="preprocessor">#define CG_BEFORE_NODE_EXECUTION(id) \</span></div> |
| 178 | +<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="preprocessor"> { \</span></div> |
| 179 | +<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="preprocessor"> uint32_t res = \</span></div> |
| 180 | +<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="preprocessor"> osEventFlagsWait(cg_streamEvent, STREAM_PAUSE_EVENT | STREAM_DONE_EVENT, \</span></div> |
| 181 | +<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="preprocessor"> osFlagsWaitAny, 0); \</span></div> |
| 182 | +<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="preprocessor"> if (!(res & 0x80000000)) \</span></div> |
| 183 | +<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="preprocessor"> { \</span></div> |
| 184 | +<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="preprocessor"> if ((res & STREAM_DONE_EVENT) != 0) \</span></div> |
| 185 | +<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="preprocessor"> { \</span></div> |
| 186 | +<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="preprocessor"> cgStaticError = CG_STOP_SCHEDULER; \</span></div> |
| 187 | +<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor"> goto errorHandling; \</span></div> |
| 188 | +<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor"> } \</span></div> |
| 189 | +<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor"> if ((res & STREAM_PAUSE_EVENT) != 0) \</span></div> |
| 190 | +<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor"> { \</span></div> |
| 191 | +<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="preprocessor"> cgStaticError = CG_PAUSED_SCHEDULER; \</span></div> |
| 192 | +<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor"> goto errorHandling; \</span></div> |
| 193 | +<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="preprocessor"> } \</span></div> |
| 194 | +<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="preprocessor"> } \</span></div> |
| 195 | +<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="preprocessor"> }</span></div> |
200 | 196 | </div><!-- fragment --></div><!-- contents --> |
201 | 197 | </div><!-- doc-content --> |
202 | 198 | <!-- start footer part --> |
|
0 commit comments