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

Тут можно читать онлайн Олег Вальпа - Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++ - бесплатно полную версию книги (целиком) без сокращений. Жанр: Справочники, издательство Горячая линия — Телеком, год 2007. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Разработка устройств на основе цифровых сигнальных процессоров фирмы Analog Devices с использованием Visual DSP++
  • Автор:
  • Жанр:
  • Издательство:
    Горячая линия — Телеком
  • Год:
    2007
  • Город:
    Москва
  • ISBN:
    5-93517-342-5
  • Рейтинг:
    3.67/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

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

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

Для специалистов в области разработки цифровой электронной аппаратуры, будет полезна студентам и аспирантам.

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

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

Интервал:

Закладка:

Сделать

.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 и регистры длины буфера следующими инструкциями:

I0 = ^abuf; {Присвоить индексному регистру I0 базовый адрес буфера abuf}

L0 = %abuf; {Присвоить L0 длину буфера abuf}

M0 = 1; {Присвоить модификатору M0 значение наращивания

указателя адреса буфера abuf}

Далее в программе можно читать данные из буфера с помощью инструкции AR=DM(I0, L0) или записывать данные в буфер инструкцией DM(I0, L0)=AR. Естественно, вместо регистра AR могут применяться и некоторые другие регистры процессора. При размещении этих инструкций в цикле каждое обращение к буферу будет автоматически увеличивать индексный регистр адреса I0 на величину M0. При достижении регистром I0 величины, равной L0, индексный регистр I0 вновь загрузится базовым адресом буфера. Таким образом, обращения к буферу будут кольцевыми. Для линейных буферов регистр длины буфера должен быть установлен в ноль.

Директивы PMSEG и DMSEG

Данные директивы предназначены для размещения программ и данных в сегментах памяти. Директива PMSEG указывает редактору связей на необходимость разместить все программы и данные модуля в определенном сегменте памяти программ. Директива DMSEG указывает редактору связей на необходимость разместить все структуры данных модуля в определенном сегменте памяти данных. Сегменты должны быть предварительно определены в файле описания архитектуры системного конфигуратора. Директивы PMSEG и DMSEG подобно параметру SEG директив MODULE и VAR имеют следующий формат:

.PMSEG имя_сегмента_pm;

.DMSEG имя_сегмента_dm;

Обычно, чтобы расположить все программы и данные исходного модуля в определенном системным конфигуратором сегменте памяти, необходимо повторить параметр SEG в директиве MODULE и всех директивах VAR внутри модуля. Директивы PMSEG и DMSEG используются для исключения многократного повторения параметров SEG. Директивы PMSEG и DMSEG должны быть размещены в исходном файле программного модуля перед директивой MODULE. Ниже приводится пример, в котором модуль prog1, некоторые буферы и переменную var1 располагают в памяти данных в сегменте с именем seg1:

.DMSEG seg1;

.MODULE/RAM prog1;

.VAR/DM/RAМ/СIRС buf1[15];

.VAR/DM/RAM buf2[5];

.VAR/DM/RAM buf3[5];

.VAR/DM/RAM var1;

...

.ENDMOD;

Директива INIT

Директива INIT используется для инициализации переменных и буферов в ПЗУ. Редактор связей помещает данные инициализации в файл образа памяти, который затем используется разделителем программ (splitter) при подготовке данных для записи в ПЗУ. Разделитель трансформирует части этого файла в формат, совместимый с промышленным стандартом программатора ПЗУ.

Инициализирующие значения могут быть перечислены в директиве или указаны во внешнем файле. Директива INIT может иметь одну из следующих форм:

.INIT имя_буфера: значение1, значение2,...;

.INIT имя_буфера: ^другой_буфер или %другой_буфер,...;

.INIT имя_буфера: <���имя_файла>;

Операторы ^ и % используются для инициализации буфера или переменной базовым адресом, или длиной, или даже другими буферами. Любые комбинации констант, указателей адресов буфера и величин длины буфера могут быть заданы через запятую. Примеры:

.INIT x: 0x3FFF;

Данный пример инициализирует переменную x шестнадцатеричной константой 0x3FFF.

.INIT buf: 9,0,3,5,7;

Эта директива инициализирует буфер buf списком констант.

.INIT ab: ^buf;

Здесь переменная ab инициализируется указателем стартового адреса буфера buf.

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

.INIT buf[2]: 3,5,7;

Так, инициализирующие величины будут размещены, начиная с элемента buf[2]. Здесь инициализируются второй, третий и четвертый элементы буфера buf величинами 3, 5 и 7 соответственно.

Третья форма директивы INIT указывает имя файла, который содержит инициализирующие величины. Ассемблер устанавливает указатель на этот файл, и данные присоединяются при запуске редактора связей. Следующий пример заставляет редактор связей инициализировать буфер sin содержимым файла sinus.dat:

.INIT sin: ;

Если файл с данными находится в директории с программой, то необходимо указать в скобках только имя этого файла. Если файл находится в другом каталоге, необходимо указать путь к этому каталогу и имя файла. Например, если файл init.dat для буфера с именем buff размещен в директории C:\ADSP2181\PROG1\, тогда директива INIT должна быть применена следующим образом:

.INIT buff:

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

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

Переменные данных и буферов могут быть инициализированы с помощью семиразрядного ASCII кода. Следующий пример инициализирует один четырехразмерный буфер input кодами ASCII для букв A, E, F, Z. ASCII коды размещаются в семи младших разрядах 16-разрядной памяти данных или 24-разрядной памяти программ. Символы необходимо заключать в апострофы.

.INIT input: 'AEFZ'; {Инициализировать буфер символами ASCII}

Специальный синтаксис директивы INIT24, позволяет сохранять 24-х разрядные данные в памяти программ. Это дает возможность получить доступ к младшим 8-и разрядам каждого 24-х разрядного слова памяти программ при инициализации буферов данных или переменных в исходной программе.

Например, эта директива позволяет вычислить 16-разрядный адрес для переменной var:

.INIT var: ^buff + 17;

А следующая директива вычисляет 24-разрядный адрес для этой же переменной:

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


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

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




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


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


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x