|
Глюки IAR на больших проектах, наблюдаю ужасный сабж, я такой один? |
|
|
|
Dec 5 2007, 07:54
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
У меня IAR EWARM 4.41a, до этого был 4.20с - на обоих серьезные проблемы при работе с большими проектами (из большого числа файлов). Среда начинает сильно тормозить, при переключении контекста нередки зависания на 1-2 минуты и более, загрузка проца 99%, немереное потребление виртуальной памяти, особенно в режиме отладки... Замечено было даже, что при превышении определенного к-ва исходных файлов в каталоге проекта среда при запуске трапается, приходится разносить исходники по подкаталогам. Сперва грешил на "грязную" систему NT 2000, на днях установил с 0 XP, попробовал на совсем "голой" - картина аналогичная, даже хуже. Скажите мне, я такой один, или у кого-то наблюдались похожие симптомы?
Сообщение отредактировал sergik_vrn - Dec 5 2007, 07:55
|
|
|
|
|
Dec 5 2007, 08:18
|
Участник

Группа: Новичок
Сообщений: 21
Регистрация: 13-09-07
Пользователь №: 30 506

|
Было похожее на IAR для MSP430. После какого-то времени начинал жутко тормозить. Проекты были небольшие, так что с размером скорее не связано. Закрыл/открыл - какое-то время работаешь.
|
|
|
|
|
Dec 5 2007, 08:42
|

Знающий
   
Группа: Свой
Сообщений: 723
Регистрация: 29-08-05
Из: Березовский
Пользователь №: 8 065

|
Цитата(deadman @ Dec 5 2007, 13:18)  Было похожее на IAR для MSP430. После какого-то времени начинал жутко тормозить. Проекты были небольшие, так что с размером скорее не связано. Закрыл/открыл - какое-то время работаешь.  Примерно та же хренотень. IAR C/C++ Compiler for AVR 4.30A/W32 [Evaluation] (4.30.1.3) Пролечен, но ругается "Time limited license: 14 days left" Процессор Пень-4 2.4 ГГц двуядерный (поэтому загружается на 50%), оперативы 512 Мег. Т.е. никаких видимых ограничений не наблюдается. Откраваю среду -- нормально, проц не загружен. Загружаю проект -- иногда нормально, иногда проц срывается в 50% загрузку. Начинаю что-нибудь изменять в тексте -- стабильно 50% загрузка, иногда подскакивает до 100, потом снова падает до 50. Зависаний компа на 1-2 минуты не получал, хотя тормоза в IAR'е ощущуаются. Собственно как наскочил на этот эффект: по звуку вентилятора на проце. Как только -- так сразу пропеллер натужно начинает сдувать тепло. Послал комп на три кнопочки и увидел. Автору спасибо за поднятую тему, я бы сам наверно не собрался ее поднять.
--------------------
Хочешь рассмешить Бога -- расскажи ему о своих планах!
|
|
|
|
|
Dec 5 2007, 09:05
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(alexander55 @ Dec 5 2007, 11:42)  А что за машина у Вас, если не секрет ? P4 2.4ГГц, 512М ОЗУ, Win XP SP2. пока не начинаются тормоза, никаких претензий по производительности нет. Visual Studio не тормозит Цитата(zhevak @ Dec 5 2007, 11:42)  [..] Зависаний компа на 1-2 минуты не получал, хотя тормоза в IAR'е ощущуаются. Собственно как наскочил на этот эффект: по звуку вентилятора на проце. Как только -- так сразу пропеллер натужно начинает сдувать тепло. Послал комп на три кнопочки и увидел. кстати, да, после 10-15 минут работы начинает шуметь вентилятор проца. ну я со всем готов мириться, но эти зависоны...
|
|
|
|
|
Dec 5 2007, 09:47
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(Andy Mozzhevilov @ Dec 5 2007, 12:26)  Потратьте немного времени на освоение запуска компилятора через make или с использованием подобных технологий сборки проекта, возьмите нормальный редактор, типа слика или подобного другого. Пара недель, которые вы инвестируете в эти технологии, потом окупятся сторицей. Я не понимаю, как можно пользоваться достаточно убогим встроенным редактором оболочки IAR. Сам пользую оболочку IAR только для запуска дебагера. именно так, как Вы описали, я и работаю. к сожалению, если править ошибки компиляции в слике еще можно, то для отладки-правки все равно приходится запускать среду, а это значит создавать проект, вести его и проч. при этом и наблюдаются вышеописанные проблемы
|
|
|
|
|
Dec 5 2007, 10:02
|

