Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Структура данных для работы с регистрами контроллера UARTa

Читайте также:
  1. I. Категория: научные работы
  2. I. Общая характеристика работы
  3. I. Офис и его структура.
  4. I. Схема работы для организации семинарского занятия
  5. II. ВИДЫ САМОСТОЯТЕЛЬНОЙ РАБОТЫ ОБУЧАЮЩИХСЯ
  6. II. Выполнение работы
  7. II. Порядок формирования экспертных групп, организация экспертизы заявленных на Конкурс проектов и регламент работы Конкурсной комиссии

typedef struct __RegUart{

uint CR[VUART];//командный регистр

uint SR[VUART];//статус регистр

uint MR[VUART];//регистр масок прерываний

}_RegUart;

 

 

Рис.1.8.2. Расположение в памяти структуры данных для обработки запросов чтения – записи данных с UARTa

На рис.1.8.3 показано расположение структуры данных _RegUart в памяти.

Рис.1.8.3. Расположение в памяти структуры данных для работы с регистрами контроллера UARTa

Структура данных для буфера чтения/записи данных i-го UARTa.

typedef struct __DataQUART{

uint data;//данные

}_DataQUART;

 

typedef struct __QUART{

DataQUART DQ;

struct __QUART *pnext; //указатель на следующий элемент буфера чтения/записи данных i-го UARTa.

}_QUART;

#define SZ_QUART (sizeof(_QUART)/sizeof(char)) //размер структуры QUART в байтах

 

typedef struct __MQUART{

uint NUart; //номер UARTa

QUART *RQWM; //Указатель на маркер записи циклической очереди приема данных

QUART *RQRM; //Указатель на маркер чтения циклической очереди приема данных

QUART *TQWM; //указатель на маркер записи циклической очереди передачи данных

QUART *TQRM; //указатель на маркер чтения циклической очереди передачи данных

uint r;

uiint attr;

}_MQUART;

 

На рисунке 1.8.4 показано расположение структуры данных_MQUART в памяти.

Рисунок 1.8.4. Расположение в памяти структуры данных для буфера чтения/записи данных i-го UARTa

#define SZ_IRQUART (sizeof(_IrqUART)/sizeof(char))

//размер структуры

//_IrqUART в байтах

#define SZ_UARTINFO (sizeof(_UARTInfo)/sizeof(char))

//размер структуры

//_UARTInfo в байтах

#define SZ_REGUART (sizeof(_RegUart)/sizeof(char))

//размер структуры

//_RegUart в байтах

#define SZ_MQUART (sizeof(_MQUART)/sizeof(char))

//размер структуры

//_MQUART в байтах

#define ADDR_CONT_UARTDRV_L1 (p35mem + 4)//адрес, по которому хранится контект драйвера UARTA

//p35mem резервирование 35 страницы памяти для работы драйвера UARTa 1-го уровня

#define PIRQUART (p35mem+16)

//адрес ячейки памяти, где хранится структура IrqUART

#define PUARTINFO (PIRQUART + SZ_IRQUART))

//адрес ячейки памяти, где хранится структура _UARTInfo

#define PREGUART (PUARTINFO + SZ_UARTINFO * VUART))

//адрес ячейки памяти где хранится структура _RegUart

#define PMQUART (PREGUART+SZ_REGUART + 4)// адрес ячейки памяти, где хранится структура _MQUART

#define MEMQUART (PMQUART+SZ_MQUART*VUART+ 4) //область памяти для хранения данных буферов чтения/записи UARTов

#define VRS_422 6 // интерфейсов RS-422

#define VRS_485 4 // интерфейса RS-485


Дата добавления: 2015-12-08; просмотров: 56 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.006 сек.)