diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index 313a7c7..62b53b5 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -6,6 +6,7 @@ "${workspaceFolder}/build/generated/pico_base", "${env:PICO_SDK_PATH}/src/**/include", "${env:PICO_SDK_PATH}/lib/**/src", + "${env:PICO_SDK_PATH}/lib/tinyusb/hw", "${workspaceFolder}/lib/FatFs/source", "${workspaceFolder}/lib/sd_driver" diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..185d9b8 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,24 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Pico Debug (Cortex-Debug with external OpenOCD)", + "cwd": "${workspaceRoot}", + "executable": "debug/Modele_RPiPico.elf", + "request": "launch", + "type": "cortex-debug", + "servertype": "external", + "gdbTarget": "localhost:3333", + "gdbPath": "gdb-multiarch", + "device": "RP2040", + "svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/RP2040.svd", + "runToEntryPoint": "main", + // Fix for no_flash binaries, where monitor reset halt doesn't do what is expected + // Also works fine for flash binaries + "overrideLaunchCommands": [ + "monitor reset init", + "load debug/Modele_RPiPico.elf" + ] + }, + ] +} diff --git a/CMakeLists.txt b/CMakeLists.txt index e3d7ed5..d51c054 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -22,7 +22,7 @@ target_sources(host_cdc_msc_hid PUBLIC cdc_app.c diskio_USB.c diskio_SDIO.c - log_usb.c + com_usb.c messagerie.c lib/FatFs/source/ff.c lib/FatFs/source/ffsystem.c diff --git a/cdc_app.c b/cdc_app.c index 0946759..43a96f7 100644 --- a/cdc_app.c +++ b/cdc_app.c @@ -27,7 +27,7 @@ #include "tusb.h" #include "bsp/board_api.h" #include "messagerie.h" -#include "log_usb.h" +#include "com_usb.h" #include volatile bool in_transfert_cb = 0; @@ -47,9 +47,9 @@ size_t get_console_inputs(uint8_t* buf, size_t bufsize) { void traiter_les_messages(uint8_t idx, struct message_t message){ // Debug - /*char message_en_clair[1024]; - message_to_string(message, message_en_clair); - printf("%s\n", message_en_clair);*/ + char message_en_clair[1024]; + //message_to_string(message, message_en_clair); + //printf("%s\n", message_en_clair); if(message.type == '>'){ char message_en_clair[1024]; @@ -64,6 +64,7 @@ void traiter_les_messages(uint8_t idx, struct message_t message){ for(int i=0; itampon_echange[message.adresse_registre + i] = message.donnees[i]; } + //printf(">d:%d\n",log_buffer->tampon_echange[0]); } if(message.type == 'd'){ @@ -122,8 +123,7 @@ void cdc_app_task(void) { log_analyse(idx); while(message_disponible()){ message = get_message(); - traiter_les_messages(idx, message); - + traiter_les_messages(idx, message); } } diff --git a/log_usb.c b/com_usb.c similarity index 92% rename from log_usb.c rename to com_usb.c index c85b503..d40d8b1 100644 --- a/log_usb.c +++ b/com_usb.c @@ -2,7 +2,7 @@ #include "pico/platform/panic.h" #include "pico/stdlib.h" #include "messagerie.h" -#include "log_usb.h" +#include "com_usb.h" #include @@ -113,6 +113,12 @@ void augmente_index(unsigned int *index, unsigned int offset){ } void log_analyse(const char idx){ + //printf("log_analyse %d\n", idx); + static absolute_time_t current_time_us, start_time_us=0; + current_time_us = get_absolute_time(); + //printf(">a:%lld\n", current_time_us-start_time_us); + start_time_us = current_time_us; + // Les données sont dans le tampon tournant // Nous les copions dans une seconde mémoire pour les analyser. // Si un message est trouvé : @@ -137,7 +143,12 @@ void log_analyse(const char idx){ index_chaine = 0; // Copie des données - while(index != p_log_bufffer->index_tampon_ecriture){ + if(index != p_log_bufffer->index_tampon_ecriture){ + while(index != p_log_bufffer->index_tampon_ecriture){ + chaine[index_chaine] = p_log_bufffer->tampon[index]; + index_chaine++; + increment_index(&index); + } chaine[index_chaine] = p_log_bufffer->tampon[index]; index_chaine++; increment_index(&index); @@ -213,4 +224,5 @@ void log_analyse(const char idx){ } augmente_index(&(p_log_bufffer->index_tampon_lecture), fin_message); + //printf("Fin log_analyse %d\n", idx); } diff --git a/log_usb.h b/com_usb.h similarity index 100% rename from log_usb.h rename to com_usb.h diff --git a/main.c b/main.c index 817f5fe..50d8057 100644 --- a/main.c +++ b/main.c @@ -32,7 +32,7 @@ #include "tusb.h" #include "ff.h" #include "f_util.h" -#include "log_usb.h" +#include "com_usb.h" //--------------------------------------------------------------------+ // MACRO CONSTANT TYPEDEF PROTYPES