Size: a a a

2020 September 05

ПК

Побитый Кирпич... in pro.cxx
Valentin Kornienko
Пишу драйвер флешки, хочу использовать максимально DMA и неблокировать все что можно не блокировать
Дак корутины тут не обязательны, они только код упрощают
источник

AP

Antony Polukhin in pro.cxx
Valentin Kornienko
Спрошу тут, вдруг кто сталкивался. Легковесные корутины плюсовые для ARM Cortex M3-M4, железка bare-metal не встречали?
Clang + https://github.com/lewissbaker/cppcoro подойдёт ?
источник

AP

Antony Polukhin in pro.cxx
Valentin Kornienko
Пишу драйвер флешки, хочу использовать максимально DMA и неблокировать все что можно не блокировать
А разве тогда не надо пользоваться ядерными примитивами?
источник

VK

Valentin Kornienko in pro.cxx
Побитый Кирпич
Дак корутины тут не обязательны, они только код упрощают
проблема в чем. У меня периферия камня не может обработать больше 255 байт за одну пересылку DMA.
источник

VK

Valentin Kornienko in pro.cxx
Antony Polukhin
А разве тогда не надо пользоваться ядерными примитивами?
Вот в том и фишка, ОС никакой на железке нет вообще
источник

VK

Valentin Kornienko in pro.cxx
Ни FreeRTOS, ни  Embedded Linux. Т.е. спартанские условия, условно
источник

ПК

Побитый Кирпич... in pro.cxx
olologin
я вот пытался нагуглить но так и не врубился у кого конкретно были проблемы
Там вроде были проблемы с обработкой невалидных байтовых последовательностей
источник

AP

Antony Polukhin in pro.cxx
Valentin Kornienko
Ни FreeRTOS, ни  Embedded Linux. Т.е. спартанские условия, условно
А вот что-то такое не поможет https://en.m.wikipedia.org/wiki/Micro-Controller_Operating_Systems ?
источник

VK

Valentin Kornienko in pro.cxx
Сейчас буду смотреть. Спасибо!
На самом деле, давно задумываюсь о поднятии ОС на железке.
источник

o

olologin in pro.cxx
Побитый Кирпич
Там вроде были проблемы с обработкой невалидных байтовых последовательностей
источник

ПК

Побитый Кирпич... in pro.cxx
Ну там чёто нет ответа на вопрос
источник

ПК

Побитый Кирпич... in pro.cxx
Вообще, если уж юзать  файловые стримы, то только narrow. Wide какие то неюзабельные мне показались. По крайней мере на винде. С narrow ты можешь его в бинарном режиме открыть и записать туда что угодно, хоть utf 8, хоть utf 16.
источник

o

olologin in pro.cxx
Да это понятно, просто есть старый API который нельзя легко поменять
источник

VK

Valentin Kornienko in pro.cxx
@antoshkka https://github.com/geky/coru
нашел вот такую библиотеку
источник

VK

Valentin Kornienko in pro.cxx
Не С++ корутины, но выглядит минималистично
источник

NP

Nikita Provotorov in pro.cxx
Гайз, пытаюсь тут вникнуть в доклад Андрея Давыдова о модулях, там был пример с template instantiation context (https://youtu.be/iE6TpS8UG_w?t=2318), в котором то, соберется ли пользовательский код (TU #4), использующий сторонние модули, стандартом не специфицируется. У меня вопрос, а как быть прикладному программисту, который пишет реализацию TU #4? Получается, что он должен симпортированным шаблонным функциям дать определение (не объявление) класса X, только вот откуда этот прикладной программист должен знать, что этим функциям вообще нужен этот X, и уж тем более, откуда он возьмет дефиницию X?
YouTube
Андрей Давыдов — Модули: Изменения в core language
Ближайшая конференция — С++ Russia 2020 Piter
11-14 ноября, Online
Подробности и билеты: https://cppconf-piter.ru/

. Модули — крупнейшая фича C++. На ней завязаны изменения в build tools, package managers, надежды на оптимизацию времени компиляции, вопросы того, как лучше организовывать код (module per translation unit vs module per library).

За всеми этими важнейшими высокоуровневыми вещами теряются технические подробности, понимание того, какое влияние оказывают модули на core language. А оно есть, и не маленькое, ведь если раньше компилятор работал с единицами трансляции по одной, то с появлением модулей правила игры поменялись.

В рамках доклада мы ответим на следующие вопросы:

- что такое reachable entity и чем это отличается от visible;
- как модули влияют на ADL;
- могут ли entities с internal linkage протечь в другой модуль;
- может ли импортировать класс одновременно как complete, и как incomplete;
- что будет с inline-функциями в модульном мире.

От слушателей ожидается общее знакомство с принципами…
источник

D

Danya in pro.cxx
Привет всем
Тут наткнулся на интересную вещь
Почему у std::array (и у других контейнеров тоже) только empty помечен [[nodiscard]], а остальные геттеры нет?
http://eel.is/c++draft/array
источник

BS

Basil Semuonov in pro.cxx
Danya
Привет всем
Тут наткнулся на интересную вещь
Почему у std::array (и у других контейнеров тоже) только empty помечен [[nodiscard]], а остальные геттеры нет?
http://eel.is/c++draft/array
чтобы люди не писали по ошибке array.empty(); думая что его почистили
источник

D

Danya in pro.cxx
Basil Semuonov
чтобы люди не писали по ошибке array.empty(); думая что его почистили
Вопрос не в этом
Почему другие функции не были помечены тоже? size, max_size, например
источник

OZ

Olzhas Zhumabek in pro.cxx
Danya
Привет всем
Тут наткнулся на интересную вещь
Почему у std::array (и у других контейнеров тоже) только empty помечен [[nodiscard]], а остальные геттеры нет?
http://eel.is/c++draft/array
то что я видел на stackoverflow обычно про то что empty выглядит как глагол, будто этот метод будет очищать контент. А остальные вроде норм. Но а так да, было бы логичнее поставить на все. Насколько я помню эта метка не должна влиять на unevaluated context, так что код сломать не должна. Был какой то трюк с шаблонами, где пишешь using discard = int[]; discard{/*expressions*/};, только этот случай может сломатся
источник