Цитата(IgorKossak @ Jul 14 2007, 15:16)

ИАРовцы удивили в очередной раз.
На самом деле если не удивили, то порадовали.
1. Компилятор (в прямом смысле этого слова) явно стал
генерить шустрее код, похоже, за счет глобальной оптимизации. До более менее объективных оценок производительности еще не добрался

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

Завязались на binutils и выкинули из линкера в отдельную утилиту ichecksum, но забыли

приложить юниксовый шелл....
Про ASM уже писал - рихтовать надо и отупел он несколько

Свой листинг выбрасыает прямо в stdio - прикольно смотрится компиляция в IDE.
IDE я пользовался мало, но пока пользовался - разок уронил и все замеченные мной ранее интерфейсные глючки на месте остались

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

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

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