Jump to content

    
Sign in to follow this  
s1avik

Какой компилятор выбрать IAR или Keil?

Recommended Posts

Попроботвал GNU и KEIL

Один и тот же проект

FFT1024 во float

У KEILа код получился почти в 4 раза меньше (по размеру HEXа)

+ Работает в 10 раз быстрее

Компилятор и либы - это разные сущности. В общем случае одно от другого не зависит. Помнится, когда нас прижало, мы нашли GCC оптимизированную библиотеку float для ARM, которая на наших задачах давала выигрыш 5 раз. Сейчас найти не смог - сорри. :(

Share this post


Link to post
Share on other sites

Народ , что то я совсем запутался.

подскажите.

 

Значит у нас есть 2 сишника Keil и GNU Sygnus

оба работают через mVision

 

В этой ветке пробегадло сообщение про GNU GCC http://www.gnuarm.com/

скачал, поставил, к mVision не подключился, но

из "ARM Cross Development with Eclipse.pdf" вытащил как компилить "вручную"

 

получился батник

@echo off
c:\Micro\ARM\GNUARM\bin\arm-elf-as -ahls -mapcs-32 -o Startup.o Startup.s > Startup.lst
c:\Micro\ARM\GNUARM\bin\arm-elf-gcc -I./ -c -fno-common -O3 -g main.c timer.c serial.c ADC.c
c:\Micro\ARM\GNUARM\bin\arm-elf-ld.exe -v -Map main.map -TphyCore.ld -o main.out Startup.o main.o ADC.o serial.o timer.o
c:\Micro\ARM\GNUARM\bin\arm-elf-objcopy.exe -O ihex main.out main.hex
c:\Micro\ARM\GNUARM\bin\arm-elf-objdump.exe -x --syms main.out  > main.dmp
pause

 

Простой проект с таймером и лампочками откомпилился и работает

Проблемы появились с FTT

линкер стал выдавать ошибку типа

/complex.c:10: undefined reference to `__addsf3'

/complex.c:12: undefined reference to `__addsf3'

 

вот complex.c

7 Complex add(const Complex a,const Complex b)
8 {
9 Complex result;
10    result.r = a.r + b.r;
11    result.i = a.i + b.i;
12   return(result);
13}

typedef
struct{
  float r;
  float i;
  } Complex;

похоже что это из-за float. Типа линкер не нашел процедур сложения float

в libgcc.a они есть.

 

Кстати стоит ли вообще с этим компилером заниматься? Будет ли результат лучше чем у Sygnus?

Share this post


Link to post
Share on other sites

To asen

Самый простой и известный способ - установить на компьютере дату на год вперед.

Evgeny_CD

Компилятор и либы - это разные сущности.

Какая хорошая классика :) (правду может не в тему :bb-offtopic: - мы тоже лет так 12-13 назад поступали при использовании Си-ных компиляторов для Intel 8086/80С188)

Share this post


Link to post
Share on other sites

asen

 

а вторая ссылка нехочит скачивать и вобще что куда сувать

сувать надо в адресную строку Вашего интернет-броузера (IE).

1. Вы смотрели по ссылке на сахару? Там написан пароль на архив и дана ссылка. По этой ссылке надо скачать лекарство, используя пароль и winrar не моложе версии 3.40 открыть архив и действовать в соответствии с инструкциями на лекарство.

 

Чтобы качать с ресурса "рапидшаре" надо нажать конпку "Free", откроется счетчик, когда он дотикает до 0 появится ссылка на файл. Что и показывается на флэшке.

 

Фаил *.swf

2. Если Вам все-таки не понятно, как скачивать с рапидшары, но у Вас не получается запустить в строке бровзера или скачать флэшку (это из-за narod.ru)

http://v572028.narod.ru/img/MATROSKINY.swf , зайдите на http://v572028.narod.ru и увидите эту флэшку в окне бровзера.

Флэшка размером 300 кб, поэтому, в зависимости от скорости Вашего соединения, вам надо подождать.

Share this post


Link to post
Share on other sites

Ну не ставится у меня и с новым генератором лицензий - LICENSE ERROR 208 RENEW LICENSE ID :(

 

Может еще какие то данные при проверке лицензии использует кейл кроме ID computer?

Share this post


Link to post
Share on other sites

А почему всё-таки Keil а не IAR.

Я работал правда не под ARM-ы, а под Atmel AVR и 8051, но мнение сложилось однозначное - ни за какие коврижки я Keil-ом пользоваться не буду. Код получается большой и тормозной + определённые глюки компилятора.

Share this post


Link to post
Share on other sites
А почему всё-таки Keil а не IAR.

Я работал правда не под ARM-ы, а под Atmel AVR и 8051, но мнение сложилось однозначное - ни за какие коврижки я Keil-ом пользоваться не буду. Код получается большой и тормозной + определённые глюки компилятора.

Вот блин! А я то думал...

А если серьезно, то компилятор С от Keil для 8051 один из лучших, а вся среда, включая симулятор на первом месте среди всего остального! Так что рискну не согласиться с вашим мнением. А глюков хватает и в других компиляторах. Код вполне приемлемый и по скорости и по длине.

 

А вот для ARM нужен, т.к. умеет работать с GCC/

Share this post


Link to post
Share on other sites
2Make_Pic

Так у Вас получилось установить?

Нет, и апдейт не катит. Действительно прийдется на новый винт новую винду, но это позже - нет времени.

Share this post


Link to post
Share on other sites
2Make_Pic

Так у Вас получилось установить?

Попылся поставить на XP, где и муха не сидела - те же грабли!!! Может я что-то не так делаю? Можно по пунктам установку?

Или генератор лицензий 2 только под WIN2000?

 

Я делаю так: запускаю инсталлятор карм240, заполняю имя орг. и т.д. от фонаря, далее ставлю в каталог C:\КЕIL, после finish запускаю кейлиц 2, устанавливаю АРМ, v2, генерю лицензию и сериал, далее в tооls.ini во все секции после [] ставлю LIС0= и SN= полученные выше, далее запускаю UV3

и смотрю эбаут, в нем виден номер лицензии, но период до 201X года нет, призапуске деббагера ошибка ERR208. Все то же для карм15 прокатывает!!!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this