Изучение программой среды процессора BlackFinBF533
Описание назначения и функций блока часов реального времени процессора. Изучение программной среды, обеспечивающей работу часов реального времени процессора BlackFinBF533. Разработка программного продукта, выполняющего сброс ядра сигнального процессора.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 28.06.2015 |
Размер файла | 858,9 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
12
Лабораторная работа
Изучение программой среды процессора BlackFinBF533
Задание
Через 3 минуты после начала работы выполняется сброс ядра сигнального процессора.
Часы реального времени
Блок часов реального времени (RTC, Real-Time Clock) процессора обеспечивает набор свойств цифровых часов, включающий функции будильника, секундомера и индикации текущего времени. Обычно, он используется для реализации либо часов реального времени, либо счётчика жизненного цикла, отсчитывающего время от момента последнего сброса системы.
RTC тактируется внешним кварцевым резонатором 32.768 кГц. Он имеет выделенные выводы питания и не зависит от сброса, что позволяет поддерживать его функционирование даже при выключении питания остальной части процессора.
Сигнал частотой 1 Гц получается путём деления входного тактового сигнала RTC предделителем. Также возможно тактирование “в обход” предделителя; при этом сигнал внешнего кварцевого резонатора частотой 32.768 кГц поступает на RTC напрямую. В обычном режиме работы предделитель включён.
Первичной функцией RTC является точный счёт дней и времени дня, который достигается при помощи четырёх счётчиков:
• счётчик на 60 секунд,
• счётчик на 60 минут,
• счётчик на 24 часа,
• счётчик на 32768 дней.
RTC инкрементирует счётчик секунд один раз в секунду; остальные три счётчика инкрементируются в соответствующие моменты времени. Счётчик дней инкрементируется каждый день в полночь (0 часов, 0 минут, 0 секунд).
Возможна периодическая генерация прерывания каждую секунду, каждую минуту, каждый час или каждый день. Управление каждым из этих прерываний может осуществляться независимо.
Модель программирования RTC
Модель программирования RTC включает набор регистров системы, отображённых в карте памяти. Программа осуществляет конфигурирование и определение состояния RTC путём записи и чтения этих регистров. Регистр управления прерываниями RTC (RTC_ICTL) и регистр состояния прерываний RTC (RTC_ISTAT) обеспечивают функции управления прерываниями RTC.
Необходимо отметить, что программное запрещение функций RTC невозможно. Однако любые прерывания RTC могут быть запрещены (маскированы). После сброса все прерывания запрещены. Регистры состояния, отображённые в карте памяти, позволяют определить состояние RTC в любой момент времени.
Прерывания
RTC может формировать прерывания по нескольким программируемым интервалам:
• по секунде,
• по минуте,
• по часу,
• по дню,
• по завершению счёта от заданного значения,
• ежедневно в определённое время,
• по определённому дню и времени.
RTC может быть настроен на генерацию прерываний по завершению всех выполняемых записей в регистры, синхронизируемые секундной меткой (RTC_STAT, RTC_ALARM, RTC_SWCNT, RTC_ICTL и RTC_PREN). Возможно индивидуальное запрещение или разрешение прерываний при помощи регистра управления прерываниями RTC (RTC_ICTL). Состояние прерываний можно определить путём чтения регистра состояния прерываний RTC (RTC_ISTAT).
Прерывание RTC устанавливается всякий раз, когда разрешённое в регистре RTC_ICTL событие фиксируется регистром RTC_ISTAT. Активное прерывание RTC сбрасывается всякий раз, когда сбрасываются все разрешённые и установленные биты в регистре RTC_ISTAT или при сбросе всех битов регистра RTC_ICTL, соответствующих активному прерыванию.
Как показано на рис. 2, RTC генерирует запрос прерывания (IRQ) на обслуживание события ядром процессора и вывод процессора из состояния сна. RTC генерирует раздельные прерывания для вывода из состояния глубокого сна и для вывода из состояния выключенного внутреннего питания Vdd. Сигнал вывода из состояния глубокого сна устанавливается по секундной метке при возникновении события любого интервала времени RTC, разрешённого в регистре RTC_ICTL. По сигналу вывода из состояния глубокого сна возобновляется подача тактовых сигналов системы (SCLK) и ядра процессора (CCLK). Любое событие, вызывающее установление сигнала вывода из состояния глубокого сна, также вызывает IRQ RTC при возобновлении подачи SCLK.
Регистр RTC_STAT
Регистр состояния RTC (RTC_STAT) используется для чтения или записи текущего времени. При чтении возвращается 32-разрядное значение, которое всегда отражает текущее состояние счётчиков дней, часов, минут и секунд. Для чтения и записи должны использоваться 32-разрядные транзакции; попытка выполнить 16-разрядную транзакцию вызывает ошибку доступа к регистру, отображённому в карте памяти. При чтении всегда возвращается когерентное 32-разрядное значение. Поля часов, минут и секунд обычно задаются в соответствии с реальным временем суток. Значение счётчика дней инкрементируется каждый день в полночь и отображает количество дней с момента последней модификации его значения. Значения счётчика дней не соответствуют реальным календарным дням. Диапазон значений 15-разрядного счётчика дней составляет 89 лет и 260 или 261 день (в зависимости от числа високосных лет).
Запись значения текущего времени в регистр RTC_STAT следует выполнять по секундной метке. По следующей секундной метке регистр RTC_STAT примет новое значение, равное инкрементированному записанному значению.
Например:
1. Дождитесь секундной метки.
2. Выполните чтение RTC_STAT. Возвращаемое значение ? 10:45:30.
3. Запишите в RTC_STAT значение текущего времени, 13:10:59.
4. Выполните чтение RTC_STAT. Возвращаемое значение, по-прежнему, равно 10:45:30.
5. Дождитесь секундной метки.
6. Выполните чтение RTC_STAT. При этом возвратится значение нового текущего времени, 13:11:00.
Регистр RTC_ICTL
В регистре управления прерываниями RTC (RTC_ICTL) могут индивидуально маскироваться или разрешаться восемь прерываний RTC. Прерывание по секундам (если оно разрешено) генерируется по каждой секундной метке. Прерывание по минутам генерируется по секундной метке, по которой значение счётчика секунд изменяется из 59 в 0. Прерывание по часам генерируется по секундной метке, по которой значение счётчика минут изменяется из 59 в 0. Прерывание по 24 часам происходит один раз в 24 часа по секундной метке, по которой значение поля времени переходит в 00:00:00 (полночь). Любое из этих прерываний (если оно разрешено) может генерировать запрос вывода процессора из состояний глубокого сна и выключенного внутреннего питания Vdd. Все не зарезервированные биты регистра доступны для чтения и записи.
Регистр RTC_ISTAT
Регистр состояния прерываний (RTC_ISTAT) отображает состояние всех прерываний RTC. Биты этого регистра являются "защёлкивающимися". После того, как бит устанавливается соответствующим событием, он остаётся в таком состоянии пока не будет сброшен программной записью в этот регистр. Флаги событий устанавливаются всегда; они не маскируются битами разрешения прерываний регистра RTC_ICTL. Все флаги, за исключением бита состояния “Запись выполняется”, доступного только для чтения, сбрасываются записью единицы в соответствующую позицию регистра. Запись нуля в любой бит регистра не изменяет его содержимого. Сброс регистра выполняется при сбросе процессора и при нахождении в состоянии глубокого сна.
Регистр RTC_PREN
Регистр включения предделителя RTC (RTC_PREN) содержит единственный активный бит. Когда этот бит установлен, предделитель включён и RTC работает с частотой 1 Гц. Когда он сброшен, предделитель отключён и RTC работает с частотой кварцевого резонатора 32.768 кГц.
Бит включения предделителя должен быть установлен программой после включения питания для того, чтобы RTC работал с надлежащей частотой. После записи в регистр RTC_PREN следует дождаться события Запись завершена перед выполнением записи в другие регистры RTC. Можно выполнять запись единицы в регистр RTC_PREN каждый раз при загрузке процессора. При первой записи бит устанавливается, последующие записи не влияют на состояние бита.
Программный сброс ядра
Программный сброс ядра инициируется выполнением команды RAISE 1 или установкой программой эмуляции по порту JTAG бита программного сброса (SYSRST) в регистре управления отладкой ядра (DBGCTL). Регистр DBGCTL не отображается в карте памяти.
Программный сброс ядра влияет только на состояние ядра. Следует отметить, что в зависимости от действий, выполняемых ядром в момент сброса, ресурсы системы могут принимать неопределенное, или даже недостоверное состояние.Практическая часть
В соответствии с заданием было разработано программное обеспечение, словесный алгоритм которого приведён ниже:
1. Разрешение маскированных прерываний от RTC;
2. Назначение RTC прерывание системы IVG8;
3. Привязка прерывания IVG8 к функции-обработчику;
4. Разрешаем RTC посылку прерываний каждую минуту;
5. Ждём 3 прерывания;
6. Сбрасываем ядро.
Блок-схема главной программы:
Выводы
В ходе расчётной работы была изучена программная среда процессора BlackFinBF533, работа с часами реального времени и состояния процессора. Разработан программный продукт который выполняет сброс ядра сигнального процессора после 3-х минут работы.
программа ядро часы сигнальный процессор
Литература
Справочное руководство по архитектуре процессора Blackfin ADSP-BF533 .
Быстрое погружение c «черными плавниками». Часть 3.1. Первая законченная система. Служба времени в ADSP Blackfin . Журнал «Компоненты и тех нологии» № 3 `2007 . Андрей Савичев , Олег Романов
Приложение
#include <sys\exception.h>
#include <cdefBF533.h>
#include <stdio.h>
#define RTC_INT_EN 0x80
extern int b = 0;
void initInterrupts(void);
void initRTC(void);
EX_INTERRUPT_HANDLER(RTC_ISR);
void initInterrupts(void)
{
*pSIC_IMASK = 0x00000080;
*pSIC_IAR0 = 0x1fffffff;//RTC -> IVG8
register_handler(ik_ivg8, RTC_ISR);// RTC ISR -> IVG 8
}
void initRTC(void)
{
*pRTC_PREN = 0x1;//1Hz
*pRTC_ICTL = 0x0008;
while ((*pRTC_ISTAT & 0x8000) == 0);//ждём запись в регистр
}
EX_INTERRUPT_HANDLER(RTC_ISR)
{
if ((*pRTC_ISTAT & 0x0008) != 0) {
b++;
*pRTC_ISTAT = 0x0;
printf("%d\n", b);
}
}
void main()
{
initInterrupts();
initRTC();
while (b < 3);
__asm__ (
"RAISE 1;\n"
);
}
Размещено на Allbest.ru
...Подобные документы
Управление взаимодействием всех устройств ЭВМ. История создания и развития производства процессора. Структура центрального процессора. Регистры общего назначения. Обозначения популярных моделей процессоров Intel и AMD. Команды центрального процессора.
реферат [111,2 K], добавлен 25.02.2015Рассмотрение принципа работы процессора и его практической реализации с использованием языка описания аппаратуры Verilog. Проектирование системы команд процессора. Выбор размера массива постоянной памяти. Подключение счетчика инструкций и файла регистра.
курсовая работа [1,2 M], добавлен 26.05.2022Принцип работы процессора, способы его охлаждения, кодовые названия. Шины процессора, разрядность и кэш–память. Технологии расширения и поток команд процессора. Процессорные вентиляторы и их характеристика. Алгоритм и способы разгона процессора.
реферат [38,0 K], добавлен 21.02.2009Разработка модели процессора, выполняющего набор машинных команд. Структурная схема процессора (операционного и управляющего автоматов), анализ принципа работы. Содержательный алгоритм микропрограммы, синтез управляющего автомата на основе жесткой логики.
курсовая работа [871,9 K], добавлен 16.09.2010Разработка структурной схемы процессора; синтез микропрограммного и управляющего автомата с жесткой логикой. Функциональная организация процессора: программные модели, форматы данных и команд. Организация оперативной памяти. Проектирование блока операций.
учебное пособие [1,1 M], добавлен 09.04.2013Функциональная и структурная организация ЭВМ. Разработка функциональных микропрограмм заданных команд. Их объединение и привязка к структуре операционного автомата процессора. Разработка управляющего автомата процессора с программируемой логикой.
дипломная работа [4,0 M], добавлен 25.03.2012Общие понятия и определения о процессорах. Изучение устройства и принципа работы процессора. Подбор инструментов для сборки и разборки системного блока. Описание процесса обслуживания процессора. Требования к технике безопасности при выполнении работ.
курсовая работа [2,0 M], добавлен 15.02.2015Изучение сущности, функций и основных задач центрального процессора - микросхемы, исполнителя машинных инструкций (кода программ), главной части аппаратного обеспечения компьютера или программируемого логического контроллера. Основные характеристики.
контрольная работа [18,5 K], добавлен 26.12.2010Принцип работы процессора (одномагистральная структура). Временные диаграммы, описывающие выполнение микроопераций для каждой команды. Структурная схема управляющего автомата на основе памяти с одним полем адреса. Описание процессора на языке Active VHDL.
курсовая работа [621,0 K], добавлен 24.09.2010Разработка устройства, реализующего набор команд из числа операций с плавающей точкой семейства процессора i486. Структура сопроцессора FPU. Принцип выполнения операций, разработка блок-схемы, построение структурной схемы основных блоков процессора.
курсовая работа [734,9 K], добавлен 27.10.2010История развития центрального процессора. Основные проблемы создания многоядерных процессоров. Проектирование микропроцессорной системы на базе процессора Intel 8080. Разработка принципиальной схемы и блок-схемы алгоритма работы микропроцессорной системы.
курсовая работа [467,6 K], добавлен 11.05.2014Синтез структуры простого магистрального процессора с одним АЛУ, выполняющего 8 заданных команд. Разработка формата и кодировки команд, структурной схемы процессора, функциональные схемы всех его блоков в целом с указанием шин и управляющих сигналов.
реферат [123,9 K], добавлен 18.05.2009Функциональная организация процессора. Сложение с нормализацией, синтез операций, выборка команды. Описание структурной схемы процессора. Синтез управляющего автомата, разметка граф схемы. Разбиение микроопераций по полям и кодирование логических условий.
курсовая работа [91,8 K], добавлен 24.09.2010Рост производительности и снижение потребляемой мощности процессора. Упрощенная-схема процессора BF535. Поддержка моделей памяти. Стандарты коммуникационных протоколов. Системные регистры процессора. Регистровый файл данных. Шины связи регистрового файла.
презентация [6,3 M], добавлен 14.12.2013Строка Меню текстового процессора и панель инструментов Форматирование текстового процессора MS Word, назначение основных команд и кнопок. Технология формирования (расчета) ведомости выдачи заработной платы средствами табличного процессора MS Excel.
контрольная работа [15,1 K], добавлен 09.05.2010Ознакомление с языком ассемблера процессора Neuro Matrix NM 6403, его возможности, особенности работы, содержание операций в регистрах, архитектура. Разработка программы для заполнения блока памяти, компилирование и отладка файла, фиксирование его адреса.
лабораторная работа [48,2 K], добавлен 18.10.2012Расчет трудоемкости алгоритма. Определение быстродействия процессора. Характеристика контроллеров серии Direct Logic DL. Устройства, которые вошли в структуру системы. Выбор программного обеспечения. Расчет работоспособности и надежности системы.
курсовая работа [2,0 M], добавлен 14.01.2013Определение основных функций процессора. Микросхема процессора и выводы шин адреса, данных и управления. Функции памяти и устройств ввода/вывода (мыши, клавиатуры, джойстика). Описание функций внутренних регистров микропроцессора. Оперативная память.
презентация [603,1 K], добавлен 17.06.2014Разработка программы на языке Ассемблер для определения типа центрального процессора и его производительности. Основные этапы определения любого существующего Intel-совместимого процессора. Тактовая частота процессора, алгоритм и листинг программы.
курсовая работа [47,6 K], добавлен 26.07.2014История появления и развития первых процессоров для компьютеров. Общая структура центрального процессора. Устройство блока интерфейса. Основные характеристики процессора. Кеш-память разных уровней. Разрядность и количество ядер. Частота и системная шина.
презентация [1,4 M], добавлен 11.04.2019