Аппаратные и программные



Download 3,23 Mb.
Pdf ko'rish
bet142/179
Sana24.02.2022
Hajmi3,23 Mb.
#234030
TuriУчебное пособие
1   ...   138   139   140   141   142   143   144   145   ...   179
5.2.2 Классы памяти 
Компилятор SDCC поддерживает инструмент, позволяющий управлять 
механизмами использования памяти в микроконтроллерах семейства Intel 
MCS51 и создавать мощные и гибкие программы. Этот инструмент – классы 
памяти. Каждая переменная может принадлежать к одному из 7 классов памяти. 
Класс памяти указывается при помощи специального модификатора. 
Таблица 31. Классы памяти (расширение языка Си для МК Intel MCS51) 
Модификаторы 
памяти 
Описание 
data 
Внутренняя память данных с прямой адресацией; самая быстрая 
работа с переменными (128 байт). Класс памяти по умолчанию для 
модели памяти small. 
xdata 
Внешняя память данных (64Кб-16Мб). Класс памяти по 
умолчанию для модели памяти large. 
idata 
Внутренняя память данных с косвенной адресацией; доступ ко 
всему адресному пространству (128/256 байт). 
pdata 
Внешняя память данных с косвенной адресацией (256 байт). Класс 
памяти по умолчанию для модели памяти medium. 
code 
Память программ (64 Kб). 
bit 
И класс памяти, и нестанадртный тип данных. Бит-адресуемая 
внутренняя память данных (128 бит) в диапазон адресов 20h-2Fh. 
sfr/sfr16/sfr32/sbit 
И класс памяти, и нестанадртный тип данных. Служит для 
определения регистров специального назначения (sfr – 8 разрядов, 


224 
sfr16 – 16 разрядов, sfr32 – 32 разряда) и их битов (sbit). Эти 
ключевые слова используются для создания заголовочных файлов, 
позволяющих обращаться к регистрам специального назначения 
по именам. 
Обращение к внутренней памяти данных происходит гораздо быстрее, чем 
к внешней. Поэтому переменные, которые используются чаще других, следует 
размещать во внутренней памяти, а остальные – во внешней. Далее приведены 
примеры объявления переменных в разных классах памяти: 
__data unsigned char test_data; 
__xdata unsigned char test_xdata; 
__idata unsigned char test_idata;
__pdata unsigned char test_pdata; 
__code unsigned char test_code; 
__bit test_bit; 
__sfr __at (0x80) P0; // регистр специального назначения P0 по адресу 0x80 
/* 16-разрядный регистр специального назначения для Таймера 0 
Старший байт значения находится по адресу 0x8C, младший по адресу 0x8A*/ 
__sfr16 __at (0x8C8A) TMR0; 
__sbit __at ( 0xD7 ) CY; /* CY (Carry Flag, флаг переноса в SFR PSW) */ 
Если в объявлении переменной модификатор памяти не указан, выбирается 
модель памяти, установленная по умолчанию. Аргументы функции и 
переменные класса памяти auto, которые не могут быть размещены в регистрах, 
также хранятся в области памяти, установленной по умолчанию. 
Модель памяти, выбираемая в качестве модели по умолчанию
устанавливается с помощью опций компилятора small, medium и large. 

Download 3,23 Mb.

Do'stlaringiz bilan baham:
1   ...   138   139   140   141   142   143   144   145   ...   179




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish