CMSIS-DSP
Version 1.10.0
CMSIS DSP Software Library
|
Version | Description |
---|---|
V1.10.0 | Float promotion issues:
Scalar versions of arm_vlog_q31 and arm_vlog_q15 Synchronous Data Flow (scripts in github repository) Python wrapper available on official Python repository MFCC F32, F16, Q31 and Q15 Typecasting functions for converting between f16 and s16 in scalar. More f64 functions arm_cmplx_mag_fast_q15: The original arm_cmplx_mag_q15 is now more accurate but slower. Added arm_mat_mult_opt_q31 for a faster version of arm_mat_mult_q31 when using Helium (but requiring more storage for intermediate results). arm_(min|max)_no_idx_(q7|q15|q31|f16|f32|f64) arm_abs(min|max)_no_idx_(q7|q15|q31|f16|f32|f64) arm_mse_(q7|q15|q31|f16|f32|f64) Trigonometric functions:
|
V1.9.0 | Re-organization of arm_math.h Re-organization of interpolation functions:
New q7 functions: Matrix x vector multiply Complex Matrix Transpose Cholesky (LL^t and LDL^t decompositions) More support for f16 datatype:
Support for Quaternions Levinson Durbin algorithm Q15 scalar division New absmax and absmin functions GCC issues: Some functions have build issues when building Helium code with gcc. So they are replaced with a less efficient scalar version when built with gcc.
Important:
|
V1.8.0 | Helium implementation of lots of functions in the CMSIS-DSP. More will be added in future releases.
New folder SVMFunctions : Support vector machines.
New folder BayesFunctions : Functions related to Bayesian probability. In this version only a naive gaussian classifier.
New folder DistanceFunctions:
For the new functions in SVMFunctions, BayesFunctions and DistanceFunctions, a tutorial is available. New BasicMathFunctions:
New support functions:
New statistics functions:
New testing framework:
Improvements to the cmake build:
|
V1.7.0 | New Neon implementations of f32 functions
Python wrapper compatible with Numpy
Preliminary cmake build
Modified arm_math.h
Added compilation flags for FFT:
|
V1.6.0 | Reworked DSP library source files
Reworked DSP library documentation Changed DSP folder structure
ARM DSP Libraries are built with ARMCLANG Added DSP Libraries source variant |
V1.5.4 | Updated IAR projects Note: binaries NOT rebuild! |
V1.5.3 | Note: binaries NOT rebuild! Merged PullRequests
Modified arm_math.h
Modified source files (because of new arm_math.h)
|
V1.5.2 | Modified arm_math.h
|
V1.5.1 | Changed copyright note. Added ARMv8M DSP libraries. |
V1.5.0 | Modified arm_math.h
Modified arm_const_structs.c
|
V1.4.10 (no source code change [still labeled 1.4.5]) | Modified arm_sin_cos_f32.c
Modified arm_var_f32.c
|
V1.4.9 (no source code change [still labeled 1.4.5]) 2016/09/26 | Modified arm_mat_mult_fast_q15.c, arm_mat_mult_fast_q31.c
Modified arm_conv_partial_q15.c
Modified arm_conv_q15.c
Modified arm_correlate_q15.c
|
V1.4.8 (no source code change [still labeled 1.4.5]) 2015/12/18 | Modified arm_math.h, arm_bitreversal2.S
Modified arm_sin_f32.c
Updated documentation
|
V1.4.7 (no source code change [still labeled 1.4.5]) 2015/10/20 | Modified arm_math.h
Updated documentation
|
V1.4.6 (no source code change [still labeled 1.4.5]) 2015/08/26 | Modified arm_math.h
|
V1.4.5 2015/03/19 | Added support for the Cortex-M7 processor Fixed bug in arm_mat_inverse_f32.c and arm_mat_inverse_f64.c. They weren't properly handling diagonal matrices. arm_cfft_f32.c - help documentation updated Updated documentation to show deprecated functions |
V1.4.4 2014/07/31 | Added the following new files:
Optimizations to the following files: |
V1.4.3 2014/03/12 | Undid changes to arm_biquad_cascade_df1_q31.c Added support for COSMIC Changed 'short' to 'q15_t' where appropriate Fixed arm_conv_partial_fast_q15.c for UNALIGNED_SUPPORT_DISABLE Fixed arm_mat_cmplx_mult_q15.c for UNALIGNED_SUPPORT_DISABLE Fixed arm_conv_partial_opt_q7.c for UNALIGNED_SUPPORT_DISABLE Restored the internal fftlen of 16 to arm_rfft_fast_init_f32.c Updated core_xxx.h files to newer versions from ARM |
V1.4.2 2013/10/16 | Moved const structures from arm_const_structs.h to arm_const_structs.c Rfft_fast_f32 no longer allows fft length of 16 as it wouldn't have worked anyways Partial convolution was producing the wrong results in some cases arm_lms_q31 and q15 now saturate the results in the M0 code to match the M3 & M4 code Rfft_q15 and q31 had potential overflow issues resolved arm_biquad_cascade_df1_q31.c had a typo which resulted in incorrect outputs fast math sine and cosine now use linear interpolation controller sin/cos now uses a more accurate interpolation algorithm arm_mat_inverse was reading outside its input array arm_cmplx_dot_prod was incorrect switched some incorrect usages of __ssat to clip_q63_to_q31 changed var & std q31 to downshift input data by 8 var q31 & q15 no longer output larger data types arm_mat_cmplx_mult_q15.c was done incorrectly for big vs little endian arm_mat_mult_q31.c was inconsistent with the other multiplies, so added saturation arm_conv_partial_q15 had an incorrect comparison between signed & unsigned values |
V1.4.1 2013/02/20 | Updated licenses in headers to 2013 Fixed ALIGN4 macro in arm_math.h Added files to Cortex-M0 projects so that all projects have same file list Fixed bugs in
|
V1.4.0 2013/01/09 | Updated with more optimizations, bug fixes and new license information in headers Optimized functions:
Fixed compiler warnings in arm_math.h for comparing signed and unsigned ints Fixed a saturation bug in arm_rms_q15 Simplified the code in arm_sin_cos_q31 Added a preprocessor directive to treat the Cortex M0+ just like the Cortex M0 The following functions were deprecated and will be removed in a future version
|
V1.3.0 | Added CMSIS DSP Software Library 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. For more information please see CMSIS DSP Library documentation. Added Cortex-M4 Core Support Additional folder CM4, containing the Cortex-M4 core support files, has been added. CM0 CM3 CM4 CoreSupport DeviceSupport New naming for Core Support Files The new Core Support Files are:
|
V1.2.0 | Removed CMSIS Middelware packages CMSIS Middleware is on hold from ARM side until a agreement between all CMSIS partners is found. SystemFrequency renamed to SystemCoreClock 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 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. Changed startup concept
Advanced Debug Functions ITM communication channel is only capable for OUT direction. To allow also communication for IN direction a simple concept is provided.
For detailed explanation see file CMSIS debug support.htm. Core Register Bit Definitions 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. e.g. SysTick structure with bit definitions typedef struct
{
__IO uint32_t CTRL;
__IO uint32_t LOAD;
__IO uint32_t VAL;
__I uint32_t CALIB;
} SysTick_Type;
/* SysTick Control / Status Register Definitions */
#define SysTick_CTRL_COUNTFLAG_Pos 16
#define SysTick_CTRL_COUNTFLAG_Msk (1ul << SysTick_CTRL_COUNTFLAG_Pos)
#define SysTick_CTRL_CLKSOURCE_Pos 2
#define SysTick_CTRL_CLKSOURCE_Msk (1ul << SysTick_CTRL_CLKSOURCE_Pos)
#define SysTick_CTRL_TICKINT_Pos 1
#define SysTick_CTRL_TICKINT_Msk (1ul << SysTick_CTRL_TICKINT_Pos)
#define SysTick_CTRL_ENABLE_Pos 0
#define SysTick_CTRL_ENABLE_Msk (1ul << SysTick_CTRL_ENABLE_Pos)
/* SysTick Reload Register Definitions */
#define SysTick_LOAD_RELOAD_Pos 0
#define SysTick_LOAD_RELOAD_Msk (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos)
/* SysTick Current Register Definitions */
#define SysTick_VAL_CURRENT_Pos 0
#define SysTick_VAL_CURRENT_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)
/* SysTick Calibration Register Definitions */
#define SysTick_CALIB_NOREF_Pos 31
#define SysTick_CALIB_NOREF_Msk (1ul << SysTick_CALIB_NOREF_Pos)
#define SysTick_CALIB_SKEW_Pos 30
#define SysTick_CALIB_SKEW_Msk (1ul << SysTick_CALIB_SKEW_Pos)
#define SysTick_CALIB_TENMS_Pos 0
#define SysTick_CALIB_TENMS_Msk (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)
/* end of group CMSIS_CM3_SysTick */
DoxyGen Tags DoxyGen tags in files core_cm3.[c,h] and core_cm0.[c,h] are reworked to create proper documentation using DoxyGen. Folder Structure The folder structure is changed to differentiate the single support packages. CM0 CM3 CoreSupport DeviceSupport Vendor Device Startup Toolchain Toolchain ... Device ... Vendor ... Example (optional) Toolchain Device Device ... Toolchain ... Documentation |
V1.1.0 2012/02/15 | Updated with more optimizations, bug fixes and minor API changes. |
V1.0.11 2011/10/18 | Bug Fix in conv, correlation, partial convolution. |
V1.0.10 2011/7/15 | Big Endian support added and Merged M0 and M3/M4 Source code. |
V1.0.3 2010/11/29 | Re-organized the CMSIS folders and updated documentation. |
V1.0.2 2010/11/11 | Documentation updated. |
V1.0.1 2010/10/05 | Production release and review comments incorporated. |
V1.0.0 2010/09/20 | Production release and review comments incorporated. |
V0.0.9 2010/08/27 | Added files: |
V0.0.7 2010/06/10 | Misra-C changes done |
V0.0.5 2010/04/26 | incorporated review comments and updated with latest CMSIS layer |
V0.0.3 2010/03/10 DP | Initial version |