This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

STM32CubeMX Framework can't compatible with the USB host Middleware

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!

Parents
  • 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.

Reply
  • 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.

Children
No data