Знающий
   
Группа: Свой
Сообщений: 877
Регистрация: 26-01-05
Из: Екатеринбург
Пользователь №: 2 206

|
Цитата(sergik_vrn @ Dec 5 2007, 14:47)  именно так, как Вы описали, я и работаю. к сожалению, если править ошибки компиляции в слике еще можно, то для отладки-правки все равно приходится запускать среду, а это значит создавать проект, вести его и проч. при этом и наблюдаются вышеописанные проблемы Нет, вы усложнили себе жизнь. Достаточно сказать линкеру, чтобы он создал файл d79 (возможно еще дополнительно потребуется sim, у меня создается во всяком случае, не помню подробностей, зачем). Потом вы в IAR в проект добавляете единственный файл - с расширением d79, для отладки в нем целиком и полностью содержится вся информация. В IAR настраиваете только опции дебагера. Вуаля. вот из makefile опции по выходным форматам файлов: Код -o $(PROJ_NAME).d79 -Fubrof -Osimple-code=$(PROJ_NAME).sim -Ointel-extended,1=$(PROJ_NAME).hex
--------------------
Пасу котов...
|
|
|
|
|
Dec 5 2007, 10:09
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(Andy Mozzhevilov @ Dec 5 2007, 13:02)  Нет, вы усложнили себе жизнь. Достаточно сказать линкеру, чтобы он создал файл d79 (возможно еще дополнительно потребуется sim, у меня создается во всяком случае, не помню подробностей, зачем). Потом вы в IAR в проект добавляете единственный файл - с расширением d79, для отладки в нем целиком и полностью содержится вся информация. В IAR настраиваете только опции дебагера. Вуаля. вот из makefile опции по выходным форматам файлов: Код -o $(PROJ_NAME).d79 -Fubrof -Osimple-code=$(PROJ_NAME).sim -Ointel-extended,1=$(PROJ_NAME).hex любопытно. сейчас попробоую. спасибо за совет
|
|
|
|
|
Dec 5 2007, 10:51
|

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

|
Цитата(sergik_vrn @ Dec 5 2007, 09:54)  У меня IAR EWARM 4.41a, до этого был 4.20с - на обоих серьезные проблемы при работе с большими проектами (из большого числа файлов). Среда начинает сильно тормозить, при переключении контекста нередки зависания на 1-2 минуты и более, загрузка проца 99%, немереное потребление виртуальной памяти, особенно в режиме отладки... Замечено было даже, что при превышении определенного к-ва исходных файлов в каталоге проекта среда при запуске трапается, приходится разносить исходники по подкаталогам. Сперва грешил на "грязную" систему NT 2000, на днях установил с 0 XP, попробовал на совсем "голой" - картина аналогичная, даже хуже. Скажите мне, я такой один, или у кого-то наблюдались похожие симптомы? Среда 4.42 и 5.10, комп средней мощности, проекты как маленькие так и большие. Загрузка процессора полная только при сборке, но это от среды не зависит, компилятор и линкер так написаны. При отладке загрузка подскакивает до максимума на время отработки шага, т. е. очень ненадолго. Другие особенности не проверял.
|
|
|
|
|
Dec 7 2007, 08:40
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(sergik_vrn @ Dec 5 2007, 13:09)  любопытно. сейчас попробоую. спасибо за совет попробовал. после некоторых танцев в слике все закомпилялось, отладка из IAR работает по указанной схеме, весьма доволен, тормоза пропали. всем большое спасибо и рекомендую. если кому-то надо, могу поделиться готовыми настройками для gmake
|
|
|
|
|
Dec 7 2007, 09:37
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(zltigo @ Dec 7 2007, 11:59)  А в чем их соль? никакой особой соли, просто готовые настройки для запуска компилера. для тех, кто раньше работал в среде, по себе знаю, может оказаться весьма полезно - написать make-файл с нуля ох как непросто
|
|
|
|
|
Dec 7 2007, 11:01
|
Местный
  
