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

Dependents:   Nucleo_pmsmfoc

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-&gt;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">&lt;Root&gt;/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">&lt;Root&gt;/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">&lt;Root&gt;/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">&lt;Root&gt;/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">&lt;Root&gt;/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">&lt;Root&gt;/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>, &amp;<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>