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

 
 
11 страниц V  < 1 2 3 4 5 > »   
Reply to this topicStart new topic
> STM8, кто нибудь использует?
zltigo
сообщение Apr 18 2010, 14:23
Сообщение #31


Гуру
******

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



Цитата(Xenia @ Apr 18 2010, 16:39) *
Дело обстоит прямо противоположным образом - именно вам Atmel предсталяется чем-то вроде Сатаны.

smile.gif. Опять sad.gif понесло. Xenia, ну поймите наконец, что я лично совершенно спокойно использую и буду в обозримом будущем использовать тот-же "сатанинский" AVR8. Вот до конца месяца сделаю очередную небольшую коробочку на ATMEGA8. Без всякой предвзятости, как и почти дюжину других ядер. Я их все люблю, со всеми их "конкретными огрехами архитектуры". А вот у Вас саму себя зажавшую в рамки AVR явные проблемы с мировосприятием. Ну переступите, наконец через свою болезненно-фанатичную преданность буквам. Полегчает! Глядишь, и перестанет Сатана в моем лице являться smile.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Xenia
сообщение Apr 18 2010, 16:04
Сообщение #32


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(zltigo @ Apr 18 2010, 18:38) *
А вот у Вас саму себя зажавшую в рамки AVR явные проблемы с мировосприятием. Ну переступите, наконец через свою болезненно-фанатичную преданность буквам. Полегчает!

Специально для вас заявляю, что затеяла сравнение STM8 с AVR именно по той причине, что STM8 претендует как раз на ту нишу, которую в настоящее занимают AVR. Так что если STM8 и имеет перспективы внедрения, то во многом путем вытеснения из этой ниши AVR. В этом смысле сравнение архитектуры STM8 с теми архитектурами, с которыми ему придется конкурировать, вполне оправдано. И это, отнюдь, не мои фантазии, т.к. еще до меня в посте #6 уже поднимался вопрос о возможности замены ATmega8 на STM8S103.
Вы же пытаетесь переводить разговор на личности, бичуя в участниках форума якобы выявленные вами недостатки. И это уже не в первый раз, и не только в мой адрес.
Go to the top of the page
 
+Quote Post
Pat
сообщение Apr 18 2010, 17:28
Сообщение #33


Местный
***

Группа: Свой
Сообщений: 421
Регистрация: 27-05-05
Из: Энергодар
Пользователь №: 5 480



Цитата(Xenia @ Apr 18 2010, 18:19) *
уже поднимался вопрос о возможности замены ATmega8 на STM8S103.
Вы же пытаетесь переводить разговор на личности, бичуя в участниках форума якобы выявленные вами недостатки. И это уже не в первый раз, и не только в мой адрес.


Xenia не руйтесь rolleyes.gif и спасибо за инфу по компилятору.

Наверное заменять мегу8 на STM8 не стоит ибо у них цена почти одинаковая, а вот ATmega128 очень даже неплохо заменить на STM8S208
так как цена даже у розничного продавца отличается почти в 2 раза.

Думаю что сравнивать попугаи AVR c STM8 не стоит, все будет примерно одинаково.

Установил EWSTM8 и в симуляторе запустил пример STM8S208MB-Board
Было интересно посмотреть вход в прерывание и не очень проникся там сплошные call.
Причем сохранение регистров в стеке реализовано тоже через их вызыв.
Это при любой степени оптимизации.
Либо я чего то не понимаю либо ИАР пока не доработал компилятор.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Apr 18 2010, 17:49
Сообщение #34


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(Pat @ Apr 18 2010, 21:43) *
Xenia не руйтесь rolleyes.gif и спасибо за инфу по компилятору.
Наверное заменять мегу8 на STM8 не стоит ибо у них цена почти одинаковая,

а вы поинтересуйтесь доставабельностью той-же меги8.Я думаю-сильно удивитесь.
Атмел в очередной раз кинул потребителей-старые чипы с производства сняты и на
складах их уже нет,новые(А серия) только ожидаются...


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
Xenia
сообщение Apr 18 2010, 18:30
Сообщение #35


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(WHALE @ Apr 18 2010, 22:04) *
а вы поинтересуйтесь доставабельностью той-же меги8.Я думаю-сильно удивитесь.
Атмел в очередной раз кинул потребителей-старые чипы с производства сняты и на складах их уже нет, новые (А серия) только ожидаются...

