ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
30 июня
40394 Топик полностью
Romario (28.09.2005 22:13, просмотров: 1) ответил Boroda на Спасибо , немного прояснилось и тем не менее...
Ответ: указателя на тип переменной не бывает. указатель бывает только на участок памяти. AT91PS_USART a; AT91S_USART *b; a и b равноценны. >>AT91PS_USART USART_pt = AT91C_BASE_US0; >>-это объявление указателя USART_pt на тип AT91PS_USART и >>присвоение ему значения AT91C_BASE_US0 точнее так: это объявление указателя USART_pt на память которая представляется в виде структуры типа AT91S_USART. сразу же при объявлении указателю присваивается начальное значени запись AT91PS_USART USART_pt = AT91C_BASE_US0; эквивалента записи AT91S_USART *USART_pt = AT91C_BASE_US0; далее, >>#define AT91C_BASE_US0 ((AT91PS_USART) 0xFFFC0000) // (US0) Base >>Address >>адрес начало блока (структуру) уарта названная AT91C_BASE_US0. в >>железе она >>размещается по адресу 0xFFFC0000 >>ведь запись (AT91PS_USART) 0xFFFC0000 похожа на приведение >>0xFFFC0000 к указателю на тип AT91PS_USART ну а дальше #define... после такой записи можно ползоваться выражениями типа AT91C_BASE_US0->xxx=yyyy; где xxx - требуемый регистр.