|
|
 |
Ответов
(1 - 99)
|
Apr 7 2011, 20:19
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 8-12-10
Пользователь №: 61 494

|
Цитата(aaarrr @ Apr 7 2011, 23:01)  А что нужно - device, host или OTG?
Вообще же есть у ST (STM32F2xx) и Atmel (SAM3U). достаточно device... надо будет посмотреть в сторону STM32.... Atmel уж очень ненадежный  кстати.... никто не пробовал Kinetis? Цитата(aaarrr @ Apr 7 2011, 23:01)  А что нужно - device, host или OTG?
Вообще же есть у ST (STM32F2xx) и Atmel (SAM3U). STM32F2xx -> Для реализации скорости в 480 Мбит/с необходим внешний высокоскоростной трансивер, подключаемый через ULPI.
Сообщение отредактировал pofikus - Apr 7 2011, 20:19
|
|
|
|
|
Apr 7 2011, 20:58
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 8-12-10
Пользователь №: 61 494

|
Цитата(aaarrr @ Apr 7 2011, 23:38)  Ну, это, пожалуй, не проблема - они доступны. Корпус только лишний.
А атмел испек довольно хороший процессор, пока что достойных альтернатив у конкурентов не наблюдается. да Atmel делает хорошие процессоры только потом резко прекращает их выпускать и начинает производить новые и еще лучшие
|
|
|
|
|
Apr 7 2011, 22:43
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 8-12-10
Пользователь №: 61 494

|
Цитата(*rust* @ Apr 7 2011, 23:10)  Atmel выпускает серию SAM3U и в них реально High Speed USB. в библиотеке к ядру есть много примеров реализации USB, в том числе и MSD. бегло просмотрел SAM3U.... вроде как раз то что нужно.... а так не хотелось возвращаться назад к Atmelу.... Спасибо!
|
|
|
|
|
Apr 8 2011, 05:22
|
Частый гость
 
Группа: Свой
Сообщений: 152
Регистрация: 21-12-05
Из: Москва
Пользователь №: 12 476

|
Цитата(aaarrr @ Apr 8 2011, 00:38)  Ну, это, пожалуй, не проблема - они доступны. Корпус только лишний.
А атмел испек довольно хороший процессор, пока что достойных альтернатив у конкурентов не наблюдается. И что же такое "испек" ATmel чего нет у NXP, TI, ST? Номенклатуру из 9 чипов? А чипы доступны? Срок поставки?
|
|
|
|
|
Apr 8 2011, 05:57
|
Частый гость
 
Группа: Свой
Сообщений: 80
Регистрация: 23-08-05
Пользователь №: 7 902

|
Цитата(aaarrr @ Apr 8 2011, 00:38)  Ну, это, пожалуй, не проблема - они доступны. Корпус только лишний. Можно пример доступного чипа?
|
|
|
|
|
Apr 8 2011, 09:03
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(topkin @ Apr 8 2011, 09:22)  И что же такое "испек" ATmel чего нет у NXP, TI, ST? Номенклатуру из 9 чипов? У NXP, TI, ST есть контроллер на базе Cortex-M с HS USB? Цитата(topkin @ Apr 8 2011, 09:22)  А чипы доступны? Срок поставки? Доступны. Сроками можете поинтересоваться у своего поставщика, я ими не торгую. Цитата(Shuuura @ Apr 8 2011, 09:57)  Можно пример доступного чипа? TI, SMSC, NXP. Возможно, вы их не найдете в ближайшем ларьке, но заказать образцы и потом партию проблемы не составляет.
|
|
|
|
|
Apr 8 2011, 09:16
|

Профессионал
    
Группа: Свой
Сообщений: 1 121
Регистрация: 14-01-05
Из: Москва
Пользователь №: 1 952