Я полагаю, что это обычный "пересменок", когда один тип МК снимается с производства, а ему на замену приходит приемник или аналог. Сказывается типичная человеческая инерция: конечные потребители "стесняются" оставлять заявки на новый тип (продолжая заказывать старый), опасаясь, что его выпуск задержится. Вслед за этим и крупные диллеры, подбивая такие заявки, не спешат заказывать продукцию нового типа, в свою очередь опасаясь недостаточного на нее спроса. А производителю в этой ситуации не остается ничего иного, как ждать, пока старая продукция не иссякнет на складах. Похоже на то, что именно сейчас наступил период "голодухи", когда складские запасы ATmega8 иссякают. На моей памяти такое уже было с AT90S2313, когда ее заменяли на ATtiny2313 - тоже была "голодуха", когда в розничной продаже не было ни того, ни другого.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Apr 18 2010, 18:44
Сообщение #36


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Цитата(Xenia @ Apr 18 2010, 22:45) *
Я полагаю, что это обычный "пересменок", когда один тип МК снимается с производства, а ему на замену приходит приемник или аналог.

Дней десять назад разговаривал как раз на эту тему с товарищем,работающем разработчиком.
Он утверждает,что такие фортели характерны именно для атмеля.Другие производители обеспечивают
плавную миграцию со старых кристаллов.


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
zltigo
сообщение Apr 18 2010, 19:35
Сообщение #37


Гуру
******

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



Цитата(Xenia @ Apr 18 2010, 21:45) *
Я полагаю, что это обычный "пересменок"....

Да, спасибо sad.gif, наверное Ваш ответ "успокоит" моего друга выполняющего заказ на Tiny2313, который вроде ничем прямо не заменяется, но который шерстит всех оптовиков по собирая все, что можно в любых количествах и любых упаковках. По поводу упаковки еще выслушивая контрактного производителя вынужденного ставить эти чипы почти руками. Кстати, по ST в наших краях явных проблем не наблюдается. А мне Атмеловские I2C EEPROM работающие на мегагерце в четверг за 6-7 месяцев поставить пообещали. Опять, типа поклеп на Atmel sad.gif.
Цитата(WHALE @ Apr 18 2010, 21:04) *
а вы поинтересуйтесь доставабельностью той-же меги8.

С просто MEGA8 совсем тупика нет, но 8L - уже фиг вам, ну 8A - типа еще фиг вам. А зарабатывать надо сегодня.

Цитата(Xenia @ Apr 18 2010, 19:19) *
Специально для вас заявляю, что затеяла сравнение STM8 с AVR именно по той причине, что STM8 претендует как раз на ту нишу, которую в настоящее занимают AVR.

И если не благодаря цене или параметрам, то благодаря, цитирую, "ее малейшим производственным трудностям" и "обычным пересменкам", ST нишу займет. Думаю, это действительно для того-же ST основной фактор выброса STM8. Не улыбаться, ни печалиться я по этому поводу я не буду - просто констатация факта.

Цитата(Xenia @ Apr 18 2010, 19:19) *
... и не только в мой адрес.

По отношению к Вам исключительно из самых добрых побуждений.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Xenia
сообщение Apr 18 2010, 20:05
Сообщение #38


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(zltigo @ Apr 18 2010, 23:50) *
Да, спасибо sad.gif, наверное Ваш ответ "успокоит" моего друга выполняющего заказ на Tiny2313, который вроде ничем прямо не заменяется, но который шерстит всех оптовиков по собирая все, что можно в любых количествах и любых упаковках.

Кажется, что с Tiny2313 действительно та же самая история - на Tiny2313A ее заменяют. Пересменок, однако smile.gif.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Apr 19 2010, 07:41
Сообщение #39


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Хм.. пересменка говорите? Так вот китайское представительство атмела, на Мегу8, 48, 88 послало на 5 месяцев, а мне их надо минимум 3000 штук в месяц. И что теперь делать? Покупать мегу48 по 1,8$, как нам поставщики предлагают? это маразм. Так что Атмел очень сильно упал в моих глазах, теперь для следующих девайсов буду думать о переходе на другие МК, поскольку такой цирк уже достал.


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
zksystem
сообщение Apr 22 2010, 12:20
Сообщение #40


