Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту


 
Опции темы

STM8(S/L), первые впечатления

Непрочитано 02.11.2010, 08:13  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

А еще у STM только 1 регистр косвенной адресации... Это тоже сильно раздувает код. Вот пример сложения двух 4-байтных массивов ODIN и DVA и помещения результата в массив SYMMA
Занимает 16 слов (32 байта) памяти и выполняется 55 циклов. Все-таки 3 регистра косвенной адресации - лучше чем 1...
кто-нибудь может портировать на STM?
Миниатюры:
Нажмите на изображение для увеличения
Название: 0.PNG
Просмотров: 50
Размер:	4.8 Кб
ID:	14265  
Реклама:
niXto вне форума  
Непрочитано 02.11.2010, 10:21  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от niXto Посмотреть сообщение
А еще у STM только 1 регистр косвенной адресации... Это тоже сильно раздувает код. Вот пример сложения двух 4-байтных массивов ODIN и DVA и помещения результата в массив SYMMA
Занимает 16 слов (32 байта) памяти и выполняется 55 циклов. Все-таки 3 регистра косвенной адресации - лучше чем 1...
кто-нибудь может портировать на STM?
Давайте сравнивать скорость работы стандартных алгоритмов,таких как сортировка,поиск маск/мин,цифровой фильтр,а не кусков непонятно чего.

Последний раз редактировалось Falconist; 13.04.2011 в 23:29.
Gnider вне форума  
Непрочитано 02.11.2010, 10:39  
niXto
Почётный гражданин KAZUS.RUN
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от Gnider Посмотреть сообщение
Давайте сравнивать скорость работы стандартных алгоритмов,таких как сортировка,поиск маск/мин,цифровой фильтр,а не кусков непонятно чего.
Это имеете ввиду - декодер мп3 на 8-битнике?

Или надо было озаглавить предыдущий пост "стандартный алгоритм сложения многобайтных чисел"?

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

Я не пытаюсь разжечь холивар - просто сам до конца не могу разобраться: чье сочетание плюсов-минусов (семейств AVR и STM8 ) лучше для реальной задачи?

Последний раз редактировалось Falconist; 13.04.2011 в 23:29.
niXto вне форума  
Непрочитано 02.11.2010, 10:47  
EugVor
Временная регистрация
 
Регистрация: 15.03.2006
Сообщений: 79
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
EugVor на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от niXto Посмотреть сообщение
А еще у STM только 1 регистр косвенной адресации... Это тоже сильно раздувает код. Вот пример сложения двух 4-байтных массивов ODIN и DVA и помещения результата в массив SYMMA
Занимает 16 слов (32 байта) памяти и выполняется 55 циклов. Все-таки 3 регистра косвенной адресации - лучше чем 1...
кто-нибудь может портировать на STM?
Реально IAR не получается заставить использовать косвенную загрузку/сохранение с преддекрементом, он грузит указатели в обычные РОН, декременирует и снова засылает в SRAM... в итоге не меньше 250 тактов на всё:
Код:
unsigned char ODIN[4] ={1,1,1,1};
unsigned char  DVA[4]= {2,2,2,2};
unsigned char  SUMMA[4] ={0,0,0,0};

unsigned char  *uDVA=DVA+5,*uSUMMA=SUMMA+5,*uODIN=ODIN+5;

unsigned char  N=4;
void main( void )
{
    do
    {
        *(--uSUMMA)=(*(--uODIN))+(*(--uDVA)); N--;
    }
    while (N!=0);
}
А в асме конечно это всё без проблем пишется, но насколько реально применимо?!

Последний раз редактировалось Falconist; 13.04.2011 в 23:29.
EugVor вне форума  
Сказали "Спасибо" EugVor
niXto (02.11.2010)
Непрочитано 02.11.2010, 10:49  
EugVor
Временная регистрация
 
Регистрация: 15.03.2006
Сообщений: 79
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
EugVor на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от niXto Посмотреть сообщение
Или надо было озаглавить предыдущий пост "стандартный алгоритм сложения многобайтных чисел"?
Числа вроде имелись в виду однобайтовые - по 4 в каждом массиве. Достаточно распространённая задачка.

Последний раз редактировалось Falconist; 13.04.2011 в 23:29.
EugVor вне форума  
Непрочитано 02.11.2010, 11:06  
SasaVitebsk
Гражданин KAZUS.RUN
 
Регистрация: 04.08.2006
Сообщений: 911
Сказал спасибо: 28
Сказали Спасибо 180 раз(а) в 139 сообщении(ях)
SasaVitebsk на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от EugVor Посмотреть сообщение
Да… ассемблерный тест можно написать в угоду и тому и этому. А сишный компилятор в итоге всё опошлит и сведёт на нет все ассемблерные изюмины вроде установки отдельных бит одной инструкцией.
А я тоже считаю, что надо сравнивать работу после компилятора. Писать на ассемблере сейчас нет смысла, а соответственно хотелось бы посмотреть как проц справляется с реальной задачей. С учётом компиляции. Хотя это тоже не показатель. Вон на сахаре тесты лежат - на разных задачах - разные результаты.

Последний раз редактировалось Falconist; 13.04.2011 в 23:28.
SasaVitebsk вне форума  
Непрочитано 02.11.2010, 11:31  
zheleznjakov
Прописка
 
Аватар для zheleznjakov
 
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
zheleznjakov на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Сообщение от niXto Посмотреть сообщение
А еще у STM только 1 регистр косвенной адресации... Это тоже сильно раздувает код. Вот пример сложения двух 4-байтных массивов ODIN и DVA и помещения результата в массив SYMMA
Занимает 16 слов (32 байта) памяти и выполняется 55 циклов. Все-таки 3 регистра косвенной адресации - лучше чем 1...
кто-нибудь может портировать на STM?
Вроде как адресация у STM более гибкая, а в качестве регистров косвенной адресации используется любая ячейка озу.
Вот в качестве примера ваша задача на STM,
достаточно просто, основной цикл всего шесть инструкций.
Код:
	; указатель на первый массив
	mov	$0D,#$00
	mov	$0E,#$00
	; указатель на второй массив
	mov	$0F,#$00
	mov	$10,#$04	
	; указатель на третий массив
	mov	$11,#$00
	mov	$12,#$08	
	;
	ldw x, #$0
m1.l:
	ld 	a, ([$0D.w],x)
	add a,([$0F.w],x)
	ld	([$11.w],x),a
	incw x
	cpw x,#$4
	jrc m1
Это для случая когда нужно передавать указатели, а если расположение извество на этапе "компиляции" то можно ещё проще.
Я конечно не большой спец по STM и эта моя вторая программа на асме.

Последний раз редактировалось Falconist; 13.04.2011 в 23:28.
zheleznjakov вне форума  
Непрочитано 02.11.2010, 12:12  
Gnider
Почётный гражданин KAZUS.RUN
 
Регистрация: 30.06.2005
Сообщений: 3,392
Сказал спасибо: 5
Сказали Спасибо 429 раз(а) в 305 сообщении(ях)
Gnider на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Как я уже неоднократно говорил на дистанции все 8-битники очень похоже. Все дело только в эффективности компилятора и т.д.

Кусками исходняков на асме меряться бессмысленно.
Gnider вне форума  
Непрочитано 02.11.2010, 12:52  
zheleznjakov
Прописка
 
Аватар для zheleznjakov
 
Регистрация: 31.03.2010
Сообщений: 200
Сказал спасибо: 3
Сказали Спасибо 48 раз(а) в 41 сообщении(ях)
zheleznjakov на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

IAR решает задачу за 308 тактов
Cosmic за 287 тактов
на асме за 67 тактов
все от инициализации массивов до окончания сложения и записи. оптимизация по скорости.
zheleznjakov вне форума  
Эти 2 пользователя(ей) сказали Спасибо zheleznjakov за это сообщение:
Highlander (18.01.2011), niXto (02.11.2010)
Непрочитано 02.11.2010, 12:55  
EugenyAM
Временная регистрация
 
Регистрация: 24.09.2010
Сообщений: 97
Сказал спасибо: 9
Сказали Спасибо 41 раз(а) в 31 сообщении(ях)
EugenyAM на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

Все-таки имхо основная цель темы - если не вернется AVR по прежним ценам, заменит ли его STM8 по функционалу...
Пока что вижу только один пункт, по которому проигрывает STM - отсутствие аналогового компаратора... какие на нем принципиальные вещи делаются, которые нельзя сделать без внешней обвязки на STM?
У меня был только случай, когда надо было читать переменный резистор на tiny2313, у которого нету АЦП. Но у STM АЦП есть практически у всех.
EugenyAM вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
KiCAD-объявления и впечатления al_dan KiCAD 32 03.10.2016 17:02
Народ, посмотрите quasm, Как ваши впечатления? suri Proteus, KiCAD и другие ECAD 5 14.10.2009 11:57


Часовой пояс GMT +4, время: 17:48.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.