Enabling RTOS in DAVE examples breaks them

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
User18137
Level 1
Level 1
First like received First solution authored
I've been trying out some DAVE example projects on the XMC4800 Relax because I want to develop a product on it. I've got the HTTP server with RTOS example working and
I've got the FATFS example working, so I'm trying to merge them but without luck. In particular if I select the RTOS checkbox on the FATFS APP it wont compile. The first error is:
.../DAVEworkspace/FATFS_EXAMPLE_XMC47/Dave/Generated/CMSIS_RTOS_RTX/INC/cmsis_os.h:663:13: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'void'
because no #define of __NO_RETURN is included.
My question is, "what do I need to do to make APP instances RTOS compatible" and where do I find the documentation on this aspect of DAVE?
1 Solution
User18137
Level 1
Level 1
First like received First solution authored
Jesus, thanks for the response. I'm using Dave 4.4.2 and I've had a look at your link but there's no sdmmc_block_private_spi.c file in my project. The nearest I've got is sdmmc_block_private_sd_rtos.c so I'll look in there.
Edit - I've got it to compile. DAVE uses two different versions of the file cmsis_os.h and the one in the FATFS example project lacks the following lines:

#if defined(__CC_ARM)
#define __NO_RETURN __declspec(noreturn)
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
#define __NO_RETURN __attribute__((noreturn))
#elif defined(__GNUC__)
#define __NO_RETURN __attribute__((noreturn))
#elif defined(__ICCARM__)
#define __NO_RETURN __noreturn
#else
#define __NO_RETURN
#endif

Adding these lines fixes the compile problem but the program hangs when I run it because it waits forever for a mutex.

View solution in original post

0 Likes
2 Replies
jferreira
Employee
Employee
10 sign-ins 5 sign-ins First like received
Hi,

Which version of the APPs are you using?
We are aware of the following issue, https://www.infineonforums.com/threads/6544-SDMMC_BLOCK-error?p=19006&viewfull=1#post19006, which is going to be fixed in the next up comming release of the DAVE4 APPs.

Regards,
Jesus
0 Likes
User18137
Level 1
Level 1
First like received First solution authored
Jesus, thanks for the response. I'm using Dave 4.4.2 and I've had a look at your link but there's no sdmmc_block_private_spi.c file in my project. The nearest I've got is sdmmc_block_private_sd_rtos.c so I'll look in there.
Edit - I've got it to compile. DAVE uses two different versions of the file cmsis_os.h and the one in the FATFS example project lacks the following lines:

#if defined(__CC_ARM)
#define __NO_RETURN __declspec(noreturn)
#elif defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050)
#define __NO_RETURN __attribute__((noreturn))
#elif defined(__GNUC__)
#define __NO_RETURN __attribute__((noreturn))
#elif defined(__ICCARM__)
#define __NO_RETURN __noreturn
#else
#define __NO_RETURN
#endif

Adding these lines fixes the compile problem but the program hangs when I run it because it waits forever for a mutex.
0 Likes