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

 
 
> STM8, кто нибудь использует?
KRS
сообщение Apr 13 2010, 11:27
Сообщение #1


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

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



Наткнулся тут на новое семейство.
Заинтересовали LQFP44 c CAN, как дешовая замена AT90CAN64 или мелких STM32.

На семинар
http://catalog.compel.ru/blog/2010/04/08/2...ntrollery-stm8/
никто не собирается?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
KRS
сообщение May 1 2010, 23:00
Сообщение #2


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

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



Посмотрел я как компилируется моя функция разбора данных.
Лучше всего повел себя космик! Для иллюстрации выдрал кусочек в отдельную функцию
Код
void Set12(u8_t id, u16_t v);
void test_1(u8_t *ptr)
{
  u8_t id, ext;
  ext = ptr[0];
  id = ptr[1];
  Set12((id >> 4) + ext*8, ptr[2] | ((id & 0x0F)<<8) );
}


IAR что то перемудрил со сдвигами, даже разбираться в лом!
Код
   \                     test_1:
   \   000000 9093                  LDW       Y, X
    119            u8_t id, ext;
    120            ext = ptr[0];
    121            id = ptr[1];
   \   000002 5C                    INCW      X
   \   000003 F6                    LD        A, (X)
   \   000004 B700                  LD        S:?b0, A
    122            Set12((id >> 4) + ext*8, ptr[2] | ((id & 0x0F)<<8) );
   \   000006 5F                    CLRW      X
   \   000007 41                    EXG       A, XL
   \   000008 B600                  LD        A, S:?b0
   \   00000A 01                    RRWA      X, A
   \   00000B A40F                  AND       A, #0xf
   \   00000D 02                    RLWA      X, A
   \   00000E 58                    SLLW      X
   \   00000F 58                    SLLW      X
   \   000010 58                    SLLW      X
   \   000011 58                    SLLW      X
   \   000012 58                    SLLW      X
   \   000013 58                    SLLW      X
   \   000014 58                    SLLW      X
   \   000015 58                    SLLW      X
   \   000016 BF00                  LDW       S:?w1, X
   \   000018 93                    LDW       X, Y
   \   000019 1C0002                ADDW      X, #0x2
   \   00001C F6                    LD        A, (X)
   \   00001D 5F                    CLRW      X
   \   00001E 97                    LD        XL, A
   \   00001F 01                    RRWA      X, A
   \   000020 BA00                  OR        A, S:?b3
   \   000022 01                    RRWA      X, A
   \   000023 BA00                  OR        A, S:?b2
   \   000025 01                    RRWA      X, A
   \   000026 90F6                  LD        A, (Y)
   \   000028 48                    SLL       A
   \   000029 48                    SLL       A
   \   00002A 48                    SLL       A
   \   00002B B700                  LD        S:?b1, A
   \   00002D B600                  LD        A, S:?b0
   \   00002F 4E                    SWAP      A
   \   000030 A40F                  AND       A, #0xf
   \   000032 BB00                  ADD       A, S:?b1
   \   000034 CC0000                JP        L:Set12
    123          }


Райзонанс, много лишних пересылок.
Код
             ; FUNCTION ?test_1 (BEGIN)
             ; Register-parameter ptr (XW) is relocated (auto)
             ; SOURCE LINE # 122
0000 89                                PUSHW  X
0001 89                                PUSHW  X
             ; SOURCE LINE # 125
0002 F6                                LD     A,(X)
0003 6B02       F                      LD     (002H,SP),A  ; [ ext ]
             ; SOURCE LINE # 126
0005 1E03       F                      LDW    X,(003H,SP)  ; [ ptr ]
0007 E601                              LD     A,(001H,X)
0009 6B01       F                      LD     (001H,SP),A  ; [ id ]
             ; SOURCE LINE # 127