Группа: Участник
Сообщений: 256
Регистрация: 6-03-05
Из: Екатеринбург
Пользователь №: 3 112

|
Ну вот, к примеру учебно-тренировочный мэйкфайл для иаровского проекта: (сорри, аттач прицепить не получилось) Код ENVROOT = "C:/Program Files/IAR Systems/Embedded Workbench Evaluation version" COMROOT = $(ENVROOT)/common AVRROOT = $(ENVROOT)/avr LIBROOT = $(AVRROOT)/lib SRCROOT = ../..
INC = -I$(AVRROOT)/inc -I$(AVRROOT)/inc/clib MMCU = --cpu=m128
CC = $(AVRROOT)/bin/iccavr CCFLAGS = $(MMCU) -ms -o ./ -y --initializers_in_flash -s9 --cross_call_passes=4 -DENABLE_BIT_DEFINITIONS\ -e --do_cross_call --require_prototypes $(INC) --eeprom_size 4096 --lock_regs=4
AS = $(AVRROOT)/bin/aavr ASFLAGS = -v3 -O./ -s+ -w+ "-M<>" -u_enhancedCore -DIAR -D__ASSEMBLER__ -D__HAS_ENHANCED_CORE__=1 -D__HAS_MUL__=1\ $(INC) -D__MEMORY_MODEL__=2 -D__ATMEGA128__=1 -D__HAS_ELPM__=1
LD = $(COMROOT)/bin/xlink.exe LDFLAGS = -Fintel-standard -I$(AVRROOT)/lib -f $(AVRROOT)/src/template/cfgcan128.xcl\ -D_..X_HEAP_SIZE=80 -D_..X_CSTACK_SIZE=80 -D_..X_RSTACK_SIZE=80 -e_small_write=_formatted_write\ -e_medium_read=_formatted_read -f $(AVRROOT)/src/template/cfg3s.xcl -D_..X_FLASH_BASE=_..X_INTVEC_SIZE\ -H1895 "-h(CODE)0-(_..X_INTVEC_SIZE-1)" -D_..X_EXT_SRAM_BASE=_..X_SRAM_BASE\ -D_..X_EXT_SRAM_END=_..X_SRAM_BASE -D_..X_EXT_ROM_BASE=_..X_SRAM_BASE -D_..X_EXT_ROM_END=_..X_SRAM_BASE\ -D_..X_EXT_NV_BASE=_..X_SRAM_BASE -D_..X_EXT_NV_END=_..X_SRAM_END -D_..X_EXT_CSTACK_BASE=_..X_SRAM_BASE\ -D_..X_EXT_CSTACK_END=_..X_SRAM_BASE -D_..X_EXT_RSTACK_BASE=_..X_SRAM_BASE -D_..X_EXT_RSTACK_END=_..X_SRAM_BASE\ -C $(AVRROOT)/lib/clib/cl3s-ec.r90
PROGRAMMER = avrdude PROGFLAGS = -p m128 -c usbasp
OBJLIST = main.r90 interrupt.r90 cstartup.r90
all: $(OBJLIST) $(LD) $(OBJLIST) $(LDFLAGS) -o image.hex
main.r90: $(SRCROOT)/main.c $(CC) $(CCFLAGS) $(SRCROOT)/main.c
cstartup.r90: $(AS) $(ASFLAGS) $(AVRROOT)/src/lib/cstartup.s90
interrupt.r90: $(SRCROOT)/interrupt.S $(AS) $(ASFLAGS) $(SRCROOT)/interrupt.S
.phony: program fuse lock clean
program: image.hex $(PROGRAMMER) $(PROGFLAGS) -U flash:w:image.hex:i
# atmega128 fuses: crystal 4 MHz, no m103 compat, BOD enabled, BODLEVEL = 2.7v, JTAG disabled fuse: $(PROGRAMMER) $(PROGFLAGS) -U lfuse:w:0xAF:m -U hfuse:w:0xD9:m -U efuse:w:0xFF:m
lock: $(PROGRAMMER) $(PROGFLAGS) -U lock:w:0x3C:m
clean: del *.r90 *.hex
# EOF
|
|
|
|
|
Dec 7 2007, 11:43
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(ivainc1789 @ Dec 7 2007, 14:27)  Тормоза сборки на больших проектах.... Так какой камень прошиваете, какого размера код получаете? Нужно ведь как-то оценить размер проекта, а то у меня Мега16 забита полностью в макс оптимизации, сборка длится 7 сек. Ни зависонов, ни тормозов... Вполне устраивает... уточню - дело не в сборке больших проектов, сборка сама как раз не тормозит (просто занимает определенное время, пропорциональное количеству файлов проекта). Речь шла изначально о глюках самой среды, когда она зависает на длительное время без особых причин (например, после переключения контекста). длительность и частота зависаний сильно зависит от размера проекта, кроме того, повторюсь, при добавлении в один каталог диска большого к-ва файлов, наблюдал трапы. Цитата(forever failure @ Dec 7 2007, 14:01)  Код LDFLAGS = -Fintel-standard -I$(AVRROOT)/lib -f $(AVRROOT)/src/template/cfgcan128.xcl\ -D_..X_HEAP_SIZE=80 -D_..X_CSTACK_SIZE=80 -D_..X_RSTACK_SIZE=80 -e_small_write=_formatted_write\ -e_medium_read=_formatted_read -f $(AVRROOT)/src/template/cfg3s.xcl -D_..X_FLASH_BASE=_..X_INTVEC_SIZE\ -H1895 "-h(CODE)0-(_..X_INTVEC_SIZE-1)" -D_..X_EXT_SRAM_BASE=_..X_SRAM_BASE\ -D_..X_EXT_SRAM_END=_..X_SRAM_BASE -D_..X_EXT_ROM_BASE=_..X_SRAM_BASE -D_..X_EXT_ROM_END=_..X_SRAM_BASE\ -D_..X_EXT_NV_BASE=_..X_SRAM_BASE -D_..X_EXT_NV_END=_..X_SRAM_END -D_..X_EXT_CSTACK_BASE=_..X_SRAM_BASE\ -D_..X_EXT_CSTACK_END=_..X_SRAM_BASE -D_..X_EXT_RSTACK_BASE=_..X_SRAM_BASE -D_..X_EXT_RSTACK_END=_..X_SRAM_BASE\ -C $(AVRROOT)/lib/clib/cl3s-ec.r90 на мой вкус подобные вещи лучше задавать в xcl-файле, гораздо более совместимо и адаптируемо Цитата(IgorKossak @ Dec 7 2007, 13:54)  Лучше присоединить к сообщению архив. рабочий make-файл для моего проекта под IAR EWARM 4.41 присоединен. основано на исходниках для AVR, любезно предоставленных в свое время Harry Zhurov'ым. сборка выполняется при помощи vsbuild вызовом из слика echo src_list = %{*.*} > slist.mak | gmake all
Сообщение отредактировал sergik_vrn - Dec 7 2007, 11:46
|
|
|
|
|
Dec 7 2007, 14:06
|
Местный
  
