777777 0 12 августа, 2011 Опубликовано 12 августа, 2011 · Жалоба Звучит почти невероятно. Всякое бывает, конечно, но не верится как-то, чтобы не всплыл такой косяк. Ничего невероятного. Я находил баг даже в Visual Studio 7.1, правда не критичный - переменная const не воспринималась компилятором как const. А уж Кейл - не самая передовая фирма. 777777, можете озвучить версию компилятора? µVision V4.00u Toolchain: RealView MDK-ARM Version: 4.03a Toolchain Path: BIN40\ C Compiler: Armcc.Exe V4.0.0.524 Assembler: Armasm.Exe V4.0.0.524 Linker/Locator: ArmLink.Exe V4.0.0.524 Librarian: ArmAr.Exe V4.0.0.524 Hex Converter: FromElf.Exe V4.0.0.524 CPU DLL: SARMCM3.DLL V4.03a Dialog DLL: DARMSTM.DLL V1.45b Target DLL: BIN\UL2CM3.DLL V1.62 Dialog DLL: TARMSTM.DLL V1.43 Сдается мне, что там дело вовсе не в volatile. Просто тыкая volatile куда не поподя удалось сломать оптимизацию компилятору настолько, что изначально мутный код что-то начал делать. А вы не любите пролетариат! Или же ещё вариант: если у вас только одна такая структура, то объявите её сразу: struct { volatile ... volatile ... } our_struct; Именно так и пришлось поступить - все члены сделал volatile Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
zltigo 1 12 августа, 2011 Опубликовано 12 августа, 2011 · Жалоба А вы не любите пролетариат! Ну так десяток РЕАЛЬНЫХ строк приведите в качестве багрепорта. Тогда и будет ясно, кто есть ху. Для меня пока очень подозрительным является вообще написание кода в котором требуется заметное количество volatile переменых. Практически видно, что Вы заставили что-то работать объявив volatile весь фрейм. Исходя из личного опыта считаю такой подход к программированию достаточно странным. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
365 0 15 августа, 2011 Опубликовано 15 августа, 2011 · Жалоба А уж Кейл - не самая передовая фирма. ммм... А это ничего, что Кейл, собсно не фирма, а торговая марка ARM Holdings? Да, и в RealView volatile работает правильно. В смысле, в полном соответствии со стандартом. Приведите плз кусок кода и опции компилятора. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться