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

 
 
> at91, помогите разобраться
i.dmitry
сообщение Aug 15 2008, 19:08
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 35
Регистрация: 8-07-07
Пользователь №: 28 963



Помогите разобраться, пожалуйста.

в Header AT91SAM7S256.h файле написано:
Код
typedef struct _AT91S_PMC {
    AT91_REG     PMC_SCER;     // System Clock Enable Register
    AT91_REG     PMC_SCDR;     // System Clock Disable Register
    AT91_REG     PMC_SCSR;     // System Clock Status Register
    AT91_REG     Reserved0[1];     //
    AT91_REG     PMC_PCER;     // Peripheral Clock Enable Register
    AT91_REG     PMC_PCDR;     // Peripheral Clock Disable Register
    AT91_REG     PMC_PCSR;     // Peripheral Clock Status Register
    AT91_REG     Reserved1[1];     //
    AT91_REG     PMC_MOR;     // Main Oscillator Register
    AT91_REG     PMC_MCFR;     // Main Clock  Frequency Register
    AT91_REG     Reserved2[1];     //
    AT91_REG     PMC_PLLR;     // PLL Register
    AT91_REG     PMC_MCKR;     // Master Clock Register
    AT91_REG     Reserved3[3];     //
    AT91_REG     PMC_PCKR[3];     // Programmable Clock Register
    AT91_REG     Reserved4[5];     //
    AT91_REG     PMC_IER;     // Interrupt Enable Register
    AT91_REG     PMC_IDR;     // Interrupt Disable Register
    AT91_REG     PMC_SR;     // Status Register
    AT91_REG     PMC_IMR;     // Interrupt Mask Register
} AT91S_PMC, *AT91PS_PMC;


далее ниже
Код
#define AT91C_BASE_PMC       ((AT91PS_PMC)     0xFFFFFC00) // (PMC) Base Address


в программе:
Код
    AT91C_BASE_PMC->PMC_SCER = AT91C_PMC_UDP;


правильно ли я понял, что AT91PS_PMC - указатель на структуру_AT91S_PMC.
AT91C_BASE_PMC - ее начальный адресс,
строчка в программе означает, в регистр PMC_SCER (по адресу AT91C_BASE_PMC + 5*AT91_REG) записать значение AT91C_PMC_UDP?

-----------------
теперь файл: lib_AT91SAM7S256.h

Код
__inline unsigned int AT91F_AIC_ConfigureIt (
    AT91PS_AIC pAic,  // \arg pointer to the AIC registers
    unsigned int irq_id,     // \arg interrupt number to initialize
    unsigned int priority,   // \arg priority to give to the interrupt
    unsigned int src_type,   // \arg activation and sense of activation
    void (*newHandler) () ) // \arg address of the interrupt handler
{
    unsigned int oldHandler;
    unsigned int mask;

    oldHandler = pAic->AIC_SVR[irq_id];

    mask = 0x1 << irq_id;
    //* Disable the interrupt on the interrupt controller
    pAic->AIC_IDCR = mask;
    //* Save the interrupt handler routine pointer and the interrupt priority
    pAic->AIC_SVR[irq_id] = (unsigned int) newHandler;
    //* Store the Source Mode Register
    pAic->AIC_SMR[irq_id] = src_type | priority;
    //* Clear the interrupt on the interrupt controller
    pAic->AIC_ICCR = mask;

    return oldHandler;
}


как компилятор узнает адрес регистра AIC_IDCR?
Код
pAic->AIC_IDCR = mask;


ведь pAic это есть AT91PS_AIC, но на какой начальный адрес он указывает НЕТ в библиотеке
Код
typedef struct _AT91S_AIC {
    AT91_REG     AIC_SMR[32];     // Source Mode Register
    AT91_REG     AIC_SVR[32];     // Source Vector Register
    AT91_REG     AIC_IVR;     // IRQ Vector Register
    AT91_REG     AIC_FVR;     // FIQ Vector Register
    AT91_REG     AIC_ISR;     // Interrupt Status Register
    AT91_REG     AIC_IPR;     // Interrupt Pending Register
    AT91_REG     AIC_IMR;     // Interrupt Mask Register
    AT91_REG     AIC_CISR;     // Core Interrupt Status Register
    AT91_REG     Reserved0[2];     //
    AT91_REG     AIC_IECR;     // Interrupt Enable Command Register
    AT91_REG     AIC_IDCR;     // Interrupt Disable Command Register
    AT91_REG     AIC_ICCR;     // Interrupt Clear Command Register
    AT91_REG     AIC_ISCR;     // Interrupt Set Command Register
    AT91_REG     AIC_EOICR;     // End of Interrupt Command Register
    AT91_REG     AIC_SPU;     // Spurious Vector Register
    AT91_REG     AIC_DCR;     // Debug Control Register (Protect)
    AT91_REG     Reserved1[1];     //
    AT91_REG     AIC_FFER;     // Fast Forcing Enable Register
    AT91_REG     AIC_FFDR;     // Fast Forcing Disable Register
    AT91_REG     AIC_FFSR;     // Fast Forcing Status Register
} AT91S_AIC, *AT91PS_AIC;


