Для хранения таймерной переменной требуется
Для хранения таймерной переменной требуется 256 байт.
Требования
- Должны быть специфицированы все поля для всех типов даже если Вы не собираетесь сохранять все типы переменных. В таком случае для неиспользуемого типа переменных Вы должны указать нулевой размер (за исключением аналогов, где минимальный размер - 4) и любой отличный от нуля адрес.
Пример:
Предположим, требуется резервирование
20 булевских переменных
0 аналоговых переменных
0 таймерных переменных
3 строковых переменных
Пусть память, питаемая от батареи, находится по адресу 0xA2F200.
Предположим, что:
Булевские переменные будут храниться, по адресу 0xA2F200 и будут занимать в точности 20 байт.
Аналоги будут по адресу 0xA2F214, и для них нужно 4 байта.
Фиктивный адрес для таймеров будет 0xA2F200, т.к. размер памяти - нулевой.
Строковые переменные будут храниться по адресу 0xA2F218, причем им требуется 3*256 байт.
Таким образом, в системе разработке должна быть введена строка
A2F200
,14
,A2F214
,4
,A2F200
,0
,A2F218
,300
Функциональный вызов SYSTEM
Если нужно хранить большинство переменных приложения, то следует использовать функцию SYSTEM, чтобы иметь дело со всем множеством переменных (подробнее о функции SYSTEM см. в Руководстве пользователя). Заметим, что в этом случае резервирование и восстановление управляются программистом на уровне приложения.
Прежде всего, Вы должны определить место расположения резервных копий всех типов переменных:
<новый_адрес>:=SYSTEM(SYS_INITxxx,<адрес>);
где
- <адрес> адрес расположения памяти для резервирования (16#шестнадцацеричное значение). Он должен иметь четное значение, в противном случае операция не выполнится.
- SYS_INITxxx может быть:
* SYS_INTBOO для определения начала памяти под булевские переменные.
* SYS_INTANA для определения начала памяти под аналоговые переменные.
* SYS_INTTMR для определения начала памяти под таймерные переменные.
* SYS_INTALL для определения начала памяти под все булевские, аналоговые и таймерные переменные.
Содержание Назад Вперед