|
|
  |
High Speed USB Cortex M0-M3 |
|
|
|
Jun 13 2011, 13:37
|

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

|
Цитата(AHTOXA @ Jun 13 2011, 17:13)  А что, со скоростью у STM32F1x -- совсем швах? Может, прогоните на них тот тест, и выложите результаты? Интересно будет сравнить...  Ну, если сравнить по загрузке при декодировании MP3 320 kbps: LPC17xx - 30% SAM3U - 50% STM32F1 - 100% и даже тормозит  Если откопаю у себя отладку с F1, может, займусь. Цитата(brag @ Jun 13 2011, 17:32)  щас прогоню попробую, stm32f105rc 72mhz Ждём
|
|
|
|
|
Jun 13 2011, 15:56
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
прогнал. все компилилось так: 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 Код Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 1000000 runs through Dhrystone Execution ends
Final values of the variables used in the benchmark:
Int_Glob: 5 should be: 5 Bool_Glob: 1 should be: 1 Ch_1_Glob: A should be: A Ch_2_Glob: B should be: B Arr_1_Glob[8]: 7 should be: 7 Arr_2_Glob[8][7]: 1000010 should be: Number_Of_Runs + 10 Ptr_Glob-> Ptr_Comp: 536871440 should be: (implementation-dependent) Discr: 0 should be: 0 Enum_Comp: 2 should be: 2 Int_Comp: 17 should be: 17 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Next_Ptr_Glob-> Ptr_Comp: 536871440 should be: (implementation-dependent), same as above Discr: 0 should be: 0 Enum_Comp: 1 should be: 1 Int_Comp: 18 should be: 18 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Int_1_Loc: 5 should be: 5 Int_2_Loc: 13 should be: 13 Int_3_Loc: 7 should be: 7 Enum_Loc: 1 should be: 1 Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING should be: DHRYSTONE PROGRAM, 1'ST STRING Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING should be: DHRYSTONE PROGRAM, 2'ND STRING
Register option selected? YES Microseconds for one run through Dhrystone: 19 Dhrystones per Second: 52631 VAX MIPS rating = 29.95
|
|
|
|
|
Jun 13 2011, 16:20
|

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

|
Цитата(brag @ Jun 13 2011, 21:56)  VAX MIPS rating = 29.95 Цитата(sonycman @ Jun 12 2011, 04:21)  134.5 Dhrystone VAX MIPS Это один и тот же параметр? Что-то как-то совсем ужасно... Где обещанные "0,95 DMIPS/МГц"?  Видимо ещё gcc добавил тормозов... Я потому и хотел чтоб sonycman провёл тест в тех же условиях, что и LPC. Так хоть уберётся влияние компилятора и ключей оптимизации.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jun 13 2011, 16:29
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
прогнал второй код, скачал с сайта арма http://infocenter.arm.com/help/index.jsp?t...qs/ka13553.htmlчастота 72мгц. Код Dhrystone Benchmark, Version 2.1 (Language: C)
Program compiled without 'register' attribute
Execution starts, 1000000 runs through Dhrystone Execution ends
Final values of the variables used in the benchmark:
Int_Glob: 5 should be: 5 Bool_Glob: 1 should be: 1 Ch_1_Glob: A should be: A Ch_2_Glob: B should be: B Arr_1_Glob[8]: 7 should be: 7 Arr_2_Glob[8][7]: 1000010 should be: Number_Of_Runs + 10 Ptr_Glob-> Ptr_Comp: 536871440 should be: (implementation-dependent) Discr: 0 should be: 0 Enum_Comp: 2 should be: 2 Int_Comp: 17 should be: 17 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Next_Ptr_Glob-> Ptr_Comp: 536871440 should be: (implementation-dependent), same as above Discr: 0 should be: 0 Enum_Comp: 1 should be: 1 Int_Comp: 18 should be: 18 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Int_1_Loc: 5 should be: 5 Int_2_Loc: 13 should be: 13 Int_3_Loc: 7 should be: 7 Enum_Loc: 1 should be: 1 Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING should be: DHRYSTONE PROGRAM, 1'ST STRING Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING should be: DHRYSTONE PROGRAM, 2'ND STRING
Microseconds for one run through Dhrystone: 18 Dhrystones per Second: 55555 он же, только с ключем -O0 Код Microseconds for one run through Dhrystone: 42 Dhrystones per Second: 23809
|
|
|
|
|
Jun 13 2011, 18:13
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
а этот код он выполняет 100е6 раз за 18 сек. и того эффективная тактовая частота выходит 100e6/18*(6+1+3)=55.6мгц, чего и следовало ожидать от обычного кеширования... Код 800487e: bf00 nop 8004880: bf00 nop 8004882: bf00 nop 8004884: bf00 nop 8004886: bf00 nop 8004888: bf00 nop 800488a: 3b01 subs r3, #1 800488c: d1f7 bne.n 800487e а так, уже 16сек, тобышь 62.5мгц. из за того, что прыгаем какраз на тот адресс,с которого начитается чтение с 128битной флешки... Код 8004880: bf00 nop 8004882: bf00 nop 8004884: bf00 nop 8004886: bf00 nop 8004888: bf00 nop 800488a: bf00 nop 800488c: 3b01 subs r3, #1 800488e: d1f7 bne.n 8004880 ну и 22 nop'а, 1 subs и bne(3 такта) - 66.7мгц, максимум,что можно выдавить,если все лежит в правильных адрессах. апд. из SRAM 8 "mov r0,r0;" 1 subs и 1 bne.n выполняется четко за 25сек (100e6/25*(8+6+1+3)=72e6), не зависимо от адресса,где это все лежит. Вобщем флешка-тормоз, проц нормал. Протестю на lpc17 на днях
|
|
|
|
|
Jun 13 2011, 20:29
|

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

