From 6f6340abe117e72a382fcfa64a781b80bd44ed27 Mon Sep 17 00:00:00 2001 From: Samuel Date: Wed, 27 Aug 2025 09:23:44 +0200 Subject: [PATCH] Test de performance USB CDC --- CMakeLists.txt | 5 ++++- main.c | 42 ++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f9d47f6..7925527 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,7 +21,7 @@ target_link_libraries(Modele_RPiPico ) pico_enable_stdio_usb(Modele_RPiPico 1) -pico_enable_stdio_uart(Modele_RPiPico 1) +pico_enable_stdio_uart(Modele_RPiPico 0) pico_add_extra_outputs(Modele_RPiPico) @@ -29,3 +29,6 @@ add_custom_target(Flash DEPENDS Modele_RPiPico COMMAND sudo picotool load -f ${PROJECT_BINARY_DIR}/Modele_RPiPico.uf2 ) + +# Suppression de la conversion automatique LF -> CRLF +add_definitions(-DPICO_STDIO_ENABLE_CRLF_SUPPORT=0) diff --git a/main.c b/main.c index ce2833b..1689d10 100644 --- a/main.c +++ b/main.c @@ -6,11 +6,49 @@ #include "pico/stdlib.h" #include +absolute_time_t envoie_nb_char(int nb_char); + void main(void) { + absolute_time_t measured_time_us; + absolute_time_t temps_moyen, temps_max; + int nb_ech = 10; stdio_init_all(); while(1){ - printf("Exemple\n"); - sleep_ms(1000); + temps_moyen = 0; + temps_max = 0; + for(int nb_char = 1; nb_char < 1000; nb_char+= 1){ + temps_moyen = 0; + temps_max = 0; + for(int ech=0; ech temps_max){ + temps_max = measured_time_us; + } + temps_moyen += measured_time_us; + } + temps_moyen = temps_moyen / nb_ech; + printf(">temps:%d:%lld#us\n", nb_char, temps_moyen); + printf(">temps_max:%d:%lld#us\n", nb_char, temps_max); + sleep_ms(5); + } + sleep_ms(50); } } + +absolute_time_t envoie_nb_char(int nb_char) { + absolute_time_t current_time_us, start_time_us; + char message[10000]; + for(int i=0; i<10000; i++){ + message[i]= i%26 + 'a'; + } + if (nb_char == 0){ + return 0; + } + message[nb_char - 1] = '\n'; + message[nb_char] = '\0'; + start_time_us = get_absolute_time(); + printf("%s", message); + current_time_us = get_absolute_time(); + return current_time_us - start_time_us; +}