Поддержка параллельного выполнения нескольких задач

Если пользовательский целевой процессор должен поддерживать параллельное выполнение нескольких задач на многоядерной платформе, целевой объект должен объявить поддержку для параллельного выполнения путем установки целевой опции строения ConcurrentExecutionCompliant. В противном случае вы не сможете сконфигурировать многоядерную целевую модель для параллельного выполнения.

Если ConcurrentExecutionCompliant не настроен для вашего пользовательского целевого объекта, можно задать опцию следующими способами:

  • Включите следующий код непосредственно в целевой системный файл (mytarget.tlc):

    rtwgensettings.SelectCallback = 'slConfigUISetVal(hDlg,hSrc,...
         ''ConcurrentExecutionCompliant'',''on'');';
    rtwgensettings.ActivateCallback = 'slConfigUISetVal(hDlg,hSrc,...
         ''ConcurrentExecutionCompliant'',''on'');';
  • Реализуйте функцию обратного вызова, которая устанавливает ConcurrentExecutionCompliant опция, а затем установите функцию обратного вызова в SelectCallback поле rtwgensettings структура в целевом файле системы. Функция обратного вызова запускается каждый раз, когда пользователь выбирает цель в System Target File Browser. Например, следующий системный код целевого файла устанавливает SelectCallback функция с именем custom_select_callback_handler:

    rtwgensettings.SelectCallback = 'custom_select_callback_handler(hDlg,hSrc)';

    Аргументы в адрес SelectCallback функция (hDlg, hSrc) являются указателями на частные данные, используемые функциями API коллбэка. Эти указатели ограничены для использования в функциях обратного вызова системного целевого файла. Они должны быть переданы без переделок.

    Ваша функция обратного вызова должна задать ConcurrentExecutionCompliant опция следующим образом:

    slConfigUISetVal(hDlg,hSrc,'ConcurrentExecutionCompliant','on');
    slConfigUISetEnabled(hDlg,hSrc,'ConcurrentExecutionCompliant',false);
    hSrc.refreshDialog;

    Для получения дополнительной информации о системном API коллбэка целевого файла, смотрите slConfigUIGetVal, slConfigUISetEnabled, и slConfigUISetVal function страниц с описанием.

Когда ConcurrentExecutionCompliant для целевой опции строения задано значение 'on'можно выбрать пользовательский целевой объект и сконфигурировать многоядерную целевую модель для параллельного выполнения.

Пример, в котором показано, как сконфигурировать пользовательские целевые дополнительные функции, см. в разделе Настройка системных целевых файлов.

Похожие темы