We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
I use MDK-ARM v5.24.2, CMSIS V5.0.1, MDK-MIDDLEWARE V7.4.1, STM32F4xx_DFP V2.11.0, new a project use the STM32CubeMX of the STM32Cube Framework(API), add a usb host msc to read and write file in the u disk. But I find that: 1. the "Keil::CMSIS Driver:USB Host:Full-speed" require CMSIS:RTOS, but there are two choices: "ARM::CMSIS:ROTS:Keil RTX" and "ARM::CMSIS:ROTS:Keil RTX5", there seems that I can only chose "ARM::CMSIS:ROTS:Keil RTX5" because I have add the "CMSIS::RTOS2(API):keil RTX5". 2. If neither chose ""ARM::CMSIS:ROTS:Keil RTX" nor "ARM::CMSIS:ROTS:Keil RTX5", there is a error after compile: C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\2.11.0\CMSIS\Driver\USBH_FS_STM32F4xx.c(166): error: #5: cannot open source input file "cmsis_os.h": No such file or directory 3. If chose the "ARM::CMSIS:ROTS:Keil RTX5", there is a error after compile: C:\Keil_v5\ARM\PACK\Keil\MDK-Middleware\7.4.1\FileSystem\Include\fs_os.h(272): error: #81: more than one storage class may not be specified How to fix this? Thanks!
I had the same problem when i was working with Sdcard (MCI driver). My fix was to manually edit fs_os.h (remove its read-only flag first) . I don't know whether it'll work to USB driver or not, but here's what i added into fs_os.h :
// MOD, top line of the file after include "rl_fs_lib.h // ------------------------- #if defined(RTE_CMSIS_RTOS2) #define RTOS_DEFINED #undef RTE_CMSIS_RTOS #endif
// MOD, end of the file // --------------- #if defined(RTOS_DEFINED) #define RTE_CMSIS_RTOS #endif
hope it works for you.