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

📄 dsk.gel

📁 SEED_TMS320vc5402dsk是在TI的TMS320VC5402DSK板基础上简化开发出来的
💻 GEL
字号:
/* set PMST to: MP =  OVLY = 1; DROM off, CLKOUT on */
#define PMST            0x1d    
#define PMST_VAL        0xffe0  

/* set wait-state control reg for: 2 w/s or more on i/o; one for ext memory */
#define SWWSR           0x28
#define SWWSR_VAL       0x0209  

/* set external-banks switch control for: no bank switching; BH set */
#define BSCR            0x29
#define BSCR_VAL        0x02

/* Set Default Reset Initialization Value */
#define    ZEROS        0x0000

/* Set Peripheral Control Register Addresses for DEV_RESET */
#define IFR             0x0001

#define DMPREC          0x0054
#define DMSA            0x0055
#define DMSDI           0x0056

#define DMA_CH0_DMFSC_SUB_ADDR  0x0003
#define DMA_CH1_DMFSC_SUB_ADDR  0x0008
#define DMA_CH2_DMFSC_SUB_ADDR  0x000D
#define DMA_CH3_DMFSC_SUB_ADDR  0x0012
#define DMA_CH4_DMFSC_SUB_ADDR  0x0017
#define DMA_CH5_DMFSC_SUB_ADDR  0x001c


#define MCBSP0_SPSA     0x0038
#define MCBSP0_SPSD     0x0039
#define MCBSP1_SPSA     0x0048
#define MCBSP1_SPSD     0x0049

#define MCBSP2_SPSA     0x0034
#define MCBSP2_SPSD     0x0035

#define MCBSP_SPCR1_SUB_ADDR   0x0000
#define MCBSP_SPCR2_SUB_ADDR   0x0001
#define MCBSP_SRGR1_SUB_ADDR   0x0006
#define MCBSP_SRGR2_SUB_ADDR   0x0007
#define MCBSP_MCR1_SUB_ADDR    0x0008
#define MCBSP_MCR2_SUB_ADDR    0x0009
#define SRGR1_INIT             0x0001

#define PRD0            0x0025
#define TCR0            0x0026

#define PRD1            0x0031
#define TCR1            0x0032

#define TIMER_STOP             0x0010
#define TIMER_RESET            0x0020 
#define PRD_DEFAULT            0xFFFF     

#define GPIOCR                 0x0010
 



/* The Startup() function is executed when the GEL file is loaded. */

StartUp()
{
	GEL_Reset();
	GEL_XMDef(0,0x1E,1,0x80000,0x7F);
	GEL_XMOn();
	GEL_MapOn();
	GEL_MapReset();
	GEL_MapAdd(0x0,0,0xc0000,1,1);		/* flash */
	GEL_MapAdd(0x0,1,0x10000,1,1);		/* flash */
	GEL_MemoryFill(0x28,1,1,0xffffH);
	 
}

menuitem "C55x";
hotmenu C55xReset()
{
	GEL_Reset();
/*  Memory mapping is not used for the C55xx simulator
        GEL_MapOn();
        GEL_MapReset();
        GEL_MapAdd(...);
        GEL_MapAdd(...);
*/
}

menuitem "C54x";
hotmenu C54x_CPU_Reset()
{
	GEL_Reset();
/*	GEL_MapReset(); */
/*	GEL_MapOff(); */
	*(int *)PMST = PMST_VAL;
	*(int *)SWWSR = SWWSR_VAL;
	*(int *)BSCR = BSCR_VAL;
}



/* All memory maps are based on the PMST value of 0xFFE0 */

hotmenu C541_Init()
{
	C54x_CPU_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_MapAdd(0x80,0,0x1380,1,1);		/* DARAM */
	GEL_MapAdd(0x1400,0,0xEC00,1,1);	/* External */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x13A0,1,1);		/* DARAM */
	GEL_MapAdd(0x1400,1,0xEC00,1,1);	/* External */
}

hotmenu C542_Init()
{
	C54x_CPU_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_MapAdd(0x80,0,0x2780,1,1);		/* DARAM */
	GEL_MapAdd(0x2780,0,0xD880,1,1);	/* External */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x27A0,1,1);		/* DARAM */
	GEL_MapAdd(0x2800,1,0xD800,1,1);	/* External */
}

