Processor-in-the-loop Arduino simulation with double data type

24 views (last 30 days)
I want to perform processor in the loop simulations of a subsystem (controller) in my model on an Arduino Uno board. I successfully generate a PIL block, however I run into the following error message when I start the simulation:
Data type "double" is not supported for SIL or PIL execution with the current target configuration. This is because the host size (8 bytes) and target size (4 bytes) do not match. To avoid this error, do not use this data type at the component interface.
I've tried using the single precision conversion tool with no effect and also tried surrounding the subsystem with the respective conversion blocks.

Answers (2)

Gayatri Menon
Gayatri Menon on 26 Jun 2018
Could you try adding data conversion block inside the subsystem and delete the folders that contain the generated code before trying again.
Yuan Qi
Yuan Qi on 27 Jun 2018
I solved it by changing the default parameter behavior to Inlined and the parameter structure to NonHierarchical.

Sign in to comment.

Piyush Kadkol
Piyush Kadkol on 13 Oct 2018
Hi Yuan, I tried changing the Default Parameter Behaviour to Inlined and Parameter Structure to NonHierarchical, but am still getting the error. Could you suggest anymore changes that are needed to be done to overcome this problem? Thanks!
  1 Comment
Jose GL
Jose GL on 30 Mar 2019
I've the same problem with TI MCU.
The block that you will converter in PIL block has double data type, you need to changue all data type from double to single.

Sign in to comment.


Find more on Simulink Support Package for Arduino Hardware in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by