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

 
 
10 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> EWARM 5.10
KRS
сообщение Jul 13 2007, 15:50
Сообщение #31


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

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



Цитата(MALLOY2 @ Jul 13 2007, 14:11) *
Код
Compiler assembly list output is disabled

Это типа теперь не смогу посмотреть что он там на компилил ? это облом большой. 05.gif


А у меня выдается и листинг и чистый asm файл
но вот синтаксис они совсем поменяли sad.gif

В догонку:
Так теперь нет XLINK (универсального для всех чипов) у ARM свой линкер ILINKARM лежит в ARM/bin
и вместо xcl файлов теперь icf
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 13 2007, 16:52
Сообщение #32


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

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



Но самая большая Ж....
теперь с вычислениями - в выражении нельзя использовать 2 глобальных символа - т.е например размер сегмента (теперь секция) получить нельзя. надо грузить начало и конец и вычитать в период выполнения.
Такую конструкцию соотвю тоже не запихать
ldr PC,[PC,#0xFFFFF030 - (.+8)] //VICVectAddr
ругается - слишком сложно.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 13 2007, 17:01
Сообщение #33


Гуру
******

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



Цитата(KRS @ Jul 13 2007, 18:50) *
А у меня выдается и листинг и чистый asm файл

Подтверждаю - работает. Обманули, значит smile.gif
Цитата
но вот синтаксис они совсем поменяли sad.gif

Поменяли, в принципе что в лоб, что по лбу. Но! Что-то там еще поломали sad.gif Отказывается ассемблировать ранее понимаемый код, причем диагностическое сообщение хоть стой, хоть падай.
Поломал голову, но нашел методом тыка. Для желающих потренироваться в расшифровке диагностики - файл в приложении smile.gif
Цитата
Так теперь нет XLINK (универсального для всех чипов) у ARM свой линкер ILINKARM лежит в ARM/bin
и вместо xcl файлов теперь icf

Ага, и mapfile просто никакой sad.gif sad.gif и что-то я линковочных наворотов имевшихся у xlink пока не найду.
Похоже они его наскоро из GNU слепили.
Прикрепленные файлы
Прикрепленный файл  CSTARTUP.rar ( 2.53 килобайт ) Кол-во скачиваний: 122
 


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
lebiga
сообщение Jul 13 2007, 19:18
Сообщение #34


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 22-06-06
Из: Киев
Пользователь №: 18 292



[..........]
Скомпилировал проекты - все нормально, листинги есть
При отключенной оптимизации - размер кода моего проекта 90200 байт против 95824 (ver4.41)

Сообщение отредактировал zltigo - Jul 13 2007, 21:20
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 14 2007, 00:10
Сообщение #35


Гуру
******

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



Цитата(lebiga @ Jul 13 2007, 22:18) *
размер кода моего проекта 90200 байт против 95824 (ver4.41)

При максимальной оптимизации (галочки в проекте, без затей) по производительности получил на тестовом проекте порядка 600 байт уменьшения на полторы сотни килобайт бинарника. Заливать не пробовал - не дошли руки, но листинги пытался сравнивать с 4.41/42 - отличия радикальные, глобальная оптимизация похоже или круто работает или круто лажается smile.gif. Надо будет завтра попугаемер пообъективнее собрать и с осциллографом по интересным местам пройтись....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 14 2007, 12:16
Сообщение #36


Шаман
******

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



М-м-да! Я уж было подумал, что производители компиляторов достигли или уж по крайней мере близко подошли к некоторому гипотетическому пределу совершенства.
ИАРовцы удивили в очередной раз.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 14 2007, 13:06
Сообщение #37


Гуру
******

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



Цитата(IgorKossak @ Jul 14 2007, 15:16) *
ИАРовцы удивили в очередной раз.

На самом деле если не удивили, то порадовали.
1. Компилятор (в прямом смысле этого слова) явно стал
генерить шустрее код, похоже, за счет глобальной оптимизации. До более менее объективных оценок производительности еще не добрался sad.gif - осваиваю инструмент, но разница заметна почти невооруженным взглядом.
2. Библиотеки ПЕРЕПИСАЛИ! По крайней мере невыносимо тупой IARовский memcpy() ускорился на копировании невыровненного массива с некрасивой длинной в 63 байта почти в четыре раза и стал вровень с писанным на ASM.

С остальным иструментарием - все поменяли и он сыроват даже при поверхностном знакомстве sad.gif
Завязались на binutils и выкинули из линкера в отдельную утилиту ichecksum, но забыли smile.gif smile.gif приложить юниксовый шелл....
Про ASM уже писал - рихтовать надо и отупел он несколько sad.gif
Свой листинг выбрасыает прямо в stdio - прикольно смотрится компиляция в IDE.
IDE я пользовался мало, но пока пользовался - разок уронил и все замеченные мной ранее интерфейсные глючки на месте остались sad.gif.

Линкер многократно доводил до воппля 'internal error'.
В линкере документированы вкусности, но чего-то не удалось даже красиво прилинковать секцию с конца RAM - либо витеевато ругался, либо 'в данной версии не поддерживается'. Обойти, конечно, обошел. При линковке ROM, пока не вынес последнюю секцию из общего списка в отдельный - линковал уже за ней кусок даных для инициализации. И вообще конструция типа
Код
place in RAM { readwrite,
                     block CSTACK, block SVC_STACK, block IRQ_STACK, block FIQ_STACK };

не только в вышеупомянутом случае работает неправильно, ибо __section_begin() возвращает для всех болоков один адрес, а в ASM все
нормально.

Документация на новое плохая sad.gif, например, если судить по ней, то ichecksum нужно сразу в мусорник засунуть, я уж было собирался свою писать, но случайно заметил в логе, как она используется изнутри линкера. Однако, чуть было не выбросил вторй раз, если-бы случайно не догадался попробовать для того, что-бы вычесть 1 при указании range прибавить -1 smile.gif.



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

Сообщение отредактировал zltigo - Jul 14 2007, 15:01


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 15 2007, 14:16
Сообщение #38


Гуру
******

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



В общем с EWARM 5.10 все в порядке. В пределах необходимых для нескольких текущих проектов за выходные дни освоил. Несколько тонких мест в "С" исходниках пришлось вынести под __IAR_SYSTEMS_ICC__ >= 7 (кстати 7 а не 6, как в документации на 5.1 описано).
Startup-ы переписаны заново, ASM файлы подогнаны под совместимый вариант, конфигурации линкера естественно совсем другие. Подсчет контрольных сумм и конвертировку в другие форматы теперь делает не линкер, посему добавились инструментов (пользователям IAR IDE теперь придется на Postbuild cmd файл вешать smile.gif ).
Подсовывать объектики другому линкеру не пробовал - завтра займусь, но GCC и ADS библиотеки линкуются, что очень хорошее подспорье. С ImageCraftV7 что-то не заладилось.
Большие проекты (при максимальной оптимизации), как уже писал, чуть чуть уменьшаются по объему, но тестовый проектик в 20K разбух до 24K.
Выберу минутку bootloader попробую портировать с минимизацией размера.
Dhrystones 2.1 выдал 83544 попугаев против 73088 при компиляции 4.42 это больше 14%.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 15 2007, 18:31
Сообщение #39


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

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



Я вот в мигрейшен гиде прочитал что теперь ни ассмблер ни компилер не делают несколько модулей в одном файле т.е. файл всегда линкуется только целиком.
Получается что лишнии функции выкидываться не будут или надо делать кучу файлов по одной.
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 15 2007, 20:08
Сообщение #40


Шаман
******

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



Цитата(KRS @ Jul 15 2007, 21:31) *
Я вот в мигрейшен гиде прочитал что теперь ни ассмблер ни компилер не делают несколько модулей в одном файле т.е. файл всегда линкуется только целиком.
Получается что лишнии функции выкидываться не будут или надо делать кучу файлов по одной.

По идее должны выкидываться если к ним нет обращения.
Проверить пробовали?
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 15 2007, 21:26
Сообщение #41


Гуру
******

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



Цитата(KRS @ Jul 15 2007, 21:31) *
Получается что лишнии функции выкидываться не будут или надо делать кучу файлов по одной.

Естественно при использовании стандартных форматов не выбрасывает. Фича была неплохая, но не общепринятая.
Отсутствие ее в общем-то привычно.

P.S.
Библиотеки, конечно разбухли - bootloader не влез, ибо разбух почти на килобайт при оптимизации по размеру. Весь код примерно на том-же уровне остался (обычно чуть поменьше) но библиотечные функции разбухли. Таже резко пошустревшая memcpy() стала около 190 байтов, вместо нескольких десятков. printf() раза в полтора увеличился. Пришлось писать свои - результат почти 2K экономии.
Кстати, у линкера нет доставшего xlink-овского глюка
http://electronix.ru/forum/index.php?showt...10&hl=xlink
заполняет все под завязку.
ichecksum работает хреново sad.gif в непонятных случаях ломается на границах ASM и 'С' секций даже если они стык в стык линкуются. Вопит, что содержит неинициализированные области а при попытке ему-же приказать заполнить находит зону стартовый адрес которой на единицу меньше конечного smile.gif sad.gif. Обойти не удалось sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 16 2007, 07:56
Сообщение #42


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

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



Цитата(zltigo @ Jul 16 2007, 01:26) *
Естественно при использовании стандартных форматов не выбрасывает. Фича была неплохая, но не общепринятая.

Я только одного не понял! Зачем они поддержку UBPROF вообще удалили, ну добавили бы EABI как опцию.
Go to the top of the page
 
+Quote Post
KRS
сообщение Jul 16 2007, 09:16
Сообщение #43


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

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



Посомтрел я несколько листингов от 5.10 для THUMB, код почти один в один, за исключением стека 5.10 больше ригистров сохраняет, зачем непонятно! например R0 зачем то сохраняет в стеке в начале функции. Внутри перед вложенным вызовом зачем то сохраняет LR (который уже сохранен в начале) в итоге код от 5.10 больше и стека больше жрет.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 16 2007, 10:22
Сообщение #44


Гуру
******

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



Цитата(KRS @ Jul 16 2007, 12:16) *
Посомтрел я несколько листингов от 5.10 для THUMB, код почти один в один...

И пользуюсь и смотрел только ARM. Коды отличаются очень сильно (смотрел, естественно функции о много десятков строк).
Единственно, где THUMB используется это загрузчик, но там код не смотрел - только размеры функций по листингу. Одни чуть меньше другие чуть больше. Единственная функция которая выперла на 5.10 по размеру на пяток процентов побольше это AES дешифратор.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
ZMax
сообщение Jul 16 2007, 13:33
Сообщение #45





Группа: Новичок
Сообщений: 12
Регистрация: 4-07-07
Пользователь №: 28 883



подскажите , пожалуйста , ссылочку на мигрейшн гид...
и кто нибудь может помочь с рихтованием асмовского кода под новую версию ?
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 21st July 2025 - 11:31
Рейтинг@Mail.ru


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