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

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> EWARM 5.20, Вышел
IgorKossak
сообщение Jul 14 2008, 11:02
Сообщение #1


Шаман
******

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



Highlights in version 5.20
Multi-file compilation for even better code optimization
VFP support
Improved Cortex-M3 optimization
Cortex-M3 SWV/SWO debugger support
Compiler speed optimizations
Faster flash loader
Support for unlimited breakpoint in flash via J-Link (optional license needed)
Linking with references to other link images
J-Link control panel

Feature: EWARM-EV Version: 15_WIN
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 15 2008, 16:11
Сообщение #2


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
Multi-file compilation for even better code optimization


Интересно, что именно он пытается оптимизировать? Ничего не пишут? Или своими наблюдениями не поделитесь?

Цитата
Improved Cortex-M3 optimization


Он начал использовать регистры 8-12? Или еще нет?

И еще вопрос - можно ли из него вменяемый релоцируемый эльф получить (как это было на 4.42)? Или все еще надо линкер от гнуся прикручивать?


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 15 2008, 17:26
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Rst7 @ Jul 15 2008, 18:11) *
И еще вопрос - можно ли из него вменяемый релоцируемый эльф получить...

Полагаю, что нет - это искусственное ограничение для не pro версий 5.x - не думаю, что в eval 5.20 убрали.
Цитата
Или все еще надо линкер от гнуся прикручивать?

Соответственно гнусный линкер ничего не линкует в принципе, но IARовский псевдогнутый нормально линкует орпгинальные гнутые вещи.


Цитата(IgorKossak @ Jul 14 2008, 13:02) *
Feature: EWARM-EV Version: 15_WIN

Будем пробовать....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 15 2008, 20:06
Сообщение #4


Шаман
******

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



Цитата(Rst7 @ Jul 15 2008, 19:11) *
Интересно, что именно он пытается оптимизировать? Ничего не пишут? Или своими наблюдениями не поделитесь?

Цитата
Multi-file compilation units
In addition to applying different optimizations to different source files or even functions,
you can also decide what a compilation unit consists of—one or several source code
files.
By default, a compilation unit consists of one source file, but it is also possible to make
several source files in a compilation unit by using multi-file compilation. The advantage
is that interprocedural optimizations such as inlining and cross jump have more source
code to work on. Ideally, the whole application should be compiled as one compilation
unit. However, for large applications this is not practical because of resource restrictions
on the host computer.

Проще говоря, при компиляции каждого исходного файла в проекте получаются столько же обьектных файлов, в которых есть похожие куски, прологи\эпилоги, выделенные в подпрограммы фрагменты и т. д. и т. п. Мультифайловая компиляция позволяет получить такие куски в единственном экземпляре.

Наблюдения:
- в С работает, действительно результирующий код получается короче, приложение осталось работоспособно cool.gif ;
- в С++ НЕ РАБОТАЕТ если файл ioxxxxxxx.h включается прямо или косвенно более чем в одном исходнике.
Наблюдения беглые и поверхностные, так что прошу извенить.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 15 2008, 20:30
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(IgorKossak @ Jul 15 2008, 22:06) *
Наблюдения:

Для последнего 51 они тоже такую фичу добавили - тоже немножко работает.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 16 2008, 06:10
Сообщение #6


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



В Multi-file compilation они мелкие функции подставляют как inline ( и в итоге самостоятельная функция может быть вообще выкинута) и доступ к переменным по смещению от индексного регистра лучше получается т.к. видно сразу много файлов. Покрайней мере для АВР так было когда только появилась эта фича.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 16 2008, 08:37
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(KRS @ Jul 16 2008, 08:10) *
В Multi-file compilation они мелкие функции подставляют как inline

Ну не все так прямолинейно, хотя в каких-то случаях и это явно используется.
Сейчас откомпилил 5.20 лабораторный проектик под LPC2148. При тупой максимальной оптимизации по размеру размер получившегося кода сопоставим с 5.11. Однако опимизация по производительнсти дала потрясающее увеличение обьема кода на 25%. При этом Multi-file compilation заметно уменьшила размер кода - превышение стало примерно на 15%. Сейчас нет времени экспериментировать - но поближе к субботе вдумчиво покопаюсь. Правда, на основной машине я 5.11 уже снес smile.gif посему сравнение будет с 4.42...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
MALLOY2
сообщение Jul 16 2008, 09:43
Сообщение #8


Знающий
****

Группа: Validating
Сообщений: 838
Регистрация: 31-01-05
Пользователь №: 2 317



Мои 5 копеек в тему, произвел тестирование своего проекта на версии 5.20.
Краткое описание проекта.

Проц STR912FA, к нему подключено через внешнюю шину 4 DSP TMS320VC5502. STR собирает данне с ДСП и передает в локалку, поток приемущественно с девайса в комп, от компа токо всякие команды. Устройство работает без ОС. Стек LWIP 1.2.0. К устройству также подключен GSM модем. Имеется WEB сервер, FTP Сервер и Telnet.
В DSP находится специальная программа для тестирования пропускной способности девайса.
Ее то я и измерял.

Данные тестирования.
IAR 5.11

Полная оптимизация по скорости.

90 809 bytes of readonly code memory
9 520 bytes of readwrite code memory
30 861 bytes of readonly data memory
87 247 bytes of readwrite data memory

Пропускная скорость девайса 2240 кБ/с

Полная оптимизация по размеру.

81 813 bytes of readonly code memory
9 176 bytes of readwrite code memory
30 519 bytes of readonly data memory
87 247 bytes of readwrite data memory

Пропускная скорость девайса 2020 кБ/с


Полная сбалансированная оптимизация

84 261 bytes of readonly code memory
9 476 bytes of readwrite code memory
30 819 bytes of readonly data memory
87 247 bytes of readwrite data memory

Пропускная скорость девайса 2170 кБ/с


Iar 5.20 (Обычная компиляция)

Полная оптимизация по скорости.

89 504 bytes of readonly code memory
9 564 bytes of readwrite code memory
30 980 bytes of readonly data memory
87 246 bytes of readwrite data memory

Пропускная скорость девайса 2490 кБ/с

Полная оптимизация по размеру.

81 121 bytes of readonly code memory
9 256 bytes of readwrite code memory
30 667 bytes of readonly data memory
87 246 bytes of readwrite data memory

Пропускная скорость девайса 2050 кБ/c

Полная сбалансированная оптимизация

83 409 bytes of readonly code memory
9 468 bytes of readwrite code memory
30 887 bytes of readonly data memory
87 246 bytes of readwrite data memory

Пропускная скорость девайса 2360 кБ/с



Iar 5.20 ( Multi-file compilation ) - ДЕВАЙС ГЛЮЧИТ НЕ ПОДЕТСКИ ...

Выбор типа компиляции (скорость, размер...), а также ихний уровень главную суть проблемы не решают.
При установленом флажке Discard Unused Publics драйвер UART перестает работать на консоль сыпится муссор, при этом обмен с DSP работает, скорость по сети примерно 500 кБ/с выше не подымается, при попытке зайти на FTP или HTTP срабатывает ватчдог smile.gif. Если снять флажек Discard Unused Publics драйвер UART начинает нормально рабюотать на FTP заходит через раз, HTTP вешеат проц, скорость обмена тоже не привышает 500 кБ/с.

Беглый просмотр листингов не выявил ничего криминального, хотя я сильно не вникал небыло времени.

У меня в проекте используются функции в RAM (__ramfunc) есть подозрение что от туда все глюки и тянутся. Также есть подозрения на обработчики преываний он там тоже чего то похоже наоптимизировал.

Это предварительная инфа, на выходных попробую поглубже покопать и розабраться в чем дело.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 16 2008, 13:06
Сообщение #9


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Ну что, аллах воистину акбар wink.gif Для Cortex-M3 делает код по полной программе, с использованием всех регистров. Приятненько...


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 16 2008, 16:06
Сообщение #10


Шаман
******

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



Цитата(Rst7 @ Jul 16 2008, 16:06) *
Ну что, аллах воистину акбар wink.gif Для Cortex-M3 делает код по полной программе, с использованием всех регистров. Приятненько...

А прерывания может симулировать с сохранением\восстановлением контекста? Я уж не надеюсь на переход по нужному вектору. Или может скриптом можно как то обойтись?
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 17 2008, 07:55
Сообщение #11


Профессионал
*****

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(zltigo @ Jul 16 2008, 12:37) *
Однако опимизация по производительнсти дала потрясающее увеличение обьема кода на 25%.

А это было заметно еще и в 5.11 самое очевидное - раскрутка циклов по несколько итераций за раз, пока регистров хватит. В 4.xx такого не замечал. А balanced оптимизация очень похожа на ту что в 4.xx называлась speed.
Go to the top of the page
 
+Quote Post
Rst7
сообщение Jul 17 2008, 09:33
Сообщение #12


Йа моск ;)
******

Группа: Модераторы
Сообщений: 4 345
Регистрация: 7-07-05
Из: Kharkiv-city
Пользователь №: 6 610



Цитата
раскрутка циклов по несколько итераций за раз


Если стремает, снимите галочку Loop Unrolling wink.gif



Кстати, я еще часто снимаю галку кластеризации. Часто ее проще выполнить в узких местах вручную, результат лучше, особенно когда компилятору мерещится частое использование статической переменной и он под указатель на это дело занимает целый регистр, который пригодился бы для совсем других целей с куда более лучшим результатом.


--------------------
"Практика выше (теоретического) познания, ибо она имеет не только достоинство всеобщности, но и непосредственной действительности." - В.И. Ленин
Go to the top of the page
 
+Quote Post
маша
сообщение Jul 18 2008, 04:17
Сообщение #13


Участник
*

Группа: Свой
Сообщений: 45
Регистрация: 7-11-05
Пользователь №: 10 537



Прерывая беседу о высоком, хочется спросить... Кто-нибудь отучал полный ИАР от усб-ключа? ИАРы (фул и евал) установливаю без сериалов и кейев, а затем патчю. Евал версия работает на 100%, а вот фул как-то непонятно...
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 18 2008, 07:33
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(маша @ Jul 18 2008, 06:17) *
Кто-нибудь отучал....

Если кто-нибудь сделает Full версию 5.20 доступной, то можно посмотреть smile.gif и полагаю получится, но без насилия...


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Zeltrex
сообщение Jul 18 2008, 09:53
Сообщение #15





Группа: Участник
Сообщений: 13
Регистрация: 30-06-08
Пользователь №: 38 648



Обещались реализовать поддержку для SAM9XE, пока в разделе \ARM\PowerPac\BoardSupport\Atmel\ не нахожу такого, а все остальное было доступно и раньше.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th July 2025 - 20:55
Рейтинг@Mail.ru


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