реклама на сайте
подробности

 
 
3 страниц V  < 1 2 3 >  
Reply to this topicStart new topic
> GNU Tools for ARM Embedded Processors 4.8 - 2013q4-20131204
Aner
сообщение Dec 10 2014, 18:45
Сообщение #16


Гуру
******

Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463



1) На чем, на каком коду, на каком проце сравнивалось? Чтобы понять откуда это 500 получилось.
2) Сравнивали с кейлом, иаром? На сколько больший код с gcc?
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Dec 11 2014, 11:24
Сообщение #17


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(Aner @ Dec 10 2014, 22:45) *
1) На чем, на каком коду, на каком проце сравнивалось? Чтобы понять откуда это 500 получилось.
2) Сравнивали с кейлом, иаром? На сколько больший код с gcc?

Причём тут кейл и иар?
Ветка о GNU'тых средствах разработки...

Cравнивал на одном из своих проектов под stm32f103.

Для особо любопытных детали:
arm-gcc-none-eabi-4.7.4 размер секции text 28340
arm-gcc-none-eabi-4.8.4 размер секции text 26444
arm-gcc-none-eabi-4.9.3 размер секции text 25932

Сравнивать с keil и iar не вижу смысла, т.к. уже давным давно с ними завязал ввиду отсутствия желания порить себе карму крякнутым софтом.
Да и на тот момент по моим замерам gcc был как минимум не хуже keil...


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 6 2015, 13:16
Сообщение #18


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



5 марта вышел очередной релиз arm-gcc-none-eabi-4.9.3: https://launchpad.net/gcc-arm-embedded/4.9/...-2015-q1-update
Либы и компилятор стали ещё более оптималены: минус 0,5КБ на проекте в 32КБ.


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 6 2015, 14:47
Сообщение #19


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Отлично, затестируем...
А что такое "small multiply support"? Это те кортексы M0/1, где нет умножения за 1 такт?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Apr 6 2015, 17:27
Сообщение #20


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(AHTOXA @ Apr 6 2015, 17:47) *
А что такое "small multiply support"? Это те кортексы M0/1, где нет умножения за 1 такт?

NXP это так объясняет.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 6 2015, 18:13
Сообщение #21


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Ага, значит оно. Интересно, а ST тоже сэкономили на нормальном умножении?
... Посмотрел, по крайней мере у STM32L0xx, которыми я сейчас занимаюсь, есть "single-cycle multiplier".


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
alx2
сообщение Apr 7 2015, 12:54
Сообщение #22


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(demiurg_spb @ Apr 6 2015, 19:16) *
5 марта вышел очередной релиз arm-gcc-none-eabi-4.9.3

На launchpad.net по приведенной ссылке смотрю ReleaseNotes. Там указано, что собрано из ветки http://gcc.gnu.org/svn/gcc/branches/ARM/embedded-4_9-branch/.
Открываю эту ветку и смотрю ChangeLog:
Код
2014-12-04  Tobias Burnus  <burnus@net-b.de>

    * configure.ac: Permit also ISL 0.14 with CLooG.
    * Makefile.def: Make more dependent on mpfr, mpc, isl, and cloog.
    * Makefile.in: Regenerate.
    * configure: Regenerate.

2014-10-30  Release Manager

    * GCC 4.9.2 released.

То есть это gcc-4.9.2 с косметическими изменениями от декабря прошлого года. Поправьте меня если я ошибаюсь...
На gcc.gnu.org до сих пор последним релизом числится 2.9.2, на официальном ftp и нескольких зеркалах, на которые я зашел, никакого 4.9.3 нет, только 4.9.2...
Откуда Вы вообще взяли, что был релиз 4.9.3?


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 7 2015, 13:32
Сообщение #23


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(alx2 @ Apr 7 2015, 15:54) *
Откуда Вы вообще взяли, что был релиз 4.9.3?

arm-none-eabi-gcc -v
Код
Using built-in specs.
COLLECT_GCC=Z:\gcc\arm-gcc-none-eabi\bin\arm-none-eabi-gcc.exe
COLLECT_LTO_WRAPPER=z:/gcc/arm-gcc-none-eabi/bin/../lib/gcc/arm-none-eabi/4.9.3/lto-wrapper.exe
Target: arm-none-eabi
Configured with: /home/build/work/GCC-4-9-build/src/gcc/configure --build=i686-linux-gnu --host=i686-w64-mingw32 --target=arm-none-eabi --prefix=/home/build/work/GCC-4-9-build/install-mingw --libexecdir=/home/build/work/GCC-4-9-build/install-mingw/lib --infodir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/info --mandir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/man --htmldir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/html --pdfdir=/home/build/work/GCC-4-9-build/install-mingw/share/doc/gcc-arm-none-eabi/pdf --enable-languages=c,c++ --disable-decimal-float --disable-libffi --disable-libgomp --disable-libmudflap --disable-libquadmath --disable-libssp --disable-libstdcxx-pch --disable-nls --disable-shared --disable-threads --disable-tls --with-gnu-as --with-gnu-ld --with-headers=yes --with-newlib --with-python-dir=share/gcc-arm-none-eabi --with-sysroot=/home/build/work/GCC-4-9-build/install-mingw/arm-none-eabi --with-libiconv-prefix=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-gmp=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-mpfr=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-mpc=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-isl=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-cloog=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-libelf=/home/build/work/GCC-4-9-build/build-mingw/host-libs/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-pkgversion='GNU Tools for ARM Embedded Processors' --with-multilib-list=armv6-m,armv7-m,armv7e-m,cortex-m7,armv7-r
Thread model: single
gcc version 4.9.3 20150303 (release) [ARM/embedded-4_9-branch revision 221220] (GNU Tools for ARM Embedded Processors)


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 7 2015, 14:20
Сообщение #24


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(alx2 @ Apr 7 2015, 15:54) *
То есть это gcc-4.9.2 с косметическими изменениями от декабря прошлого года. Поправьте меня если я ошибаюсь...

Поправляю: см. историю ветки ARM/embedded-4_9-branch
Там много чего есть, причём подозреваю, что большая часть изменений кроется за "Sync with upstream 4.9 branch".
Go to the top of the page
 
+Quote Post
alx2
сообщение Apr 8 2015, 05:46
Сообщение #25


Местный
***

Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091



Цитата(scifi @ Apr 7 2015, 20:20) *
Поправляю: см. историю ветки ARM/embedded-4_9-branch
Там много чего есть, причём подозреваю, что большая часть изменений кроется за "Sync with upstream 4.9 branch".

Хм... Действительно. Спасибо за подсказку. Да, изменения не косметические.
Решил посмотреть содержимое ветки более детально.
Смотрю, что написано в gcc/BASE-VER: действительно, там стоит 4.9.3, аж с ноября прошлого года.
Смотрю, что написано в gcc/DEV-PHASE: prerelease.
Опять же, поправьте меня если я ошибаюсь, но из написанного выше следует, что релиза 4.9.3 еще не было. Почему у уважаемого demiurg_spb gcc пишет, что он release, я не знаю...
Ну и до кучи, здесь: https://gcc.gnu.org/gcc-4.9/index.html о релизе 4.9.3 тоже ничего нет. ..


--------------------
Всего наилучшего,
Alex Mogilnikov
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 8 2015, 06:19
Сообщение #26


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(alx2 @ Apr 8 2015, 08:46) *
Смотрю, что написано в gcc/BASE-VER: действительно, там стоит 4.9.3, аж с ноября прошлого года.
Смотрю, что написано в gcc/DEV-PHASE: prerelease.
Опять же, поправьте меня если я ошибаюсь, но из написанного выше следует, что релиза 4.9.3 еще не было. Почему у уважаемого demiurg_spb gcc пишет, что он release, я не знаю...

Вы смотрите на объявления о релизах для основной ветки (trunk). Там релизы происходят шумно под звуки фанфар и аплодисменты.
Ветка ARM/embedded-4_9-branch живёт несколько отдельной жизнью, поэтому сабантуй по поводу изменения номера версии никто не устраивает.
Это моё ИМХО, если что.
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2015, 08:22
Сообщение #27


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(demiurg_spb @ Apr 6 2015, 18:16) *
Либы и компилятор стали ещё более оптималены: минус 0,5КБ на проекте в 32КБ.

У меня на текущем проекте размер подрос почти на 2К: было 48860, стало 50660. Оптимизация -O2.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Apr 8 2015, 08:24
Сообщение #28


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(AHTOXA @ Apr 8 2015, 11:22) *

Я -O3 использую и такие ключи для оптимизации:
Код
    CFLAGS += -flto
    CFLAGS += -fomit-frame-pointer
    CFLAGS += -falign-functions=16
    CFLAGS += -fgraphite
    CFLAGS += -funroll-loops
    CFLAGS += -fno-math-errno
    CFLAGS += -ffunction-sections
    CFLAGS += -fdata-sections

И такие ключи для линкера:
Код
    LDFLAGS += -nostartfiles
    LDFLAGS += -nodefaultlibs
    LDFLAGS += --specs=nano.specs

    ifeq ($(DEBUG_BUILD),1)
        LDFLAGS += -u _printf_float
    endif

    LDFLAGS += -Wl,--relax
    LDFLAGS += -Wl,--gc-section
    LDFLAGS += -Wl,--static
    LDFLAGS += -Wl,--start-group
    LDFLAGS += -lm -lc -lgcc -lnosys
    LDFLAGS += -Wl,--end-group


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2015, 08:31
Сообщение #29


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



C -O3 разница ещё больше:
было 55948, стало 59884.
Мои флаги:
Код
    CXXFLAGS    += -std=c++11
    CXXFLAGS    += -fno-exceptions -fno-rtti
    CXXFLAGS    += -ffunction-sections -fdata-sections
    CXXFLAGS    += -funsigned-bitfields -fshort-enums

(LTO у меня не работает, не видит вызовов функций из инлайн-ассемблера).

--
Посмотрел с -Os:
43388/43524.
Видимо, убрали какую-то проблемную оптимизацию. Вероятно, в плюсах.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
scifi
сообщение Apr 8 2015, 08:36
Сообщение #30


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(AHTOXA @ Apr 8 2015, 11:22) *
У меня на текущем проекте размер подрос почти на 2К: было 48860, стало 50660. Оптимизация -O2.

Так не честно. Размером надо мериться с оптимизацией -Os.
А если оптимизация на скорость, то надо скоростью мериться. Скажем, станет он в новой версии циклы сильнее разматывать, вот размер и подрастёт.
Go to the top of the page
 
+Quote Post

3 страниц V  < 1 2 3 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 02:41
Рейтинг@Mail.ru


Страница сгенерированна за 0.01509 секунд с 7
ELECTRONIX ©2004-2016