Создайте 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');
Для просмотра документации необходимо авторизоваться на сайте