Создайте Curtiss-мастера разделяемые разделы

Программное обеспечение Simulink® Real-Time™ использует модель в отражающей (разделяемой) памяти, которая включает блоки Simulink для функций драйвера общей памяти. Чтобы задать инициализацию узла и разделы общей памяти, функции драйвера используют структуры MATLAB®. Эта тема описывает поддержку Simulink Real-Time платы общей памяти Systran®.

Чтобы использовать блоки общей памяти Simulink Real-Time, необходимо задать структуры раздела общей памяти. Структура раздела описывает, как вы хотите выделить (раздел) общую память. Программное обеспечение Simulink Real-Time выделяет общую память как сегменты данных, которые упаковываются в области памяти или разделы. Наряду с Пакетом Общей памяти и Общей памятью Распаковывают блоки, блоки памяти Systranshared используют структуры раздела общей памяти.

После определения разделов общей памяти можно добавить блоки драйверов общей памяти в модель Simulink. Смотрите Curtiss-мастера Разделяемая Структура Раздела для полного списка полей в структуре раздела.

Следующее описание относится к completepartitionstruct команда. Ввод

help completepartitionstruct

для получения дополнительной информации.

  • Создайте структуру раздела одним из следующих способов. Используя completepartitionstruct команда в Окне Команды MATLAB, создайте структуру раздела по умолчанию. Например, ввести

    Partition = completepartitionstruct([],'scramnet')
    
    Partition = 
            Address: '0x0'
               Type: 'uint32'
               Size: '1'
          Alignment: '4'
                RIE: 'off'
                TIE: 'off'
        ExtTrigger1: 'off'
        ExtTrigger2: 'off'
              HIPRO: 'off'
           Internal: [1x1 struct]
  • В Окне Команды MATLAB создайте пользовательскую структуру раздела. Частично задайте структуру в файле скрипта, запуск, что скрипт в рабочем пространстве MATLAB, и заполняет получившуюся структуру с completepartitionstruct функция. Например:

    Partition(1).Address='0x5000';
    Partition(1).Type='int8';
    Partition(1).Size='10';
    Partition(2).Type='uint16';
    Partition(2).Size='5';
    Partition(3).Type='double';
    Partition(3).Size='3';
    Partition(4).Type='uint8';
    Partition(4).Size='[2, 3]';

    Этот пример задает раздел с четырьмя сегментами.

    • Address поле является дополнительным. Только задайте это поле для первого сегмента раздела. Элементы раздела заданы как непрерывный блок памяти от первого адреса. Функция экстраполирует адреса сегмента из первого определения сегмента. Если вы имеете или требуете фрагментированной памяти, используйте несколько разделов.

    • Type и Size поля требуются для всех сегментов в структуре раздела.

    • Alignment значение является дополнительным. Это - '4' по умолчанию. Это значение обеспечивает сегменты, которые не имеют технических требований выравнивания, чтобы запуститься на 4-байтовых (32-битных) контурах.

    • Тип данных, размер и выравнивание предыдущего сегмента define базовые адреса последующих сегментов.

    • Чтобы заполнить структуру раздела, вызовите completepartitionstruct() команда.

      Partition = completepartitionstruct(Partition,'scramnet');