Учебник - Процессоры цифровой обработки сигналов (Круг П.Г.) (1086865), страница 14
Текст из файла (страница 14)
7.1 и ассемблер сформирует исполняемыйфайл с именем BrN_1.dsk. Этот файл содержит набор инструкций вмашинных кодах, понятных микропроцессорам серии TMS320C2x.Рис. 7.1. Результат ассемблирования программы, не содержащей ошибокВ противном случае ассемблер сгенирирует сообщение об ошибке(рис. 7.2) и файл с расширением .dsk не создастся. Наряду с информациейо количестве ошибок ассемблер указывает строки, в которых, по егомнению, была допущена ошибка.
Это существенно упрощает поиск иисправление ошибок на этапе ассемблирования.80PDF created with pdfFactory trial version www.pdffactory.com5. Провести ассемблирование программы с параметром –l и с просмотромполученных результатов в соответсвующем файле.Примечание. Вызов ассемблера с этим параметром приводит к генерации наряду сисполняемым файлом текстового с листингом ассемблера. Этот файл имеетрасширение .lst и содержит информацию о результатах ассемблирования каждойстрочки программы как на рис. 7.2.Рис. 7.2.
Результат ассемблирования ошибочного файлаРабота с отладчикомЗапуск отладчикаОтладкаполученнойпослеассемблированияпрограммыпроизводится с помощью входящего в комплект DSK отладчика.Для его запуска необходимо:включить модуль DSK соответствующим тумблером “DSK Power”;с помощью командной строки сделать директорию C:\C26 текущей;осуществить вызов программы-отладчика путем ввода команды:dskd c2илиdebuggerПримечание. После выполнения данного пункта задания возможно появлениесообщения об ошибке. В этом случае необходимо выйти из программы путем ввода Qили Esc, а затем осуществить повторный вызов отладчика в соответствии с рис.7.3.81PDF created with pdfFactory trial version www.pdffactory.comРис. 7.3.
Содержание листинг-файлаОзнакомление с графической оболочкой отладчикаВ случае успешного запуска программы выполните:1. Ознакомьтесь с графической оболочкой отладчика с помощью п. 4.3;5. Осуществите загрузку файла BrN_1.dsk, полученного послеассемблирования, в память ПЦОС;6. Загрузите программу без точек останова;7.
Проанализируйте содержимое регистров процессора;8. Воспользовавшись возможностью просмотра содержимого ячеекпамяти по конкретному адресу, убедитесь в том, что запись десятичныхчисел произведена в указанную область памяти;9. Осуществите сброс модуля;10. Повторно запустите отладчик;11. Выполните п.2.;12. Осуществите пошаговое выполнение программы, наблюдая запостепенным изменением содержимого регистров;10. Выйдите из программы.Лабораторная работа № 26-2ЗаданиеРазработатьнаассемблереTMS320C26программу,осуществляющую вычисление минимума заданной функции на заданноминтервале (Табл. 7.1).82PDF created with pdfFactory trial version www.pdffactory.comТаблица 7.1.
Вариант задания в соответствии с номером бригадыВариантФункцияОтрезокШаг аргумента1x2-12x+37[0,12]12[1,13]12[2,14]12[3,15]1x -14x+512x -16x+673x -18x+824Методические указанияПример программы1. Память ПЦОС конфигурировать директивой conf 1;2. Таблицу значений аргументов с заданным шагом поместить в областьпамяти начиная с адреса 0400h;3. Таблицу соответствующих значений функции разместить в ОЗУначиная с адреса 0424h;4. Вычисленное значение минимума разместить по адресу 0430h.Ниже приводится текст программы, осуществляющей перемножениесодержимого предварительно инициализируемых ячеек памяти данных садресами 0400h и 0401h. Младшее слово результата, имеющее разрядность16 бит, сохраняется в ячейке памяти с адресом 0402h, старшее – 0403h.Пример 7.2. Перемножение двух шестнадцатиразрядных целых чисел.ps.entry.ds.textconf.data.int.textlrlklarpltmpypacsaclsach.end0fb00h0400h18,9AR1,0400h1*+*+*+*+;;;;;;;;;;;;;;;;;;установить текущий адрес программной памятизагрузить программный счетчик текущим адресом прогр.
памятиустановить текущий адрес памяти данныхассемблировать в программную памятьконфигурировать RAM микропроцессораассемблировать в память данныхинициализировать целочисленными множителямиячейки памяти с адресами 0400h и 0401hассемблировать в программную памятьзагрузить в AR1 адрес первого множителясделать текущим AR1загрузить регистр Т содержимым текущего регистравычислить и поместить в P произведениеT*(содержимое текущего регистра)сохранить содержимое регистра Р в аккумуляторзаписать младшее слово аккумулятора в память по адресу 0402hзаписать старшее слово аккумулятора в память по адресу 0403hзакончить ассемблирование83PDF created with pdfFactory trial version www.pdffactory.comУказания к выполнению лабораторной работы1.
Составить в соответствии с заданием программу на языке ассемблераПЦОС TMS320C26.2. Сохранить программу в файле BrN_2.asm, где N – номер вашейбригады.3. Переместить этот файл в директорию C:\C26.4. Осуществить ассемблирование программы.5. Включите лабораторный стенд.6. Вызвать отладчик.7. С помощью меню Fill ® Data инициализировать облась памятиданных, в которой будет производиться работа, нулевыми значениями.8. Загрузить исполняемый файл BrN_2.dsk в память с помощью меню.9. Осуществить выполнение программы.10.
Убедится в правильности полученных результатов.11. С помощью меню Watch ® Add дополнить список точек наблюденияадресами ячеек памяти, в которые будут записаны значения функции, атакже адрес ячейки памяти, в которую будет осуществляться выводрезультата.12. Осуществить пошаговое выполнение программы, прослеживая заизменением содержимого соответствующих ячеек памяти в окненаблюдения (TMS320C26 Watches).13. С помощью меню eXec ® Addr осуществить выполнение программыдо момента запуска процедуры поиска минимума.14. Выйти из программы.7.2.
Программирование ПЦОС TMS320F206Целью выполнения лабораторных работ данного раздела являетсяознакомление с архитектурой, системой команд и методамипрограммирования ПЦОС TMS320F206, изготовленного с использованиемстатической CMOS-технологии [8].В лабораторных работах раздела используется функциональныймодуль DSK, расширяющий функциональные возможности ПЦОСTMS320F206, содержащийАЦП и ЦАП, и подсоединенный кперсональному компьютеру через последовательный порт RS-232.В ходе выполнения работ используется TASM-ассемблер и средствоотладки Code Explorer для снижения трудоемкости и временных затрат присоздании прикладных программ.84PDF created with pdfFactory trial version www.pdffactory.comЛабораторная работа 206-1Задание1. Осуществить инициализацию области памяти процессора десятичнымизначениями в диапазоне (50 - N) ¸ (100 – N), где N – номер бригады.При этом, в качестве начального адреса памяти принять 0200h.2.
Рассчитать и расположить в памяти процессора, начиная с адреса 0264hзачения квадратов содержимого инициализированных ячеек памяти.3. При использовании средства отладки Code Explorer, осуществитьвизуализацию сформированной в памяти процессора таблицы квадратовво временной области.Методические указанияНиже приводятся некоторые пояснения относительно того, каквыбрать и настроить пространства памяти изучаемого процессора. Дляулучшения понимания данного вопроса рекомендуется ознакомится с п. 4.Память ПЦОС серии TMS320F2000 организована в четыреиндивидуально адрессуемых пространства: программной памяти,локальной и глобальной памяти данных, а также памяти ввода/вывода.
Приэтом общий объем адрессуемой памяти составляет 244K 16-битных слов.По количеству обращений, которое допускает оперативная памятьизучаемого процессора в течение одного машинного цикла, ее можноподразделить на память одиночного (SARAM) и двойного доступа(DARAM).Объем адресуемой SARAM процессора TMS320F206 составляет 4К16-битных слов, причем она может одновременно адрессоваться какпрограммная память и как память данных.
Непосредственно после сбросаПЦОС и выполнения стартовых процедур инициализации пространствоячеек памяти с адресами 8000h ¸ 8FFFh адресуется как программнаяпамять.Объем адресуемой DARAM изучаемого ПЦОС составляет 544 16битных слов и разбит на два блока B0 и В1. При этом ячейки блока B1всегда адресуются как память данных, а за конфигурацию блока B1отвечает бит CNF статусного регистра ST1. Если бит установлен, тореконфигурируемый блок отображается на адресное пространство 0FE00h¸ 0FEFFh (0FF00h ¸ 0FFFFh) программной памяти процессора.Впротивном случае - на адресное пространство 0200h ¸ 02FFh (0100h ¸01FFh) памяти данных.После краткого обзора особенностей организации памятиTMS320F206 следует определить основные этапы ее программногоконфигурирования.Пользовательская программа должна содержать определение точкивхода программы, т.е.
адреса ячейки программной памяти, с которой85PDF created with pdfFactory trial version www.pdffactory.comпроцессор должен начать выполнение кода. Обычно, это определениеосуществляется в два этапа:используя директиву .PS, загружают счетчик команд требуемымадресом точки входа;с помощью директивы .ENTRY определяют статус текущегосодержимого PC как адрес точки входа программы.Послеопределенияточки входа необходимо правильноконфигурировать память процессора. В данной лабораторной работе дляэтого необходимо определить статус блока памяти B0 как блока памятиданных, сбросив управляющий бит СNF статусного регистра ST1, так каклишь при таком условии целевая область памяти 0200h ¸ 02FFh будетявляться блоком памяти данных.Далее приводится пример несложной программы, демонстрирующийобщие приемы программирования ПЦОС.
Перед его анализом необходимоизучить список инструкций изучаемого ПЦОС (п. П.2), а такжеознакомиться с описанием средства ассемблирования TASM (п. 4.4).Пример программыПрограмма, приведенная в качестве примера, осуществляетперемножение двух шестнадцатеричных чисел с помещением младшегослова результата в ячейку памяти данных.Пример 7.3. Перемножение двух шестнадцатиразрядных целых чисел.title "Example"; Название программы; Определяем номер страницы памяти, в пределах которой будут размещаться операнды#defineM_PAGE4; Определяем адрес целевой ячейки памяти#define D_ADDR202h; Заносим операнды в память данных; Определяем адрес ячейки памяти данных начиная с которой будет существлено; размещение операндов последовательные байты операндов.ds0200h; Записываем первый операнд 01h по адресу 0200h.word02h; Записываем второй операнд 05h по адресу 0201h.word05h; Конфигурирование и начальные установки86PDF created with pdfFactory trial version www.pdffactory.com; Инициализируем счетчик коммандSTART: .ps8000h; и определяем ячейку памяти с адресом 8000h как точку входа в программу.entry; Конфигурируем блок B0 DARAM для отображения в память даных путем; сброса флага CNF регистра ST1.clrcCNF; Смысловая часть.; Допустим, используем прямую адресацию.
Следовательно необходимо загрузить номер целевой; страницы памяти № 4 в DP. Начальный адрес соответствующий данной странице - 0200h.ldp#M_PAGE; Загружаем регистр Т первым операндом. Указание нулевого смещения на; странице памяти №4 вызовет помещение в Т-регистр содержимого ячейки; памяти с начальным адресом этой страницы, равным 0200h.lt0; Перемножаем содержимое регистра Т с содержимым ячейки памяти заданной; единичным смещением на четвертой странице памяти, т.е. имеющей адрес 201h.; Результат операции помещается в регистр Р.mpya1; Перед помещением произведения в аккумулятор необходимо обнулить биты PM статусного; регистра ST1. Это позволит предотвратить управляемый сдвиг результата предыдущей; операции, который осуществляется соответствующим регистром на выходе регистра Р.spm0; Помещаем содержимое Р-регистра в аккумулятор без сдвига.pac; Помещаем адрес целевой ячейки памяти во временный регистр AR1.larAR1, #D_ADDR; и делаем этот регистр текущим.mar*, AR1; Сохраняем содержимое аккумулятора в целевой ячейке, используя косвенную адресацию.sacl*; Заканчиваем ассемблирование.endУказания к выполнению87PDF created with pdfFactory trial version www.pdffactory.comВыполнение лабораторной работы осуществляется в три этапа:программирование,ассемблирование,работа с отладчиком.ПрограммированиеНа этом этапе составляется программа с использованием наборакоманд (инструкций) ПЦОС TMS320F206 и в соответствии с заданием налабораторную работу.Для последующего тестирования и отладки текст программынеобходимо набрать в редакторе текстов ASCII (например в Notepad дляWindows) и сохранить в файле с именем BrN_3.asm (где N – номербригады).АссемблированиеДля ассемблирования полученной программы необходимо:1.