MicroCHIP.RU
Главная Документация Отладочные средства Справочник Поиск Ссылки
 Новости   Конференция   Контакты 
 

PICC18 & C18

 Нoвaя темa  |  Наверх  |  Перейти к теме  |  Поиск  |  Правила  |  Вход 

ВНИМАНИЕ!
Вы просматриваете архив форума.

Этот форум работает только в режиме просмотра и поиска.

Действующий форум переведен на новый движок и
находится по адресу www.microchip.su

 PICC18 & C18
Автор: nik_al ()
Дата:   07/05/2004 10:01

Есть два вышеозначенных компилятора, про глюки PICC18 нашел инфу в конфе. А С18 -
там глюков меньше или ей никто не пользуется ? Если есть пользователи С18 может
поделитесь впечатлениями?


 
 Re: PICC18 & C18
Автор: NickB ()
Дата:   07/05/2004 10:04

мсс18-как и везде есть и проблемы.
А так ничего компилятор. Пользуюсь им


 
 PICC18 vs C18
Автор: Vova ()
Дата:   07/05/2004 11:42

хотелось бы сравнить, может попробуем?
по каким бы параметрам? хм ... для начала просто в принципе по
возможностям (по тому какой код генерится - потом).

рекурсия?
размещение ф-ции в произвольном
месте памяти программ?
массивы больше размера банка?
указатели на ПЗУ разместить в ПЗУ
можно?
указатели на ПЗУ разместить в ОЗУ можно? (мелочно это, конечно, но чего бы спросить-то еще
;)



а код ... скомпилить бы примерчик: http://www.teltonika.lt/ProjLinks/WHET.htm
для
начала что ль ...


 
 Залесь на гамму , там есть сравение компиляторов .(-)
Автор: Picmast ()
Дата:   07/05/2004 11:52

-

\---------------------------------------------------/
Все-таки лень самый мощный двигатель прогресса.


 
 читал я эту статейку ...
Автор: Vova ()
Дата:   07/05/2004 14:55

http://www.gamma.spb.ru/docs/C-compilers.pdf

не понравилась она мне ...


18C252 picc18 8.30, ассемблерная оптимизация включена, глобальная уровень 0.


первый пример с хитрыми структурами.
если printf закоментирован, то общий размер 344 байта, размер ф-ции h_weight() слов
20, общее время выполнения 1320 тактов. либо я чего-то непонимаю, либо те
компиляторы никуда не годятся.
если с printf'ом, то общий размер 2035, время 3295. printf линковался без лонгов и
флоатов. да и чего тогда о коде рассуждать? можно только сказать о размере и
времени выполнения printf'а.
сравните с данными в статье. вопрос а чего это так?
а, кстати, первый пример действительно не компилился :( сделал на скорую руку так:
    for( t=0; t<MAX_TX; t++ )
    {
        long qwe = db[t].buf_h;
        crls += h_weight( qwe ^ cof[t] ) - 16;
    }



пример второй - тригонометрические ф-ции.
в таблице для picc18 думаю имеется ошибка, а именно пример был скомпилен без
поддержки float'ов в printf (опцию -LF линкеру), поэтому размер получился меньше и
все будет работать, только флоаты будут принтаться неправильно.
линкуем с поддержкой флоатов в принтф.
24-битные флоаты. общий размер 5488, время 322700
32-битные флоаты. общий размер 5838, время 343000
32-битные быстрые флоаты. общий размер 7022, время 161800
заменил float x,y; на double x,y; получил еще незначительное уменьшение кода и
увеличение скорости (видимо из-за отстутствия преобразования float<->double, а
тригоф-ции возвращают будли)
видим, что иар крутоват ... хм ... даже не верится ... плавающая точка у иара (если
верить статейке, хотя сомнения уже появились) реализована замечательно.
про си18 просто помолчим ;)


пример третий - строки.
принтф линкуем без флоатов.
общий размер 2243, время 3720