embedder
***

Группа: Свой
Сообщений: 264
Регистрация: 11-05-05
Из: Казань
Пользователь №: 4 911



Ну свет клином не сошелся на атмелах и микрочипах, после пиков, например, мне как-то комфортнее на STM8 в простых задачах, не считая казуса с компиляторами.


--------------------
Мечты стареют куда быстрее мечтателей… Стивен Кинг. "Ловец снов"
Go to the top of the page
 
+Quote Post
_Bill
сообщение Apr 27 2010, 19:48
Сообщение #41


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(Xenia @ Apr 18 2010, 05:18) *
Вся память не работает у STM8 на правах регистров. Или регистры тогда должны быть совсем бесправные smile.gif. Например, у AVR-регистров такие права, что их можно складывать (а также вычитать и проводить логические операции) одной единственной инструкцией за один такт! А над ячейками памяти такое вообще невозможно. К тому же STM8 может выполнять арифметические и логические операции только одном регистре - аккумуляторе. Вот и получится программа, где 70% кода будет гонять число из памяти в аккумялятор и обратно.

Как ни странно, большинство операций с памятью выполняются именно за один такт. Исключения составляют операции с косвенной адресацией (через указатель). Операции со словами (16 разрядов) выполняются за 2 такта. Я думаю, что это все же неплохая альтернатива ATmega.
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 30 2010, 08:02
Сообщение #42


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Сходил я на семинар в Питере!
Из полезного - дали STM8S-Discovery!
Кстати космик совсем не жадный нужен кому?
Райзонанс еще еще не пилил.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение Apr 30 2010, 09:24
Сообщение #43


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(KRS @ Apr 30 2010, 13:02) *
Сходил я на семинар в Питере!
Из полезного - дали STM8S-Discovery!
Кстати космик совсем не жадный нужен кому?
Райзонанс еще еще не пилил.

А насколько космик не жадный? Если совсем не жадный, то можно на ФТП залить, в исследованиях пригодится, благо чипы уже заказал smile.gif


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
KRS
сообщение Apr 30 2010, 09:51
Сообщение #44


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Цитата(Stanislav_S @ Apr 30 2010, 13:24) *
А насколько космик не жадный? Если совсем не жадный, то можно на ФТП залить, в исследованиях пригодится, благо чипы уже заказал smile.gif

Создал тему
http://electronix.ru/forum/index.php?showtopic=75822
Go to the top of the page
 
+Quote Post
KRS
сообщение May 1 2010, 17:16
Сообщение #45


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

Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555



Поставил я все 3 компилера.
Для начала решил посуммировать вектора.
Т.к. у ядра всего 2 индексных регистра, интересно посомтреть что будут делать компиляторы, когда их нужно больше.
Код
void add8_2(unsigned char *a, unsigned char *b, unsigned char *c, unsigned char len)
{
    do {
        *c++ = *a++ + *b++;
    } while(--len);
}

Космик использовал только один индексный регистр, по очереди для 3 указателей. Лучше всего скомпилировал while(--len);
Код
  43  0016 89                pushw    x
  44       00000000      OFST:    set    0
  46  0017               L11:
  47                    ; 16         *c++ = *a++ + *b++;
  48  0017 1e05              ldw    x,(OFST+5,sp)
  49  0019 f6                ld    a,(x)
  50  001a 5c                incw    x
  51  001b 1f05              ldw    (OFST+5,sp),x
  52  001d 1e01              ldw    x,(OFST+1,sp)
  53  001f fb                add    a,(x)
  54  0020 5c                incw    x
  55  0021 1f01              ldw    (OFST+1,sp),x
  56  0023 1e07              ldw    x,(OFST+7,sp)
  57  0025 f7                ld    (x),a
  58  0026 5c                incw    x
  59  0027 1f07              ldw    (OFST+7,sp),x
  60                    ; 17     } while(--len);
  61  0029 0a09              dec    (OFST+9,sp)
  62  002b 26ea              jrne    L11
  63                    ; 18 }
  64  002d 85                popw    x
  65  002e 81                ret

