Hi, I corrected the bug : if you have only one input vector, you do not need to add an (unused) output to the function.
This will be available in the next version (i.e. 0.97b)
Remark about the inline parameters :
When the C call function use input vectors with more than 2 elements (an array in C language), the adress of the first element (pointer) is passed to the C function .
In your exemple, when inline parameters is checked in simulink options, the first element of the array is a constant. This constant may not be stored next to the remaining vector variables values.
When inline parameters, the vectors intern variable usually follows each other in memory. (from experiment, I did not read anything about it)
Thus, I suggest to use an intermediate variable :

- C function Call with vector input and intermediate variable (Simulink "inline parameters" option checked)
- C_funCall_WithInterVariable.png (14.58 KiB) Viewed 28602 times
I wish you good luck with SPI using DMA !
Right now, I have done a new SPI block that use interrupt (but no DMA) However, It works only in master mode. It is usefull if you read data from external component (ADC, gyro or others) and have stringent real-time constraints. I will try to extend to slave mode.