Группа: Участник*
Сообщений: 418
Регистрация: 20-08-07
Пользователь №: 29 930

|
Цитата(sergik_vrn @ Dec 5 2007, 10:54)  У меня IAR EWARM 4.41a, до этого был 4.20с - на обоих серьезные проблемы при работе с большими проектами (из большого числа файлов). Среда начинает сильно тормозить, при переключении контекста нередки зависания на 1-2 минуты и более, загрузка проца 99%, немереное потребление виртуальной памяти, особенно в режиме отладки... Замечено было даже, что при превышении определенного к-ва исходных файлов в каталоге проекта среда при запуске трапается, приходится разносить исходники по подкаталогам. Сперва грешил на "грязную" систему NT 2000, на днях установил с 0 XP, попробовал на совсем "голой" - картина аналогичная, даже хуже. Скажите мне, я такой один, или у кого-то наблюдались похожие симптомы? Пользуюсь IAR 4.42... Проект состоит примерно из 50 *.c файлов, ну и куча *.h-файлов - не меньше 50-ти однозначно... Система - XP, RAM - 1024, двухголовый пень - частота 2.2 Ггц 2 Duo CPU E4500... Целевой процессор - STR912F на нашей собственной плате.... Даже при работе со встроенным редактором IDE - проблем не возникает. И зависания если и возникают - то не чаще 1-2 раз за неделю... При том, что я машину обычно не выключаю и проект висит открытым - иногда неделями...
Сообщение отредактировал Николай Z - Dec 7 2007, 14:07
|
|
|
|
|
Dec 7 2007, 14:12
|

Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 11-10-05
Из: Воронеж
Пользователь №: 9 491