Райзонанс мог бы выйграть - использовал X для *a и Y для *b и *с, но с *a++ у него вышел прокол, поэтому в итоге код получился не лучше. И лишняя проверка после dec
Код
             ; FUNCTION ?add8_2 (BEGIN)
             ; Register XW is assigned to parameter a
0000         ?DO_0003:
             ; SOURCE LINE # 16
0000 1603       F                      LDW    Y,(003H,SP)  ; [ b ]
0002 90F6                              LD     A,(Y)
0004 905C                              INCW   Y
0006 1703       F                      LDW    (003H,SP),Y  ; [ b ]
0008 BF03       F                      LDW    ?CH.w,X
000A 5C                                INCW   X
000B 92CB00     F                      ADD    A,[?CH.w]
000E 1605       F                      LDW    Y,(005H,SP)  ; [ c ]
0010 90BF02     F                      LDW    ?BH.w,Y
0013 905C                              INCW   Y
0015 1705       F                      LDW    (005H,SP),Y  ; [ c ]
0017 92C700     F                      LD     [?BH.w],A
001A 0A07       F                      DEC    (007H,SP)  ; [ len ]
001C 0D07       F                      TNZ    (007H,SP)  ; [ len ]
001E 26E0                              JRNE   ?DO_0003
0020 81                                RET

У IAR код тоже не фонтан! Но главное посмотрите на while(--len)!!!!
К тому же IAR не использует стек, а использует виртуальные регистры. Что IMHO для этого ядра криво! Что IAR делает хорошо - так это общий код выделят в подпрограммы, если нужно по размеру сжать! И у IAR лучший способ передачи параметров!! задействуются все рагистры.
Код
\                     add8_2:
   \   000000 BF00                  LDW       S:?w1, X
   \   000002 93                    LDW       X, Y
   \   000003 B700                  LD        S:?b4, A
     12              do {
     13                  *c++ = *a++ + *b++;
   \                     ??add8_2_0:
   \   000005 F6                    LD        A, (X)
   \   000006 92CB00                ADD       A, [S:?w1.w]
   \   000009 92C700                LD        [S:?w0.w], A
   \   00000C 5C                    INCW      X
   \   00000D 90BE00                LDW       Y, S:?w1
   \   000010 905C                  INCW      Y
   \   000012 90BF00                LDW       S:?w1, Y
   \   000015 90BE00                LDW       Y, S:?w0
   \   000018 905C                  INCW      Y
   \   00001A 90BF00                LDW       S:?w0, Y
     14              } while(--len);
   \   00001D B600                  LD        A, S:?b4
   \   00001F ABFF                  ADD       A, #0xff
   \   000021 B700                  LD        S:?b4, A
   \   000023 4F                    CLR       A
   \   000024 B100                  CP        A, S:?b4
   \   000026 2600                  JRNE      L:??add8_2_0
     15          }
   \   000028 81                    RET

Если код функции поменять на
Код
void add8_21(unsigned char *a, unsigned char *b, unsigned char *c, unsigned char len)
{
    do {
        *c = *a + *b;
        ++a; ++b; ++c;
    } while(--len);
}

То райзонанс генерирует практически идеальный код
Код
             ; FUNCTION ?add8_21 (BEGIN)
             ; Register XW is assigned to parameter a
0000         ?DO_0005:
             ; SOURCE LINE # 23
0000 1603       F                      LDW    Y,(003H,SP)  ; [ b ]
0002 90F6                              LD     A,(Y)
0004 FB                                ADD    A,(X)
0005 1605       F                      LDW    Y,(005H,SP)  ; [ c ]
0007 90F7                              LD     (Y),A
             ; SOURCE LINE # 24
