Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

R01-2013

.pdf
Скачиваний:
44
Добавлен:
10.02.2015
Размер:
2 Мб
Скачать
☆

133

Приложение A Отображаемые в память регистры

Адрес

Регистр

Разряды

Описание

000000h

IER0

15-0

Регистр разрешения прерываний 0

000001h

IFR0

15-0

Регистр флагов прерываний 0

000002h

ST0

15-0

Регистр статуса микропроцессора 0

000003h

ST1

15-0

Регистр статуса микропроцессора 1

000004h

ST3

15-0

Регистр статуса микропроцессора 3

000005h

–

–

Зарезервировано

000006h

–

–

Используется в режиме C54СМ (ST0)

000007h

–

–

Используется в режиме C54СМ (ST1)

000008h

AC0L

15-0

Младшее слово регистра-аккумулятора 0

000009h

AC0H

31-16

Старшее слово регистра-аккумулятора 0

00000Ah

AC0G

39-32

Сторожевой байт регистра-аккумулятора 0

00000Bh

AC1L

15-0

Младшее слово регистра-аккумулятора 1

00000Ch

AC1H

31-16

Старшее слово регистра-аккумулятора 1

00000Dh

AC1G

39-32

Сторожевой байт регистра-аккумулятора 1

00000Eh

T3

15-0

Временный регистр 3

00000Fh

TRN0

15-0

Переходный регистр 0

000010h

AR0

15-0

Дополнительный регистр 0

000011h

AR1

15-0

Дополнительный регистр 1

000012h

AR2

15-0

Дополнительный регистр 2

000013h

AR3

15-0

Дополнительный регистр 3

000014h

AR4

15-0

Дополнительный регистр 4

000015h

AR5

15-0

Дополнительный регистр 5

000016h

AR6

15-0

Дополнительный регистр 6

000017h

AR7

15-0

Дополнительный регистр 7

000018h

SP

15-0

Указатель стека данных

000019h

BK03

15-0

Регистр размера циклического буфера для AR0-AR3

00001Ah

BRC0

15-0

Счетчик блока повторения 0

00001Bh

RSA0L

15-0

Младшее слово начального адреса блока повторения 0

00001Ch

REA0L

15-0

Младшее слово конечного адреса блока повторения 0

00001Dh

–

–

Используется в режиме C54СМ (ST3)

00001Eh

–

–

Зарезервировано

00001Fh

–

–

Зарезервировано

000020h

T0

15-0

Временный регистр 0

000021h

T1

15-0

Временный регистр 1

000022h

T2

15-0

Временный регистр 2

000023h

T3

15-0

Временный регистр 3

000024h

AC2L

15-0

Младшее слово регистра-аккумулятора 2

000025h

AC2H

31-16

Старшее слово регистра-аккумулятора 2

Микропроцессорные устройства обработки сигналов

 

 

 

134

 

 

 

 

Адрес

Регистр

Разряды

Описание

000026h

AC2G

39-32

Сторожевой байт регистра-аккумулятора 2

000027h

CDP

15-0

Указатель коэффициентов

000028h

AC3L

15-0

Младшее слово регистра-аккумулятора 3

000029h

AC3H

31-16

Старшее слово регистра-аккумулятора 3

00002Ah

AC3G

39-32

Сторожевой байт регистра-аккумулятора 3

00002Bh

DPH

23-16

Старшая часть регистра страницы данных

00002Сh

–

–

Зарезервировано

00002Вh

–

–

Зарезервировано

00002Eh

DP

15-0

Регистр страницы данных

00002Fh

PDP

8-0

Регистр страницы в пространстве ввода-вывода

000030h

BK47

15-0

Регистр размера циклического буфера для AR4-AR7

000031h

BKC

15-0

Регистр размера циклического буфера для CDP

000032h

BSA01

15-0

Начальный адрес циклического буфера для AR0-AR1

000033h

BSA23

15-0

Начальный адрес циклического буфера для AR2-AR3

000034h

BSA45

15-0

Начальный адрес циклического буфера для AR4-AR5

000035h

BSA67

15-0

Начальный адрес циклического буфера для AR6-AR7

000036h

BSAC

15-0

Начальный адрес циклического буфера для CDP

000037h

–

–

Используется базавой системы ввода-вывода BIOS

000038h

TRN1

15-0

Переходный регистр 0

000039h

BRC1

15-0

Счетчик блока повторения 1

00003Ah

BRS1

15-0

Регистр для сохранения BRC1

00003Bh

CSR

15-0

Регистр простого повторения

00003Сh

RSA0Н

23-16

Старший байт начального адреса блока повторения 0

00003Dh

RSA0L

15-0

Младшее слово начального адреса блока повторения 0

00003Eh

REA0Н

