Микропроцессорная техника: практический курс : учебное пособие для студентов Физико-технологического института, обучающихся по направлениям подготовки "Ядерная физика и технологии", "Биомедицинская инженерия"


Программирование векторов прерываний


Download 0.63 Mb.
Pdf ko'rish
bet61/74
Sana29.03.2023
Hajmi0.63 Mb.
#1306393
1   ...   57   58   59   60   61   62   63   64   ...   74
Bog'liq
978-5-321-02171-21 2012 (1)

Программирование векторов прерываний при использовании сег-
ментной структуры имеет особенность (рис. 4.5), поскольку векторы
прерываний необходимо располагать по абсолютным адресам. Для
стенда SDK-1 пользовательская таблица векторов прерываний долж-
на быть размещена в области 2000H–204AH, поэтому при програм-
мировании по абсолютным адресам необходимо сначала объявить
абсолютный сегмент, начинающийся с адреса 2003H. Выбор адреса
объясняется тем, что модифицированная стартовая программа уже за-
няла адреса 2000H–2002H под команду LJMP STARTUP1. После этого
вектора прерываний программируются обычным образом с помощью
108


4.5. Арифметические функции библиотеки
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; ðÒÉÍÅÒ ×ÙÚÏ×Á ÂÉÂÌÉÏÔÅÞÎÏÊ ÆÕÎËÃÉÉ.
; ðÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÅ ×ÅËÔÏÒÏ× ÐÒÅÒÙ×ÁÎÉÊ.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;óÔÁÒÔÏ×ÙÅ ÎÁÓÔÒÏÊËÉ
#include "SDK-startup.inc"
;äÅËÌÁÒÁÃÉÑ ÓÅÇÍÅÎÔÁ
?PR?primer
SEGMENT CODE
;æÕÎËÃÉÑ ÂÉÂÌÉÏÔÅËÉ
EXTRN
CODE (?C?FPDIV)
PUBLIC
main
; éÍÑ ÇÏÌÏ×ÎÏÊ Æ-ÃÉÉ
;-- îÁÞÁÌÏ ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ×ÅËÔÏÒÏ× ÐÒÅÒÙ×ÁÎÉÊ --
CSEG
AT 2003h
; áÂÓ. ÓÅÇÍÅÎÔ c 2003H
AJMP
vector1
; ð/РÏÂÓÌ. ×ÅËÔÏÒÁ 1
ORG
200BH
; ÷ÅËÔÏÒ ÐÒÅÒÙ×ÁÎÉÊ 2
AJMP
vector2
; ð/РÏÂÓÌ. ×ÅËÔÏÒÁ 2
;.................................................
;---ëÏÎÅàÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÑ ×ÅËÔÏÒÏ× ÐÒÅÒÙ×ÁÎÉÊ----
RSEG
?PR?primer
; îÁÞÁÌÏ ÓÅÇÍÅÎÔÁ
main:
; îÁÞÁÌÏ Æ-ÃÉÉ main
;.................................................
;.................................................
SJMP
$
; ëÏÎÅàÆÕÎËÃÉÉ main
END
;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Рис. 4.5. Программирование векторов прерываний
директив ORG. Для первого вектора прерываний (адрес 2003H) дирек-
тива ORG не нужна, так как абсолютный сегмент начинается с этого
адреса. Отметим, что директиву ORG при этом можно не использовать
совсем, а начинать новый абсолютный сегмент для каждого вектора
прерываний. Это позволит получить вполне работоспособный вари-
ант программы, но компилятор при этом попытается заполнить все
свободные адреса между этими сегментами. Это не всегда приемле-
мо, так как многочисленные лишние команды SJMP могут замедлить
работу программы. В этой связи настоятельно рекомендуется первый
способ, а именно – объявить абсолютный сегмент, начинающийся с
адреса 2003H, и векторы прерываний с помощью директивы ORG.
109


4. Стандартные библиотеки Keil µVision
При использовании данной технологии программирования поль-
зователь избавлен от проблем со стартовым адресом программы, по-
рядком размещения основной программы и подпрограмм, таблицей
векторов прерываний и т.д. Все эти вопросы будут решаться програм-
мой-компоновщиком. Стартовым адресом при запуске программ поль-
зователя во всех случаях по-прежнему будет адрес 2000H.
Задания на выполнение курсовой работы по микропроцессорной
технике подразумевают обязательное использование стандартных биб-
лиотек Keil µVision, поскольку предполагают операции с элементар-
ными функциями и числами в формате с плавающей точкой.
110



Download 0.63 Mb.

Do'stlaringiz bilan baham:
1   ...   57   58   59   60   61   62   63   64   ...   74




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