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

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

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

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

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

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


 
Опции темы
Непрочитано 02.11.2010, 08:13  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
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.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
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.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
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
Сообщений: 80
Сказал спасибо: 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
Сообщений: 80
Сказал спасибо: 3
Сказали Спасибо 83 раз(а) в 11 сообщении(ях)
EugVor на пути к лучшему
По умолчанию Re: STM8(S/L), первые впечатления

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

Последний раз редактировалось Falconist; 13.04.2011 в 23:29.
EugVor вне форума  
Непрочитано 02.11.2010, 11:06  
SasaVitebsk
Гражданин KAZUS.RU
 
Регистрация: 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.RU
 
Регистрация: 30.06.2005
Сообщений: 3,399
Сказал спасибо: 5
Сказали Спасибо 431 раз(а) в 306 сообщении(ях)
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, время: 10:55.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot