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

 
 
> Задолбал volatile!, Keil, STM32
777777
сообщение Aug 12 2011, 08:31
Сообщение #1


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

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



Имеется структура, которая используется в прерывании, поэтому объявляю ее volatile. Однако компилятор выкидывает обращение к полям этой структуры. То есть, к примеру, пишу
Код
if(Command.Data[0] == 1)
    {
    ...
    }

а компилятор считает, что Data[0] всегда не равно 1 и поэтому выкидывает содержимое скобок.
Оказывается, нужно еще и каждое поле структуры объявлять volatile! Это что, нормально? Я же саму переменную Command объявил volatile, этого мало? По стандарту так положено? Или глюк в Кейле?

Сообщение отредактировал 777777 - Aug 12 2011, 08:41
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
one_eight_seven
сообщение Aug 12 2011, 09:21
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 916
Регистрация: 3-10-08
Из: Москва
Пользователь №: 40 664



Цитата
Значит в кале не соблюдают стандарты,

Не исключено. Но также не исключено неверное объявление.

volatile struct x{
/*stuff*/
} volatile_x;

struct x non_volatile_x;

Сообщение отредактировал one_eight_seven - Aug 12 2011, 09:24
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- 777777   Задолбал volatile!   Aug 12 2011, 08:31
- - one_eight_seven   Но ведь решение найдено и известно. Как вариант - ...   Aug 12 2011, 08:41
|- - 777777   Цитата(one_eight_seven @ Aug 12 2011, 12...   Aug 12 2011, 08:44
- - one_eight_seven   Фу, грубиян. Выложите как объявляли переменную и з...   Aug 12 2011, 08:53
- - sasamy   Цитата(777777 @ Aug 12 2011, 12:31) Я же ...   Aug 12 2011, 09:04
- - scifi   Цитата(777777 @ Aug 12 2011, 12:31) Имеет...   Aug 12 2011, 09:23
|- - 777777   Цитата(scifi @ Aug 12 2011, 13:23) Не вер...   Aug 12 2011, 10:13
- - one_eight_seven   Хм. А вот так будет работать? struct _CCommand ...   Aug 12 2011, 10:35
|- - 777777   Цитата(one_eight_seven @ Aug 12 2011, 14...   Aug 12 2011, 10:40
- - Genadi Zawidowski   ...   Aug 12 2011, 10:39
- - scifi   Бага в компиляторе. Стандарт языка (C99 - точно) г...   Aug 12 2011, 11:17
|- - aaarrr   Цитата(scifi @ Aug 12 2011, 15:17) Бага в...   Aug 12 2011, 11:36
|- - 777777   Цитата(aaarrr @ Aug 12 2011, 15:36) Звучи...   Aug 12 2011, 12:17
|- - zltigo   QUOTE (777777 @ Aug 12 2011, 15:17) А вы ...   Aug 12 2011, 12:29
|- - 365   Цитата(777777 @ Aug 12 2011, 16:17) А уж ...   Aug 15 2011, 04:00
- - zltigo   Сдается мне, что там дело вовсе не в volatile. Пр...   Aug 12 2011, 11:39
- - Aaron   Если использовать typedef struct {...}, то надо ср...   Aug 12 2011, 12:06


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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 17:35
Рейтинг@Mail.ru


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