|
Цитата(pofikus @ Apr 8 2011, 00:19)  достаточно device... надо будет посмотреть в сторону STM32.... Atmel уж очень ненадежный  кстати.... никто не пробовал Kinetis? LPC1343 имеет на борту USB 2.0 full-speed device controller with on-chip PHY. 90 рублей в розницу в Собянинске. Серийных кинетисов ещё нет в природе. Атмел - только выбросить.
|
|
|
|
|
Apr 8 2011, 10:14
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(rezident @ Apr 8 2011, 14:07)  По-моему Cortex-ы до High-speed USB еще не доросли. Реальные устройства HS USB-device на CY7C68013A делают. Простите, а реальному устройству обязательно надо использовать всю полосу шины? Кому-то скорость MSD, например, в 5Мбайт/с принесет огромное облегчение после 1Мбайт/с на full speed.
|
|
|
|
|
Apr 8 2011, 10:27
|
Гуру
     
Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882

|
Цитата(aaarrr @ Apr 8 2011, 16:14)  Простите, а реальному устройству обязательно надо использовать всю полосу шины? Дык от задачи конечно зависит.  Но тут пока вроде возможности, а не потребности обсуждаются. Или нет?
|
|
|
|
|
Apr 8 2011, 14:00
|
Участник

Группа: Участник
Сообщений: 22
Регистрация: 8-12-10
Пользователь №: 61 494

|
Цитата(jasper @ Apr 8 2011, 13:58)  Из реально доступных и работающих есть еще AT32UC3A.
С Kinetis пока глухо. Больше надежд, что Texas Instruments к концу года свою серию на Cortex-M4 запустит. ну вроде Digikey уже продает http://search.digikey.com/scripts/DkSearch...40X256VLQ100-ND
Сообщение отредактировал pofikus - Apr 8 2011, 14:02
|
|
|
|
|
Apr 11 2011, 07:26
|
Частый гость
 
Группа: Участник
Сообщений: 75
Регистрация: 25-07-04
Из: Rostov-on-Don
Пользователь №: 382

|
Цитата(Dir @ Apr 8 2011, 20:40)  Этот ULPI-PHY вроде бы нужен только для OTG dual-role HS. В остальных случаях (только Device или только Host) и внутренним HS-PHY обходится. По крайней мере я такой вывод сделал из рис. 79, 80, 81 в даташите на 205 и 207 чипы. Да мучает тот же самый вопрос, мне нужно только HS device. Хотел впаять в STM32VLDISCOVERY STM32F205RGT6, но, насколько я понимаю, нет никаких примеров для 205й серии чтобы проверить как работает HS device. Кто-нибудь знает точно как на самом деле?
|
|
|
|
|
Jun 2 2011, 03:10
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
тоже нужен контроллер с HS. раньше юзал AT32UC3A, но забросил, тк был оттормоз атмела на год по поставке... пересел на cortex-m3, пока планирую на нем вистеь, много кода уже написано. LPC18 вкусняшка...мож какраз раздуплюсь до того времени, как они появятся. STM32F2 - нету внутреннего phy, леньки тулить внешний,так что отбой. SAM3U - мало рамы, всего 96мгц, неа,не идет.. остальное особо не доступно... Цитата Этот ULPI-PHY вроде бы нужен только для OTG dual-role HS. В остальных случаях (только Device или только Host) и внутренним HS-PHY обходится. По крайней мере я такой вывод сделал из рис. 79, 80, 81 в даташите на 205 и 207 чипы. смотрите страницу 151,152 (USB OTG HS peripheral-only connection in FS mode. USB OTG HS host-only connection in FS mode. OTG HS connection dual-role with external PHY) стр 31 Цитата When using the USB OTG HS in HS mode, an external PHY device connected to the ULPI is required.
|
|
|
|
|
Jun 3 2011, 15:39
|
Участник

Группа: Участник
Сообщений: 54
Регистрация: 5-05-08
Пользователь №: 37 279

|
Цитата(sonycman @ Jun 3 2011, 17:18)  Зато теперь для этого надо доп. корпус типа QFN или BGA ставить, очень приятно, блин  Может, есть где такой трансивер в QFP корпусе? А почему боитесь QFN корпуса? Если страшно паять, так это совсем не проблема. Раньше тоже боялся, пока не попробовал. Нужно перед установкой залудить выводы, чтоб с припоем стали выпуклыми. И потом, полив флюсом посадочное место, просто ровненько приложить и термофеном (воздух почти на минимум) плавно прогреть на пониженной температуре (можно просто немного отдалив фен), потом добавить (приблизить фен) , припой расплавится и силами поверхностного натяжения корпус сам встанет как надо. 2 минуты и готово. А некоторые в QFN футпринте выводы удлиняют, чтобы даже паяльником можно было прогревать. Но фен рулит ))
Сообщение отредактировал ZyBEX - Jun 3 2011, 15:41
|
|
|
|
|
Jun 3 2011, 17:47
|

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

|
Цитата(ZyBEX @ Jun 3 2011, 18:39)  А некоторые в QFN футпринте выводы удлиняют, чтобы даже паяльником можно было прогревать. Но фен рулит )) Так и делаю, но всё равно считаю выводные корпуса ближе к телу  На самом деле, QFN от QFP не далеко ушли в плане экономии места, контроллеры вон ведь выпускают до сих пор выводные, зато всякую мелочёвку сейчас любят лепить в BGA. Интересно, а атмеловские SAM3U4 насколько близко по производительности подошли к LPC17xx? Частоты практически одинаковые - 96 и 100 МГц. Может, не стоит париться с доп. трансивером и взять SAM, у него то он встроенный? Вот только памяти масловато, 48к всего
|
|
|
|
|
Jun 3 2011, 18:29
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(sonycman @ Jun 3 2011, 21:47)  Интересно, а атмеловские SAM3U4 насколько близко по производительности подошли к LPC17xx? Частоты практически одинаковые - 96 и 100 МГц. Может, не стоит париться с доп. трансивером и взять SAM, у него то он встроенный? Хотите сравним. Мне они показались вполне себе шустрыми. Цитата(sonycman @ Jun 3 2011, 21:47)  Вот только памяти масловато, 48к всего  До 52-х, если не нужен NAND. Но да, очень мало, а через внешнюю шину медленно
|
|
|
|
|
Jun 4 2011, 14:54
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(sonycman @ Jun 4 2011, 17:46)  Честно говоря, никогда не имел дела с бенчмарками на микроконтроллерах, но при желании могу сдуть пыль с моих железок и скомпилировать в ИАРе какой нибудь драйстоун по Вашей наводке, и затем прогнать его на LPC1768. Интересны две вещи: - "попугаи" из dhrystone 2.1 - скорость копирования через memcpy (скажем, блоками по 8кБайт) В последнем случае дополнительно интересен результат при копировании между двумя разными банками SRAM. Цитата(sonycman @ Jun 4 2011, 17:46)  Странно, что даташит на SAM3U скромно умалчивает параметр быстродействия DMIPS, который обычно приводится на первой же страничке документа... Насколько я помню, он вполне соответствовал заявленным ARM 1.25DMIPS/MHz для Cortex-M3.
|
|
|
|
|
Jun 5 2011, 08:39
|

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

|
Цитата(kan35 @ Jun 4 2011, 19:28)  Потому собственно и не делают в них USB HS. А кто и делает просто - маркетинговый ход. Да ладно, при частотах ядра в 100 - 150 МГц видеть, к примеру, что передача данных с устройства через USB идёт с черепашьей скоростью в 900 килобайт\сек, тогда как легко можно было бы получить до 10 мегабайт\сек - это маркетинговый ход? Может, на контроллеры вообще тогда не стоит ставить что-то более быстрое, чем UART? Да, с документацией у ST всё так же неважно - после беглого просмотра мануала на USB OTG модуль в голове осталась только каша, настолько всё запутано и свалено в одну кучу. А отсутствие физического уровня HS ещё больше запутывает  Другое дело у Atmel и SAM3U - читать доку на их USB довольно приятно, всё разложено по полочкам.
|
|
|
|
|
Jun 5 2011, 12:16
|
Знающий
   
Группа: Участник
Сообщений: 537
Регистрация: 22-02-06
Пользователь №: 14 594

