123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707 |
- /*==================================================================================================
- * Project : RTD AUTOSAR 4.4
- * Platform : CORTEXM
- * Peripheral : DMA,CACHE,TRGMUX,FLEXIO
- * Dependencies : none
- *
- * 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.
- ==================================================================================================*/
- /**
- * @file Dma_Ip_Hwv2_AccessInline.h
- *
- * @version 1.0.0
- *
- * @brief AUTOSAR Mcl - Dma Ip driver source file.
- * @details
- *
- * @addtogroup DMA_IP_DRIVER DMA IP Driver
- * @{
- */
- /* Prevention from multiple including the same header */
- #ifndef DMA_IP_HWV2_ACCESSINLINE_H_
- #define DMA_IP_HWV2_ACCESSINLINE_H_
- /*==================================================================================================
- * INCLUDE FILES
- * 1) system and project includes
- * 2) needed interfaces from external units
- * 3) internal and external interfaces from this unit
- ==================================================================================================*/
- #include "Dma_Ip.h"
- #include "Dma_Ip_Devassert.h"
- #if (DMA_IP_IS_AVAILABLE == STD_ON)
- #if (DMA_IP_HWV2_IS_AVAILABLE == STD_ON)
- /*==================================================================================================
- SOURCE FILE VERSION INFORMATION
- ==================================================================================================*/
- #define DMA_IP_HWV2_ACCESSINLINE_VENDOR_ID_H 43
- #define DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_MAJOR_VERSION_H 4
- #define DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_MINOR_VERSION_H 4
- #define DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_REVISION_VERSION_H 0
- #define DMA_IP_HWV2_ACCESSINLINE_SW_MAJOR_VERSION_H 1
- #define DMA_IP_HWV2_ACCESSINLINE_SW_MINOR_VERSION_H 0
- #define DMA_IP_HWV2_ACCESSINLINE_SW_PATCH_VERSION_H 0
- /*==================================================================================================
- FILE VERSION CHECKS
- ==================================================================================================*/
- /* Check if header file and Dma_Ip.h file are of the same vendor */
- #if (DMA_IP_HWV2_ACCESSINLINE_VENDOR_ID_H != DMA_IP_VENDOR_ID_H)
- #error "Dma_Ip_Hwv2_AccessInline.h and Dma_Ip.h have different vendor ids"
- #endif
- /* Check if header file and Dma_Ip.h file are of the same Autosar version */
- #if ((DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_AR_RELEASE_MAJOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_MINOR_VERSION_H != DMA_IP_AR_RELEASE_MINOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_REVISION_VERSION_H != DMA_IP_AR_RELEASE_REVISION_VERSION_H) \
- )
- #error "AutoSar Version Numbers of Dma_Ip_Hwv2_AccessInline.h and Dma_Ip.h are different"
- #endif
- /* Check if header file and Dma_Ip.h file are of the same Software version */
- #if ((DMA_IP_HWV2_ACCESSINLINE_SW_MAJOR_VERSION_H != DMA_IP_SW_MAJOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_SW_MINOR_VERSION_H != DMA_IP_SW_MINOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_SW_PATCH_VERSION_H != DMA_IP_SW_PATCH_VERSION_H) \
- )
- #error "Software Version Numbers of Dma_Ip_Hwv2_AccessInline.h and Dma_Ip.h are different"
- #endif
- /* Check if header file and Dma_Ip_Devassert.h file are of the same vendor */
- #if (DMA_IP_HWV2_ACCESSINLINE_VENDOR_ID_H != DMA_IP_DEVASSERT_VENDOR_ID_H)
- #error "Dma_Ip_Hwv2_AccessInline.h and Dma_Ip_Devassert.h have different vendor ids"
- #endif
- /* Check if header file and Dma_Ip_Devassert.h file are of the same Autosar version */
- #if ((DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_MAJOR_VERSION_H != DMA_IP_DEVASSERT_AR_RELEASE_MAJOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_MINOR_VERSION_H != DMA_IP_DEVASSERT_AR_RELEASE_MINOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_AR_RELEASE_REVISION_VERSION_H != DMA_IP_DEVASSERT_AR_RELEASE_REVISION_VERSION_H) \
- )
- #error "AutoSar Version Numbers of Dma_Ip_Hwv2_AccessInline.h and Dma_Ip_Devassert.h are different"
- #endif
- /* Check if header file and Dma_Ip_Devassert.h file are of the same Software version */
- #if ((DMA_IP_HWV2_ACCESSINLINE_SW_MAJOR_VERSION_H != DMA_IP_DEVASSERT_SW_MAJOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_SW_MINOR_VERSION_H != DMA_IP_DEVASSERT_SW_MINOR_VERSION_H) || \
- (DMA_IP_HWV2_ACCESSINLINE_SW_PATCH_VERSION_H != DMA_IP_DEVASSERT_SW_PATCH_VERSION_H) \
- )
- #error "Software Version Numbers of Dma_Ip_Hwv2_AccessInline.h and Dma_Ip_Devassert.h are different"
- #endif
- #define MCL_START_SEC_CODE
- /* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
- #include "Mcl_MemMap.h"
- /*==================================================================================================
- * DMA INSTANCE CONFIGURATION FUNCTION - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaInst_SetConfig(Dma_Ip_Hwv2InstRegType * const ptInst, const Dma_Ip_LogicInstanceConfigType * const pxConfig)
- {
- uint32 reg = ptInst->reg_CR;
- reg = ((reg & (~(DMA_CR_EDBG_MASK))) | (DMA_CR_EDBG(pxConfig->EnDebug ? TRUE : FALSE)));
- reg = ((reg & (~(DMA_CR_ERCA_MASK))) | (DMA_CR_ERCA(pxConfig->EnRoundRobin ? TRUE : FALSE)));
- reg = ((reg & (~(DMA_CR_HOE_MASK))) | (DMA_CR_HOE(pxConfig->EnHaltAfterError ? TRUE : FALSE)));
- reg = ((reg & (~(DMA_CR_EMLM_MASK))) | (DMA_CR_EMLM(TRUE)));
- reg = ((reg & (~(DMA_CR_CLM_MASK))));
- ptInst->reg_CR = reg;
- }
- #if (DMA_IP_DMACRC_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaInst_SetCrcConfig(Dma_Ip_HwCrcGlobalType * const ptInst, const Dma_Ip_LogicInstanceConfigType * const pxConfig)
- {
- uint32 reg = ptInst->reg_GEC;
- reg = ((reg & (~(DMA_CRC_GEC_SWAP_BIT_MASK))) | (DMA_CRC_GEC_SWAP_BIT(pxConfig->EnSwapBit ? TRUE : FALSE)));
- reg = ((reg & (~(DMA_CRC_GEC_SWAP_BYTE_MASK))) | (DMA_CRC_GEC_SWAP_BYTE(pxConfig->EnSwapByte ? TRUE : FALSE)));
- reg = ((reg & (~(DMA_CRC_GEC_GBL_EN_MASK))) | (DMA_CRC_GEC_GBL_EN(pxConfig->EnGlobal ? TRUE : FALSE)));
- ptInst->reg_GEC = reg;
- }
- #endif /* #if (DMA_IP_DMACRC_IS_AVAILABLE == STD_ON) */
- /*==================================================================================================
- * DMA INSTANCE CMD FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaInst_CmdCancelTransfer(Dma_Ip_Hwv2InstRegType * const ptInst)
- {
- uint32 reg = ptInst->reg_CR;
- /* Set CX bit to 1 */
- reg = ((reg & (~(DMA_CR_CX_MASK))) | (DMA_CR_CX(TRUE)));
- ptInst->reg_CR = reg;
- }
- static inline void hwv2AccInlineDmaInst_CmdCancelTransferWithError(Dma_Ip_Hwv2InstRegType * const ptInst)
- {
- uint32 reg = ptInst->reg_CR;
- /* Set ECX bit to 1 */
- reg = ((reg & (~(DMA_CR_ECX_MASK))) | (DMA_CR_ECX(TRUE)));
- ptInst->reg_CR = reg;
- }
- static inline void hwv2AccInlineDmaInst_CmdHalt(Dma_Ip_Hwv2InstRegType * const ptInst)
- {
- uint32 reg = ptInst->reg_CR;
- /* Set HALT bit to 1 */
- reg = ((reg & (~(DMA_CR_HALT_MASK))) | (DMA_CR_HALT(TRUE)));
- ptInst->reg_CR = reg;
- }
- static inline void hwv2AccInlineDmaInst_CmdResume(Dma_Ip_Hwv2InstRegType * const ptInst)
- {
- uint32 reg = ptInst->reg_CR;
- /* Set HALT bit to 0 */
- reg = ((reg & (~(DMA_CR_HALT_MASK))) | (DMA_CR_HALT(FALSE)));
- ptInst->reg_CR = reg;
- }
- /*==================================================================================================
- * DMA INSTANCE STATUS FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaInst_GetErrorStatus(const Dma_Ip_Hwv2InstRegType * const ptInst, uint32 * const pValue)
- {
- /* Get value from ES register */
- *pValue = (ptInst->reg_ES);
- }
- static inline void hwv2AccInlineDmaInst_GetActiveIdStatus(const Dma_Ip_Hwv2InstRegType * const ptInst, uint8 * const pValue)
- {
- /* Hardware version 2 doesn't support get active ID status */
- (void)ptInst;
- *pValue = (uint8)0xFFU;
- }
- static inline void hwv2AccInlineDmaInst_GetActiveStatus(const Dma_Ip_Hwv2InstRegType * const ptInst, boolean * const pBool)
- {
- /* Get value from CR register */
- *pBool = ((((ptInst->reg_CR & DMA_CR_ACTIVE_MASK) >> DMA_CR_ACTIVE_SHIFT) != 0U) ? TRUE : FALSE);
- }
- /*==================================================================================================
- * DMA CHANNEL CMD FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_CmdSetRequest(Dma_Ip_Hwv2InstRegType * ptCh, const uint32 Channel)
- {
- /* Set SERQ bit */
- uint8 reg = DMA_SERQ_SERQ(Channel);
- ptCh->reg_SERQ = ((uint8)reg);
- }
- static inline void hwv2AccInlineDmaCh_CmdClearRequest(Dma_Ip_Hwv2InstRegType * ptCh, const uint32 Channel)
- {
- /* Set CERQ bit */
- uint8 reg = DMA_CERQ_CERQ(Channel);
- ptCh->reg_CERQ = ((uint8)reg);
- }
- static inline void hwv2AccInlineDmaCh_CmdSwReqStart(Dma_Ip_Hwv2InstRegType * ptCh, const uint32 Channel)
- {
- /* Set SSRT bit */
- uint8 reg = DMA_SSRT_SSRT(Channel);
- ptCh->reg_SSRT = ((uint8)reg);
- }
- static inline void hwv2AccInlineDmaCh_CmdClearDone(Dma_Ip_Hwv2InstRegType * ptCh, const uint32 Channel)
- {
- /* Set CDNE bit */
- uint8 reg = DMA_CDNE_CDNE(Channel);
- ptCh->reg_CDNE = ((uint8)reg);
- }
- static inline void hwv2AccInlineDmaCh_CmdClearError(Dma_Ip_Hwv2InstRegType * ptCh, const uint32 Channel)
- {
- /* Set CERR bit */
- uint8 reg = DMA_CERR_CERR(Channel);
- ptCh->reg_CERR = ((uint8)reg);
- }
- /*==================================================================================================
- * DMA CHANNEL STATUS FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_GetErrorStatus(uint32 LocHwCh, const Dma_Ip_Hwv2InstRegType * ptCh, uint32 * const pValue)
- {
- if(ptCh->reg_ERR >> LocHwCh)
- {
- /* Get ES register value */
- *pValue = (uint32)(ptCh->reg_ES);
- }
- else
- {
- *pValue = 0U;
- }
- }
- static inline void hwv2AccInlineDmaCh_GetActiveStatus(const Dma_Ip_TcdRegType * ptTcd, boolean * const pBool)
- {
- /* Get ACTIVE bit value */
- *pBool = ((((ptTcd->reg_CSR & DMA_TCD_CSR_ACTIVE_MASK) >> DMA_TCD_CSR_ACTIVE_SHIFT) != 0U) ? TRUE : FALSE);
- }
- static inline void hwv2AccInlineDmaCh_GetDoneStatus(const Dma_Ip_TcdRegType * ptTcd, boolean * const pBool)
- {
- /* Get DONE bit value */
- *pBool = ((((ptTcd->reg_CSR & DMA_TCD_CSR_DONE_MASK) >> DMA_TCD_CSR_DONE_SHIFT) != 0U) ? TRUE : FALSE);
- }
- /*==================================================================================================
- * DMA CHANNEL GLOBAL FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- #if (DMA_IP_MASTER_ID_REPLICATION_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_SetControl_EnMasterIdReplication(Dma_Ip_Hwv2InstRegType * ptCh, uint32 Value)
- {
- /* To avoid misra violation */
- (void)ptCh;
- (void)Value;
- }
- #endif
- #if (DMA_IP_BUFFERED_WRITES_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_SetControl_EnBufferedWrites(Dma_Ip_Hwv2InstRegType * ptCh, uint32 Value)
- {
- /* To avoid misra violation */
- (void)ptCh;
- (void)Value;
- }
- #endif
- static inline void hwv2AccInlineDmaCh_SetRequest_SourceMux(volatile Dma_Ip_MuxRegType * pMuxChCfg, const uint32 Value)
- {
- /* Set value for SOURCE bit */
- Dma_Ip_MuxRegType reg = *pMuxChCfg;
- *pMuxChCfg = ((uint8)(reg & (~(DMAMUX_CHCFG_SOURCE_MASK))) | (DMAMUX_CHCFG_SOURCE(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetRequest_EnTriggerMux(volatile Dma_Ip_MuxRegType * pMuxChCfg, uint32 Value)
- {
- /* Set value for TRIG bit */
- Dma_Ip_MuxRegType reg = *pMuxChCfg;
- *pMuxChCfg = ((uint8)(reg & (~(DMAMUX_CHCFG_TRIG_MASK))) | (DMAMUX_CHCFG_TRIG(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetRequest_EnHwRequestMux(volatile Dma_Ip_MuxRegType * pMuxChCfg, const uint32 Value)
- {
- /* Set value for ENBL bit */
- Dma_Ip_MuxRegType reg = *pMuxChCfg;
- *pMuxChCfg = ((uint8)(reg & (~(DMAMUX_CHCFG_ENBL_MASK))) | (DMAMUX_CHCFG_ENBL(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetRequest_EnHwRequest(Dma_Ip_Hwv2InstRegType * ptCh, uint32 Channel, uint32 Value)
- {
- /* Set value for ERQ register */
- uint32 reg = ptCh->reg_ERQ;
- ptCh->reg_ERQ = ((reg & (~((uint32)((uint32)DMA_ERQ_ERQ0_MASK << Channel)))) | (Value << Channel));
- }
- static inline void hwv2AccInlineDmaCh_SetInterrupt_EnError(Dma_Ip_Hwv2InstRegType * ptCh, uint32 Channel, uint32 Value)
- {
- /* Set value for EEI register */
- uint32 reg = ptCh->reg_EEI;
- ptCh->reg_EEI = ((reg & (~((uint32)((uint32)DMA_EEI_EEI0_MASK << Channel)))) | (Value << Channel));
- }
- static inline void hwv2AccInlineDmaCh_SetPriority_Group(volatile const uint32 * const pGrpri, uint32 Value)
- {
- /* To avoid misra violations */
- (void)pGrpri;
- (void)Value;
- }
- static inline void hwv2AccInlineDmaCh_SetPriority_Level(Dma_Ip_Hwv2InstRegType * ptCh, uint32 Channel, uint32 Value)
- {
- /* Set value for CHPRI bit */
- uint8 reg = ptCh->reg_DCHPRI[Channel];
- ptCh->reg_DCHPRI[Channel] = ((uint8)((reg & (~(DMA_DCHPRI_CHPRI_MASK))) | (DMA_DCHPRI_CHPRI(Value))));
- }
- #if (DMA_IP_PREEMPTION_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_SetPriority_EnPreemption(Dma_Ip_Hwv2InstRegType * ptCh, uint32 Channel, uint32 Value)
- {
- /* Set value for ECP bit */
- uint8 reg = ptCh->reg_DCHPRI[Channel];
- ptCh->reg_DCHPRI[Channel] = ((uint8)((reg & (~(DMA_DCHPRI_ECP_MASK))) | (DMA_DCHPRI_ECP(Value))));
- }
- #endif
- #if (DMA_IP_DISABLE_PREEMPT_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_SetPriority_DisPreempt(Dma_Ip_Hwv2InstRegType * ptCh, uint32 Channel, uint32 Value)
- {
- /* Set value for DPA bit */
- uint8 reg = ptCh->reg_DCHPRI[Channel];
- ptCh->reg_DCHPRI[Channel] = ((uint8)((reg & (~(DMA_DCHPRI_DPA_MASK))) | (DMA_DCHPRI_DPA(Value))));
- }
- #endif
- /*==================================================================================================
- * DMA CHANNEL TRANSFER FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_SetSource_Address(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for SADDR bit */
- uint32 reg = ptTcd->reg_SADDR;
- ptTcd->reg_SADDR = ((reg & (~(DMA_TCD_SADDR_SADDR_MASK))) | (DMA_TCD_SADDR_SADDR(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetSource_SignedOffset(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for SOFF bit */
- uint32 reg = ptTcd->reg_SOFF;
- ptTcd->reg_SOFF = ((uint16)(reg & (~(DMA_TCD_SOFF_SOFF_MASK))) | (DMA_TCD_SOFF_SOFF(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetSource_SignedLastAddrAdj(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for SLAST bit */
- uint32 reg = ptTcd->reg_SLAST;
- ptTcd->reg_SLAST = ((reg & (~(DMA_TCD_SLAST_SLAST_MASK))) | (DMA_TCD_SLAST_SLAST(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetSource_TransferSize(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for SSIZE bit */
- uint32 reg = ptTcd->reg_ATTR;
- ptTcd->reg_ATTR = ((uint16)(reg & (~(DMA_TCD_ATTR_SSIZE_MASK))) | (DMA_TCD_ATTR_SSIZE(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetSource_Modulo(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for SMOD bit */
- uint32 reg = ptTcd->reg_ATTR;
- ptTcd->reg_ATTR = ((uint16)(reg & (~(DMA_TCD_ATTR_SMOD_MASK))) | (DMA_TCD_ATTR_SMOD(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetDestination_Address(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DADDR bit */
- uint32 reg = ptTcd->reg_DADDR;
- ptTcd->reg_DADDR = ((reg & (~(DMA_TCD_DADDR_DADDR_MASK))) | (DMA_TCD_DADDR_DADDR(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetDestination_SignedOffset(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DOFF bit */
- uint16 reg = ptTcd->reg_DOFF;
- ptTcd->reg_DOFF = ((uint16)(reg & (~(DMA_TCD_DOFF_DOFF_MASK))) | (DMA_TCD_DOFF_DOFF(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetDestination_LastAddrAdj(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DLASTSGA bit */
- uint32 reg = ptTcd->reg_DLAST_SGA;
- ptTcd->reg_DLAST_SGA = ((reg & (~(DMA_TCD_DLASTSGA_DLASTSGA_MASK))) | (DMA_TCD_DLASTSGA_DLASTSGA(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetDestination_TransferSize(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DSIZE bit */
- uint16 reg = ptTcd->reg_ATTR;
- ptTcd->reg_ATTR = ((uint16)(reg & (~(DMA_TCD_ATTR_DSIZE_MASK))) | (DMA_TCD_ATTR_DSIZE(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetDestination_Modulo(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DMOD bit */
- uint16 reg = ptTcd->reg_ATTR;
- ptTcd->reg_ATTR = ((uint16)(reg & (~(DMA_TCD_ATTR_DMOD_MASK))) | (DMA_TCD_ATTR_DMOD(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMinorLoop_enSrcOffset(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for SMLOE bit */
- uint32 reg = ptTcd->reg_NBYTES.reg_MLOFFYES;
- ptTcd->reg_NBYTES.reg_MLOFFYES = ((reg & (~(DMA_TCD_NBYTES_MLOFFYES_SMLOE_MASK))) | (DMA_TCD_NBYTES_MLOFFYES_SMLOE(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMinorLoop_enDstOffset(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DMLOE bit */
- uint32 reg = ptTcd->reg_NBYTES.reg_MLOFFYES;
- ptTcd->reg_NBYTES.reg_MLOFFYES = ((reg & (~(DMA_TCD_NBYTES_MLOFFYES_DMLOE_MASK))) | (DMA_TCD_NBYTES_MLOFFYES_DMLOE(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMinorLoop_SignedOffset(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for MLOFF bit */
- uint32 reg = ptTcd->reg_NBYTES.reg_MLOFFYES;
- ptTcd->reg_NBYTES.reg_MLOFFYES = ((reg & (~(DMA_TCD_NBYTES_MLOFFYES_MLOFF_MASK))) | (DMA_TCD_NBYTES_MLOFFYES_MLOFF(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMinorLoop_EnLink(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for ELINK bit */
- uint16 reg = ptTcd->reg_BITER.reg_ELINKYES;
- ptTcd->reg_BITER.reg_ELINKYES = ((uint16)(reg & (~(DMA_TCD_BITER_ELINKYES_ELINK_MASK))) | (DMA_TCD_BITER_ELINKYES_ELINK(Value)));
- reg = ptTcd->reg_CITER.reg_ELINKYES;
- ptTcd->reg_CITER.reg_ELINKYES = ((uint16)(reg & (~(DMA_TCD_CITER_ELINKYES_ELINK_MASK))) | (DMA_TCD_CITER_ELINKYES_ELINK(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMinorLoop_LinkCh(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for LINKCH bit */
- uint16 reg = ptTcd->reg_BITER.reg_ELINKYES;
- ptTcd->reg_BITER.reg_ELINKYES = ((uint16)(reg & (~(DMA_TCD_BITER_ELINKYES_LINKCH_MASK))) | (DMA_TCD_BITER_ELINKYES_LINKCH(Value)));
- reg = ptTcd->reg_CITER.reg_ELINKYES;
- ptTcd->reg_CITER.reg_ELINKYES = ((uint16)(reg & (~(DMA_TCD_CITER_ELINKYES_LINKCH_MASK))) | (DMA_TCD_CITER_ELINKYES_LINKCH(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMinorLoop_Size(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for NBYTES bit */
- uint32 reg = ptTcd->reg_NBYTES.reg_MLOFFNO;
- if(0U != (reg & (DMA_TCD_NBYTES_MLOFFYES_SMLOE_MASK | DMA_TCD_NBYTES_MLOFFYES_DMLOE_MASK)))
- {
- ptTcd->reg_NBYTES.reg_MLOFFNO = ((reg & (~(DMA_TCD_NBYTES_MLOFFYES_NBYTES_MASK))) | (DMA_TCD_NBYTES_MLOFFYES_NBYTES(Value)));
- }
- else
- {
- ptTcd->reg_NBYTES.reg_MLOFFNO = ((reg & (~(DMA_TCD_NBYTES_MLOFFNO_NBYTES_MASK))) | (DMA_TCD_NBYTES_MLOFFNO_NBYTES(Value)));
- }
- }
- static inline void hwv2AccInlineDmaCh_SetMajorLoop_EnLink(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for MAJORELINK bit */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_MAJORELINK_MASK))) | (DMA_TCD_CSR_MAJORELINK(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMajorLoop_LinkCh(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for MAJORLINKCH bit */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_MAJORLINKCH_MASK))) | (DMA_TCD_CSR_MAJORLINKCH(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetMajorLoop_Count(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for BITER and CITER bit */
- uint16 reg = (ptTcd->reg_BITER.reg_ELINKYES & (DMA_TCD_BITER_ELINKYES_ELINK_MASK)) |
- (ptTcd->reg_CITER.reg_ELINKYES & (DMA_TCD_CITER_ELINKYES_ELINK_MASK));
- if(0U != reg)
- {
- reg = ptTcd->reg_BITER.reg_ELINKYES;
- ptTcd->reg_BITER.reg_ELINKYES = ((uint16)(reg & (~(DMA_TCD_BITER_ELINKYES_BITER_MASK))) | (DMA_TCD_BITER_ELINKYES_BITER(Value)));
- reg = ptTcd->reg_CITER.reg_ELINKYES;
- ptTcd->reg_CITER.reg_ELINKYES = ((uint16)(reg & (~(DMA_TCD_CITER_ELINKYES_CITER_MASK))) | (DMA_TCD_CITER_ELINKYES_CITER(Value)));
- }
- else
- {
- reg = ptTcd->reg_BITER.reg_ELINKNO;
- ptTcd->reg_BITER.reg_ELINKNO = ((uint16)(reg & (~(DMA_TCD_BITER_ELINKNO_BITER_MASK))) | (DMA_TCD_BITER_ELINKNO_BITER(Value)));
- reg = ptTcd->reg_CITER.reg_ELINKNO;
- ptTcd->reg_CITER.reg_ELINKNO = ((uint16)(reg & (~(DMA_TCD_CITER_ELINKNO_CITER_MASK))) | (DMA_TCD_CITER_ELINKNO_CITER(Value)));
- }
- }
- static inline void hwv2AccInlineDmaCh_SetControl_ScatterGatherAddress(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DLASTSGA bit */
- uint32 reg = ptTcd->reg_DLAST_SGA;
- ptTcd->reg_DLAST_SGA = ((reg & (~(DMA_TCD_DLASTSGA_DLASTSGA_MASK))) | (DMA_TCD_DLASTSGA_DLASTSGA(Value)));
- }
- #if (DMA_IP_STORE_DST_ADDR_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_SetControl_StoreDestinationAddress(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* To avoid misra violations */
- (void)ptTcd;
- (void)Value;
- }
- #endif
- static inline void hwv2AccInlineDmaCh_SetControl_EnStart(Dma_Ip_TcdRegType * ptTcd, const boolean Value)
- {
- /* Set value for START bit */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_START_MASK))) | (DMA_TCD_CSR_START(Value ? 1U : 0U)));
- }
- static inline void hwv2AccInlineDmaCh_SetControl_EnMajor(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for INTMAJOR bit */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_INTMAJOR_MASK))) | (DMA_TCD_CSR_INTMAJOR(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetControl_EnHalfMajor(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for INTHALF bit */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_INTHALF_MASK))) | (DMA_TCD_CSR_INTHALF(Value)));
- }
- static inline void hwv2AccInlineDmaCh_SetControl_DisAutoHwRequest(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for DREQ bit */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_DREQ_MASK))) | (DMA_TCD_CSR_DREQ(Value)));
- }
- #if (DMA_IP_END_OF_PACKET_SIGNAL_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_SetControl_EnEndOfPacketSignal(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* To avoid misra violations */
- (void)ptTcd;
- (void)Value;
- }
- #endif
- static inline void hwv2AccInlineDmaCh_SetControl_BandwidthControl(Dma_Ip_TcdRegType * ptTcd, const uint32 Value)
- {
- /* Set value for BWC bit */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_BWC_MASK))) | (DMA_TCD_CSR_BWC(Value)));
- }
- #if (DMA_IP_DMACRC_IS_AVAILABLE == STD_ON)
- /*==================================================================================================
- * DMA CHANNEL CRC FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_SetCrc_InstanceChannelSelect(Dma_Ip_HwCrcCtrlType * const ptCrc, uint32 Value)
- {
- (void)ptCrc;
- (void)Value;
- }
- static inline void hwv2AccInlineDmaCh_SetCrc_ModeSelect(Dma_Ip_HwCrcCtrlType * const ptCrc, uint32 Value)
- {
- (void)ptCrc;
- (void)Value;
- }
- static inline void hwv2AccInlineDmaCh_SetCrc_PolynomialSelect(Dma_Ip_HwCrcCtrlType * const ptCrc, uint32 Value)
- {
- (void)ptCrc;
- (void)Value;
- }
- static inline void hwv2AccInlineDmaCh_SetCrc_EnableInitialValue(Dma_Ip_HwCrcCtrlType * const ptCrc, uint32 Value)
- {
- (void)ptCrc;
- (void)Value;
- }
- static inline void hwv2AccInlineDmaCh_SetCrc_InitialValue(Dma_Ip_HwCrcCtrlType * const ptCrc, uint32 Value)
- {
- (void)ptCrc;
- (void)Value;
- }
- static inline void hwv2AccInlineDmaCh_SetCrc_EnableLogic(Dma_Ip_HwCrcCtrlType * const ptCrc, uint32 Value)
- {
- (void)ptCrc;
- (void)Value;
- }
- #endif /* #if (DMA_IP_DMACRC_IS_AVAILABLE == STD_ON) */
- /*==================================================================================================
- * DMA CHANNEL GET PARAMETER - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_GetSourceAddress(const Dma_Ip_TcdRegType * ptTcd, uint32 * const retValue)
- {
- /* Get SADDR register value */
- *retValue = (uint32)ptTcd->reg_SADDR;
- }
- static inline void hwv2AccInlineDmaCh_GetDestinationAddress(const Dma_Ip_TcdRegType * ptTcd, uint32 * const retValue)
- {
- /* Get DADDR register value */
- *retValue = (uint32)ptTcd->reg_DADDR;
- }
- static inline void hwv2AccInlineDmaCh_GetBeginIterCount(const Dma_Ip_TcdRegType * ptTcd, uint32 * const retValue)
- {
- /* Get BITER bit value */
- uint16 reg = ptTcd->reg_BITER.reg_ELINKYES & (DMA_TCD_BITER_ELINKYES_ELINK_MASK);
- if(0U != reg)
- {
- *retValue = (uint32)((ptTcd->reg_BITER.reg_ELINKYES & (uint32)DMA_TCD_BITER_ELINKYES_BITER_MASK) >> DMA_TCD_BITER_ELINKYES_BITER_SHIFT);
- }
- else
- {
- *retValue = (uint32)((ptTcd->reg_BITER.reg_ELINKYES & (uint32)DMA_TCD_BITER_ELINKNO_BITER_MASK) >> DMA_TCD_BITER_ELINKNO_BITER_SHIFT);
- }
- }
- static inline void hwv2AccInlineDmaCh_GetCurrentIterCount(const Dma_Ip_TcdRegType * ptTcd, uint32 * const retValue)
- {
- /* Get CITER bit value */
- uint16 reg = (ptTcd->reg_CITER.reg_ELINKYES & (DMA_TCD_CITER_ELINKYES_ELINK_MASK));
- if(0U != reg)
- {
- *retValue = (uint32)((ptTcd->reg_CITER.reg_ELINKYES & (uint32)DMA_TCD_CITER_ELINKYES_CITER_MASK) >> DMA_TCD_CITER_ELINKYES_CITER_SHIFT);
- }
- else
- {
- *retValue = (uint32)((ptTcd->reg_CITER.reg_ELINKNO & (uint32)DMA_TCD_CITER_ELINKNO_CITER_MASK) >> DMA_TCD_CITER_ELINKNO_CITER_SHIFT);
- }
- }
- #if (DMA_IP_STORE_DST_ADDR_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_GetStoreDstAddress(Dma_Ip_TcdRegType * ptTcd, uint32 * const retValue)
- {
- /* Hardware version 2 doesn't have this feature */
- (void)ptTcd;
- *retValue = (uint32)0U;
- }
- #endif
- #if (DMA_IP_MASTER_ID_REPLICATION_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_GetMasterId(Dma_Ip_ChRegType * ptCh, uint32 * const retValue)
- {
- /* Hardware version 2 doesn't have this feature */
- (void)ptCh;
- *retValue = (uint32)0U;
- }
- #endif
- static inline void hwv2AccInlineDmaCh_GetIntMajor(const Dma_Ip_TcdRegType * ptTcd, uint32 * const retValue)
- {
- /* Get INTMAJOR bit value */
- *retValue = (uint32)((ptTcd->reg_CSR & (uint32)DMA_TCD_CSR_INTMAJOR_MASK) >> DMA_TCD_CSR_INTMAJOR_SHIFT);
- }
- static inline void hwv2AccInlineDmaCh_GetIntHalfMajor(const Dma_Ip_TcdRegType * ptTcd, uint32 * const retValue)
- {
- /* Get INTHALF bit value */
- *retValue = (uint32)((ptTcd->reg_CSR & (uint32)DMA_TCD_CSR_INTHALF_MASK) >> DMA_TCD_CSR_INTHALF_SHIFT);
- }
- #if (DMA_IP_DMACRC_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_GetFinalCrc(Dma_Ip_HwCrcCtrlType * const pDmaCrcCtrl, uint32 * const retValue)
- {
- /* Hardware version 2 doesn't have this feature */
- (void)pDmaCrcCtrl;
- *retValue = (uint32)0U;
- }
- #endif /* #if (DMA_IP_DMACRC_IS_AVAILABLE == STD_ON) */
- /*==================================================================================================
- * DMA CHANNEL AUXILIARY FUNCTIONS - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_SetAuxiliary_EnScatterGatherProcessing(Dma_Ip_TcdRegType * ptTcd, boolean Value)
- {
- /* Set ESG bit value */
- uint16 reg = ptTcd->reg_CSR;
- ptTcd->reg_CSR = ((uint16)(reg & (~(DMA_TCD_CSR_ESG_MASK))) | (DMA_TCD_CSR_ESG(Value ? 1U : 0U)));
- }
- #if (DMA_IP_STORE_DST_ADDR_IS_AVAILABLE == STD_ON)
- static inline void hwv2AccInlineDmaCh_SetAuxiliary_EnDestinationStoreAddress(Dma_Ip_TcdRegType * ptTcd, boolean Value)
- {
- /* To avoid misra violations */
- (void)ptTcd;
- (void)Value;
- }
- #endif
- /*==================================================================================================
- * TCD CONTROL AND STATUS (TCD_CSR) - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_SetControlAndStatus(Dma_Ip_TcdRegType * ptTcd, const Dma_Ip_ScatterGatherConfigType * const pxLocScatterGather)
- {
- /* Set value for TCD_CSR register*/
- uint16 reg = ptTcd->reg_CSR;
- reg = ((uint16)(reg & (~(DMA_TCD_CSR_START_MASK))) | (DMA_TCD_CSR_START(pxLocScatterGather->TransferConfig->Control.EnStart ? 1U : 0U)));
- reg = ((uint16)(reg & (~(DMA_TCD_CSR_BWC_MASK))) | (DMA_TCD_CSR_BWC(pxLocScatterGather->TransferConfig->Control.BandwidthControl)));
- reg = ((uint16)(reg & (~(DMA_TCD_CSR_INTMAJOR_MASK))) | (DMA_TCD_CSR_INTMAJOR(pxLocScatterGather->TransferConfig->Control.EnMajorInt ? 1U : 0U)));
- reg = ((uint16)(reg & (~(DMA_TCD_CSR_INTHALF_MASK))) | (DMA_TCD_CSR_INTHALF(pxLocScatterGather->TransferConfig->Control.EnHalfMajorInt ? 1U : 0U)));
- reg = ((uint16)(reg & (~(DMA_TCD_CSR_DREQ_MASK))) | (DMA_TCD_CSR_DREQ(pxLocScatterGather->TransferConfig->Control.DisAutoHwRequest ? 1U : 0U)));
- ptTcd->reg_CSR= reg;
- }
- /*==================================================================================================
- * TCD TRANSFER ATTRIBUTES (TCD_ATTR) - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_SetTransferAttributes(Dma_Ip_TcdRegType * ptTcd, const Dma_Ip_ScatterGatherConfigType * const pxLocScatterGather)
- {
- /* Set value for TCD_ATTR register*/
- uint16 reg = ptTcd->reg_ATTR;
- reg = ((uint16)(reg & (~(DMA_TCD_ATTR_SSIZE_MASK))) | (DMA_TCD_ATTR_SSIZE(pxLocScatterGather->TransferConfig->Source.TransferSize)));
- reg = ((uint16)(reg & (~(DMA_TCD_ATTR_SMOD_MASK))) | (DMA_TCD_ATTR_SMOD(pxLocScatterGather->TransferConfig->Source.Modulo)));
- reg = ((uint16)(reg & (~(DMA_TCD_ATTR_DSIZE_MASK))) | (DMA_TCD_ATTR_DSIZE(pxLocScatterGather->TransferConfig->Destination.TransferSize)));
- reg = ((uint16)(reg & (~(DMA_TCD_ATTR_DMOD_MASK))) | (DMA_TCD_ATTR_DMOD(pxLocScatterGather->TransferConfig->Destination.Modulo)));
- ptTcd->reg_ATTR= reg;
- }
- /*==================================================================================================
- * TCD SIGNED MINOR LOOP OFFSET (TCD_NBYTES_MLOFFYES) - REGISTER ACCESS
- ==================================================================================================*/
- static inline void hwv2AccInlineDmaCh_SetSignedMinorLoopOffset(Dma_Ip_TcdRegType * ptTcd, const Dma_Ip_ScatterGatherConfigType * const pxLocScatterGather)
- {
- /* Set value for TCD_NBYTES_MLOFFYES register*/
- uint32 reg = ptTcd->reg_NBYTES.reg_MLOFFYES;
- reg = ((reg & (~(DMA_TCD_NBYTES_MLOFFYES_SMLOE_MASK))) | (DMA_TCD_NBYTES_MLOFFYES_SMLOE(pxLocScatterGather->TransferConfig->MinorLoop.EnSrcOffset ? 1U : 0U)));
- reg = ((reg & (~(DMA_TCD_NBYTES_MLOFFYES_DMLOE_MASK))) | (DMA_TCD_NBYTES_MLOFFYES_DMLOE(pxLocScatterGather->TransferConfig->MinorLoop.EnDstOffset ? 1U : 0U)));
- reg = ((reg & (~(DMA_TCD_NBYTES_MLOFFYES_MLOFF_MASK))) | (DMA_TCD_NBYTES_MLOFFYES_MLOFF((uint32)pxLocScatterGather->TransferConfig->MinorLoop.Offset)));
- ptTcd->reg_NBYTES.reg_MLOFFYES= reg;
- }
- #define MCL_STOP_SEC_CODE
- /* @violates @ref Mcl_Dma_h_REF_1 MISRA 2012 Required Directive 4.10, Precautions shall be taken in order to prevent the contents of a header file being included more than once. */
- #include "Mcl_MemMap.h"
- #endif /* #if (DMA_IP_HWV2_IS_AVAILABLE == STD_ON) */
- #endif /* #if (DMA_IP_IS_AVAILABLE == STD_ON) */
- /** @} */
- #endif /* #ifndef DMA_IP_HWV2_ACCESSINLINE_H_ */
- /*==================================================================================================
- * END OF FILE
- ==================================================================================================*/
|