Мои 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 срабатывает ватчдог

. Если снять флажек Discard Unused Publics драйвер UART начинает нормально рабюотать на FTP заходит через раз, HTTP вешеат проц, скорость обмена тоже не привышает 500 кБ/с.
Беглый просмотр листингов не выявил ничего криминального, хотя я сильно не вникал небыло времени.
У меня в проекте используются функции в RAM (__ramfunc) есть подозрение что от туда все глюки и тянутся. Также есть подозрения на обработчики преываний он там тоже чего то похоже наоптимизировал.
Это предварительная инфа, на выходных попробую поглубже покопать и розабраться в чем дело.