Например TDA7294

Форум РадиоКот • Просмотр темы - Вопросы по С/С++ (СИ)
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт апр 18, 2024 18:49:04

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7581 ]     ... , , , 358, , , ...  
Автор Сообщение
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс янв 09, 2022 20:55:53 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Затем, что никто не объясняет механизма.
Я же показал что будет без volatile. Как ещё объяснить? На форуме только и делаю, что пингвинов поднимаю (с) М.Задорнов

Правильно так, как надо в отдельно взятом случае,
Делать надо хорошо, плохо само получится.

в противном случае оптимизатор был неотключаем вообще и тотально,
И это правильно. Имеет смысл один раз выставить оптимизацию на максимум (по размеру или скорости). Правильно написанная программа должна работать с любыми ключами оптимизации.

и всюду бездумно пихалось бы volatile.
С дуру и хрен сломать можно. А конкретно тут volatile нужен обязательно.
Изображение
Вложение:
not_ups.png [42.62 KiB]
Скачиваний: 572


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс янв 09, 2022 21:32:41 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
Martian, доступ к регистрам обязан быть волатильным, иначе будут неописуемые косяки.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс янв 09, 2022 22:10:46 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
Прекрасно неволатильно читаю из регистров без косяков. Всяких, описуемых и нет.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс янв 09, 2022 23:27:53 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Да можете хоть на ноль делить, только других этому учить не надо.


Вернуться наверх
 
Организация питания на основе надежных литиевых аккумуляторов EVE и микросхем азиатского производства

Качественное и безопасное устройство, работающее от аккумулятора, должно учитывать его физические и химические свойства, профили заряда и разряда, их изменение во времени и под влиянием различных условий, таких как температура и ток нагрузки. Мы расскажем о литий-ионных аккумуляторных батареях EVE и нескольких решениях от различных китайских компаний, рекомендуемых для разработок приложений с использованием этих АКБ. Представленные в статье китайские аналоги помогут заменить продукцию западных брендов с оптимизацией цены без потери качества.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс янв 09, 2022 23:44:04 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
Да? А по-моему, надо. А эти ваши "укажи волители и всё будет хорошо", "включи оптимизатор и всё будет работать" или "делать надо так, чтобы работало всегда при любых опциях" - так что ли, учить надо? Показывая крайне частные, и зачастую не имеющие практического смысла примеры, притом, без объяснения, почему? А также без приведения и других вариантов, дающих тот же эффект справа.
Но зачем? Новичку так ничего не будет понятно, он просто шаблонно и бездумно повторит. А неновичку сообщения о каких-то там доступах к регистру с косяками не нужно.
VladislavS, скажите мне, почему надо делать чтение из регистра волатильным? Что именно плохого, если нет?
И, кстати, на ноль делить можно.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вс янв 09, 2022 23:56:25 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
VladislavS, скажите мне, почему надо делать чтение из регистра волатильным? Что именно плохого, если нет?

Изображение
https://godbolt.org/z/WsdqExKWM
Вложение:
123.png [36.93 KiB]
Скачиваний: 512

И, кстати, на ноль делить можно.
Вам да, я разрешаю.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 00:13:03 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
Мне не требуется Вашего разрешения, не всё в мире ограничено школьной алгеброй.
На мой вопрос Вы не ответили, к сожалению.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 00:16:57 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
На мой вопрос Вы не ответили, к сожалению.
Вы не видите разницы между тем что делает foo1() и foo2(), отличающиеся одним словом volatile? Тогда о чём вообще можно говорить....


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 06:24:09 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
Martian писал(а):
почему надо делать чтение из регистра волатильным? Что именно плохого, если нет?
регистр, как правило, связан с аппаратурой, .е. его значение может измениться в любой момент, т.е. даже между двумя подряд идущими считываниями. компилятор об этом знать не может, поэтому может посчитать, что вместо двух подряд идущих считываний можно сделать одно и использовать результат дважды, т.е. он как бы может закэшировать считанные данные и второй раз к регистру уже не обращаться. volatile обязывает его всякий раз, когда встречается имя этой переменной, осуществлять реальный физический доступ к соответствующей области памяти. даже в таком случае:
Код:
volatile uint32_t *reg = 123456;

*reg;

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 07:07:56 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
ARV, если посмотреть на foo1() с моей картинки, то видно, что он может вообще ни одного чтения не сделать. Он как бы говорит: "Мальчик, ты дурак? Возьми конфетку (true) и иди отсюда."


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 07:56:30 
Ум, честь и совесть. И скромность.
Аватар пользователя

Карма: 97
Рейтинг сообщений: 2058
Зарегистрирован: Чт дек 28, 2006 08:19:56
Сообщений: 18030
Откуда: Новочеркасск
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (1) Мявтор 3-й степени (1)
это другой крайний случай: компилятор имеет право не делать то, что по его мнению не имеет смысла. например, пустой цикл.
Код:
for(i=0; i<100;i++); // может не делать
for(volatile int i=0; i<100;i++); // не может не делать

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

Мой уютный бложик... заходите!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 09:14:42 
Грызет канифоль
Аватар пользователя

Карма: 2
Рейтинг сообщений: 10
Зарегистрирован: Сб янв 23, 2016 00:59:59
Сообщений: 287
Откуда: Чебоксары
Рейтинг сообщения: 0
Благодаря вам всем мне стало более понятно, для чего нужен volatile и когда его применять.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 10:41:05 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
Рекомендую прочесть http://www.pic24.ru/doku.php/osa/articl ... r_chainiks - это более полно объясняет, чем неполные ответы на форуме (я не говорю - плохие, просто неполные). К сожалению, статьи про методы оптимизации и использования оптимизаторов не могу порекомендовать, не попадалась.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 13:12:58 
Сверлит текстолит когтями

