Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Keil CARM
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
KostyanPro
Использую Keil v3.33 и компилятор CARM 2.42. Нарвался на следующий баг.

Один из файлов проекта превышает 800 строк (более 20кБ) . При этом компилятор на этом файле начинает подтормаживать , его также поддерживает и линковшик. При размере файла более 1000 строк компиляция + линковка может занимать более 1 минуты.

Есть ли способ это победить , либо необходимо только уменьшать размеры файлов ??
etoja
А ещё Кейл может просто отказаться компилировать большие тексты на С.
Поэтому я перешёл с Кейла на IVCC7ARM (Imagecraft).
VAI
А сами Вы в таком здоровом файле легко ориентируетесь?
Проще разбить на несколько мелких файлов, каждый будет содержать от отдной до нескольких функций, выполняющих какое-то одно, логически завершенное действие.
Или 800..1000 строк - это у Вас одна такая функция?
etoja
Для 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 строк
VAI
Дело рук самих утопающих (и авторов текстов) использовать длиннющие файлы и устарелые, не поддерживаемые производителем компиляторы...
vesago
Тут уж ничего не поделаешь. У меня проект из множества файлов. Максимально 2000 строк около 70кб. Компилит секунд за 20. Попробуйте снести и поставить мдк302а. Там вроде последнее обновление карма.
KostyanPro
Цитата(VAI @ Jun 26 2007, 06:25) *
Или 800..1000 строк - это у Вас одна такая функция?

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

Цитата
Попробуйте снести и поставить мдк302а.

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


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