Yevi

Пользователь

Регистрация: 29.12.2018

Сообщения: 1149

Рейтинг: 277

Нарушения: 130

Yevi

Регистрация: 29.12.2018

Сообщения: 1149

Рейтинг: 277

Нарушения: 130

куpepecool.png. юзали ли вы данный сабж когда-нибудь? если да, то что он конкретно для вашей работы сделал(момент, когда было не обойтись без него)?

желательно простым языком описать суть его работы в вашем куске кода и его влияния на программу.

.

Коржик

Пользователь

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 100

Коржик

Регистрация: 15.09.2018

Сообщения: 2091

Рейтинг: 272

Нарушения: 100

а почему именно c++?

бтв также часто как и пишешь многопоточные методы

Yevi

Пользователь

Регистрация: 29.12.2018

Сообщения: 1149

Рейтинг: 277

Нарушения: 130

Yevi

Регистрация: 29.12.2018

Сообщения: 1149

Рейтинг: 277

Нарушения: 130

Коржик сказал(а):

а почему именно c++?

бтв также часто как и пишешь многопоточные методы

Нажмите, чтобы раскрыть...

потому, что я не знаю всех отличий с от спп.

пример для даунов(меня) будет? чтобы без volatile программа неправильно работала.

Salovar

Пользователь

Регистрация: 12.07.2017

Сообщения: 4783

Рейтинг: 1007

Salovar

Регистрация: 12.07.2017

Сообщения: 4783

Рейтинг: 1007

При работе с дма каналом, иногда происходила перезапись переменной, без волатайла это значение терялось и дма зависал к мамке пуджа

Yevi

Пользователь

Регистрация: 29.12.2018

Сообщения: 1149

Рейтинг: 277

Нарушения: 130

Yevi

Регистрация: 29.12.2018

Сообщения: 1149

Рейтинг: 277

Нарушения: 130

Salovar сказал(а):

При работе с дма каналом, иногда происходила перезапись переменной, без волатайла это значение терялось и дма зависал к мамке пуджа

Нажмите, чтобы раскрыть...

на простом примере можно показать? или в 5-ти строчной программе volatile будет юзлесс?

Salovar

Пользователь

Регистрация: 12.07.2017

Сообщения: 4783

Рейтинг: 1007

Salovar

Регистрация: 12.07.2017

Сообщения: 4783

Рейтинг: 1007

Yevi сказал(а):

на простом примере можно показать? или в 5-ти строчной программе volatile будет юзлесс?

Нажмите, чтобы раскрыть...

Юзлес.

R47k41

Пользователь

Регистрация: 16.05.2016

Сообщения: 1328

Рейтинг: 1451

R47k41

Регистрация: 16.05.2016

Сообщения: 1328

Рейтинг: 1451

Yevi сказал(а):

куpepecool.png. юзали ли вы данный сабж когда-нибудь? если да, то что он конкретно для вашей работы сделал(момент, когда было не обойтись без него)?

желательно простым языком описать суть его работы в вашем куске кода и его влияния на программу

Нажмите, чтобы раскрыть...

volotile  связан с оптимизацией. Например для исключения задержек при чтении страницы памяти через указатель. Обработав твой цикл, компилятор будет действовать по умолчанию и при первом обращении может считать всю страницу, что вызовет некоторую задержку. Но, если в цикле использовать volatile, то полного считывания страницы при первом обращении к указателю не будет. Это, наверное, важно при написании прог для каких-нибудь микрух, где цена задержки велика. В обычной жизни - это не используется. Я ни разу не использовал.

saw_tooth

Пользователь

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

saw_tooth

Регистрация: 20.08.2013

Сообщения: 5550

Рейтинг: 3286

Yevi сказал(а):

момент, когда было не обойтись без него

Нажмите, чтобы раскрыть...

Любые манипуляции с GPIO регистрами контроллера в цикле, требуют volatile.

Все global или shared переменные, рекомендуется указывать как volatile, особенно если они мелкие.