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

 
 
> Задолбал 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
Ответов
scifi
сообщение Aug 12 2011, 09:23
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(777777 @ Aug 12 2011, 12:31) *
Имеется структура, которая используется в прерывании, поэтому объявляю ее volatile. Однако компилятор выкидывает обращение к полям этой структуры.

Не верю. Объявление структуры (и типа, и переменной) - в студию.
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
- - one_eight_seven   ЦитатаЗначит в кале не соблюдают стандарты, Не иск...   Aug 12 2011, 09:21
|- - 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 Текстовая версия Сейчас: 20th July 2025 - 20:23
Рейтинг@Mail.ru


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