Test de performance USB CDC

This commit is contained in:
Samuel 2025-08-27 09:23:44 +02:00
parent 52dfbc2ead
commit 6f6340abe1
2 changed files with 44 additions and 3 deletions

View File

@ -21,7 +21,7 @@ target_link_libraries(Modele_RPiPico
) )
pico_enable_stdio_usb(Modele_RPiPico 1) 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) pico_add_extra_outputs(Modele_RPiPico)
@ -29,3 +29,6 @@ add_custom_target(Flash
DEPENDS Modele_RPiPico DEPENDS Modele_RPiPico
COMMAND sudo picotool load -f ${PROJECT_BINARY_DIR}/Modele_RPiPico.uf2 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)

42
main.c
View File

@ -6,11 +6,49 @@
#include "pico/stdlib.h" #include "pico/stdlib.h"
#include <stdio.h> #include <stdio.h>
absolute_time_t envoie_nb_char(int nb_char);
void main(void) void main(void)
{ {
absolute_time_t measured_time_us;
absolute_time_t temps_moyen, temps_max;
int nb_ech = 10;
stdio_init_all(); stdio_init_all();
while(1){ while(1){
printf("Exemple\n"); temps_moyen = 0;
sleep_ms(1000); 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<nb_ech; ech ++){
measured_time_us = envoie_nb_char(nb_char);
if(measured_time_us > 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;
}