170 похожих чатов

Ну ок, может тогда надо было создать это средство, а

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

27 ответов

28 просмотров

Надо было изначально писать абстракциями, а не битики вручную выставлять)

Поставить битик - это ещё фигня. Иногда возникает необходимость писать в регистры определенные последовательности. И надо быть уверенным что компилятор не решит изменить их порядок

Stas-Koynov Автор вопроса
🐈
Поставить битик - это ещё фигня. Иногда возникает ...

ну тут барьер компилятора или на крайний случай барьер памяти вам в руки.

Kirill Bolshakov
Надо было изначально писать абстракциями, а не бит...

Сдается мне, изначально этот код был вообще на С написан

Kirill Bolshakov
Надо было изначально писать абстракциями, а не бит...

Не совсем понимаю как можно выставить абстрактный битик на неабстрактной железке. и зачем тут нужен слой абстракции?

Stas-Koynov Автор вопроса
Kirill Bolshakov
Надо было изначально писать абстракциями, а не бит...

какие абстракции? я же приводил пример. вот у меня ригистр уарта в памяти 0x005050 туда мне нужно поставить бит 12. я что должен для этого написать рекурсивный шаблон? мне просто по адресу нужно поставить бит. зачем придумывать ерунду. зачем строить замки. просто бит по указателю все.

Stas Koynov
какие абстракции? я же приводил пример. вот у меня...

Это же не просто рандомное число, оно что то значит, для чего то ты пишешь туда. В крайнем случае, ты можешь сделать абстракцию "выставить бит", уже хоть что то будет. И все эти дизъюнкции будут написаны один раз в одном месте

Stas Koynov
какие абстракции? я же приводил пример. вот у меня...

а зачем в с++ стандарте куча текста про конкретно твой юзкейс если по большому счету это всё равно implementation defined?

Stas-Koynov Автор вопроса
Андрей Руссков
а зачем в с++ стандарте куча текста про конкретно ...

я не знаю. про какую абстракцию говорите вы. я говорю у меня вот есть регистр. у него есть адрес ххххх мне туда надо записать один битик все! зачем я должен что-то писать еще? Холивар идет про то что в C++20 сделали устаревшим |= &= += -= и т.п операции с волотайл переменной вот и все.

Stas Koynov
я не знаю. про какую абстракцию говорите вы. я гов...

это вам кажется что надо "просто записать один битик"

🐈
Не совсем понимаю как можно выставить абстрактный ...

слой абстракции нужен, потому что дизъюнкция это одно, а то что ты хочешь это другое

🐈
Подробнее

дизъюнкция - ненужный посредник. Хочешь включить лампочку пиши лампочка.включить();. Или хотя бы включить(лампочка). А не абвгд->какая_то_маска |= какая_то_магическая_константа_еёжз

Stas-Koynov Автор вопроса
Kirill Bolshakov
дизъюнкция - ненужный посредник. Хочешь включить л...

все эти АБВГД который вы не понимаете идут из датошитов! Мне тот же АРМ дал CMSIS вот я что должен его переписать его весь? ибо они же идиоты, кто они все го лишь производители ядра. щас вот будет НВИДЕ да кто она такая. они не умеет в красивый интерфейсы... Ибо код пишут для Си и С++. это раз. АБВГ быстро гуглится по датошиту.

Kirill Bolshakov
дизъюнкция - ненужный посредник. Хочешь включить л...

А кто напишет абвгд->какая_то_маска |= какая_то_магическая_константа_еёжз? Оно откуда появится?

🐈
А кто напишет абвгд->какая_то_маска |= какая_то_ма...

Этого вообще не будет, будет какой-нибудь set_bit абстракция с разными фичами, типа compile time проверок и т.д. В её реализации так и быть, будет дизъюнкция. Одна на всю кодобазу

Stas-Koynov Автор вопроса
🐈
А кто напишет абвгд->какая_то_маска |= какая_то_ма...

вот выше я код привел он из CMSIS. некоторые производители дают сдк (драйвера) для железа. ибо CMSIS ограничен ядром, железо у всех свое

Kirill Bolshakov
Этого вообще не будет, будет какой-нибудь set_bit ...

Скажи, ты писал что-либо низкоуровневое для железок?

Stas Koynov
все эти АБВГД который вы не понимаете идут из дато...

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

Stas-Koynov Автор вопроса
ilynxy
Вот это гугление по дэйташиту как раз и лишнее. Ну...

да господи все там поняно. выже понимаете что cos это косинус? и я понимаю что: UART->CTRL |= BDR_57600. вот прям даже к гадалке не иду. и датошит не открываю вижу прям, даже не вижу, а читаю. что в уарте выставили баудрэйт 57600.

Kirill Bolshakov
Да, к своему сожалению

Видимо неудачный опыт?

ilynxy
Вот это гугление по дэйташиту как раз и лишнее. Ну...

Оно не лишнее. Зачастую знать, как "эта хрень с лампочкой" называется в даташите намного важнее, чем то, что это лампочка.

Stas Koynov
да господи все там поняно. выже понимаете что cos ...

Ага. Только у нас разработчики железок очень любят регистровые модели писать в виде биты-описание битов. в итоге разговор между железнячниками и программистами выглядит так:" запиши 1 в 3 и 7 бит такого-то регистра". причём всё нормально, все привыкли, никто кроме меня особо не возмущается. В итоге я попросил для железки с которой работаю написать в регистровой модели названия битов, как они названы в прошивке для плис...

Stas Koynov
да господи все там поняно. выже понимаете что cos ...

По своему опыту с атмегами, шаблоны С++ оборачивают регистры и таймеры просто замечательно.

Stas-Koynov Автор вопроса
Гласси
По своему опыту с атмегами, шаблоны С++ оборачиваю...

и? в шаблоне я все равно не смогу писать reg |= flags. вопрос в этом. а не то что можно обернуть или нет. люди на шаблонах регулярки пишут для компайл тайм. в десятки тысяч строк.

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Карта сайта