107 lines
6.7 KiB
C
107 lines
6.7 KiB
C
/***********************************************************************************************************************
|
|
* FILE DESCRIPTION
|
|
* ------------------------------------------------------------------------------------------------------------------*/
|
|
/** \file
|
|
* \brief Generic application vector table for platforms with Interrupt Vector Base Register.
|
|
* This file is usually compiled and linked with the bootloader and is located OUTSIDE the
|
|
* protected area of the FBL. It must be compiled, linked and downloaded with the
|
|
* application after changing the magic value to 'APPL'
|
|
* and setting the start label to the entry point of the application.
|
|
* If the application is set to valid, the bootloader checks the magic flag in the first
|
|
* entry of the ApplIntJmpTable and then calls the function specified in the second entry.
|
|
*
|
|
* This file must be compiled and linked in the bootloader
|
|
* and the application to the SAME MEMORY LOCATION!
|
|
*
|
|
* \note Please note, that this file contains example source code used by the Flash Bootloader. These
|
|
* functions may influence the behavior of the bootloader in principle. Therefore, great care must
|
|
* be taken to verify the correctness of the implementation. The contents of the originally delivered
|
|
* files are only examples resp. implementation proposals. With regard to the fact that these
|
|
* functions are meant for demonstration purposes only, Vector Informatik's liability shall be
|
|
* expressly excluded in cases of ordinary negligence, to the extent admissible by law or statute.
|
|
*
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* COPYRIGHT
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* \par Copyright
|
|
* \verbatim
|
|
* Copyright (c) 2020 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
|
|
*/
|
|
/**********************************************************************************************************************/
|
|
|
|
/***********************************************************************************************************************
|
|
* AUTHOR IDENTITY
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* Name Initials Company
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* Johannes Krimmel KJs Vector Informatik GmbH
|
|
* Christian Ralcewicz RCn Vector Informatik GmbH
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* REVISION HISTORY
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* Version Date Author Change Id Description
|
|
* --------------------------------------------------------------------------------------------------------------------
|
|
* 01.00.00 2017-10-27 KJs Initial version
|
|
* 01.00.01 2020-09-18 RCn ESCAN00106567 No changes
|
|
**********************************************************************************************************************/
|
|
|
|
#ifndef __APPL_VECT_H__
|
|
#define __APPL_VECT_H__
|
|
|
|
/***********************************************************************************************************************
|
|
* VERSION
|
|
**********************************************************************************************************************/
|
|
|
|
#define FBLVTABAPPL_IVBR_VERSION 0x0100u
|
|
#define FBLVTABAPPL_IVBR_RELEASE_VERSION 0x01u
|
|
|
|
/***********************************************************************************************************************
|
|
* DEFINES
|
|
**********************************************************************************************************************/
|
|
|
|
#define APPLVECT_FROM_BOOT 0x42544C44ul /* 'BTLD', Reserved for Bootloader internal value
|
|
* This magic value mustn't be set
|
|
* for the application vector table, just
|
|
* for the table linked with the Bootloader.
|
|
*/
|
|
|
|
#define APPLVECT_FROM_APPL 0x4150504Cul /* 'APPL', Set this label only for the
|
|
* application vector table linked with the Application!
|
|
*/
|
|
|
|
/***********************************************************************************************************************
|
|
* EXTERNAL FUNCTION PROTOTYPES
|
|
**********************************************************************************************************************/
|
|
|
|
/* Reset vector pointer definition for the FBL - compiler/hardware specific.
|
|
* When using this file for the actual application, FBL_RESET_ENTRY_LABEL may not be defined.
|
|
* Please insert the label manually and adapt the defines or include fbl_cfg.h.
|
|
*/
|
|
#if !defined( FBL_RESET_ENTRY_LABEL )
|
|
# error "Please define FBL_RESET_ENTRY_LABEL to entry label of the startup code."
|
|
#else
|
|
extern void FBL_RESET_ENTRY_LABEL( void );
|
|
# define RESET_ENTRY_ADDRESS (vuint32)&FBL_RESET_ENTRY_LABEL
|
|
#endif /* FBL_ENTRY_LABEL */
|
|
|
|
/***********************************************************************************************************************
|
|
* GLOBAL DATA
|
|
**********************************************************************************************************************/
|
|
|
|
#define FBL_APPLVECT_START_SEC_CONST
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_19.1 */
|
|
V_MEMROM0 extern V_MEMROM1 vuint32 V_MEMROM2 ApplIntJmpTable[2];
|
|
#define FBL_APPLVECT_STOP_SEC_CONST
|
|
#include "MemMap.h" /* PRQA S 5087 */ /* MD_MSR_19.1 */
|
|
|
|
#endif /* __APPL_VECT_H__ */
|
|
|
|
/***********************************************************************************************************************
|
|
* END OF FILE: APPLVECT.H
|
|
**********************************************************************************************************************/
|