An example of importing Embedded Coder code into the mbed IDE. Currently doesn't connect IO to PWM, ADC, and Encoder, instead provides random inputs and measures execution time.
Dependencies: mbed-dsp mbed Nucleo_pmsmfoc
Diff: html/html/ert_main_c.html
- Revision:
- 2:bbc155b0b886
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/html/html/ert_main_c.html Tue Nov 25 07:52:02 2014 +0000 @@ -0,0 +1,208 @@ +<!DOCTYPE html> +<html> +<head> +<script type="text/javascript" src="./js/coder_app.js"></script> +<meta http-equiv="content-type" content="text/html; charset=utf-8" /> +<script type="text/javascript" src="./rtwreport_utils.js"></script> +<script type="text/javascript" src="./rtwannotate.js"></script> +<link rel="stylesheet" type="text/css" href="./css/coder_app.css"/> +</head> +<body onload="srcFileOnload();"> +<pre id="code"> +<table class="code" id="codeTbl"> +<tr name="1" id="1"> +<td>1</td><td><span class="ct">/*</span></td></tr> +<tr name="2" id="2"> +<td>2</td><td><span class="ct"> * File: ert_main.c</span></td></tr> +<tr name="3" id="3"> +<td>3</td><td><span class="ct"> *</span></td></tr> +<tr name="4" id="4"> +<td>4</td><td><span class="ct"> * Code generated for Simulink model 'rtwdemo_pmsmfoc'.</span></td></tr> +<tr name="5" id="5"> +<td>5</td><td><span class="ct"> *</span></td></tr> +<tr name="6" id="6"> +<td>6</td><td><span class="ct"> * Model version : 1.2949</span></td></tr> +<tr name="7" id="7"> +<td>7</td><td><span class="ct"> * Simulink Coder version : 8.7 (R2014b) 11-Aug-2014</span></td></tr> +<tr name="8" id="8"> +<td>8</td><td><span class="ct"> * C/C++ source code generated on : Sat Oct 11 02:05:41 2014</span></td></tr> +<tr name="9" id="9"> +<td>9</td><td><span class="ct"> *</span></td></tr> +<tr name="10" id="10"> +<td>10</td><td><span class="ct"> * Target selection: ert.tlc</span></td></tr> +<tr name="11" id="11"> +<td>11</td><td><span class="ct"> * Embedded hardware selection: ARM Compatible->ARM Cortex</span></td></tr> +<tr name="12" id="12"> +<td>12</td><td><span class="ct"> * Code generation objective: Execution efficiency</span></td></tr> +<tr name="13" id="13"> +<td>13</td><td><span class="ct"> * Validation result: Not run</span></td></tr> +<tr name="14" id="14"> +<td>14</td><td><span class="ct"> */</span></td></tr> +<tr name="15" id="15"> +<td>15</td><td></td></tr> +<tr name="16" id="16"> +<td>16</td><td><span class="pp">#include "rtwdemo_pmsmfoc.h"</span></td></tr> +<tr name="17" id="17"> +<td>17</td><td><span class="pp">#include "rtwtypes.h"</span></td></tr> +<tr name="18" id="18"> +<td>18</td><td></td></tr> +<tr name="19" id="19"> +<td>19</td><td><span class="kw">volatile</span> <span class="kw">int</span> <a id="19c14" class="tk">IsrOverrun</a> = 0;</td></tr> +<tr name="20" id="20"> +<td>20</td><td><span class="kw">static</span> <a id="20c8" class="tk">boolean_T</a> <a id="20c18" class="tk">OverrunFlag</a> = 0;</td></tr> +<tr name="21" id="21"> +<td>21</td><td><span class="kw">void</span> <a id="21c6" class="tk">rt_OneStep</a>(<span class="kw">void</span>)</td></tr> +<tr name="22" id="22"> +<td>22</td><td><span class="br">{</span></td></tr> +<tr name="23" id="23"> +<td>23</td><td> <span class="ct">/* '<a class="ct blk" blk_line="23"><Root>/motor_on</a>' */</span></td></tr> +<tr name="24" id="24"> +<td>24</td><td> <span class="kw">static</span> <a id="24c10" class="tk">uint16_T</a> <a id="24c19" class="tk">motor_on</a> = 0U;</td></tr> +<tr name="25" id="25"> +<td>25</td><td></td></tr> +<tr name="26" id="26"> +<td>26</td><td> <span class="ct">/* '<a class="ct blk" blk_line="26"><Root>/command_type</a>' */</span></td></tr> +<tr name="27" id="27"> +<td>27</td><td> <span class="kw">static</span> <a id="27c10" class="tk">EnumCommandType</a> <a id="27c26" class="tk">command_type</a> = <a id="27c41" class="tk">Torque</a>;</td></tr> +<tr name="28" id="28"> +<td>28</td><td></td></tr> +<tr name="29" id="29"> +<td>29</td><td> <span class="ct">/* '<a class="ct blk" blk_line="29"><Root>/command_value</a>' */</span></td></tr> +<tr name="30" id="30"> +<td>30</td><td> <span class="kw">static</span> <a id="30c10" class="tk">real32_T</a> <a id="30c19" class="tk">current_request</a> = 0.0F;</td></tr> +<tr name="31" id="31"> +<td>31</td><td></td></tr> +<tr name="32" id="32"> +<td>32</td><td> <span class="ct">/* '<a class="ct blk" blk_line="32"><Root>/sensors</a>' */</span></td></tr> +<tr name="33" id="33"> +<td>33</td><td> <span class="kw">static</span> <a id="33c10" class="tk">SENSORS_STRUCT</a> <a id="33c25" class="tk">sensors</a> = <span class="br">{</span></td></tr> +<tr name="34" id="34"> +<td>34</td><td> <span class="br">{</span></td></tr> +<tr name="35" id="35"> +<td>35</td><td> 0U, 0U <span class="br">}</span></td></tr> +<tr name="36" id="36"> +<td>36</td><td> , <span class="ct">/* adc_phase_currents */</span></td></tr> +<tr name="37" id="37"> +<td>37</td><td> 0U, <span class="ct">/* encoder_valid */</span></td></tr> +<tr name="38" id="38"> +<td>38</td><td> 0U <span class="ct">/* encoder_counter */</span></td></tr> +<tr name="39" id="39"> +<td>39</td><td> <span class="br">}</span> ;</td></tr> +<tr name="40" id="40"> +<td>40</td><td></td></tr> +<tr name="41" id="41"> +<td>41</td><td> <span class="ct">/* '<a class="ct blk" blk_line="41"><Root>/error</a>' */</span></td></tr> +<tr name="42" id="42"> +<td>42</td><td> <span class="kw">static</span> <a id="42c10" class="tk">EnumErrorType</a> <a id="42c24" class="tk">error</a>;</td></tr> +<tr name="43" id="43"> +<td>43</td><td></td></tr> +<tr name="44" id="44"> +<td>44</td><td> <span class="ct">/* '<a class="ct blk" blk_line="44"><Root>/pwm_compare</a>' */</span></td></tr> +<tr name="45" id="45"> +<td>45</td><td> <span class="kw">static</span> <a id="45c10" class="tk">uint16_T</a> <a id="45c19" class="tk">pwm_compare</a>[3];</td></tr> +<tr name="46" id="46"> +<td>46</td><td></td></tr> +<tr name="47" id="47"> +<td>47</td><td> <span class="ct">/* Check for overrun. Protect OverrunFlag against preemption */</span></td></tr> +<tr name="48" id="48"> +<td>48</td><td> <span class="kw">if</span> (<a id="48c7" class="tk">OverrunFlag</a>++) <span class="br">{</span></td></tr> +<tr name="49" id="49"> +<td>49</td><td> <a id="49c5" class="tk">IsrOverrun</a> = 1;</td></tr> +<tr name="50" id="50"> +<td>50</td><td> <a id="50c5" class="tk">OverrunFlag</a>--;</td></tr> +<tr name="51" id="51"> +<td>51</td><td> <span class="kw">return</span>;</td></tr> +<tr name="52" id="52"> +<td>52</td><td> <span class="br">}</span></td></tr> +<tr name="53" id="53"> +<td>53</td><td></td></tr> +<tr name="54" id="54"> +<td>54</td><td> <a id="54c3" class="tk">__enable_irq</a>();</td></tr> +<tr name="55" id="55"> +<td>55</td><td> <a id="55c3" class="tk">error</a> = <a id="55c11" class="tk">Controller</a>(<a id="55c22" class="tk">motor_on</a>, <a id="55c32" class="tk">command_type</a>, <a id="55c46" class="tk">current_request</a>, &<a id="55c64" class="tk">sensors</a>,</td></tr> +<tr name="56" id="56"> +<td>56</td><td> <a id="56c22" class="tk">pwm_compare</a>);</td></tr> +<tr name="57" id="57"> +<td>57</td><td></td></tr> +<tr name="58" id="58"> +<td>58</td><td> <span class="ct">/* Get model outputs here */</span></td></tr> +<tr name="59" id="59"> +<td>59</td><td> <a id="59c3" class="tk">__disable_irq</a>();</td></tr> +<tr name="60" id="60"> +<td>60</td><td> <a id="60c3" class="tk">OverrunFlag</a>--;</td></tr> +<tr name="61" id="61"> +<td>61</td><td><span class="br">}</span></td></tr> +<tr name="62" id="62"> +<td>62</td><td></td></tr> +<tr name="63" id="63"> +<td>63</td><td><span class="kw">int</span> <a id="63c5" class="tk">main</a>(<span class="kw">void</span>)</td></tr> +<tr name="64" id="64"> +<td>64</td><td><span class="br">{</span></td></tr> +<tr name="65" id="65"> +<td>65</td><td> <span class="kw">volatile</span> <a id="65c12" class="tk">boolean_T</a> <a id="65c22" class="tk">runModel</a> = 1;</td></tr> +<tr name="66" id="66"> +<td>66</td><td> <span class="kw">float</span> <a id="66c9" class="tk">modelBaseRate</a> = 4.0E-5;</td></tr> +<tr name="67" id="67"> +<td>67</td><td> <span class="kw">float</span> <a id="67c9" class="tk">systemClock</a> = 48;</td></tr> +<tr name="68" id="68"> +<td>68</td><td> ((<span class="kw">void</span>) 0);</td></tr> +<tr name="69" id="69"> +<td>69</td><td> <a id="69c3" class="tk">Controller_Init</a>();</td></tr> +<tr name="70" id="70"> +<td>70</td><td> <a id="70c3" class="tk">ARMCM_SysTick_Config</a>(<a id="70c24" class="tk">modelBaseRate</a>);</td></tr> +<tr name="71" id="71"> +<td>71</td><td> <a id="71c3" class="tk">runModel</a> =</td></tr> +<tr name="72" id="72"> +<td>72</td><td> ((<span class="kw">void</span>*) 0) == (<a id="72c21" class="tk">NULL</a>);</td></tr> +<tr name="73" id="73"> +<td>73</td><td> <a id="73c3" class="tk">__enable_irq</a>();</td></tr> +<tr name="74" id="74"> +<td>74</td><td> ;</td></tr> +<tr name="75" id="75"> +<td>75</td><td> <span class="kw">while</span> (<a id="75c10" class="tk">runModel</a>) <span class="br">{</span></td></tr> +<tr name="76" id="76"> +<td>76</td><td> <a id="76c5" class="tk">runModel</a> =</td></tr> +<tr name="77" id="77"> +<td>77</td><td> ((<span class="kw">void</span>*) 0) == (<a id="77c23" class="tk">NULL</a>);</td></tr> +<tr name="78" id="78"> +<td>78</td><td> <span class="br">}</span></td></tr> +<tr name="79" id="79"> +<td>79</td><td></td></tr> +<tr name="80" id="80"> +<td>80</td><td> <span class="ct">/* Disable rt_OneStep() here */</span></td></tr> +<tr name="81" id="81"> +<td>81</td><td><span class="pp">#ifdef</span> <a id="81c8" class="tk">EXT_MODE</a></td></tr> +<tr name="82" id="82"> +<td>82</td><td></td></tr> +<tr name="83" id="83"> +<td>83</td><td> <a id="83c3" class="tk">wait_ms</a>(1000);</td></tr> +<tr name="84" id="84"> +<td>84</td><td></td></tr> +<tr name="85" id="85"> +<td>85</td><td><span class="pp">#endif</span></td></tr> +<tr name="86" id="86"> +<td>86</td><td></td></tr> +<tr name="87" id="87"> +<td>87</td><td> (<span class="kw">void</span>) <a id="87c10" class="tk">systemClock</a>;</td></tr> +<tr name="88" id="88"> +<td>88</td><td> <span class="kw">return</span> 0;</td></tr> +<tr name="89" id="89"> +<td>89</td><td><span class="br">}</span></td></tr> +<tr name="90" id="90"> +<td>90</td><td></td></tr> +<tr name="91" id="91"> +<td>91</td><td><span class="ct">/*</span></td></tr> +<tr name="92" id="92"> +<td>92</td><td><span class="ct"> * File trailer for generated code.</span></td></tr> +<tr name="93" id="93"> +<td>93</td><td><span class="ct"> *</span></td></tr> +<tr name="94" id="94"> +<td>94</td><td><span class="ct"> * [EOF]</span></td></tr> +<tr name="95" id="95"> +<td>95</td><td><span class="ct"> */</span></td></tr> +<tr name="96" id="96"> +<td>96</td><td></td></tr> +</table> +</pre> +</body> +</html>