пример следующий - типа работа с указателями.
общий размер 2020, время 21900. посмотрел в таблицу и удивился - а чего ж там
меньше-то ... хм ... поставил бряк до последнего цикла с принтф и получил 14500.
т.е. примерно то же, что и в таблице. и возник у меня вопрос: а до этого-то числа
какие были??


вот вам и статейка ...
хотя ... хоть что-то ;)


было б здорово, если бы те, кто пользуют иар или си18 повторили эти примеры, а
главное очень хочется еще и на whetstone поглядеть
http://www.microchip.ru/phorum/read.php?f=2&i=51495&t=51487


 
 кстати, на счет симуляции
Автор: Vova ()
Дата:   07/05/2004 15:06

в пятом мплабе. использовал mplab
speedup
http://www.microchip.ru/phorum/read.php?f=2&i=21710&t=21681

на целероне 1200 у
меня симуляция ускорилась раз в 20, можно и быстрее ...


 
 никто не хочет со мной поговорить :( (-)
Автор: Vova ()
Дата:   07/05/2004 16:32

никто не хочет со мной поговорить :( (-)


 
 Re: PICC18 & C18
Автор: nik_al ()
Дата:   07/05/2004 17:21

Скомпилировал эту прогу в с18


#define MSG_LEN 23
#define MAX_TX 3
struct rx_data
{
char bit_count;
unsigned track : 1;
unsigned store_bc : 7;
long buf_h;
long buf_l;
};

long cof[]={0xf8dd4258,
0xf9a42bb0,
0xf930b51c,
0xfa2561cc};

struct rx_data db[MAX_TX];

char h_weight(long word)
{
	char l;
	char sum=0;
	for(l=0;l<MSG_LEN;l++)
	{
	sum+=(0x8000000l&word?1:0);
	word<<=1;
	}
return sum;
}

void main()
{
char crls,t;

for(t=0;t<MAX_TX;t++)
db[t].buf_h=cof[t];
crls=0;
for(t=0;t<MAX_TX;t++)
crls+=h_weight(db[t].buf_h^cof[t])-16;
PORTD=crls;
//printf("%x",crls);

}



Вот что про програмную память:


Program Memory Usage
Start End
--------- ---------
0x000000 0x000005
0x00002a 0x000293
624 out of 33048 program addresses used, program memory utilization is
1%

А в статье совсе другие цифры почему интересно ?


 
 а хз ;)
Автор: Vova ()
Дата:   07/05/2004 17:33

picc18 все равно кручее будет ;)


 
 Re: PICC18 & C18
Автор: nik_al ()
Дата:   07/05/2004 17:59

А в picc18 есть поддержка новых команд (ну недавно обсуждалось новое ядро для 18х)?
В с 18 есть уже!


 
 а какая разница есть или нет
Автор: Vova ()
Дата:   07/05/2004 18:00

ты этих пиков еще минимум с полгода не увидешь, а потом конечно же появится поддержка.

вон для
dsPIC'ов компилер-то уже есть у hi-tech'а


 
 лучше вот это скомпиль
Автор: Vova ()
Дата:   07/05/2004 18:02

и в мплабе погоняй - скажи сколько времени заняло

http://www.teltonika.lt/ProjLinks/WHET.htm


 
 Re: PICC18 & C18
Автор: nik_al ()
Дата:   07/05/2004 18:03

Домой зовут, потом погоняю:)


 
 на счет флоатов
Автор: Vova ()
Дата:   17/05/2004 13:06

если у иара так замечательно реализованы библиотеки флоатов (по-моему, это единственное
преимущество компилятора перед хайтековским, именно компилятора, а не среды), то может быть их и
использовать для хайтековских компилеров? есть там исходники библиотек?

осталось только
выдрать их оттуда, чуть рихтануть и включить в свой проект, но с именами ф-ций как у picc/picc18, тогда
линковать будут именно наши (иаровские ;) ф-ции.

получим качество кода хайтековских компилеров,
но с отличными иаровскими библиотеками для плавающей точки.


есть зерно разумное в этом?
кто
качал иаровские компилеры, есть там исходники библиотек?


 
 чёто вроде есть
Автор: patton ()
Дата:   17/05/2004 16:45

но именно про что ты спрашиваешь я с ходу не нашёл и потом я заставить работать иар так и не
смог не под мплабом ни под его средой, только с дебажной инфой компилится, а её там куча и мой
проект даже не вмещается в контроллер, в общем никто доступно не объяснил как его лечить и я
забил на это.


 
 Re: PICC18 & C18
Автор: nik_al ()
Дата:   17/05/2004 17:45

У иар обычно качают демку а там исходников нету (по опыту с иар авр), а вот в С18
куча исходников и даже батники для комиляции библиотек - вставляй свой код и
компилируй.


 
 ты скомпиль тесты
Автор: Vova ()
Дата:   17/05/2004 17:49

те, что из статейки и еще whetstone тоже, чтобы можно было говорить, мол, да c18 хорош и мы будем
пользовать исходники его библиотек, а пока он вроде как ни в чем не лучше хайтековского компилера


 
 Re: Не уверен.
Автор: NickB ()
Дата:   17/05/2004 18:33

Пытался использовать для 18ф6720 да и зарекся-
обнаружено немерятн багов да и поведение компилятора
малопредсказуемое.
Использую mcc18 и доволен жизнею


 
 пока это голословно
Автор: Vova ()
Дата:   17/05/2004 18:53

конкретные примеры, недостатки и прочее привести можете?

"немеряно багов" - что это? какие такие
баги?


"поведение компилятора малопредсказуемое" - а это что значит? как должен себя вести
компилятор и как не вел себя picc18?


 
 Re: PICC18 & C18
Автор: nik_al ()
Дата:   18/05/2004 09:06

NickB писал:
>Пытался использовать для 18ф6720 да и зарекся-
>обнаружено немерятн багов да и поведение компилятора
>малопредсказуемое.
>Использую mcc18 и доволен жизнею

Уточните(если не трудно) какой компилятор использовался для 18ф6720 IAR или HITECH?


 
 Не вступая в спор что круче(+)
Автор: abivan ()
Дата:   18/05/2004 09:56

все же скажу, что был сделан проект на 18F8720 (PIC18V8.20 patchlevel 4) на баги не натыкался.
И поскольку мне приходится постоянно скакать с 18 на 16 и обратно использование компилятора от
одного производителя удобно.


 
 Отвечая NickB косвенно ответил и Вам(+)
Автор: abivan ()
Дата:   18/05/2004 10:08

Если планируете использовать и 16 пики, то picc18
если нет, то есть варианты.
Планируете ли просто симулировать, или хотите подключить отладчик ICD2?
Если только симуляция, думаю иар получше будет.
Заметьте, все выше сказанное было сказано без учета эффективности компиляторов.
Посыл такой, если Hitech умудрился сделать отличный и првильный(отход от ANSIC минимален)
компилятор для 16 семейства, то и для 18 рано или поздно сделает тоже самое.
А эффективность... да я своими руками снижаю эффективность у себя в программе делая косвенную
индикацию вместо прямой. Но что не сделаешь для написания "правильной" программы. Главное чтобы
на исходный текст было приятно смотреть :-)
От работы нужно получать эстетическое наслаждение :-)


 
 Re: PICC18 & C18
Автор: nik_al ()
Дата:   18/05/2004 10:35

Отвечая abivan:
1 Пики 16 не в коем случае (меня от них в дрожь бросает :) только 18!
2 ICD2 да (привык к JTAGам в сигналах и аврках)

И вообще у меня создается впечатление что хайтех С делает более быстрый и
компактный код (они хорошо знают компиляторы), а микрочип С имеет меньше глюков
(они хорошо знают свои процессоры)