Спецификации типа памяти
MikroPascal PRO для ARM поддерживает использование всех областей памяти.
Каждая переменная может быть явно назначена определенному пространству памяти, включая спецификатор типа памяти в объявлении или неявно назначенный.
Можно использовать следующие спецификаторы типа памяти:
code
Описание |
Тип памяти |
---|---|
Пример |
// текст размещается в программной памяти const txt = 'ENTER PARAMETER:'; code; |
data
Описание |
Этот спецификатор памяти используется при хранении переменной в ОЗУ данных. |
---|---|
Пример |
// помещает data_buffer в памяти данных
var data_buffer : char; data;
|
rx
Описание |
Этот спецификатор памяти позволяет хранить переменную в пространстве рабочих регистров (зарезервировано только для целей компилятора). |
---|---|
Пример |
// помещает y в Rx пространство var y : char; rx; |
sfr
Описание |
Этот спецификатор памяти позволяет пользователю получить доступ к специальным регистрам функций. Он также инструктирует компилятор поддерживать такое же имя идентификатора в источнике и сборке.
Примечание :Переменные могут быть выделены только в пространстве sfr с помощью абсолютной директивы или по директиве переменной, уже выделенной в пространстве sfr.
|
---|---|
Пример |
// Extern y in sfr space var y : byte; sfr; external; // Puts y in sfr space by absolute (sfr addresses are MCU specific) var y : byte; absolute 0x40004000; sfr; // Puts y in sfr space by at var y: char at GPIO_PORTA; |
ccm
Описание |
Этот спецификатор памяти позволяет пользователю выделять переменные в Core Coupled Memory (CCM). |
---|---|
Пример |
// Put variable y in CCM space : var y : byte; ccm |
far
Описание |
Этот спецификатор памяти используется, если регистры SFR находятся за пределами обычного пространства SFR. Он доступен только для подсемейства STM32F3xx MCU. |
---|---|
Пример |
var GPIOA_BASE : dword; absolute 0x48000000; volatile; sfr; far; |