Перейти к содержанию

    

Kabdim

Свой
  • Публикаций

    622
  • Зарегистрирован

  • Посещение

Репутация

0 Обычный

Информация о Kabdim

  • Звание
    Знающий

Контакты

  • Сайт
    http://
  • ICQ
    0

Информация

  • Город
    Зеленоград

Посетители профиля

4 418 просмотров профиля
  1. На чем писать

    При чем тут vnc? В видеочипе много черной магии, о которой spi-драйвер не знает. Возможно получится, но вам ручками придется переносить данные из текстуры в которые будете рендерить в spi.
  2. Возможно стоит попробовать jenkins, а для каждого проекта оставить наиболее нативный способ сборки. У нас оно прижилось хорошо т.к. умеет много серверную сборку. Соответственно разные серверы можно на разных осях. Да и бодрее это когда сразу в несколько машин собирается.
  3. На чем писать

    Оно очевидно и не должно было работать. Видеоядро в малине не подключено к spi и ничего о том мониторе не знает. Возможно получится отрисовывать второй "рабочий стол" в текстуру, загружать в основную память и потом передавать по spi, но жизнеспособность этого решения неизвестна пока не попробуешь.
  4. ТСу если он решится нужно профилировать свои исходники и искать бутылочное горлышко. Переписывать все не нужно.
  5. Оптимизации просто так не пропадают. На них пишутся юниттесты и если вдруг они перестают работать, то такие изменения как правило даже не попадают в develop. Так что 99,9% не порушатся. Т.к. компилятору дана вся необходимая информация то и на новой платформе она будет оптимизирована близко к оптимальному. Для х86, желательно что бы массив ваших данных был выравнен 128/256 бит и тогда оптимизатор будет использоваться sse автоматом. Имхо это круто один раз написать предельно корректно и на выходе получить хорошо оптимизированный код без необходимости ручной правки. И не будет необходимости писать что-то на асме.
  6. Очень рад что получилось! :) Глаз правда режет одновременно и прагма и выравнивающие поля. От чего-то из них можно и нужно отказаться.
  7. Т.е. вы против того что корректно написанные программы не зависят от опций компиляции, но контраргументы у вас метафоричные.
  8. Не смогу, я из армии приверженцев гнутым компиляторам. :)
  9. Я вас не критикую, и да компилятор может такой код, даже с подсказкой о выравнивании, скомпилировать неоптимально. Но тем обиднее видеть что пример сформулирован не до конца корректно.
  10. И что компилятор, который соответствует платформе и аби размещает вам атомарные переменные в те области где не работает атомарность? Вы общее заявление о том что вы знаете некие общие случаи когда нужно нарушать стандарт аргументируете примерами из узкой области прямо связанной с железом с чем никто и не спорил.
  11. Для этого есть вполне конкретные инструменты, что в С, что в С++. В чем необходимость использовать не их, а полагаться на особенности реализации платформы? Напомню вопрос был про задачи где требуется нарушать, а не кому-то хочется или кто-то не знает как правильно. А что ИАР - это С, а С это ИАР? Я говорил про заметно более ранние времена.
  12. Вы же компилятору не сообщили что они выравнены по слову. Такое объединение по стандарту считается выравненным на 2 байта. Со всеми вытекающими из этого возможностями для оптимизации. Вам стоило обявить так: union AdcFastData { struct { u16 ampU; u16 ampV; u16 ampW; u16 voltH; //UQ0.16 }; u16 raw[4]; uint32_t align_placeholder; // или прагамами для структуры. а для всяких ссе нужно было добавить еще лучше выравнивание };
  13. И да, тут проскакивал аргумент для чего вообще сделана возможность компилировать без оптимизаций. Наверняка это ввели только ради кривых рук. Расскажу тем кто не знает, большие С++ проекты компилируются очень долго. Долго значит часами, а когда компютеры были маленькими могло и днями. В то же время при разработке удобно быстро скомпилировать только что написанное и посмотреть работает оно адекватно или нет. Так было принято еще до изобретения ТДД и кучи бибилиотек для него. Нижние уровни оптимизации нужны именно для ускорения цикла внесение изменений-компиляция-проверка.
  14. Аргументируйте пожалуйста, нарушать правила нужно только в тонком слое прямо связанным с железом. Приведите пожалуйста пример, вне этой области где требуется нарушать правила.