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

📄 main.c

📁 tms320vc5509a dsp 芯片的有关例子程序
💻 C
字号:


/*********************************************************
External Bus Selection Register
EBSR:                1   0   0   0   0   0   0   0   0   0   0   0      0
*		15	14	13	12	11	10	09	08	07	06	05	04	03	02	 01		00
* EGCR: -	-	-	-   -	F1	F0  -	WPE	-	EN 	-  ARDY	HOLD HOLDA  NOHOLD
* F1F0: 00b CPU时钟频率  01b CPU的1/2频率
* WPE : 
* EN  : 时钟输出允许
* ADRY: 外部准备信号[读]
* HOLD: 外部请求保持
* HOLDA: CPU应答外部请求
* NOHOLD: 外部请求允许 1:不允许  0:允许

*		15	14	13	12	11	10	09	08	  07	06	05	04	03	02	 01		00
* CEn1 : -    MEMORY TYPE [11-8:READ SETUP] [7-2:READ STROBE]          [1-0: READ HOLD]
* MEMORT TYPE:  000:8位异步存储器  
				001:16位异步存储器  
				010:32位异步存储器 
				011:32位同步DRAM(SDRAM) 
				100:32位同步突发RAM(SBSRAM)
* READ SETUP : 读数据建立时间  (1<=time<=15) 用于异步
* READ STROBE: 读数据选通时间  (1<=time<=63) 用于异步
* READ HOLD  : 读数据保持时间  (0<=time<=3)  用于异步

*		15	14			13	12				11	10	09	08	  07	06	05	04	03	02	 01		00
* CEn2 : READ EXT HOLD   [WRITE EXT HOLD] 	[WRITE SETUP]     [7-2:WRITE STROBE]         WRITE HOLD
* READ EXT HOLD  : 读外部数据保持时间  (0<=time<=3)  用于异步

* CEn3 : 15-8	7-0
		保留	TIMEOUT
* TIMEOUT 	: 超时时间 (0<=time<=255) 0:关闭 
		     1   0   1   1   0      0    1    0  1  0   1   1   0    0    0
*		15	14	13	12	11	10	   09	08	  07 06	05	04	03	02	 01	  00
* SDC1: [15-11:TRC]		   SDSIZE SDWID RFEN  [7-4:TRCD]    [0-3:TRP]
* TRC :
* SDSIZE:SDWID: 00b 4M x 16 bits (64M bits)
			 	10b 8M x 16 bits (128M bits)
* RFEN:  自动更新命令 1:允许

*		15	14	13	12	11	10	   09	08	  07 06	05	04	03	02	 01		00
* SDC2: [15-11:TRC]		   SDACC  TMRD RFEN  [7-4:TRAS]    [0-3:TACTV2ACTV]
* 
**********************************************************/

void SDRAM_init( void )
{      
    ioport unsigned int *ebsr  =(unsigned int *)0x6c00;  // 
    ioport unsigned int *egcr  =(unsigned int *)0x800;
    ioport unsigned int *emirst=(unsigned int *)0x801;	// EMIF 复位寄存器 写任何数据都可复位
    //ioport unsigned int *emibe =(unsigned int *)0x802; // 错误寄存器 
    ioport unsigned int *ce01  =(unsigned int *)0x803;
    //ioport unsigned int *ce02  =(unsigned int *)0x804;
    //ioport unsigned int *ce03  =(unsigned int *)0x805;
    ioport unsigned int *ce11  =(unsigned int *)0x806;
    //ioport unsigned int *ce12  =(unsigned int *)0x807;
    //ioport unsigned int *ce13  =(unsigned int *)0x808;
    ioport unsigned int *ce21  =(unsigned int *)0x809;
    //ioport unsigned int *ce22  =(unsigned int *)0x80A;
    //ioport unsigned int *ce23  =(unsigned int *)0x80B;
    ioport unsigned int *ce31  =(unsigned int *)0x80C;
    //ioport unsigned int *ce32  =(unsigned int *)0x80D;
    //ioport unsigned int *ce33  =(unsigned int *)0x80E;
    ioport unsigned int *sdc1  =(unsigned int *)0x80F;
    //ioport unsigned int *sdper =(unsigned int *)0x810; // 设定 CLKMEN 的周期
    //ioport unsigned int *sdcnt =(unsigned int *)0x811; // 当前 CLKMEN 的周期
    ioport unsigned int *init  =(unsigned int *)0x812;	// EMIF 初始化寄存器 写任何数据都可初始化
    ioport unsigned int *sdc2  =(unsigned int *)0x813;
	//ioport unsigned int *sdc3  =(unsigned int *)0x814;[此寄存器只用于5510,5509中无]
    *ebsr   = 0x221;//221//1321	// ** 全EMIF模式 Pallel Port 
    *egcr   = 0x220;	// ** EMIF 全局控制寄存器
    *ce01   = 0x3000;	// ** 
    *ce11   = 0x1fff;
    *ce21   = 0x1fff;
    *ce31   = 0x1fff;
    *emirst = 0;		// ** 复位 EMIF
    *sdc1   = 0x5958;   // ** SDRAM 控制器
    *sdc2   = 0x38F;
    *init   = 0;		// ** 启动 EMIF
}     

void delay(unsigned int t){
	unsigned int i;
	for (; t != 0; t--)	for (i=1000; i != 0; i--);
}
void writeSRAM(unsigned long addr,unsigned int dat)
{
/*	addr <<= 1;
	if ((addr>>14)&0x1) addr++;
	addr&=0x3FFFFF;
*/
	*((unsigned int *)0x40000+addr) = dat;
}


unsigned int readSRAM(unsigned long addr)
{
/*	addr <<= 1;
	if ((addr>>14)&0x1) addr++;
	addr&=0x3FFFFF;
*/
	return 	*((unsigned int *)0x40000+addr);
}

main()
{
	unsigned int i,array[5];;

	SDRAM_init();
	delay(1);
	
	for (i = 0; i!= 5; i++) // 1111111111111111111001
	writeSRAM(0x0FFFF0+i,i);	// 1111111111111111111100

	for (i = 0; i!= 5; i++)
	array[i] = readSRAM(0x0FFFF0+i);

	while(1)
	{
		asm(" bclr XF ");
		delay(100);
		asm(" bset XF ");
		delay(100);
	}		
}

⌨️ 快捷键说明

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