Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Мысловский Э.В. Цифровые сигнальные процесссоры (2003)

Мысловский Э.В. Цифровые сигнальные процесссоры (2003), страница 9

PDF-файл Мысловский Э.В. Цифровые сигнальные процесссоры (2003), страница 9 Компьютерные методы и технологии автоматизации и управления (108592): Книга - 9 семестр (1 семестр магистратуры)Мысловский Э.В. Цифровые сигнальные процесссоры (2003): Компьютерные методы и технологии автоматизации и управления - PDF, страница 9 (108592) - Студ2021-07-29СтудИзба

Описание файла

PDF-файл из архива "Мысловский Э.В. Цифровые сигнальные процесссоры (2003)", который расположен в категории "". Всё это находится в предмете "компьютерные методы и технологии автоматизации и управления" из 9 семестр (1 семестр магистратуры), которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 9 страницы из PDF

Генерация этого файла не гарантирует, тем не менее, чтопрограмма и данные будут загружены в память; файл только перечисляет, что должнобыть представлено в памяти, чтобы программа запустилась корректно. Вы должныпредоставить данные, которыми память будет по-настоящему загружена. После того какредактор связей создаст файл образа памяти для вашей программы, существует дваспособа завершить инициализацию: 1) запрограммировать микросхему ППЗУ длябуферов, расположенных в ПЗУ. 2) записать в вашу программу код, копирующийинициализирующиеданныевбуферы,расположенныевОЗУ.Выможетеинициализировать буферы, расположенные в ПЗУ используя разделитель программ длязаписи в ППЗУ одним из следующих способов: создание файлов для программированияприборов ППЗУ для внешней памяти программ или данных, или создание файлов дляпрограммирования приборов ППЗУ для памяти начальной загрузки; переменные ибуферы во внутренней памяти программ будут инициализированы во время загрузки (дляпроцессоров ADSP-21xx с внутренней и загрузочной памятью).

Переменные и буферы,расположенные в памяти программ или данных ОЗУ должны быть инициализированывашей программой. Исключением является внутренняя память программ ОЗУ ADSP2101.ADSP- 2105,ADSP-21msp50.3TO пространство ОЗУ может быть инициализированопри загрузке (как описано выше). Три типа памяти должны быть инициализированы висходном коде:55• внешняя память программ ОЗУ• внешняя память данных ОЗУ• внутренняя память данных ОЗУЧтобы инициализировать буферы в этих областях памяти вы должны иметьданные, сохраненные в ПЗУ, и включить в вашу программу код, копирующий данные всоответствующую область памяти. Пример такой подпрограммы показан ниже:Пример: Копирование буфера sin_input в буфер sin table.VAR/PM/ROM sin_init[64];.VAR/DM/RAM sin_table[64];.INIT sin_init: <sin.dat>;{копировать инициализированный буфер, sin_init,из PM ROM в DM RAM}M0=1;M4=1;IO=^sin_table;I4=^sin_init;CNTR=%sin_table;DO sin_copy UNTIL CE;AXO=PM(I4,M4);sin_copy: DM(IO,MO)=AXO;3.6.4 Определение макроса (.MACRO)Макрос создается с помощью ассемблерной директивы .MACRO Макросиспользуется для повторения часто используемых последовательностей инструкций ввашемисходномкоде.Передачейаргументовмакросуреализуетсяподобиеподпрограммы, которая может быть использована в различных программах.Макро вложения ограничены только размером свободной оперативной памяти.Вложенные макросы должны быть объявлены следующим образом: внутренний макрос56первый,..., внешний макрос последний.

Все константы, используемые в макросах, должныбыть объявлены перед объявлением макросов.Макрос определяется двумя директивами:.MACRO имя макроса (, аргумент,...);….ENDMACRO;Каждый оператор внутри макроса может быть инструкцией, директивой илимакро включением. Директива .ENDMACRO отмечает конец макроопределения. Макросвызывается по своему имени. Чтобы выполнить макрос с именем quickloop используйтеследующую команду в вашем исходном коде:quickloop; вызов макросаМакровызов не должно содержать дополнительных операторов (т.е.

инструкций,директив препроцессора или других макровключений) на той же строке исходного кода.Аргументы макроса принимают форму:%n n = О, 1, 2, .... 9Следующий пример определяет макрос с тремя аргументами:Пример: Пример определения макроса с тремя аргументами.MACRO memory_transf(%0, %1, %2);В коде макроса, аргументы маркируются служебными символами %1,%2,%3,ит.д. При вызове макроса служебные символы замещаются величинами аргументов,переданныхвмакрос.Должнобытьпереданоправильноечислоаргументов.Передаваемые аргументы могут быть одними из:АргументИсключенияконстанты или выраженияНетсимволывсе, кроме MACRO,ENDMACRO, CONST, INCLUDE^символ"^%n"не разрешено%буфер"%%n"не разрешено57Операторы ^ и % не могут быть использованы с аргументами, замещающимислужебные символы в макроопределении. Тем не менее, аргументы, переданные в макрос,могут использовать эти операторы.

