主要内容gydF4y2Ba

MATLABgydF4y2Ba代码模式需要一个非空的初始化函数生成的代码gydF4y2Ba

问题gydF4y2Ba

当从MATLAB生成独立的代码gydF4y2Ba®gydF4y2Ba代码,你选择不生成初始化功能:gydF4y2Ba

  • 在一个gydF4y2Bacoder.EmbeddedCodeConfiggydF4y2Ba对象,gydF4y2BaIncludeInitializeFcngydF4y2Ba被设置为gydF4y2Ba假gydF4y2Ba。gydF4y2Ba

  • 另外,在gydF4y2BaMATLAB编码器™gydF4y2Ba应用程序,gydF4y2Ba所有设置gydF4y2Ba选项卡,gydF4y2Ba初始化函数所需的gydF4y2Ba被设置为gydF4y2Ba没有gydF4y2Ba。gydF4y2Ba

同样,你确保自定义代码出现在生成的初始化函数是空的:gydF4y2Ba

  • 在一个gydF4y2Bacoder.EmbeddedCodeConfiggydF4y2Ba对象,gydF4y2BaCustomInitializergydF4y2Ba被设置为gydF4y2Ba”gydF4y2Ba。gydF4y2Ba

  • 另外,在gydF4y2BaMATLAB编码器gydF4y2Ba应用程序,gydF4y2Ba自定义代码gydF4y2Ba选项卡,gydF4y2Ba自定义生成的文件的C代码gydF4y2Ba初始化函数是空的。gydF4y2Ba

你仍然得到这个错误信息:gydF4y2Ba

初始化函数不是空的,而是IncludeInitializeFcn配置设置请求初始化函数被省略了。gydF4y2Ba

解决方案gydF4y2Ba

在某些情况下,代码生成器确定必须非空的初始化函数,产生初始化函数的代码。这个代码生成可以发生即使初始化函数,您指定的自定义代码是空的。不包括这个在初始化函数中生成的代码会导致生成的入口点函数来操作一个无效的状态。在这种情况下,如果您选择不生成初始化函数,代码生成器产生一条错误消息。gydF4y2Ba

为了解决这个问题,在生成的代码中包含初始化函数通过下列之一:gydF4y2Ba

  • 在一个gydF4y2Bacoder.EmbeddedCodeConfiggydF4y2Ba对象,设置gydF4y2BaIncludeInitializeFcngydF4y2Ba来gydF4y2Ba真正的gydF4y2Ba(该值是默认值)。gydF4y2Ba

  • 在gydF4y2BaMATLAB编码器gydF4y2Ba应用程序,gydF4y2Ba所有设置gydF4y2Ba选项卡,设置gydF4y2Ba初始化函数所需的gydF4y2Ba来gydF4y2Ba是的gydF4y2Ba(此设置是默认设置)。gydF4y2Ba

MATLAB代码模式的示例,需要一个非空的初始化函数生成的代码是:gydF4y2Ba

  • MATLAB代码包含一个操作,可以生成非限定的值(gydF4y2Ba正gydF4y2Ba或gydF4y2Ba南gydF4y2Ba)。例如,定义一个MATLAB函数gydF4y2Ba喷火gydF4y2Ba调用gydF4y2Ba的阶乘gydF4y2Ba。的gydF4y2Ba的阶乘gydF4y2Ba函数增长迅速并返回gydF4y2Ba正gydF4y2Ba输入大于某个阈值。一个输入的类型gydF4y2Ba双gydF4y2Ba的阈值gydF4y2Ba170年gydF4y2Ba。执行gydF4y2Ba阶乘(171)gydF4y2Ba在MATLAB的回报gydF4y2Ba正gydF4y2Ba。gydF4y2Ba

    函数gydF4y2Bay = foo () y =阶乘(一个);gydF4y2Ba结束gydF4y2Ba

    生成一个静态库gydF4y2Ba喷火gydF4y2Ba。在gydF4y2Bacoder.EmbeddedCodeConfiggydF4y2Ba对象gydF4y2BacfggydF4y2Ba,设置参数gydF4y2BaCustomInitializergydF4y2Ba一个空的字符数组。设置参数gydF4y2BaIncludeInitializeFcngydF4y2Ba来gydF4y2Ba真正的gydF4y2Ba。这些值参数的默认值。gydF4y2Ba

    cfg = coder.config (gydF4y2Ba“自由”gydF4y2Ba);cfg。CustomInitializer =gydF4y2Ba”gydF4y2Ba;gydF4y2Ba%这是默认值gydF4y2Bacfg。IncludeInitializeFcn = true;codegengydF4y2Ba配置gydF4y2BacfggydF4y2Ba喷火gydF4y2Baarg游戏gydF4y2Ba{1}gydF4y2Ba

    代码生成器自动生成一个非空的初始化函数gydF4y2Bafoo_initializegydF4y2Ba非限定的数据调用支持代金宝app码。这个函数调用gydF4y2Bart_InitInfAndNaNgydF4y2Ba中定义的,它是一个生成的文件gydF4y2Bart_nonfinite.cgydF4y2Ba。gydF4y2Ba

    / *包含文件* / # Include“foo_initialize。h”# include“foo。h foo_data # include。h rt_nonfinite # include。h”* / / * * / *函数定义参数:void *返回类型:void * /空白foo_initialize (void) {rt_InitInfAndNaN ();isInitialized_foo = true;}/ * *文件foo_initialize拖车。c * * (EOF) * /gydF4y2Ba

  • 你的MATLAB代码使用gydF4y2Ba全球gydF4y2Ba或gydF4y2Ba持续的gydF4y2Ba变量。例如,定义这个MATLAB函数:gydF4y2Ba

    函数gydF4y2Bay =酒吧gydF4y2Ba全球gydF4y2Bag y = g;gydF4y2Ba结束gydF4y2Ba

    生成一个静态库gydF4y2Ba酒吧gydF4y2Ba。指定的初始值gydF4y2BaggydF4y2Ba作为gydF4y2Ba1gydF4y2Ba。在gydF4y2Bacoder.EmbeddedCodeConfiggydF4y2Ba对象gydF4y2BacfggydF4y2Ba,设置参数gydF4y2BaCustomInitializergydF4y2Ba一个空的字符数组。设置参数gydF4y2BaIncludeInitializeFcngydF4y2Ba来gydF4y2Ba真正的gydF4y2Ba。这些值参数的默认值。gydF4y2Ba

    cfg = coder.config (gydF4y2Ba“自由”gydF4y2Ba);cfg。CustomInitializer =gydF4y2Ba”gydF4y2Ba;gydF4y2Ba%这是默认值gydF4y2Bacfg。IncludeInitializeFcn = true;codegengydF4y2Ba配置gydF4y2BacfggydF4y2Ba全局变量gydF4y2Ba{' g ', 1}gydF4y2Ba酒吧gydF4y2Ba

    代码生成器自动生成一个非空的初始化函数gydF4y2Babar_initializegydF4y2Ba初始化gydF4y2BaggydF4y2Ba。gydF4y2Ba

    / *包含文件* / # Include“bar_initialize。h“# include”酒吧。h bar_data # include。h”* / / * * / *函数定义参数:void *返回类型:void * /空白bar_initialize (void) {g = 1.0;isInitialized_bar = true;}/ * *文件bar_initialize拖车。c * * (EOF) * /gydF4y2Ba

另请参阅gydF4y2Ba

相关的话题gydF4y2Ba