000B A60F                              LD     A,#00FH
000D 1401       F                      AND    A,(001H,SP)  ; [ id ]
000F 5F                                CLRW   X
0010 95                                LD     XH,A
0011 BF03       F                      LDW    ?CH.w,X
0013 1E03       F                      LDW    X,(003H,SP)  ; [ ptr ]
0015 B605       F                      LD     A,?CH
0017 B703       F                      LD     ?BH,A
0019 E602                              LD     A,(002H,X)
001B B704       F                      LD     ?BL,A
001D BE02       F                      LDW    X,?BH.w
001F 7B02       F                      LD     A,(002H,SP)  ; [ ext ]
0021 48                                SLL    A
0022 48                                SLL    A
0023 48                                SLL    A
0024 B703       F                      LD     ?BH,A
0026 7B01       F                      LD     A,(001H,SP)  ; [ id ]
0028 4E                                SWAP   A
0029 A40F                              AND    A,#00FH
002B BB03       F                      ADD    A,?BH
002D CD0000     F                      CALL   ?Set12
0030 5B04                              ADD    SP,#004H
0032 81                                RET


Космик - лучший код.
Код
477  021b               _test_1:
478  021b 89                pushw    x
479  021c 5203              subw    sp,#3
480       00000003      OFST:    set    3
482                    ; 124   ext = ptr[0];
483  021e f6                ld    a,(x)
484  021f 6b02              ld    (OFST-1,sp),a
485                    ; 125   id = ptr[1];
486  0221 e601              ld    a,(1,x)
487  0223 6b03              ld    (OFST+0,sp),a
488                    ; 126   Set12((id >> 4) + ext*8, ptr[2] | ((id & 0x0F)<<8) );
489  0225 a40f              and    a,#15
490  0227 1604              ldw    y,(OFST+1,sp)
491  0229 97                ld    xl,a
492  022a 90e602            ld    a,(2,y)
493  022d 02                rlwa    x,a
494  022e 89                pushw    x
495  022f 7b04              ld    a,(OFST+1,sp)
496  0231 48                sll    a
497  0232 48                sll    a
498  0233 48                sll    a
499  0234 6b03              ld    (OFST+0,sp),a
500  0236 7b05              ld    a,(OFST+2,sp)
501  0238 4e                swap    a
502  0239 a40f              and    a,#15
503  023b 1b03              add    a,(OFST+0,sp)
504  023d cd0000            call    _Set12
506  0240 85                popw    x
507                    ; 127 }
508  0241 5b05              addw    sp,#5
509  0243 81                ret


Это только маленький кусочек. В общем на сейчас Космик выигрывает при функциях посложнее.
Например в кусочке Set8((Id & 0x1F)+Ext*32,*ptr++); стал вызывать билиотечную функцию сдвига, космик и IAR обошлись без нее!

У IAR возникают каие то артефакты!!! Про dec он вообще похоже не подозревает smile.gif
Еще и такой код if (!--Len) return; скомпилировал как
Код
   \   0000A1 B600                  LD        A, S:?b8
   \   0000A3 ABFF                  ADD       A, #0xff
   \   0000A5 B700                  LD        S:?b8, A
   \   0000A7 4F                    CLR       A
   \   0000A8 B100                  CP        A, S:?b8
   \   0000AA 2600                  JRNE      ??lb_3
   \   0000AC CC0000                JP        L:??parser_3


Цитата
К тому же IAR не использует стек, а использует виртуальные регистры. Что IMHO для этого ядра криво!

Здесь я был не прав! Это здорово улучшаед код - особенно при использовании специфической адресации
Indirect и Indexed Inderec - получаются аппаратные указатели.Так что когда IAR полечат от артефактов код у него будет хороший!

Райзонанс тоже использует виртуальные регистры, А космик стек.
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 3 2010, 07:48
Сообщение #3


Местный
***

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



Да уж... wink.gif Сильно улучшает...
if (!--Len) вообще можно реализовать одной инструкцией
Код
        dec    S:b8
        jrne   ??b3
.....
Или нет?
PS: Видно первая версия еще очень сырая.
Причина редактирования: Совершенно бездумное цитирование!
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 3 2010, 11:48
Сообщение #4


Гуру
******

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



Цитата(_Bill @ May 3 2010, 11:48) *
PS: Видно первая версия еще очень сырая.

Это очевидно. Большинство ошибок эффективно выявляются и устраняются только в процессе интенсивной эксплуатации большим количеством пользователей, как бы тщательно не тестировали продукт сами производители. А раз эта версия первая из вышедших на рынок, то погрешностей в ней можно ожидать много. Один номер версии о многом говорит - EWSTM8-1100 - нолик в миноре обычно не бывает, т.к. букве A соответствует единичка.
Вскорости ждем следующую версию EWSTM8 за номером 1.20. Она уже объявлена к выпуску в ближайшие 2-3 месяца на японском сайте IAR -
http://www.iar.com/website1/1.0.1.0/495/3/
На английском такого упоминания нет. А здесь еще кое-что разобрать можно, даже не владея японским языком, или перевести с помощью электронного переводчика.
Go to the top of the page
 
+Quote Post
_Bill
сообщение May 3 2010, 14:58
Сообщение #5


Местный
***

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



Цитата(Xenia @ May 3 2010, 15:48) *
Это очевидно. Большинство ошибок эффективно выявляются и устраняются только в процессе интенсивной эксплуатации большим количеством пользователей, как бы тщательно не тестировали продукт сами производители. А раз эта версия первая из вышедших на рынок, то погрешностей в ней можно ожидать много. Один номер версии о многом говорит - EWSTM8-1100 - нолик в миноре обычно не бывает, т.к. букве A соответствует единичка.
Вскорости ждем следующую версию EWSTM8 за номером 1.20. Она уже объявлена к выпуску в ближайшие 2-3 месяца на японском сайте IAR -
http://www.iar.com/website1/1.0.1.0/495/3/
На английском такого упоминания нет. Там кое-что разобрать можно, даже не владея японским языком или перевести с помощью электронного переводчика.

Спасибо!!! Будем ждать. Хотя я на сегодняшний день остановился на комплексе SVDT-Cosmic. Поскольку я пишу программы на ассемблере, то ассемблер у Cosmic мне понравился больше остальных.
Go to the top of the page
 
+Quote Post
Xenia
сообщение May 3 2010, 16:01
Сообщение #6


Гуру
******

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



Цитата(_Bill @ May 3 2010, 18:58) *
Хотя я на сегодняшний день остановился на комплексе SVDT-Cosmic. Поскольку я пишу программы на ассемблере, то ассемблер у Cosmic мне понравился больше остальных.

А разве есть разница на каком ассемблере писать? smile.gif Я понимаю, если это компилятор языка более высокого уровня - тут действительно эффективность кода во многом зависит от компилятора. Но ассемблер! Растолкуйте мне, пожалуйста, разницу. Может быть там просто редактор более удобный или встроенные макросы?
Go to the top of the page
 
+Quote Post
KRS
сообщение May 3 2010, 16:29
Сообщение #7


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

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



Цитата(Xenia @ May 3 2010, 20:01) *
А разве есть разница на каком ассемблере писать? smile.gif

Разница большая! Вот возьмите хотя бы IARовский ассемблер - там возможно использовать С препроцессор
#ifdef
#include
и т.д.
Возможности насписания макросов отличаются.
Да и линкер все равно нужен.
Если писать на асме - я бы выбрал IAR - хороший линкер, С препроцессор, мароксы обынчые для разных архитектур...
Go to the top of the page
 
+Quote Post
zltigo
сообщение May 3 2010, 16:57
Сообщение #8


Гуру
******

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



Цитата(KRS @ May 3 2010, 19:29) *
Разница большая! Вот возьмите хотя бы IARовский ассемблер - там возможно использовать С препроцессор