Карма: -10
Рейтинг сообщений: 93
Зарегистрирован: Вт авг 15, 2017 10:51:13
Сообщений: 1154
Рейтинг сообщения: 0
jcxz, uint32_t *ptr = 0x40020000; // объявляем указатель
*ptr = 1024; // по адресу указателя пишем новое значение.
Проверил в CubeIDE, компилируется и работает в железе.
И что?
Вы увидели, что в данном конкретном компиляторе с данными конкретными ключами оптимизации - работает. И что?
Не понятно, что хотели этим сказать..... :dont_know:

Добавлено after 4 minutes 5 seconds:
Правильно написанная программа должна работать с любыми ключами оптимизации.
+++

Добавлено after 3 minutes 59 seconds:
Прекрасно неволатильно читаю из регистров без косяков. Всяких, описуемых и нет.
Попробуйте немного оторваться от клавиатуры, включить голову и подумать почему именно так происходит. И почему происходит как в примере VladislavS.
Вроде как всё должно быть само собой понятным.

Добавлено after 3 minutes 33 seconds:
скажите мне, почему надо делать чтение из регистра волатильным? Что именно плохого, если нет?
Надо делать (обязательно) его таким, только если важен сам факт чтения. Если же важно только прочитанное значение - не надо (не обязательно).
Опять-же советую подумать над этим. Т.е. - задействовать голову, а не пальцы на клавиатуре. :dont_know:


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 13:52:14 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
jcxz, спасибо за совет подумать, но, боюсь, он лишний - всё это уже обдумано-продумано. Я задал вопрос не потому, что нуждаюсь в ответе, а потому, что на подобные вопросы начинающих отвечают неверно, неполно и неправильно, и с ужасными (да-да) примерами. Вот Вы активно пометили мнение о правильной программе, обязанной работать при любых уровнях оптимизации. Может, тогда Вы мне ответите, зачем тогда куча уровней оптимизации? Показать бы такое мнение чувакам из Микрочипа, которые вечно оговаривают условие успешной компиляции и работоспособности...

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 14:18:43 
Поставщик валерьянки для Кота
Аватар пользователя

Карма: 18
Рейтинг сообщений: 403
Зарегистрирован: Вт май 01, 2018 19:44:47
Сообщений: 2479
Рейтинг сообщения: 0
Может, тогда Вы мне ответите, зачем тогда куча уровней оптимизации?
Чтобы хоть какую-то отладку поиметь. После оптимизации O3 с LTO результирующий код имеет невысокую связь с исходным.

Показать бы такое мнение чувакам из Микрочипа, которые вечно оговаривают условие успешной компиляции и работоспособности...
Никогда не видел подобного. Но если это правда, то им бы с компилятором поработать надо. А пока, бежать оттуда куда глаза глядят.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Пн янв 10, 2022 14:36:02 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1320
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10429
Рейтинг сообщения: 0
VladislavS, ну вот, уже ближе к телу )
С XC8 там достаточно много подобного было. Один фреймворк усб чего стоил. Сейчас, правда, не знаю, давно ушел от пиков, может, теперь у них всё идеально.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб янв 15, 2022 22:40:57 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый вечер. Переписал все библиотеки для дисплейчика SSD1306 128х64 с ардуиновского на чистый С++. Дело конечно кропотное. Прошел весь тест. Всё работает. Приобрел некоторый практический опыт программирования (классы, темплеты ну и пр.) Вопрос у меня скорее организационный - архив 3.3M не загружается (там и модель в Протеусе) Как быть господа коты?


Вложения:
IMG_0500.JPG [84.67 KiB]
Скачиваний: 71
Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Сб янв 15, 2022 23:16:35 
Собутыльник Кота
Аватар пользователя

Карма: -12
Рейтинг сообщений: -25
Зарегистрирован: Пт июл 12, 2019 22:52:01
Сообщений: 2525
Рейтинг сообщения: 0
архив 3.3M не загружается

Для таких вещей есть сосфорж, гитхаб, битбакет, гитлаб и т.д., и т.п.

_________________
Linux rules! Windows must die. Здравомыслящий человек добровольно будет пользоваться мастдаем лишь в двух случаях: под дулом автомата или под влиянием анального зонда.
Я на гитхабе, в ЖЖ


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Вопросы по С/С++ (СИ)
СообщениеДобавлено: Вт янв 18, 2022 20:02:42 
Встал на лапы
Аватар пользователя

Зарегистрирован: Пн ноя 04, 2019 09:58:29
Сообщений: 102
Откуда: г. Нижний Тагил Свердл. обл.
Рейтинг сообщения: 0
Добрый вечер.
Экспериментально установил, что если;
#define MIN(a,b) (((a)<(b))?(a):(b))
#define MAX(a,b) (((a)>(b))?(a):(b))

компилятор выдает;
Program Memory Usage : 16374 bytes 50,0 % Full
а если;
inline static bool MIN( auto a, auto b ){ return (((a)<(b))?(a):(b)); }
inline static bool MAX( auto a, auto b ){ return (((a)>(b))?(a):(b)); }

то;
Program Memory Usage : 15016 bytes 45,8 % Full
Говорил в миру один - "макросы зло!"


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7581 ]     ... , , , 358, , , ...  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 18


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y