MyBooks.club
Все категории

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++

На сайте mybooks.club вы можете бесплатно читать книги онлайн без регистрации, включая Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++. Жанр: Справочники издательство -,. Доступна полная версия книги с кратким содержанием для предварительного ознакомления, аннотацией (предисловием), рецензиями от других читателей и их экспертным мнением.
Кроме того, на сайте mybooks.club вы найдете множество новинок, которые стоит прочитать.

Название:
Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
3 октябрь 2019
Количество просмотров:
230
Читать онлайн
Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ краткое содержание

Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - описание и краткое содержание, автор Олег Вальпа, читайте бесплатно онлайн на сайте электронной библиотеки mybooks.club
Книга предназначена для самостоятельного изучения и применения на практике цифровых сигнальных процессоров DSP (Digital Signal Processor). На примере популярной микросхемы ADSP2181 фирмы Analog Devices рассмотрены устройство, архитектура и технические характеристики цифрового сигнального процессора. Приведено описание вычислительных блоков процессора, средств разработки программного обеспечения, языка программирования и системы команд процессора. Разработанные автором книги практические схемы с применением сигнального процессора, исходные тексты программ и схемы вспомогательных устройств, полезных при отладке программ для процессора помогут получить необходимые практические навыки, с помощью которых читатель легко освоит другие типы сигнальных процессоров. На прилагаемом к книге диске находятся исходные тексты и исполняемые файлы программ, а так же некоторые полезные утилиты и средства разработки программного обеспечения для сигнальных процессоров.Для специалистов в области разработки цифровой электронной аппаратуры, будет полезна студентам и аспирантам.

Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ читать онлайн бесплатно

Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - читать книгу онлайн бесплатно, автор Олег Вальпа

1024, -55, 0

Пример записи арифметического выражения:

X = (29+129)-(128-48)/3

Пример логического выражения:

Y = 0x55&0x0F

Пример записи директивы:

.CONST N=1024, LEN_BUF=N/2; {Число точек отсчета = 1024, длина буфера = 512}

Директива VAR

Директива VAR объявляет переменные и буферы переменных. Буфер переменных представляет собой набор ячеек памяти, расположенных упорядоченно друг за другом по смежным (соседним) адресам. Буфер может быть многомерным и одномерным, т.е. состоящим из нескольких или из одной переменной. Буфер должен быть объявлен до использования в программе. Буферы удобны для организации приема и передачи блочных данных и часто используются в программах.

Директива VAR имеет следующую форму записи:

.VAR/параметр1/параметр2 ... имя_буфера[длина],...;

С директивой могут использоваться следующие параметры:

PM или DM — тип памяти для размещения буфера;

RAM или ROM — тип памяти процессора;

ABS=адрес — абсолютный адрес (нельзя использовать вместе с директивой STATIC);

SEG=сегмент — размещение буфера в сегменте, объявленном системным конфигуратором;

CIRC — кольцевой буфер;

STATIC — предотвращает перезапись буфера во время загрузки начальной страницы.

Одна директива VAR позволяет объявить в одной строке длиной до 200 символов несколько буферов, разделенных запятыми.

Буферы могут быть линейными и кольцевыми. Буферы могут быть произвольной длины от единицы до размера, не превышающего объем памяти процессора. Линейный буфер размещается в памяти с любого адреса. Кольцевой буфер может быть размещен в памяти с некоторыми ограничениями, связанными с аппаратными особенностями памяти процессоров. Так, кольцевой буфер должен стартовать с базового адреса, который кратен 2 в степени n, где n — количество бит требуемых для представления длины буфера в двоичном виде. Это необходимо учитывать при создании кольцевых буферов с параметром ABS.

При многочисленном объявлении линейных буферов в одной строке редактор связей размещает их в смежных областях памяти. Если при таком объявлении используется параметр CIRC, то создается единственный кольцевой буфер, а остальные объявленные в этой строке буферы будут линейными.

Буферы могут быть размещены как в памяти программ PM, так и в памяти данных DM, по умолчанию. Тип памяти по умолчанию устанавливается в RAM для памяти DM и PM.

Параметр ABS размещает буфер с указанного стартового адреса, делая его неперемещаемым.

Параметр SEG размещает буфер в указанном сегменте памяти, который был объявлен в файле системного конфигуратора.

Параметр CIRC определяет кольцевой буфер. Буфер будет организован как линейный, если не применен атрибут CIRC.

Параметр STATIC предотвращает перезапись буфера, когда загружается страница начальной загрузки.

Пример объявления буфера:

.VAR/PM/RAM/SEG=segdata buffer[10];

Здесь линейный буфер объявлен в памяти программ RAM, который перемещаем в пределах сегмента с именем segdata. Буфер с именем buffer состоит из 10 ячеек в памяти программ. Длина буфера указывается в квадратных скобках.

Для объявления одномерных буферов, т.е. простых переменных, применяется директива VAR без указания длины буфера. Например:

.VAR/DM/RAM/ABS=0x000C xdata;

Данная директива объявляет однословную переменную с именем xdata в памяти данных RAM по шестнадцатеричному адресу 0x000C.

Ниже приведен пример объявления автоматически перемещаемого кольцевого буфера с именем buffer_c, длина которого определяется величиной константы size, объявленной директивой CONST.

.CONST size = 15;

.VAR/DM/CIRC buffer_c[size];

Ниже приведены примеры, позволяющие понять, как можно размещать циклические буферы в памяти. Следующий оператор объявляет кольцевой буфер с именем abuf из шести ячеек памяти:

.VAR/CIRC abuf[6];

Поскольку ближайшим числом больше шести и кратным двум является число 8, то базовый (стартовый) адрес буфера должен быть кратен 8. Три младших значимых разряда (МЗР) этого адреса будут равны нулю. В табл. 11.1 показано размещение этого буфера в памяти.


Таблица 11.1 Размещение одного циклического буфера в памяти сигнального процессора

Имя буфера Элемент буфера Двоичный адрес … abuf abuf[0] XXXXXXXXXX0000 abuf[1] XXXXXXXXXX0001 abuf[2] XXXXXXXXXX0010 abuf[3] XXXXXXXXXX0011 abuf[4] XXXXXXXXXX0100 abuf[5] XXXXXXXXXX0101 XXXXXXXXXX0110 …

Если в одной строке объявлены несколько буферов с параметром CIRC, то будет создан один кольцевой буфер, вмещающий в себя все буферы. Первый из этих буферов будет кольцевым, а отдельные буферы будут простыми линейными буферами. Например, следующая директива создает один кольцевой буфер abuf и два линейных буфера с именами bbuf и cbuf.

.VAR/CIRC abuf[6], bbuf[3], cbuf[5];

Для размещения всех этих буферов в памяти процессора потребуется 6+3+5=14 ячеек памяти. Поскольку первым в директиве объявлен буфер abuf, то он будет кольцевым. Ближайшим числом больше 14 и кратным двум является число 16. Поэтому базовый адрес буфера abuf должен быть кратен 16 (четыре младших значащих разряда будут равны нулю). Базовый адрес буфера bbuf будет следовать сразу за адресом последнего элемента буфера abuf. Аналогично будет размещен и буфер cbuf. Размещение всех этих буферов в памяти процессора показано в табл. 11.2.


Таблица 11.2 Размещение трех буферов в памяти процессора

Имя буфера Элемент буфера Двоичный адрес … abuf abuf[0] XXXXXXXXXX0000 abuf[1] XXXXXXXXXX0001 abuf[2] XXXXXXXXXX0010 abuf[3] XXXXXXXXXX0011 abuf[4] XXXXXXXXXX0100 abuf[5] XXXXXXXXXX0101 bbuf bbuf[0] XXXXXXXXXX0110 bbuf[1] XXXXXXXXXX0111 bbuf[2] XXXXXXXXXX1000 cbuf cbuf[0] XXXXXXXXXX1001 cbuf[1] XXXXXXXXXX1010 cbuf[2] XXXXXXXXXX1011 cbuf[3] XXXXXXXXXX1100 XXXXXXXXXX1101 …

Следующий пример показывает использование трех директив для объявления трех различных кольцевых буферов:

.VAR/CIRC abuf[6];

.VAR/CIRC bbuf[3];

.VAR/CIRC cbuf[5];

Поскольку буферы объявлены отдельно, все они будут кольцевыми и не будут объединены. Правила размещения для каждого из этих буферов такие же, как в рассмотренном выше примере для одиночного буфера abuf. Размещение этих буферов в памяти процессора показано в табл. 11.3.


Таблица 11.3 Размещение трех кольцевых буферов в памяти процессора

Имя буфера Элемент буфера Двоичный адрес … abuf abuf[0] XXXXXXXXX00000 abuf[1] XXXXXXXXX00001 abuf[2] XXXXXXXXX00010 abuf[3] XXXXXXXXX00011 abuf[4] XXXXXXXXX00100 abuf[5] XXXXXXXXX00101 … bbuf bbuf[0] XXXXXXXXX01000 bbuf[1] XXXXXXXXX01001 bbuf[2] XXXXXXXXX01010 … cbuf cbuf[0] XXXXXXXXX10000 cbuf[1] XXXXXXXXX10001 cbuf[2] XXXXXXXXX10010 cbuf[3] XXXXXXXXX10011 …

Чтобы получить доступ к буферу abuf из программы, необходимо инициализировать индексные регистры DAG и регистры длины буфера следующими инструкциями:


Олег Вальпа читать все книги автора по порядку

Олег Вальпа - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки mybooks.club.


Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ отзывы

Отзывы читателей о книге Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++, автор: Олег Вальпа. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.