www.pudn.com > cf_sector_RW.rar > cf_main.c


/*==================================================================== 
* Code to perform CompactFlash Memory Card Operations 
* Author:	Miguel Hernandez IV 
* Filename:	cf_main.c 
* Date:		07-29-01 
*		11-04-01 Minor updates to prepare for publication. 
********************************************************************** 
* This is an example of how to access a Compact Flash Memory Card 
* based on the application note titled, "Compact Flash Memory Card  
* Interface for the TMS320VC54x", TI Literature number SPRA803.  
********************************************************************** 
* Files:     
*			cf_main.c 
*			cf_routines.asm 
*			cf_io_space.inc 
*			cf_linker.cmd 
*			rts.lib 
*			cf_write_buffer.dat 
********************************************************************** 
* Note:	This is a simple example, and it should be modified to  
* 	handle specific system requirements. 
********************************************************************** 
====================================================================*/ 
 
/*==================================================================== 
	ATA Commands 
====================================================================*/ 
 
extern unsigned short CReadSectors; 
extern unsigned short CWriteSectors; 
extern unsigned short CIdentifyDrive;  
ioport unsigned portb006; 
ioport unsigned portb007; 
ioport unsigned port9002; 
ioport unsigned porta802; 
ioport unsigned porta806; 
/*==================================================================== 
	initial LBA value 
====================================================================*/ 
 
extern unsigned long LBA; 
 
/*==================================================================== 
	Function Prototypes 
====================================================================*/ 
 
/*---- CompactFlash Status Checks ----*/ 
 
void CF_CheckReadyStatus(); 
void CF_CheckBusyStatus(); 
void CF_CheckDrqStatus(); 
void CF_CheckErrorStatus(); 
 
/*---- Reset ----*/ 
 
void CF_HardwareReset(); 
 
/*---- Initialize C54x ----*/ 
 
void DSP_Init(); 
 
/*---- Commands ----*/ 
 
void CF_IssueCommand(unsigned long PhysicalSector,  
                     unsigned short SectorCount,  
                     unsigned short Command); 
void CF_IdentifyDrive(); 
 
/*---- CF Read/Write -----*/                       
 
void ReadCF(unsigned long PhysicalSector,  
            unsigned short SectorCount); 
void WriteCF(unsigned long PhysicalSector,  
             unsigned short SectorCount); 
 
/*---- CF Present ----*/ 
 
int CF_Present(); 
 
/*==================================================================*/ 
 
void main(void) 
{ 
	 unsigned int aa; 
	 int i; 
     DSP_Init();			/* Initialize DSP */ 
     
for(i=0;i<255;i++) 
 { 
     porta802=i; 
   //aa=port9002; 
   //asm("   RSBX XF"); 
   //asm("   RPT #07FFFh"); 
    
   asm("   nop"); 
   asm("   nop"); 
   aa=porta802; 
   asm("   nop"); 
   asm("   nop"); 
    // port8000=0xffff; 
    asm("   nop"); 
    if(aa!=i) 
    { 
     asm("   nop"); 
    } 
    //aa=port9002; 
  // portb006=0x1111; 
     
 //   port9002=0x34;  
     
  //  aa=port9002; 
 //   port9002=0x22;  
     
     
 } 
  
    LBA=0x000; 
    if (CF_Present()) 
    { /*CF card detected so it's ok to run these functions*/ 
    CF_HardwareReset();		/* Reset CompactFlash */ 
		while(1) 
		{ 
		 
           
          WriteCF(LBA, 0); 
          ReadCF(LBA, 0);		/* Read to CompactFlash */ 
          LBA+=256; 
          
          } 
          /********************************************************/ 
          /*Uncomment the statements below to try other functions.*/ 
          /*CF_IdentifyDrive();*/	/* Issue Identify Drive Command */ 
          /*WriteCF(LBA, 1);*/		/* Write to CompactFlash */ 
          /********************************************************/ 
     } 
     else 
    { /*No CF card detected. Power down system and re-insert card.*/ 
          while(1){} /*Spin here forever*/  
    } 
} 
               
 
/* THIS PROGRAM IS PROVIDED "AS IS". TI MAKES NO WARRANTIES OR 
* REPRESENTATIONS, EITHER EXPRESS, IMPLIED OR STATUTORY,  
* INCLUDING ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS  
* FOR A PARTICULAR PURPOSE, LACK OF VIRUSES, ACCURACY OR  
* COMPLETENESS OF RESPONSES, RESULTS AND LACK OF NEGLIGENCE.  
* TI DISCLAIMS ANY WARRANTY OF TITLE, QUIET ENJOYMENT, QUIET  
* POSSESSION, AND NON-INFRINGEMENT OF ANY THIRD PARTY  
* INTELLECTUAL PROPERTY RIGHTS WITH REGARD TO THE PROGRAM OR  
* YOUR USE OF THE PROGRAM. 
* 
* IN NO EVENT SHALL TI BE LIABLE FOR ANY SPECIAL, INCIDENTAL,  
* CONSEQUENTIAL OR INDIRECT DAMAGES, HOWEVER CAUSED, ON ANY  
* THEORY OF LIABILITY AND WHETHER OR NOT TI HAS BEEN ADVISED  
* OF THE POSSIBILITY OF SUCH DAMAGES, ARISING IN ANY WAY OUT  
* OF THIS AGREEMENT, THE PROGRAM, OR YOUR USE OF THE PROGRAM.  
* EXCLUDED DAMAGES INCLUDE, BUT ARE NOT LIMITED TO, COST OF  
* REMOVAL OR REINSTALLATION, COMPUTER TIME, LABOR COSTS, LOSS  
* OF GOODWILL, LOSS OF PROFITS, LOSS OF SAVINGS, OR LOSS OF  
* USE OR INTERRUPTION OF BUSINESS. IN NO EVENT WILL TI'S  
* AGGREGATE LIABILITY UNDER THIS AGREEMENT OR ARISING OUT OF  
* YOUR USE OF THE PROGRAM EXCEED FIVE HUNDRED DOLLARS  
* (U.S.$500). 
* 
* Unless otherwise stated, the Program written and copyrighted  
* by Texas Instruments is distributed as "freeware".  You may,  
* only under TI's copyright in the Program, use and modify the  
* Program without any charge or restriction.  You may  
* distribute to third parties, provided that you transfer a  
* copy of this license to the third party and the third party  
* agrees to these terms by its first use of the Program. You  
* must reproduce the copyright notice and any other legend of  
* ownership on each copy or partial copy, of the Program. 
* 
* You acknowledge and agree that the Program contains  
* copyrighted material, trade secrets and other TI proprietary  
* information and is protected by copyright laws,  
* international copyright treaties, and trade secret laws, as  
* well as other intellectual property laws.  To protect TI's  
* rights in the Program, you agree not to decompile, reverse  
* engineer, disassemble or otherwise translate any object code  
* versions of the Program to a human-readable form.  You agree  
* that in no event will you alter, remove or destroy any  
* copyright notice included in the Program.  TI reserves all  
* rights not specifically granted under this license. Except  
* as specifically provided herein, nothing in this agreement  
* shall be construed as conferring by implication, estoppel,  
* or otherwise, upon you, any license or other right under any  
* TI patents, copyrights or trade secrets. 
* 
* You may not use the Program in non-TI devices.*/