How can I make Embedded Coder use "memset" instead of enormous hard-coded constants?

2 次查看(过去 30 天)
How can I make Embedded Coder use "memset" instead of enormous hard-coded constants?
I have a constant block containing an array with 100e3 elements. I have enabled "Use memset to initialize floats and doubles to 0.0", but this constant shows up as 100e3 hard-coded zeros in the "*.c" generated code file. This constant takes up more than 6000 lines of code--all zeros.
Run below command in MATLAB 2016b for documentation:
>> web(fullfile(docroot, 'simulink/gui/use-memset-to-initialize-floats-and-doubles-to-0-0.html'))
Or for latest release documentation on using memset to initialize floats and doubles to 0.0, please refer to:

采纳的回答

MathWorks Support Team
编辑:MathWorks Support Team 2023-4-19
Make sure that the "Inline invariant signals" optimization has been enabled.
Run below command in MATLAB 2016b for documentation:
>> web(fullfile(docroot, 'simulink/gui/inline-invariant-signals.html'))
Or for latest release documentation on inline invariant signals, please refer to:
This setting can interact with using "memset" such that "memset" is not used unless "Inline invariant signals" has been enabled.

更多回答(0 个)

标签

尚未输入任何标签。

产品


版本

R2016b

Community Treasure Hunt

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

Start Hunting!

Translated by