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

📄 storage.c

📁 keil lpc2138 epson6610 lcd source
💻 C
字号:
#include "storage.h"
 #include "board.h"	  
 #include "mmc.h"
 #include "buffer.h"
  
 unsigned char storageFlags = 0;
  
 unsigned char InitStorage(){

   unsigned char result;		 
   result=InitMMC();
  if (result==0x0e){     
     storageFlags = 1;
   return 0;
  }

  if (result){ //error resulted in MMC startup
    
   storageFlags = 4;
    return 1; //MMC Init Error
   }      
  storageFlags = 0;
  return 0;

 }


unsigned char PrepareToReadDiskSector(unsigned long sectorN){

 
  if (!storageFlags){
     //Storage device supports seek-before-read
     if (SeekSector(sectorN)){

 
      return 0x0f; //seek error code
    }
    storageFlags |= 0x02; //flag: a sector is seeked for reading
  
   return 0; //ok return
  }
	   
  return 0; //ok return
 }

  
unsigned char ReadDiskSector(unsigned long sectorN){	 
  //if a sector has not already been seeked, seek now.
  if (!(storageFlags&0x02)){ 

     if (SeekSector(sectorN)) return 0x0f; //seek error
   }  
   storageFlags &= 0xfd; //clear sector-already-seeked flag
  if (ReadPhysicalSector()){
    return 0x10; //read error
 }
  return 0; /* All OK return */
 }

void WriteDiskSector(unsigned long sectorN){
   sectorAddress.l = sectorN;
   dataBufPtr = diskSect.raw.buf;
   WritePhysicalSector();
 }

⌨️ 快捷键说明

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