|
Цитата(sonycman @ Jun 5 2011, 12:39)  Да ладно, при частотах ядра в 100 - 150 МГц видеть, к примеру, что передача данных с устройства через USB идёт с черепашьей скоростью в 900 килобайт\сек, тогда как легко можно было бы получить до 10 мегабайт\сек - это маркетинговый ход? Может, на контроллеры вообще тогда не стоит ставить что-то более быстрое, чем UART?  Не могу не согласиться, но лишь отчасти. Сами контроллеры по своей периферии не требуют широких каналов. Графических контроллеров нет, видео матрицу какую нибудь тоже не подключишь. Ну а 10мбайт/с - легко ли? даже с SD карточки не выжмешь. А ведь автору темы вообще в Cortex-M0 хочется HS - он наверное совсем забыл, что в нем нет DMA как класс, а без него это просто смешно. В общем USB2HS USB3 это ничто иное как погоня за скоростью передачи мультимедиа сигнала. M3 и тем более M0 это не мультимедиа контроллеры как их ни крути.
|
|
|
|
|
Jun 5 2011, 12:36
|

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

|
Цитата(aaarrr @ Jun 5 2011, 13:52)  Если бы. На HSMCI почитайте - вот там каша. Кстати, можно вопрос не по теме, раз уж Вы работали с SAM3U - я правильно понял, что модуль I2S имеет ущербный и примитивный до нельзя делитель для формирования клока? То есть никаким PLL или хотя бы фракционным делителем не пахнет? Обидно, остаётся только либо подбор кварца (но это не выход, а костыль какой-то), либо ввод частоты с внешнего генератора  Цитата(kan35 @ Jun 5 2011, 16:16)  Ну а 10мбайт/с - легко ли? даже с SD карточки не выжмешь. Почему не выжмешь, по четырёхбитному-то интерфейсу? Вы пробовали?
|
|
|
|
|
Jun 5 2011, 15:10
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(kan35 @ Jun 5 2011, 16:16)  Ну а 10мбайт/с - легко ли? даже с SD карточки не выжмешь. С карточки, с NAND, с устройств на внешней шине - легко. Цитата(kan35 @ Jun 5 2011, 16:16)  А ведь автору темы вообще в Cortex-M0 хочется HS - он наверное совсем забыл, что в нем нет DMA как класс, а без него это просто смешно. Так-таки и нет? Цитата(sonycman @ Jun 5 2011, 16:36)  Кстати, можно вопрос не по теме, раз уж Вы работали с SAM3U - я правильно понял, что модуль I2S имеет ущербный и примитивный до нельзя делитель для формирования клока? То есть никаким PLL или хотя бы фракционным делителем не пахнет? Обидно, остаётся только либо подбор кварца (но это не выход, а костыль какой-то), либо ввод частоты с внешнего генератора  В плане тактирования у SAM3U есть огромная засада: входная частота PLLA ограничена снизу на уровне 6MHz, в то время как UPLL требует на вроде 12MHz ровно. То есть при использовании USB кварц должен иметь частоту 12MHz, а входной делитель для PLLA всегда будет равен 1, что весьма сужает сетку частот на выходе. Для I2S кодеков остается ставить внешний генератор и запускать процессорный I2S в режиме slave. Цитата(sonycman @ Jun 5 2011, 17:37)  Прямое чтение с SD в память должно быть ещё быстрее. А вот тут облом как раз: памяти этой настолько мало, что приличной скорости просто не развить. Разве что с внешней быстрой статикой.
|
|
|
|
|
Jun 5 2011, 17:52
|
Знающий
   
Группа: Свой
Сообщений: 583
Регистрация: 7-06-06
Из: Таганрог
Пользователь №: 17 840

|
Цитата(aaarrr @ Jun 5 2011, 19:10)  Для I2S кодеков остается ставить внешний генератор и запускать процессорный I2S в режиме slave. Ну на SAM7S я формировал частоту и стробы с помощью таймеров (с выхода PCK=18,432 MHz на вход TCLK) и для SSC и для внешнего кодека Texas. В SAM3U вроде как тоже можно использовать эту фичу: PA28 TK PWMH0; PA29 RK PWMH1; PA30 TF TIOA2; PA31 RF TIOB2. Ножка одна, а служит и выходом для внешнего кодека и входом для SSC. Ну само собой выходом таймера.
|
|
|
|
|
Jun 6 2011, 09:39
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(sonycman @ Jun 6 2011, 12:48)  В смысле, насколько медленно через внешнюю шину? Думаю вот, стоит ли прикручивать внешнюю память... Ну, чисто теоретически, если взять 10ns память, то можно и 96MHz на внешней шине получить. На деле, думаю, более реальны такие варианты: - 48MHz Fast SRAM - 16MHz Low Power SRAM/PSRAM (как на ките) Первый вариант в 4 раза медленнее внутренней памяти, второй - аж в 12.
|
|
|
|
|
Jun 6 2011, 14:45
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(MrAlex @ Jun 6 2011, 17:32)  Для HS резервируется не больше 25% полосы 480 Мб. Для HS резервируется не больше 25% полосы HS? Нет в USB 2.0 подобных ограничений. Обещанные попугаи (SAM3U4C, 96MHz, Flash, 3WS, RVCT 4.1 -O3 -Otime): Memcpy SRAM0->SRAM0: 126.3 МБайт/с Memcpy SRAM1->SRAM0: 126.0 МБайт/с Memcpy NFC->SRAM0: 116.2 МБайт/с 93.4 Dhrystone VAX MIPS 1.25DMIPS/MHz было при 0WS.
|
|
|
|
|
Jun 6 2011, 20:48
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(sonycman @ Jun 6 2011, 23:08)  Как я понял, всю оперативку (оба банка) можно использовать в виде одного куска в 48 килобайт (или даже 52)? Можно, но только 48. Вариант 32 + 20 тоже должен работать. Цитата(sonycman @ Jun 6 2011, 23:08)  То есть не как в LPC17xx, два куска по 32 кб? А там они совсем разнесены?
|
|
|
|
|
Jun 6 2011, 21:23
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата Не подскажете доступный кортекс от NXP с USB HS? LPC18 скоро будут  ) по поводу USB hs. - реально, что на CY7C68013A+FPGA мастер,синхронно, что с AT32UC3A0512+dma у меня больше 30мб/с в булке выжать не удалось, и то скорость зависить от загрузки системы, особенно от IO активности (скажем записи принятых по усб данных на диск)..и то не стабильно, если кеши чистые,то еще тормознее (порядка 16MB/s). Так что смысл HS USB есть большой, особенно,если реализован MSC или хоть какой-то поточный обмен данными. разница есть, что ждать 5 минут, а что 20 сек...
|
|
|
|
|
Jun 9 2011, 09:26
|

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

|
Цитата(aaarrr @ Jun 6 2011, 18:45)  93.4 Dhrystone VAX MIPS Скачал какой-то древний сишный исходник "DHRYSTONE" Benchmark Program v2.1, датированный 1988 годом. Это оно?  Насколько я понял, там набор различных функций по работе со стрингами\массивами. Потребуется переделать под ARM функции измерения времени и вывода результата, остальное вроде должно скомпилироваться. Хотя хз, как компилер воспримет некоторые директивы, надо смотреть...
|
|
|
|
|
Jun 9 2011, 09:33
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(sonycman @ Jun 9 2011, 13:26)  Скачал какой-то древний сишный исходник "DHRYSTONE" Benchmark Program v2.1, датированный 1988 годом. Это оно?  Оно. Цитата(sonycman @ Jun 9 2011, 13:26)  Потребуется переделать под ARM функции измерения времени и вывода результата, остальное вроде должно скомпилироваться. Хотя хз, как компилер воспримет некоторые директивы, надо смотреть... Да, clock + printf. И ручной ввод количества циклов упразднить, заменив, скажем, на 100000. Остальное соберется без проблем.
|
|
|
|
|
Jun 11 2011, 22:21
|

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

