Vladislav
они еще и 36-битные
там вообще все очень весело: Fixed-point, either integer or fraction Whole word – 36-bit (ones' complement) Half word – two 18-bit fields per word (unsigned or ones' complement) Third word – three 12-bit fields per word (ones' complement) Quarter word – four 9-bit fields per word (unsigned) Sixth word – six 6-bit fields per word (unsigned) Floating point Single precision – 36 bits: sign bit, 8-bit characteristic, 27-bit mantissa Double precision – 72 bits: sign bit, 11-bit characteristic, 60-bit mantissa Alphanumeric FIELDATA – UNIVAC 6-bit code variant[2] (no lower case characters) six characters in each 36-bit word.[3] (FIELDATA was originally a seven-bit code of which only 64 code positions (occupying six bits) were formally defined.[4]) ASCII – 9 bits per character (right-most eight used for an ASCII character) four characters in each 36-bit word Правда очень сомневаюсь что там были компиляторы C++
Berkus
https://en.wikipedia.org/wiki/UNIVAC_1100/2200_series
о, у меня полный дом таких, ага
PRoSToC0der
а, и где такие дают?
особо нигде, но C++ от таких машин не отказывается
PRoSToC0der
Хуже, это со знаковым целочисленным нулём.
вот я как раз и думаю, что из-за знакового нуля на таких машинах нельзя получить strong_order в <=>
Berkus
я думаю знаковый ноль насильственно приравнивается беззнаковому и на этом история заканчивается
Berkus
траблы только со сложением и вычитанием
Aleksey
Как проверить, кэшируемость памяти? Что определенные участки памяти кэшируются, а другие - нет?
Aleksander
а как можно применить такие знания?
Arseny
Кешируемость где?
Aleksey
Это для применения во встраиваемой системе. Есть процессор, и есть желаемая задача: запрет кэшируемости участка памяти озу и в идеале вместо того, чтобы данные уходили в кэш, они должны уходить во внешнюю память.
Aleksander
повторю вопрос: а как можно применить такие знания?
Aleksander
и причём здесь C++ ?
Никита
+ Какая ОС)
Aleksey
Это может помочь в отладке программ. Я надеюсь, что такое можно реализовать на с++, а не лезть в ассемблер. Но уже понял, что нет.
Aleksey
Если процессор встанет, можно посмотреть, что скэшировалось во внешнюю память. Это может помочь в определении места, где произошла ошибка.
Aidar
можете чекнуть как на вашей платформе реализованы барьеры памяти
Aidar
возможно их хватит
Aidar
но нельзя сказать что это ожидаемое поведение
Никита
Если процессор встанет, можно посмотреть, что скэшировалось во внешнюю память. Это может помочь в определении места, где произошла ошибка.
Вряд ли вы точно узнаете место. Процессор оптимизирует в том числе и последовательность команд. Как правильно сказали выше - это не 100% метод
Никита
В данном случае у него есть подробная документация на камень если это правда эмбеддед
В любом случае, если процессор встанет, то определить ошибку будет достаточно сложно, особенно если данные кешируется на внешнюю память, что очень долго, если сравнивать с кеш) Так что знатно прийдется покопаться, если нет опыта.
Aleksey
Опыта нет, но начальник требует разобраться именно с такой функциональностью. Спасибо всем за помощь.
Aleksander
@aesee какая ОС?
Никита
Точно ошибку пусть и не определит, но в таких ситуациях же любая дополнительная информация может помочь.
Профита будет явно меньше чем геморроя. Например, кто тебе просто так даст разрешение на управление определенной областью памяти? Я вообще с этой область не связан,но уверен, что есть другие методы отлавливание таких проблем.
Aleksey
Aleksander
C++ будет сложно запустить, а использовать тем более
Никита
По поводу разрешений, работа ведётся в режиме, который предоставляет доступ к любым регистрам и любой памяти
Я уже увидел, что у тебя не ОС и у тебя есть полный доступ. Значит проблема быстро решаемая)
Aleksey
C++ будет сложно запустить, а использовать тем более
Под платформу есть компилятор c++, но да, у меня возникла куча проблем. Например, хип работает неадекватно, а try-catch игнорируются.
Aleksander
Под платформу есть компилятор c++, но да, у меня возникла куча проблем. Например, хип работает неадекватно, а try-catch игнорируются.
Придётся копать очень глубоко. Иначе будет безумно сложно понять место и причину ошибок. Возьми чистый Це, не мучайся.
Aleksander
ЭТО СИЛЬНО УПРОЩАЕТ ДЕЛО!
Неа, это просто делает проблему решаемой. Но цена будет космической.
Никита
Какие ещё условия важны?
Я о том, что задал вопрос без описания текущих условий. Например, если ты работаешь через ОС или у тебя есть прямой доступ к процессору. Просто разные вещи и проблемы. Опиши все сначала. И да, бери Си
Aleksey
Окей, на си перейти вполне возможно, но я все еще не совсем понимаю, какую именно искать информацию, чтобы реализовать запрет кэшируемости
Berkus
Неа, это просто делает проблему решаемой. Но цена будет космической.
по-моему он какую-то не ту проблему решает, не было же изначально проблемы "сделать управление кэшированием страниц на с++" или была?
Berkus
если ARM based то ARM ARM, там есть несколько MCR
Aleksey
Мне ставили требование писать на с++, но это решаемый вопрос, я думаю
Berkus
в эмбеддеде все делается прямым доступом к регистрам и прочим управляющим тумблерам
Berkus
так что можешь это в с++ завернуть, никто не против
Berkus
try catch тебе там не нужен особо
Berkus
это будет очень low-level C++ как, например, в Pistachio
Никита
try catch тебе там не нужен особо
Он написал, что есть проблема с компилятором.
Aleksey
Тогда вот такой вопрос: какие ключевые слова на английском мне искать в документации? На русский перевода нет, и с английским я в общем-то дружу, но есть масса терминов, которые ещё не знаю
Aleksander
ага, никаких new (вернее с большими оговорками). Никаких исключений. Не смотреть в std:: и всякие либы
Aleksey
Он написал, что есть проблема с компилятором.
Это не проблема компилятора, насколько я понимаю
Berkus
Он написал, что есть проблема с компилятором.
он написал что есть проблемы с try catch
Berkus
И проблема с кучей
кучу можно и свою написать, это недолго
Berkus
опять же, если это нужно
Berkus
в ++ можно и без кучи спокойно прожить
Berkus
placement new завезли
Berkus
Тогда вот такой вопрос: какие ключевые слова на английском мне искать в документации? На русский перевода нет, и с английским я в общем-то дружу, но есть масса терминов, которые ещё не знаю
ищи в документации управление памятью, expansive поиск будет по словам "memory", "cache", "control" еще можно "control register" поискать
Berkus
как человек, написавший кусок ОСи на С++, я тебе говорю - можно без проблем писать лоу левел код на плюсах, это гораздо удобнее чем си
Aleksey
А проц какой?
На архитектуре riscv
Berkus
На архитектуре riscv
https://github.com/riscv/riscv-wiki/wiki/RISC-V-Cores-and-SoCs который из?
Aleksey
На рокете
Aleksander
http://scmrtos.sourceforge.net/ScmRTOS
Aleksander
Ну я тоже в эмбеддед пишу, на крестах и FreeRTOS. Когда начинал, зассал scmRTOS освоить, теперь жалею.
Maksim
Доброе утро. Подскажите, пожалуйста, легален ли подобный код https://godbolt.org/g/cdi4Mz в рамках C++17? Отказывается компилироваться на gcc (trunk) и clang (trunk), но компилируется на последнем MSVC.
Maksim
Я так и написал (что ругается).
Berkus
На рокете
надо еще посмотреть как у него сделан MMU, возможно там есть perpage управление кэшированием, например
Aleksei
Мне тут из соседнего отдела коллега рассказал, что у него студия игнорировала delete на конструкторе копирования. Нормально собирался проект, а gcc ошибку в нужном месте выдавал. Забыл только версию спросить
Aleksei
Я так и написал (что ругается).
но так ведь она длействительно не constexpr, разве нет?
Maksim
А так уже работает: https://godbolt.org/g/8rWu9V
Anatoly
а так относительно стандартной в этих ваших линуксах является, вроде, http://fukuchi.org/works/qrencode/ (в частности, её использует python-qrencode)
#vcpkg #qr #libqrencode #qrencode добавил порт в vcpkg этой библиотеки, правда, когда замержат не знаю https://github.com/Microsoft/vcpkg/pull/2372 теперь можно использовать библиотеку и под виндой
Anatoly
про студию и с++ давно шутки ходят, но они стараются
а что, есть безгрешные компиляторы?
Aleksei
пригласи коллегу с примером, баг репорт запостили надеюсь?
Я не спросил версию. Может это 2012-ая была.