Полная версия этой страницы:
Keil CARM
KostyanPro
Jun 25 2007, 15:55
Использую Keil v3.33 и компилятор CARM 2.42. Нарвался на следующий баг.
Один из файлов проекта превышает 800 строк (более 20кБ) . При этом компилятор на этом файле начинает подтормаживать , его также поддерживает и линковшик. При размере файла более 1000 строк компиляция + линковка может занимать более 1 минуты.
Есть ли способ это победить , либо необходимо только уменьшать размеры файлов ??
А ещё Кейл может просто отказаться компилировать большие тексты на С.
Поэтому я перешёл с Кейла на IVCC7ARM (Imagecraft).
А сами Вы в таком здоровом файле легко ориентируетесь?
Проще разбить на несколько мелких файлов, каждый будет содержать от отдной до нескольких функций, выполняющих какое-то одно, логически завершенное действие.
Или 800..1000 строк - это у Вас одна такая функция?
Для VAI:
Как-то не так давно здесь обсуждались исходные тексты TCP/IP стеков. В частности стек с сайта
Title: AT-Modem, PPP, UDP, ICMP & TCP
Author: lexxy (C Moss)
Registered at AVRfreaks.net May 22, 2004
www.avrfreaks.net
Проект состоит из 20 файлов, в том числе:
main.c 25кб 857 строк
ppp.c 58кб 1746 строк
tcp.c 46кб 1160 строк
Дело рук самих утопающих (и авторов текстов) использовать длиннющие файлы и устарелые, не поддерживаемые производителем компиляторы...
vesago
Jun 26 2007, 11:31
Тут уж ничего не поделаешь. У меня проект из множества файлов. Максимально 2000 строк около 70кб. Компилит секунд за 20. Попробуйте снести и поставить мдк302а. Там вроде последнее обновление карма.
KostyanPro
Jun 26 2007, 16:31
Цитата(VAI @ Jun 26 2007, 06:25)

Или 800..1000 строк - это у Вас одна такая функция?
800..1000 строк -- одна функция реализующая алгоритм работы девайса с помошью конечного автомата. Получилось весьма читабельно , но !! с этим багом

Цитата
Попробуйте снести и поставить мдк302а.
Благодарю, попробую
Компилятор ICCV7(Imagecraft) компилитует 2000 строк за 2 секунды.
В скомпилированной программе обработчик прерывания входит в прерывание быстрее, чем после Кейла.
Сравнение компиляторов производилось на одном и том же исходном С тексте для процессора LPC2138.
abcdefg
Jun 27 2007, 15:08
Цитата(KostyanPro @ Jun 26 2007, 20:31)

Благодарю, попробую

У меня какое-то время назад вообще линкер (2.54а) зависал, помог откат к более ранней версии компилятора. Сейчас опять 2.54а и вроде без глюков. Смотрю свой проект: около 290кб кода, есть есть несколько файлов по 20-30к. Время линкования около 20 секунд (селерон4-3Ггц), но при этом подвисает вся система...
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.