Supported CMSIS Library Functions for ARM Cortex-A Processors
The Embedded Coder® Support Package for ARM® Cortex®-A Processors provides a code replacement library (CRL) ARM Cortex-A CMSIS to generate calls to CMSIS-DSP library optimized for ARM Cortex-A processors.
For more information on CMSIS-DSP library, see https://github.com/ARM-software/CMSIS-DSP.
To improve the simulation speed of your models and performance of the generated code, you can set the model configuration parameters under the Code Generation>Optimization category. For more information on how to set the model parameters, see Model Configuration Parameters: Code Generation Optimization.
Note
ARM Cortex-A CMSIS CRL supports both 32 bit and 64 bit ARM Cortex-A architectures.
Only 64 bit ARM Cortex-A architectures support the
half
data type.If you encounter situations where the ARM Cortex-A CMSIS CRL does not provide code replacements due to the input vector length being below the threshold, you can enable CMSIS function generation for all input lengths. To do this, set the environment variable
DISABLE_ARMCORTEXA_CMSIS_CRL_THRESHOLDS
to true using the following command:setenv('DISABLE_ARMCORTEXA_CMSIS_CRL_THRESHOLDS',true)
Basic Math Operations
Operation | CMSIS Function | Supported Data Types | Input Specifications | Replaced MATLAB® Function, Operator, or Simulink® Block |
---|---|---|---|---|
Elementwise real addition |
|
|
Note To get the code replacement for elementwise real addition, both inputs must be of the same datatype. | plus |
Real vector offset |
| |||
Elementwise real subtraction |
|
|
Note To get the code replacement for elementwise real subtraction, both inputs must be of the same datatype. | minus |
Elementwise real multiplication |
|
|
Note To get the code replacement for elementwise real multiplication and real vector scale:
| |
Real vector scale |
| Gain | ||
Real absolute |
|
|
| abs |
Real dot product |
|
|
Note Fixed point real dot product:
| dot |
Vector log real |
|
|
| log |
Vector exponential real |
|
|
| exp |
Real vector offset |
|
|
| Bias |
Saturate |
|
|
| Saturation |
Complex Math Operations
Operation | CMSIS Function | Supported Data Types | Input Specifications | Replaced MATLAB Function, Operator, or Simulink Block |
---|---|---|---|---|
Complex dot product |
|
|
| Dot Product |
Complex-by-complex multiplication |
|
|
| Product, Matrix Multiply |
Complex-by-real multiplication |
|
|
| Product, Matrix Multiply |
Matrix Operations
Operation | Function Name | Supported Data Types | Input Specifications | Replaced MATLAB Function, Operator, or Simulink Block |
---|---|---|---|---|
Matrix-by-vector multiplication | neon_mv_mul_u8x16 | uint8 |
| Product, Matrix Multiply |
neon_mv_mul_u16x8 | uint16 |
| ||
neon_mv_mul_u32x4 | uint32 |
| ||
Matrix-by-matrix multiplication | neon_mm_mul_u16x8 | uint16 |
| |
neon_mm_mul_u32x4 | uint32 |
|