|
Цитата(Николай Z @ Dec 7 2007, 17:06)  Пользуюсь IAR 4.42... Проект состоит примерно из 50 *.c файлов, ну и куча *.h-файлов - не меньше 50-ти однозначно... Система - XP, RAM - 1024, двухголовый пень - частота 2.2 Ггц 2 Duo CPU E4500... Целевой процессор - STR912F на нашей собственной плате....
Даже при работе со встроенным редактором IDE - проблем не возникает. И зависания если и возникают - то не чаще 1-2 раз за неделю... При том, что я машину обычно не выключаю и проект висит открытым - иногда неделями... Вам повезло  хотя у меня файлов *.cpp под 80... попробовать штоли новую версию... Цитата(forever failure @ Dec 7 2007, 16:57)  Кстати, два вопроса в связи с этим: Есть ли в ИАРовском тулчейне своя make? Чо-то я там не нашёл, и использую гнутую. Где можно найти полное описание языка make, а не только хелловорлды, по возможности с описаниями всячеких расширений ? А то ведь их (мэйков) тоже есть не один вариант, и иной раз мэйкфайл для одной среды не подходит к другой. 1. нет, я тоже гнутую использую 2. погуглить не пробовали? уж что-что, но мейк... в свое время я без проблем нашел подробное описание, правда, с ходу его понять проблематично
|
|
|
|
|
Dec 10 2007, 06:35
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(forever failure @ Dec 7 2007, 16:57)  Есть ли в ИАРовском тулчейне своя make? Чо-то я там не нашёл, и использую гнутую. Что вы имеете в виду под "своей make"? Есть iarbuild, который на вход получает проект *.ewp и название конфигурации и его собирает.... Удобно для быстрого перехода под другую IDE. На будущее по-моему, лучше все равно использовать какие-нибудь сторонние тулзы для билда. Я использую SCons.
|
|
|
|
|
Dec 20 2007, 13:23
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Цитата(Andy Mozzhevilov @ Dec 5 2007, 13:02)  Нет, вы усложнили себе жизнь. Достаточно сказать линкеру, чтобы он создал файл d79 (возможно еще дополнительно потребуется sim, у меня создается во всяком случае, не помню подробностей, зачем). Потом вы в IAR в проект добавляете единственный файл - с расширением d79, для отладки в нем целиком и полностью содержится вся информация. В IAR настраиваете только опции дебагера. Вуаля. вот из makefile опции по выходным форматам файлов: Код -o $(PROJ_NAME).d79 -Fubrof -Osimple-code=$(PROJ_NAME).sim -Ointel-extended,1=$(PROJ_NAME).hex А возможно при этом заставить ИАР зацепить для отладки исходники на С?
|
|
|
|
|
Dec 20 2007, 13:37
|
Частый гость
 
Группа: Свой
Сообщений: 169
Регистрация: 10-11-05
Из: Воронеж
Пользователь №: 10 687

|
Цитата(Andy Mozzhevilov @ Dec 20 2007, 16:27)  Да, в этом и суть, чтобы отлаживаться полноценно на уровне исходников, и при этом не мутить в ИАР параллельный проект. Спасибо, обязательно попробую такой способ отладки.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|