реклама на сайте
подробности

 
 
4 страниц V  < 1 2 3 4 >  
Reply to this topicStart new topic
> х51
rv3dll(lex)
сообщение Jul 30 2008, 07:28
Сообщение #31


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(zltigo @ Jul 30 2008, 11:11) *
Честно говоря даже комментировать не хочется ахинею sad.gif. Нет, я конечно понимаю, что через заднепроходное отверстие не прикладая ума можно получить любой "эффект", только вот зачем при этом пенять на компиляторы?


если не понимаешь не комментируй
для тебя умножение это

a <= b * c;

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

бывают ситуации, когда неточный расчёт лучше, чем потеря данных

компиллятор ничего не знает поэтому на него надо пенять!!!! алгоритм его работы оптимален для большинства реализаций (он универсальный)

вот простой пример
чего бы не написал на си но при делении 32 разрядного числа на 32 разрядное на тексасе с помощью команды subd эта команда запустится 32 раза.

но елли результат не превышает 16 бит её жостаточно запустить 16 раз - ответ будет тот же самый.
проигрышь по производительности 2 раза

как компиллятору объяснить это?
Go to the top of the page
 
+Quote Post
Egel
сообщение Jul 30 2008, 07:37
Сообщение #32


Частый гость
**

Группа: Свой
Сообщений: 162
Регистрация: 28-07-08
Из: Химки
Пользователь №: 39 244



Да вы не обращайте внимания, у него стиль такой
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 08:02
Сообщение #33


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(rv3dll(lex) @ Jul 30 2008, 09:28) *
..если не понимаешь не комментируй

За десятилетия, так или иначе связанные с программированием на многих-многих ассеблерах, Fortran, Modula, С, .... Я понимаю очень многое smile.gif
Цитата
как компиллятору объяснить это?

Использовать явные преобразования типов, предварительное деление сдвигом для гробления точности, перед делением. Наконец, если критично, то и ASM функцию написать совсем не грех. Только вот кричать по незнанию/не владению инструментом о его непригодности явно глупо.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 30 2008, 08:16
Сообщение #34


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(zltigo @ Jul 30 2008, 12:02) *
Использовать явные преобразования типов, предварительное деление сдвигом для гробления точности, перед делением. Наконец, если критично, то и ASM функцию написать совсем не грех. Только вот кричать по незнанию/не владению инструментом о его непригодности явно глупо.


преобразование типов чего и куда - число то 32 разрядное и дальше используется как 32 разрядное
там можно такого напреобразовывать lol.gif

то есть Вы УЖЕ согласились что в ответственных местах всёже компиллятор не обеспечивает экономичности ресурсов????
Go to the top of the page
 
+Quote Post
SIA
сообщение Jul 30 2008, 08:38
Сообщение #35


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Цитата(ukpyr @ Jul 30 2008, 10:29) *
еще есть басплатный SDCC :
http://sdcc.sourceforge.net/

Кстати, как показывает практика, вполне неплохой, т.е. не идеален, но работать вполне можно. И легально.

Цитата(rv3dll(lex) @ Jul 30 2008, 12:16) *
....компиллятор не обеспечивает экономичности ресурсов????

В 99% применений эта самая "экономичность ресурсов" не имеет никакого экономического смысла. Как правило, если реально (а не по причине бездарности алгоритма) не хватает быстродействия/памяти, дешевле поставить более мощный процессор, чем тратить время на асме.
32-битный 70 МГц ARM с кучей периферии стоит всего несколько долларов.

Цитата(777777 @ Jul 30 2008, 08:08) *
Без AVR этот набор далеко не полон, ибо именно он на сегодняшний день является лучшим из 8-разрядных контроллеров.

Если речь о Xmega, и критерий - "красота архитектуры" - то возможно. Но экономического смысла в их применении сегодня нет - их цена выше, чем у более мощных и экономичных 32 и 16-разрядных. Только для любителей ностальгии по AVR.
Ни ассортимент, ни качество АЦП/ЦАП в AVR (и большинстве других микроконтроллеров от Atmel) не выдерживают никакой конкуренции с Cygnal, преимуществ по скорости/экономичности - тоже никаких. Тогда нафиг ?
Go to the top of the page
 
+Quote Post
MrYuran
сообщение Jul 30 2008, 08:42
Сообщение #36


Беспросветный оптимист
******

Группа: Свой
Сообщений: 4 640
Регистрация: 26-12-07
Из: Н.Новгород
Пользователь №: 33 646



Цитата(rv3dll(lex) @ Jul 30 2008, 12:16) *
то есть Вы УЖЕ согласились что в ответственных местах всёже компиллятор не обеспечивает экономичности ресурсов????

Компилятор - это же не искусственный разум, это просто инструмент.
Такой же, как и к примеру, автотрассировщик плат. Понятно, что опытная тётенька-конструктор (или дяденька, не суть) может намного лучше развести, чем компьютер. Но по временным затратам эти процессы несопоставимы. Если что-то надо передвинуть или поменять - опять же, разница налицо (по времени и трудозатратам). Но если правильно пользоваться инструментом (писать DO-файлы для трассера или make-файлы для компилятора), вручную обходя узкие места, то выигрыш автоматизированного подхода налицо. Есть, конечно, маньяки, которые клоны виндов пишут на асме, но это скорее похоже на искусство ради искусства и к коммерческой разработке отношения не имеет


--------------------
Программирование делится на системное и бессистемное. ©Моё :)
— а для кого-то БГ — это Bill Gilbert =)
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 09:07
Сообщение #37


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(rv3dll(lex) @ Jul 30 2008, 10:16) *
то есть Вы УЖЕ согласились что в ответственных местах всёже компиллятор не обеспечивает экономичности ресурсов????

При умелом использовании от современных компиляторов получаем хорошо оптимизированный код.
Естествено, соревнование в ручной оптимизации, тем более на более чем старенькой 51 платформе, на уровне десятка-другого команд выграть у компилятора достаточно легко, хотя о сколь-нибудь впечатляющем выигрыше можно обычно говорить только на специально подобранных тестах smile.gif
Глобально, при сколь-нибудь разумных затратах времении говорить об эффективности программирования на ASM уже не приходится. За последние годы, если не считать сопровождения одного безмерно древнего sad.gif проекта на ASM размером под 200K кода, "ответсвенных мест" в которых я прибегал к использованию нескольких десятков строчек на ASM, пожалуй наберется штук 5-6.

Более того, где-то прошлой осенью пришлось столкнуться со старым изделием на 51. Разработчик тянул его много лет, вроде все работало, выпускалось, но как водится sad.gif после его ухода полезли очередные проблемы sad.gif Разбираться в 40K ASM кода совсем не хотелось, посему была просто портирована простенькая операционочка со 186 контроллера, поддержка однотипного железа, типовые протоколы и... уложившись в 30K получилося рабочий девайс не захлебываюшийся под нагрузкой, да и еще спокойно гонящий при этом в RS232 отладочную информацию. Честно говоря, предварительно морально был готов пару отработчиков прерываний на ASM писать, но не пришлось. Все стало работоспособным за счет более сложного построения системы а не тупого ускорения "ответственных мест".
По весне знакомый просил помочь с Тинькой - псевдонаучная поделка генерящая "волшебные" импульсы, впрочем к делу это отношения не имеет. Писали в ней софт вполне опытные ASM писатели, только вот результат получился странноватый - по верхней частоте/длительности чего-то не лотягивала до желаемого заказчиком, да и на анализаторе спектра что-то выглядило подозрительно очень - чего-то в алгоритме ошиблись явно. Переписывали сие уже много раз, писатели и заказчик находились в конфронтации.... Пришлось за несколько вечеров переписать на C. Тоже думал просто попробую (например на меге), а потом вылизывать придется - уж больно 2K флеша не впечатлили (отвык от малых форм smile.gif ), да и по скорости достаточно сурово все по началу смотрелось. И ничего - 1.6K кода вместо 1.8K у ассемблерописателей при большем функционале и красотулечках (приблуда для продаже через TV Shop smile.gif - важно) и двойной запас по девиации частоты вверх smile.gif. И вообще ни одной сторочки (ну кроме штатного cstatrup) на ASM.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SIA
сообщение Jul 30 2008, 09:16
Сообщение #38


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Великолепная иллюстрация того, что никакой "ручной код" не спасет от бездарности алгоритма. И наоборот, грамотная алгоритмика позволяет все сделать на нормальном языке.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 09:21
Сообщение #39


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(SIA @ Jul 30 2008, 11:16) *
И наоборот, грамотная алгоритмика позволяет все сделать на нормальном языке.

