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

2_AHTOXA

а работет то что скомпилялось? я то только на кортексах могу тестировать. еще есть еще белогвардейские недобитки в виде arm7tdmi которые в текущих проектах у многих.

 

и еще..мне по скорости сгенеренного кода интереснее узнать разницу. флеш в первом приближении можно считать резиновым а озу квазирезиновым( разуеется на моих задачах).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да вроде работает. Проверил на STM32 и на ADuC70xx. Дома есть ещё LPC2148, могу на них проверить.

Проекты на C++, scmRTOS.

Про скорость могу сказать лишь одно - пока хватает:) Честно говоря, в моих приложениях я не знаю как сравнивать, а писать специальные тесты некогда...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

lto таки заработало :yeah: . как оказывается в LDFLAGS кроме -flto надо еще и флаги оптимизации добавлять.

добавил в makefile

LDFLAGS += -flto $(OPTIMIZATION)
CFLAGS += -flto

и вот оно, счастье.

с -Os -combine -fwhole-program (gcc version 4.5.0 20091115 т.к. в 4.7 -combine убрали):
  text    data     bss
16665      40    4232

c -Os -flto (gcc gcc version 4.7.0 20110328)
   text    data     bss
  16113      40    4240

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня на одном проекте LPC2212 (включая 87к двоичных данных):

-O1
yagarto 4.51 - 110040 байт
yagarto 4.52 - 110036 байт
kgp       4.7  - 108929 байт
-Os
kgp без LTO       4.7  - 107578 байт
kgp c LTO       4.7  - 103344  байт

 

На другом проекте LPC2212 (включая 65к двоичных данных):

-Os
kgp без LTO  - 87135  байт
kgp c    LTO  - 82161  байт

 

Отличная экономия :)

Да, кстати, проекты под TNKernel 2.6.

Изменено пользователем Bender

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

приеду домой попробую тоже lto , но у меня какието траблы были, в коде ковырялся - бросил, не стал разбиратся. судя по резултату lto оптимизатор нехило код функций перекрутил через мясорубку.

этож получается lto оптимизатор из 27к утрамбовал в 23к это если я не ошибаюсь 14 процентов - даже не верится. а код работает хоть?

что характерно - сие шаманство возможно только для elf бинарников, токсть встраиваемый линкус и проги для него получится отплющить а вот winCE видимо курит солому.

 

по поводу флагов оптимизации непонятно - как я понимаю они в elf объектники складываются на всякий случай либов секции dwarf либо еще кудато, поэтому lto-wraper и lto1 может их и сам вытащить...

 

gcc мне напоминает В.Ленина - все для народа (для тех кто пламенный революционер и мелкобарыжнеческого элемента у кого бабла нет на иар ;))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что-то линкер из последней сборки для MIPS стал ругаться на инверсию атрибута в описании блока памяти в скрипте линкера.

 

MEMORY

{

kseg1_data_mem (w!x) : ORIGIN = 0xA0000000, LENGTH = 0x20000

}

 

../../../mips-kgp-elf/bin/ld.exe: invalid syntax in flags

collect2: ld returned 1 exit status

 

Меняю ld.exe на предыдущий (4.6.0 от 25.07.2010) - все нормально компилируется.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2_Mitsufan

мож синтаксис поменялся, нада доки посмотреть на binutils. но скорее всего косяг.

а кокой mips пропрограмируете?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто-нибудь с флагом -flto пробовал работать с чем-то похожим на ramfunc? Как выглядят Ваши скрипты и определения? Моё срособ (с секцией по имени .data_ramfunc) даёт с применением link time optimization утроение объёма ОЗУ под такие функции.

Временно выкинул использование этой фичи - код в среднем на 25 процентов ужался (AT91SAM7Sxxx) и при этом продолжает работать!

Изменено пользователем Genadi Zawidowski

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а avr-gcc 4.7.0 под win32 c lto планируется? Уж очень хочется!

Сбилдите плиз, пусть там не всё будет гладко с отладочной информацией...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

MIPS - PIC32, скрипты для линкера от родного микрочиповского C32. С предыдущими сборками KGP все работало.

 

А где можно посмотреть изменения для GCC 4.7, желательно прямой линк.

 

2_Mitsufan

мож синтаксис поменялся, нада доки посмотреть на binutils. но скорее всего косяг.

а кокой mips пропрограмируете?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2_Mitsufan

дока по бинутилсам http://sourceware.org/binutils/docs-2.21

по gcc http://gcc.gnu.org/onlinedocs/gcc-4.6.0/gcc/

изменения 4.5->4.6 http://gcc.gnu.org/gcc-4.6/changes.html

отличия в 4.7 пока нельзя описать(ну тоесть можно но доки такой не существует, правла есть местами описание куда двигается процесс) поскольку 4.7 это код где поживому правки вносятся. различия только для релизов публикуется (то у чего код заморожен). а если нада то все svn в виде диффов покажет.

 

и как вам ядро M4K ? у меня есть теория что мипс есть наилучшая процессорная архитектура, только почемуто она не сильно в массы пропихивается. с другими сравнить можете хотябы по ощущениям. gcc должен для мипсов давать очень хороший код - архитектора ядра академическая.

 

2_demiurg_spb

да планирую, темболее что в выходные то что собралось компиляло мой проект с dwarf2 и компиллер не падал, и я даже собирал для говновиндовса, и даже под варстудией тестил - но чтото мне там не понравилось я и не стал выкладывать.

короче говоря я выложу сборку - а там посмотрим че получится. всетаки как я понял атмелу пипец со всех сторон. кстате что касается атмела вобщем то атмел достиг апофеоза маразма : http://www.terraelectronica.ru/news_postup.php?ID=2184 даже если они случайно нулик по ошибке сзади цены дописали - всервно атмелу кирдык. чтоб спастись атмел должен раздавать иструментальные средства с доплатой, килограммом травы, бутылкой водки и пирожком в придачу.

 

и вообще, я раньше критически относился к потенциалу нашей родины и качеству людского матреиала... но вот "у них" ведь тоже есть перлы. один из последних это вебдизайн сайта ST Microelectronix ( www.st.com ) - это что с чем то... посмотрев это становится спокйно на наше тихое болото - нефига они нас не победят ;) ножки подломятся

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день. Пытаюсь писать под mips из под винды. После компиляции элементарной С программы в ассемблерном листинге функция main начинается с addiu sp,sp, -16. После выполнения данной команды процессор сваливается в исключение. Значение регистра sp до этого не трогал. Если оно изначально нулевое, то он попадает в конец области памяти, которая не существует физически(размер ОЗУ и ПЗУ меньше) Отсюда сделал вывод, что нужно инициализировать указатель стека. Как указать компилятору начало стека, области памяти(ОЗУ, ПЗУ)? Подозреваю что это делается в startup коде, но примеров под mips не нашел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

ставить весь MSYS нет необходимости, вы его всеравно не будете использовать при работе. изза 4 файлов ставить сотню другую, незачем http://klen.org/Files/DevTools/make_sh_rm_touch.7z только тех утилит что мспользуются при сборке проектов с помощью make
закинул этот make в папку bin mingw-win32 - не запускается (вернее запускается но ничего не выводит в консоль и не выполняет Makefile). Из другой папки - нормально. Так и должно быть ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У кого для cortex-m3 получилось собрать с -Os -flto ? У меня ни одной непустой секции .text не находится...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня не вышло. text ненулевой, но не работает. Ни -O2 ни -Os :(

А вот под ADuC706x - получилось, очень приличный эффект.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...