1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>Revision History of CMSIS-DSP</title>
<title>CMSIS-DSP: Revision History of CMSIS-DSP</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="cmsis.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script type="text/javascript" src="printComponentTabs.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
$(document).ready(initResizable);
$(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 46px;">
<td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">CMSIS-DSP
 <span id="projectnumber">Version 1.7.0</span>
</div>
<div id="projectbrief">CMSIS DSP Software Library</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<div id="CMSISnav" class="tabs1">
<ul class="tablist">
<script type="text/javascript">
<!--
writeComponentTabs.call(this);
//-->
</script>
</ul>
</div>
<!-- Generated by Doxygen 1.8.6 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li class="current"><a href="pages.html"><span>Usage and Description</span></a></li>
<li><a href="modules.html"><span>Reference</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
<div id="nav-tree">
<div id="nav-tree-contents">
<div id="nav-sync" class="sync"></div>
</div>
</div>
<div id="splitbar" style="-moz-user-select:none;"
class="ui-resizable-handle">
</div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('ChangeLog_pg.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Pages</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div class="header">
<div class="headertitle">
<div class="title">Revision History of CMSIS-DSP </div> </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><table class="cmtable" summary="Revision History">
<tr>
<th>Version </th><th>Description </th></tr>
<tr>
<td>V1.7.0 </td><td><p class="starttd">New Neon implementations of f32 functions</p>
<ul>
<li>Can be enabled with macros ARM_MATH_NEON and ARM_MATH_NEON_EXPERIMENTAL</li>
</ul>
<p>Python wrapper compatible with Numpy</p>
<ul>
<li>DSP/PythonWrapper/README.md is explaining how to build the wrapper</li>
</ul>
<p>Preliminary cmake build</p>
<ul>
<li>DSP/README.md is explaining how to use it. This first version is restricted to AC6 toolchain and assume (hard coded path) that ArmDS is used. Future versions will make it easier to switch toolchains.</li>
</ul>
<p>Modified <a class="el" href="arm__math_8h.html">arm_math.h</a></p>
<ul>
<li>Removed dependance on cores. It is no more testing for some specific cores but is now using features like ARM_MATH_LOOPUNROLL (see comments in <a class="el" href="arm__math_8h.html">arm_math.h</a>)</li>
<li>Deprecated __SIMD32 and introduced new functions for SIMD accesses.</li>
</ul>
<p>Added compilation flags for FFT:</p>
<ul>
<li>It is now possible to include only the tables required for FFTs. It is explained in DSP/README.md since it is simpler to use it from the cmake (which is defining the right macros). But the macros can also be defined without cmake.</li>
</ul>
<p class="endtd"></p>
</td></tr>
<tr>
<td>V1.6.0 </td><td><p class="starttd">Reworked DSP library source files</p>
<ul>
<li>added macro ARM_MATH_LOOPUNROLL</li>
<li>removed macro UNALIGNED_SUPPORT_DISABLE</li>
<li>added const-correctness</li>
<li>replaced SIMD pointer construct with memcopy solution</li>
<li>replaced macro combination "CMSIS_INLINE __STATIC_INLINE with "__STATIC_FORCEINLINE"</li>
</ul>
<p>Reworked DSP library documentation</p>
<p>Changed DSP folder structure</p>
<ul>
<li>moved DSP libraries to ./DSP/Lib</li>
</ul>
<p>ARM DSP Libraries are built with ARMCLANG</p>
<p class="endtd">Added DSP Libraries source variant </p>
</td></tr>
<tr>
<td>V1.5.4 </td><td><p class="starttd">Updated IAR projects</p>
<p class="endtd">Note: binaries NOT rebuild! </p>
</td></tr>
<tr>
<td>V1.5.3 </td><td><p class="starttd">Note: binaries NOT rebuild!</p>
<p>Merged PullRequests</p>
<ul>
<li>#439, #430, #369, #265, #166</li>
</ul>
<p>Modified <a class="el" href="arm__math_8h.html">arm_math.h</a></p>
<ul>
<li>reworked macros ARM_MATH_CMx</li>
<li>removed macros __FPU_USED, __DSP_PRESENT</li>
<li>used different include files</li>
</ul>
<p class="endtd">Modified source files (because of new <a class="el" href="arm__math_8h.html">arm_math.h</a>)</p>
<ul>
<li><a class="el" href="arm__biquad__cascade__df2T__f32_8c.html">FilteringFunctions\arm_biquad_cascade_df2T_f32.c</a></li>
<li><a class="el" href="arm__biquad__cascade__df2T__f64_8c.html">FilteringFunctions\arm_biquad_cascade_df2T_f64.c</a></li>
<li><a class="el" href="arm__biquad__cascade__stereo__df2T__f32_8c.html">FilteringFunctions\arm_biquad_cascade_stereo_df2T_f32.c</a></li>
<li><a class="el" href="arm__conv__partial__q15_8c.html">FilteringFunctions\arm_conv_partial_q15.c</a></li>
<li><a class="el" href="arm__correlate__q15_8c.html">FilteringFunctions\arm_correlate_q15.c</a></li>
<li><a class="el" href="arm__fir__f32_8c.html">FilteringFunctions\arm_fir_f32.c</a></li>
<li><a class="el" href="arm__mat__scale__q31_8c.html">MatrixFunctions\arm_mat_scale_q31.c</a></li>
<li><a class="el" href="arm__rms__q31_8c.html">StatisticsFunctions\arm_rms_q31.c</a></li>
<li>TransformFunctions\arm_bitreversal2.S</li>
<li><a class="el" href="arm__cfft__radix4__q31_8c.html">TransformFunctions\arm_cfft_radix4_q31.c</a> Reworked DSP_Lib_TestSuite </li>
</ul>
</td></tr>
<tr>
<td>V1.5.2 </td><td>Modified <a class="el" href="arm__math_8h.html">arm_math.h</a><ul>
<li>fixed GNU Compiler specific diagnostics.</li>
<li>moved __SSAT and __USAT to CMSIS-Core </li>
</ul>
</td></tr>
<tr>
<td>V1.5.1 </td><td><p class="starttd">Changed copyright note.</p>
<p class="endtd">Added ARMv8M DSP libraries. </p>
</td></tr>
<tr>
<td>V1.5.0 </td><td><p class="starttd">Modified <a class="el" href="arm__math_8h.html">arm_math.h</a></p>
<ul>
<li>removed macro TABLE_SIZE.</li>
<li>changed preprocessor conditions to select functions instead of SIMD instruction for Cortex-M3.</li>
</ul>
<p class="endtd">Modified <a class="el" href="arm__const__structs_8c.html">arm_const_structs.c</a></p>
<ul>
<li>Added structure instances for the RFFT functions (equivalent to CFFT structures). </li>
</ul>
</td></tr>
<tr>
<td>V1.4.10 (no source code change [still labeled 1.4.5]) </td><td><p class="starttd">Modified <a class="el" href="arm__sin__cos__f32_8c.html">arm_sin_cos_f32.c</a></p>
<ul>
<li>corrected <a class="el" href="group__SinCos.html#ga4420d45c37d58c310ef9ae1b5fe58020">arm_sin_cos_f32()</a> for negative numbers smaller than e-4f.</li>
</ul>
<p class="endtd">Modified <a class="el" href="arm__var__f32_8c.html">arm_var_f32.c</a></p>
<ul>
<li>improved numerical stability for <a class="el" href="group__variance.html#gaae455544f0c8ac92469a1e25d3906515">arm_var_f32()</a>. </li>
</ul>
</td></tr>
<tr>
<td>V1.4.9 (no source code change [still labeled 1.4.5]) 2016/09/26 </td><td><p class="starttd">Modified <a class="el" href="arm__mat__mult__fast__q15_8c.html">arm_mat_mult_fast_q15.c</a>, <a class="el" href="arm__mat__mult__fast__q31_8c.html">arm_mat_mult_fast_q31.c</a></p>
<ul>
<li>performance optimizations for <a class="el" href="group__MatrixMult.html#ga08f37d93a5bfef0c5000dc5e0a411f93">arm_mat_mult_fast_q15()</a> and <a class="el" href="group__MatrixMult.html#ga2785e8c1b785348b0c439b56aaf585a3">arm_mat_mult_fast_q31()</a>.</li>
</ul>
<p>Modified <a class="el" href="arm__conv__partial__q15_8c.html">arm_conv_partial_q15.c</a></p>
<ul>
<li>corrected <a class="el" href="group__PartialConv.html#ga09b1f207980df75c2dcf01b1d3c2006f">arm_conv_partial_q15()</a> for Cortex-M7 based cores.</li>
</ul>
<p>Modified <a class="el" href="arm__conv__q15_8c.html">arm_conv_q15.c</a></p>
<ul>
<li>corrected <a class="el" href="group__Conv.html#ga372d3fd79b107dc6b12163a00c22da18">arm_conv_q15()</a> for Cortex-M7 based cores.</li>
</ul>
<p class="endtd">Modified <a class="el" href="arm__correlate__q15_8c.html">arm_correlate_q15.c</a></p>
<ul>
<li>corrected <a class="el" href="group__Corr.html#ga8fc4e632ab08b28435ff62e7eb65f508">arm_correlate_q15()</a> for Cortex-M7 based cores. </li>
</ul>
</td></tr>
<tr>
<td>V1.4.8 (no source code change [still labeled 1.4.5]) 2015/12/18 </td><td><p class="starttd">Modified <a class="el" href="arm__math_8h.html">arm_math.h</a>, arm_bitreversal2.S</p>
<ul>
<li>corrected <a class="el" href="group__sin.html#gae164899c4a3fc0e946dc5d55555fe541" title="Fast approximation to the trigonometric sine function for floating-point data. ">arm_sin_f32()</a> for very small negative input values.</li>
</ul>
<p>Modified <a class="el" href="arm__sin__f32_8c.html">arm_sin_f32.c</a></p>
<ul>
<li>Updated Texas Instruments Arm Compiler support.</li>
</ul>
<p class="endtd">Updated documentation</p>
<ul>
<li>function <a class="el" href="group__RealFFT.html#ga180d8b764d59cbb85d37a2d5f7cd9799">arm_rfft_fast_f32</a>. </li>
</ul>
</td></tr>
<tr>
<td>V1.4.7 (no source code change [still labeled 1.4.5]) 2015/10/20 </td><td><p class="starttd">Modified <a class="el" href="arm__math_8h.html">arm_math.h</a></p>
<ul>
<li>Added explicit type casts to remove compiler warnings.</li>
<li>Supressed irrelevant warnings for toolchain GCC.</li>
</ul>
<p class="endtd">Updated documentation</p>
<ul>
<li>functions <a class="el" href="group__cos.html#gace15287f9c64b9b4084d1c797d4c49d8">arm_cos_f32</a>, <a class="el" href="group__sin.html#gae164899c4a3fc0e946dc5d55555fe541">arm_sin_f32</a> use table lookup combined with linear interpolation (since V1.4.2). This is now documented. </li>
</ul>
</td></tr>
<tr>
<td>V1.4.6 (no source code change [still labeled 1.4.5]) 2015/08/26 </td><td>Modified <a class="el" href="arm__math_8h.html">arm_math.h</a><ul>
<li>Updated function <a class="el" href="group__SQRT.html#ga5f37f479666ee8ff9711b334286c60ed">arm_sqrt_f32</a> for use with IAR. </li>
</ul>
</td></tr>
<tr>
<td>V1.4.5 2015/03/19 </td><td><p class="starttd">Added support for the Cortex-M7 processor</p>
<p>Fixed bug in <a class="el" href="arm__mat__inverse__f32_8c.html">arm_mat_inverse_f32.c</a> and <a class="el" href="arm__mat__inverse__f64_8c.html">arm_mat_inverse_f64.c</a>. They weren't properly handling diagonal matrices.</p>
<p><a class="el" href="arm__cfft__f32_8c.html">arm_cfft_f32.c</a> - help documentation updated</p>
<p class="endtd">Updated documentation to show deprecated functions </p>
</td></tr>
<tr>
<td>V1.4.4 2014/07/31 </td><td><p class="starttd">Added the following new files:</p>
<ul>
<li><a class="el" href="arm__biquad__cascade__stereo__df2T__f32_8c.html">arm_biquad_cascade_stereo_df2T_f32.c</a></li>
<li><a class="el" href="arm__biquad__cascade__stereo__df2T__init__f32_8c.html">arm_biquad_cascade_stereo_df2T_init_f32.c</a></li>
<li><a class="el" href="arm__biquad__cascade__df2T__f64_8c.html">arm_biquad_cascade_df2T_f64.c</a></li>
<li><a class="el" href="arm__biquad__cascade__df2T__init__f64_8c.html">arm_biquad_cascade_df2T_init_f64.c</a></li>
<li><a class="el" href="arm__mat__inverse__f64_8c.html">arm_mat_inverse_f64.c</a></li>
<li><a class="el" href="arm__cfft__q15_8c.html">arm_cfft_q15.c</a></li>
<li><a class="el" href="arm__cfft__q31_8c.html">arm_cfft_q31.c</a></li>
</ul>
<p class="endtd">Optimizations to the following files:</p>
<ul>
<li><a class="el" href="arm__biquad__cascade__df2T__f32_8c.html">arm_biquad_cascade_df2T_f32.c</a></li>
<li><a class="el" href="arm__fir__f32_8c.html">arm_fir_f32.c</a></li>
<li><a class="el" href="arm__fir__fast__q31_8c.html">arm_fir_fast_q31.c</a></li>
<li><a class="el" href="arm__fir__q7_8c.html">arm_fir_q7.c</a></li>
<li><a class="el" href="arm__cfft__f32_8c.html">arm_cfft_f32.c</a></li>
<li><a class="el" href="arm__cfft__radix4__q31_8c.html">arm_cfft_radix4_q31.c</a></li>
<li><a class="el" href="arm__cfft__radix4__q15_8c.html">arm_cfft_radix4_q15.c</a></li>
<li><a class="el" href="arm__rfft__q31_8c.html">arm_rfft_q31.c</a></li>
<li><a class="el" href="arm__rfft__q15_8c.html">arm_rfft_q15.c</a> </li>
</ul>
</td></tr>
<tr>
<td>V1.4.3 2014/03/12 </td><td><p class="starttd">Undid changes to <a class="el" href="arm__biquad__cascade__df1__q31_8c.html">arm_biquad_cascade_df1_q31.c</a></p>
<p>Added support for COSMIC</p>
<p>Changed 'short' to 'q15_t' where appropriate</p>
<p>Fixed <a class="el" href="arm__conv__partial__fast__q15_8c.html">arm_conv_partial_fast_q15.c</a> for UNALIGNED_SUPPORT_DISABLE</p>
<p>Fixed <a class="el" href="arm__mat__cmplx__mult__q15_8c.html">arm_mat_cmplx_mult_q15.c</a> for UNALIGNED_SUPPORT_DISABLE</p>
<p>Fixed <a class="el" href="arm__conv__partial__opt__q7_8c.html">arm_conv_partial_opt_q7.c</a> for UNALIGNED_SUPPORT_DISABLE</p>
<p>Restored the internal fftlen of 16 to <a class="el" href="arm__rfft__fast__init__f32_8c.html">arm_rfft_fast_init_f32.c</a></p>
<p class="endtd">Updated core_xxx.h files to newer versions from ARM </p>
</td></tr>
<tr>
<td>V1.4.2 2013/10/16 </td><td><p class="starttd">Moved const structures from <a class="el" href="arm__const__structs_8h.html">arm_const_structs.h</a> to <a class="el" href="arm__const__structs_8c.html">arm_const_structs.c</a></p>
<p>Rfft_fast_f32 no longer allows fft length of 16 as it wouldn't have worked anyways</p>
<p>Partial convolution was producing the wrong results in some cases</p>
<p>arm_lms_q31 and q15 now saturate the results in the M0 code to match the M3 & M4 code</p>
<p>Rfft_q15 and q31 had potential overflow issues resolved</p>
<p><a class="el" href="arm__biquad__cascade__df1__q31_8c.html">arm_biquad_cascade_df1_q31.c</a> had a typo which resulted in incorrect outputs</p>
<p>fast math sine and cosine now use linear interpolation</p>
<p>controller sin/cos now uses a more accurate interpolation algorithm</p>
<p>arm_mat_inverse was reading outside its input array</p>
<p>arm_cmplx_dot_prod was incorrect</p>
<p>switched some incorrect usages of __ssat to clip_q63_to_q31</p>
<p>changed var & std q31 to downshift input data by 8</p>
<p>var q31 & q15 no longer output larger data types</p>
<p><a class="el" href="arm__mat__cmplx__mult__q15_8c.html">arm_mat_cmplx_mult_q15.c</a> was done incorrectly for big vs little endian</p>
<p><a class="el" href="arm__mat__mult__q31_8c.html">arm_mat_mult_q31.c</a> was inconsistent with the other multiplies, so added saturation</p>
<p class="endtd">arm_conv_partial_q15 had an incorrect comparison between signed & unsigned values </p>
</td></tr>
<tr>
<td>V1.4.1 2013/02/20 </td><td><p class="starttd">Updated licenses in headers to 2013</p>
<p>Fixed ALIGN4 macro in <a class="el" href="arm__math_8h.html">arm_math.h</a></p>
<p>Added files to Cortex-M0 projects so that all projects have same file list</p>
<p class="endtd">Fixed bugs in</p>
<ul>
<li>arm_biquad_cascade_d2fT_f32.c</li>
<li>arm_cfft_radix2_q31</li>
<li>arm_cfft_radix2_f32</li>
<li><a class="el" href="arm__math_8h.html">arm_math.h</a> (arm_pid functions)</li>
<li><a class="el" href="arm__iir__lattice__q31_8c.html">arm_iir_lattice_q31.c</a> </li>
</ul>
</td></tr>
<tr>
<td>V1.4.0 2013/01/09 </td><td><p class="starttd">Updated with more optimizations, bug fixes and new license information in headers</p>
<p>Optimized functions:</p>
<ul>
<li>arm_biquad_cascade_df2T_f32</li>
<li>arm_biquad_cascade_df1_q31</li>
<li>arm_fir_f32</li>
<li>arm_fir_fast_q31</li>
<li>arm_cfft_f32</li>
<li>arm_cfft_radix2_q31</li>
<li>arm_rfft_fast_f32 (new function)</li>
</ul>
<p>Fixed compiler warnings in <a class="el" href="arm__math_8h.html">arm_math.h</a> for comparing signed and unsigned ints</p>
<p>Fixed a saturation bug in arm_rms_q15</p>
<p>Simplified the code in arm_sin_cos_q31</p>
<p>Added a preprocessor directive to treat the Cortex M0+ just like the Cortex M0</p>
<p class="endtd">The following functions were deprecated and will be removed in a future version</p>
<ul>
<li>arm_cfft_radix2_f32</li>
<li>arm_cfft_radix2_init_f32</li>
<li>arm_cfft_radix4_f32</li>
<li>arm_cfft_radix4_init_f32 </li>
</ul>
</td></tr>
<tr>
<td>V1.3.0 </td><td><p class="starttd">Added CMSIS DSP Software Library</p>
<p>The CMSIS DSP Software Library is a suite of common signal processing functions targeted to Cortex-M processor based microcontrollers. Even though the code has been specifically optimized towards using the extended DSP instruction set of the Cortex-M4 processor, the library can be compiled for any Cortex-M processor.</p>
<p>For more information please see CMSIS DSP Library documentation. Added Cortex-M4 Core Support</p>
<p>Additional folder CM4, containing the Cortex-M4 core support files, has been added. CM0 CM3 CM4 CoreSupport DeviceSupport</p>
<p>New naming for Core Support Files</p>
<p class="endtd">The new Core Support Files are:</p>
<ul>
<li>core_cm#.h (# = 0, 3, 4)</li>
<li>core_cmFunc.h (Cortex-M Core Register access functions)</li>
<li>core_cmInstr.h (Cortex-M Core instructions)</li>
<li>core_cm4_simd.h (Cortex-M4 SIMD instructions) </li>
</ul>
</td></tr>
<tr>
<td>V1.2.0 </td><td><p class="starttd">Removed CMSIS Middelware packages</p>
<p>CMSIS Middleware is on hold from ARM side until a agreement between all CMSIS partners is found. SystemFrequency renamed to SystemCoreClock</p>
<p>The variable name SystemCoreClock is more precise than SystemFrequency because the variable holds the clock value at which the core is running. Changed startup concept</p>
<p>The old startup concept (calling SystemInit_ExtMemCtl from startup file and calling SystemInit from main) has the weakness that it does not work for controllers which need a already configuerd clock system to configure the external memory controller.</p>
<p>Changed startup concept</p>
<ul>
<li>SystemInit() is called from startup file before premain.</li>
<li>SystemInit() configures the clock system and also configures an existing external memory controller.</li>
<li>SystemInit() must not use global variables.</li>
<li>SystemCoreClock is initialized with a correct predefined value.</li>
<li>Additional function void SystemCoreClockUpdate (void) is provided.</li>
<li>SystemCoreClockUpdate() updates the variable SystemCoreClock and must be called whenever the core clock is changed.</li>
<li>SystemCoreClockUpdate() evaluates the clock register settings and calculates the current core clock.</li>
</ul>
<p>Advanced Debug Functions</p>
<p>ITM communication channel is only capable for OUT direction. To allow also communication for IN direction a simple concept is provided.</p>
<ul>
<li>Global variable volatile int ITM_RxBuffer used for IN data.</li>
<li>Function int ITM_CheckChar (void) checks if a new character is available.</li>
<li>Function int ITM_ReceiveChar (void) retrieves the new character.</li>
</ul>
<p>For detailed explanation see file CMSIS debug support.htm.</p>
<p>Core Register Bit Definitions</p>
<p>Files core_cm3.h and core_cm0.h contain now bit definitions for Core Registers. The name for the defines correspond with the Cortex-M Technical Reference Manual.</p>
<p>e.g. SysTick structure with bit definitions</p>
<div class="fragment"><div class="line"></div>
<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line">{</div>
<div class="line"> __IO uint32_t CTRL; </div>
<div class="line"> __IO uint32_t LOAD; </div>
<div class="line"> __IO uint32_t VAL; </div>
<div class="line"> __I uint32_t CALIB; </div>
<div class="line">} SysTick_Type;</div>
<div class="line"></div>
<div class="line"><span class="comment">/* SysTick Control / Status Register Definitions */</span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_COUNTFLAG_Pos 16 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_COUNTFLAG_Msk (1ul &lt;&lt; SysTick_CTRL_COUNTFLAG_Pos) </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_CLKSOURCE_Pos 2 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_CLKSOURCE_Msk (1ul &lt;&lt; SysTick_CTRL_CLKSOURCE_Pos) </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_TICKINT_Pos 1 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_TICKINT_Msk (1ul &lt;&lt; SysTick_CTRL_TICKINT_Pos) </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_ENABLE_Pos 0 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CTRL_ENABLE_Msk (1ul &lt;&lt; SysTick_CTRL_ENABLE_Pos) </span></div>
<div class="line"><span class="preprocessor"></span><span class="comment">/* SysTick Reload Register Definitions */</span><span class="preprocessor"></span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define SysTick_LOAD_RELOAD_Pos 0 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul &lt;&lt; SysTick_LOAD_RELOAD_Pos) </span></div>
<div class="line"><span class="preprocessor"></span><span class="comment">/* SysTick Current Register Definitions */</span><span class="preprocessor"></span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define SysTick_VAL_CURRENT_Pos 0 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul &lt;&lt; SysTick_VAL_CURRENT_Pos) </span></div>
<div class="line"><span class="preprocessor"></span><span class="comment">/* SysTick Calibration Register Definitions */</span><span class="preprocessor"></span></div>
<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define SysTick_CALIB_NOREF_Pos 31 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CALIB_NOREF_Msk (1ul &lt;&lt; SysTick_CALIB_NOREF_Pos) </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CALIB_SKEW_Pos 30 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CALIB_SKEW_Msk (1ul &lt;&lt; SysTick_CALIB_SKEW_Pos) </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CALIB_TENMS_Pos 0 </span></div>
<div class="line"><span class="preprocessor">#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul &lt;&lt; SysTick_VAL_CURRENT_Pos) </span></div>
<div class="line"><span class="preprocessor"> </span><span class="comment">/* end of group CMSIS_CM3_SysTick */</span><span class="preprocessor"></span></div>
</div><!-- fragment --><p>DoxyGen Tags</p>
<p>DoxyGen tags in files core_cm3.[c,h] and core_cm0.[c,h] are reworked to create proper documentation using DoxyGen. Folder Structure</p>
<p class="endtd">The folder structure is changed to differentiate the single support packages. </p>
<pre class="fragment">CM0
CM3
CoreSupport
DeviceSupport
Vendor
Device
Startup
Toolchain
Toolchain
...
Device
...
Vendor
...
Example (optional)
Toolchain
Device
Device
...
Toolchain
...
Documentation
</pre> </td></tr>
<tr>
<td>V1.1.0 2012/02/15 </td><td>Updated with more optimizations, bug fixes and minor API changes. </td></tr>
<tr>
<td>V1.0.11 2011/10/18 </td><td>Bug Fix in conv, correlation, partial convolution. </td></tr>
<tr>
<td>V1.0.10 2011/7/15 </td><td>Big Endian support added and Merged M0 and M3/M4 Source code. </td></tr>
<tr>
<td>V1.0.3 2010/11/29 </td><td>Re-organized the CMSIS folders and updated documentation. </td></tr>
<tr>
<td>V1.0.2 2010/11/11 </td><td>Documentation updated. </td></tr>
<tr>
<td>V1.0.1 2010/10/05 </td><td>Production release and review comments incorporated. </td></tr>
<tr>
<td>V1.0.0 2010/09/20 </td><td>Production release and review comments incorporated. </td></tr>
<tr>
<td>V0.0.9 2010/08/27 </td><td>Added files:<ul>
<li><a class="el" href="arm__biquad__cascade__df1__fast__q15_8c.html">arm_biquad_cascade_df1_fast_q15.c</a></li>
<li><a class="el" href="arm__biquad__cascade__df1__fast__q31_8c.html">arm_biquad_cascade_df1_fast_q31.c</a></li>
<li><a class="el" href="arm__fir__fast__q31_8c.html">arm_fir_fast_q31.c</a></li>
<li><a class="el" href="arm__fir__fast__q15_8c.html">arm_fir_fast_q15.c</a> </li>
</ul>
</td></tr>
<tr>
<td>V0.0.7 2010/06/10 </td><td>Misra-C changes done </td></tr>
<tr>
<td>V0.0.5 2010/04/26 </td><td>incorporated review comments and updated with latest CMSIS layer </td></tr>
<tr>
<td>V0.0.3 2010/03/10 DP </td><td>Initial version </td></tr>
</table>
</div></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="footer">Generated on Wed Jul 10 2019 15:20:39 for CMSIS-DSP Version 1.7.0 by Arm Ltd. All rights reserved.
<!--
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
-->
</li>
</ul>
</div>
</body>
</html>
|