Перейти к содержанию
    

Keil CARM

Использую 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 строк

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дело рук самих утопающих (и авторов текстов) использовать длиннющие файлы и устарелые, не поддерживаемые производителем компиляторы...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Тут уж ничего не поделаешь. У меня проект из множества файлов. Максимально 2000 строк около 70кб. Компилит секунд за 20. Попробуйте снести и поставить мдк302а. Там вроде последнее обновление карма.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или 800..1000 строк - это у Вас одна такая функция?

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Компилятор ICCV7(Imagecraft) компилитует 2000 строк за 2 секунды.

В скомпилированной программе обработчик прерывания входит в прерывание быстрее, чем после Кейла.

Сравнение компиляторов производилось на одном и том же исходном С тексте для процессора LPC2138.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...