nickita startcev (nicka_startcev) wrote,
nickita startcev
nicka_startcev

Category:

arm-none-eabi-gcc

пощупал разные гцц.

вообще, сейчас как-то так гцц резко рвануло. от гцц2.х до гцц3.х оно росло долго, медленно и печально, потом резко гцц4,5,6 итд.

платформа - "stm32f407discovery" с соответствующим чипом, усб-раб. ацп, таймеры, спи, уарт, гпио, софтверный 1-варь -- в общем, ничего особенного. щупал гцц 6, 7, 8.1 и 8-гит.

1. включение LTO в коде, opencm3 -- режет объём чуть ли не на треть, особенно если в коде случайно подцепить sprintf с зависимостями

2. игры с -O2 -O3 -Os раскладыванием функций по секциям итп - ну.. ээ.. афтырям мэйкфайлов, автокрапа и разных библиотек надо бы моск включить: при ЛТО секции скорее вредят, плюс невозможность заменить ар на гцц-ар, лд на гцц-лд и некоторые соседние вещи при конфигурировании проектов выбешивают (превед автокрапу), невозможность глобально один раз указать вот эти тюнинги - тоже раздражает.

3. магия. от гцц6 до гцц7 (рукосборный, иногда с патчами. дебиан64-стойло в роли хоста) игры с -О2..-О3..-Оs могут заметно уменьшать объём кода, а могут сорвать крышу бредом вида "после ретурна в функции возвращающей вообще константу внезапно вылезает ошибка линковки - неизвестный внешний символ _sbrk"

4. официальный гцц 8.1 нерабочий. по крайней мере с сабж, при исходниках с/с++ -- линковщик-оптимизатор-лто банально падает где-то в недрах на парсинге каких-то конфигов на strchr(что-то-там, "+"), затыкание ошибки грубой силой сходу не помогло, но и фиг с ним.

5. с гита гцц 8.х последний - тоже нерабочий без патчей из коробки (все сопутствущие либы - с официальных сайтов, последние офф релизы, но не с гит-цвс-свн), но буквально две-три итерации "падаем в файле Ъ на strchr(Ы, Ё)", тупо руками привсовываем перед этим strchr проверку параметров -- начинает работать, генерировать код, код вроде рабочий, но чуть жирнее чем генерит гцц7.

6. кривой вопрос. где можно обсудить п1-5 на русском или англицком? да так, чтоб не просто обсудить, но и о(б)суждение возымело эффект.

7. чуть в сторону. опенскад с бустом и еще кучей хитрых библиотек. если всё собирать с лто -- распидорасивается и не линкуется, но беглый взгляд видит кучу мелких функций -- то есть, лто в принципе может заметно ускорить. где обсудить? да, когда рендер занимает единицы часов и более 2 гб памяти - с оптимизацией разобраться очень хочется

8. еще в сторону. в опенскаде можно тупо рисовать 3д-объекты, экспортировать в формат "stl", масштабировать, вычитать, суммировать, резать, вращать. после этого зачастую объекты превращаются в тыкву с дырами, не рендерятся, итп. может есть альтернатива? может есть какая-нибудь векторная хрень, чтоб из честного опенскадного "объединять и пересекать кубы-шары и результаты этого булевого" создавать не растр с треугольниками, а этакий вектор? а потом в траекторию головки 3дпринтера-репрапа превращать не стрёмный растр с дырочками, а именно вектор?

имхо, тут в принципе можно было бы как-то из опенскада портировать В ВЕКТОР А НЕ РАСТР внутреннее представление, и не передискретизировать растр, а один раз хитро растеризовать вектор?

всё, батхёрд иссяк, пойду читать Шумила и думать, средние конечности у Драконов к позвоночнику крепятся как таз или как лопатки? :))

This entry was originally posted at https://nicka-startcev.dreamwidth.org/24716.html.
comment count unavailable comments
Subscribe

  • откопал мутанта

    досбокс, под ним win311, под ним вин16 игрушка. донастроил до 1280х1024, ибо 1680х1050 досбокс/вин311 не умеет. не драйвер же писАть расширение для…

  • псевдоопечатка

    теория становится материальной силой, когда овладевает _к_ассами

  • дыбр, погромистское

    из камеры что-то прёт, по обещаням 640x32 (32, не 320) точек, 1000 (тысяча) кадров/сек. разбираюсь с декодированием в png а потом планирую в ави с…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 1 comment