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

 
 
> Я просто не верю что 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
Ответов
sigmaN
сообщение May 12 2017, 10:44
Сообщение #2


I WANT TO BELIEVE
******

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



Странно, но космик в удобном виде размеры не выводит.
короче сравниваем .text я так понимаю
Cosmic 574 байта
Код
                               --------
                               Segments
                               --------

start 00008080 end 0000808c length    12 segment .const
start 0000808f end 000082cd length   574 segment .text
start 00004000 end 00004000 length     0 segment .eeprom
start 00000000 end 00000000 length     0 segment .bsct
start 00000000 end 00000096 length   150 segment .ubsct
start 00000096 end 00000096 length     0 segment .bit
start 00000096 end 00000096 length     0 segment .share
start 00000100 end 00000100 length     0 segment .data
start 00000100 end 00000100 length     0 segment .bss
start 00000000 end 0000036c length   876 segment .info.
start 00000000 end 000003ca length   970 segment .debug
start 00008000 end 00008080 length   128 segment .const
start 0000808c end 0000808f length     3 segment .init


IAR 635байт
Код
"P3":                                 0x27b
  .near_func.text  ro code  0x008080  0x14c  main.o [1]
  .near_func.text  ro code  0x0081cc   0xcc  long.o [4]
  .iar.init_table  const    0x008298    0x8  - Linker created -
  .near_func.text  ro code  0x0082a0   0x1e  init_small.o [4]
  .near_func.text  ro code  0x0082be   0x17  init.o [4]
  .near_func.text  ro code  0x0082d5   0x13  cstartup.o [4]
  .near_func.text  ro code  0x0082e8    0x5  cexit.o [4]
  .near_func.text  ro code  0x0082ed    0x3  interrupt.o [4]
  .near_func.text  ro code  0x0082f0    0x3  low_level_init.o [4]
  .near_func.text  ro code  0x0082f3    0x3  exit.o [4]
  .near_func.text  ro code  0x0082f6    0x3  unhandled_exception.o [4]
  .near_func.text  ro code  0x0082f9    0x2  xxexit.o [3]
                          - 0x0082fb  0x27b


SDCC что-то не сдюжил....
D:\Poligon\FIR_TEST\sdcc>sdcc -lstm8 -mstm8 --out-fmt-elf main.c
main.c:126: error 9: FATAL Compiler Internal Error in file '/home/sdcc-builder/build/sdcc-build/orig/sdcc/src/SDCCopt.c' line number '805' : 0
Contact Author with source code
Странно, строка 126 в тестовом файле это for (i=0;i<N;i++)

в общем тут в этом посте есть исходник теста, каждый может по развлекаться и сравнить лично https://electronix.ru/forum/index.php?s=&am...t&p=1498198

Вот даже готовые проекты для IAR, STVD и AVR Studio 7 Можно с опциями оптимизации поиграться на досуге
https://drive.google.com/file/d/0B7dMRxCEo4...iew?usp=sharing


--------------------
The truth is out there...
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
- - AHTOXA   Посмотрите, что из вашего кода делает sdcc, и успо...   May 10 2017, 06:51
|- - Эдди   Цитата(AHTOXA @ May 10 2017, 09:51) Посмо...   May 11 2017, 11:52
- - 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   Мой товарищ сделал задержку 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 - 10:44
Рейтинг@Mail.ru


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