Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Исследование программ на симуляторе сигнального процессора




Цель работы:получить практические навыки в подготовке и исследовании простейших программ программ для работы на симуляторе сигнального процессора TMS320С50.

 

Краткая теоретическая справка

Процесс подготовки исполняемых программ для сигнального процессора TMS320C50 можно разделить на три этапа:

1) создание модуля-файла, например, sim.asm с исходным текстом программы, написанным на языке ассемблера;

2) трансляция полученного файла для создания объектного файла, например, sim.obj, а также листинга sim.lst, производитсяв режиме MS DOS путем набора в командной строке следующей команды:

dspa.exe - lcssim.asm

3) если в программе sim нет ошибок, то нужно произвести операцию компоновки и получить выходной файл, например, sim.out и файл sim.map, набрав команду вида:

Dsplnk.exe sim.cmd

В данной работе используется готовый файл sim.asm, который состоит из нескольких частей, в каждой из которых реализуется некоторая операция.

В таблице 2.1 представлена карта размещения в памяти данных переменных, используемых в программе.

Т а б л и ц а 2.1

Переменная Адрес ячейки памяти данных (Hex) Начальное значение переменной (Hex)
Х    
Y    
Z    
X1    
Y1    
Z1    
X2   0a
Y2   0b
Z2  

 

Ниже представлен текст программы sim:

; Программа выполнения простейших операций на TMS320C50

  .version    
  .mmregs   ; Разрешение использования;символьных;имен регистров процессора.
         

; Задание значений переменных в памяти данных

  .data    
X .word   ; Начальное значение Х  
Y .word   ; Начальное значение Y  
Z .word   ; Начальное значение Z  
X1 .word   ; Начальное значение Х1  
Y1 .word   ; Начальное значение Y1  
Z1 .word   ; Начальное значение Z1  
X2 .word 0ah ; Начальное значение Х2  
Y2 .word 0bh ; Начальное значение Y2  
Z2 .word 0ch ; Начальное значение Z2  
           

; Резервирование области памяти размером 6 ячеек

  .bss M1,6 ; Символический адрес;первой ячейки М1

; Таблица векторов прерывания

  .sect “ Vectors “
RESET B START ; Начальная строка таблицы;векторов прерывания –;переход к основной программе

 

; Основная программа

.text

START LDP #0 ; Указатель страницы памяти данных
  OPL #04h,PMST ; Задать значение регистра PMST
  CLRC OVM ; Запретить режим переполнения
  SPM   ; Установить нулевой сдвиг PREG
L1:      
  LDP #X ;Указать на страницу памяти, хранящую Х
  LACC X ;Загрузить в АCC содержимое ячейки Х
  ADD Y ;Прибавить к АСС содержимое ячейки Y
  ADD #5 ;Прибавить к АСС непосредственное;слагаемое
  SACL Z ;Сохранить содержимое младшего слова АСС в ячейке Z
  L2:      
  LDP #X1 ;Указать на страницу памяти, хранящую Х1
  LT X1 ;Загрузить в T-регистр содержимое ячейки;Х1
  MPY Y1 ;Перемножить Х1 и Y1. Результат в РREG
  SPL Z1 ;Сохранить содержимое младшего слова;PREG в ячейке Z1
L3:      
  LDP #X1 ;Указать на страницу памяти, хранящую Х2
  LACC Y1 ;Загрузить в АCC содержимое ячейки Х2
  SUB X1 ;Вычесть из АСС содержимое ячейки Y2
  SACL Z2 ;Сохранить содержимое младшего слова;АСС в ячейке Z2
L4:      
  LDP #X ;Указать на страницу памяти, хранящую Х
  LACC Z1 ;Загрузить в АCC содержимое ячейки Z1
  SACL X ;Сохранить содержимое младшего слова;АСС в ячейке X
L5:      
  LDP #Y2 ;Указать на страницу памяти, хранящую Y
  MAR *,AR0 ; Сделать активным регистр AR0
  LAR AR0,Y2 ;Загрузить в АR0 содержимое ячейки Y2
