From 17b7cce05b893b1b75e0d97a098aecb1a0880fcf Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Wed, 25 May 2022 08:07:10 +0200 Subject: [PATCH] fix: crashes with bootloader simu --- radio/src/simu.cpp | 2 ++ radio/src/targets/simu/simufatfs.cpp | 14 +++++++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/radio/src/simu.cpp b/radio/src/simu.cpp index 3f33e4dde..89996d406 100644 --- a/radio/src/simu.cpp +++ b/radio/src/simu.cpp @@ -635,7 +635,9 @@ int main(int argc, char ** argv) startEepromThread(argc >= 2 ? argv[1] : "eeprom.bin"); #endif +#if !defined(SIMU_BOOTLOADER) startAudioThread(); +#endif simuStart(true/*false*/, argc >= 3 ? argv[2] : 0, argc >= 4 ? argv[3] : 0); return application.run(); diff --git a/radio/src/targets/simu/simufatfs.cpp b/radio/src/targets/simu/simufatfs.cpp index e8737e328..e7551adc8 100644 --- a/radio/src/targets/simu/simufatfs.cpp +++ b/radio/src/targets/simu/simufatfs.cpp @@ -469,11 +469,15 @@ FRESULT f_readdir (DIR * rep, FILINFO * fil) if (strcmp(ent->d_name, ".") && strcmp(ent->d_name, "..") ) break; } - memset(fil->fname, 0, FF_MAX_LFN); - strcpy(fil->fname, ent->d_name); - // TRACE_SIMPGMSPACE("f_readdir(): %s", fil->fname); - std::string fullName = sd->name + std::string("/") + std::string(ent->d_name); - return f_stat(fullName.c_str(), fil); + if (fil != nullptr) { + memset(fil->fname, 0, FF_MAX_LFN); + strcpy(fil->fname, ent->d_name); + // TRACE_SIMPGMSPACE("f_readdir(): %s", fil->fname); + std::string fullName = sd->name + std::string("/") + std::string(ent->d_name); + return f_stat(fullName.c_str(), fil); + } + + return FR_OK; } FRESULT f_mkfs (const TCHAR* path, BYTE opt, DWORD au, void* work, UINT len)