Скопируйте данные от и до раздела memory
Сгенерированный код для блока Memory Copy копирует данные с и на память процессора, как сконфигурировано параметрами блоков. Когда вы используете этот блок, чтобы скопировать отдельный элемент данных от источника до места назначения, блок копирует элемент с источника, с помощью типа исходных данных, и затем бросает элемент данных к заданному целевому типу данных.
Включайте столько же экземпляров блока Memory Copy в модели как требуется, чтобы управлять памятью на целевом процессоре. Каждый экземпляр кладки блоков с одной переменной, адресом или набором адресов, предоставленных блоку, как введено.
Задайте источник и место назначения для копии памяти при помощи параметров блоков. Можно использовать параметры блоков, чтобы управлять другими аспектами копии памяти, такими как:
Инициализация для ячеек памяти
Шаг памяти и смещение в течение времени выполнения
Операции записи к памяти во время инициализации программы, во время завершения программы, и в каждом шаге расчета
Вставка пользовательского ANSI® C исходный код до и после каждой памяти копируют операцию чтения и операцию записи (например, чтобы заблокировать и разблокировать регистры до и после доступа к ним)
Быстрый прямой доступ к памяти (QDMA) для процессоров и плат, которые поддерживают операции копии QDMA (C621x, C64xx и семейства процессоров C671x)
Блок Memory Copy выполняет операции в три периода во время выполнения программы:
Инициализация
Работа в режиме реального времени
Завершение
Можно использовать параметры блоков, чтобы управлять, когда и как блок инициализирует память, копирует данные или переменные к и из памяти, и отключает операции копии. Параметры позволяют вам включить и выключить операции копирования в памяти в эти три периода независимо.
Используйте блок Memory Copy и блок Memory Allocate, чтобы управлять и выделить память для драйверов отдельного устройства, таких как драйверы шины PCI или драйверы стиля кодека.
В процессе моделирования блок Memory Copy не выполняет операцию. Блок выход не задан.
src
— Входные данные для операции копииИсходные данные для операции копирования в памяти в виде скаляра или вектора.
Чтобы использовать этот порт в качестве источника для операции копирования в памяти, установите параметр Copy from на Input port
.
Типы данных: single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
&src
— Адрес входных данных для операции копииАдрес памяти исходных данных для операции копии в виде скаляра или вектора.
Чтобы использовать этот порт в качестве источника для операции копирования в памяти, установите параметр Copy from на Specified address
и Specify address source к Input port
. Блок памяти Копии преобразует входной порт src
к &src
.
Типы данных: single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
src ofs
— Возместите для чтения данных во время операции копииВозместите, чтобы использовать для чтения данных во время операции копии в виде скаляра или вектора.
Чтобы создать этот порт, выберите параметр Use offset when reading и установите Specify offset source на Input port
.
Типы данных: single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
&dst
— Адрес выходных данных для операции копииАдрес памяти, чтобы использовать в качестве адресата данных для операции копии в виде скаляра или вектора.
Чтобы использовать этот порт в качестве места назначения для операции копирования в памяти, установите параметр Copy to на Specified address
и Specify address source к Input port
. Блок памяти Копии преобразует выходной порт dst
к входному порту &dst
.
Типы данных: single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
dst ofs
— Возместите для данных, записанных во время операции копииВозместите, чтобы использовать для записи данных во время операции копии в виде скаляра или вектора.
Чтобы создать этот порт, выберите параметр Use offset when writing и установите Specify offset source на Input port
.
Типы данных: single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
dst
— Выходные данные для операции копииДанные скопированы в виде скаляра или вектора.
Чтобы использовать этот порт в качестве места назначения для операции копирования в памяти, установите параметр Copy to на Output port
.
Типы данных: single
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
Задайте источник последовательная ячейка памяти для операции копии. Задайте тип данных, размер и другие атрибуты исходной переменной.
Copy from
— Введите источник для операции копииЗадайте входной источник для части чтения данных операции копии. Выберите из источников, перечисленных в этой таблице.
Источник чтения данных | Значение параметров, чтобы задать |
---|---|
src входной порт | Input port |
Адрес памяти | Specified address |
Символ (переменная) в интерполяционной таблице исходного кода | Specified source code symbol |
Если вы выбираете Specified address
, используйте Specify address source, чтобы задать источник адреса памяти и Address, чтобы задать адрес.
Если вы выбираете Specified source code symbol
, используйте Source code symbol, чтобы задать символ (переменная) в таблице символов исходного кода, чтобы скопировать.
Если вы выбираете Specified address
или Specified source code symbol
, измените Тип данных в значение кроме Inherit from source
(значение по умолчанию). Если вы не вносите это изменение, вы получаете сообщение об ошибке, указывающее, что тип данных не может быть наследован, потому что входной порт не существует.
Specify address source
— Источник адреса памяти для входных данныхЗадайте источник адреса памяти входного источника для операции копии. Чтобы задать адрес памяти для исходной переменной, выберите Specify via dialog
. Тот выбор включает параметр Address, который вы используете, чтобы задать адрес памяти.
Чтобы указать, что блок получает адрес от входного порта, выберите Input port
. Когда вы выбираете Input port
, входной порт блока помечает изменения в &src
.
Чтобы включить этот параметр, установите Copy from на Specified address
.
Если вы выбираете Specify via dialog
, этот параметр включает параметр Address, который вы используете, чтобы задать адрес исходной переменной.
Если вы выбираете Specify via dialog
, установите Тип данных на значение кроме Inherit from source
(значение по умолчанию). Если вы не вносите это изменение, вы получаете сообщение об ошибке, указывающее, что тип данных не может быть наследован, потому что входной порт не существует.
Если вы выбираете Inport port
, задайте тип данных для параметра Data type.
Address
— Адрес памяти исходных данныхЗадайте адрес памяти исходных данных в десятичной форме или в шестнадцатеричной форме с преобразованием в десятичное число как показано значением по умолчанию hex2dec('00001000')
.
Этот пример преобразует Ox1000
к десятичной форме.
4096 = hex2dec('1000');
В данном примере можно задать адрес как 4096
или hex2dec('1000')
.
Чтобы включить этот параметр, установите Copy from на Specified address
и Specify address source к Specify via dialog
.
Source code symbol
— Символ в таблице символов исходного кодаЗадайте символ (переменная) в таблице символов исходного кода, чтобы скопировать. Символ, который вы задаете, должен существовать в таблице символов для вашей программы. Блок не проверяет, существует ли символ в таблице символов и задаете ли вы символ с допустимым синтаксисом. Введите текст, который задает символ, как это появляется в вашем коде.
Чтобы включить этот параметр, установите Copy from на Specified source code symbol
.
Установите Тип данных на значение кроме Inherit from source
(значение по умолчанию). Если вы не вносите это изменение, вы получаете сообщение об ошибке, указывающее, что тип данных не может быть наследован, потому что входной порт не существует.
Data type
— Тип данных данных скопированЗадайте тип данных скопированных исходных данных. Наследовать тип данных от src
входной порт, выберите Inherit from input port
.
Data length
— Количество элементов данных, чтобы скопироватьЗадайте число элементов, чтобы скопировать с исходного местоположения. Каждому элементу задали тип данных, по условию вводят параметр.
Use offset when reading
— Используйте смещение когда вход чтенияЗадайте, использует ли блок смещение когда вход чтения. Значение смещения находится в элементах заданного типа данных. Задайте источник смещения при помощи Задавать исходного параметра смещения.
Если вы выбираете этот параметр, используйте Specify offset source, чтобы задать источник смещения.
Используйте Offset, чтобы задать значение смещения.
Specify offset source
— Источник входа возмещенЗадайте источник входного смещения для операции копии. Чтобы задать значение смещения, выберите Specify via dialog
. Тот выбор включает параметр Offset, который вы используете, чтобы задать значение смещения.
Чтобы задать для блока, чтобы получить смещение от входного порта, выберите Input port
. Когда вы выбираете Input port
, блок создает входной порт, пометил src ofs
и читает значение смещения из того порта. src ofs
порт позволяет вашей программе изменить смещение динамически во время выполнения программы.
Чтобы включить этот параметр, выберите Use offset when reading.
Offset
— Количество значений, чтобы пропустить прежде, чем скопировать первое значение в место назначенияПрежде, чем скопировать первое значение в место назначения, задайте количество значений, чтобы пропустить.
Чтобы включить этот параметр, выберите Use offset when reading и установите Specify offset source на Specify via dialog
.
Stride
— Интервал для чтения входаЗадайте интервал для чтения входа. По умолчанию значение шага один, означая, что сгенерированный код читает входные данные последовательно. Когда вы добавляете значение шага, которое не равно одному, читая входные данные, сгенерированный код пропускает пробелы в исходном адресе, равном шагу.
Эти рисунки показывают концепцию шага. На первом рисунке данные копируются без шага. Второй рисунок показывает результаты значения шага два. Можно задать значение шага для блока выход Шагом параметра на вкладке Destination. Можно также сравнить шаг со смещением, чтобы видеть различия.
Задайте целевую ячейку памяти для операции копии. Задайте атрибуты места назначения.
Copy to
— Тип выходного места назначения для операции копииЗадайте тип выходного места назначения для операции копии. Выберите одно из значений, перечисленных в этой таблице.
Значение параметров | Место назначения записи данных |
---|---|
Output port | Блокируйте dst выходной порт |
Specified address | Ячейка памяти, заданная параметрами Specify address destination и Address |
Specified source code symbol | Символ (переменная) задан символом Исходного кода параметра |
Если вы выбираете Specified address
, используйте Specify address destination, чтобы задать целевую ячейку памяти.
Если вы выбираете Specified source code symbol
, используйте Destination code symbol, чтобы задать символ (переменная) в таблице символов исходного кода, в которую можно скопировать переменную.
Specify address source
— Источник адреса памяти для выходного места назначенияЗадайте источник целевого адреса памяти переменной для операции копии. Чтобы задать адрес памяти для переменной, выберите Specify via dialog
. Тот выбор включает параметр Address, который вы используете, чтобы задать адрес памяти. Чтобы указать, что блок получает адрес от входного порта, выберите Input port
. Когда вы выбираете Input port
, блок создает входной порт, пометил &dst
. Изменение адреса динамически означает, что можно использовать блок, чтобы скопировать различные переменные путем обеспечения переменного адреса от восходящего блока в модели.
Чтобы включить этот параметр, установите Copy to на Specified address
.
Если вы выбираете Specify via dialog
, этот параметр включает параметр Address, который вы используете, чтобы задать адрес целевой переменной.
Address
— Адрес памяти целевой переменнойЗадайте адрес памяти целевой переменной в десятичной форме или в шестнадцатеричной форме с преобразованием в десятичное число как показано значением по умолчанию hex2dec('00001000')
.
Этот пример преобразует Ox2000
к десятичной форме.
8192 = hex2dec('2000');
В данном примере можно задать адрес как 8192
или hex2dec('2000')
.
Чтобы включить этот параметр, установите Copy to на Specified address
и Specify address source к Specify via dialog
.
Source code symbol
— Символ в таблице символов исходного кодаЗадайте символ (переменная) в таблице символов исходного кода, в которую можно скопировать переменную. Символ, который вы задаете, должен существовать в таблице символов для вашей программы. Блок не проверяет, существует ли символ в таблице символов и задаете ли вы символ с допустимым синтаксисом. Введите текст, который задает символ, как это появляется в вашем коде.
Чтобы включить этот параметр, установите Copy to на Specified source code symbol
.
Data type
— Тип данных переменнойЗадайте тип данных исходной переменной. Чтобы наследовать тип данных от исходной переменной, выберите Inherit from source
.
Use offset when writing
— Используйте смещение когда запись выходЗадайте, использует ли блок смещение когда запись выход. Значение смещения находится в элементах заданного типа данных. Задайте источник смещения при помощи Задавать исходного параметра смещения.
Если вы выбираете этот параметр, используйте Specify offset source, чтобы задать источник смещения. Используйте Offset, чтобы задать значение смещения.
Specify offset source
— Источник смещения для выходного места назначенияЗадайте источник смещения для выходного места назначения для операции копии. Чтобы задать значение смещения для целевой переменной, выберите Specify via dialog
. Тот выбор включает параметр Offset, который вы используете, чтобы задать значение смещения.
Чтобы указать, что блок получает смещение от входного порта, выберите Input port
. Когда вы выбираете Input port
, блок добавляет, что входной порт пометил dst ofs
и читает значение смещения из того порта. dst ofs
порт позволяет вашей программе изменить смещение динамически во время выполнения.
Чтобы включить этот параметр, выберите Specify offset source.
Offset
— Количество значений, чтобы пропустить прежде, чем записать первое значение месту назначенияПрежде, чем записать первое значение месту назначения, задайте количество значений, чтобы пропустить.
Чтобы включить этот параметр, выберите Use offset when writing и установите Specify offset source на Specify via dialog
.
Stride
— Интервал для записи выходаЗадайте интервал для записи выхода. По умолчанию значение шага является тем, означающим, что сгенерированный код пишет входные данные последовательно в место назначения в последовательных местоположениях. Когда вы добавляете значение шага, которое не равно одному, при записи входных данных, сгенерированный код пропускает пробелы в адресе назначения, равном шагу.
Этот рисунок показывает, что значение шага три применилось к записи входа выходному местоположению. Можно задать значение шага для входа Шагом параметра на Исходной панели. Как показано на рисунке, можно использовать входной шаг и выходной шаг одновременно, чтобы позволить управлять памятью более полно.
Sample time
— Уровень копии памятиЗадайте уровень, на котором операция копирования в памяти происходит в секундах. Чтобы использовать постоянный шаг расчета, задайте Inf
. Наследовать шаг расчета от входного порта или, когда блок не имеет входного порта от Simulink® модель, задайте -1
.
Сконфигурируйте параметры, которые управляют процессом копии.
Set memory value at initialization
— Адрес памяти аппарата во время инициализацииЗадайте, инициализировать ли адрес памяти к определенному значению во время инициализации программы.
Если вы выбираете этот параметр, используйте комбинацию параметров, чтобы сконфигурировать значение инициализации.
Что сконфигурировать | Параметр |
---|---|
Источник значения инициализации | Specify initialization value source |
Значение инициализации как константа | Initialization value (constant) |
Значение инициализации как переменная | Initialization value (source code symbol) |
Значение инициализации как маска, чтобы управлять содержимым регистра на битном уровне | Apply initialization value as mask |
Примените значение маски | Bitwise operator |
Specify initialization value source
— Источник значения инициализацииЗадайте источник начального значения. Чтобы сконфигурировать источник для инициализации памяти как определенное значение, выберите Specify constant value
. Чтобы сконфигурировать источник как переменную (символ), выберите Specify source code symbol
.
Чтобы включить этот параметр, выберите Set memory value at initialization.
Используйте Initialization value (constant) или Initialization value (source code symbol), чтобы задать начальное значение.
Initialization value (constant)
— Постоянное значение инициализацииЗадайте постоянное значение.
Чтобы включить этот параметр, выберите Set memory value at initialization и установите Set initialization value source на Specify constant value
.
Initialization value (source code symbol)
— Символ в таблице символов исходного кодаЗадайте символ (переменная) в таблице символов исходного кода, чтобы использовать для значения инициализации. Символ, который вы задаете, должен существовать в таблице символов для вашей программы. Блок не проверяет, существует ли символ в таблице символов и задаете ли вы символ с допустимым синтаксисом. Введите текст, который задает символ, как это появляется в вашем коде.
Чтобы включить этот параметр, выберите Set memory value at initialization и установите Set initialization value source на Specify source code symbol
.
Apply initialization value as mask
— Примените значение инициализации как маскуЗадайте, использовать ли значение инициализации в качестве маски, чтобы управлять содержимым регистра на битном уровне. Ваше значение инициализации обработано как строка битов для маски.
Чтобы задать, как применить значение маски, задайте значение для параметра Побитового оператора.
Чтобы использовать ваше значение инициализации в качестве маски, выход из копии должен быть определенным адресом. Выход:
Может быть символ
Не может быть выходной порт
Если вы выбираете этот параметр, используйте Bitwise operator, чтобы задать, как применить значение маски.
Bitwise operator
— Тип битовой операцииЗадайте тип битовой операции, чтобы использовать в качестве маски, чтобы управлять значением памяти. Применение маски к процессу копии означает, что можно выбрать отдельные биты в результате. Например, путем применения маски, можно считать значение пятого бита.
Выберите одну из битовых операций в этой таблице.
Битовая операция | Описание |
---|---|
| Примените значение маски как поразрядный AND к значению в регистре. |
| Примените значение маски как битовое "ИЛИ" к значению в регистре. |
| Примените значение маски как битовое исключающее "ИЛИ" к значению в регистре. |
| Переключите биты в регистре, оставленном количеством битов, представленных значением инициализации. Например, если ваше значение инициализации равняется 3, блок переключает значение регистра к левым 3 битам. В этом случае значение должно быть положительным целым числом. |
| Переключите биты в регистре направо количеством битов, представленных значением инициализации. Например, если ваше значение инициализации равняется 6, блок переключает значение регистра к правильным 6 битам. В этом случае значение должно быть положительным целым числом. |
Чтобы включить этот параметр, выберите Apply initialization value as mask.
Set memory value at termination
— Скопируйте память во время завершения программыУкажите, что ваша программа копирует память во время завершения программы. Копирование значения в памяти во время завершения происходит в дополнение к копии во время инициализации программы.
Если вы выбираете этот параметр, можно использовать Set memory value only at initialization/termination, чтобы ограничить операции копии, чтобы произойти во время инициализации программы и завершения только.
Termination value
— Значение завершенияЗадайте значение, чтобы записать в память во время завершения программы.
Чтобы включить этот параметр, выберите Set memory value at termination.
Set memory value only at initialization/termination
— Скопируйте значение памяти во время инициализации программы и завершения толькоЗадайте, выполнить ли копии во время инициализации программы и завершения только. Когда этот параметр очищен, блок выполняет копии во время инициализации, работы в режиме реального времени и завершения. Если вы выбираете этот параметр, блок выполняет копии во время инициализации и завершения только.
Insert custom code before memory write
— Вставьте пользовательский код перед записью памяти Задайте, вставляет ли генератор кода сразу пользовательский код С ANSI, прежде чем программа запишет в заданную ячейку памяти. Можно использовать этот параметр и Insert custom code after memory write, чтобы заблокировать и разблокировать регистры до и после доступа к ним. Например, некоторые процессоры имеют регистры, которые вы можете должны быть разблокировать и заблокировать с EALLOW, и макросы EDIS до и после вашей программы получают доступ к ним.
Если вы выбираете этот параметр, используйте Custom code, чтобы задать пользовательский код С ANSI, чтобы сразу вставить в сгенерированный код перед операцией записи памяти.
Insert custom code after memory write
— Пользовательский код после флага записи памятиЗадайте, вставляет ли генератор кода сразу пользовательский код С ANSI после того, как программа пишет в заданную ячейку памяти. Вы можете Insert custom code before memory write и этот параметр, чтобы заблокировать и разблокировать регистры до и после доступа к ним. Например, некоторые процессоры имеют регистры, которые вы можете должны быть разблокировать и заблокировать с EALLOW, и макросы EDIS до и после вашей программы получают доступ к ним.
Если вы выбираете этот параметр, используйте Custom code, чтобы задать пользовательский код С ANSI, чтобы сразу вставить в сгенерированный код после операции записи памяти.
Custom code
— Задайте пользовательский код С ANSI, чтобы сразу вставить в сгенерированный код прежде или сразу после операции записи памяти. Код, который вы задаете, появляется в сгенерированном коде точно так же, как вы вводите его.
Чтобы включить этот параметр, выберите Insert custom code before memory write или Insert custom code after memory write.
Use QDMA for copy (if available)
— Используйте быстрый прямой доступ к памяти (QDMA) для копииЗадайте, разрешить ли быстрый прямой доступ к памяти (QDMA) для процессоров та поддержка QDMA.
Если вы выбираете этот параметр:
Источник и целевые типы данных должны соответствовать. Если типы данных не соответствуют, операция копии возвращает ошибку.
Значения шага ввода и вывода должны быть установлены к 1
.
Если вы выбираете этот параметр, используйте Enable blocking model , чтобы задать, блокируют ли операции копирования в памяти процессы.
Enable blocking mode
— Позвольте блокировать режимЗадайте, блокируют ли операции копирования в памяти, которые используют QDMA, процессы. Выберите этот параметр, чтобы включить процессы блокирования операций копирования в памяти. Когда вы позволяете блокировать режим, другая обработка программы ожидает, пока операция копирования в памяти не завершена.
Чтобы включить этот параметр, выберите Use QDMA for copy (if available).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.