复件 main.c

来自「ADS下测试ARM平台的SDRAM的读写程序」· C语言 代码 · 共 82 行

C
82
字号
/**************************************
File Name: CF.c
Author: siukit
Date: 5/22/2007
***************************************/
#include "c:/mylib.h"

#define LBA0      (*(volatile unsigned short*)0x10000802)
#define LBA8      (*(volatile unsigned short*)0x10000804)
#define CMDReg    (*(volatile unsigned short*)0x10000806)
#define DataReg   (*(volatile unsigned short*)0x10000808)
#define	StatReg	  0x1000080E

#define UINT16 unsigned short

int Main()
{
 int count,i;
 UINT16 j,data[256];
 count=0xa;
 for(i=0;i<256;i++) data[i]=0;
 for(;*(volatile unsigned char *)StatReg!=0x50;);  //CF卡是否准备好
 LBA0=(0x100|count);
 LBA8=0x0;
 CMDReg=0x30E0;                                    //写,选择LBA方式
 for(;*(volatile unsigned char *)StatReg!=0x58;);  //是否准备好传输数据
 for(j=0;j<(count-1);j++)
   {
    for(i=0;i<256;i++)
      {
         DataReg=j+1;
      //    DataReg=i;
        }
    for(;*(volatile unsigned char *)StatReg!=0x58;);
    }
 for(i=0;i<256;i++)
      {
      DataReg=0xFFFF;
    //    DataReg=1;
        }
 putstr("Write Done!\n");
 printf("DataReg=%d befor read operation!\n",DataReg);
 putstr("Data[256] before read:\n");
 for(i=0;i<256;i++)
   {
     if(i%16==0) printf("\n");
     printf("%4d ",data[i]);
   } 
 for(;*(volatile unsigned char *)StatReg!=0x50;);  //CF卡是否准备好 
 LBA0=0xa01;
 LBA8=0x0;
 CMDReg=0x20E0;                                    //读,选择LBA方式
 for(;*(volatile unsigned char *)StatReg!=0x58;);  //CF卡是否准备好传输数据
 for(i=0;i<256;i++)
   {
    data[i]=DataReg;
   }	
for(;*(volatile unsigned char *)StatReg!=0x50;);  //操作是否结束
putstr("\nRead Done!\n");
for(i=0;i<256;i++)
   {
     if(i%16==0) printf("\n");
     printf("%4d ",data[i]);
   } 
   
 while(1) ;
 return 0;
}













⌨️ 快捷键说明

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