А алгоритмы, естественно, хорошо и эффективно пишутся, и при этом глобально (с глобальностью в ASM напряг ) оптимизируются на алгоритмических языках.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 30 2008, 09:49
Сообщение #40


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(MrYuran @ Jul 30 2008, 12:42) *
Компилятор - это же не искусственный разум, это просто инструмент.

как подстилка lol.gif


Цитата(zltigo @ Jul 30 2008, 13:07) *
Все стало работоспособным за счет более сложного построения системы а не тупого ускорения "ответственных мест".


уже гдето писал
проц2406 от тексаса
обработка нескольких каналов
на каждый канал в реальном времени чуть больше 100 машинных цыклов.
так вот в комментариях эти машинные цыклы были написаны 1 2 3 5

до кучи формирование нескольких последовательностей импульсов на портах которые в явном виде прям отсчитывая по циклам выводились в порт
Go to the top of the page
 
+Quote Post
blackfin
сообщение Jul 30 2008, 10:48
Сообщение #41


Гуру
******

Группа: Свой
Сообщений: 3 106
Регистрация: 18-04-05
Пользователь №: 4 261



Цитата(rv3dll(lex) @ Jul 30 2008, 13:49) *
уже где-то писал
Ага.. Вся ветка - de ja vue.. laughing.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Jul 30 2008, 11:08
Сообщение #42


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(blackfin @ Jul 30 2008, 12:48) *
Ага.. Вся ветка - de ja vue.. laughing.gif

Не вся, но продолжение туда покатилось smile.gif. Посему, если кому еще чего вдруг не понятно, или просто поговорить за "ассемблер рулит" - давайте в ту ветку.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
777777
сообщение Jul 30 2008, 11:57
Сообщение #43


Профессионал
*****

Группа: Участник
Сообщений: 1 091
Регистрация: 25-07-07
Из: Саратов
Пользователь №: 29 357



Цитата(SIA @ Jul 30 2008, 12:38) *
Если речь о Xmega, и критерий - "красота архитектуры" - то возможно. Но экономического смысла в их применении сегодня нет - их цена выше, чем у более мощных и экономичных 32 и 16-разрядных.

Несколько странно сравнивать AVR с ARM.
Цена ATtiny13 или 2313 существенно ниже чем 32-разрядных контроллеров, не говоря уж о размере микросхемы.
Цитата(SIA @ Jul 30 2008, 12:38) *
Ни ассортимент, ни качество АЦП/ЦАП в AVR (и большинстве других микроконтроллеров от Atmel) не выдерживают никакой конкуренции с Cygnal, преимуществ по скорости/экономичности - тоже никаких. Тогда нафиг ?

А вы во все проекты ставите 16-разрядные АЦП с 1-МГц быстродействием?
Ни ассортимент, ни качество Дэу не идет ни в какое сравнение с Мерседесами, не говоря уж Роллс-Ройсах, однако их почему-то выпускают. (Про Лады, так и быть, не стану говорить чтобы не вызывать ненужных споров, хотя их объемы выпуска тоже не падают)
Go to the top of the page
 
+Quote Post
rv3dll(lex)
сообщение Jul 30 2008, 12:01
Сообщение #44


Полное ничтожество
*****

Группа: Banned
Сообщений: 1 991
Регистрация: 20-03-07
Из: Коломна
Пользователь №: 26 354



Цитата(777777 @ Jul 30 2008, 15:57) *
(Про Лады, так и быть, не стану говорить чтобы не вызывать ненужных споров, хотя их объемы выпуска тоже не падают)


жигули при повседневной эксплуатации в течении первых 3-5 лет самая практичная и дешёвая машина.

насчёт производительности
на задачах обработки сигналов дохлый сигнальник натянет любой арм
Go to the top of the page
 
+Quote Post
SIA
сообщение Jul 30 2008, 13:22
Сообщение #45


Местный
***

Группа: Свой
Сообщений: 462
Регистрация: 26-06-07
Пользователь №: 28 723



Цитата(777777 @ Jul 30 2008, 15:57) *
Несколько странно сравнивать AVR с ARM.
Цена ATtiny13 или 2313 существенно ниже чем 32-разрядных контроллеров, не говоря уж о размере микросхемы

Если нужен простенький предельно дешевый, но надежный контроллер - это тогда к Microchip или Freescale (а-ля 68705). Мелкие AVR в этом отношении ничем не выделяются - ни ценой, ни функциями.
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 6th August 2025 - 09:09
Рейтинг@Mail.ru


Страница сгенерированна за 0.0147 секунд с 7
ELECTRONIX ©2004-2016