Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички к 78К0 / Лаба1-78К0.doc
Скачиваний:
89
Добавлен:
12.03.2015
Размер:
1.61 Mб
Скачать

4.1 Добавление модуля на языке ассемблера к проекту.

На данном этапе обучения демонстрируется, как Вы можете легко создать проект, содержащий и модули ассемблера и C - модули. Вы также откомпилируете проект и рассмотрите файл вывода ассемблера.

Настройка проекта.

Измените project2, удалив файл "Utilites.c". (Выберите файл в окне рабочего пространства и нажмите клавишу Delete.) Добавте файл " Utilites.s26".

Чтобы видеть файлы ассемблера в диалоговых окнах добавления файлов, выберите, Project> Add Files и выберите Assembler Files из раскрывающегося списка "типы файлов".

Выберите проект в окне рабочего пространства , выберите Project> Options. Используйте настройки по умолчанию в General Options, C/C++ Compiler, и категории Linker. Выберите категорию Assembler, нажмите закладку List, и включите опцию Output list file, как показано на рисунке 24 . Нажмите «ОК».

Рисунок 24 – Настройки ассемблера.

Далее кликните по файлу "Utilites.s26" в окне рабочего пространства и нажмите Project>Compile для того чтобы файл оттранслировался.

Если исходный файл был собран успешно, будет создан файл “Utilites.r26”, содержащий пригодный для редактирования объектный код.

4.2 Просмотр list – файла ассемблера.

Откройте файл списка, дважды кликнув файл Utilities.lst в папке "Output" в окне рабочего пространства. Конец файла содержит статистику ошибок и предупреждений, которые были получены в ходе генерирования файла.

Выберите Project>Make , чтобы повторно скомпоновать проект project2.

Запустите C-SPY (как в предыдущих уроках), чтобы выполнить project2.d26 . Выйдите из отладчика, когда закончите.

5. Моделирование прерываний

В этой главе обучающей программы, добавляется к проекту программа обработки прерывания последовательного порта . Числа ряда Фибоначчи будут читаться периферийным устройства связи (UART - УНИВЕРСАЛЬНЫЙ АСИНХРОННЫЙ ПРИЕМОПЕРЕДАТЧИК).

Здесь рассматривается как используются 78K IAR C/C++ Compiler interrupt ( прерывания компилятора ) и векторная директива #pragma . Обучающая программа также покажет, как это прерывание может моделироваться, используя особенности, которые поддерживают прерывания, контрольные точки, и макросы. Обратите внимание, что этот пример не описывает точное моделирование; цель состоит в том, чтобы иллюстрировать ситуацию, где макрос C-SPY, контрольные точки, и система прерываний могут применяться для моделирования аппаратных средств. Предполагается, что Вы знакомы с основами IAR Embedded Workbench™ , описанных в предыдущих главах обучающей программы. Обратите внимание, что моделирование прерываний возможно только при использовании IAR C-SPY Simulator.

5.1 Добавление программы обработки прерывания.

Краткое описание: Программа обработки прерывания будет читать значения с порта последовательной передачи данных в приёмный регистр RXB0 (UART). Затем будет выводиться принятое значение. Основная программа разрешает прерывания и начинает печатать периоды (.) в приоритетном процессе при ожидании запросов прерываний.

Написание подпрограммы обработки прерывания.

Данные строки определяют подпрограмму обработки прерывания, используемую в этой обучающей программе (законченный исходный текст находится в файле Interrupt.c в каталоге 78k/tutor):

// опредиление программы обработки прерывания

#pragma vector=INTSR0_vect

__interrupt void uartReceiveHandler( void )

векторная директива #pragma используется для того, чтобы определить адрес вектора прерывания - в этом случае, вектор прерывания для UART . Ключевое слово __interrupt используется для того, чтобы направить компилятор на использование соглашения о вызовах, необходимое для функций обработки прерываний.

Соседние файлы в папке методички к 78К0