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

 
 
> структуры и указатели, 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
Ответов
Alex03
сообщение Aug 20 2008, 03:36
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 359
Регистрация: 9-12-05
Пользователь №: 12 034



Цитата(AD_Wolf @ Aug 19 2008, 20:18) *
Цитата
/* Pin Connect Block */
#define PINSEL0 (*((volatile unsigned long *) 0xE002C000))
#define PINSEL1 (*((volatile unsigned long *) 0xE002C004))
#define PINSEL2 (*((volatile unsigned long *) 0xE002C014))

вопрос: как в структуру вместо "..." добавить PINSEL2 если его адрес 0xE002C014, а не 0xE002C008?


Цитата(AD_Wolf @ Aug 19 2008, 20:32) *
Вот так?
Код
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;


Почему short то? 8 и 14 шестнадцатеричные, соответственно 3 лонга д.б.. Можно массив из 3-х лонгов.


Цитата(AD_Wolf @ Aug 19 2008, 21:13) *
а если адреса такие:
#define MAMCR (*((volatile unsigned char *) 0xE01FC000))
#define MAMTIM (*((volatile unsigned char *) 0xE01FC004))
#define MEMMAP (*((volatile unsigned char *) 0xE01FC040))
то после MAMTIM нужно 15 пустых лонгов. по-другому никак нельзя сделать?

Не 15 а 14.

А смысл?
Типа MAM.MEMMAP (ну или по аналогии BASE_MAM_CON.MEMMAP) приятней читается чем MEMMAP?
Да и ИМХО MEMMAP к MAM-у отношения не имеет.
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 29th July 2025 - 13:21
Рейтинг@Mail.ru


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