|
|
  |
High Speed USB Cortex M0-M3 |
|
|
|
Jun 14 2011, 13:39
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата Честно говоря, странные результаты. Даже древний ИАР 5 версии выдаёт 50 мипсов... вообще-то все дело в функциях типа strcpy  у меня простые inline на C написаны, без особых хитростей, воткнул библиотечную strcpy, strcmp че-то не хочет, я ему __builtin_strcmp , а он мне undefined reference to `strcmp' Цитата Microseconds for one run through Dhrystone: 9 Dhrystones per Second: 111111 VAX MIPS rating = 63.239 кароче тут мы тестим у кого лучше strcpy/strcmp реализованы  )
|
|
|
|
|
Jun 14 2011, 15:05
|

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

|
Цитата(brag @ Jun 14 2011, 18:53)  AHTOXA, можете выложить откомпиленные бинарки dhry21a.о,dhry21b.о или как там у вас? уж больно интересно стало... Вот держите, весь проект (с *.o):
dhrystone.7z ( 132.54 килобайт )
Кол-во скачиваний: 87Цитата(sonycman @ Jun 14 2011, 19:28)  Хех, секунды, сотые - вот тут мои микросекундные таймеры рулят в полную  Это потому у вас такое ровное число: Цитата Microseconds for one run through Dhrystone: 6.0 ? Или случайно совпало?
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jun 14 2011, 17:40
|

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

|
Тогда подправьте в тесте формат выдачи результата, чтоб было типа Код Microseconds for one run through Dhrystone: 6.002 , так будет видно микросекундное разрешение  Цитата(AHTOXA @ Jun 14 2011, 21:05)  Вот держите, весь проект (с *.o):
dhrystone.7z ( 132.54 килобайт )
Кол-во скачиваний: 87Упс, накладочка вышла. Так не заработает. Чтоб заработало, надо в makefile исправить USE_LTO = YESна USE_LTO = NO. Это я пытался улучшить результат, но не заработало.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jun 15 2011, 01:48
|

Любитель
    
Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695

|
Цитата(AHTOXA @ Jun 14 2011, 21:40)  Тогда подправьте в тесте формат выдачи результата, чтоб было типа Код Microseconds for one run through Dhrystone: 6.002 , так будет видно микросекундное разрешение  Это уже будет нано- и пико- секундное разрешение  А если серьёзно, то ничего так не будет видно, после вычисления на основе double переменных дробные значения получатся хоть из целых секунд. Чтобы увидеть разрешение таймера нужно распечатать полученное общее время теста, или разницу между Begin_time и End_time. В моём случае Begin_Time всегда равно нулю, поэтому достаточно только End_Time, в микросекундах: Код EndTime: 3035526 Microseconds for one run through Dhrystone: 6.0710520000 Dhrystones per Second: 164716.1 VAX MIPS rating = 93.748
|
|
|
|
|
Jun 16 2011, 13:16
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
проверил еще на IAR V6.20.3.22642 iccarm --thumb --cpu Cortex-M3 --aapcs std --aeabi -Ohs -r -e Код Microseconds for one run through Dhrystone: 21 Dhrystones per Second: 47619 VAX MIPS rating = 27.102 все функции мои, библиотечные не использовал. для сравнения тот же код на gcc arm-none-eabi-gcc -Werror -Wall -Wextra -pipe -mcpu=cortex-m3 -mthumb -O2 -fomit-frame-pointer -ffreestanding -fno-common -fwide-exec-charset=UTF-16LE -fshort-wchar -g Код Microseconds for one run through Dhrystone: 19 Dhrystones per Second: 52631 VAX MIPS rating = 29.955
|
|
|
|
|
Jun 16 2011, 14:12
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата Все - это которые? Strcpy и Strcmp? Ну а смысл? Ведь судя по результату - реализация очень слабая... смысл - gcc че-то в free-standing глючит с библиотечными. а реализация нормальная, просто компиллер, когда копирует строковые константы иногда может хитрый код генерить. в данном случаи Код strcpy (Ptr_Glob->variant.var_1.Str_Comp,"DHRYSTONE PROGRAM, SOME STRING"); он взрулил. в других случаях,где идет у меня работа с usb-дескрипторами он вообще хочет вызывать обычную strcpy, реализация которой ничем не лучше(и не хуже) моей. Цитата ЗЫ: а printf тоже ваша собственная? да, простой. не хотел запариватся обучать gcc-шный, как правильно работать под моей системой, с моими драйверами, куда собственно выводить итп, а если он еще кучи использует, так вообще пахать не будет, у меня нету куч,статика чисто. проще свой написать, всего каких-то там 120 строчек кода и инлайны memxxx и strxxx все вместе 70 строчек кода попробую еще какой-нибудь ogg или jpeg запихнуть, посмотрим как оно
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|