спасибо

Сообщение отредактировал i.dmitry - Aug 15 2008, 19:10
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aaarrr
сообщение Aug 18 2008, 09:54
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Еще один показательный пример для любителей lib_AT91 sad.gif
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Aug 18 2008, 12:19
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



По мне структуры хороши хотя бы тем, что при отладке в Eclipse/Insight позволяют очень удобно смотреть содержимое регистров. Лучшего способа, чем добавить такую "сущность" smile.gif в watch, я просто не знаю.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 18 2008, 12:48
Сообщение #4


Гуру
******

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



Цитата(SergeiCh @ Aug 18 2008, 14:19) *
По мне структуры хороши хотя бы тем, что при отладке в Eclipse/Insight позволяют очень удобно смотреть содержимое регистров.

А смотрю на текст много, много, много больше нежели на окошки "watch", а на регистры вообще не смотрю, ибо некоторые из них вооще-то не расчитаны на "посмотреть" без побочных последствий.




Цитата(AHTOXA @ Aug 18 2008, 14:44) *
Я бы ещё строчку
Код
    VICIntEnClr = 1 << IntNumber;    /* Disable Interrupt */

перенёс после else

Да, пропустил smile.gif - тоже прикол - сначала лупим по регистру, а потом смотрим а параметр допустим был? В догонку - а приоритет на допустимость контролировать не будем sad.gif, хотя номер будем. В общем славная такая "библиотека" для запудривания мозгов.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SergeiCh
сообщение Aug 18 2008, 13:57
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 99
Регистрация: 22-03-07
Из: Novosibirsk
Пользователь №: 26 415



Цитата(zltigo @ Aug 18 2008, 19:48) *
А смотрю на текст много, много, много больше нежели на окошки "watch

Аналогично smile.gif Но мне структуры в этом не помеха, и даже наоборот. По правде говоря, регистры активно смотрел только когда осваивал новый микроконтроллер. Было наглядно, почти как в AVR Studio. Не вижу принципиальных причин, за исключением особых случаев, чтобы не посмотреть значения регистров, если периферия ведет себя как-то не так. Иногда это позволяет найти ошибку посмотрев текст уже не так много, много раз smile.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 18 2008, 14:15
Сообщение #6


Гуру
******

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



Цитата(SergeiCh @ Aug 18 2008, 15:57) *
Но мне структуры в этом не помеха...

Зато в тексте явная помеха рассматривать дикие длиннющие названия пытаясь вычленить из них не очень-то и сами посебе благочитаемые аббревиатуры - в глазах рябит.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 18 2008, 14:21
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(zltigo @ Aug 18 2008, 18:15) *
Зато в тексте явная помеха рассматривать дикие длиннющие названия пытаясь вычленить из них не очень-то и сами посебе благочитаемые аббревиатуры - в глазах рябит.

Ну, не обязательно писать "AT91C_BASE_PITC->PITC_PIMR = x", можно и "*AT91C_PITC_PIMR = x", а можно, после простой доработки хидера напильником, и "PITC_PIMR = x".

Использовать аббревиатуры было не лучшей идеей Атмела, но тут уже ничего не исправить.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- i.dmitry   at91   Aug 15 2008, 19:08
- - aaarrr   Цитата(i.dmitry @ Aug 15 2008, 23:08) пра...   Aug 15 2008, 19:32
|- - defunct   Цитата(aaarrr @ Aug 15 2008, 22:32) P.S. ...   Aug 16 2008, 22:32
|- - aaarrr   Цитата(defunct @ Aug 17 2008, 02:32) А ес...   Aug 16 2008, 22:44
|- - defunct   ЦитатаСкажите, а форум мне покажет тело функции пр...   Aug 16 2008, 23:00
|- - aaarrr   Цитата(defunct @ Aug 17 2008, 03:00) Копи...   Aug 16 2008, 23:27
|- - defunct   Цитата(aaarrr @ Aug 17 2008, 02:27) В сво...   Aug 16 2008, 23:49
|- - aaarrr   Цитата(defunct @ Aug 17 2008, 03:49) Это ...   Aug 17 2008, 00:09
|- - defunct   Цитата(aaarrr @ Aug 17 2008, 03:09) ...да...   Aug 17 2008, 00:42
|- - aaarrr   Цитата(defunct @ Aug 17 2008, 04:42) Не п...   Aug 17 2008, 09:52
- - injen-d   ЦитатаВзгляните на это с т.з. человека который в г...   Aug 17 2008, 10:20
|- - aaarrr   Цитата(injen-d @ Aug 17 2008, 14:20)...   Aug 17 2008, 10:41
||- - injen-d   Цитата(aaarrr @ Aug 17 2008, 14:41) По-мо...   Aug 17 2008, 13:05
||- - aaarrr   Цитата(injen-d @ Aug 17 2008, 17:05)...   Aug 17 2008, 13:18
||- - injen-d   Цитата(aaarrr @ Aug 17 2008, 17:18) Если ...   Aug 17 2008, 14:31
|- - zltigo   Цитата(injen-d @ Aug 17 2008, 12:20)...   Aug 17 2008, 14:01
|- - injen-d   Цитата(zltigo @ Aug 17 2008, 18:01) Ну в ...   Aug 17 2008, 14:54
- - SpiritDance   Мне схемотехник еще со старой работы сказал что ко...   Aug 17 2008, 14:45
|- - zltigo   Цитата(SpiritDance @ Aug 17 2008, 16:45) ...   Aug 17 2008, 20:58
- - aaarrr   Цитата(injen-d @ Aug 17 2008, 18:31)...   Aug 17 2008, 15:00
|- - defunct   Цитата(aaarrr @ Aug 17 2008, 18:00) Для м...   Aug 17 2008, 16:19
|- - aaarrr   Цитата(defunct @ Aug 17 2008, 20:19) Не п...   Aug 17 2008, 16:30
|- - defunct   Цитата(aaarrr @ Aug 17 2008, 19:30) Если ...   Aug 17 2008, 17:22
- - sergeeff   Ну я бы еще отметил следующие. Atmel, особенно в п...   Aug 17 2008, 17:25
- - aaarrr   Цитата(defunct @ Aug 17 2008, 21:22) Ипро...   Aug 17 2008, 18:15
- - sergeeff   Я считал, что "разумное использование возможн...   Aug 18 2008, 06:44
|- - zltigo   Цитата(sergeeff @ Aug 18 2008, 08:44) Я с...   Aug 18 2008, 07:47
|- - sergeeff   Цитата(aaarrr @ Aug 18 2008, 13:54) Еще о...   Aug 18 2008, 12:13
||- - aaarrr   Цитата(sergeeff @ Aug 18 2008, 16:13) Нор...   Aug 18 2008, 12:21
||- - zltigo   Цитата(aaarrr @ Aug 18 2008, 16:21) после...   Aug 18 2008, 14:25
|||- - aaarrr   Цитата(zltigo @ Aug 18 2008, 18:25) А иде...   Aug 18 2008, 14:30
||- - defunct   Цитата(aaarrr @ Aug 18 2008, 17:21) Ну, н...   Aug 18 2008, 20:40
||- - aaarrr   Цитата(defunct @ Aug 19 2008, 00:27) Не о...   Aug 18 2008, 20:55
||- - zltigo   Цитата(defunct @ Aug 18 2008, 22:40) Не о...   Aug 18 2008, 21:05
|- - Сергей Борщ   Цитата(SergeiCh @ Aug 18 2008, 15:19) По ...   Aug 20 2008, 10:12
|- - injen-d   Цитата(Сергей Борщ @ Aug 20 2008, 14:12) ...   Aug 20 2008, 16:51
||- - Сергей Борщ   Цитата(injen-d @ Aug 20 2008, 19:51)...   Aug 20 2008, 16:58
|- - SergeiCh   Цитата(Сергей Борщ @ Aug 20 2008, 17:12) ...   Aug 21 2008, 07:05
|- - SergeiCh   И как правильно заметил zltigo, не все регистры од...   Aug 21 2008, 08:38
- - zltigo   Причем о качестве написания библиотек тоже можно п...   Aug 18 2008, 12:36
|- - AHTOXA   Цитата(zltigo @ Aug 18 2008, 18:36) Что-т...   Aug 18 2008, 12:44
- - defunct   zltigo и aaarrr Я там выше прикрепил рисунок. Собс...   Aug 18 2008, 21:07
|- - zltigo   Цитата(defunct @ Aug 18 2008, 23:07) ..и ...   Aug 18 2008, 21:40
|- - defunct   Цитата(zltigo @ Aug 19 2008, 00:40) Нет,н...   Aug 18 2008, 21:50
- - zltigo   Цитатаzltigo и aaarrr Я там выше прикрепил рисунок...   Aug 18 2008, 21:30
|- - defunct   Цитата(zltigo @ Aug 19 2008, 00:30) Проси...   Aug 18 2008, 21:36
|- - zltigo   Цитата(defunct @ Aug 18 2008, 23:36) Драс...   Aug 18 2008, 21:57
|- - aaarrr   Цитата(zltigo @ Aug 19 2008, 01:54) Зачем...   Aug 18 2008, 21:57
||- - zltigo   Цитата(aaarrr @ Aug 18 2008, 23:57) А тут...   Aug 18 2008, 22:06
|- - defunct   Цитата(zltigo @ Aug 19 2008, 00:54) Вы по...   Aug 18 2008, 21:58
|- - aaarrr   Цитата(defunct @ Aug 19 2008, 01:58) Если...   Aug 18 2008, 22:02
||- - defunct   Цитата(aaarrr @ Aug 19 2008, 01:02) Нет, ...   Aug 18 2008, 22:09
||- - aaarrr   Цитата(defunct @ Aug 19 2008, 02:09) Насч...   Aug 18 2008, 22:15
||- - defunct   Цитата(aaarrr @ Aug 19 2008, 01:15) Какой...   Aug 18 2008, 22:40
||- - aaarrr   Цитата(defunct @ Aug 19 2008, 02:29) Вот ...   Aug 18 2008, 22:40
|||- - defunct   Цитата(aaarrr @ Aug 19 2008, 01:40) А это...   Aug 18 2008, 22:50
|||- - aaarrr   Цитата(defunct @ Aug 19 2008, 02:50) Фраз...   Aug 18 2008, 23:03
|||- - defunct   Цитата(aaarrr @ Aug 19 2008, 02:03) ОК. И...   Aug 18 2008, 23:19
|||- - aaarrr   Цитата(defunct @ Aug 19 2008, 03:19) нет ...   Aug 18 2008, 23:32
|||- - defunct   Цитата(aaarrr @ Aug 19 2008, 02:32) Стран...   Aug 18 2008, 23:57
|||- - aaarrr   Цитата(defunct @ Aug 19 2008, 03:57) Там ...   Aug 19 2008, 00:09
|||- - defunct   Цитата(aaarrr @ Aug 19 2008, 03:09) но пр...   Aug 19 2008, 00:17
||- - zltigo   Цитата(defunct @ Aug 19 2008, 00:40) Как ...   Aug 18 2008, 22:52
||- - defunct   Цитата(zltigo @ Aug 19 2008, 01:52) Тфу, ...   Aug 18 2008, 23:01
||- - zltigo   Цитата(defunct @ Aug 19 2008, 01:01) Быва...   Aug 18 2008, 23:24
|- - zltigo   Цитата(defunct @ Aug 18 2008, 23:58) т.е....   Aug 18 2008, 22:10
|- - defunct   Цитата(zltigo @ Aug 19 2008, 01:10) pNAME...   Aug 18 2008, 22:16
|- - zltigo   Цитата(defunct @ Aug 19 2008, 00:16) это ...   Aug 18 2008, 22:28
- - aaarrr   Цитата(zltigo @ Aug 19 2008, 01:05) Челов...   Aug 18 2008, 21:52
- - sergeeff   Я бы несколько по-другому поставил вопрос. Полезно...   Aug 19 2008, 05:52
|- - SergeiCh   Цитата(sergeeff @ Aug 19 2008, 12:52) Пол...   Aug 19 2008, 06:40
- - aaarrr   Тем, кто имеет слабость лениться думать самостояте...   Aug 19 2008, 06:15
|- - zltigo   Цитата(aaarrr @ Aug 19 2008, 08:15) Тем, ...   Aug 19 2008, 08:52
|- - defunct   Цитата(zltigo @ Aug 19 2008, 11:52) это е...   Aug 19 2008, 10:34
|- - aaarrr   Цитата(defunct @ Aug 19 2008, 14:34) Каче...   Aug 19 2008, 11:19
||- - defunct   Цитата(aaarrr @ Aug 19 2008, 14:19) По по...   Aug 19 2008, 12:18
||- - aaarrr   Цитата(defunct @ Aug 19 2008, 16:18) Прав...   Aug 19 2008, 12:34
|- - zltigo   Цитата(defunct @ Aug 19 2008, 12:34) inli...   Aug 19 2008, 12:42
|- - defunct   Цитата(zltigo @ Aug 19 2008, 15:42) Не со...   Aug 20 2008, 00:09
|- - zltigo   Цитата(defunct @ Aug 20 2008, 02:09) Вопр...   Aug 20 2008, 09:26
- - asket   Работаю в Crossworks, хотелось бы поработать с lib...   Aug 19 2008, 07:53
- - aaarrr   Цитата(asket @ Aug 19 2008, 11:53) Работа...   Aug 19 2008, 08:36


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

 


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


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