Программное обеспечение Simulink® Real-Time™ использует модель для отражающей (разделяемой) памяти, которая включает блоки Simulink для функций драйвера общей памяти. Чтобы задать инициализацию узла и разделы общей памяти, функции драйвера используют структуры MATLAB®. Эта тема описывает поддержку Simulink Real-Time плат общей памяти GE® Fanuc Embedded Systems.
Чтобы использовать GE блоки общей памяти Встраиваемых систем Fanuc, необходимо задать структуры раздела общей памяти. Структура раздела описывает, как вы хотите выделить (раздел) общую память. Программное обеспечение Simulink Real-Time выделяет общую память как сегменты данных, которые упаковываются в области памяти или разделы. Наряду с Пакетом Общей памяти и Общей памятью Распаковывают блоки, GE, блоки общей памяти Встраиваемых систем Fanuc используют структуры раздела общей памяти.
После определения разделов общей памяти можно добавить блоки драйверов общей памяти в модель Simulink. Смотрите GE Fanuc Разделяемая Структура Раздела для полного списка полей в разделе.
Следующее описание относится к команде completepartitionstruct
. Ввод
help completepartitionstruct
для получения дополнительной информации.
Создайте структуру раздела одним из следующих способов. Используя команду completepartitionstruct
в Окне Команды MATLAB, создайте структуру раздела по умолчанию. Например, ввести
Partition = completepartitionstruct([],'5565') Partition = Address: '0x0' Type: 'uint32' Size: '1' Alignment: '4' 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='uint8'; Partition(3).Size='1'; Partition(3).Alignment='8'; Partition(4).Type='double'; Partition(4).Size='3';
Этот пример задает раздел с четырьмя сегментами.
Поле Address
является дополнительным. Только задайте это поле для первого сегмента раздела. Элементы раздела заданы как непрерывный блок памяти от первого адреса. Функция экстраполирует адреса сегмента из первого определения сегмента. Если вы имеете или требуете фрагментированной памяти, используйте несколько разделов.
Поля Type
и Size
требуются для всех сегментов в структуре раздела.
Значение Alignment
является дополнительным. Это - '4'
по умолчанию, который обеспечивает сегменты, которые не имеют спецификаций выравнивания, чтобы запуститься на 4-байтовых контурах (на 32 бита). В предыдущем определении раздела третий сегмент (Partition(3)
) имеет выравнивание '8'
.
Тип данных, размер и выравнивание предыдущего сегмента define базовые адреса последующих сегментов.
Чтобы заполнить структуру раздела, вызовите команду completepartitionstruct()
.
Partition = completepartitionstruct(Partition,'5565');