Микропроцессорная техника: практический курс : учебное пособие для студентов Физико-технологического института, обучающихся по направлениям подготовки "Ядерная физика и технологии", "Биомедицинская инженерия"
Программирование векторов прерываний
Download 0.63 Mb. Pdf ko'rish
|
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 |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling