а в чем разница между компилятором из GNU Arm Embedded Toolchain и gcc? я не могу прошивку скомпилировать через gcc? допустим stm32f407 модель, разве нельзя указать gcc при компиляции таргет аля cortex m4

Комментарии: 24

  1. Anonim

    Не можете. Т.к GCC не компилирует ARM, он предназначен для x86 и x86_64. При этом gcc не может компилировать PE, из пакета ELF, и наоборот.

    • Tiny

      разве? кросс компиляция же есть в gcc?

      • Anonim

        Эта кросс-компиляция выражается в модификациях GCC. В одном компиляторе GCC нет сразу всех архитектур

        • Tiny

          я под маком (x86-64) компилировал код для арма, но это было десктопное приложение, не ембед

          • Anonim

            И в том числе есть GCC для PE, и есть для ELF Да, из пакета GCC ARM

    • Aleksey

      Подробнее здесь пожалуйста, а то пацаны походу не знают

    • Anonim

      И давно у нас гцц в арм не умеет?

      • Anonim

        GCC - не умеет. А вот модификация GCC из пакета ARM, умеет. Перечитайте вопрос

        • Aleksey

          Не сразу и без правильного binutils вообще не сможет ничего Ответ неправильный, gcc может, но не путайте дефолтный gcc который в нативную архитектуру и какие то тулчейны для кросс компиляции. Более того, gcc это нашлепка поверх нескольких софтин, основная задача это запуск с правильными параметрами всех прочих утилит, которые нужны для трансляции в бинарник. Так что просто говорить gcc не умеет это некорректно. x64-gcc не умеет, а arm-gcc умеет, но и то и то - gcc

          • Anonim

            Шта? А почему я с помощью гцц собираю под арм? То что есть дополнение таргетов для него не делает гцц не гцц Совершенно верно

  2. Ogurezzz

    для AVR, например, свой комилятор gcc-avr.

    • Anonim

      В общем, для минималистичности GCC разделены по архитектурам. avr-gcc (модификация для AVR), gcc (обычный), avr-libc (модификация для AVR), libc (обычный). Так же для ARM и др. архитектур.

      • Aleksey

        Тогда и про бинутилс помяните, для начала

    • Tiny

      различные компиляторы это понятно, но один и тот же компилятор может иметь разные бэкенды под каждую платформу

      • Anonim

        "бэкенды"?...

        • Tiny

          да, это часть компилятора которая по абстрактному синтаксическому дереву генерирует машинный (и не только) код

          • Anonim

            Нет, одному компилятору нет смысла иметь сразу все наборы инструкций, форматов файлов на все архитектуры и ОС Читайте ответы выше.

            • Tiny

              понял, получается gnu embedded arm это пакет дополняющий gcc под arm архитектуру?

              • Anonim

                Совершенно верно. Просто модификация, в которой вместо наборов инструкций x86 и x86_64, генерируется код ARM

                • Tiny

                  я почему то думал что gcc умеет сразу во многие архитектуры у нас в фирме по аналогии есть компилятор который точно также сразу умеет под разные "платформы" генерировать код

                  • Anonim

                    Это возможно, но он бы много весил. И как уже написано было, человеку, которому нужен один только x86 для Linux, придётся качать сразу всю сборку

                    • Tiny

                      да, логично

  3. Vga

    Так арм эмбеддед тулчейн и есть сборка гцц от арма, не?

    • Tiny

      ну собственно в этом и вопрос был, как связан gcc и тулчейн от арма

Не нашли ответ?

Вам также может быть интересно