1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/alios-things-gcc-arm-none-eabi-win32

Клонировать/Скачать
readme.txt 17 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 23.05.2025 01:34 f0bc8d7
GNU Tools for ARM Embedded Processors
Version: 5
Содержание
* Установка исполняемых файлов на Linux
* Установка исполняемых файлов на Mac OS X
* Установка исполняемых файлов на Windows
* Вызов GCC
* Использование опций архитектуры
* Использование C библиотек
* Скрипты линковщика и стартовый код
* Примеры
* Сервер GDB для аппаратных дебаггеров CMSIS-DAP
* Установка исполняемых файлов на Linux *
Распакуйте tar-архив в каталог установки, например:
$ cd $install_dir && tar xjf gcc-arm-none-eabi-*-yyyymmdd-linux.tar.bz2
Для 64-битных систем требуется 32-битная libc и libncurses для запуска инструментов.
Кроме того, если вы хотите использовать сборку gdb python (arm-none-eabi-gdb-py), вам потребуется установить 32-битную версию python2.7. См. https://answers.launchpad.net/gcc-arm-embedded/+faq/2601
Для некоторых версий Ubuntu инструментарий также можно установить через Launchpad PPA по адресу https://launchpad.net/~team-gcc-arm-embedded/+archive/ubuntu/ppa.
* Установка исполняемых файлов на Mac OS X *
Распакуйте tar-архив в каталог установки, например:
$ cd $install_dir && tar xjf gcc-arm-none-eabi-*-yyyymmdd-mac.tar.bz2
* Установка исполняемых файлов на Windows *
Запустите установщик (gcc-arm-none-eabi-*-yyyymmdd-win32.exe) и следуйте инструкциям.
Инструментарий в zip-пакете для Windows является резервной копией для установщика для тех, кто не может запустить установщик. Необходимо распаковать zip-пакет в правильное место и затем запустить его, следуя инструкциям в следующем разделе.Для использования сборки gdb python (arm-none-eabi-gdb-py) вам потребуется установить 32-битную версию Python 2.7, независимо от того, используется ли 32-битная или 64-битная версия Windows. См. https://www.python.org/download/.
* Вызов GCC *
На Linux и Mac OS X либо вызовите с полным путем, например:
$ $install_dir/gcc-arm-none-eabi-*/bin/arm-none-eabi-gcc
Либо установите переменную PATH, например:
$ export PATH=$PATH:$install_dir/gcc-arm-none-eabi-*/bin
$ arm-none-eabi-gcc
На Windows (хотя вышеупомянутые подходы также работают), можно удобнее установить переменные окружения с помощью установщика, или запустить INSTALL_DIR\bin\gccvar.bat для установки переменных окружения для текущего cmd.
Для zip-пакета для Windows, после распаковки можно вызвать инструментарий либо с полным путем, например:
TOOLCHAIN_UNZIP_DIR\bin\arm-none-eabi-gcc
или запустить TOOLCHAIN_UNZIP_DIR\bin\gccvar.bat для установки переменных окружения для текущего cmd.
* Варианты использования архитектур *Этот инструментарий создан и оптимизирован для разработки на базе Cortex-A/R/M без операционной системы. Таблица ниже показывает, как вызывать GCC/G++ с правильными параметрами командной строки для вариантов архитектур Cortex-A/R и Cortex-M.
| Ядро ARM | Параметры командной строки | multilib |
| / Архитектура ARM | | |
|------------|--------------------------------------------|--------------|
| Cortex-M0+ | -mthumb -mcpu=cortex-m0plus | armv6-m |
| Cortex-M0 | -mthumb -mcpu=cortex-m0 | |
| Cortex-M1 | -mthumb -mcpu=cortex-m1 | |
| |--------------------------------------------| |
| | -mthumb -march=armv6-m | |
|------------|--------------------------------------------|--------------|
| Cortex-M3 | -mthumb -mcpu=cortex-m3 | armv7-m |
| |--------------------------------------------| |
| | -mthumb -march=armv7-m | |
|------------|--------------------------------------------|--------------|
| Cortex-M4 | -mthumb -mcpu=cortex-m4 | armv7e-m |
| (Без FP) |--------------------------------------------| |
| | -mthumb -march=armv7e-m | |
|------------|--------------------------------------------|--------------|
| Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=softfp | armv7e-m |
| (Soft FP) | -mfpu=fpv4-sp-d16 | /softfp |
| |--------------------------------------------| |
| | -mthumb -march=armv7e-m -mfloat-abi=softfp | |
| | -mfpu=fpv4-sp-d16 | |
|------------|--------------------------------------------|--------------|
| Cortex-M4 | -mthumb -mcpu=cortex-m4 -mfloat-abi=hard | armv7e-m |
| (Hard FP) | -mfpu=fpv4-sp-d16 | /fpu | | |--------------------------------------------| |
| | -mthumb -march=armv7e-m -mfloat-abi=hard | |
| | -mfpu=fpv4-sp-d16 | |
|------------|--------------------------------------------|--------------|
| Cortex-M7 | -mthumb -mcpu=cortex-m7 | armv7e-m |
| (Без FP) |--------------------------------------------| |
|------------|--------------------------------------------|--------------|
| Cortex-M7 | -mthumb -mcpu=cortex-m7 -mfloat-abi=softfp | armv7e-m |
| (Soft FP) | -mfpu=fpv5-sp-d16 | /softfp |
| |--------------------------------------------| /fpv5-sp-d16 |
| | -mthumb -march=armv7e-m -mfloat-abi=softfp | |
| | -mfpu=fpv5-sp-d16 | |
| |--------------------------------------------|--------------|
| | -mthumb -mcpu=cortex-m7 -mfloat-abi=softfp | armv7e-m |
| | -mfpu=fpv5-d16 | /softfp |
| |--------------------------------------------| /fpv5-d16 |
| | -mthumb -march=armv7e-m -mfloat-abi=softfp | |
| | -mfpu=fpv5-d16 | |
|------------|--------------------------------------------|--------------|
| Cortex-M7 | -mthumb -mcpu=cortex-m7 -mfloat-abi=hard | armv7e-m |
| (Hard FP) | -mfpu=fpv5-sp-d16 | /fpu |
| |--------------------------------------------| /fpv5-sp-d16 |
| | -mthumb -march=armv7e-m -mfloat-abi=hard | |
| | -mfpu=fpv5-sp-d16 | |
|------------|--------------------------------------------|--------------|
| | -mthumb -mcpu=cortex-m7 -mfloat-abi=hard | armv7e-m |
| | -mfpu=fpv5-d16 | /fpu |
| |--------------------------------------------| /fpv5-d16 |
| | -mthumb -march=armv7e-m -mfloat-abi=hard | |
| | -mfpu=fpv5-d16 | |
|------------|--------------------------------------------|--------------| | ARMv8-M | -mthumb -march=armv8-m.base | armv8-m.base |
| Базовый | | |
|------------|--------------------------------------------|--------------|
| ARMv8-M | -mthumb -march=armv8-m.main | armv8-m.main |
| Основной | | |
| (Без FP) | | ||
|------------|--------------------------------------------|--------------|
| ARMv8-M | -mthumb -march=armv8-m.main | armv8-m.main |
| Основной | -mfloat-abi=softfp -mfpu=fpv5-sp-d16 | /softfp |
| (Soft FP) | | /fpv5-sp-d16 |
| |--------------------------------------------|--------------|
| | -mthumb -march=armv8-m.main | armv8-m.main |
| | -mfloat-abi=softfp -mfpu=fpv5-d16 | /softfp |
| | | /fpv5-d16 |
|------------|--------------------------------------------|--------------|
| ARMv8-M | -mthumb -march=armv8-m.main | armv8-m.main |
| Основной | -mfloat-abi=hard -mfpu=fpv5-sp-d16 | /fpu |
| (Hard FP) | | /fpv5-sp-d16 |
| |--------------------------------------------|--------------|
| | -mthumb -march=armv8-m.main | armv8-m.main |
| | -mfloat-abi=hard -mfpu=fpv5-d16 | /fpu |
| | | /fpv5-d16 |
|------------|--------------------------------------------|--------------|
| Cortex-R4 | [-mthumb] -march=armv7-r | armv7-ar |
| Cortex-R5 | | /thumb |
| Cortex-R7 | | |
| Cortex-R8 | | |
| (Без FP) | | |
|------------|--------------------------------------------|--------------|
| Cortex-R4 | [-mthumb] -march=armv7-r -mfloat-abi=softfp | armv7-ar |
| Cortex-R5 | -mfpu=vfpv3-d16 | /thumb |
| Cortex-R7 | | /softfp || Cortex-R8 | | |
| (Soft FP) | | |
|------------|--------------------------------------------|--------------|
| Cortex-R4 | [-mthumb] -march=armv7-r -mfloat-abi=hard | armv7-ar |
| Cortex-R5 | -mfpu=vfpv3-d16 | /thumb |
| Cortex-R7 | | /fpu |
| Cortex-R8 | | |
| (Hard FP) | | |
|------------|--------------------------------------------|--------------|
| Cortex-A* | [-mthumb] -march=armv7-a | armv7-ar |
| (Без FP) | | /thumb |
|------------|--------------------------------------------|--------------|
| Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=softfp | armv7-ar |
| (Soft FP) | -mfpu=vfpv3-d16 | /thumb |
| | | /softfp |
|------------|--------------------------------------------|--------------|
| Cortex-A* | [-mthumb] -march=armv7-a -mfloat-abi=hard | armv7-ar |
| (Hard FP) | -mfpu=vfpv3-d16 | /thumb |
| | | /fpu |
|------------|--------------------------------------------|--------------|
* Использование библиотек C *Этот инструментарий выпускается с двумя предварительно скомпилированными библиотеками C на основе newlib: одна — стандартная newlib, а другая — newlib-nano для сжатия кода. Чтобы отличить их, мы переименовываем оптимизированные по размеру библиотеки следующим образом:
libc.a --> libc_nano.a
libg.a --> libg_nano.a
Чтобы использовать newlib-nano, пользователи должны предоставить дополнительный параметр компиляции и сборки gcc:
--specs=nano.specs
Во время компиляции, если передан параметр --specs=nano.specs, будет использоваться заголовочный файл 'newlib.h', специально настроенный для newlib-nano.
Nano.specs также управляет двумя дополнительными библиотеками gcc: libstdc++_nano.a и libsupc++_nano.a, которые оптимизированы по размеру кода.
Пример:
$ arm-none-eabi-gcc src.c --specs=nano.specs $(OTHER_OPTIONS)
Этот параметр также может работать вместе с другими параметрами specs, такими как --specs=rdimon.specs.
Обратите внимание, что в отличие от предыдущих версий этого инструментария, --specs=nano.specs теперь является как параметром компилятора, так и параметром линковщика. Убедитесь, что он включен в оба параметра, если компиляция и линковка разделены.
** Дополнительное использование библиотек newlib-nano
Newlib-nano отличается от newlib, помимо названия библиотек. Форматированный ввод/вывод чисел с плавающей запятой реализован как слабый символ. Если вы хотите использовать %f, вам нужно будет включить этот символ, явно указав параметр команды "-u". -u _scanf_float
-u _printf_float
Например, чтобы вывести число с плавающей запятой, команда будет выглядеть так:
$ arm-none-eabi-gcc --specs=nano.specs -u _printf_float $(OTHER_LINK_OPTIONS)
Для получения дополнительной информации о различиях и использовании, обратитесь к README.nano в исходном пакете.
Пользователи могут выбрать, использовать или не использовать полусообщение, следуя инструкциям.
** Полусообщение
Если вам нужно полусообщение, связывание будет выглядеть так:
$ arm-none-eabi-gcc --specs=rdimon.specs $(OTHER_LINK_OPTIONS)
** Без полусообщения/перенаправление
Если вы используете перенаправление, связывание будет выглядеть так:
$ arm-none-eabi-gcc --specs=nosys.specs $(OTHER_LINK_OPTIONS)
* Скрипты линковщика и стартовый код *
Последнее обновление шаблонов скриптов линковщика и стартового кода доступно по адресу
http://www.arm.com/cmsis
* Примеры *
Примеры всех вышеупомянутых методов доступны по адресу:
$install_dir/gcc-arm-none-eabi-*/share/gcc-arm-none-eabi/samples
Чтобы получить дополнительную информацию, прочитайте readme.txt в этой папке.
* Сервер GDB для аппаратного дебаггера CMSIS-DAP *
CMSIS-DAP — это интерфейсное программное обеспечение для дебаггера, которое соединяет дебаг-порт с USB. Более подробная информация доступна по адресу
http://www.keil.com/support/man/docs/dapdebug/
Необходимо наличие программного сервера GDB для взаимодействия GDB с аппаратным отладчиком, основанным на CMSIS-DAP. PyOCD является реализацией такого сервера GDB, написанного на Python и распространяемого под лицензией Apache.Для тех, кто использует эту инструментальную цепочку и имеет платформу с аппаратным отладчиком, основанным на CMSIS-DAP, pyOCD рекомендуется как сервер GDB. Дополнительная информация доступна по адресу https://github.com/mbedmicro/pyOCD.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/alios-things-gcc-arm-none-eabi-win32.git
git@api.gitlife.ru:oschina-mirror/alios-things-gcc-arm-none-eabi-win32.git
oschina-mirror
alios-things-gcc-arm-none-eabi-win32
alios-things-gcc-arm-none-eabi-win32
master