hotmenu C543_Init()
{
	C54x_CPU_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_MapAdd(0x80,0,0x2780,1,1);		/* DARAM */
	GEL_MapAdd(0x2780,0,0xD880,1,1);	/* External */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x27A0,1,1);		/* DARAM */
	GEL_MapAdd(0x2800,1,0xD800,1,1);	/* External */
}

hotmenu C545_Init()
{
	C54x_CPU_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_MapAdd(0x80,0,0x1780,1,1);		/* DARAM */
	GEL_MapAdd(0x1800,0,0xE800,1,1);	/* External */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x17A0,1,1);		/* DARAM */
	GEL_MapAdd(0x1800,1,0xE800,1,1);	/* External */
}

hotmenu C546_Init()
{
	C54x_CPU_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_MapAdd(0x80,0,0x1780,1,1);	    /* DARAM */
	GEL_MapAdd(0x1800,0,0xE800,1,1);	/* External */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x17A0,1,1);	    /* DARAM */
	GEL_MapAdd(0x1800,1,0xE800,1,1);	/* External */
}

hotmenu C548_Init()
{
	C54x_CPU_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x1F80,1,1);      /* DARAM */
	GEL_MapAdd(0x2000,0,0x6000,1,1);	/* SARAM */
	GEL_MapAdd(0x8000,0,0x8000,1,1);	/* External */
	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* Extended Addressing - Page 0 */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x1FA0,1,1);	    /* DARAM */
	GEL_MapAdd(0x2000,1,0x6000,1,1);	/* SARAM */
	GEL_MapAdd(0x8000,1,0x8000,1,1);	/* External */
}

hotmenu C549_Init()
{
	C54x_CPU_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x1F80,1,1);		/* DARAM */
	GEL_MapAdd(0x2000,0,0x6000,1,1);	/* SARAM */
	GEL_MapAdd(0x8000,0,0x8000,1,1);	/* External */
	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* Extended Addressing - Page 0 */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x1FA0,1,1);	    /* DARAM */
	GEL_MapAdd(0x2000,1,0x6000,1,1);	/* SARAM */
	GEL_MapAdd(0x8000,1,0x8000,1,1);	/* External */
}

hotmenu C5402_Init()
{
/*	C54x_CPU_Reset();
*	C5402_Periph_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x3F80,1,1);      /* DARAM */
	/*GEL_MapAdd(0x4000,0,0xC000,1,1);	/* External */
	/*GEL_MapAdd(0x18000,0,0x8000,1,1);	/* Extended Addressing - Page 0 */

	/*GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	/*GEL_MapAdd(0x60,1,0x3FA0,1,1);	    /* DARAM */
	/*GEL_MapAdd(0x4000,1,0xC000,1,1);	 External */
}

hotmenu C5409_Init()
{
	C54x_CPU_Reset();
	C5409_Periph_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x1F80,1,1);		/* DARAM */
	GEL_MapAdd(0x2000,0,0x6000,1,1);	/* SARAM */
	GEL_MapAdd(0x8000,0,0x8000,1,1);	/* External */
	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* Extended Addressing - Page 0 */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x1FA0,1,1);		/* DARAM */
	GEL_MapAdd(0x2000,1,0x6000,1,1);	/* SARAM */
	GEL_MapAdd(0x8000,1,0x8000,1,1);	/* External */
}

hotmenu C5410_Init()
{
	C54x_CPU_Reset();
	C5410_Periph_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x1F80,1,1);		/* DARAM */
	GEL_MapAdd(0x2000,0,0x6000,1,1);	/* SARAM1 */
	GEL_MapAdd(0x8000,0,0x8000,1,1);	/* External */
	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* SARAM2 */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x1FA0,1,1);		/* DARAM */
	GEL_MapAdd(0x2000,1,0x6000,1,1);	/* SARAM1 */
	GEL_MapAdd(0x8000,1,0x8000,1,1);	/* External */
}

hotmenu C5416_Init()
{
	C54x_CPU_Reset();
	C5416_Periph_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x7F80,1,1);		/* DARAM */
	GEL_MapAdd(0x8000,0,0x8000,1,1);	/* External */
	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* Extended Addressing - Page 0 */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x7FA0,1,1);		/* DARAM */
	GEL_MapAdd(0x8000,1,0x8000,1,1);	/* External */
}

