Цитата(singlskv @ Oct 8 2007, 18:19)

Объясните мне пожалуйста, зачем эту структуру содержащую адреса регистров портов нужно объявлять volatile ? Недопонимаю...
В данном конкретном случае - может и не нужно. Но рано или поздно захочется написать
while( pport->pin & mask ) { }и тут уже в полный рост встанет то, что оптимизатор компилятора не имеет права делать предположения типа "раз только что прочитано это значение, то ещё раз его читать не нужно".
Цитата(singlskv @ Oct 8 2007, 18:51)

Проблемма в том что я обращения к портам еще не увидел

А читать структру содержащую адреса портов можно и через volatile, тока зачем ?
Да не адреса портов в структуре!
Вся структура "мапится" на пространство ввода-вывода, у нас указатель на структуру, мы говорим, что она лежит по такому-то адресу, а там не память, а порты.