Уважаемые посетители! Форум CQHAM.RU существует исключительно за счет показа рекламы. Мы будем благодарны, если Вы не будете блокировать рекламу на нашем Форуме. Просим внести cqham.ru в список исключений для Вашего блокировщика рекламы.
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

Тема: Тестирование компиляторов C для AVR

  1. #1
    Аватар для RA9YTJ
    Регистрация
    16.03.2007
    Адрес
    Рубцовск
    Сообщений
    986
    Позывной
    RA9YTJ

    Тестирование компиляторов C для AVR

    Наткнулся я на вот такую страницу: http://www.pvsm.ru/c-2/15224
    Из которой следует, что среда на которой я писал прошивки CVAVR не сильно обгоняет бейсик BASCOM. Такое может быть только при плохой оптимизации моего Си.
    Решил сравнить доступные компиляторы на примере выполнения целочисленного комплексного БПФ над 1024 элементами.
    Выбрал такие: CVAVR IAR MikroC. И просимулировал в PROTEUS
    Результат меня расстроил: ни тем я компилятором пользовался.
    Мой CVAVR сильно отстал, причем в разы.
    Лучший по размеру и скорости IAR
    cvavr 3832b-7880ms
    mikroc 3620b-5400ms
    IAR 3398b-1200ms
    Интересно было бы посмотреть результат в AVRSTUDIO.
    Вложения Вложения


  2. #2
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    14,913
    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    Решил сравнить доступные компиляторы на примере выполнения целочисленного комплексного БПФ над 1024 элементами
    А насколько показателен такой пример? Может просто взять какой-то кусок синтезаторного кода? Все-таки это не DSP-шный чип
    Вадим

  3. #3
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,098
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    Интересно было бы посмотреть результат в AVRSTUDIO.
    AVR Memory Usage
    ----------------
    Device: atmega1280
    Program: 3016 bytes (2.3% Full)
    (.text + .data + .bootloader)
    Data: 4096 bytes (50.0% Full)
    (.data + .bss + .noinit)
    Для проверки у меня нет процессора с памятью более 4KB, смотрите на PA0 процессора ATMEGA1280.

    С родным компилятором от ATMEL не интересно, вот результат компиляции gcc 4.7.2 с ключами -Os -flto (интегрированный в качестве компилятора в AVRSTUDIO).
    Вложения Вложения
    Последний раз редактировалось Genadi Zawidowski; 26.02.2013 в 02:08.
    ... Я там глубину сам промерял!

  4. #4
    Аватар для RA9YTJ
    Регистрация
    16.03.2007
    Адрес
    Рубцовск
    Сообщений
    986
    Позывной
    RA9YTJ
    Genadi Zawidowski, печально получается: 544мс. На уровне MikroC.
    Насколько знаю ключ Os оптимизирует по размеру, но проигрывает по скорости, O3 надо попробовать, он самый быстрый, проверял на АРМ.
    Кстати те же тесты проводил и для арм, вот даже на хабре выложил http://habrahabr.ru/sandbox/58129/
    vadim_d, весьма показателен, т.к. на полную использует оптимизатор и не зависит от внешних библиотек и функций, по результату видно, на сколько
    скорость зависит от компилятора, естественно чем проще действия, тем меньше будет различий.

  5. #5
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,098
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    544мс
    ранее было:

    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    mikroc 3620b-5400ms
    Опечатка?
    К стати, явно неподелу тут использование переноса таблицы синусов во FLASH - в моём случае ьыло именно так.
    Посмотрели бы, IAR вообще результат выдал - или "заоптимизировал " вусмерть? Программа не особо портабельно написана.
    ... Я там глубину сам промерял!

  6. #6
    Аватар для RA9YTJ
    Регистрация
    16.03.2007
    Адрес
    Рубцовск
    Сообщений
    986
    Позывной
    RA9YTJ
    Да, ошибся с замерами, щас перепроверил:
    cvavr 3832b-983ms
    mikroc 3620b-680ms
    IAR 3398b-156ms
    gcc -545ms
    gcc на втором месте но отрыв iar приличен, можно просмотреть асм листинг в архиве, вроде все по честному. Но не могу понять почему так быстро.
    Про флеш не понял.

  7. #7
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    14,913
    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    и не зависит от внешних библиотек и функций
    А я бы этот фактор вынес чуть не в основной: когда старый синтез RD3AY начал пробовать переделать под gcc, то просто поразился размеру библиотеки, она там была макросами написана и развернулась во что-то непотребное для 64-битных операций, которые требовались. Что-то одно (вроде умножение 32*32->64) переделал, полегчало, стало в память влезать. Еще во времена CP/M-80, когда компилятором Aztec CII пользовался, сделал свою функцию умножения с нормированием, где только промежуточный результат был 32-битный, во всяких управлениях инверторами удавалось обходиться при этом только 16-битными переменными
    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    Насколько знаю ключ Os оптимизирует по размеру, но проигрывает по скорости, O3 надо попробовать, он самый быстрый, проверял на АРМ
    Для Атмеги я большой разницы в ключах не заметил, код генерит почти одинаковый

    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    но отрыв iar приличен, можно просмотреть асм листинг в архиве, вроде все по честному
    Может ему так только на регулярных вещах типа БПФ удается разогнаться? Погляжу, аж интересно
    Вадим

  8. #8
    SK Аватар для ut1wpr
    Регистрация
    19.10.2003
    Адрес
    Украина, Львов
    Сообщений
    2,652
    Позывной
    ut1wpr
    Много лет назад я прислушался к совету уважаемого мной человека, который своими руками перепроверил немало компиляторов. С тех пор с ИАР-а не ухожу. Это позволило мне в кратчайшее время после ухода от Атмела, без особых напрягов "поднять целину" 8 и 32 битников от STM. Как бы ни ругали среду написания и дебаггинга - все-таки не надо переучиваться при смене платформы. В "тумбочке" лежит 430-й в ожидании очереди. И его ИАР не обошел вниманием.
    Господа коллеги! Вас это ни к чему не обязывает, пишите на чем угодно. Я лишь высказал свои соображения по поводу выбора компилятора. Мне нравится. Меня устраивает.
    73!
    ---
    Vic/ut1wpr

  9. #9
    Аватар для vadim_d
    Регистрация
    29.10.2006
    Адрес
    Санкт-Петербург
    Сообщений
    14,913
    Цитата Сообщение от ut1wpr Посмотреть сообщение
    Я лишь высказал свои соображения по поводу выбора компилятора
    Все правильно, то, к чему привык, всегда стоит первым в списке. Я пользовался IAR для 8051 когда он генерил чудовищно длинный и неочевидный код по сравнению с Keil, который быстро набирал популярность. Но этот код исправно работал, и я доделал проект на IAR, ну 27128 вместо 2764 пришлось заказчику воткнуть, а неиспользованные 2764 он мне подарил, до сих пор где-то валяются
    Вадим


  10. #10
    Аватар для Genadi Zawidowski
    Регистрация
    22.07.2004
    Адрес
    Санкт-Петербург
    Сообщений
    11,098
    Записей в дневнике
    20
    Позывной
    UA1ARN
    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    Про флеш не понял.
    Выборка данных из флеша в AVR сопровождается большими накладными расходами. Могу перекомпилить для ускорения.

    Цитата Сообщение от RA9YTJ Посмотреть сообщение
    Про флеш не понял.
    Выборка данных из флеша в AVR сопровождается большими накладными расходами. Могу перекомпилить для ускорения.
    Цитата Сообщение от vadim_d Посмотреть сообщение
    Погляжу, аж интересно
    Не посмотрели ещё?
    ... Я там глубину сам промерял!

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Тестирование крутых диодов для MFJ-259B и обычных ГэДэ
    от EU1ME в разделе Технический кабинет
    Ответов: 15
    Последнее сообщение: 15.11.2021, 16:16
  2. BASCOM AVR для радиолюбителей
    от DL2BDA в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 373
    Последнее сообщение: 10.11.2019, 01:01
  3. Си для AVR
    от bob1 в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 65
    Последнее сообщение: 13.09.2010, 17:55
  4. Паскаль для AVR
    от Serg_PRQ в разделе Конструкции на микроконтроллерах для радиолюбителей
    Ответов: 44
    Последнее сообщение: 05.01.2009, 11:15

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •