Пито
Солнце 18 июня 2017 г. 16:00
Объединяя пример Zmodem:
1. Мы скучаем по сериалу.Доступный метод offrite ()
2. Когда я смотрю на скорость Serialusb при печати кучу струн (через сериал.Печать (F (..))) мое впечатление, что он работает как 9K6, я думаю, это должен быть самый быстрый режим, который у нас есть.. Может я что -то сделаю не так?
1. Мы скучаем по сериалу.Доступный метод offrite ()
2. Когда я смотрю на скорость Serialusb при печати кучу струн (через сериал.Печать (F (..))) мое впечатление, что он работает как 9K6, я думаю, это должен быть самый быстрый режим, который у нас есть.. Может я что -то сделаю не так?
Пито
Солнце 18 июня 2017 г. 16:59
Это скамейка для сериала.print (f ()) через serialusb (168mhz f407zet):
Обновление: println (f (vs. println (
Обновление: println (f (vs. println (
// Serial.print(F()) via SerialUSB benchmark
// Pito 6/2017
void setup() {
Serial.begin(115200);
delay(3000);
uint32_t elapsed = micros();
for (uint32_t i = 0; i < 20; i++) {
Serial.println(F("THIS IS A TEST THIS IS A TEST THIS IS A TEST THIS IS A TEST THIS IS A TEST"));
}
elapsed = micros() - elapsed;
Serial.print("Elapsed with (F(: ");
Serial.print(elapsed);
Serial.println(" usecs");
Serial.println(" ");
elapsed = micros();
for (uint32_t i = 0; i < 20; i++) {
Serial.println("THIS IS A TEST THIS IS A TEST THIS IS A TEST THIS IS A TEST THIS IS A TEST");
}
elapsed = micros() - elapsed;
Serial.print("Elapsed: ");
Serial.print(elapsed);
Serial.println(" usecs");
}
void loop() {
}
Даниэфф
Солнце 18 июня 2017 г., 17:07
F407VE
...
Это тест, это тест, это тест, это тест, это тест
Истекло: 198278 USECS
...
Это тест, это тест, это тест, это тест, это тест
Истекло: 198278 USECS
Пито
Солнце 18 июня 2017 г., 17:09
Это в 8 раз быстрее..
Мои часы конфигурация:
Мои часы конфигурация:
RCC_OscInitStruct.PLL.PLLM = 8;
RCC_OscInitStruct.PLL.PLLN = 336;
RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2;
RCC_OscInitStruct.PLL.PLLQ = 7;
Пито
Солнце 18 июня 2017 г., 17:42
Кто -нибудь может попробовать под Win7, плз?
Стивестронг
Солнце 18 июня 2017 г. 18:46
Не общее, но так же, как и сравнение с Libmaple F407VET6:
Elapsed: 484 usecs
Пито
Солнце 18 июня 2017 г. 18:59
Это в 3100 раз быстрее, чем шахта.. Так что, похоже, что что -то не так с серийным сериалом F407ZET
Пито
Пн 19 июня 2017 г. 10:39
Я обновил эталон выше и:
1. с сериалом.println ("Это.. требуется 39971 usecs
2. с сериалом.println (f ("Это.. Это требует 1496123 USECS
Так кажется, что «F» - это проблема здесь.. (Black F407Zet)
1. с сериалом.println ("Это.. требуется 39971 usecs
2. с сериалом.println (f ("Это.. Это требует 1496123 USECS
Так кажется, что «F» - это проблема здесь.. (Black F407Zet)
Пито
Вторник 20 июня 2017 г., 23:57
@Daniel и Steve: Я не понимаю, как вы можете получить такие скорости с печати с «F».
При прохождении через его отладчиком «F» печатает каждый из них индивидуально через USB (после каждой записи (C) ниже я вижу новый символ в терминале Teraterm)
При прохождении через его отладчиком «F» печатает каждый из них индивидуально через USB (после каждой записи (C) ниже я вижу новый символ в терминале Teraterm)
size_t Print::print(const __FlashStringHelper *ifsh)
{
PGM_P p = reinterpret_cast(ifsh);
size_t n = 0;
while (1) {
unsigned char c = pgm_read_byte(p++);
if (c == 0) break;
if (write(c)) n++;
else break;
}
return n;
}
Даниэфф
Ср 21 июня 2017 г., 4:31
Libmaple оптимизирует версию этого
size_t Print::print(const __FlashStringHelper *ifsh)
{
return print(reinterpret_cast(ifsh));
}
Стивестронг
Ср 21 июня 2017 г., 4:40
Для Libmaple это время для копирования струн в буфер TX.
Только при 27 -м тесте... Строка получает буфер полного...
Только при 27 -м тесте... Строка получает буфер полного...
Пито
Ср 21 июня 2017 г., 6:26
[Даниэфф - Ср 21 июня 2017 г., 4:31] -
Libmaple оптимизирует версию этого
size_t Print::print(const __FlashStringHelper *ifsh)
{
return print(reinterpret_cast(ifsh));
}