|
|
  |
Новая версия IAR EW430 4.10A, появилась новая версия |
|
|
|
Nov 20 2007, 00:07
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(Dog Pawlowa @ Oct 22 2007, 14:29)  А прибор то работает?  Сегодня удалось-таки проверить в приборе прошивку, скомпилированную новой версией 4.10A. Работает! Оптимизация High-Balanсed, опция Code motion по традиции выключена. Reduce stack usage включена. Цитата 5 466 bytes of CODE memory 405 bytes of DATA memory (+ 60 absolute ) 132 bytes of CONST memory (+ 176 absolute ) В 3.42a с такими же установками (только оптимизация High-Speed) было Цитата 5 730 bytes of CODE memory 405 bytes of DATA memory (+ 60 absolute ) 164 bytes of CONST memory (+ 176 absolute ) Куда в 4.10a деваются константы, не пойму до сих пор
|
|
|
|
|
Nov 20 2007, 04:56
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37

|
Цитата Куда в 4.10a деваются константы, не пойму до сих пор Кстати, я ручками посчитал по всем файлам *.lst сколько констант используется, и сравнил сколько пишет в конце и 3.30а и 4.10а. В *.lst - количество const одинаковое в обоих версиях, и оно больше, чем то, которое написано в конце, после линковки. В обоих версиях "результат" меньше "суммы", в 4.10а просто он меньше, чем в 3.30а. У меня, кстати, надурняка с 3.30а на 4.10а перекомпилировалось без ошибок, не заработало, но сейчас "переправа" сразу нескольких проектов, притормозил переход... хотя попробовать охота...
--------------------
Если зайца бить, его можно и спички научить зажигать Сколько дурака не бей - умнее не будет. Зато опытнее
|
|
|
|
|
Nov 20 2007, 07:54
|
Частый гость
 
Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750

|
Цитата(rezident @ Nov 20 2007, 04:07)  Оптимизация High-Balanсed, опция Code motion по традиции выключена. Reduce stack usage включена. Чем вызвана такая такая нелюбовь к Code motion ? По поводу констант сложидось впечатление что он их начал активнее инлайнить. Сравнить уже не с чем моcты сожжены
|
|
|
|
|
Nov 20 2007, 08:48
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 120
Регистрация: 17-06-04
Пользователь №: 37

|
Цитата Чем вызвана такая такая нелюбовь к Code motion ? Глючит. У меня переменную, которая менялась в цикле, выводила за цикл... Где-то здесь писалось.
--------------------
Если зайца бить, его можно и спички научить зажигать Сколько дурака не бей - умнее не будет. Зато опытнее
|
|
|
|
|
Nov 20 2007, 16:00
|
Гуру
     
Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823

|
1 ) В одном проекте только часовой кварц, контроль которого встроенными средствами MSP не поддерживается. Поэтому было сделано грубое сравнение таймера от кварца с программным циклом от DCO. Цикл изменился, константу пришлось менять. 2 ) Ага, я его сломал! Поставил оптимизацию high, balanced, снял галку Code motion. Код Error[e46]: Undefined external "This_Function" referred in work ( D:....r43 ) Internal Error: In function: unknown Diagnostic: unexpected exception P0: 1 P1: 0 Error while running Linker Total number of errors: 2 Total number of warnings: 0 3) Поигрался с галками. Ошибка исчезает, если снять галку Function inlining. То есть функция "проинлайнена", а линковщик ищет указатель на нее и естественно не находит. Вывод: реальный глюк, однако...
--------------------
Уходя, оставьте свет...
|
|
|
|
|
Nov 20 2007, 17:32
|
Частый гость
 
Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750

|
Цитата(Dog Pawlowa @ Nov 20 2007, 21:08)  Видимо, отследить человеческим разумом сочетания возможностей среды и компилятора просто нереально. Если придерживаться правила "буть проще", видимо многих косяков можно избежать.
|
|
|
|
|
Nov 21 2007, 16:13
|
Частый гость
 
Группа: Свой
Сообщений: 94
Регистрация: 12-11-05
Из: Росиия, Нижний Новгород
Пользователь №: 10 750

|
Цитата(Dog Pawlowa @ Nov 21 2007, 19:55)  А еще в новой версии происходит контроль заполнения стека. Если на момент останова стек занят более чем на 90%, в окне сообщений выводится предупреждение. В 3.42А это уже было и настраивается в опциях отладчика. При отладке в операционке вообще вещь бесполезная, т.к. стек там всегда не "там". А у меня и в main пишет что стек кончился  Так как в качестве стека main используются буфферы таск, которые до старта таск не нужны.
|
|
|
|
|
Nov 24 2007, 14:19
|
Участник

Группа: Свой
Сообщений: 72
Регистрация: 4-12-04
Пользователь №: 1 322

|
Такая проблема. У меня в Симуляторе IAR for MSP 4.10 подпрограмма длительностью примерно 1 млн. циклов выполняется порядка 1 минуты. Это при условии, что активно окно IDE, иначе еще дольше. Вопрос: Что симулирует Pentium целую минуту в процедуре, котрую MSP должен исполнить за 125мс? Как уменьшить это время? Может в настройках что-то не то?
Проверить на старых версиях IAR for MSP сейчас нет возможности, но я запихнул ту же процедуру в IAR for AVR - там симуляция занимает несколько секунд, что вполне приемлимо.
|
|
|
|
|
Nov 25 2007, 17:08
|
Участник

Группа: Свой
Сообщений: 72
Регистрация: 4-12-04
Пользователь №: 1 322

|
Цитата(akostin @ Nov 24 2007, 17:19)  Проверить на старых версиях IAR for MSP сейчас нет возможности, но я запихнул ту же процедуру в IAR for AVR - там симуляция занимает несколько секунд, что вполне приемлимо. Вот проверил скорость выполнения процедуры БПФ в разных версиях симулятора IAR EW430: 3.21 31 сек 3.40 55 сек 3.42 52 сек 4.10 60 сек IAR AVR 4.20 3 сек !!!!! Особенно удивила старая 3.21 - работает быстрее новых. Напоминаю - число циклов процессора MSP430 в данной процедуре порядка 1млн. Кто-нибудь сталкивался с такой ситуацией?
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|