emif.c

来自「Real-Time Digital Signal Processing Imp」· C语言 代码 · 共 96 行

C
96
字号
/******************************************************************************/
/*  EMIF.C - TMS320C55x Peripheral Support Library EMIF Support               */
/*                                                                            */
/*    This file provides support for the TMS320C55x DSP's external memory     */
/*    interface (EMIF).                                                       */
/*                                                                            */
/*  FUNCTIONS:                                                                */
/*    emif_reset() - Reset EMIF state machine                                 */
/*    emif_init()  - Initialize EMIF registers                                */
/*                                                                            */
/******************************************************************************/

#pragma CODE_SECTION(emif_reset, "DRV5510");
#pragma CODE_SECTION(emif_init, "DRV5510");

/******************************************************************************/
/* INCLUDES                                                                   */
/******************************************************************************/
#include "emif.h"

/******************************************************************************/
/* LOCAL DEFINES                                                              */
/******************************************************************************/

/******************************************************************************/
/* FILE LOCAL (STATIC) VARIABLES                                              */
/******************************************************************************/

/******************************************************************************/
/* FILE LOCAL (STATIC) PROTOTYPES                                             */
/******************************************************************************/

/******************************************************************************/
/* FUNCTIONS                                                                  */
/******************************************************************************/

/******************************************************************************/
/* EMIF_INIT -  Reset EMIF state machine. Register settings remain unchanged  */
/******************************************************************************/
void emif_reset()
{
	EMIF_GRST = 0;
}

/******************************************************************************/
/* EMIF_INIT -  Initialize EMIF registers                                     */
/*                                                                            */
/******************************************************************************/
void emif_init(unsigned int g_ctrl,
					   PEmifSpaceCtrl ce0,
					   PEmifSpaceCtrl ce1,
					   PEmifSpaceCtrl ce2,
					   PEmifSpaceCtrl ce3,
					   PEmifSdramCtrl sdram
					  )
{
	EMIF_GCTRL = g_ctrl;
	
	if (ce0)
	{
		EMIF_CE0_CTRL1 = ce0->ctrl1;
		EMIF_CE0_CTRL2 = ce0->ctrl2;
		EMIF_CE0_CTRL3 = ce0->ctrl3;
	}
	
	if (ce1)
	{
		EMIF_CE1_CTRL1 = ce1->ctrl1;
		EMIF_CE1_CTRL2 = ce1->ctrl2;
		EMIF_CE1_CTRL3 = ce1->ctrl3;
	}
	
	if (ce2)
	{
		EMIF_CE2_CTRL1 = ce2->ctrl1;
		EMIF_CE2_CTRL2 = ce2->ctrl2;
		EMIF_CE2_CTRL3 = ce2->ctrl3;
	}
	
	if (ce3)
	{
		EMIF_CE3_CTRL1 = ce3->ctrl1;
		EMIF_CE3_CTRL2 = ce3->ctrl2;
		EMIF_CE3_CTRL3 = ce3->ctrl3;
	}
	
	if (sdram)
	{
		EMIF_SDRAM_CTRL1 = sdram->ctrl1;
		EMIF_SDRAM_CTRL2 = sdram->ctrl2;
		EMIF_SDRAM_PER   = sdram->per;
		EMIF_SDRAM_CNTR  = sdram->cntr;
		EMIF_SDRAM_INIT  = sdram->init;
	}
}

⌨️ 快捷键说明

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