Студопедия
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Директивы общего назначения

Читайте также:
  1. I. Государственный стандарт общего образования и его назначение
  2. II. ВЫБОР СПОСОБА УПРАВЛЕНИЯ И СОДЕРЖАНИЯ ОБЩЕГО ИМУЩЕСТВА СОБСТВЕННИКОВ ПОМЕЩЕНИЙ МКД
  3. III. ПОРЯДОК ОРГАНИЗАЦИИ И ПРОВЕДЕНИЯ ОБЩЕГО СОБРАНИЯ СОБСТВЕННИКОВ ПОМЕЩЕНИЙ МКД
  4. V. Порядок назначения повышенной государственной академической стипендии студентам
  5. VI. Проведение общего собрания собственников в очной форме.
  6. А. Количество избирателей для назначения проведения общероссийского референдума не менее ...
  7. А. Количество избирателей для назначения проведения общероссийского референдума не менее ...
  8. Автоматизация процесса назначения IP-адресов
  9. Административные наказания: понятие, виды, правила назначения. ???? Правила назначения по каждому из видов???
  10. Анализ текущего состояния и предназначения предприятия, а также формирование образа предприятия в будущем;

Ядро любой современной ОС представляет собой набор очень большого количества функций, с запутанными взаимо­связями и очень расплывчатыми границами между основными подсистемами. В результате любая модификация организо­ванной таким образом системы дается тяжело и приводит к появлению в новых версиях большого количества ошибок. Кро­ме того, не во всех инсталляциях нужны все компоненты ядра, а при монолитном его построении удаление ненужных функ­ций затруднено. Недостатки, присущие операционным системам с большим монолитным ядром (а это, в первую очередь, различные версии Unix), породили интерес к системам, построенным на основе микроядра.

Микроядерный подход заключается в том, что базовые функции ядра оформляются в виде отдельной небольшой ком­поненты, выполняемой в привилегированном режиме, а остальные функции ОС выполняются в пользовательском режиме с использованием примитивов микроядра. Ввиду больших потенциальных преимуществ, которые сулит этот подход, можно предположить, что в ближайшее время большинство новых операционных систем будет строиться на основе микроядра. Наиболее известными реализациями этого подхода являются микроядра Mach и Chorus.

Основной сложностью использования микроядерного подхода на практике является замедление скорости выполнения системных вызовов при передаче сообщений через микроядро по сравнению с классическим подходом.

Микроядро по определению содержит базовые механизмы, имеющиеся внутри любой операционной системы, поэтому знакомство с этими механизмами в чистом виде полезно и для изучения любой конкретной ОС.

Микроядра лицензируются и используются как готовый программный продукт в качестве основы для построения ком­мерческой сетевой операционной системы. Сейчас имеется несколько коммерческих реализаций операционных систем на основе, например, микроядра Mach (NextStep фирмы Next, Unix BSD, OSF/1 v.1.3).

 

Контрольные вопросы к теме

1. Дать определение понятия процесса. Зачем оно требуется?

2. Дать определение понятия прерывания. Зачем оно требуется?

3. Дать определение понятия виртуальности. Зачем оно требуется?

4. Дать определение понятия ресурса. Зачем оно требуется?

5. Охарактеризуйте понятие "ядро ОС"?

6. Охарактеризуйте понятие "микроядро ОС"?

Директивы общего назначения

 

1.1. LIST - Список параметров

Синтаксис: list [<list option>, …,<list option>]

 

Директива LIST должна быть размещена на отдельной строке. Она изменяет параметры компиляции исходного файла и генерации файла листинга. Один или несколько следующих параметров может быть указан в директиве LIST:

 

Параметр Значение по умолчанию Описание
b=nnn   Число пробелов при табуляции
C=nnn   Число символов в строке
f=<format> INHX8M Формат выходного HEX файла <format>: |NHX32, INHX8M, |NHX8S
free FIXED Использование свободного формата печати
fixed FIXED Использование фиксированного формата печати
mm={ON|OFF} On Включать карту памяти в файл листинга программы
n=nnn   Число строк на одной странице
p=<type> НЕТ Тип микроконтроллера. Например. PIC16C54
r=<radix> hex Система счисления по умолчанию: hex, dec, oct
st={ON|OFF } On Включать таблицу символов в файл листинга программы
t={ON|OFF} Off Усечение длинных строк
w={0|1|2}   Установка уровня сообщений. См. ERRORLEVEL
x={ON|OFF} On Включать полный текст макроса

Примечание: Все параметры директивы LIST указываются в десятичных числах.

 

Пример

 

list p=17c42, f=INHX32, r=DEC

 

 

1.2. CONFIG - Установка битов конфигурации микроконтроллера

Синтаксис: _ _config <значение> или _ _config <адрес>,<значение>

или

_ _config <значение текст>& … &<значение текст>

Устанавливает биты конфигурации микроконтроллера в соответствии с числовым полем <значение> или текстовыми полями обозначений параметров. Набор конфигурационных битов индивидуален для каждого типа и подробно описан в технической документации на соответствующий микроконтроллер.

Предварительно, перед директивой CONFIG, надо указать тип микроконтроллера с помощью директивы LIST или PROCESSOR.

Пример

list p=16F84A

____ _ _config H'FFFF'; Конфигурация по умолчанию

 

или

 

____ _ _config_XT_OSC&_PWRT_ON&_WDT_OFF

 

 

1.3. INCLUDE - Подключение дополнительного исходного файла

 

Синтаксис: include <<include_file>>

include “<include_file>”

 

Указанный файл читается как исходный текст программы. Эффект аналогичен копирования полного текста программы указанного файла в место расположения директивы. После окончания компиляции подключенного модуля, компиляция продолжается в исходной программе. Допускается до шести уровней вложения файлов.

<include_file> может быть указан в кавычках или угловых скобках. Если указан полный путь к файлу, то поиск файла будет происходить только в указанной директории. Если путь к подключаемому файлу не указан, то поиск файла будет выполняться в текущей рабочей директории, директории исходного файла и директории выполняемого MPASM.

Пример:

include "с:\sys\sysdefs.inc"; системные параметры

include <regs.h>; список регистров

 

 

1.4. EQU - Определение константы ассемблера

 

Синтаксис

<label> equ <expr>

Присваивает значение <ехрг> константе <label>.

Пример

 

four equ 4: присваивает значение 4 константе four

 

 

1.5. ORG - Установить адрес программы

Синтаксис: <label> org <expr>

 

Установить адрес начала части программы равным числовому значению <ехрг>. Если указана метка <label> то она будет иметь адрес равный <ехрг>. Если в тексте граммы не встречается директива ORG, то считается, что программа начинается с нулевого адреса. Данная директива требует создания модуля в абсолютном формате и не может быть использована при генерации объектного файла.

Пример

 

int_l org 0x2 0; Вектор с адресом 20

int_2 org int_l+0xl0; Вектор с адресом 30

 

1.6. CODE - Начало кода объектного файла в памяти программ

Синтаксис: [<label>] code [<ROM address>]

 

Используется при генерации объектного файла. Объявляет начало секции кода программы. Если <label> не указана, секции присваивается имя.code. Если не указан адрес секции, то ей будет присвоено текущее значение адреса в памяти программ.

Пример

RESET code H' 01FF'

goto START

 

 

1.7. END - Окончание программы

Синтаксис: end

 

Указывает окончание текста программы.

Пример

list p=17c42

:; текст программы

:

end; конец всех команд

 

1.8. PAGESEL - Произвести выбор страницы

Синтаксис: pagesel <label>

 

Используется при генерации объектного файла. Линкер генерирует команды выбора страницы памяти программ в соответствии с указанной меткой <label>. Только одна метка может быть указана в директиве и она должна соответствовать назначению директивы. Не обязательно предварительно объявлять метку.

Для микроконтроллеров с 12-разрядными командами будет изменено значение регистра STATUS. Для микроконтроллеров с 14/16-разрядными будет изменено значение регистра PCLATH командами MOVLW и MOVWF. Если микроконтроллеры содержат только одну страницу памяти программ, то никакой дополнительный код не будет сгенерирован.

 

1.9. GLOBAL - Внешняя метка

Синтаксис: global <label>[,<label>]

 

Используется при генерации объектного файла. Объявляет имена меток, которые определены в текущем модуле программы и должны быть доступны другими модулями. Директива GLOBAL должна быть указана после описания соответствующей метки. По крайне мере одна метка должна быть описана в директиве GLOBAL.

Дополнительную информацию смотрите в главе 6.

Пример

udata

Varl res 1

Var2 res 1

global Varl, Var2 code AddThree

global AddThree addlw 3 return

 

1.10. EXTERN - Определение внешних меток

Синтаксис

extern <label>[,<label>]

 

Используется при генерации объектного файла. Объявляет имена меток, которые могут использоваться в текущем модуле, но определены как глобальные в других модулях. Директива EXTERN должна быть расположена раньше по тексту программы, чем использование <label>. При использовании директивы EXTERN должна быть указана хотя бы одна метка. Если метка определена в текущем модуле программы, то возникает двойная ошибка метки.

Пример

extern Function

call Function

 

 




Дата добавления: 2014-12-19; просмотров: 92 | Поможем написать вашу работу | Нарушение авторских прав

<== предыдущая лекция | следующая лекция ==>
КОНЦЕПЦИЯ ПРЕРЫВАНИЯ| Перспективы

lektsii.net - Лекции.Нет - 2014-2025 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав