Romario (28.09.2005 14:43, просмотров: 1) ответил Boroda на Подскажите plz почему такой запутанный h файл at91sam7s64?...
Ответ: 1) typedef volatile unsigned int AT91_REG;// Hardware register definition
AT91_REG это тип, эквивалентен типу "volatile unsigned int"
можно и так
#define AT91_REG volatile unsigned int
Пункт 2
объявление структуры членами которой являются регистры уарта
которые имеюn тип AT91_REG
#define AT91C_BASE_US0 ((AT91PS_USART) 0xFFFC0000) // (US0) Base Address
адрес начало блока (структуру) уарта названная AT91C_BASE_US0. в железе она
размещается по адресу 0xFFFC0000
Пункт 4
обявление указателей на реальные регистры в железе
можно будет написать *AT91C_RSTC_RSR = 0x00 например
2) зачем двойная запись AT91S_USART, *AT91PS_USART;?
с первым типом отождествляется стурктура со вторым - указатель на структуру
3) С базовым адресом USART_а все понятно,ну а как компилятор знает
какие смещения имеют регистры USART_а относительно базового адреса?
если присмотреться, то смещение в структуре эквивалентно смещению реальных
регистров в железе относительно базы.
AT91PS_USART USART_pt = AT91C_BASE_US0;
объявление указателя на структуру AT91S_USART. Адрес указателю присавивается
AT91C_BASE_US0
p.s.
изучаем учебник по С