Скачать 1.7 Mb.
|
Конфигурация ядра ОС DSP-BIOS Система DSP/BIOS - это масштабируемое ядро операционной системы. Она предназначена для использования в прикладных программах, которые требуют планирование и синхронизацию работы программных процедур в реальном масштабе времени, передачи данных между хостом, целевым объектом и инструментальными средствами отладки, работающими в реальном масштабе времени. Система DSP/BIOS предоставляет многопотоковый режим с приоритетным прерыванием, обеспечивает аппаратное абстрагирование и анализ работы программ в реальном времени. Многие прикладные системы DSP реального масштаба времени должны выполнять определенное число независимых функций в один и тот же период времени, зачастую в ответ на внешние события, такие, как доступность данных или наличие сигнала управления. Очень важно определить - какие функции исполняются, а также когда они выполняются. Данные функции вызываются подпроцессами (задачами, или нитями). В различных системах поподпроцессы понимаются как в широком, так и в узком смысле слова. В системе DSP/BIOS данное понятие понимается в широком смысле слова, когда подпроцесс включает в себя любой независимый поток команд, выполняемый цифровым процессором обработки сигналов. Подпроцесс – это одна контрольная точка, которая может содержать стандартную программу, сервисную программу обработки прерываний (interrupt service routine (ISR)) или одно обращение к функциям. Система DSP/BIOS позволяет используемым прикладным программам структурироваться в виде совокупности подпроцессов, каждый из которых выполняет модульную функцию. Только один процессор выполняет обработку многопотоковых программ, позволяя при этом подпроцессам с высоким приоритетом прерывать выполнение подпроцессов с низким приоритетом, а также позволяет выполнять любой вид взаимодействия между подпроцессами, включая блокировку, обмен данными и синхронизацию. Система DSP/BIOS предоставляет поддержку нескольких типов программных подпроцессов с различными приоритетами. Каждый тип подпроцесса имеет различные характеристики выполнения и приоритетных прерываний обслуживания. Существуют следующие типы подпроцессов (начиная с подпроцессов с высоким приоритетом и заканчивая подпроцессами с низким приоритетом). Подпроцесс аппаратных прерываний (HWI). Инициируется в ответ на внешние асинхронные события, которые возникают в среде окружения DSP. Функция подпроцесса аппаратного прерывания (также называемая сервисной программой обработки прерываний или ISR) выполняется после того, как аппаратное прерывание инициируется для того, чтобы выполнить критическую задачу, которая подходит к завершению. Функции HWI – это подпроцессы с высоким приоритетом в прикладных программах системы DSP/BIOS. Для цифровых процессоров обработки сигналов, работающих при частоте 200 МГц, подпроцессы аппаратных прерываний должны применяться для тех задач прикладных программ, которые должны выполняться при частоте около 200 кГц, и тех, которые должны завершаться в предельный срок от 2 до 100 микросекунд. Для того чтобы обеспечить более эффективную и быструю работу цифровых процессоров обработки сигналов, подпроцессы аппаратных прерываний должны применяться для той задачи, которая выполняется при пропорционально высокой частоте и имеет пропорционально короткий срок выполнения. Подпроцесс программных прерываний (SWI). Следует после программных прерываний (HWI). В то время как подпроцессы аппаратных прерываний инициируются аппаратными прерываниями, программные прерывания инициируются при вызове функций SWI из программы. Программные прерывания предоставляют дополнительные уровни приоритета между аппаратными прерываниями и подпроцессами TSK. Потоки программных прерываний выполняют обработку подпроцессов, подлежащих временному ограничению, которое препятствует выполнению подпроцессов подобно задачам. Однако данные сроки выполнения менее критические, по сравнению со сроками выполнения сервисных программ обработки аппаратных прерываний. Выполнение подпроцессов программных прерываний, как и подпроцессов аппаратных прерываний, всегда производится до конца. Программные прерывания должны использоваться для планирования появления событий, чей предельный срок завершения составляет 100 микросекунд или более. Подпроцессы SWI позволяют подпроцессам HWI задерживать менее критическую обработку низко приоритетных подпроцессов, уменьшая до предела время, которое ЦП тратит на сервисную программу обработки прерываний, где другие подпроцессы аппаратного прерывания могут быть заблокированы. Подпроцесс задач (TSK). Подпроцессы задач имеют более высокий приоритет, чем фоновые подпроцессы, и более низкий приоритет, чем подпроцессы программного прерывания. Подпроцессы задач отличаются от подпроцессов программных прерываний тем, что они могут находиться в состоянии ожидания (блокировки) во время выполнения до тех пор, пока необходимые ресурсы не будут доступны. Система DSP/BIOS предоставляет определенное количество структур, которые могут использоваться для скрытой синхронизации и коммуникации подпроцессов. Данные структуры включают в себя список очередности, семафоры и почтовые ящики (место в памяти, где организуется очередь сообщений между процессами). Фоновый подпроцесс. Выполняет цикл незанятости (idle loop (IDL)) с низким приоритетом в программных приложениях системы DSP/BIOS. После того как происходит возврат main функции, приложение DSP/BIOS производит вызов стандартной сервисной программы запуска для каждого модуля DSP/BIOS, а затем входит в режим цикла незанятости. Цикл незанятости является длительным циклом, который вызывает все функции для объектов IDL. Каждая функция должна ожидать поступления всех остальных, для того чтобы закончить выполнение до того, как буден произведен следующий вызов сервисной программы запуска. Цикл незанятости выполняется продолжительное время, за исключением того момента, когда данный цикл прерывается при выполнении более высокоприоритетных подпроцессов. Только те функции, у которых нет крайних сроков выполнения, должны выполняться в режиме незанятости. Существуют еще несколько видов функций, которые могут быть реализованы в программе DSP/BIOS. Они выполняются в контексте одного из видов подпроцессов, перечисленных выше. Функции синхронизации (CLK). Запускаются при частоте прерываний, выполняющихся по встроенному таймеру. Данные функции запускаются аппаратными прерываниями по умолчанию и выполняются в качестве функций HWI. Периодические функции (PRD). Выполняются, основываясь на любом из прерываний, выполняющихся по встроенному таймеру, или на любом другом событии. Периодические функции – это особый тип программных прерываний. Функции уведомления. Выполняются, когда используются pipe-каналы (PIP) или канал хоста (HST) для передачи данных. Данные функции запускаются, когда выполняется считывание или запись фрейма данных, для того чтобы выполнить уведомление считывающего или записывающего устройства. Данные функции выполняются как часть контекста функции, которая называется PIP_alloc, PIP_get, PIP_free или PIP_put. Выбор типа и уровня приоритета для каждого подпроцесса в программном приложении имеет влияние на то, будет ли подпроцесс выполнен по расписанию и в соответствующем порядке. Статическая конфигурация системы DSP/BIOS облегчает смену одного подпроцесса на другой. Здесь представлены несколько правил, по которым можно определить, какой тип объекта использовать для каждого подпроцесса задач, выполняемого программой: Подпроцессы SWI или TSK в сравнении с подпроцессом HWI. Подпроцессы SWI и TSK выполняют только критическую обработку в сервисных программах обработки аппаратных прерываний. Подпроцессы HWI должны рассматриваться в качестве подпроцессов обработки аппаратных прерываний с предельным сроком выполнения до 5 микросекунд, особенно в тех случаях, когда записанные данные могут налагаться при выполнении повторной записи, если прерывание не выполнено в срок. Программные прерывания или задачи должны использоваться для событий с более длительным сроком окончания их выполнения, т.е. около 100 микросекунд или более. Функции HWI должны направлять программные прерывания или задачи, чтобы выполнить низкоприоритетную обработку. Использование подпроцессов с низким приоритетом снижает продолжительность блокировки прерываний (т.е. задержку обработки прерывания), предоставляя тем самым появление других аппаратных прерываний. Подпроцесс SWI в сравнении с TSK. Использовать подпроцесс программных прерываний можно, если функции имеют сравнительно простую взаимосвязь и требования к совместному использованию данных. Использование подпроцесса задач возможно, если требования более жесткие. В то время как высокоприоритетные подпроцессы занимают линию вне очереди и откладывают низкоприоритетные подпроцессы, подпроцессы задач могут находиться в состоянии ожидания появления другого события, т.е. доступности ресурса. К тому же подпроцессы задач имеют намного больше дополнительных возможностей, чем подпроцессы SWI, применяя совместно используемые данные. Все входные данные, которые необходимы для функций подпроцесса программных прерываний, должны считываться, когда программа выполняет отправку SWI на исполнение. Структура почтового ящика объекта SWI предоставляет метод определения доступности ресурса. Подпроцессы SWI обладают более эффективной функцией запоминания, так как они выполняются из одного стека. IDL. Создает фоновые функции для выполнения некритических задач обслуживания, когда нет необходимости в выполнении других процессов. Функции IDL обычно не имеют предельных сроков их выполнения. Вместо этого, они выполняются всякий раз, когда есть незанятое процессором время. CLK. Функции CLK можно использовать тогда, когда необходимо, чтобы функция была запущена непосредственно после прерывания по таймеру. Данные функции выполняются так же, как и функции HWI, и должны занимать минимальное время на обработку данных. Объект CLK, заданный по умолчанию, PRD_clock, вызывает установку флага для периодических функций. Можно также создать дополнительные объекты CLK, чтобы выполнение функции происходило при той же скорости. Тем не менее необходимо уменьшить период времени, требующийся для выполнения всех функций CLK, так как они выполняются так же как и функции HWI. PRD. Функции PRD можно использовать тогда, когда существует необходимость в исполнении функции со скоростью, кратной значению низкого разрешения по встроенному таймеру, или со скоростью выполнения любого другого события (такого, как внешнее прерывание). Данные функции выполняются также как и функции SWI. PRD в сравнении с SWI. Все функции PRD выполняются с таким же приоритетом, как и функции SWI; таким образом, одна функция PRD не может откладывать другую и занимать линию. Тем не менее функции PRD могут отправлять низкоприоритетные программные прерывания для продления времени работы сервисных программ обработки данных. Это обеспечивает то, что программное прерывание, PRD_swi, может откладывать эти сервисные программы, когда происходит следующий системный такт и PRD_swi заново отправляется. Для получения более полной информации смотрите файл spru423.pdf «TMS320DSP/BIOS Руководство пользователя». Система DSP/BIOS поддерживает повторяющиеся циклы разработки программы. Можно создать основную структуру для прикладной программы и проверить её с помощью загрузки смоделированной обработки данных перед тем, как активизируются алгоритмы системы DSP. Можно легко изменить приоритеты и типы подпроцессов программы, которые выполняют различные функции. Выборочный цикл разработки системы DSP/BIOS включает в себя следующие этапы, хотя можно повторить любой этап или совокупность этапов разработки: 1) Конфигурирование статических объектов для использования в программе. Это можно сделать, используя конфигурационное инструментальное средство системы DSP/BIOS, язык сценариев Tconf или комбинацию обоих методов. 2) Сохранение файла конфигурации в конфигурационном инструментальном средстве системы DSP/BIOS. При этом создаются файлы, которые будут включены во время компилирования и компоновки программы. 3) Написание структуры программы. Можно использовать языки программирования C, C++ и язык ассемблера или комбинацию языков. 4) Добавление файлов к данной программе, а также компилирование и компоновка программы при использовании CodeComposerStudio. 5) Тестирование характеристик программы при использовании моделирующего устройства или аппаратного оборудования в начальной конфигурации, а также инструментов анализа системы DSP/BIOS. Можно отслеживать регистрацию информации и трассировку, статистические объекты, синхронизацию, программные прерывания и так далее. 6) Повторение этапов с 1 по 5 до тех пор, пока программа не будет работать соответствующим образом. Можно добавить функциональные возможности и сделать изменения в основной структуре программы. 7) Изменение конфигурации для поддержки платы и проверки работы программы на данной плате, когда разрабатываемые аппаратные средства готовы к работе. Ниже представлен цикл разработки, который позволяет задействовать основной минимум средств DSP|BIOS, необходимых при создании приложений для систем управления электродвигателями и им аналогичных. Внимание! Перед выполнением необходимо предварительно убедиться, что в системе установлен драйвер платы eZdsp2812 (или ему подобный), а также установить в настройках среды версию DSP|BIOS как 4.90 (в отличии от версии 5.20 здесь вместо tcf-файлов конфигурации ядра операционной системы поддерживаются cdb-файлы). Для этого в меню Help вызвать About…, в появившемся окне нажать кнопку Component Manager, в появившемся окне Component Manager установить нужную версию (как показано на рисунке): Рис.13
DSP281x_SysCtrl.h DSP281x_DevEmu.h DSP281x_Xintf.h DSP281x_CpuTimers.h DSP281x_PieCtrl.h DSP281x_PieVect.h DSP281x_Spi.h DSP281x_Sci.h DSP281x_Mcbsp.h DSP281x_ECan.h DSP281x_Gpio.h DSP281x_Ev.h DSP281x_Adc.h DSP281x_XIntrupt.h DSP281x_Device.h
#include "..\include\DSP281x_Device.h"
void Sys_init(void) { EALLOW; SysCtrlRegs.HISPCP.all = 0x0001; SysCtrlRegs.LOSPCP.all = 0x0002; SysCtrlRegs.PCLKCR.bit.EVAENCLK=1; SysCtrlRegs.PCLKCR.bit.EVBENCLK=1; SysCtrlRegs.PCLKCR.bit.SCIAENCLK=1; SysCtrlRegs.PCLKCR.bit.SCIBENCLK=1; SysCtrlRegs.PCLKCR.bit.MCBSPENCLK=1; SysCtrlRegs.PCLKCR.bit.SPIENCLK=1; SysCtrlRegs.PCLKCR.bit.ECANENCLK=1; SysCtrlRegs.PCLKCR.bit.ADCENCLK=1; EDIS; }
#include "..\include\DSP281x_Device.h" #include void main() { } |
Учебно-методическое пособие Рекомендовано методической комиссией... Методы молекулярной диагностики: Учебно-методическое пособие. Авторы: А. Д. Перенков, Д. В. Новиков, С. Г. Фомина, Л. Б. Луковникова,... |
Учебно-методическое пособие Елабуга 2016 ббк 74. 58 Учебно-методическое... Методическое пособие предназначено для студентов 1 курса высших учебных заведений неязыковых специальностей |
||
Учебно-методическое пособие по клинической фармакологии Оренбург, 2007 Учебно-методическое пособие предназначено для самостоятельной работы студентов медицинских вузов, обучающихся по специальности «Лечебное... |
Методическое пособие Саратов 2008 г. Организация комплексной системы... Методическое пособие предназначено для руководителей и преподавателей- организаторов обж образовательных учреждений |
||
Учебно-методическое пособие ... |
Организация и технология документационного обеспечения управления учебно-методическое пособие ... |
||
Учебно-методическое пособие «Учебные игры и ситуационные задачи в... Учебные игры и ситуационные задачи в гинекологии: Учебно-методическое пособие / Под ред. А. А. Радионченко. – Томск: Сибгму,... |
Учебно-методическое пособие Казань 2010 Печатается по рекомендации... Учебно-методическое пособие по курсу «Организационное поведение» /Д. М. Сафина. – Казань: Казанский (Приволжский) федеральный университет;... |
||
Учебно-методическое пособие. Новосибирск, 2006 Учебно-методическое пособие предназначено инструкторам детско-юношеского и спортивного туризма с целью повышения уровня знаний и... |
Учебно-методическое пособие к лабораторным занятиям по курсу «Основы кристаллооптики» Практическое руководство по работе с поляризационным микроскопом для исследования петрографических объектов: Учебно-методическое... |
||
Учебно-методическое пособие организация инженерной защиты населения Учебно-методическое пособие разработано применительно к Программе обучения слушателей на курсах гражданской защиты Копейского городского... |
Учебно-методическое пособие Санкт-Петербург 2007 Автор: Черемисов... Учебно-методическое пособие предназначено для подготовки руководящего состава, специалистов гочс и пб, руководителей служб, аварийно-спасательных... |
||
Учебно-методическое пособие для студентов пм. 04.(07.) «Выполнение... Учебно-методическое пособие составлено в соответствии с требованиями Федерального Государственного образовательного стандарта по... |
Учебно-методическое пособие санкт-Петербург 2009г. Автор: Г. П. Подвигин... Учебно-методическое пособие предназначено для должностных лиц, специалистов го и рсчс организаций |
||
Учебно-методическое пособие Кемерово 2015 г. Согласовано: кроо «памск» Учебно-методическое пособие предназначено для студентов стоматологического факультета, гигиенистов стоматологических со средним медицинским... |
Федеральное государственное образовательное учреждение Высшего профессионального... Вакуумный практикум: Учебно-методическое пособие. Ростов-на-Дону, 2008. 55с |
Поиск |