|
Цитата(aaarrr @ Jun 6 2011, 18:45)  Обещанные попугаи (SAM3U4C, 96MHz, Flash, 3WS, RVCT 4.1 -O3 -Otime):
Memcpy SRAM0->SRAM0: 126.3 МБайт/с Memcpy SRAM1->SRAM0: 126.0 МБайт/с Memcpy NFC->SRAM0: 116.2 МБайт/с
93.4 Dhrystone VAX MIPS
1.25DMIPS/MHz было при 0WS. У меня получилось вот что: LPC1768, 100 МГц, Flash accesses use 5 CPU clocks, IAR 6.20.3, High optimization, Speed Memcpy SRAM0->SRAM0: 116.8 МБайт/с (цикличное копирование 8 КБ блока) Memcpy SRAM1->SRAM0: 116.8 МБайт/с 134.5 Dhrystone VAX MIPS Толку от двух банков при копировании никакого нет, но Атмелу респект за возможность юзать память одним куском. ЗЫ: интересно было бы прогнать драйстоун на сэме плюс ИАР. Очень большая разница между оптимизацией Balanced (83 VAX MIPS) и Speed (134).
|
|
|
|
|
Jun 12 2011, 13:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата Внутреннюю структуру ускорителей почему-то никто не афиширует. ну да, вся проблемма в переходах и ld/st, сложно предсказать, с какого адресса тянуть следующие 128 бит инструкций.. u nxp 8 128битных буфферов, в принципе, можно и самому додуплить как сделать так, чтобы проц не курил, но мы камни не строим,потому об этом не задумываемся  пс. что в nxp,что у ст так и написано "акселератор/кеш" Цитата To release the processor full 150 DMIPS performance at this frequency, the accelerator implements an instruction prefetch queue and branch cache which increases program execution speed from the 128-bit Flash memory.
|
|
|
|
|
Jun 12 2011, 14:19
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(brag @ Jun 12 2011, 17:50)  u nxp 8 128битных буфферов, в принципе, можно и самому додуплить как сделать так, чтобы проц не курил, но мы камни не строим,потому об этом не задумываемся  У Атмела два и, судя по всему, без каких-либо "интеллектуальных" наворотов. Цитата(brag @ Jun 12 2011, 17:50)  пс. что в nxp,что у ст так и написано "акселератор/кеш" Ну, это же не кэш в обычном представлении, а нечто сугубо специфическое.
|
|
|
|
|
Jun 12 2011, 18:41
|

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

|
Цитата(brag @ Jun 12 2011, 17:26)  там явно написано, что флеш как всегда работает с 3wait-states. другое дело он 128битный и есть кеш, так у lpc17 он тоже 128битный и тоже есть кеш. но у stm32f2 флешка пахает с 3ws 2.7...3.6в 120мгц, а у lpc17 4ws 2.4...3.6в 100-120мгц. но тк у нас много инструкций 16битных, то и этого в полне достаточно, чтобы проц не курил Ну и, смысл всего вышесказанного? Вы можете сказать, как быстро будет работать STM32F2 по сравнению с LPC, хотя бы на одной и той же частоте??
|
|
|
|
|
Jun 13 2011, 10:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 047
Регистрация: 2-12-06
Из: Kyiv, Ukraine
Пользователь №: 23 046

|
Цитата Ну и, смысл всего вышесказанного? Вы можете сказать, как быстро будет работать STM32F2 по сравнению с LPC, хотя бы на одной и той же частоте?? с этого Цитата у stm32f2 флешка пахает с 3ws 2.7...3.6в 120мгц, а у lpc17 4ws 2.4...3.6в 100-120мгц я могу сказать, что если код из одних 32битных инструкций под ряд то на СТ будет работать быстрее,по идее(по документу) А еще могу сказать, что в целом результат будет примерно одинаков. А если смысла нету, то пост можно удалить
|
|
|
|
|
Jun 13 2011, 12:49
|

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

|
Цитата(brag @ Jun 13 2011, 14:50)  с этого я могу сказать, что если код из одних 32битных инструкций под ряд то на СТ будет работать быстрее,по идее(по документу) А еще могу сказать, что в целом результат будет примерно одинаков. А если смысла нету, то пост можно удалить  Ну, хотелось бы надеяться, что ST хорошенько поработали над ошибками и выпустили действительно быстрый чип. В остальном от STM32F1 остались только хорошие впечатления. А от F2 пришлось пока отказаться из-за внешнего USB PHY. Куча высокоскоростных цепей, информации по стыковке никакой нет, как будет работать - бог его знает, и спросить не у кого. Доступные отладочные платы с F2 на борту тоже все сплошь без PHY.
|
|
|
|
|
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 мипсов...
|
|
|
|
|
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 запихнуть, посмотрим как оно
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|