
- •Содержание
- •Лекционный курс модуль Вводный
- •1. Цели и задачи курса
- •2. Микропроцессор и микропроцессорная система
- •3. Основные понятия и определения
- •4. Характеристики микропроцессоров
- •5. Классификация микропроцессоров
- •6. Эволюция микропроцессоров
- •Модуль I. Организация микропроцессорной системы
- •1. Основные типы архитектур микропроцессорных систем. Фон-неймановская (принстонская) и гарвардская архитектуры. Организация пространств памяти и ввода-вывода.
- •5. Прямой доступ к памяти. Организация прямого доступа к памяти. Контроллер пдп.
- •6. Память микропроцессорной системы. Функции памяти. Архитектура и иерархия памяти. Организация кэш-памяти. Виртуальная память.
- •Увеличение разрядности основной памяти
- •Память с расслоением
- •Использование специфических свойств динамических зупв
- •Страничная организация памяти
- •Сегментация памяти
- •Модуль II. Универсальные микропроцессоры
- •1. Определение понятия «архитектура». Архитектура системы команд. Классификация процессоров cisc и risc. Определение понятия "архитектура"
- •Архитектура системы команд. Классификация процессоров (cisc и risc)
- •2. Методы адресации и типы данных. Типы команд. Команды управления потоком команд. Методы адресации
- •Типы команд
- •Команды управления потоком команд
- •3. Конвейеризация и параллелизм. Конвейерная организация обработки данных. Простейшая организация конвейера и оценка его производительности.
- •Простейшая организация конвейера и оценка его производительности
- •Конфликты по данным, остановы конвейера и реализация механизма обходов
- •Классификация конфликтов по данным
- •Конфликты по данным, приводящие к приостановке конвейера
- •Методика планирования компилятора для устранения конфликтов по данным
- •Сокращение потерь на выполнение команд перехода и минимизация конфликтов по управлению
- •Снижение потерь на выполнение команд условного перехода
- •5. Проблемы реализации точного прерывания в конвейере. Обработка многотактных операций и механизмы обходов в длинных конвейерах Проблемы реализации точного прерывания в конвейере
- •Обработка многотактных операций и механизмы обходов в длинных конвейерах
- •Конфликты и ускоренные пересылки в длинных конвейерах
- •Поддержка точных прерываний в длинных конвейерах
- •Параллелизм уровня команд: зависимости и конфликты по данным
- •Параллелизм уровня цикла: концепции и методы
- •Основы планирования загрузки конвейера и разворачивание циклов
- •7. Зависимости. Классификация зависимостей и их применение. Устранение зависимостей по данным и механизмы динамического планирования. Зависимости. Их классификация и применение.
- •Устранение зависимостей по данным и механизмы динамического планирования Основная идея динамической оптимизации
- •Динамическая оптимизация с централизованной схемой обнаружения конфликтов
- •Другой подход к динамическому планированию - алгоритм Томасуло
- •Дальнейшее уменьшение приостановок по управлению: буфера целевых адресов переходов
- •9. Одновременная выдача нескольких команд для выполнения и динамическое планирование.
- •10. Архитектура машин с длинным командным словом (vliw). Средства поддержки большой степени распараллеливания.
- •Средства поддержки большой степени распараллеливания
- •Обнаружение и устранение зависимостей
- •Программная конвейеризация: символическое разворачивание циклов
- •Трассировочное планирование
- •Аппаратные средства поддержки большой степени распараллеливания
- •Условные команды
- •Выполнение по предположению (speculation)
- •11. Архитектура epic.
- •Модуль III. Микроконтроллеры и специализированные микропроцессоры
- •2. Специализированные микропроцессоры. Цифровые процессоры обработки сигналов.
- •Модуль Заключительный Перспективы развития микропроцессорной техники.
- •Лабораторный курс
- •7 Семестр. Лабораторная работа 1.
- •Лабораторная работа 2.
- •Лабораторная работа 3.
- •Лабораторная работа 4.
- •8 Семестр. Лабораторная работа 1.
- •1. Общие сведения
- •2. Настройка и запуск Code Composer Studio (simulation)
- •3. Особенности проектирования в иср Code Composer Studio
- •4. Реализация проекта в иср Code Composer Studio
- •5. Тестирование проекта в иср Code Composer Studio
- •6. Аппаратная реализация проекта в иср Code Composer Studio
- •Лабораторная работа 2.
- •1. Подключение файлов ввода/вывода с помощью точек зондирования
- •2. Работа с файлами по средствам функций языка с
- •3. Работа с dsp/bios для генерации звукового сигнала платой dsk5510
- •Лабораторная работа 3.
- •1 Цифровая фильтрация
- •2. Реализация ких фильтра на симуляторе dsk5510
- •3. Реализация ких фильтра на dsk5510 для фильтрации звукового сигнала в реальном времени.
- •Лабораторная работа 4.
- •1. Фильтры с бесконечной импульсной характеристикой – бих
- •2. Реализация бих фильтра на симуляторе dsk5510
- •3. Реализация бих фильтра на dsk5510 для фильтрации звукового сигнала в реальном времени.
- •Оценка работы студентов. Рейтинговая система.
- •1. Общие положения
- •2. Организация рейтингового контроля успеваемости студентов дневной формы обучения
- •3. Выставление оценок по рейтинговой системе
- •4. Организация рейтингового контроля успеваемости студентов заочной формы обучения
- •Учебно-методические материалы Основная литература
- •Дополнительная литература
4. Реализация проекта в иср Code Composer Studio
Создание и запуск проекта.
Создаваемый проект будет реализовывать копирование статически заданного массива констант в буфер. Массив констант это заданные отсчеты для одного периода синусоиды. Данные в буфер будут скопированы в противофазе.
Процедура создания проекта:
Запустить ИСР Code Composer Studio в режиме Simulator.
Выбирать раздел Project → New, в появившемся диалоговом окне ввести имя будущего проекта и место где он будет сохранен, рекомендуется сохранять проект в папке MyProjects, в частности: “laba_1” и нажать кнопку «Готово» (рисунок 4.1):
Рисунок 4.1 – Окно создания нового проекта
Выбрать раздел File → New → Source File или начать CNTR+N. В появившемся редакторе ввести код из листинга 4.1, который объявляет массив размером BUF_SIZE, перед началом цикла выводит соответствующее сообщение. В цикле происходит копирование в массив данных, объявленных в файле «arr.h», и вывод на экран. По завершении цикла будет выведено соответствующее сообщение.
Листинг 4.1.
#include <stdio.h> #include "arr.h"
short outBuffer[BUF_SIZE];
void main() { short i; printf("BEGIN\n"); for (i=0; i<BUF_SIZE;i++) { outBuffer [i] = 0 - sineTable[i]; // <- Set breakpoint printf("%d, ",outBuffer [i]); } printf("\nEND\n"); } |
После вставки кода в редакторе выбрать раздел File → Save As и сохранить файл с именем main.c в папку, где находится проект, в частности в папку laba_1.
Создать и сохранить файл arr.h из листинга 4.2 (аналогично п.3) в котором объявлен массив констант, представляющих собой отсчеты синусоиды.
Листинг 4.2.
#define BUF_SIZE 40 const short sineTable[BUF_SIZE]= {0x0000, 0x000f, 0x001e, 0x002d, 0x003a, 0x0046, 0x0050, 0x0059,0x005f, 0x0062, 0x0063, 0x0062, 0x005f, 0x0059, 0x0050, 0x0046,0x003a, 0x002d, 0x001e, 0x000f, 0x0000, 0xfff1, 0xffe2, 0xffd3,0xffc6, 0xffba, 0xffb0, 0xffa7, 0xffa1, 0xff9e, 0xff9d, 0xff9e,0xffa1, 0xffa7, 0xffb0, 0xffba, 0xffc6, 0xffd3, 0xffe2, 0xfff1}; |
Создать и сохранить командный файл lnk.cmd листинг 4.3 (аналогично п.3), все пояснения изложены в разделе: «Создание Командного Файла».
Листинг 4.3.
/* Specify the system memory map */ MEMORY { RAM (RWIX) : o = 0x000100, l = 0x00feff /* Data memory */ RAM0 (RWIX) : o = 0x010000, l = 0x008000 /* Data memory */ RAM1 (RWIX) : o = 0x018000, l = 0x008000 /* Data memory */ RAM2 (RWIX) : o = 0x040100, l = 0x040000 /* Program memory */ ROM (RIX) : o = 0x020100, l = 0x020000 /* Program memory */ VECS (RIX) : o = 0xffff00, l = 0x000100 /* Reset vector */ } /* Specify the sections allocation into memory */ SECTIONS { vectors > VECS /* Interrupt vector table */ .text > ROM /* Code */ .switch > RAM /* Switch table info */ .const > RAM /* Constant data */ .cinit > RAM2 /* Initialization tables */ .data > RAM /* Initialized data */ .bss > RAM /* Global & static vars */ .stack > RAM /* Primary system stack */ .sysstack > RAM /* Secondary system stack */ expdata0 > RAM0 /* Global & static vars */ expdata1 > RAM1 /* Global & static vars */ } |
Примечание: Атрибуты, устанавливаемые для доступа к памяти в секции MEMORY: R – Пространство памяти открыто для чтения
W - Пространство памяти открыто для записи
X – Пространство памяти содержит рабочий код
I – Пространство памяти может быть инициализировано
Выбрать раздел Project → Add Files to Project… в появившемся окне обозревателя зайти в папку с проектом, установить просмотр для всех типов файлов, и выбрать файлы main.c, arr.h и lnk.cmd. Выбрать одновременно, несколько файлов, можно зажав клавишу CTRL. После этого снова выбрать раздел Project → Add Files to Project… и добавить к проекту библиотеку rts55.lib, она находится: С:\CCStudio_v3.1\C5500\cgtools\lib\. По окончании всех действий Code Composer Studio примет вид, как показано на рисунке 4.2.
Рисунок 4.2 – Вид ИСР CCSс открытым проектом.
Выбрать раздел Option → Customize и перейти на вкладку Program/Project Load и отметить пункт напротив Load Program After Build (рисунок 4.3), эта функция необходима для загрузки выходного файла после компиляции в симулятор или плату DSK5510:
Рисунок 4.3 – Настройка загрузки программы/проекта.
Выбрать раздел Project → Rebuild All или нажмите кнопку
. После этого проект скомпилируется, и выходной файл будет загружен в симулятор. Для запуска программы после загрузки необходимо нажать «Alt+F5», что соответствует вызову функции Animate, которую можно также вызвать, нажав кнопку
на панели инструментов ИСР CCS (рисунок 4.4).
Рисунок 4.4 – Результаты выполнения программы в симуляторе.
Сохранить все изменения в проекте и закрыть среду разработки.
Примечание: Очистить содержимое окна стандартного ввода/вывода (stdout) можно вызвав контекстное меню этого окна и выбрать в нем опцию Clear.