/*********************************************************************************************************************** * FILE DESCRIPTION * ------------------------------------------------------------------------------------------------------------------*/ /** \file * \brief System specific assertion defines * * -------------------------------------------------------------------------------------------------------------------- * COPYRIGHT * -------------------------------------------------------------------------------------------------------------------- * \par Copyright * \verbatim * Copyright (c) 2025 by Vector Informatik GmbH. All rights reserved. * * This software is copyright protected and proprietary to Vector Informatik GmbH. * Vector Informatik GmbH grants to you only those rights as set out in the license conditions. * All other rights remain with Vector Informatik GmbH. * \endverbatim */ /**********************************************************************************************************************/ /*********************************************************************************************************************** * REVISION HISTORY * -------------------------------------------------------------------------------------------------------------------- * Version Date Author Change Id Description * -------------------------------------------------------------------------------------------------------------------- * 04.00.00 2016-02-26 visach ESCAN00088307 Rework to support FblMain 3.xx * ESCAN00088433 Moved assertion specific code to fbl_assert.h * 04.00.01 2016-07-15 visdlm ESCAN00091011 No changes * 04.01.00 2016-08-18 vistns ESCAN00091531 No changes * 04.02.00 2016-10-31 viscb ESCAN00092597 No changes * 04.02.01 2017-05-09 visjhg ESCAN00095090 No changes * visrie ESCAN00095204 Added assertion defines for DET * 04.03.00 2017-07-28 viscb ESCAN00095458 No changes * visach ESCAN00096096 No changes * 04.04.00 2018-02-26 visdkl ESCAN00098503 No changes * 04.04.01 2018-07-06 visdkl ESCAN00099860 No changes * 04.04.01 2018-07-06 visdkl ESCAN00099860 No changes * 04.05.00 2018-09-13 visrie ESCAN00100731 No changes * 2018-11-20 visdkl ESCAN00101393 No changes * 04.06.00 2019-12-03 visjdn FBL-999 No changes * 05.00.00 2020-03-02 vistbe FBL-949 No changes * ESCAN00105231 No changes * 05.01.00 2020-04-29 vistmo FBL-1584 No changes * 05.02.00 2020-05-08 visrie FBL-1414 No changes * 05.03.00 2020-07-16 visrie FBL-2021 No changes * 05.04.00 2024-05-03 visrie FBL-8515 No changes * ESCAN00117096 No changes * 05.05.00 2025-10-03 pharring FBL-10242 Add support for logger * 05.06.00 2025-10-22 mpatil FBL-11533 Logical Block Meta data information is not indexed correctly * in OTA usecase **********************************************************************************************************************/ #ifndef FBL_ASSERT_H #define FBL_ASSERT_H /*********************************************************************************************************************** * DEFINITION OF ASSERTION CODES (SYSTEM) **********************************************************************************************************************/ /* Note: System assertions are only allowed in the range from 0x00-0x7F. Others are reserved. */ #if defined( FBL_ENABLE_ASSERTION ) /* 0x00-0x1F: General FBL assertions */ # define kFblSysAssertMissingForcedRCRRP 0x00u # define kFblSysAssertInitializationFailed 0x10u /* 0x20-0x3F: Internal assertions */ # define kFblSysAssertServiceReqBeforeResp 0x20u # define kFblSysAssertServiceMainHandlerInvalid 0x21u # define kFblSysAssertDet 0x22u /* 0x40-0x4F: Generated data assertions */ # define kFblSysAssertWdBufferOverflow 0x40u /* 0x50-0x6F: User parameter assertions */ # define kFblSysAssertParameterOutOfRange 0x50u # define kFblAssertIllegalReturnValue 0x51u # define kFblSysAssertRepeatedCallOnConcludedService 0x60u /* 0x70-0x7F: Communication wrapper assertions */ # define kFblSysAssertStateNotIdle 0x70u # define kFblSysAssertNoBufferAvailable 0x71u /* 0x80-0xFF: OEM specific */ # include "fbl_assert_oem.h" # if defined( __LINE__ ) && defined( __FILE__ ) && defined( FBL_ENABLE_ASSERTION_EXTENDED_INFO ) # define FBL_DECL_ASSERT_EXTENDED_INFO(n) const vuint8* module, vuint16 line, n # define FBL_USED_ASSERT_EXTENDED_INFO(n) __FILE__, __LINE__,(n) # else # define FBL_DECL_ASSERT_EXTENDED_INFO(n) n /* PRQA S 3410 */ /* MD_FblAssert_3410 */ # define FBL_USED_ASSERT_EXTENDED_INFO(n) (n) /* PRQA S 3453 */ /* MD_MSR_19.7 */ # endif /* __LINE__ && __FILE__ && FBL_ENABLE_ASSERTION_EXTENDED_INFO */ #endif /* FBL_ENABLE_ASSERTION || FBL_ENABLE_LOGGER */ /* No statement should be added to below if clauses, in order to prevent errors suggested by Misra rule 14.9 */ /* PRQA S 3412 4 */ /* MD_FblAssert_Assertion */ #if defined( FBL_ENABLE_ASSERTION ) # define assertFbl(p, e) if (!(p)) ApplFblFatalError(FBL_USED_ASSERT_EXTENDED_INFO(e)) /* PRQA S 2214 */ /* MD_FblAssert_Assertion */ # define assertFblUser(p, e) if (!(p)) ApplFblFatalError(FBL_USED_ASSERT_EXTENDED_INFO(e)) /* PRQA S 2214 */ /* MD_FblAssert_Assertion */ # define assertFblGen(p, e) if (!(p)) ApplFblFatalError(FBL_USED_ASSERT_EXTENDED_INFO(e)) /* PRQA S 2214 */ /* MD_FblAssert_Assertion */ # define assertFblInternal(p, e) if (!(p)) ApplFblFatalError(FBL_USED_ASSERT_EXTENDED_INFO(e)) /* PRQA S 2214 */ /* MD_FblAssert_Assertion */ #else # define assertFbl(p, e) # define assertFblUser(p, e) # define assertFblGen(p, e) # define assertFblInternal(p, e) #endif /* FBL_ENABLE_ASSERTION */ /* Module specific MISRA deviations: MD_FblAssert_Assertion: Reason: This is an assertion macro used only for debugging in development (FBL_ENABLE_ASSERTION). There should be no need to extend the amount of statements, so the current usage is accepted. Risk: Unintended debugging code behavior could result, through adding further statements, Prevention: A comment is in place to avoid that further statements are added to the if condition. MD_FblAssert_3410: Reason: This macro serves as function parameter type qualifier and cannot have parentheses, because this would result in an invalid function parameter list. Risk: Usage at not intended places and unintended code behavior due to the missing parentheses. Prevention: Reviews must ensure that this macro is only used in function parameter lists. */ #endif /* FBL_ASSERT_H */ /*********************************************************************************************************************** * END OF FILE: FBL_ASSERT.H **********************************************************************************************************************/