Например:Пример: Вызов макросаreed_data (^input),Пример: Макрос копирующий содержимое одного буфера в другой{MACRO объявление}.MACRO memory_transf (%0, %1, %2, %3, %4) { допускает 5 аргументов }.LOCAL transf;14=%0; {устанавливает 14 как адрес источника}15=%1; {устанавливает 15 как адрес приемника}М4=1; {устанавливает указатель на инкремент 1}CNTR=%2; {устанавливает длину буфера}DO transf UNTIL СЕ; { перенос данных }SI=%3(I4, М4) {переносит из типа %3 памяти}transf:%4(I5, M4)=SI; {переносит в тип %4 памяти}.ENDMACRO{MACRO вызов}Memory_transf (^coeff_table, ^buffer, buff_length, PM,DM):3.6.5 Локальная метка в макросах (.LOCAL)Директивой .LOCAL задают программные метки, используемые в макросе.Директива .LOCAL указывает ассемблеру создавать уникальную версию метки прикаждом включении макроса.

Это предотвращает ошибку дублирования меток в случае,когда макрос вызывается несколько раз в одном программном модуле. Директива .LOCALимеет формат:58.LOCAL метка_макроса,…;Ассемблер создает уникальные версии метки макроса добавляя к ней номер; этоможет посмотреть в программе моделирования или в файле листинга .LST разрешенораскрытие макросов.3.6.6 Размещение программ и данных в сегментах памятиДля инициализации данных, сохраненных в загрузочной памяти, загрузчикдолжен выполнить операцию копирования из внутренней памяти программ, послеокончания загрузки.Директива .SECTION подобна параметру /SEG директив .MODULE и .VAR иимеет следующий формат:.SECTION/сегмент имя_сегмента_рmДиректива .SECTION/РМ имя_сегмента_рm указывает редактору связей нанеобходимость разместить все программы и данные модуля в сегменте имя_сегмента_рmпамяти программ.

Директива .SECTION/DATA имя_сегмента_dm указывает редакторусвязей на необходимость разместить все структуры данных модуля в сегментеимя_сегмента_dm, памяти данных. Сегменты имя_сегмента_pm и имя_сегмента_dmдолжны быть предварительно определены в файле описания архитектуры .LDFсистемного конфигуратора. Обычно, чтобы расположить все программы и данныеисходного модуля в определенном системным конфигуратором сегменте памяти, выдолжны повторить параметр /SEG в директиве .MODULE и всех директивах .VAR внутримодуля. Директива .SECTION используются для исключения многократного повторенияпараметров /SEG.Ниже приводится пример, в котором модуль располагают в памяти данных всегмент с именем Audio_SamplesПример: Пример описания секции с именем Audio_Samples.SECTION/DM Audio_Samples;.MODULE/RAM Sample_Input;.VAR/DM/RAM/CIRC sample_buffer[I5].VAR/DM/RAM other_buffer[5];59.VAR/DM/RAM another_buffer[5];.VAR/DM/RAM variablel;программа SAMPLE_INPUT....ENDMOD;Программа для подпрограммы SAMPLE_INPUT будет размещения в памятипрограмм.3.6.7 Глобальные структуры данныхДиректива .GLOBAL позволяет переменным, буферам и портам быть доступнымиизвне модуля, в котором они объявлены.

Для доступа к одной из этих структур из другихмодулей вы должны объявить ее с директивой .GLOBAL Директива .GLOBAL имеетформат:.GLOBAL внутренний символ,…;Пример: Объявление глобального буфера coeffs.VAR/PM/RAM coeffs[10];.GLOBAL coeffs; {делает буфер видимым снаружи модуля}С тех пор как символ сделан глобальным, другие модули могут обращаться кнему, идентифицируя символ как внешний.3.6.8 Глобальные программные меткиДиректива .ENTRY позволяет обращаться к программным меткам в другихмодулях.Этопозволяетиспользоватьметкудлявызовамежмодульных переходов.Директива .ENTRY имеет формат:.ENTRY программная_метка,...;Пример: Объявление глобальной программой метки.ENTRY fir_start; {делает метку видимой снаружи модуля}60подпрограммыилиС тех пор,как метка объявлена директивой .ENTRY другие модули могутобращаться к ней, идентифицируя метку как внешнюю.3.6.9 Внешние символыДиректива.EXTERNAL позволяет программному модулю обращаться кглобальным структурам данных (переменным, буферам и портам)и программным меткам,объявленным в других модулях.Символ должен быть определен до этого с помощью директив .GLOBAL или.ENTRY в тех модулях, где он впервые объявлен.

Другие модули должны использоватьдирективу .EXTERN'AL для открытия доступа к внешним символам. Директива имеетформат:.EXTERNAL внешний символ,...;Пример: Объявление внешнего символа.EXTERNAL flr_start; {метка в другом модуле}3.7 Редактор связейРедактор связей (компоновщик) ADSP-21xx генерирует исполняемую программупутем связывания отдельно ассемблированных модулей.

Основным выходом редакторасвязей является файл отображения памяти с расширением .DXE. Этот файл загружают впрограмму моделирования для отладки. После того, как программа полностью отлажена,применяют программу разбиения памяти для программатора ППЗУ. Как было описано впредыдущей главе, ассемблер обрабатывает каждого модуль исходного кода и создаетобъектный файл .OBJ ,файл кода .CDE и файл инициализации .INT .

Объектный файлсодержит информацию по размещению в памяти и символьную информацию, в то времякак файл кода содержит коды операций ADSP-21хх с помеченными неразрешеннымисимволами. Файл инициализации содержит информацию, относящуюся к переменнымданным и буферам. Инициализация данных должна обеспечиваться файлом данных,указанным с помощью директивы ассемблера .INIT. Редактор связей читает данные изэтого файла и объединяет их в файл .DXE. Изменения в инициализируемых данныхпотребует повторного вызова редактора связей.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5259
Авторов
на СтудИзбе
420
Средний доход
с одного платного файла
Обучение Подробнее