добавление bench_time и рефакторинг генетического алгоритма

This commit is contained in:
2025-10-27 09:39:57 +03:00
parent 5c4c815961
commit 15c0e3755d
294 changed files with 9147 additions and 2935 deletions

View File

@@ -181,8 +181,8 @@ $(function(){initNavTree('mylibs__include_8h_source.html','',''); });
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="preprocessor">#define HF_HandleFault(...)</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> </div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor">#ifdef INCLUDE_EVOLVE_OPTIMIZER</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#include &quot;<a class="code" href="evolve__optimizer_8h.html">evolve_optimizer.h</a>&quot;</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="preprocessor">#ifdef INCLUDE_GEN_OPTIMIZER</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="preprocessor">#include &quot;<a class="code" href="gen__optimizer_8h.html">gen_optimizer.h</a>&quot;</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="preprocessor">#else</span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span> uint16_t n_params; </div>
@@ -191,48 +191,65 @@ $(function(){initNavTree('mylibs__include_8h_source.html','',''); });
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span> uint16_t iq_mutation; </div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span> int32_t loss[0]; </div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span> int32_t candidates[0][0]; </div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>} <a class="code hl_struct" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a>;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor">#define EvolveOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params)</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor">#define EvolveOptimizer_Step(opt, params, LossFunc)</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>} <a class="code hl_struct" href="struct_gen_optimizer__t.html">GenOptimizer_t</a>;</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="preprocessor">#define GenOptimizer_Init(opt, n_params, n_cand, n_best, iq_mutation, start_params)</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="preprocessor">#define GenOptimizer_Step(opt, params, LossFunc)</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="preprocessor">#define PARAM_SCALE_Q16(x, min_val, max_val) (x)</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="preprocessor">#define PARAM_UNSCALE_Q16(q16_val, min_val, max_val) (q16_val)</span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> </div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="preprocessor">#ifdef INCLUDE_GENERAL_PERIPH_LIBS</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> </div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> </div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor">#include &quot;__general_flash.h&quot;</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor">#include &quot;<a class="code" href="general__gpio_8h.html">general_gpio.h</a>&quot;</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor">#ifdef HAL_SPI_MODULE_ENABLED</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor">#include &quot;<a class="code" href="general__spi_8h.html">general_spi.h</a>&quot;</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor">#ifdef HAL_UART_MODULE_ENABLED</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor">#include &quot;<a class="code" href="general__uart_8h.html">general_uart.h</a>&quot;</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor">#ifdef HAL_TIM_MODULE_ENABLED</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor">#include &quot;<a class="code" href="general__tim_8h.html">general_tim.h</a>&quot;</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor">#endif </span><span class="comment">//INCLUDE_GENERAL_PERIPH_LIBS</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="preprocessor">#ifdef INCLUDE_BENCH_TEST</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="preprocessor">#include &quot;<a class="code" href="bench__time_8h.html">bench_time.h</a>&quot;</span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="preprocessor">#else </span><span class="comment">//BENCH_TIME_ENABLE</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="preprocessor">#define BenchTime_Init()</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="preprocessor">#define BenchTime_Start(channel, ticks, tick_period) 0</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span><span class="preprocessor">#define BenchTime_End(channel, ticks) 0</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="preprocessor">#define BenchTime_GetMin(channel) 0</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="preprocessor">#define BenchTime_GetMax(channel) 0</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="preprocessor">#define BenchTime_GetAverage(channel) 0</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="preprocessor">#define BenchTime_GetCount(channel) 0</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="preprocessor">#define BenchTime_GetLast(channel) 0</span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="preprocessor">#define BenchTime_ResetStats(channel)</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="preprocessor">#endif </span><span class="comment">//BENCH_TIME_ENABLE</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="preprocessor">#ifdef INCLUDE_GENERAL_PERIPH_LIBS</span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"></span> </div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment">// user includes</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">// user settings</span><span class="comment"></span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> </div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="preprocessor">#endif </span><span class="comment">// __MYLIBS_INCLUDE_H_</span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="preprocessor">#include &quot;__general_flash.h&quot;</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="preprocessor">#include &quot;<a class="code" href="general__gpio_8h.html">general_gpio.h</a>&quot;</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor">#ifdef HAL_SPI_MODULE_ENABLED</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="preprocessor">#include &quot;<a class="code" href="general__spi_8h.html">general_spi.h</a>&quot;</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="preprocessor">#ifdef HAL_UART_MODULE_ENABLED</span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="preprocessor">#include &quot;<a class="code" href="general__uart_8h.html">general_uart.h</a>&quot;</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="preprocessor">#ifdef HAL_TIM_MODULE_ENABLED</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="preprocessor">#include &quot;<a class="code" href="general__tim_8h.html">general_tim.h</a>&quot;</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="preprocessor">#endif</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> </div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="preprocessor">#endif </span><span class="comment">//INCLUDE_GENERAL_PERIPH_LIBS</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> </div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> </div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="comment"></span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="comment">// user includes</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment">// user settings</span><span class="comment"></span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment">/////////////////////////---USER SETTINGS---/////////////////////////</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> </div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> </div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="preprocessor">#endif </span><span class="comment">// __MYLIBS_INCLUDE_H_</span></div>
<div class="ttc" id="abench__time_8h_html"><div class="ttname"><a href="bench__time_8h.html">bench_time.h</a></div><div class="ttdoc">Заголовочный файл для измерения времени между событиями</div></div>
<div class="ttc" id="abit__access_8h_html"><div class="ttname"><a href="bit__access_8h.html">bit_access.h</a></div><div class="ttdoc">Заголочный файл для дефайнов битового доступа.</div></div>
<div class="ttc" id="aevolve__optimizer_8h_html"><div class="ttname"><a href="evolve__optimizer_8h.html">evolve_optimizer.h</a></div><div class="ttdoc">Заголовочный файл для адаптивного подбора параметров</div></div>
<div class="ttc" id="agen__optimizer_8h_html"><div class="ttname"><a href="gen__optimizer_8h.html">gen_optimizer.h</a></div><div class="ttdoc">Заголовочный файл для адаптивного подбора параметров</div></div>
<div class="ttc" id="ageneral__gpio_8h_html"><div class="ttname"><a href="general__gpio_8h.html">general_gpio.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации портов и работы с ними.</div></div>
<div class="ttc" id="ageneral__spi_8h_html"><div class="ttname"><a href="general__spi_8h.html">general_spi.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации SPI.</div></div>
<div class="ttc" id="ageneral__tim_8h_html"><div class="ttname"><a href="general__tim_8h.html">general_tim.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации таймеров и работы с ними.</div></div>
<div class="ttc" id="ageneral__uart_8h_html"><div class="ttname"><a href="general__uart_8h.html">general_uart.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации UART.</div></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html"><div class="ttname"><a href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></div><div class="ttdoc">Структура эволюционного оптимизатора</div><div class="ttdef"><b>Definition</b> <a href="evolve__optimizer_8h_source.html#l00102">evolve_optimizer.h:102</a></div></div>
<div class="ttc" id="astruct_gen_optimizer__t_html"><div class="ttname"><a href="struct_gen_optimizer__t.html">GenOptimizer_t</a></div><div class="ttdoc">Структура эволюционного оптимизатора</div><div class="ttdef"><b>Definition</b> <a href="gen__optimizer_8h_source.html#l00102">gen_optimizer.h:102</a></div></div>
<div class="ttc" id="atrace_8h_html"><div class="ttname"><a href="trace_8h.html">trace.h</a></div><div class="ttdoc">Заголочный файл для работы с трассировкой.</div></div>
<div class="ttc" id="atrackers_8h_html"><div class="ttname"><a href="trackers_8h.html">trackers.h</a></div><div class="ttdoc">Заголочный файл для работы с трекерами Trackers defines.</div></div>
</div><!-- fragment --></div><!-- contents -->