|
Вот, откопал свою старенькую покуроченную отладку на базе STM32F103RBT6 ещё старой ревизии Z: 72 МГц, 2WS такта, IAR 5.11, High optimization, Speed: Microseconds for one run through Dhrystone: 11.1 Dhrystones per Second: 89702.8 VAX MIPS rating = 51.055 Слабенько, что уж и говорить. 1.25 DMIPS/MHz тут и не пахнет. ЗЫ: но это фигня, скомпилировал проект в последнем ИАРе 6.20.3 с такими же настройками, и вот тут-то уже запахло: Код Dhrystone Benchmark, Version 2.1 (Language: C)
Execution starts, 500000 runs through Dhrystone Execution ends
Final values of the variables used in the benchmark:
Int_Glob: 5 should be: 5 Bool_Glob: 1 should be: 1 Ch_1_Glob: A should be: A Ch_2_Glob: B should be: B Arr_1_Glob[8]: 7 should be: 7 Arr_2_Glob[8][7]: 500010 should be: Number_Of_Runs + 10 Ptr_Glob-> Ptr_Comp: 2000283C should be: (implementation-dependent) Discr: 0 should be: 0 Enum_Comp: 2 should be: 2 Int_Comp: 17 should be: 17 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Next_Ptr_Glob-> Ptr_Comp: 2000283C should be: (implementation-dependent), same as above Discr: 0 should be: 0 Enum_Comp: 1 should be: 1 Int_Comp: 18 should be: 18 Str_Comp: DHRYSTONE PROGRAM, SOME STRING should be: DHRYSTONE PROGRAM, SOME STRING Int_1_Loc: 5 should be: 5 Int_2_Loc: 13 should be: 13 Int_3_Loc: 7 should be: 7 Enum_Loc: 1 should be: 1 Str_1_Loc: DHRYSTONE PROGRAM, 1'ST STRING should be: DHRYSTONE PROGRAM, 1'ST STRING Str_2_Loc: DHRYSTONE PROGRAM, 2'ND STRING should be: DHRYSTONE PROGRAM, 2'ND STRING
Register option selected? YES Microseconds for one run through Dhrystone: 6.0 Dhrystones per Second: 166997.3 VAX MIPS rating = 95.047 95.047! Аж быстрее Сэма под RVCT вышло!  Что-то уж очень эффективная оптимизация под драйстоун у ИАР...
|
|
|
|
|
Jun 13 2011, 22:41
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Добавим энтропии в тему?
STM32F103VET6 Z, 72MHz, Flash, 2WS, RVCT 4.1 -O3 -Otime: 73.0 Dhrystone VAX MIPS Memcpy 94.7 МБайт/с
То есть чуть быстрее SAM3, но при 2WS.
Ерунда, конечно, выходит из всех этих тестов: нужно смотреть на одном и том же коде и тулчейне. Да и тест сделать позаковыристее - картинку, например, в JPEG утоптать или что-нибудь еще в этом роде.
|
|
|
|
|
Jun 14 2011, 10:35
|

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

|
Цитата(sonycman @ Jun 14 2011, 02:29)  95.047! Аж быстрее Сэма под RVCT вышло!  Ну вот, а то "тормоз", "тормоз"  Вот что вышло у меня (arm-kgp-eabi-gcc, -O3): Код Microseconds for one run through Dhrystone: 8.0 Dhrystones per Second: 125000.0 VAX MIPS rating = 71.144 --- Вот так точнее (было округление до секунд, сейчас до сотых): Код Microseconds for one run through Dhrystone: 8.8 Dhrystones per Second: 114025.1 VAX MIPS rating = 64.898 Нормуль, я доволен
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jun 14 2011, 12:53
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Скомпилил все ARM C/C++ Compiler, 4.1 [Build 713] [Standard] armcc --thumb -O3 --cpu=Cortex-M3 --bss_threshold=0 --c99 --gnu --wchar16 --diag_error=Warning -g результ еще хуже: Код Microseconds for one run through Dhrystone: 30 Dhrystones per Second: 33333 VAX MIPS rating = 18.971 arm-kgp-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 где вы столько понабирали, или это connectivity line такая тормозная? AHTOXA, можете выложить откомпиленные бинарки dhry21a.о,dhry21b.о или как там у вас? уж больно интересно стало...
|
|
|
|
|
Jun 14 2011, 13:21
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
спасибо,поставил. Код Microseconds for one run through Dhrystone: 20 Dhrystones per Second: 50000 VAX MIPS rating = 28.457 чуть не дотянуло до gcc. хоть и код у rvct вроде красивее местами выглядит (gcc в упор не юзает ldm, загружает значения через ld, вместо movw/movt часто), но на gcc всеравно запахало чуть быстрее.
|
|
|
|
|
Jun 14 2011, 13:28
|

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

|
Цитата(AHTOXA @ Jun 14 2011, 14:35)  Ну вот, а то "тормоз", "тормоз"  Ну, думаю под ИАРом SAM3U покажет больше 100 мипсов, там в частоте только разница почти 50%. Последний результат в 95 мипсов сильно удивил, честное слово  Может, какая халтура там в коде? Цитата Вот так точнее (было округление до секунд, сейчас до сотых): Хех, секунды, сотые - вот тут мои микросекундные таймеры рулят в полную  Цитата(brag @ Jun 14 2011, 17:21)  VAX MIPS rating = 28.457[/code] Честно говоря, странные результаты. Даже древний ИАР 5 версии выдаёт 50 мипсов...
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|