|
|
  |
Глюки IAR на больших проектах, наблюдаю ужасный сабж, я такой один? |
|
|
|
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.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|