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

 
 
> Я просто не верю что IAR STM8 такой тупой!, Ведь это же всегда был один из самых качественных компиляторов
sigmaN
сообщение May 9 2017, 20:00
Сообщение #1


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Код
#pragma inline=forced
static void inline f(uint8_t i)
{  
  while(--i)
    asm("");
}

int main()
{
  f(10);
}

В результате:

Код
    183          int main()
    184          {
   \                     main:
   \   000000 52 01        SUB       SP, #0x1
    186            f(10);
   \   000002 35 0A ....   MOV       S:?b0, #0xa
   \   000006 20 00        JRA       L:??main_0
   \                     ??main_1:
   \                     ??main_0:
   \   000008 B6 ..        LD        A, S:?b0
   \   00000A 4A           DEC       A
   \   00000B B7 ..        LD        S:?b0, A
   \   00000D 26 F9        JRNE      L:??main_1


ЗАЧЕМ? Зачем он делает всё это????

Настройки компилятора по полной программе: Multi-file compilation, High, Speed +No size constraints

P.S.
Cosmic же на много толковее справился, хотя я конечно по прежнему не понимаю почему нельзя просто с регистром A работать.... Зачем в стек то?
Код
  60                     .text:    section    .text,new
  61  0000               _main:
  63  0000 88                push    a
  64       00000001      OFST:    set    1
  67                ; 10 f(12);
  70  0001 a60c              ld    a,#12
  71  0003 6b01              ld    (OFST+0,sp),a
  74  0005               L72:
  75                ; 5     _asm("");
  79                ; 4   while(--i)
  81  0005 0a01              dec    (OFST+0,sp)
  83  0007 26fc              jrne    L72
///////////////////////////////////////////////  
84  0009               L73:
  86  0009 20fe              jra    L73
  99                         xdef    _main
118                         end


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AHTOXA
сообщение May 10 2017, 06:51
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Посмотрите, что из вашего кода делает sdcc, и успокойтесьsm.gif
Вот: (я только заменил asm("") на asm("nop"), для однозначности).
Код
    ld    a, #0x0a
00101$:
    dec    a
    tnz    a
    jrne    00116$
    ret
00116$:
    nop
    jra    00101$
    ret


Вот, если интересно, сравнение компиляторов для stm8. По нему видно, что IAR далеко не лидер в области размера кода. Зато он побеждает в тестах скорости.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Эдди
сообщение May 11 2017, 11:52
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 825
Регистрация: 16-04-15
Из: КЧР, Нижний Архыз
Пользователь №: 86 250



Цитата(AHTOXA @ May 10 2017, 09:51) *
Посмотрите, что из вашего кода делает sdcc, и успокойтесьsm.gif

Это да. Никакой оптимизации, к сожалению. Но, учитывая то, что больше свободных компиляторов под STM8 нет, приходится пользоваться им. Хоть что-то…
Правда, мне больше нравятся STM32. Но и там не все так хорошо: "изкоробочная" сборка arm-none-eabi-gcc не работает с F0 (операции умножения и деления вызывают зависон), приходится брать готовую сборку.
А еще надо от opencm3 полностью уйти на "голый CMSIS" для STM32F1. Под F0 я уже от библиотек ушел. Надо лишь с USB разобраться...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sigmaN   Я просто не верю что IAR STM8 такой тупой!   May 9 2017, 20:00
- - jcxz   Цитата(sigmaN @ May 9 2017, 22:00) Cosmic...   May 9 2017, 20:57
- - sigmaN   Грустно, потому что я в другом окне смотрю, что из...   May 10 2017, 10:01
|- - jcxz   Цитата(sigmaN @ May 10 2017, 12:01) Груст...   May 10 2017, 12:44
- - sigmaN   Цели никакой нет и холливара тоже. Просто обидно ч...   May 10 2017, 13:13
|- - AHTOXA   А как, по-вашему, должен выглядеть предложенный ва...   May 10 2017, 18:21
|- - jcxz   Цитата(sigmaN @ May 10 2017, 15:13) Прост...   May 10 2017, 20:01
- - sigmaN   Выглядеть этот кусок может и должен в точности как...   May 11 2017, 01:54
|- - AHTOXA   Цитата(sigmaN @ May 11 2017, 06:54) Выгля...   May 11 2017, 06:20
|- - jcxz   Цитата(sigmaN @ May 11 2017, 03:54) Приде...   May 11 2017, 08:38
- - sigmaN   Тоже потом подумал про испорченный A. Однако же ни...   May 11 2017, 08:34
- - sigmaN   ЦитатаПриведите лучше пример реализации БИХ-фильтр...   May 11 2017, 10:24
|- - AHTOXA   Цитата(sigmaN @ May 11 2017, 15:24) Удиви...   May 11 2017, 14:00
|- - Михась   Цитата(AHTOXA @ May 11 2017, 20:00) Раз у...   May 11 2017, 14:37
|- - AHTOXA   Цитата(Михась @ May 11 2017, 19:37) Это ...   May 11 2017, 17:05
|- - Михась   Цитата(AHTOXA @ May 12 2017, 00:05) Это н...   May 12 2017, 03:40
- - sigmaN   Cosmic для стм8 нынче абсолютно свободен и без огр...   May 11 2017, 13:15
- - Эдди   Космик только под мастдайку — не годится.   May 11 2017, 13:24
- - sigmaN   Странно, но космик в удобном виде размеры не вывод...   May 12 2017, 10:44
- - sigmaN   Мой товарищ сделал задержку 1us вот таким не хитры...   May 13 2017, 17:35
|- - jcxz   Цитата(sigmaN @ May 13 2017, 19:35) Рассл...   May 14 2017, 06:05
|- - Den64   Цитата(jcxz @ May 14 2017, 09:05) Не поня...   May 14 2017, 06:39
|- - jcxz   Цитата(Den64 @ May 14 2017, 08:39) Нескол...   May 14 2017, 18:36
|- - Den64   Цитата(jcxz @ May 14 2017, 21:36) Это пон...   May 14 2017, 18:59
- - sigmaN   ЦитатаЭто из игры fallout. Что это за приложение д...   May 14 2017, 20:17
|- - AHTOXA   Мне фотки видны. Он заменил 16 nop-ов на два вызов...   May 14 2017, 21:16
|- - jcxz   Цитата(sigmaN @ May 14 2017, 22:17) Короч...   May 15 2017, 09:38
- - sigmaN   Да, я тоже перепроверил, времянка не соблюдена. Дл...   May 14 2017, 21:27
- - sigmaN   Как раз эта часть отлично описана в посте со скрин...   May 15 2017, 14:15
|- - jcxz   Да похоже так и есть - реально тупой Функцию, ...   Jun 12 2017, 13:36
- - Эдди   Синус на STM8? Зачем????????????????   Jun 12 2017, 14:43
|- - jcxz   Цитата(Эдди @ Jun 12 2017, 16:43) Синус н...   Jun 12 2017, 17:27
- - Эдди   ШИМ — штука хорошая, но синусоида элементарно по т...   Jun 13 2017, 05:25
|- - jcxz   Цитата(Эдди @ Jun 13 2017, 07:25) ШИМ ...   Jun 13 2017, 06:26
- - jcxz   Цитата(sigmaN @ May 9 2017, 23:00) ЗАЧЕМ?...   Jul 25 2017, 11:44
- - sigmaN   ммм, неплохо, неплохо! Затестим обязательно...   Jul 26 2017, 19:26
- - VladislavS   Пример из первого сообщения. STM8 Series 3.10.1 Ка...   Jul 31 2017, 05:53


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

 


RSS Текстовая версия Сейчас: 27th June 2025 - 14:12
Рейтинг@Mail.ru


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