223
сегменте pdata.
-o <path/file>
Указывает путь/имя исполняемого файла (загрузочного модуля), в
который получается в результате сборки проекта. По умолчанию это
файл в формате Intel HEX.
--stack-auto
Указывает, что все функции в исходных кодах являются
реентерабельными (см. раздел ниже). По умолчанию все функции
являются нереентерабельными, в том числе и функции по работе с 16-
и 32-разрядными переменными (операции умножения, деления и т.д.),
которые входят в стандартную библиотеку SDCC и используются
неявно (можно увидеть только в lst-файлах).
--code-loc
<Value>
Расположение памяти программ (кода). По умолчанию адрес = 0.
Значение стартового адреса (<Value>) может быть указано как в
шестнадцетеричной, так и в десятичной системе счисления: --code-loc
0x8000 или --code-loc 32768.
--xram-loc
<Value>
Расположение внешней памяти данных. По умолчанию адрес = 0.
Значение стартового адреса (<Value>) может быть указано как в
шестнадцетеричной, так и в десятичной системе счисления: --xram-loc
0x8000 или --xram-loc 32768.
--stack-loc
<Value>
Расположение стека. По умолчанию стек располагается после сегмента
данных во внутреннем ОЗУ (например, для МК ADuC812 вершина
стека = 0x07 после старта). Значение стартового адреса (<Value>)
может быть указано как в шестнадцетеричной, так и в десятичной
системе счисления: --stack-loc 0x20 или --stack-loc 32.
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 разрядов,