123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392 |
- /**
- * @file Spi_Cfg.h
- * @version 1.0.0
- *
- * @brief AUTOSAR Spi - Spi configuration header file.
- * @details This file is the header containing all the necessary information for SPI
- * module configuration(s).
- * @addtogroup SPI_DRIVER_CONFIGURATION Spi Driver Configuration
- * @{
- */
- /*==================================================================================================
- * Project : RTD AUTOSAR 4.4
- * Platform : CORTEXM
- * Peripheral : LPSPI
- * Dependencies :
- *
- * Autosar Version : 4.4.0
- * Autosar Revision : ASR_REL_4_4_REV_0000
- * Autosar Conf.Variant :
- * SW Version : 1.0.0
- * Build Version : S32K1_RTD_1_0_0_HF01_D2109_ASR_REL_4_4_REV_0000_20210907
- *
- * (c) Copyright 2020-2021 NXP Semiconductors
- * All Rights Reserved.
- *
- * NXP Confidential. This software is owned or controlled by NXP and may only be
- * used strictly in accordance with the applicable license terms. By expressly
- * accepting such terms or by downloading, installing, activating and/or otherwise
- * using the software, you are agreeing that you have read, and that you agree to
- * comply with and are bound by, such license terms. If you do not agree to be
- * bound by the applicable license terms, then you may not retain, install,
- * activate or otherwise use the software.
- ==================================================================================================*/
- #ifndef SPI_CFG_H
- #define SPI_CFG_H
- #ifdef __cplusplus
- extern "C"{
- #endif
- /*==================================================================================================
- * INCLUDE FILES
- * 1) system and project includes
- * 2) needed interfaces from external units
- * 3) internal and external interfaces from this unit
- * 4) user callback header files
- ==================================================================================================*/
- #include "Mcal.h"
- #include "OsIf.h"
- #include "Spi_VS_0_PBcfg.h"
- #include "Spi_Ipw_Cfg.h"
- /*==================================================================================================
- * SOURCE FILE VERSION INFORMATION
- ==================================================================================================*/
- #define SPI_VENDOR_ID_CFG 43
- #define SPI_AR_RELEASE_MAJOR_VERSION_CFG 4
- #define SPI_AR_RELEASE_MINOR_VERSION_CFG 4
- #define SPI_AR_RELEASE_REVISION_VERSION_CFG 0
- #define SPI_SW_MAJOR_VERSION_CFG 1
- #define SPI_SW_MINOR_VERSION_CFG 0
- #define SPI_SW_PATCH_VERSION_CFG 0
- /*==================================================================================================
- * FILE VERSION CHECKS
- ==================================================================================================*/
- #ifndef DISABLE_MCAL_INTERMODULE_ASR_CHECK
- /* Check if current file and Mcal header file are of the same Autosar version */
- #if ((SPI_AR_RELEASE_MAJOR_VERSION_CFG != MCAL_AR_RELEASE_MAJOR_VERSION) || \
- (SPI_AR_RELEASE_MINOR_VERSION_CFG != MCAL_AR_RELEASE_MINOR_VERSION))
- #error "AutoSar Version Numbers of Spi_Cfg.h and Mcal.h are different"
- #endif
- /* Check if the current file and OsIf.h header file are of the same version */
- #if ((SPI_AR_RELEASE_MAJOR_VERSION_CFG != OSIF_AR_RELEASE_MAJOR_VERSION) || \
- (SPI_AR_RELEASE_MINOR_VERSION_CFG != OSIF_AR_RELEASE_MINOR_VERSION))
- #error "AutoSar Version Numbers of Spi_Cfg.h and OsIf.h are different"
- #endif
- #endif
- /* Check if Spi_VS_0_PBcfg header file and Spi configuration header file are of the same vendor */
- #if (SPI_VENDOR_ID_VS_0_PBCFG_H != SPI_VENDOR_ID_CFG)
- #error "Spi_VS_0_PBcfg.h and Spi_Cfg.h have different vendor IDs"
- #endif
- /* Check if Spi_VS_0_PBcfg header file and Spi configuration header file are of the same Autosar version */
- #if ((SPI_AR_RELEASE_MAJOR_VERSION_VS_0_PBCFG_H != SPI_AR_RELEASE_MAJOR_VERSION_CFG) || \
- (SPI_AR_RELEASE_MINOR_VERSION_VS_0_PBCFG_H != SPI_AR_RELEASE_MINOR_VERSION_CFG) || \
- (SPI_AR_RELEASE_REVISION_VERSION_VS_0_PBCFG_H != SPI_AR_RELEASE_REVISION_VERSION_CFG))
- #error "AutoSar Version Numbers of Spi_VS_0_PBcfg.h and Spi_Cfg.h are different"
- #endif
- /* Check if Spi_VS_0_PBcfg header file and Spi configuration header file are of the same software version */
- #if ((SPI_SW_MAJOR_VERSION_VS_0_PBCFG_H != SPI_SW_MAJOR_VERSION_CFG) || \
- (SPI_SW_MINOR_VERSION_VS_0_PBCFG_H != SPI_SW_MINOR_VERSION_CFG) || \
- (SPI_SW_PATCH_VERSION_VS_0_PBCFG_H != SPI_SW_PATCH_VERSION_CFG))
- #error "Software Version Numbers of Spi_VS_0_PBcfg.h and Spi_Cfg.h are different"
- #endif
- /* Check if Spi_Ipw_Cfg header file and Spi configuration header file are of the same vendor */
- #if (SPI_IPW_VENDOR_ID_CFG_H != SPI_VENDOR_ID_CFG)
- #error "Spi_Ipw_Cfg.h and Spi_Cfg.h have different vendor IDs"
- #endif
- /* Check if Spi_Ipw_Cfg header file and Spi configuration header file are of the same Autosar version */
- #if ((SPI_IPW_AR_RELEASE_MAJOR_VERSION_CFG_H != SPI_AR_RELEASE_MAJOR_VERSION_CFG) || \
- (SPI_IPW_AR_RELEASE_MINOR_VERSION_CFG_H != SPI_AR_RELEASE_MINOR_VERSION_CFG) || \
- (SPI_IPW_AR_RELEASE_REVISION_VERSION_CFG_H != SPI_AR_RELEASE_REVISION_VERSION_CFG))
- #error "AutoSar Version Numbers of Spi_Ipw_Cfg.h and Spi_Cfg.h are different"
- #endif
- /* Check if Spi_Ipw_Cfg header file and Spi configuration header file are of the same software version */
- #if ((SPI_IPW_SW_MAJOR_VERSION_CFG_H != SPI_SW_MAJOR_VERSION_CFG) || \
- (SPI_IPW_SW_MINOR_VERSION_CFG_H != SPI_SW_MINOR_VERSION_CFG) || \
- (SPI_IPW_SW_PATCH_VERSION_CFG_H != SPI_SW_PATCH_VERSION_CFG))
- #error "Software Version Numbers of Spi_Ipw_Cfg.h and Spi_Cfg.h are different"
- #endif
- /*==================================================================================================
- * CONSTANTS
- ==================================================================================================*/
- /**
- * @brief Switches the Development Error functionality ON or OFF.
- * @details Switches the Development Error Detection and Notification ON or OFF.
- * @implements SPI_DEV_ERROR_DETECT_define
- */
- #define SPI_DEV_ERROR_DETECT (STD_ON)
- /**
- * @brief Switches the Version Information API functionality ON or OFF.
- * @details Switches the Spi_GetVersionInfo function ON or OFF.
- */
- #define SPI_VERSION_INFO_API (STD_ON)
- /**
- * @brief Switches the Interruptible Sequences handling functionality ON or OFF.
- * @details This parameter depends on SPI_LEVEL_DELIVERED value.
- * It is only used for SPI_LEVEL_DELIVERED configured to 1 or 2.
- * @implements SPI_INTERRUPTIBLE_SEQ_ALLOWED_define
- */
- #define SPI_INTERRUPTIBLE_SEQ_ALLOWED (STD_OFF)
- /**
- * @brief Switches the Spi_GetHWUnitStatus function ON or OFF.
- * @details Switches the Spi_GetHWUnitStatus function ON or OFF.
- * @implements SPI_HW_STATUS_API_define
- */
- #define SPI_HW_STATUS_API (STD_ON)
- /**
- * @brief Switches the Spi_Cancel function ON or OFF.
- * @details Switches the Spi_Cancel function ON or OFF. (see chapter 8.3.13)
- * @implements SPI_CANCEL_API_define
- */
- #define SPI_CANCEL_API (STD_ON)
- /* Only Internal Buffers are allowed in Handler Driver.*/
- #define USAGE0 0x00u
- /* Only External Buffers are allowed in Handler Driver.*/
- #define USAGE1 0x01u
- /* Both Buffer types are allowd in Handler Driver. */
- #define USAGE2 0x02u
- /**
- * @brief Selects the SPI Handler Driver Channel Buffers usage allowed and delivered.
- * @details Selects the SPI Handler Driver Channel Buffers usage allowed and delivered.
- * (see chapter 7.2.1)
- * @implements SPI_CHANNEL_BUFFERS_ALLOWED_define
- */
- #define SPI_CHANNEL_BUFFERS_ALLOWED (USAGE1)
- /* The LEVEL 0 Simple Synchronous SPI Handler Driver functionalities are selected.*/
- #define LEVEL0 0x00u
- /* The LEVEL 1 Basic Asynchronous SPI Handler Driver functionalities are selected.*/
- #define LEVEL1 0x01u
- /* The LEVEL 2 Enhanced SPI Handler Driver functionalities are selected. */
- #define LEVEL2 0x02u
- /**
- * @brief Selects the SPI Handler Driver level of scalable functionality.
- * @details Selects the SPI Handler Driver level of scalable functionality that
- * is available and delivered. (see chapter 7.1)
- * @implements SPI_LEVEL_DELIVERED_define
- */
- #define SPI_LEVEL_DELIVERED (LEVEL2)
- /**
- * @brief Defines the maximum number of supported channels.
- * @details Defines the maximum number of supported channels
- * for all the driver configurations.
- */
- #define SpiConf_SpiChannel_SpiChannel_0 ((Spi_ChannelType)0)
- #define SPI_MAX_CHANNEL (1u)
- /**
- * @brief Total number of Jobs configured.
- * @details Defines the maximum number of supported jobs
- * for all the driver configurations.
- */
- #define SpiConf_SpiJob_SpiJob_0 ((Spi_JobType)0)
- #define SPI_MAX_JOB (1u)
- /**
- * @brief Total number of Sequences configured.
- * @details Defines the maximum number of supported sequences
- * for all the driver configurations.
- */
- #define SpiConf_SpiSequence_SpiSequence_0 ((Spi_SequenceType)0)
- #define SPI_MAX_SEQUENCE (1u)
- /**
- * @brief Defines the peripherals used throughout the configuration(s).
- * @details Defines the peripherals used throughout the configuration(s).
- */
- #define CSIB0 ((uint8)0u)
- /**
- * @brief Total number of SpiPhyUnit configured.
- */
- #define SPI_MAX_HWUNIT (1u)
- /**
- * @brief Defines the external devices the driver will use.
- * @details Reference to the external device used by this job.
- */
- #define SPI_SpiExternalDevice_0 ((Spi_ExternalDeviceType)0u)
- /**
- * @brief Switches the Production Error Detection and Notification OFF
- *
- * @implements SPI_DISABLE_DEM_REPORT_ERROR_STATUS_define
- *
- */
- #define SPI_DISABLE_DEM_REPORT_ERROR_STATUS (STD_ON) /* Disable Production Error Detection */
- /*==================================================================================================
- * DEFINES AND MACROS
- ==================================================================================================*/
- /**
- * @brief Define values for Autosar configuration variants.
- * @details Define values for Autosar configuration variants.
- */
- #define SPI_VARIANT_PRECOMPILE (0)
- #define SPI_VARIANT_POSTBUILD (1)
- #define SPI_VARIANT_LINKTIME (2)
- /**
- * @brief Defines the use of Pre-Compile(PC) support
- * @details VARIANT-PRE-COMPILE: Only parameters with "Pre-compile time" configu-ration are allowed
- * in this variant.
- */
- /* Pre-Compile(PC) Support. */
- /* Link Time Support. */
- #define SPI_CONFIG_VARIANT (SPI_VARIANT_PRECOMPILE)
- /**
- * @brief Define precompile support.
- * @details Define precompile support if VariantPreCompile or VariantLinkTime is selected and number of variant <=1.
- */
- #define SPI_PRECOMPILE_SUPPORT (STD_ON)
- /**
- * @brief Defines the "Number of Loops" timeout.
- * @details Defines the "Number of Loops" timeout used by Spi_SyncTransmit and Spi_AsyncTransmit
- * function during the wait on TX/RX transmission to complete one frame.
- * One timeout unit means that no TX or RX was executed(the IF statements are returning FALSE).
- */
- #define SPI_TIMEOUT_COUNTER ((uint32)(50000))
- /**
- * @brief Allow simultaneous calls to Spi_SyncTransmit() for different threads.
- * @details Two concurrent calls to Spi_SyncTransmit() will be allowed only if the related sequences
- * do not share HW units.
- */
- #define SPI_SUPPORT_CONCURRENT_SYNC_TRANSMIT (STD_ON)
- /*==================================================================================================
- * SpiAutosarExt DEFINES
- ==================================================================================================*/
- /**
- * @brief If enabled, the asyncronous operation mode (POLLING or INTERRUPT)
- * @details If enabled, the asyncronous operation mode (POLLING or INTERRUPT) can
- * be defined independently for each HWUnit using Spi_SetHWUnitAsyncMode().
- * @implements SPI_HWUNIT_ASYNC_MODE_define
- */
- #define SPI_HWUNIT_ASYNC_MODE (STD_OFF)
- /**
- * @brief If enabled, allows to configure more than 256 sequences, jobs and channels.
- */
- #define SPI_ALLOW_BIGSIZE_COLLECTIONS (STD_OFF)
- /**
- * @brief If enabled, SPI_MAIN_FUNCTION_PERIOD defines the cycle time of the function Spi_MainFunction_Handling in seconds
- */
- /**
- * @brief Total number of partitions configured in Ecu.
- */
- #define SPI_MAX_PARTITIONS (1U)
- /**
- * @brief Enable Multicore Support.
- * @details When SpiGeneral/SpiMulticoreSupport = TRUE,
- * the SPI driver can be configured to support multicore.
- */
- #define SPI_MULTICORE_ENABLED (STD_OFF)
- #if (STD_OFF == SPI_MULTICORE_ENABLED)
- /**
- * @brief Defines default CodeId value which is assigned to HWUnits, Sequences, Jobs and Channels in the case multicore is not enabled.
- */
- #define SPI_SPURIOUS_CORE_ID ((uint32)0UL)
- #endif
- #if (STD_ON == SPI_MULTICORE_ENABLED)
- #define Spi_GetCoreID ((uint32)OsIf_GetCoreID())
- #else
- #define Spi_GetCoreID SPI_SPURIOUS_CORE_ID
- #endif
- /**
- * @brief Slave support
- */
- #define SPI_SLAVE_SUPPORT SPI_IPW_SLAVE_SUPPORT
- /**
- * @brief Defines if transfers are made using DMA or FIFO.
- * @details Defines if transfers are made using DMA or FIFO.
- * @implements SPI_DMA_USED_define
- */
- #define SPI_DMA_USED SPI_IPW_DMA_USED
- /**
- * @brief If enabled, allows dual MCU clock configuration settings.
- * @details If enabled, allows dual MCU clock configuration settings.
- * @implements SPI_DUAL_CLOCK_MODE_define
- */
- #define SPI_DUAL_CLOCK_MODE SPI_IPW_DUAL_CLOCK_MODE
- /**
- * @brief If enabled, allows to Sequence transfer in Dma Fast mode.
- */
- #define SPI_ENABLE_DMAFASTTRANSFER_SUPPORT SPI_IPW_ENABLE_DMAFASTTRANSFER_SUPPORT
- /**
- * @brief Half duplex mdoe enable .
- */
- #define SPI_HALF_DUPLEX_MODE_SUPPORT SPI_IPW_SPI_HALF_DUPLEX_MODE_SUPPORT
- /*==================================================================================================
- * ENUMS
- ==================================================================================================*/
- /*==================================================================================================
- * STRUCTURES AND OTHER TYPEDEFS
- ==================================================================================================*/
- /*==================================================================================================
- * GLOBAL VARIABLE DECLARATIONS
- ==================================================================================================*/
- /*==================================================================================================
- * FUNCTION PROTOTYPES
- ==================================================================================================*/
- #ifdef __cplusplus
- }
- #endif
- #endif /*SPI_CFG_H*/
- /** @} */
|