Цитата(Alexey Belyaev @ Aug 7 2008, 09:29)

т.е. 32к во внешней. Всё остальное не изменно.
А не может сбоить сама внешняя память? Попробуйте какой-нибудь тест написать (записать псевдослучайную последовательность и считывать ее в цикле, считая сбои), может программа и не виновата.
Цитата(Alexey Belyaev @ Aug 7 2008, 05:06)

:\ А как "железо" может сменить указатель?

Может. Самый простой пример - указатель стека. Более сложный - регистры адреса источника и приемника при ПДП (DMA). Софтовые варианты - указатель изменяется в прерывании. Или еще один случай - многопоточное приложение, доступ к указателю в разных потоках.
volatile перед стуктурой распространяет volatile на все члены структуры.
Если ни один из этих вариантов не подходит под ваш случай, то вам не нужно делать указатели volatile - этим вы дадите больше свободы оптимизатору, код станет короче и/или быстрее.