0009 5C                                INCW   X
000A 1603       F                      LDW    Y,(003H,SP)  ; [ b ]
000C 905C                              INCW   Y
000E 1703       F                      LDW    (003H,SP),Y  ; [ b ]
0010 1605       F                      LDW    Y,(005H,SP)  ; [ c ]
0012 905C                              INCW   Y
0014 1705       F                      LDW    (005H,SP),Y  ; [ c ]
0016 0A07       F                      DEC    (007H,SP)  ; [ len ]
0018 0D07       F                      TNZ    (007H,SP)  ; [ len ]
001A 26E4                              JRNE   ?DO_0005
001C 81                                RET


С более простой задачей
Код
void add8_1(unsigned char *a, unsigned char *b, unsigned char len)
{
    do {
        *a++ += *b++;
    } while(--len);
}

Все справились примерно одинаково неудовлетворительно!
Ее надо записать в таком виде:
Код
void add8_3(unsigned char *a, unsigned char *b, unsigned char len)
{
    do {
        *a += *b;
                ++a;
                ++b;
    } while(--len);
}


Тогда IAR и Райзонанс справились гораздо лучше! Только райзонанс зачем что Y каждый раз сохраняет и загружает, а IAR с фирменным } while(--len);
Космик и X и Y перегружает и код не отличается практически от add8_1

райзонанс
Код
             ; FUNCTION ?add8_3 (BEGIN)
             ; Register XW is assigned to parameter a
0000         ?DO_0007:
             ; SOURCE LINE # 31
0000 1603       F                      LDW    Y,(003H,SP)  ; [ b ]
0002 F6                                LD     A,(X)
0003 90FB                              ADD    A,(Y)
0005 F7                                LD     (X),A
             ; SOURCE LINE # 32
0006 5C                                INCW   X
             ; SOURCE LINE # 33
0007 905C                              INCW   Y
0009 1703       F                      LDW    (003H,SP),Y  ; [ b ]
000B 0A05       F                      DEC    (005H,SP)  ; [ len ]
000D 0D05       F                      TNZ    (005H,SP)  ; [ len ]
000F 26EF                              JRNE   ?DO_0007
0011 81                                RET

IAR
Код
     24          void add8_3(unsigned char *a, unsigned char *b, unsigned char len)
     25          {
   \                     add8_3:
   \   000000 B700                  LD        S:?b0, A
     26              do {
     27                  *a += *b;
   \                     ??add8_3_0:
   \   000002 90F6                  LD        A, (Y)
   \   000004 FB                    ADD       A, (X)
   \   000005 F7                    LD        (X), A
     28                          ++a;
   \   000006 5C                    INCW      X
     29                          ++b;
   \   000007 905C                  INCW      Y
     30              } while(--len);
   \   000009 B600                  LD        A, S:?b0
   \   00000B ABFF                  ADD       A, #0xff
   \   00000D B700                  LD        S:?b0, A
   \   00000F 4F                    CLR       A
   \   000010 B100                  CP        A, S:?b0
   \   000012 2600                  JRNE      L:??add8_3_0
     31          }
   \   000014 81                    RET


Cosmic
Код
100  004e               _add8_3:
101  004e 89                pushw    x
102       00000000      OFST:    set    0
104  004f               L52:
105                    ; 32         *a += *b;
106  004f 1e01              ldw    x,(OFST+1,sp)
107  0051 1605              ldw    y,(OFST+5,sp)
108  0053 f6                ld    a,(x)
109  0054 90fb              add    a,(y)
110  0056 f7                ld    (x),a
111                    ; 33         ++a;
112  0057 5c                incw    x
113  0058 1f01              ldw    (OFST+1,sp),x
114                    ; 34         ++b;
115  005a 1e05              ldw    x,(OFST+5,sp)
116  005c 5c                incw    x
117  005d 1f05              ldw    (OFST+5,sp),x
118                    ; 35     } while(--len);
119  005f 0a07              dec    (OFST+7,sp)
120  0061 26ec              jrne    L52
121                    ; 36 }
122  0063 85                popw    x
123  0064 81                ret

В общем надо что то посложнее попробовать!


Цитата(Pat @ Apr 18 2010, 21:28) *
Было интересно посмотреть вход в прерывание и не очень проникся там сплошные call.

Это сокрее всего из-за настройки оптимизации - надо вместо Balanced поставить Speed или Cross Call убрать!
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 19th April 2024 - 02:36
Рейтинг@Mail.ru


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