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

 
 
> 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

Сообщений в этой теме
- 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
|- - _Bill   Да уж... Сильно улучшает... if (!--Len) во...   May 3 2010, 07:48
|- - Xenia   Цитата(_Bill @ May 3 2010, 11:48) PS: Вид...   May 3 2010, 11:48
|- - _Bill   Цитата(Xenia @ May 3 2010, 15:48) Это оче...   May 3 2010, 14:58
|- - KRS   Цитата(_Bill @ May 3 2010, 18:58) Хотя я ...   May 3 2010, 15:27
|- - Xenia   Цитата(_Bill @ May 3 2010, 18:58) Хотя я ...   May 3 2010, 16:01
|- - KRS   Цитата(Xenia @ May 3 2010, 20:01) А разве...   May 3 2010, 16:29
||- - zltigo   Цитата(KRS @ May 3 2010, 19:29) Разница б...   May 3 2010, 16:57
|- - _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 Текстовая версия Сейчас: 20th August 2025 - 22:21
Рейтинг@Mail.ru


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