Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
11.02.2011, 05:59
|
#301
|
Гражданин KAZUS.RU
Регистрация: 04.04.2007
Сообщений: 941
Сказал спасибо: 571
Сказали Спасибо 113 раз(а) в 85 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Теперь еще по командам для STM8 :
IRET возврат из прерыв подпрограммы - 11 тактов (у AVR-4/5 тактов)
RET - обычный возврат из подпрогр - 4 такта (у AVR- 4 такта тоже)
INC, DEC - прибавление/отнимание единички - 4 такта (у AVR - 1 такт)
CALL -вызов подпрограммы -6 тактов (у AVR - 3 такта)
TNZ -проверка на нуль , довольно часто используется в прогах - 4 такта (у AVR - 1 такт)
JP - прыжок - 5 тактов (у AVR - 3 такта)
Software Interrupt - аж 9 тактов ,а в AVR-е поставил флаг- через 5-6 тактов будет сработка точняк, .....
Ну думаю тут даже комментарии излишни , так ведь еще и плюс частота у STM8 вместе со всем этим - ниже ,что еще более усугубляет ситуацию , теперь , при 24 Мгц у старших STM8 только 20 MIPS , а у AVR-а на каждый Мгц один MIPS , то есть при 33 Мгц частоты и будет примерно 33 MIPS , ну пусть даже 30 MIPS , ну так это по любому больше чем 20 у STM8 , а если брать младшие STM8 на 16 Мгц , от которых некоторые ну прямо тащатся, то их производительность вообще около 13 MIPS всего-то ,хуже чем 20 MIPS обычных 20МГц AVR-ах , и почти в 3 раза хуже чем 30-33MIPS XMega , ну и нафиг мне такой камень ?
__________________
Короче асма кода нет !
Последний раз редактировалось pinco; 11.02.2011 в 06:30.
|
|
|
|
11.02.2011, 06:41
|
#302
|
Почётный гражданин KAZUS.RU
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от pinco
|
IRET возврат из прерыв подпрограммы - 11 тактов (у AVR-4/5 тактов)
|
Ага, а АВР тоже регистры и SREG из стека восстанавливает? Нет? Надо самому, ручками? По тактам то тоже самое выйдет если не больше. Но будет куда больше памяти кушать.
Сообщение от pinco
|
INC, DEC - прибавление/отнимание 1 - 4 такта (у AVR - 1 такт)
|
Пример в студию. Задача - увеличить на 1 два числа в ОЗУ. По адресам 0x60 и 0х100.
Будет именно два такта? У STM8 как раз два.
Сообщение от pinco
|
CALL -вызов подпрограммы -6 тактов (у AVR - 3 такта)
|
Да ну? Учить матчасть. Цитата из хелпа к АВР:
Cycles: 4, devices with 16 bit PC
5, devices with 22 bit PC
У STM8 ровно то же.
Сообщение от pinco
|
TNZ -проверка на нуль , довольно часто используется в прогах - 4 такта (у AVR - 1 такт)
|
Один там такт. Там где не один аналога в АВР вообще нет. Например проверка на 0 числа на стеке да еще со смещением. Там да, 4 такта. Но АВР для аналогичного действия потратит не меньше. Попробуйте - тестовая 8-ми битная переменная на стеке со смещением 6. Т.е. SPH:SPL+5 ее адрес. Нужно узнать, не 0 ли там. И код в студию.
Сообщение от pinco
|
JP - прыжок - 5 тактов (у AVR - 3 такта)
|
У STM8 - 2 такта. Тут АВР вообще в пролете.
Сообщение от pinco
|
Software Interrupt - аж 9 тактов ,а в AVR-е поставил флаг- через 5-6 тактов будет сработка точняк, .....
|
У АВР и возможности то такой нет. Софтовое прерывание иногда незаменимая вещь.
И 9 тактов это с учетом сохранения контекста и регистров в стеке. У АВР - 4, но ничего не сохраняется. Сохраните 5 регистров + SREG в стеке за 5 тактов?
Сообщение от pinco
|
а у AVR-а на каждый Мгц один MIPS ,
|
Ага, при командах аж по 5 тактов. Может чуть выше, чем у STM8 и будет, но приоритетный контроллер, в три раза более низкая цена, возможность работы от 5В и прочее - иксмега вообще не конкурент.
Сообщение от pinco
|
ну и нафиг мне такой камень ?
|
Вам - не нужен. Думаете я для Вас распинаюсь? Нет, это для тех кто ветку читать будет и кто не зациклен на старых дорогих контроллерах. А готов изучать что то новое и более перспективное.
|
|
|
Эти 3 пользователя(ей) сказали Спасибо kison за это сообщение:
|
|
|
11.02.2011, 08:32
|
#303
|
Заблокирован
Регистрация: 08.08.2007
Сообщений: 2,843
Сказал спасибо: 378
Сказали Спасибо 1,368 раз(а) в 746 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от pinco
|
"...Ассемблер, разработанный в недрах ST Microelectronics отличается странным синтаксисом. Например, метки следует начинать с первой позиции. Длина метки ограничена 30 символами. Явно кто-то из разработчиков в детстве учил Fortran или Cobol. После метки надо ставить точку и букву l,w или b, означающую разрядность адреса - 32, 16 или 8 бит...."
|
Метки автоматически пишу с первой позиции, по-привычке. Даже не задумывался о том, что это, оказывается очень зловредно для программирования! Зато такую метку очень хорошо видно. Попробуй её найди, перемешанной с текстом. Только поиском! Ну и нафиг это нужно?
Ограничение в 30 символов? Да я на границу (в 30 символов) никогда и не выходил. Здесь-то что у вас за проблемы? Везде ставите 80-ти символьные метки? Да ещё в тексте? Да еще и переносите часть метки на другую строку?
Вам действительно нечем заняться?
|
|
|
|
11.02.2011, 08:55
|
#304
|
Прописка
Регистрация: 03.12.2009
Сообщений: 118
Сказал спасибо: 4
Сказали Спасибо 9 раз(а) в 8 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от pinco
|
их производительность вообще около 13 MIPS всего-то ,хуже чем 20 MIPS обычных 20МГц AVR-ах , и почти в 3 раза хуже чем 30-33MIPS XMega , ну и нафиг мне такой камень ?
|
Ну и возьмите АРМ. Более 1МИПС на мегагерц, 72 МГц тактовой - сказка. Или теперь скорость у вас превратится из плюса в минус?)
Цитата:
|
–72 MHz maximum frequency,
1.25 DMIPS/MHz (Dhrystone 2.1)
performance at 0 wait state memory
access
–Single-cycle multiplication and hardware
division
|
Сообщение от pinco
|
считаю что из-за лишних 20-30 руб за более дешевый контроллер давиться вообще нет смысла
|
30р для AVR - 30-50% цены. Весьма существенно.
|
|
|
|
11.02.2011, 10:51
|
#305
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от VgaCich
|
Ну и возьмите АРМ. Более 1МИПС на мегагерц, 72 МГц тактовой - сказка. Или теперь скорость у вас превратится из плюса в минус?)
|
72 - это вчерашний день. 100 это уже норма. Например lpc17xx. Но уже образцы есть и 150. LPC18XX. Причём не то чтобы 5 лет ждать, а я думаю в ближайшее время применить. Итого 150*1.2 = 180.
|
|
|
|
11.02.2011, 11:08
|
#306
|
Гражданин KAZUS.RU
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от pinco
|
И потом , при собственноручном рациональном распределении регистров можно их вообще не сохранять , как и SREG тоже , ну это ж не нужно Вам растолковывать буквально на пальцах , полагаю .
|
В контроллере светодиодов - да. Там вообще всё красиво. Все переменные залазят в регистры, память не нужна как класс. И программа - как на ладоне видна. ))
Сообщение от pinco
|
А вывод какой ? если побайтовый то вывод двух байтов потребуется , а числа какие - однобайтовые ? Так тогда приведите как тоже самое реализуется библиотеками С для STM8 - это ж и так ясно что если на С то мути в получившемся коде будет масса , ну и какое сравнение тогда будет по тактам ?
|
Понятно, что многобайтовые переменные у вас вызывают нервную дрожь. Например одна 4-ёх байтовая переменная занимает сразу 4 ваших любимых регистра. 4 таких переменных - и работать уже не с чем. Беда-беда. Придётся хранить в памяти. Соответственно использовать косвенную адресацию. Соответственно при входе в прерывание придётся сохранять регистр Х, к примеру. А если с таблицами работать, то ещё и регистр Z. И пошло и поехало.
Вот об этом и писали я и st_1 в другой теме. Что на реальном проекте, где число переменных будет значительное, на ассемблере у вас будет не выигрыш а проигрыш. Причём даже если вы с нуля напишете всё на асме. Я это просто проверял. И st_1, похоже тоже. Когда-то тоже думал что я на асме всех за пояс заткну. Сейчас просто понимаю, какой я баран был и сколько своего времени и нервов потратил впустую. А время - это самое дорогое что есть у человека.
|
|
|
Сказали "Спасибо" SasaVitebsk
|
|
|
11.02.2011, 11:39
|
#307
|
Почётный гражданин KAZUS.RU
Регистрация: 26.01.2007
Сообщений: 3,123
Сказал спасибо: 61
Сказали Спасибо 1,153 раз(а) в 624 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
На правах оффтопа: Если учесть, что ассемблер, как минимум, включает все "машинные команды контроллера" , то заявление:
Сообщение от SasaVitebsk
|
Что на реальном проекте, где число переменных будет значительное, на ассемблере у вас будет не выигрыш а проигрыш. Причём даже если вы с нуля напишете всё на асме. Я это просто проверял.
|
выглядит излишне категоричным, и говорит лишь о том, что разработчик компилятора знает ассемблер лучше Вас.
Цитата:
|
А время - это самое дорогое что есть у человека.
|
А с этим вряд ли кто будет спорить. Скорость написания и отладки для больших программ на асме будет ниже (чистое имхо).
|
|
|
|
11.02.2011, 11:44
|
#308
|
Частый гость
Регистрация: 23.12.2010
Сообщений: 11
Сказал спасибо: 1
Сказали Спасибо 1 раз в 1 сообщении
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от pinco
|
Да и даже сам ассемблер для STM8 не очень - по ссылке http://www.speleoastronomy.org/elektro/stm/stm8asm.html
....
Да и в той теме на казусе по ознакомлению с STM8 больше борьбы со средой программирования и ее глюками , чем о самом кристалле , ну и что , нафиг мне во всё это недоделанное влезать ,считаю что из-за лишних 20-30 руб за более дешевый контроллер давиться вообще нет смысла
|
Если вы балуетесь дома и творите поделки "поиграца" то да, нет смысла покупать новые средства разработки и прочее. Тут вообще разница и 300р не важна. Как освоили майкрочип/avr/renesas в 95 году, так и смысла дергаться нет.
Но для партий от 1000 штук разница в 1 бакс очень существенна!!! И когда тебе ставят задачу чтобы твоя разработка стоила N рублей, вот тут то и начинается самое интересное, приходится порой за очень короткие сроки осваивать новые платформы. Рынок диктует свои условия. Попробуйте убедить меня в обратном. Притом более дорогой камень за эти 20-30 рублей ничем ни лучше и не хуже, если брать по среднем, показателям, ИМХО. Хотя STM8 свежее, и мне например STM8L более симпатичен для лов павера. И со своей Хmega... Вот ее точно в цинковый ящик, забить гвозди потолще и закопать поглубже, ибо цена просто неадекват. Возьмите любой ARM и будет вам счастье.
И когда это было в идеале у AVR 1 команда за 1 такт???
Сообщение от SasaVitebsk
|
72 - это вчерашний день. 100 это уже норма. Например lpc17xx. Но уже образцы есть и 150. LPC18XX. Причём не то чтобы 5 лет ждать, а я думаю в ближайшее время применить. Итого 150*1.2 = 180.
|
У ST появился STM32F200, по производительности среди Cortex-M3 щас рвет всех, мне уже образцы едут, очень интересный камушек. Нов устройство закладывать пока не предвидится, с лихвой хватает и 72Мгц. Но все же уговорил начальство заказать и поиграться). И вообще есть очень интересный сайт по тесту производительности http://www.coremark.org/benchmark/index.php, настройте определенных производителей и посмотрите.
Есть не проверенная информация, что LPC13xx на 100МГц "разогнан" самим NXP для завоевания рынка, со всеми вытекающими....
|
|
|
|
11.02.2011, 11:54
|
#309
|
Почётный гражданин KAZUS.RU
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от omercury
|
Лежит дома горсть ATtiny15L. Покупал по 10 рублей. Предложите-ка альтернативу, ну скажем какой-нибудь ARM младший вместе с буферами за те-же деньги. Или что-нибудь из продукции NXP.
Куплю на свои с удовольствием.
|
Опять не предлагают - нету, видимо альтернативы...
Сообщение от kison
|
Сохранение SREG и регистров это время увеличивают
|
Понятно, что когда сохранять нечего, то и время на это не тратится.
Сообщение от SasaVitebsk
|
Понятно, что многобайтовые переменные у вас вызывают нервную дрожь. Например одна 4-ёх байтовая переменная занимает сразу 4 ваших любимых регистра. 4 таких переменных - и работать уже не с чем. Беда-беда. Придётся хранить в памяти. Соответственно использовать косвенную адресацию.
|
Типа в STM они не в памяти хранятся. А адресацию можно и косвенную и прямую.
Сообщение от kison
|
Software Interrupt .....
У АВР и возможности то такой нет. Софтовое прерывание иногда незаменимая вещь.
|
Да Вы что? Флаг прерывания в регистре не ставится? И давно?
|
|
|
|
11.02.2011, 12:07
|
#310
|
Частый гость
Регистрация: 10.12.2010
Сообщений: 42
Сказал спасибо: 7
Сказали Спасибо 5 раз(а) в 4 сообщении(ях)
|
Re: Atmel - в цинковый ящик?!!!
Сообщение от pinco
|
то их производительность вообще около 13 MIPS всего-то ,хуже чем 20 MIPS обычных 20МГц AVR-ах
|
очень интересно, а
на 3.0v (stm8s) тоже 13 MIPS, а как AVR (10MIPS)
на 1.8v (stm8l) тоже 13 MIPS, а как AVR (4MIPS)
и кто быстрее?
или есть быстрые низковольтные AVR?
|
|
|
Сказали "Спасибо" master.k
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 06:21.
|
|