Учебник - Процессоры цифровой обработки сигналов (Круг П.Г.) (1086865), страница 15
Текст из файла (страница 15)
При работе в ОС Windows осуществить вызов командного процессораMS-DOS выбрав Start ® Programms ® MS-DOS session(альтернативным способом вызова является выбор Start ® Run и вводв появившемся диалоговом окне command с последующимподтверждением ввода).2. С помощью командной строки сделать директорию C:\F206 текущей.3. Создать каталог с названием BrN, где N – номер бригады и переписатьв него текстовый файл с программой.4. Осуществить вызов TASM из командной строки по шаблону,описанному в п. 4.4.Примечание. В данном случае необходимо ввестиtasm -203 -k -l BrN_1.asmВ случае успешного ассемблирования на экран будут выведеныстроки, как показано на рис. 7.4, и ассемблер сформирует исполняемыйфайл с именем BrN_3.dsk, содержащий объектные коды для ПЦОС, атакже листинг файл с расширением BrN_3.dsk.
В противном случаеассемблер сгенирирует сообщение об ошибке (рис. 7.5).При этом наряду с информацией о количестве ошибок ассемблеруказывает номера строк, в которых, была допущена ошибка.Это существенно упрощает поиск и исправление неточностей наэтапе ассемблирования. Особенно полезно в данном случае пользоватьсялистинг-файлом, который отличается от сходного asm-файла присутствиемв начале каждой строки ее порядкового номера и соответствующегозначения программного счетчика.
При этом, располагая сведениями о88PDF created with pdfFactory trial version www.pdffactory.comномере ошибочной строки, можно достаточно просто локализоватьошибку.Следует также отметить, что в конце каждого .lst-файла в табличнойформе выводится информация об использованных в пользовательскойпрограмме символах (метка, именах вспомогательных регистров и т.п.).Рис. 7.4. Результат ассемблирования программы, не содержащей ошибок89PDF created with pdfFactory trial version www.pdffactory.comРис. 7.5. Результат ассемблирования ошибочного файла с программойРабота с отладчикомПеред началом отладки, полученного в результате ассемблированияобъектного кода пользовательской программы, необходимо ознакомиться ссодержанием раздела I Приложений с целью получения информации оработе в среде отладки Code Explorer.Послечегорекомендуетсявыполнитьследующуюпоследовательность действий.1.
Включите модуль DSK.2. Установите переключатель Mode в положение Debug. Запуститесредство отладки Code Explorer двойным щелчком левой кнопки мышипо соответствующему ярлыку на “Рабочем столе” Windows.На запрособ имени порта, к которому подключен модуль DSK, введите COM1.3. Осуществите загрузку объектного кода из файла BrN_3.dskвпрограммную память процессора. При этом в главном окне приложениядолжно появиться дочернее окно Dis-Assembly.4. Установите точку останова на строке, следующей за строкой последнейинструкции загруженной программы.5. Осуществите “непрерывный прогон” кода нажатием кнопки Run впанели инструментов.6. ВоспользуйтесьсредствамиCodeExplorerдляпросмотрамодифицированных областей памяти данных, чтобы убедиться вправильности работы рограммы.7.
Просмотрите содержимое области программной памяти, содержащейзагруженный код.8. ВоспользовавшисьграфическимисредствамиCodeExplorerосуществите визуализацию таблицы исходных данных и результатов вразных окнах.9. Закройте все окна.10. Выполните перезагрузку объектного кода программы.11. Воспользуйтесьвозможностямипошаговойотладки,предоставляемыми Code Explorer, выполните программу в пошаговомрежиме, наблюдая за изменением содержимого регистров процессора спомощью окна CPU registers.12. Очистите инициализированные пользовательской программой областипрограммной памяти и памяти данных, воспользовавшись командой FillMemory… с шаблоном заполнения, соответствующим коду пустойоперации 8B00h.13.
Выйдите из программы Code Explorer.14. Выключите питане модуля DSK.90PDF created with pdfFactory trial version www.pdffactory.comЛабораторная работа № 206-2Задание1. Осуществить 200 измерений мгновенных значений синусоидальногонапряжения с частотой 1кГц. При этом использовать первыйаналоговый вход модуля DSK, синхронный последовательный портПЦОС TMS320F206 и память ПЦОС, начиная с адреса 0200h.2.
С помощью отладочного средства Code Explorer визуализироватьсформированную в памяти ПЦОС последовательности выборок.Методические указанияДля выполнения лабораторной работы необходимо иметьпредставление об организации системы прерываний ПЦОС TMS320F206, атакже изучить работу его синхронного последовательного порта (пп. 4.5,4.6).Используемый в данной лабораторной работе принцип связимикропроцессора с источником аналогового сигнала (генераторомсинусоидальных колебаний) достаточно прост – вход приемапоследовательных данных DX микропроцессора подключен к выходупоследовательных данных микросхемы кодека TLC320AC02C, входящей всостав модуля DSK.
Эта микросхема выполняет аналого-цифровоепреобразование поступающей с аналогового входа DSK информации.При написании прораммы, управляющей процессом передачиданных через синхронный последовательный порт процессора очень важнокорректно настроить порт. Исходя из изложенного выше принципавзаимодействия ПЦОС TMS320F206 и микросхемы TLC320AC02Cследует, что его необходимо настроить на работу в режиме внешнейсинхронизации (импульсы тактовой и кадровой синхронизации должныиметь внешний по отношению к микропроцессору источник). В данномслучае целесообразно использовать режим непрерывной передачипоследовательных данных.Для обеспечения обработки принимаемых SSP данных всоответствии с поставленным заданием следует воспользоватьсягенерируемым портом прерыванием RINT (для определенности нужнонастроить порт так, чтобы упомянутое прерывание генерировалось принепустом приемном буфере).
Для этого необходимо составитьподпрограмму обработки соответствующего прерывания и поместить еевектор в таблицу векторов прерываний микропроцессора.Основная таблица векторов прерываний ПЦОС TMS320F206расположена в программной памяти, начиная с адреса 00000h. Следует91PDF created with pdfFactory trial version www.pdffactory.comподчеркнуть, что программный доступ к соответствующим ячейкампамяти запрещен и пользователь не может изменить их содержимое. Но впамяти микропроцессора предусмотрена альтернативная таблица векторовпрерываний, берущая начало с адреса 08000h и имеющая ту жепоследовательную структуру, что и основная. Каждый вектор прерываниясостоит из двух 16-битных слов и представляет собой код инструкциибезусловного перехода к процедуре обработки соответствующегопрерывания. Зачем же необходима такая двойственность? Просто основнаятаблица в качестве вектора обработки каждого из прерываний содержитинструкцию безусловного перехода на вектор соответствующегопрерывания в альтернативной таблице.
Таким образом, именноальтернативной таблицей в конечном счете пользователь определяеттребуемые ему процедуры обработки прерываний.Говоря об обработке прерываний процессором в режимевысокоуровневой отладки (в режиме использования отладчика высокогоуровня Code Explorer), следует сделать некоторые важные замечания:обмен данными между программой-отладчиком Code Explorer и ПЦОСосуществляется через асинхронный последовательный порт, чтоделает нежелательной работу с этим портом в режиме отладкипользовательской программы;для корректного функционирования отладчика необходимо при работес прерываниями оставлять прерывание асинхронного портадемаскированным.Ниже приводится пример несложной программы, демонстрирующийобщие принципы настройки и обмена данными через синхронныйпоследовательный порт.
Сначала необходимо проанализировать списокинструкций изучаемого ПЦОС (Приложение П.5, табл. П.7) и принципыработы со средством ассемблирования TASM (п. 4.4).Пример программыПример 7.4. Чтение синхронного последовательного порта.title"SSP Demo"; В процессе ассемблирования подключаем заголовочный файл, содержащий объявления часто; инспользуемых при прорграммировании TMS320F206 меток:; EN_RINT, EN_TXRXINT, IMR, IOSR, SSPCR, INTM, CNF, WSGR и др.; Убедитесь в правильности данного пути на Вашей ЭВМ!.include "c:\\F206\\include\\pathway.inc"; Установка для управляющего регистра SSP при сбросеSSPCFG1.set04000h; Установка для управляющего регистра SSP для вывода из состояния сброса:;непрерывный режим передачи,92PDF created with pdfFactory trial version www.pdffactory.com;;;-прерывание RINT генерируется при непустом приемном FIFO-буфере,внешняя тактовая и кадровая синхронизация,режим цифровой “закольцовки” деактивированSSPCFG2.set04030h; Определение стартового адреса для ассемблирования в память данных.ds200h; Резервируем ячейку памяти для хранения приходящих с кодека данных.; В начале программы эта ячейка используется в качестве буфераaicData.word0; Ассемблируем в программную память альтернативную таблицу прерываний.ps 8000hbbbbbbb.spacebbbbbbbbbbb.spacebbbbbbbbbbbb0000h0000h0000h0000hrecvIsr0000h0000h2*160000h0000h0000h0000h0000h0000h0000h0000h0000h0000h0000h2*160000h0000h0000h0000h0000h0000h0000h0000h0000h0000h0000h0000h; 00 – сброс программы-монитора; 02 – сброс программы-монитора; 04 – сброс программы-монитора; 06 – сброс программы-монитора; 08 – вектор прерывания RINT; 0a – сброс программы-монитора; 0c – сброс программы-монитора; 0e – зарезервировано; 10 – сброс программы-монитора; 12 – сброс программы-монитора; 14 – сброс программы-монитора; 16 – сброс программы-монитора; 18 – сброс программы-монитора; 1a – сброс программы-монитора; 1c – сброс программы-монитора; 1e – сброс программы-монитора; 20 – сброс программы-монитора; 22 – сброс программы-монитора; 24 – сброс программы-монитора; 26 – зарезервировано; 28 – сброс программы-монитора; 2a – сброс программы-монитора; 2c – сброс программы-монитора; 2e – сброс программы-монитора; 30 – сброс программы-монитора; 32 – сброс программы-монитора; 34 – сброс программы-монитора; 36 – сброс программы-монитора; 38 – сброс программы-монитора; 3a – сброс программы-монитора; 3c – сброс программы-монитора; 3e – сброс программы-монитора; Начало новой секции для ассемблирования в программную память.ps8050h; Определяем точку входа в программу.entry93PDF created with pdfFactory trial version www.pdffactory.com; Запрещаем все демаскированные прерыванияSTART:setcINTM; Конфигурируем блок B0 DARAM для отображения в память даных путем сброса флага CNF; регистра ST1clrcCNF; Загружаем в указатель страницы памяти 4ldp#04h; Инициализируем генератор состояний ожиданияsplkout#0000h, aicDataaicData, WSGR; Настройка и сброс SSPsplkout#SSPCFG1, aicDataaicData, SSPCR; Вывод SSP из состояния сброса и окончательные установкиsplkout#SSPCFG2, aicDataaicData, SSPCR; Настройка микросхемы кодека TLC320AC02C (содержит АЦП и ЦАП).; Сброс микросхемы TLC320AC02C через регистр статуса асинхронного портаinlaclaicData, IOSRaicData; Сброс бита IO3 регистра IOSR.andsaclout#0fff7haicDataaicData, IOSR; Вывод микросхемы TLC320AC02C из состояния сброса через регистр статуса асинхронного; порта.inlaclaicData, IOSRaicData; Установка бита IO3 регистра IOSRorsaclout#08haicDataaicData, IOSRldp#0h; Демаскируем необходимые прерыванияsplk#EN_RINT | EN_TXRXINT, IMR; Цикл ожидания прихода демаскированных прерываний94PDF created with pdfFactory trial version www.pdffactory.comLOOP:idlebLOOP; Процедура обработки прерывания RINTrecvIsr:ldp#04h; Загружаем данные из порта в ячейку памяти aicDatainaicData, SDTRldp#0h; Снова разрешаем все демаскированные прерыванияclrcINTM; Объявляем статус прерывания RINT как обработанноеsplk#CLR_RINT, IFR; Возвращаемся в вызывающую программуret; Конец ассемблирования.endУказания к выполнениюВыполнение лабораторной работы осуществляется в три этапа:программирование,ассемблирование,работа с отладчиком.ПрограммированиеНа этом этапе осуществляется составление программы сиспользованием набора команд (инструкций) ПЦОС TMS320F206 и всоответствии с заданием на лабораторную работу.Для последующего тестирования и отладки текст программынеобходимо набрать в редакторе текстов ASCII (например в Notepad дляWindows) и сохранить в файле с именем BrN_4.asm (где N – номербригады).АссемблированиеДля ассемблирования программы необходимо:1.