201 lines
10 KiB
C
201 lines
10 KiB
C
/***********************************************************************************************************************
|
|
* FILE DESCRIPTION
|
|
* ------------------------------------------------------------------------------------------------------------------*/
|
|
/** \file
|
|
* \brief Main module of BM
|
|
*
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* 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 2019-10-10 vistmo FBL-390 Adapt main function interface for vBaseEnv
|
|
* 04.00.01 2019-11-05 visrie ESCAN00104616 No changes
|
|
* ESCAN00104790 No changes
|
|
* 05.00.00 2019-12-04 visrie FBL-456 No changes
|
|
* ESCAN00104644 No changes
|
|
* ESCAN00105176 No changes
|
|
* 05.01.00 2020-01-13 visrie ESCAN00104481 Fixed redeclaration issue
|
|
* FBL-953 Reworked handling of AP include files
|
|
* 05.02.00 2020-02-28 vistbe FBL-949 No changes
|
|
* 06.00.00 2020-04-08 visrie FBL-1016 No changes
|
|
* 06.00.01 2020-04-08 visrie ESCAN00106837 No changes
|
|
* 06.00.02 2020-10-28 visrcn ESCAN00107189 Compiler error: Wrong definition for FblMain function
|
|
* 06.01.00 2021-08-11 visrie FBL-3394 Added/adapted MemMap sections
|
|
* 06.02.00 2022-02-04 visrie FBL-4602 No changes
|
|
* 06.02.01 2022-04-06 fmenke ESCAN00111029 No changes
|
|
* 06.03.00 2022-04-08 visrie FBL-4126 No changes
|
|
* 06.04.00 2022-04-11 lhopfhauer FBL-4822 Changed external switches to internal switches
|
|
* 06.04.01 2022-04-28 fmenke ESCAN00111741 No changes
|
|
* 06.05.00 2022-05-06 lhopfhauer FBL-5148 No changes
|
|
* 06.06.00 2022-07-13 fmenke FBL-5391 No changes
|
|
* 06.06.01 2022-08-04 jschmitding ESCAN00112070 No changes
|
|
* 06.07.00 2022-11-07 lhopfhauer FBL-4932 No changes
|
|
* 06.08.00 2022-11-30 visrie FBL-6065 Encapsulate FblMain declaration
|
|
* 06.08.01 2024-03-04 visrie ESCAN00116460 No changes
|
|
* 06.09.00 2024-05-16 lhopfhauer FBL-8602 No changes
|
|
* 06.10.00 2024-11-15 erizk FBL-9652 No changes
|
|
* 06.11.00 2025-05-23 dganesh FBL-9715 No changes
|
|
* 06.12.00 2025-09-23 pharring FBL-10124 Add support for FblLib_Logger
|
|
**********************************************************************************************************************/
|
|
|
|
#ifndef BM_MAIN_H
|
|
#define BM_MAIN_H
|
|
|
|
/***********************************************************************************************************************
|
|
* VERSION
|
|
**********************************************************************************************************************/
|
|
|
|
/* ##V_CFG_MANAGEMENT ##CQProject : FblBm_Main CQComponent : Implementation */
|
|
#define FBLBM_MAIN_VERSION 0x0612u
|
|
#define FBLBM_MAIN_RELEASE_VERSION 0x00u
|
|
|
|
/* Interface version */
|
|
/** Major interface version identifies incompatible changes */
|
|
#define FBLBM_API_VERSION_MAJOR 0x03u
|
|
/** Minor interface version identifies backward compatible changes */
|
|
#define FBLBM_API_VERSION_MINOR 0x00u
|
|
/** Release interface version identifies cosmetic changes */
|
|
#define FBLBM_API_VERSION_RELEASE 0x00u
|
|
|
|
/***********************************************************************************************************************
|
|
* INCLUDES
|
|
**********************************************************************************************************************/
|
|
|
|
#include "bm_types.h"
|
|
#if defined( FBLBM_ENABLE_HARDWARE_CONFIGURATION )
|
|
# include "bm_hw_ap.h"
|
|
#endif
|
|
#if defined( FBLBM_ENABLE_OEM_CONFIGURATION )
|
|
# include "bm_oem_ap.h"
|
|
#endif
|
|
#if defined( FBLBM_ENABLE_GENERIC_CONFIGURATION )
|
|
# include "bm_ap.h"
|
|
#endif
|
|
#include "bm_hdr.h"
|
|
|
|
/***********************************************************************************************************************
|
|
* DEFINES
|
|
**********************************************************************************************************************/
|
|
|
|
/** Helper macro to get number of array entries */ /* PRQA S 3453 1 */ /* MD_MSR_FctLikeMacro */
|
|
#define FBLBM_ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0u]))
|
|
|
|
/** Undefined hook function */
|
|
#define FBLBM_HOOK_NONE (tFblBmFunc)0
|
|
|
|
#if defined( FBLBM_ENABLE_STANDALONE_MODE ) && \
|
|
defined( FBLBM_INSTANCE_BOOTMANAGER )
|
|
/** Pointer type to byte data in RAM */
|
|
typedef V_MEMRAM1 vuint8 V_MEMRAM2 V_MEMRAM3 * tFblMemRamData;
|
|
/** Pointer type to constant byte data in RAM */
|
|
typedef const V_MEMRAM1 vuint8 V_MEMRAM2 V_MEMRAM3 * tFblMemConstRamData;
|
|
|
|
/** Response pending state (never active) */
|
|
# define GetRcrRpInProgress() ((vuint8)0x00u)
|
|
|
|
# if defined( FBL_CW_LOCKS_TASKS ) || \
|
|
defined( FBLCW_LOCKS_TASKS )
|
|
/***********************************************************************************************************************
|
|
* COM WRAPPER COMPATIBILITY DEFINITIONS
|
|
**********************************************************************************************************************/
|
|
/* Define interface version for classic FblWrapperCom modules */
|
|
# if !defined( FBL_CW_API_REFERENCE_VERSION_MAJOR )
|
|
/** Major interface version identifies incompatible changes */
|
|
# define FBL_CW_API_REFERENCE_VERSION_MAJOR 0x01u
|
|
/** Minor interface version identifies backward compatible changes */
|
|
# define FBL_CW_API_REFERENCE_VERSION_MINOR 0x00u
|
|
/** Release interface version identifies cosmetic changes */
|
|
# define FBL_CW_API_REFERENCE_VERSION_RELEASE 0x00u
|
|
# endif
|
|
# if !defined( FBL_CW_CFG_PTR )
|
|
# define FBL_CW_CFG_PTR V_NULL
|
|
# endif
|
|
# else
|
|
# define FBL_CW_LOCKS_TASKS
|
|
# define FBLCW_LOCKS_TASKS
|
|
# define FblCwIsTimerTaskAllowed() ((vuint8)0x00u)
|
|
# define FblCwIsStateTaskAllowed() ((vuint8)0x00u)
|
|
# define FblCwRetransmitRP()
|
|
# define FblCwClrInit()
|
|
# define FblCwTimerTask()
|
|
# define FblCwStateTask()
|
|
# endif /* FBL_CW_LOCKS_TASKS || FBLCW_LOCKS_TASKS */
|
|
#endif /* FBLBM_ENABLE_STANDALONE_MODE && FBLBM_INSTANCE_BOOTMANAGER */
|
|
|
|
/***********************************************************************************************************************
|
|
* GLOBAL DATA
|
|
**********************************************************************************************************************/
|
|
|
|
#define FBLBM_HEADER_START_SEC_CONST
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
V_MEMROM0 extern V_MEMROM1 tFblBmHeader V_MEMROM2 FblBmHeader;
|
|
#define FBLBM_HEADER_STOP_SEC_CONST
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
|
|
/***********************************************************************************************************************
|
|
* FUNCTION PROTOTYPES
|
|
**********************************************************************************************************************/
|
|
|
|
#define FBLBM_START_SEC_CODE
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
|
|
/* Helper functions */
|
|
#if defined( FBLBM_ENABLE_STANDALONE_MODE ) && \
|
|
defined( FBLBM_INSTANCE_BOOTMANAGER )
|
|
void FblMemSetInteger( vuintx count, vuint32 input, tFblMemRamData buffer );
|
|
vuint32 FblMemGetInteger( vuintx count, tFblMemConstRamData buffer );
|
|
#endif /* FBLBM_ENABLE_STANDALONE_MODE && FBLBM_INSTANCE_BOOTMANAGER */
|
|
|
|
#if defined( FBLBM_INSTANCE_BOOTMANAGER )
|
|
void V_API_NEAR FblMain(void); /* PRQA S 5209 */ /* MD_FblBmMain_5209_Main */
|
|
#endif /* FBLBM_INSTANCE_BOOTMANAGER */
|
|
|
|
#define FBLBM_STOP_SEC_CODE
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
|
|
#if defined( FBLBM_MAIN_ENABLE_FBL_START )
|
|
# define FBLBM_FBLSTART_START_SEC_CODE
|
|
# include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
# if defined( FBLBM_MAIN_ENABLE_FBLSTART_PARAM )
|
|
void V_CALLBACK_NEAR FblStart( FBLBM_MAIN_FBLSTART_CHANNEL_HANDLE_TYPE_FIRST
|
|
V_MEMRAM1 void V_MEMRAM2 V_MEMRAM3 * pFblStartParam, vuint8 length );
|
|
# else
|
|
void V_CALLBACK_NEAR FblStart( FBLBM_MAIN_FBLSTART_CHANNEL_HANDLE_TYPE_ONLY );
|
|
# endif /* FBL_MAIN_ENABLE_FBLSTART_PARAM */
|
|
# define FBLBM_FBLSTART_STOP_SEC_CODE
|
|
# include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
#endif /* FBLBM_MAIN_ENABLE_FBL_START */
|
|
|
|
#if defined( FBLBM_MAIN_ENABLE_STAY_IN_BOOT )
|
|
# define FBLBM_APPLSTART_START_SEC_CODE
|
|
# include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
# if defined( FBLBM_MAIN_ENABLE_APPLSTART_PARAM )
|
|
void ApplStart( V_MEMRAM1 void V_MEMRAM2 V_MEMRAM3 * pApplStartParam, vuint8 length );
|
|
# else
|
|
void ApplStart( void );
|
|
# endif /* FBLBM_MAIN_ENABLE_FBLSTART_PARAM */
|
|
# define FBLBM_APPLSTART_STOP_SEC_CODE
|
|
# include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_MemMap */
|
|
#endif /* FBLBM_MAIN_ENABLE_STAY_IN_BOOT */
|
|
|
|
#endif /* BM_MAIN_H */
|
|
|
|
/***********************************************************************************************************************
|
|
* END OF FILE: BM_MAIN.H
|
|
**********************************************************************************************************************/
|