📄 emif.c
字号:
/******************************************************************************/
/* Copyright 2004 by SEED Electronic Technology LTD. */
/* All rights reserved. SEED Electronic Technology LTD. */
/* Restricted rights to use, duplicate or disclose this code are */
/* granted through contract. */
/* */
/* */
/******************************************************************************/
/*----------------------------------------------------------------------------*/
/* MODULE NAME... EMIF */
/* FILENAME...... emif.c */
/* DATE CREATED.. Wed 2/4/2004 */
/* PROJECT....... write and read data between the CPU and SDRAM */
/* COMPONENT..... */
/* PREREQUISITS.. */
/*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* DESCRIPTION: */
/* */
/* This is an example for EMIF of C5509 */
/*----------------------------------------------------------------------------*/
//#include <csl.h>
//#include <csl_pll.h>
//#include <csl_emif.h>
//#include <csl_chip.h>
#include <stdio.h>
//Uint16 x;
//Uint32 y;
//CSLBool b;
#define LOCK 0x0001
#define XF 0x2000
// clock generator
volatile ioport unsigned int *CLKMD = (volatile ioport unsigned int *)0x1C00;
volatile ioport unsigned int *SYSR = (volatile ioport unsigned int *)0x07FD;
volatile unsigned int *ST1_55 = (volatile unsigned int *)0x000003;
//int datacount = 0;
//int databuffer[1000] ={0};
//int *souraddr,*deminaddr;
void us_delay(int tm);
void ms_delay(int tm);
void main()
{
int jj;
unsigned int i=0x02;
unsigned long int m=0;
/*初始化CSL库*/
// CSL_init();
/*EMIF为全EMIF接口*/
// CHIP_RSET(XBSR,0x0a01);
/*设置系统的运行速度为120MHz*/
//PLL_config(&myConfig);
*CLKMD=0x2292; //multi=5,CLOCK= 5*24MHz=120MHz;
for(i=0;i<30000;i++)
{
if(*CLKMD&LOCK) //LOCK为1时,表示处于LOCK模式,该句表明如果LOCK为0,也就是退出LOCK模式的话,就再重设置CLKMD。
{
break;
}
else
{
*CLKMD=0x2292;
}
}
for(jj=0;jj<100;jj++)
for(i=0;i<1000;i++)
{; }
i=0x55;
//PLL_setFreq(1,4); //clkout=1/2clkin
//*SYSR=0x0006;
/*初始化DSP的外部SDRAM*/
// EMIF_config(&emiffig);
/*向SDRAM中写入数据*/
/*
souraddr = (int *)0x810000;
deminaddr = (int *)0x820000;
for(i=0;i<3;i++)
{
datacount=i+1;
*souraddr++ = datacount;
}
//读出SRAM中的数据
souraddr = (int *)0x810000;
datacount = *souraddr;
printf("the number is %d\n",datacount);
printf("The value of pi is %d.\n",*souraddr);
*/
while(1)
{
*ST1_55 |= XF;
ms_delay(1000);
*ST1_55 &= ~XF;
ms_delay(1000);
}
}
void us_delay(int tm)
{
unsigned int i,j;
for(i=0;i<tm;i++)
for(j=0;j<4;j++);
}
/* Delay 1 ms */
void ms_delay(int tm)
{
unsigned int i,j;
for(i=0;i<tm;i++)
for(j=0;j<950;j++)
us_delay(1);
}
/******************************************************************************\
* End of pll2.c
\******************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -