How can I set portable word sizes for the MATLAB Coder?
6 views (last 30 days)
Show older comments
Daniel Wagstaff
on 3 Jul 2015
Commented: Ryan Livingston
on 9 Jul 2015
Hi,
I'm using the MATLAB Coder (not the Simulink Coder) to automatically generate 'C' code from MATLAB algorithims. I'm using the GNU Tools for ARM Embedded Processors compiler, otherwise the ARM Cortex-M code replacement library doesn't work. When I run a SIL simulation, I get the error: "The toolchain for '<my entry function>' is 'GNU Tools for ARM Embedded Processors' and the model option Enable portable word sizes was not selected. This configuration is not supported for SIL simulation"
I've looked how to enable portable word sizes, but all the information is for the Simulink Coder, the MATLAB Coder doesn't have an option to enable portable word sizes. Is there a hidden menu somewhere? Incidentally, although MATLAB Coder is using Embedded Coder settings, the MATLAB Coder still provides many fewer options for settings than the Simulink version.
Many thanks, Dan
0 Comments
Accepted Answer
Ryan Livingston
on 8 Jul 2015
MATLAB Coder does not have support for portable word sizes. Unfortunately this message is misleading in that regard and has been reported to our development teams.
To verify your code I would recommend either switching to a host computer toolchain and running the code on the host using SIL or using processor-in-the-loop (PIL) to run directly on your target hardware if you are using MATLAB R2014b or later.
2 Comments
Ryan Livingston
on 9 Jul 2015
You're welcome, Dan. Currently MATLAB Coder supports a subset of the Embedded Coder features supported in Simulink that you see in the configuration object and the settings dialog. Building for ROM efficiency is not currently among those features.
We're always working to increase the support and I made a note of your desire for supporting building for ROM efficiency.
Decreasing inlining may be one option to help keep the ROM size under control. You can manually prevent a function from being inlined by adding:
coder.inline('never');
to it. Alternatively, you could reduce the thresholds related to which functions may be inlined in the settings InlineThreshold and InlineThresholdMax. Coupling those changes with the right C compiler options may be helpful to reduce code size.
More Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!