#13 Народ, гляньте, у кого IAR есть, что написано в #define assert_param (в каком-то из заголовочных файлов) в вашей версии. В 5.20 код
выглядит так: #ifdef DEBUG
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((u8 *)__FILE__, __LINE__))
void assert_failed(u8* file, u32 line);
#else
#define assert_param(expr) ((void)0)
#endif /* DEBUG */
В версии 7.40:
#ifdef USE_FULL_ASSERT
#define assert_param(expr) ((expr) ? (void)0 : assert_failed((uint8_t *)__FILE__, __LINE__))
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0)
#endif /* USE_FULL_ASSERT */
Иначе говоря, то же самое. Но эта конструкция не совместими с MISRA2004 в ветке "else". Может в более новых версиях IAR чего-нибудь новое придумал?