реклама на сайте
подробности

 
 
2 страниц V  < 1 2  
Reply to this topicStart new topic
> Задолбал volatile!, Keil, STM32
777777
сообщение Aug 12 2011, 12:17
Сообщение #16


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(aaarrr @ Aug 12 2011, 15:36) *
Звучит почти невероятно. Всякое бывает, конечно, но не верится как-то, чтобы не всплыл такой косяк.

Ничего невероятного. Я находил баг даже в Visual Studio 7.1, правда не критичный - переменная const не воспринималась компилятором как const. А уж Кейл - не самая передовая фирма.
Цитата(aaarrr @ Aug 12 2011, 15:36) *
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


Цитата(zltigo @ Aug 12 2011, 15:39) *
Сдается мне, что там дело вовсе не в volatile. Просто тыкая volatile куда не поподя удалось сломать оптимизацию компилятору настолько, что изначально мутный код что-то начал делать.

А вы не любите пролетариат!

Цитата(Aaron @ Aug 12 2011, 16:06) *
Или же ещё вариант: если у вас только одна такая структура, то объявите её сразу:
struct {
volatile ...
volatile ...
} our_struct;

Именно так и пришлось поступить - все члены сделал volatile
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 12 2011, 12:29
Сообщение #17


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (777777 @ Aug 12 2011, 15:17) *
А вы не любите пролетариат!

Ну так десяток РЕАЛЬНЫХ строк приведите в качестве багрепорта. Тогда и будет ясно, кто есть ху. Для меня пока очень подозрительным является вообще написание кода в котором требуется заметное количество volatile переменых. Практически видно, что Вы заставили что-то работать объявив volatile весь фрейм. Исходя из личного опыта считаю такой подход к программированию достаточно странным.



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
365
сообщение Aug 15 2011, 04:00
Сообщение #18





Группа: Новичок
Сообщений: 5
Регистрация: 26-07-11
Пользователь №: 66 421



Цитата(777777 @ Aug 12 2011, 16:17) *
А уж Кейл - не самая передовая фирма.

ммм... А это ничего, что Кейл, собсно не фирма, а торговая марка ARM Holdings?
Да, и в RealView volatile работает правильно. В смысле, в полном соответствии со стандартом.

Приведите плз кусок кода и опции компилятора.
Go to the top of the page
 
+Quote Post

2 страниц V  < 1 2
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 19th July 2025 - 18:16
Рейтинг@Mail.ru


Страница сгенерированна за 0.01391 секунд с 7
ELECTRONIX ©2004-2016