exponenta event banner

slci.mlutil.reviewmode

Укажите, что невстроенные функции, сгенерированные от функций MATLAB, заданных в блоках MATLAB function, требуют ручного анализа

    Описание

    пример

    slci.mlutil.reviewmode('manual') сообщает Simulink Code Inspector, что невстроенная функция, сгенерированная от текущей пользовательской функции MATLAB, требует ручного анализа. Поместите slci.mlutil.reviewmode директива в пользовательских функциях MATLAB, для которых вы хотите отключить инспекцию кода.

    Примеры

    свернуть все

    Этот пример использует slcidemo_noninline_func_verificationp модель, которая присутствует в вашей текущей рабочей папке. Модель содержит два блока MATLAB function, каждый из которых включает пользовательскую функцию. Эти функции сконфигурированы, чтобы быть одноразового использования и невстроенными.

    Когда вы проверяете совместимость модели при помощи программы контроля совместимости, вы видите что пользовательский функциональный foo1 не поддержал код MATLAB, который может привести к отказу инспекции кода. Чтобы избежать инспекционного отказа, вызванного несовместимостью, отключите осмотр несовместимой невстроенной, пользовательской функции, сгенерированной от foo1.

    Установите ручной флаг анализа в функции MATLAB foo1.

    type fcn1.m
    
    function out1  = fcn1(u1)
    %codegen
    out1 = foo1(u1);
    function y = foo1(u)
    % Set coder.inline directive to 'never'
    coder.inline('never');
    % Set manual review flag
    slci.mlutil.reviewmode('manual');
      y = ones(1,100);
        parfor (i = 1:5)
            y(i) = i+u;
        end
    

    Чтобы отключить контроль невстроенной функции, в командном окне MATLAB запускают этот код:

    config = slci.Configuration('slcidemo_noninline_func_verificationp');
    setDisableNonInlinedFuncBodyVerification(config, true);
    

    Сгенерируйте инспекция кода запуска и код.

    slbuild('slcidemo_noninline_func_verificationp');
    inspect(config, 'DisplayResults', 'None');
    
    ### Starting build procedure for: slcidemo_noninline_func_verificationp
    ### Successful completion of build procedure for: slcidemo_noninline_func_verificationp
    
    Build Summary
    
    Top model targets built:
    
    Model                                  Action                       Rebuild Reason                                    
    ======================================================================================================================
    slcidemo_noninline_func_verificationp  Code generated and compiled  Code generation information file does not exist.  
    
    1 of 1 models built (0 models already up to date)
    Build duration: 0h 0m 31.97s
    

    Просмотрите сгенерированный акт осмотра кода HTML.

    web(fullfile('slprj','slci','slcidemo_noninline_func_verificationp_report.html'));
    

    Полными Инспекционными Результатами является Warning. Simulink Code Inspector не смотрит невстроенную функцию, сгенерированную от функционального foo1 но успешно смотрит остальную часть типового кодекса. В отчете существует индикация, что ручной анализ требуется для невстроенной функции, сгенерированной от foo1.

    Введенный в R2021b