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

 
 
> 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
sergeeff
сообщение Aug 18 2008, 12:13
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(aaarrr @ Aug 18 2008, 13:54) *
Еще один показательный пример для любителей lib_AT91 sad.gif


Нормальный компилятор не должен ругаться на число параметров > 4 (ISO/IEC 9899 : 5.2.4.1 Translation limits -> 127 parameters in one function definition).

Ни в одной из имеющихся в моем архиве lib_xxx не обнаружил AT91C_BASE_AIC->AIC_IMR = 1 << AT91C_ID_PIOA;

Очевидно, что в lib_xxx полно ошибок. А кто мешает их исправить и пользоваться дальше?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Aug 18 2008, 12:21
Сообщение #4


Гуру
******

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



Цитата(sergeeff @ Aug 18 2008, 16:13) *
Нормальный компилятор не должен ругаться на число параметров > 4 (ISO/IEC 9899 : 5.2.4.1 Translation limits -> 127 parameters in one function definition).

Это Вы к чему? Здесь описано только ограничение на количество параметров.

6.5.2.2:
Цитата
If the expression that denotes the called function has a type that includes a prototype, the
number of arguments shall agree with the number of parameters. Each argument shall
have a type such that its value may be assigned to an object with the unqualified version
of the type of its corresponding parameter.


6.10.3:
Цитата
If the identifier-list in the macro definition does not end with an ellipsis, the number of
arguments (including those arguments consisting of no preprocessing tokens) in an
invocation of a function-like macro shall equal the number of parameters in the macro
definition. Otherwise, there shall be more arguments in the invocation than there are
parameters in the macro definition (excluding the ...). There shall exist a )
preprocessing token that terminates the invocation.



Цитата(sergeeff @ Aug 18 2008, 16:13) *
Ни в одной из имеющихся в моем архиве lib_xxx не обнаружил AT91C_BASE_AIC->AIC_IMR = 1 << AT91C_ID_PIOA;

Это не из lib_.

Цитата(sergeeff @ Aug 18 2008, 16:13) *
Очевидно, что в lib_xxx полно ошибок. А кто мешает их исправить и пользоваться дальше?

Это, как бы так помягче выразиться, мартышкин труд, Вы не находите?

Опять таки, выясняется, что есть разные версии этих библиотек. Тихий ужас.

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

Против структур я ничего не имею, если забыть про дурацкие названия с префиксом "AT91S_".
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
|- - SergeiCh   По мне структуры хороши хотя бы тем, что при отлад...   Aug 18 2008, 12:19
|- - zltigo   Цитата(SergeiCh @ Aug 18 2008, 14:19) По ...   Aug 18 2008, 12:48
||- - SergeiCh   Цитата(zltigo @ Aug 18 2008, 19:48) А смо...   Aug 18 2008, 13:57
||- - zltigo   Цитата(SergeiCh @ Aug 18 2008, 15:57) Но ...   Aug 18 2008, 14:15
||- - aaarrr   Цитата(zltigo @ Aug 18 2008, 18:15) Зато ...   Aug 18 2008, 14: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
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


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


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