|
at91, помогите разобраться |
|
|
|
Aug 15 2008, 19:08
|

Участник

Группа: Участник
Сообщений: 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
|
|
|
|
|
 |
Ответов
|
Aug 18 2008, 12:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007

|
Цитата(aaarrr @ Aug 18 2008, 13:54)  Еще один показательный пример для любителей lib_AT91  Нормальный компилятор не должен ругаться на число параметров > 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 полно ошибок. А кто мешает их исправить и пользоваться дальше?
|
|
|
|
|
Aug 18 2008, 12:21
|
Гуру
     
Группа: Свой
Сообщений: 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 позволяют очень удобно смотреть содержимое регистров. Лучшего способа, чем добавить такую "сущность"  в watch, я просто не знаю. Против структур я ничего не имею, если забыть про дурацкие названия с префиксом "AT91S_".
|
|
|
|
Сообщений в этой теме
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
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|