Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Какие еще есть компиляторы для 8051?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Все остальные микроконтроллеры > MCS51
777777
И почему они не пользуются популярностью? Ведь Кейл тоже не сахар, один только big-endian чего стоит, и как им это в голову пришло...
ukpyr
пользовал SDCC для небольших проектов (<4 Kb).
zltigo
Цитата(777777 @ May 2 2009, 06:59) *
И почему они не пользуются популярностью?

Почему не пользуются? То-же IAR вплоне неплох - я его пользую. В апреле обновление даже было.Хотя традиционно считается (считалось?), что для 51 Кейл "лучший" среди "равных" sad.gif. Ну а вообще, C + 51 по жизни монтируются с натягом, как ни крути sad.gif
777777
Цитата(zltigo @ May 2 2009, 13:42) *
Ну а вообще, C + 51 по жизни монтируются с натягом, как ни крути sad.gif

Как ни странно, рассматривая листинги gcc+AVR я нахожу гораздо больше неэффективных участков и просто несуразностей, чем у Keil+51 - и те обычно исправляются небольшим изменением кода. И если бы не big endian (плюс еще кое-какие полезности) то кейл можно было бы считать идеальным компилятором.
ReAl
А что, big-endian аж так сильно мешает?
Не знаю, как у IAR, но у AVOCET С51 лет 15 назад тоже было big endian.
Толи с PL/M-51 совместимость тянется, толи ещё с чем.
777777
Цитата(ReAl @ May 2 2009, 21:20) *
А что, big-endian аж так сильно мешает?

Разумеется. Как минимум, он приводит к неэффективному выполнению операций над многобайтовыми переменными.
Цитата(ReAl @ May 2 2009, 21:20) *
Не знаю, как у IAR, но у AVOCET С51 лет 15 назад тоже было big endian.
Толи с PL/M-51 совместимость тянется, толи ещё с чем.

Я понимаю необходимость совместимости электрической розетки с вилкой, которою в нее втыкают. Но совместимость одного компилятора с другим?
Палыч
Цитата(777777 @ May 2 2009, 20:38) *
Разумеется. Как минимум, он приводит к неэффективному выполнению операций над многобайтовыми переменными.
Интересно: какая операция выполняется для big endian менее эффективно? Приведите пример, пожалуйста.
etoja
uC/51 WWW.WICKENHAEUSER.COM
Freiwind
Компиляторы от сербской "Микроэлектроники". wink.gif
Intel4004
Цитата(Палыч @ May 3 2009, 19:06) *
Интересно: какая операция выполняется для big endian менее эффективно? Приведите пример, пожалуйста.

любая операция над xdata unsigned long (или xdata unsigned short). Младший байт последний, а DEC DPTR не предусмотрено...
Палыч
Цитата(Intel4004 @ May 27 2009, 11:38) *
Младший байт последний, а DEC DPTR не предусмотрено...
И - что? Какая разница с какого байта забрать переменную в регистры? Вы, наверное, хотите сказать, что "руками" Вы напишите очень компактный код - эквивалент оператора, например, А+=5; (где А имеет тип xdata long), при этом обойдётесь только ACC и DPTR, если порядок байт little endian... Вот, только, транслятор вряд ли сгенерит такой же код даже при little endian. Парадигма генерации кода у него другая. И оптимизатор до Вашего кода - не вытянет. Правда я видывал транслятор, который умудрялся даже циклы оптимизировать до небольшой линейной последовательности. Но в него были вложены годы труда и многие миллионы...
etoja
свободный С компилятор на базе GNU для PIC :

http://sourceforge.net/project/showfiles.php?group_id=599
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.