⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dmactxt.h

📁 Windows CE 6.0 BSP for the Beagle Board.
💻 H
字号:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this sample source code is subject to the terms of the Microsoft
// license agreement under which you licensed this sample source code. If
// you did not accept the terms of the license agreement, you are not
// authorized to use this sample source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the LICENSE.RTF on your install media or the root of your tools installation.
// THE SAMPLE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
// Portions Copyright (c) Texas Instruments.  All rights reserved.
//
//------------------------------------------------------------------------------
//
// OMAP2420 DMA implementation
//
#pragma once

// McBSP address
#define AUDIO_MCBSP_REGS_PA				OMAP3_MCBSP2_REGS_PA

// McBSP bits in the PRCM clock registers
#define AUDIO_PRCM_FCLKEN_MCBSP			PRCM_FCLKEN1_CORE_EN_MCBSP2
#define AUDIO_PRCM_ICLKEN_MCBSP			PRCM_ICLKEN1_CORE_EN_MCBSP2

// McBSP I/O register addresses
#define	AUDIO_INPUT_DMA_SOURCE			(AUDIO_MCBSP_REGS_PA + MCBSP_DRR1_REG_OFFSET)
#define	AUDIO_OUTPUT_DMA_DEST			(AUDIO_MCBSP_REGS_PA + MCBSP_DXR1_REG_OFFSET)

// DMA request numbers
#define AUDIO_INPUT_DMA_REQ				SDMA_REQ_MCBSP2_RX
#define AUDIO_OUTPUT_DMA_REQ			SDMA_REQ_MCBSP2_TX

// DMA IRQ numbers
#define AUDIO_INPUT_DMA_IRQ				IRQ_SDMA_3
#define AUDIO_OUTPUT_DMA_IRQ			IRQ_SDMA_2

// DMA channel numbers
#define AUDIO_INPUT_DMA_CHANNEL			OMAP2420_DMA_LCH_AUDIO_RX
#define AUDIO_OUTPUT_DMA_CHANNEL		OMAP2420_DMA_LCH_AUDIO_TX

class OMAP2420DMAContext : public HardwareContext
{
public:
    OMAP2420DMAContext();

    BOOL  HWMapDMAMemory( DWORD dwSize );
    void  HWInitInputDMA( void );
    void  HWInitOutputDMA( void );
    void  HWStartOutputDMA( void );
    void  HWStopOutputDMA( void );
    void  HWStartInputDMA( void );
    void  HWStopInputDMA( void );
    ULONG HWTransferInputBuffers( void );
    ULONG HWTransferOutputBuffers( void );
    PBYTE HWDMAMemoryIn( void ) { return m_pbDMABufIn;  }
    PBYTE HWDMAMemoryOut( void ){ return m_pbDMABufOut; }

    // start/stop data transfer of I/O channels
    virtual void HWEnableInputChannel (BOOL fEnable)=0;
    virtual void HWEnableOutputChannel(BOOL fEnable)=0;

protected:
    HANDLE  m_hCont;

    // Pointers to controllers.
    OMAP2420_DMA_REGS	*m_pInDMAReg;	// input channel registers
    OMAP2420_DMA_REGS	*m_pOutDMAReg;	// output channel registers

    // physical and virtual DMA buffer mapping
    PHYSICAL_ADDRESS m_paAudioDMA;
    PBYTE m_pbDMABufIn;
    PBYTE m_pbDMABufOut;

};


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -