Поздравляем Dingo с днём рождения!
- Про тонкости работы сетей в контейнерной инфраструктуре. Когда TCP
быстрее UDP Evgeny_CD(1 знак., 14.01.2022 14:14, dao, ссылка, полностью)
- свежак KGP для мелко армов: klen(2011 знак., 06.12.2021 12:37, dao, ссылка, полностью)
- А есть хоть какой-то шанс, что в gcc завезут __builtin_rbit ?
Простой пример VladislavS.(200 знак., 02.01.2022 11:33)
- У вас в двух последних предложениях есть противоречие - или С++
таки хороший - тогда почему нельзя написать универсально (под вашу
платформу результат будет работать быстро, под не вашу - собираться
и тормозить, но Вы же и не обещали оптимизацию по скорости, но зато
собирается и работает), или таки не очень хороший (хотя для
использования всех фич железа без использования асма - подходит -
но тогда С остаётся кому нужна переносимость) - symbions(09.12.2021 09:09)
- Совет не использовать C вредный, необдуманный. Патетика. Но мысль о
том что C++ тяжел и непрост - верна. Результат использования C++
продемонстрирован в этой теме на примере std:stringstream -
желающим предлагается вступить в борьбу за уменьшение размера.
"Состояние души когда между asm/c++ стирается граница" тоже
патетика, поскольку абсолютно вся культура C++, в особенности
современная расчитана именно на высокий уровень, про ассемблер речи
не идет, и большинство C++ RxTx(105 знак., 08.12.2021 01:16)
- Думаю, что здесь не вина языка, а вина ... создателей
std-библиотеки, большая часть которой написана так, что чёрт ногу
сломит. - Kceния(08.12.2021 08:20)
- Почему следует использовать C? Потому что это оптимально. Embedded
проекты в большинстве своем небольшой величины, разрабатываются и
поддерживаются небольшим количеством разработчиков, и содержат
механизмы наиболее корректно (достаточно) выражающиеся средствами
C. Именно по этой же причине C используется в системном
программировании UNIX, LINUX, RTOS, Windows, причем C++ считается
Deprecated. - RxTx(08.12.2021 01:23)
- "люди!! не пишите код для эмбеддед на С - он вяжет Вам руки и ноги
и выкалывает глаза," - остаётся вопрос как понять идеологию языка и
научиться применять его? Не синтаксис, не понять что такое
объект-класс-темплейт, а научиться применять язык как инструмент.
Если проще - как постигнуть дзэн? - Dingo(07.12.2021 20:17)
- вроде как плэйнси тут ни в чём не виноват.. фyтбoлиcт(1 знак., 07.12.2021 07:59,
, ссылка)
- Так, возможно, возможно, я понял, о чем говорил Мастер Klen. И
вообще смысл С++ в embedded. Evgeny_CD(4056 знак., 06.12.2021 23:30, ссылка)
- Мне не нравится постановка "правильно использовать". Имею к плюсам
лютую идиосинкразию, хотя и прокачал некоторые скилы по теме. Меня
вообще в разработке ПО расстраивает привязка к неязыкам (асм) и
диалектам (плюсы). Особенно к такому, ИМХО, костыльному набору
диалектов, как C++ Embedded. Развивайте. Успехов! Всё будет Rust:) - Vit(06.12.2021 21:25)
- Я нашел библотеку для тренировки Klen. POCO Это старый, хорошо
продуманный проект. Интересно, во что его удастся утрамбовать Klen Evgeny_CD(2 знак., 06.12.2021 21:14, ссылка, ссылка)
- сразу сообщаю - вброс говна на вентилятор про С vs С++ это как
повод задуматься как улучшить то чем мы занимаемся - разработкой.
никого испачкать не планирую :) ну так на всякий случай - вдруг
религиозные чувства задену. мнение не может совпадать с дорогой
редакцией и я конечно неправ :) - klen(06.12.2021 15:31)
- Наброшу. framer(546 знак., 06.12.2021 17:47, картинка, картинка)
- РАЗБОР предложенного случая framer klen(3302 знак., 06.12.2021 19:25)
- Вот интересное замечание. Да действительно, где объекты только с
пустым конструктором и не используются то прироста кода нет.
Оптимизатор их чикает. Но если вызвать со списком инициализации
тогда прирост кода есть. Есть разница между: framer(602 знак., 06.12.2021 21:33, картинка)
- Был такой проект - uSTL. Да сплыл. This library is obsolete. Please
use the official gcc C++ standard library. Evgeny_CD(1 знак., 06.12.2021 20:39, ссылка)
- ETL - Embedded Template Library Evgeny_CD(2 знак., 06.12.2021 20:50, ссылка, ссылка)
- EASTL - Electronic Arts Standard Template Library, (старая 2007)
для встроенных систем, игровых приставок и т.д. и исходники. Costic(50 знак., 14.01.2022 17:26, ссылка, ссылка)
- Смотрите на гитхабе ustring и uvector - альтернатива std::string и
std::vector, для embedded решений без проблем с фрагментацией кучи. Totoro(2 знак., 03.01.2022 01:26,
, ссылка, ссылка)
- Написание собственного аллокатора - задача не тривиальная, а
алгоритмами аллкокации могут заниматься целые кафедры вузов. Часто
достаточно обычного placement new, например, для буферов
приёмопередатчиков его хватает с головой. Да и в std-контейнерах
особой нужды нет, для своих проектов я реализовал stl-совместимые
кольцевой буфер, связный список и кое-чего ещё по мелочи. - evgeniy1294(06.12.2021 20:35)
- Спасибо! Однако страшно стало. Если "newlib" каждый раз под новый
MCU переписывать, пусть даже с 10го раза будет навык это делать, то
затраты времени будут велики. А можно какой-нибудь "HAL",
средствами C++20, конечно, выделить, чтобы все остальное было
архитектурно независимо. Evgeny_CD(103 знак., 06.12.2021 20:30)
- Большое спасибо за детальный разбор. - framer(06.12.2021 19:53)
- Еще если бы карта этих зависимостей была бы доступна...тогда можно
было бы построить пространство фич С++, и в нем жить в проекте. - Evgeny_CD(06.12.2021 18:02)
- Какой компилер? - Evgeny_CD(06.12.2021 17:59)
- Это с LTO? - Nikolay_Po(06.12.2021 17:50)
- Уговорил. Будем кодить на исконно-посконном ЦЭ :) - Гyдвин(06.12.2021 13:47)
- Спасибо! Если грань между C++ и asm стереть, то это будет хуже, чем
большой проект на asm. Переносимости по архитектуре не будет.
Совместимость с C++25 (условно) не факт что будет. Лучше уж
хардкорно, на асме. Иначе надо знать два дзена - С++ и asm. - Evgeny_CD(06.12.2021 13:37)
- Где там что про асм? Ключи компилятору, какие возможности
использовать. Вроде всё на этом. - Dingo(06.12.2021 14:31)
- Ерунду пишите, Евгений. Или я вас неправильно понимаю. Вся прелесть
в том, что современный компилятор, с отлаженной оптимизацией LTO,
стирает грань между программированием на ассемблере и
программированием на С++. Надписанный на C++ код, оптимизируется
компилятором на уровне инструкций контроллера, считай, в
ассемблере. Делая использование ассемблера разработчиком
бессмысленным. Nikolay_Po(647 знак., 06.12.2021 13:54)
- я удивлен и сильно обрадован.... оказываеццо есть все таки надежда
и свет в нашем стаде эмбеддед програмеров! Вы почти точно выразили
ситуацию и мысли которыми руководствоваться комитет по стандарту.
единственное уточнение - современный С++ позволяет программисту
указать компилятору. как бы помогать ему генерить этот самый
правильный и эффективный асм код, ты как бы пишешь на асме но
категориями высокоуровнего С++. Фокус в том что при этом не
теряется независимость от klen(803 знак., 06.12.2021 14:50 - 14:55)
- Можно подробнее, где в низкоуровневой части С++ улучшения по
сравнению с С, которые позволяют программисту помогать компилеру
лучше генерить код? - Evgeny_CD(06.12.2021 14:54)
- самое поверхностное и понятное, шаблоны, ссылки, constexpr consteval, constinit, lamda, примеры где проглядывается связь именно с таргетом и его
инструкциями и регистрами я приведу пожже и мы это разберем. это
чуть посложнее. Все дело в том что С++ вниз умеет протолкнуть
больше информации об организации данных и их связях. - klen(06.12.2021 15:02)
- Странно, что сейчас виртуальные функции и перегрузку операторов не
ценят. По-моему, они - самое лучшее в С++. - Costic(06.12.2021 21:29)
- Шаблоны, ссылки, лямбды - мне кажется это не про оптимизацию, а про
упрощение кодирования. А все сорта const... это исключительно от
разделения компиляции и линковнки. Если предположить, что
разделения нет, то компилятор сам может догадаться, где нужно
вызвать функцию sin(x) , а где заменить на константу sin(1) - AlexBi(06.12.2021 15:43)
- Жалкое подобие левой руки, эти ваши шаблоны с константными
выражениями! То ли дело на макросах препроцессора навернуть! - LightElf(06.12.2021 15:26)
- Почитал, например, про consteval, не увидел какого-то особого,
высшего смысла. Evgeny_CD(1 знак., 06.12.2021 15:20, ссылка)
- Зайдем с другой стороны. Хороших книг по C++ с прицелом на ebedded
катастрофически мало. Тайное знание никак не удается
распространить. - Evgeny_CD(06.12.2021 15:04)
- Я лох в С++, но мне понимается обратное. Скорее С можно натьюнить
так, особенно, если специфическими GCC расширениями и прагмами
пользоваться, чтобы код стал более эффективным. - Evgeny_CD(06.12.2021 15:01)
- Я понял Klen так, что он предлагает широко использовать asm вставки
в накуренном C++ коде - Evgeny_CD(06.12.2021 14:05)
- Вредные советы для С++ программистов Evgeny_CD(1 знак., 14.01.2022 14:16, dao, ссылка, полностью)
- Huawei планирует построить собственный завод по производству чипов
и поможет ей SMIC Evgeny_CD(1 знак., 14.01.2022 14:30, dao, ссылка)
- Любопытно. 3 технологических прорыва 2020–2021 — до чего дошло
человечество? Evgeny_CD(1 знак., 14.01.2022 14:21, dao, ссылка, полностью)
- Хабр. Собственный zigbee2mqtt на C++ с бустом и исключениями Evgeny_CD(1 знак., 14.01.2022 14:08, dao, ссылка)
- Нетривиальное. Настройка MikroTik для маскировки параметра TTL при
раздаче трафика. Чтобы ОПСОСы не палили Evgeny_CD(1 знак., 14.01.2022 14:05, dao, ссылка)
- [Сервера и суперкомпьютеры на ARM архитектуре] Сводный системный. Evgeny_CD(3553 знак., 15.11.2019 22:31, dao, полностью)
- Пока Evgeny_CD не добрался :). "Просто о шаблонах C++", кстати,
первый коммент от некого @fk01 Chum_A(1 знак., 12.01.2022 17:12, dao, ссылка, полностью)
- Хабр. Правила и рекомендации по комментированию в коде Evgeny_CD(1 знак., 14.01.2022 00:57, dao, ссылка)
- Образцы Intel Raptor Lake уже могут забутить венду Evgeny_CD(1 знак., 14.01.2022 00:46, dao, ссылка)
- Разборка Intel Xeon Sapphire Rapids. В прямом смысле Evgeny_CD(1 знак., 14.01.2022 00:40, dao, ссылка)
- Установка Android Debug Bridge (ADB) под разными host осями и
работа со всем этим Evgeny_CD(1 знак., 13.01.2022 22:21, dao, ссылка)
- Посоветуйте, на чем проще начать делать мобильные приложения с BLE
сейчас и на будущее с USB возможно? Для андроида точно и возможно
для огрызка в будущем. С одной стороны хочется пощупать современные
языки и методы, с другой времени на изучение мало и моск уже не
тот. А с третьей дочку пытаюсь в ит втащить, но с переменным
успехом. - Andreas(13.01.2022 16:13, dao, полностью)
- Как мобильный разработчик со стажем 16 лет, посоветую не тратить
время и силы на кроссплатформенные решения. На мобилках это
работает только на примитивных приложениях. И то работает отстойно
и выглядит убого - всегда. А если нужны всякие фичи платформы:
доступ к оборудованию, звук, видео, итд - то и подавно нечего
ловить. xarcass_(177 знак., 13.01.2022 20:25,
)
- Технически можно на Qt, будет работать ведре и десктопах, про IOS
ничего не могу сказать - не пробовал. Пишут, что умеет и туда. - evgeniy1294(13.01.2022 18:32)
- Мы делаем кроссплатформенные приложения на Delphi под
Win/Mac/iOS/Android/Linux. Кайф в том, что отлаживаешь всё очень
быстро под виндой, а под каждой платформой только свой уже
тонкости. Для работы с iOS требуется дополнительно macBook купить,
там ставишь xCode, который соединяется с Delphi по сети. Настройка
примитивная, в инете полно примеров со скриншотами. - FDA(13.01.2022 18:23)
- Ты уже сделал ошибку задавая вопрос здесь. Это твоя первая ошибка
приводящая к фатальным результатам. Подобные вопросы надо задавать
на профильных форумах мобильных разработчиков (а сейчас еще лучше в
группах Slack, Stackowerflow, Telegram). - RxTx(13.01.2022 17:44)
- Flutter. И создатель (google) годный и язык (dart) просто отличный.
==>>>> cheblin(130 знак., 13.01.2022 17:32, ссылка)
- Если нет потребности в мейнстриме, то делфи - самое то... POV(150 знак., 13.01.2022 16:14)
- Классика жанра. «Никто не захочет смотреть фото по телевизору»: в
1975 году в Kodak разработали цифровую камеру, но отказались от
идеи Evgeny_CD(1 знак., 13.01.2022 22:13, dao, ссылка)