Для моделей, содержащих операции чтения и записи для блоков памяти хранилища данных, можно сгенерировать код, который содержит одну переменную, чтобы удерживать значение для каждой операции чтения и записи хранилища данных. Сгенерирование одной переменной для каждой операции улучшает когерентность доступа к данным.
The data_store_latching
модель содержит один блок Данных Store Памяти, к которому обращаются два различных блока Данных Store Памяти Read и два блока Данных Store Памяти Write. Два блока Sum выполняют сложение входных входов, сгенерированных блоками Data Store Read, и выводят данные в блоки Data Store Write.
Построение модели с параметром Implement each data store block as a unique access point, отключенным по умолчанию, генерирует этот код:
void data_store_latching_step(void) { /* DataStoreWrite: '<Root>/Data Store Write' incorporates: * DataStoreRead: '<Root>/Data Store Read' * Sum: '<Root>/Add' */ data_store_latching_DW.A += data_store_latching_DW.A + data_store_latching_DW.A; /* DataStoreWrite: '<Root>/Data Store Write1' incorporates: * DataStoreRead: '<Root>/Data Store Read1' * Sum: '<Root>/Add1' */ data_store_latching_DW.A += data_store_latching_DW.A + data_store_latching_DW.A; }
data_store_latching_DW.A
. В диалоговом окне Параметров конфигурации на панели Interface выберите Реализуйте каждый блок хранилища данных как уникальный параметр точки доступа. Нажмите Apply.
Сгенерированный код теперь:
void data_store_latching_step(void) { real_T rtb_DataStoreRead; real_T rtb_DataStoreRead1; /* DataStoreRead: '<Root>/Data Store Read' */ rtb_DataStoreRead = data_store_latching_DW.A; /* DataStoreWrite: '<Root>/Data Store Write' incorporates: * Sum: '<Root>/Add' */ data_store_latching_DW.A = (rtb_DataStoreRead + rtb_DataStoreRead) + rtb_DataStoreRead; /* DataStoreRead: '<Root>/Data Store Read1' */ rtb_DataStoreRead1 = data_store_latching_DW.A; /* DataStoreWrite: '<Root>/Data Store Write1' incorporates: * Sum: '<Root>/Add1' */ data_store_latching_DW.A = (rtb_DataStoreRead1 + rtb_DataStoreRead1) + rtb_DataStoreRead1; }
rtb_DataStoreRead
и rtb_DataStoreRead1
. Эти отдельные переменные улучшают когерентность доступа к данным.