реклама на сайте
подробности

 
 
> структуры и указатели, lpc214x
AD_Wolf
сообщение Aug 19 2008, 14:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 27-01-08
Из: Пушкин
Пользователь №: 34 464



People,
подскажите...

Есть 3 регистра с адресами:
Цитата
/* Pin Connect Block */
#define PINSEL0 (*((volatile unsigned long *) 0xE002C000))
#define PINSEL1 (*((volatile unsigned long *) 0xE002C004))
#define PINSEL2 (*((volatile unsigned long *) 0xE002C014))


хочу, чтобы было, как в хидере для at91, что-то типа

Код
typedef struct PIN_CONNECT
{
volatile unsigned long PINSEL0;
volatile unsigned long PINSEL1;
...
} PIN_CON, *pPIN_CON;

#define BASE_PIN_CON ( (pPIN_CON) 0xE002C000 )


вопрос: как в структуру вместо "..." добавить PINSEL2 если его адрес 0xE002C014, а не 0xE002C008?
P.S.
по поводу использования структур и указателей на них в хидерах - уже начитался в предыдущем посте at91.
данный вопрос интересует просто для самообразования
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
zltigo
сообщение Aug 19 2008, 14:24
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(AD_Wolf @ Aug 19 2008, 16:18) *
вопрос: как в структуру вместо

Вписать пустой long


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
AD_Wolf
сообщение Aug 19 2008, 14:32
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 21
Регистрация: 27-01-08
Из: Пушкин
Пользователь №: 34 464



Цитата(zltigo @ Aug 19 2008, 18:24) *
Вписать пустой long


Вот так?

Код
typedef struct PIN_CONNECT
{
volatile unsigned long PINSEL0;
volatile unsigned long PINSEL1;
volatile unsigned long;
volatile unsigned short;
volatile unsigned long PINSEL2;
} PIN_CON, *pPIN_CON;

#define BASE_PIN_CON ( (pPIN_CON) 0xE002C000 )


В Keil не проверял, быстро в visual попробовл, он ругнулся
no members defined using this type
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 19 2008, 14:36
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(AD_Wolf @ Aug 19 2008, 16:32) *
В Keil не проверял, быстро в visual попробовл, он ругнулся
no members defined using this type

Либо фиктивные имена, либо
Код
volatile unsigned long PINSEL0;
volatile unsigned long PINSEL1;
volatile unsigned long :32;
volatile unsigned short :16;
volatile unsigned long PINSEL2;
} PIN_CON, *pPIN_CON;

Ну и паковать структуру не забыть. Но похоже Вас куда-то совсем неправильно понесло c выравниванием по 16 bit. Я кажется предвижу следующий вопрос sad.gif


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th June 2025 - 16:25
Рейтинг@Mail.ru


Страница сгенерированна за 0.01355 секунд с 7
ELECTRONIX ©2004-2016