23-16

Старший байт конечного адреса блока повторения 0

00003Fh

REA0L

15-0

Младшее слово конечного адреса блока повторения 0

000040h

RSA1Н

23-16

Старший байт начального адреса блока повторения 1

000041h

RSA1L

15-0

Младшее слово начального адреса блока повторения 1

000042h

REA1Н

23-16

Старший байт конечного адреса блока повторения 1

000043h

REA1L

15-0

Младшее слово конечного адреса блока повторения 1

000044h

RPTC

15-0

Регистр счетчика простого повторения

000045h

IER1

15-0

Регистр разрешения прерываний 1

000046h

IFR1

15-0

Регистр флагов прерываний 1

000047h

DBIER0

15-0

Регистр разрешения отладочных прерываний 0

000048h

DBIER1

10-0

Регистр разрешения отладочных прерываний 1

000049h

IVPD

15-0

Регистр адреса векторов прерываний 0-15, 24-31

00004Ah

IVPH

15-0

Регистр адреса векторов прерываний 1523

00004Bh

ST2

15-0

Регистр статуса микропроцессора 2

00004Сh

SSP

15-0

Регистр указателя системного стека

00004Dh

SP

15-0

Регистр указателя стека данных

00004Eh

SPH

6-0

Регистр старшего байта указателей стеков

Микропроцессорные устройства обработки сигналов

 

 

 

135

 

 

 

 

Адрес

Регистр

Разряды

Описание

00004Fh

CDPH

6-0

Регистр старшего байта адреса коэффициентов

000050h

–

–

Зарезервировано

000051h

–

–

Зарезервировано

000052h

–

–

Зарезервировано

000053h

–

–

Зарезервировано

000054h

–

–

Зарезервировано

000055h

–

–

Зарезервировано

000056h

–

–

Зарезервировано

000057h

–

–

Зарезервировано

000058h

–

–

Зарезервировано

000059h

–

–

Зарезервировано

00005Ah

–

–

Зарезервировано

00005Bh

–

–

Зарезервировано

00005Ch

–

–

Зарезервировано

00005Dh

–

–

Зарезервировано

00005Eh

–

–

Зарезервировано

00005Fh

–

–

Зарезервировано

Микропроцессорные устройства обработки сигналов

136

Приложение B Титульный лист

Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования

«Московский государственный технический университет имени Н.Э. Баумана» (МГТУ им. Н.Э. Баумана)

Факультет ИУ – «Информатика и управление»

Кафедра ИУ-3 – «Информационные системы и телекоммуникации»

Отчёт по лабораторной работе 1 по дисциплине «Микропроцессорные устройства обработки сигналов»

на тему «Исследование поразрядных логических команд микропроцессора»

Студент группы ИУ3-72

(подпись)

А.А. Иванов

12.09.2013

 

 

Преподаватель кафедры ИУ-3

(подпись)

(И.О. Фамилия)

(дата)

 

 

Москва 2013

Микропроцессорные устройства обработки сигналов

137

Приложение C Исходный текст модуля main.c

/* Включаемые файлы */ #include "stdio.h"

/* Макроопределения */ #define RESULTS 16

/* Глобальные данные */ long long d = 0xFEDCBE9876; int r[RESULTS];

/* Объявление внешней функции */ extern long test(int*, int);

/* Точка входа в программу */ void main(void)

{

/* Локальные переменные */ int i, q;

long t = 0x12345678;

/* Подготовка исходных данных в формате Q15 */ )

#pragma MUST_ITERATE(RESULTS, RESULTS, 1) for( i = 0, q = 32767; i < RESULTS; i++ )

{

r[i] = q, q >>= 1; /* 0,5, 0,25, 0,125, ... */

}

/* Вызов внешней функции */

t = test(r, RESULTS); /* Вывод результа */

printf( "Возвращаемое значение test - %08x\n", t ); printf( "Глобальная переменная d - %010x\n", d );

#pragma MUST_ITERATE(RESULTS, RESULTS, 1) for( i = 0; i < RESULTS; i++ )

{

printf( "Слово %d - %04x\n", i, r[i] );

}

}

Микропроцессорные устройства обработки сигналов

138

Приложение D Исходный текст модуля test.asm

; Объявление перекрестных ссылок

 

.def

_test

 

.ref

_d

; Секция инициализованных данных

 

.data

 

w

.word

0FFFFh, 0FFA9h, 8765h, 4320h

; Секция кода

 

.text

 

;

Аргументы функции test:

;

AR0

– указатель int* на массив

;T0 – длина массива int

;Состояние стека:

;*SP(#0) - локальная переменная функции

;*SP(#1) - сохраненный регистр T2

;*SP(#2) - сохраненный регистр AR5

;*SP(#3) - адрес возврата из функции

;*SP(#4) - первый аргумент, не поместившийся в регистрах

;Определение локальной переменной

.asg *SP(#0), var

; Точка входа в функцию test

_test:

; Использование указателя стека при прямой адресации

.cpl_on

; Сохранение в стеке модифицируемых регистров

PSH

mmap(ST1_55)

PSH

mmap(ST2_55)

PSH

T2, AR5

; Выделение в стеке памяти для локальной переменной

AADD

#-1, SP

 

; Задание режима работы микропроцессора

BSET

M40

; ST1 40-битные операции АЛУ

BSET

SXMD

; ST1 расширение знака при загрузке

BCLR

ARMS

; ST2 сигнальный режим адресации

.arms_off

 

; Сохранить длину массива в локальной переменной

MOV

T0, var

 

; Занести длину массива в счетчик простого повторения

ADD

#-1, T0

MOV

T0, CSR

; Скопировать указатель на массив в AR5

MOV

AR0, AR5

; Инициализировать T1 числом 2^(-15)

MOV

#1, T1

; Выполнить CSR+1 раз запись и модификацию данных

RPT

CSR

MOV

T1, *AR5+

||SFTL

T1, #1

; Загрузить в AC0 данные из области памяти w

MOV

#w, AR0

MOV

dbl(*AR0+), AC1

MOV

dbl(*AR0+), AC0

MOV

AC1, mmap(AC0G)

; Прибавить к AC0 2

ADD

#2, AC0

Микропроцессорные устройства обработки сигналов

139

; Сохранить AC0 в глобальной переменной типа long long

MOV

#_d, AR1

SFTS

AC0, #-32, AC1

MOV

AC1, dbl(*AR1+)

MOV

AC0, dbl(*AR1+)

; Освобождение локальной памяти

AADD

#1, SP

; Восстановление регистров из стека

POP

T3, AR5

POP

mmap(ST2_55)

POP

mmap(ST1_55)

; Возврат из подпрограммы, AC0 – возвращаемое значение long

MOV

#0,

AC0

MOV

T1,

HI(AC0)

RET

 

 

Микропроцессорные устройства обработки сигналов

140

Приложение E

Командный файл компоновщика C5515.cmd

/* Параметры компоновки */

-c

 

/* Компоновка по правиплам C */

-stack

0x2000

/* Размер первого стека */

-sysstack

0x1000

/* Размер второго стека */

-heap

0x2000

/* Размер области динамической памяти */

-u _Reset

 

/* Загрузка вектора прерывания по сбросу */

/* Карта памяти

*/

 

 

 

 

MEMORY {

 

 

 

 

 

 

PAGE 0:

/* Встроенная

память программ и данных */

 

 

 

MMR

(RW):

origin

= 0x000000, length = 0x0000c0 /* Регистры

*/

DARAM

(RWIX):

origin

= 0x0000c0, length = 0x00ff40 /* ~64

кB

*/

SARAM0

(RWIX):

origin

= 0x010000, length = 0x010000 /*

64

кB

*/

SARAM1

(RWIX):

origin

= 0x020000, length = 0x020000 /* 128

кB

*/

SARAM2

(RWIX):

origin

= 0x040000, length = 0x00FE00 /*

64

кB

*/

VECS

(RWIX):

origin

= 0x04FE00, length = 0x000200 /* 512

B

*/

ROM

(RX):

origin

= 0xfE0000, length = 0x01FF00 /* 128

кB

*/

RESET

(RX):

origin

= 0xFFFF00, length = 0x000100 /* 256

B

*/

PAGE

1: /* Внешняя

память */

 

 

 

CS0

(RW):

origin

= 0x050000, length = 0x7B0000 /* ~8 MB SDRAM */

CS2

(RW):

origin

= 0x800000, length = 0x400000 /*

4

MB Async */

CS3

(RW):

origin

= 0xC00000, length = 0x200000

/*

2

MB Async */

CS4

(RW):

origin

= 0xE00000, length = 0x100000

/*

1

MB Async */

CS5

(RW):

origin

= 0xF00000, length = 0x0E0000 /* ~1 MB Async */

PAGE 2: /* Пространство ввода-вывода */

IOPORT (RWI) : origin = 0x000000, length = 0x020000

}

/* Размещение секций */

SECTIONS {

 

 

/* Секция кода */

.text

>>

SARAM1|SARAM2|SARAM0

.stack

>

DARAM

/* Первый стек */

.sysstack >

DARAM

/* Второй стек */

.data

>>

DARAM|SARAM0|SARAM1

/* Инициализированные данные */

.bss

>>

DARAM|SARAM0|SARAM1

/* Неинициализированные данные */

.const

>>

DARAM|SARAM0|SARAM1

/* Константы */

.sysmem

>

DARAM|SARAM0|SARAM1

/* Динамическая память */

.switch

>

SARAM2

/* Память оператора switch */

.cinit

>

SARAM2

/* Таблица инициализации данных*/

.pinit

>

SARAM2

/* Таблица функций эпилога */

.cio

>

SARAM2

/* Буферная память ввода-вывода*/

.args

>

SARAM2

/* Аргументы main() */

vectors

>

VECS

/* Векторы прерываний */

.ioport

>

IOPORT PAGE 2

/* Порты ввода-вывода */

.sdram

>

CS0 PAGE 1

/* Внешняя синхронная память */

.flash

>>

CS2|CS3|CS4|CS5 PAGE

1 /* Внешняя асинхронная память */

}

Микропроцессорные устройства обработки сигналов

141

Глоссарий

ADC – Analog-to-Digital Converter, аналого-цифровой преобразователь.

App-Spec – Application Specific, специфичный для приложений. Bridge – мост, устройство согласования двух интерфейсов. Bus – шина, магистраль.

Ceiling – округление к большему числу с заданной точностью, в частном случае – к большему целому.

Clock – тактовая частота, тактовое питание. Connectivity – подключение, соединение.

Core – ядро, центральная часть микропроцессора.

CPU – Central Processing Unit, центральное процессорное устройство, центральный процессор.

DAC – Digital-to-Analog Converter, цифро-аналоговый преобразователь. DARAM – Dual Access Random Access Memory, двухвходовая память со

случайным доступом.

Display – устройство для отображения данных.

DMA – Direct Memory Access, прямой доступ к памяти.

DSP – Digital Signal Processor, цифровой сигнальный процессор.

EEPROM – Electrically Erasable Programmable Read Only Memory,

электрически стираемое перепрограммируемое постоянное запоминающее устройство, флэш-память.

EHPI – Enhanced Host-Port Interface, усовершенствованный интерфейс для связи с другим процессором.

EMIF – External Memory Interface, интерфейс внешний памяти.

IFFT – Inverse Fast Fourier Transform, обратное быстрое преобразование Фурье.

Fix – округление к меньшему по модулю числу с заданной точностью, в частном случае – к целому числу;

FFT – Fast Fourier Transform, быстрое преобразование Фурье.

Floor – округление к меньшему числу с заданной точностью, в частном случае, к наименьшему целому.

GP– General Purpose, устройство общего назначения.

GPIO – General Purpose Input-Output, входы-выходы общего назначения.

Микропроцессорные устройства обработки сигналов

142

HWAFFT – Hardware Accelerator of Fast Fourier Transform, аппаратурный ускоритель быстрого преобразования Фурье.

I2C – Inter-Integrated Circuit, межмикросхемный интерфейс.

I2S – Integrated Inter-chip Sound, интегрированный межмикросхемный интерфейс для передачи звука.

INT – Interrupt, прерывание.

Integer – округление к большему по модулю числу с заданной точностью, в частном случае – к целому числу.

Interconnect – внутреннее соединение, межкомпонентное соединение. JTAG – Joint Test Action Group, специализированный аппаратурный

интерфейс для тестирования и отладки сложных дискретных устройств. LCD – Liquid crystal display, жидкокристаллический дисплей.

LDO – Low-Drop Out, досл. «низкое падение», источник стабилизированного питания с низким падением напряжения.

LSB – Least Significant Bit, менее значимый бит, бит с наименьшим весом. Master – главное (ведущее) устройство на интерфейсе.

McBSP – Multichannel Buffered Serial Ports, многоканальный буферизированный последовательный порт.

MMC/SD – Multi Media Card or Secure Digital, мультимедийная карта или защищенная цифровая карта памяти.

MMR – Memory Mapped Register, регистр, доступный для чтения-записи через адресное пространство памяти.

MSB – Most Significant Bit, самый значимый бит, бит с наибольшим весом. mSDRAM – mobile Synchronous Dynamic Random Access Memory,

мобильная синхронная динамическая память со случайным доступом. NAND Flash – Not-AND Flash, флэш-память на элементах И-НЕ. NOR Flash – Not-OR Flash, флэш-память на элементах ИЛИ-НЕ.

PBGA – Plastic Ball Grid Array, пластиковый корпус интегральных микросхем для поверхностного монтажа с контактами в виде шариков припоя.

Peripherals – периферийные устройства. Peripheral Bus – периферийная шина.

PLL – Phase-Locked Loop, фазовая автоподстройка частоты. RAM – Random Access Memory, память со случайным доступом,

ROM – Read Only Memory, память только для чтения, постоянное запоминающее устройство.

Микропроцессорные устройства обработки сигналов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]