L6:      
  LDP #Z ;Указать на страницу памяти, хранящую Х
  LAR AR6,#Z ;Загрузить в АR6 адрес ячейки Z
L7:      
  LDP #Y2 ;Указать на страницу памяти, хранящую Y2
  LACC #07fffh ;Загрузить в АCC число 7fff (Hex)
  SACL Y2 ;Сохранить содержимое младшего слова;АСС в ячейке Y2
  SACB   ;Сохранить содержимое АСС в ACCB
  SAMM AR1 ;Сохранить содержимое АСС в регистре;AR1
  B L9 ;Безусловный переход к фрагменту ;программы с меткой L9
L8:      
  LDP #X ;Указать на страницу памяти, хранящую X
  ZAP   ;Обнулить АСС и регистр PREG
  LT X ;Загрузить в регистр Т переменную X
  MPY X1 ;Умножить X на X1, результат в регистре;PREG
  LTA Y ; Загрузить в регистр Т переменную Y,;предыдущее произведение из PREG ;добавляется в ACC
  MPY Y1 ; Умножить Y на Y1 результат в регистре;;PREG
  LTA Z ;Загрузить в регистр Т переменную Z,;предыдущее произведение из PREG ;добавляется в ACC
  MPY Z1 ; Умножить Z на Z1 результат в регистре;PREG
  APAC   ;предыдущее произведение из PREG ;добавляется в ACC
  SACL X2 ;Сохранить содержимое младшего слова ;АСС в ячейке X2
  B START ;Переход к началу программы для;повторения
  .end   ; Конец программы

 

Для компоновки представленной выше программы используется командный файл sim.cmd, в котором задается одно из возможных распределений памяти, используемое в работе по изучению симулятора.

Таким образом, на основе объектного файла sim.obj,полученного после трансляции, и под управлением sim.cmd, программой компоновщика dsplnk.exe формируется выходной файл sim.out, который будет использоваться при работе с программой симулятора. Программа компоновщика формирует также таблицу реально полученного распределения памяти sim.map. Этот файл позволяет контролировать инициализацию начальных адресов и количество ячеек памяти, используемых для хранения программы и данных в процессоре, а также правильность расположения и соединения секций программы.

Симулятор (имитатор) предназначен для программной имитации работы процессора TMS320C50 и отладки программ, предназначенных для выполнения на данном процессоре. Имитатор выполняет программы не в реальном масштабе времени. При выполнении программы в нем возможен контроль, а также модификация (изменение) состояния основных регистров процессора и содержимого памяти при тех или иных операциях.

Программа симулятора SIM5X обладает дружественным интерфейсом и позволяет вводить основные команды, управляющие работой, как в командной строке, так и посредством манипулятора “мышь”, используя экранное меню. Симулятор позволяет загружать и выполнять файлы, полученные в результате трансляции и компоновки программы, написанной на языке ассемблера.

Графическая панель, формируемая программой симулятора, организована по оконному типу и дает возможность:

· загружать исполняемые программы и просматривать их дизассемблерную версию;

· выделять, перемещать и менять размеры окон;

· выполнять программы в пошаговом режиме и контролировать их выполнение, следя за изменениями, происходящими с содержимым регистров и областей памяти процессора;

· задавать точки останова при выполнении программы,

· вводить различные команды через командное меню, посредством клавиатуры или “мышью”;

· контролировать время выполнения программ.

После запуска программы симулятора на экране монитора появляются четыре окна:

1) окно DISASSEBLY - для отлаживания текста дизассемблированной программы;

2) окно СРU - для отражения состояния аккумулятора процессора (ACC) и его буфера (ACCB), регистра результата умножения (PREG), программного счетчика (PC), регистрового файла, состоящего из восьми вспомогательных регистров (AR1 – AR0) и индексного регистра (INDX), регистров состояния (ST0, ST1 и PMST) и других регистров;

3) окно MEMORY – для отражения памяти процессора;

4) окно COMMAND – для введения разных команд процессора.

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...