Карта памяти для TMS320VC5510 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Карта памяти для TMS320VC5510



Все 16M байты памяти адресуемы как пространство программ или данных (рисунок 3.7). Когда ЦП использует пространство программ для чтения программного кода из памяти, он применяет адреса в 24 бита для обращения к байтам. Когда программа получает доступ к пространству данных, она использует адреса в 23 бита для обращения к 16 - разрядным словам. В обоих случаях шины адреса переносят значения в 24 бита, но в течение доступа к пространству данных, младший бит на шине адреса приравнивается к 0.

Пространство данных делится на 128 основных страниц данных (с 0 по 127). Каждая основная страница данных имеет 64К адресов. Инструкция, ссылающаяся на основную страницу данных, объединяет 7- разрядную страницу данных с 16 - разрядным офсетом.

На странице данных 0 первые 96 адресов (00 0000h-00 005Fh) зарезервированы под регистры, отображенные в карте памяти (MMR). Существует соответствующий блок из 192-х адресов (00 0000h-00 00BFh) в пространстве программ. Не рекомендуется хранить (запоминать) программный код в пространстве памяти.

Для того, чтобы посмотреть, как адреса распределяются между внутренней памятью и внешней памятью, и, чтобы получить информацию о внутренней памяти, обратитесь к технической документации вашего C55x DSP в частности SPRU371D (перевод).

Рисунок 3.7 – Карта памяти TMS320VC5510.

Обращение к памяти процессора может осуществляться по адресам. Аппаратно доступ к блокам, описанным в таблице 3.2, может осуществляться параллельно. Т.е. два доступа за один цикл (два чтения, две записи или чтение и запись). DARAM - Dual-Access RAM (Память с двойным доступом).

Таблица 3.2 – Пространство памяти DARAM

 

Внутри кристалла также имеются области памяти с одиночным доступом (SARAM). В таблице 3.3 обозначено деление этих областей по адресам.

 

Таблица 3.3 – Пространство памяти SARAM

В TMS320VC5510 есть вектор прерываний, который обслуживает все внутренние и внешние прерывания. Пространство памяти отведенное вектору прерывания представлено в таблице 3.4.

 

Таблица 3.4 – Пространство памяти SARAM

 

Реализация проекта в ИСР Code Composer Studio

Создание и запуск проекта.

Создаваемый проект будет реализовывать копирование статически заданного массива констант в буфер. Массив констант это заданные отсчеты для одного периода синусоиды. Данные в буфер будут скопированы в противофазе.

Процедура создания проекта:

1) Запустить ИСР Code Composer Studio в режиме Simulator.

2) Выбирать раздел Project → New, в появившемся диалоговом окне ввести имя будущего проекта и место где он будет сохранен, рекомендуется сохранять проект в папке MyProjects, в частности: “laba_1” и нажать кнопку «Готово» (рисунок 4.1):

Рисунок 4.1 – Окно создания нового проекта

 

3) Выбрать раздел 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.

4) Создать и сохранить файл 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};

5) Создать и сохранить командный файл 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 – Пространство памяти может быть инициализировано

 

6) Выбрать раздел 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 с открытым проектом.

7) Выбрать раздел Option → Customize и перейти на вкладку Program/Project Load и отметить пункт напротив Load Program After Build (рисунок 4.3), эта функция необходима для загрузки выходного файла после компиляции в симулятор или плату DSK5510:

Рисунок 4.3 – Настройка загрузки программы/проекта.

8) Выбрать раздел Project → Rebuild All или нажмите кнопку . После этого проект скомпилируется, и выходной файл будет загружен в симулятор. Для запуска программы после загрузки необходимо нажать «Alt+F5», что соответствует вызову функции Animate, которую можно также вызвать, нажав кнопку на панели инструментов ИСР CCS (рисунок 4.4).

Рисунок 4.4 – Результаты выполнения программы в симуляторе.

9) Сохранить все изменения в проекте и закрыть среду разработки.

Примечание: Очистить содержимое окна стандартного ввода/вывода (stdout) можно вызвав контекстное меню этого окна и выбрать в нем опцию Clear.



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 285; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.145.77.114 (0.009 с.)