'С' препроцесср, на то он и препроцессор, что вещь совершенно независимая и способен обрабатывать любые тексты, включая не только любой ASM, но вообще литературные тексты. Другое дело, что у макроассемблеров бывает наворотов и много поболее, только едва-ли более одного из сотни асмописателей знают о них sad.gif sad.gif sad.gif.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- KRS   STM8   Apr 13 2010, 11:27
- - zksystem   Я пользую STM8, только CAN в них не юзал. Обидно ч...   Apr 13 2010, 13:06
|- - Pat   Цитата(zksystem @ Apr 13 2010, 15:21) Я п...   Apr 13 2010, 18:52
||- - KRS   Цитата(Pat @ Apr 13 2010, 23:07) Можно ли...   Apr 13 2010, 20:02
|||- - sonycman   Цитата(KRS @ Apr 14 2010, 00:17) Ну после...   Apr 14 2010, 13:23
||- - zksystem   Цитата(Pat @ Apr 13 2010, 23:07) Можно ли...   Apr 15 2010, 10:45
|- - Xenia   Цитата(zksystem @ Apr 13 2010, 17:21) Я п...   Apr 16 2010, 12:53
|- - KRS   Цитата(Xenia @ Apr 16 2010, 17:08) Не рас...   Apr 17 2010, 19:33
|- - Xenia   Цитата(KRS @ Apr 17 2010, 23:48) А кто ни...   Apr 17 2010, 19:39
||- - KRS   Цитата(Xenia @ Apr 17 2010, 23:54) А вот ...   Apr 17 2010, 19:58
||- - Xenia   Цитата(KRS @ Apr 18 2010, 00:13) Наскольк...   Apr 17 2010, 20:04
||- - KRS   Цитата(Xenia @ Apr 18 2010, 00:19) А вы к...   Apr 17 2010, 20:30
||- - Xenia   Цитата(KRS @ Apr 18 2010, 00:42) Лично мн...   Apr 17 2010, 20:32
||- - KRS   Цитата(Xenia @ Apr 18 2010, 00:47) Не под...   Apr 17 2010, 20:48
||- - zltigo   Цитата(KRS @ Apr 18 2010, 00:03) Она прос...   Apr 17 2010, 21:05
||- - KRS   Цитата(zltigo @ Apr 18 2010, 01:20) по Ва...   Apr 17 2010, 21:18
|- - zltigo   Цитата(KRS @ Apr 17 2010, 22:48) Какое же...   Apr 17 2010, 20:13
- - delamoure   Актуальность определяется целесообразностью примен...   Apr 14 2010, 10:59
- - ukpyr   Цитатакак дешовая замена AT90CAN64 или мелких STM3...   Apr 14 2010, 11:37
|- - KRS   Цитата(ukpyr @ Apr 14 2010, 15:52) жаль g...   Apr 14 2010, 13:02
- - Xenia   Поглядела я на Instruction set этого STM8 - дерьмо...   Apr 17 2010, 21:24
|- - zltigo   Цитата(Xenia @ Apr 18 2010, 00:39) Погляд...   Apr 17 2010, 22:40
|- - Xenia   Цитата(zltigo @ Apr 18 2010, 02:55) А теп...   Apr 18 2010, 01:18
|- - _Pasha   Цитата(Xenia @ Apr 18 2010, 04:33) Вот и ...   Apr 18 2010, 03:57
|- - zltigo   Цитата(Xenia @ Apr 18 2010, 04:33) К тому...   Apr 18 2010, 07:28
||- - KRS   Цитата(zltigo @ Apr 18 2010, 11:43) Разум...   Apr 18 2010, 08:30
||- - zltigo   Цитата(KRS @ Apr 18 2010, 11:45) Есть пра...   Apr 18 2010, 08:32
|- - _Bill   Цитата(Xenia @ Apr 18 2010, 05:18) Вся па...   Apr 27 2010, 19:48
- - scifi   Странный спор... Я-то по наивности думал, что в жи...   Apr 18 2010, 08:34
|- - zltigo   Цитата(scifi @ Apr 18 2010, 11:49) Странн...   Apr 18 2010, 09:11
|- - Xenia   Цитата(zltigo @ Apr 18 2010, 13:26) Да не...   Apr 18 2010, 13:24
|- - zltigo   Цитата(Xenia @ Apr 18 2010, 16:39) Дело о...   Apr 18 2010, 14:23
|- - Xenia   Цитата(zltigo @ Apr 18 2010, 18:38) А вот...   Apr 18 2010, 16:04
|- - Pat   Цитата(Xenia @ Apr 18 2010, 18:19) уже по...   Apr 18 2010, 17:28
|- - WHALE   Цитата(Pat @ Apr 18 2010, 21:43) Xenia не...   Apr 18 2010, 17:49
|- - Xenia   Цитата(WHALE @ Apr 18 2010, 22:04) а вы п...   Apr 18 2010, 18:30
|- - WHALE   Цитата(Xenia @ Apr 18 2010, 22:45) Я пола...   Apr 18 2010, 18:44
|- - zltigo   Цитата(Xenia @ Apr 18 2010, 21:45) Я пола...   Apr 18 2010, 19:35
|- - Xenia   Цитата(zltigo @ Apr 18 2010, 23:50) Да, с...   Apr 18 2010, 20:05
|- - Stanislav_S   Хм.. пересменка говорите? Так вот китайское предст...   Apr 19 2010, 07:41
|- - zksystem   Ну свет клином не сошелся на атмелах и микрочипах,...   Apr 22 2010, 12:20
- - KRS   Сходил я на семинар в Питере! Из полезного - д...   Apr 30 2010, 08:02
|- - Stanislav_S   Цитата(KRS @ Apr 30 2010, 13:02) Сходил я...   Apr 30 2010, 09:24
|- - KRS   Цитата(Stanislav_S @ Apr 30 2010, 13:24) ...   Apr 30 2010, 09:51
- - KRS   Поставил я все 3 компилера. Для начала решил посум...   May 1 2010, 17:16
- - ukpyr   интересно сравнить с avr-gcc и avr-iar по объему и...   May 1 2010, 17:24
|- - KRS   Цитата(ukpyr @ May 1 2010, 21:24) интерес...   May 1 2010, 18:09
|- - KRS   Цитата(_Bill @ May 3 2010, 18:58) Хотя я ...   May 3 2010, 15:27
|- - _Bill   Цитата(Xenia @ May 3 2010, 20:01) А разве...   May 3 2010, 18:28
- - KRS   ассемблеры по возможностям примерно одинаковые...   May 3 2010, 21:02
- - Xenia   Только что (файл датируется 5 мая) IAR выложила се...   May 8 2010, 09:24
|- - KRS   Цитата(Xenia @ May 8 2010, 13:24) Только ...   May 8 2010, 20:45
|- - zltigo   Цитата(KRS @ May 8 2010, 23:45) Поддержка...   May 8 2010, 22:27
- - guxa   Цитата(KRS @ Apr 13 2010, 15:27) Наткнулс...   May 14 2010, 10:04
|- - KRS   Цитата(guxa @ May 14 2010, 14:04) Скажите...   May 14 2010, 11:50
|- - Dog Pawlowa   Вот CAN вам неймется, подскажите лучше, кто тела п...   May 14 2010, 12:58
|- - _Bill   Цитата(Dog Pawlowa @ May 14 2010, 16:58) ...   May 14 2010, 18:01
|- - Dog Pawlowa   Цитата(_Bill @ May 14 2010, 21:01) Делает...   May 14 2010, 19:23
- - KRS   Таблица прерываний находится в библиотеке, исходни...   May 14 2010, 20:32
|- - Dog Pawlowa   Цитата(KRS @ May 14 2010, 23:32) Т.е. есл...   May 14 2010, 20:49
|- - KRS   Цитата(Dog Pawlowa @ May 15 2010, 00:49) ...   May 14 2010, 21:19
||- - Dog Pawlowa   Цитата(KRS @ May 15 2010, 00:19) ST навер...   May 14 2010, 21:32
|- - Т.Достоевский   Цитата(Dog Pawlowa @ May 15 2010, 00:49) ...   Jun 15 2010, 21:50
- - dimka76   А с программаторами для них как дела обстоят? Есть...   Jun 15 2010, 12:02
|- - ZVE   Бесплатного вроде как нет. Да и особо не нужно, та...   Jun 15 2010, 18:08
- - Linker   Лично меня заинтересовала заявленная устойчивость ...   Jun 30 2010, 16:53
|- - _Pasha   Цитата(Linker @ Jun 30 2010, 19:53) Лично...   Jun 30 2010, 20:38
||- - Linker   Цитата(_Pasha @ Jul 1 2010, 03:38) В каки...   Jul 1 2010, 14:19
|- - _Bill   Цитата(Linker @ Jun 30 2010, 19:53) Хотел...   Jun 30 2010, 23:25
|- - IGK   Цитата(_Bill @ Jul 1 2010, 02:25) ...Семе...   Jul 1 2010, 05:50
- - Aner   к каким еще перенапяжениям? к статике!   Jul 1 2010, 14:22
|- - topkin   Цитата(Aner @ Jul 1 2010, 18:22) к каким ...   Jul 2 2010, 04:22
|- - Linker   Цитата(Aner @ Jul 1 2010, 21:22) к каким ...   Jul 2 2010, 17:18
|- - IGK   Нашел время осмотреть STM8S-Discovery :-) Я до это...   Jul 9 2010, 18:34
|- - topkin   Цитата(IGK @ Jul 10 2010, 06:34) Нашел вр...   Jul 14 2010, 12:27
|- - IGK   Цитата(topkin @ Jul 14 2010, 15:27) У мен...   Jul 14 2010, 18:18
- - pr2   Подскажите, где-то есть сейчас в наличии STM8S-Dis...   Jul 14 2010, 01:40
- - Xenia   Вчера вышел новый сервис-пак к EWSTM8 №3 (№2 пропу...   Jul 14 2010, 12:19
|- - KRS   Цитата(Xenia @ Jul 14 2010, 16:19) Не пло...   Aug 2 2010, 10:37
- - ведущий_специалист   Цитата(IGK @ Jul 9 2010, 22:34) Нашел вре...   Aug 2 2010, 17:58
|- - e-serg   Цитата(ведущий_специалист @ Aug 3 2010, 02...   Aug 4 2010, 16:29
|- - _Bill   Цитата(ведущий_специалист @ Aug 2 2010, 21...   Aug 5 2010, 06:14
|- - Stanislav_S   Цитата(_Bill @ Aug 5 2010, 10:14) У меня ...   Aug 5 2010, 08:02
|- - _Bill   Цитата(Stanislav_S @ Aug 5 2010, 12:02) А...   Aug 5 2010, 12:55
- - ukpyr   а какой смысл в stm8s после появления stm32s100 (ц...   Aug 4 2010, 17:04
|- - topkin   Цитата(ukpyr @ Aug 4 2010, 21:04) а какой...   Aug 5 2010, 04:16
- - oll   Т.е. обьясните спецы - с Дискавери идет все таки п...   Aug 5 2010, 16:11
|- - Stanislav_S   Насчет дискавери сказать трудно, но могу сказать ч...   Aug 6 2010, 09:03
- - pan_oleg   День добрый. Имею вопрос? Кто-то уже внешние интер...   Sep 15 2010, 12:24
|- - dimka76   Цитата(pan_oleg @ Sep 15 2010, 16:24) но ...   Sep 15 2010, 12:36
|- - pan_oleg   Цитата(dimka76 @ Sep 15 2010, 15:36) Так ...   Sep 15 2010, 13:20
- - ArtemDement   Коллеги, не подскажите, можно ли использовать STM8...   Oct 22 2010, 17:34
- - ArtemDement   Неужели нет никаких идей ?   Oct 26 2010, 16:49
2 страниц V   1 2 >


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

 


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


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