hotmenu C5420_Init()
{
    C54x_CPU_Reset();
    C5420_Periph_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x3F80,1,1);		/* DARAM */
	GEL_MapAdd(0x4000,0,0x4000,1,1);	/* SARAM1 */
	GEL_MapAdd(0x8000,0,0x8000,1,1);	/* SARAM2 */
	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* SARAM3 */
	GEL_MapAdd(0x28000,0,0x7000,1,1);	/* External */
	GEL_MapAdd(0x2F000,0,0x1000,1,1);	/* SARAM4 */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x3FA0,1,1);		/* DARAM */
	GEL_MapAdd(0x4000,1,0x4000,1,1);	/* SARAM1 */
	GEL_MapAdd(0x8000,1,0x8000,1,1);	/* External */
}

hotmenu C5421_Init()
{
	*(int *)PMST = 0xFFA0;

    C5421_Periph_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x7F80,1,1);		/* DARAM */
	GEL_MapAdd(0x8000,0,0x8000,1,1);	/* DARAM - Shared */
	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* DARAM - Shared */
	GEL_MapAdd(0x28000,0,0x8000,1,1);	/* DARAM - Shared */
	GEL_MapAdd(0x38000,0,0x8000,1,1);	/* DARAM - Shared */

	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
	GEL_MapAdd(0x60,1,0x7FA0,1,1);		/* DARAM */
	GEL_MapAdd(0x8000,1,0x8000,1,1);	/* External */
}

hotmenu C5402_DSK_Init()
{
/*	C54x_CPU_Reset();
	C5402_Periph_Reset();
	GEL_MapOn();
	GEL_MapReset();

	GEL_XMDef(0,0x1e,1,0x8000,0x7f);
	GEL_XMOn();
	GEL_MapAdd(0x80,0,0x3F80,1,1);		/* DARAM */
/*	GEL_MapAdd(0x4000,0,0xC000,1,1);	/* External */
/*	GEL_MapAdd(0x18000,0,0x8000,1,1);	/* Extended Addressing - Page 0 */

/*	GEL_MapAdd(0x0,1,0x60,1,1);			/* MMRs */
/*	GEL_MapAdd(0x60,1,0x3FA0,1,1);		/* DARAM */
/*	GEL_MapAdd(0x4000,1,0xC000,1,1);	/* External */

/*	GEL_MapAdd(0x0,2,0x6,1,1);			/* I/O space */

/*	*(int *)0x4@io = 0xff03;			/* Enable SRAM */
}

/* ****************************** */

C5402_Periph_Reset()
{
	*(int *)IFR = 0xFFFF;  

	DMA_Reset();
	MCBSP0_Reset();
	MCBSP1_Reset();
	TIMER0_Reset();
	TIMER1_Reset();
    GPIO_Reset();
}

C5409_Periph_Reset()
{
	*(int *)IFR = 0xFFFF;  

	DMA_Reset();
	MCBSP0_Reset();
	MCBSP1_Reset();
	MCBSP2_Reset();
	TIMER0_Reset();
    GPIO_Reset();
}

C5410_Periph_Reset()
{
	*(int *)IFR = 0xFFFF;  

	DMA_Reset();
	MCBSP0_Reset();
	MCBSP1_Reset();
	MCBSP2_Reset();
	TIMER0_Reset();
    GPIO_Reset();
}

C5416_Periph_Reset()
{
	*(int *)IFR = 0xFFFF;  

	DMA_Reset();
	MCBSP0_Reset();
	MCBSP1_Reset();
	MCBSP2_Reset();
	TIMER0_Reset();
    GPIO_Reset();
}

C5420_Periph_Reset()
{
	*(int *)IFR = 0xFFFF;  

	DMA_Reset();
	MCBSP0_Reset();
	MCBSP1_Reset();
	MCBSP2_Reset();
	TIMER0_Reset();
    GPIO_Reset();
}

C5421_Periph_Reset()
{
	*(int *)IFR = 0xFFFF;  

	DMA_Reset();
	MCBSP0_Reset();
	MCBSP1_Reset();
	MCBSP2_Reset();
	TIMER0_Reset();
    GPIO_Reset();
}

DMA_Reset()
{
	*(int *)DMPREC = ZEROS;  
    
	*(int *)DMSA = DMA_CH0_DMFSC_SUB_ADDR;
	*(int *)DMSDI = ZEROS;     
	*(int *)DMSDI = ZEROS;     
	*(int *)DMSA  = DMA_CH1_DMFSC_SUB_ADDR;
	*(int *)DMSDI = ZEROS;     
	*(int *)DMSDI = ZEROS;    
 
	*(int *)DMSA  = DMA_CH2_DMFSC_SUB_ADDR;
	*(int *)DMSDI = ZEROS;     
	*(int *)DMSDI = ZEROS;     
 
	*(int *)DMSA  = DMA_CH3_DMFSC_SUB_ADDR;
	*(int *)DMSDI = ZEROS;     
	*(int *)DMSDI = ZEROS;     
 
	*(int *)DMSA  = DMA_CH4_DMFSC_SUB_ADDR;
	*(int *)DMSDI = ZEROS;     
	*(int *)DMSDI = ZEROS;    
 
	*(int *)DMSA  = DMA_CH2_DMFSC_SUB_ADDR;
	*(int *)DMSDI = ZEROS;     
	*(int *)DMSDI = ZEROS;     
}

MCBSP0_Reset()
{
	*(int *)MCBSP0_SPSA = MCBSP_SPCR1_SUB_ADDR;    
	*(int *)MCBSP0_SPSD = ZEROS;                   
	*(int *)MCBSP0_SPSA = MCBSP_SPCR2_SUB_ADDR;    
	*(int *)MCBSP0_SPSD = ZEROS; 
                 
	*(int *)MCBSP0_SPSA = MCBSP_SRGR1_SUB_ADDR;    
	*(int *)MCBSP0_SPSD = SRGR1_INIT;              
	*(int *)MCBSP0_SPSA = MCBSP_SRGR2_SUB_ADDR;    
	*(int *)MCBSP0_SPSD = ZEROS;                   

	*(int *)MCBSP0_SPSA = MCBSP_MCR1_SUB_ADDR;     
	*(int *)MCBSP0_SPSD = ZEROS;                   
	*(int *)MCBSP0_SPSA = MCBSP_MCR2_SUB_ADDR;     
	*(int *)MCBSP0_SPSD = ZEROS;                   
}

MCBSP1_Reset()
{
	*(int *)MCBSP1_SPSA = MCBSP_SPCR1_SUB_ADDR;   
	*(int *)MCBSP1_SPSD = ZEROS;                   
	*(int *)MCBSP1_SPSA = MCBSP_SPCR2_SUB_ADDR;    
	*(int *)MCBSP1_SPSD = ZEROS;                   

	*(int *)MCBSP1_SPSA = MCBSP_SRGR1_SUB_ADDR;    
	*(int *)MCBSP1_SPSD = SRGR1_INIT;              
	*(int *)MCBSP1_SPSA = MCBSP_SRGR2_SUB_ADDR;    
	*(int *)MCBSP1_SPSD = ZEROS;   
                
	*(int *)MCBSP1_SPSA = MCBSP_MCR1_SUB_ADDR;     
	*(int *)MCBSP1_SPSD = ZEROS;                   
	*(int *)MCBSP1_SPSA = MCBSP_MCR2_SUB_ADDR;     
	*(int *)MCBSP1_SPSD = ZEROS;
}   

MCBSP2_Reset()
{
	*(int *)MCBSP2_SPSA = MCBSP_SPCR1_SUB_ADDR;   
	*(int *)MCBSP2_SPSD = ZEROS;                   
	*(int *)MCBSP2_SPSA = MCBSP_SPCR2_SUB_ADDR;    
	*(int *)MCBSP2_SPSD = ZEROS;
                   
	*(int *)MCBSP2_SPSA = MCBSP_SRGR1_SUB_ADDR;    
	*(int *)MCBSP2_SPSD = SRGR1_INIT;              
	*(int *)MCBSP2_SPSA = MCBSP_SRGR2_SUB_ADDR;    
	*(int *)MCBSP2_SPSD = ZEROS;   
                
	*(int *)MCBSP2_SPSA = MCBSP_MCR1_SUB_ADDR;     
	*(int *)MCBSP2_SPSD = ZEROS;                   
	*(int *)MCBSP2_SPSA = MCBSP_MCR2_SUB_ADDR;     
	*(int *)MCBSP2_SPSD = ZEROS;
}   

TIMER0_Reset()
{
	*(int *)TCR0 = TIMER_STOP;              
	*(int *)PRD0 = PRD_DEFAULT;              
	*(int *)TCR0 = TIMER_RESET;
}

TIMER1_Reset()
{     

	*(int *)TCR1 = TIMER_STOP;               
	*(int *)PRD1 = PRD_DEFAULT;              
	*(int *)TCR1 = TIMER_RESET;              
}  

GPIO_Reset()
{
	*(int *)GPIOCR = ZEROS;
}        

⌨️ 快捷键说明

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