Example #1
0
/*==============================================================================*/
void samDataFlashReadFixAddr(unsigned char *RdDataBuff,unsigned int RdCnt)
{
	fal_request_t   dtyRequester;

	unsigned int i=0;
	unsigned int nRdCnt=0;
	unsigned long __far *DataPtr =(__far unsigned long*)RdDataBuff;

	if(RdCnt%4)
	{
//		return 0xee;	//Data Length Error
	}
	nRdCnt = RdCnt/4;

	dtyRequester.status_enu = FAL_Init( &FixArea_fal_descriptor_str );

	if( dtyRequester.status_enu == FAL_OK )
	{
		FAL_Open();

		for(i=0; i<nRdCnt; i++)
		{
			dtyRequester.data_u32 = 0;
			dtyRequester.index_u16   = i;
			dtyRequester.command_enu = FAL_CMD_READ_WORD;
			dtyRequester.status_enu  = 0;

			FAL_Execute( &dtyRequester );

			*(DataPtr+i) = dtyRequester.data_u32;
		}
		FAL_Close();
	}
//    return dtyRequester.status_enu;
}
Example #2
0
unsigned long Data_FAL_Read(unsigned char blocknum)
{
	my_fal_request_t.index_u16 = blocknum;   
	my_fal_request_t.command_enu = FAL_CMD_READ_WORD;	 //read             
	FAL_Execute(&my_fal_request_t);     //zhixing read          
	if (my_fal_request_t.status_enu != FAL_OK) Error_Handler(); 
	return (my_fal_request_t.data_u32);     	
}
Example #3
0
void Data_FAL_Erase(unsigned char blocknum)
{
	my_fal_request_t.index_u16 = blocknum;   
	my_fal_request_t.command_enu = FAL_CMD_ERASE_BLOCK;	 //Erase block          
	FAL_Execute(&my_fal_request_t);     //zhixing erase block    
	while(my_fal_request_t.status_enu == FAL_BUSY) 
	FAL_Handler();    
	if (my_fal_request_t.status_enu != FAL_OK) 
	Error_Handler();      
} 
Example #4
0
void Data_FAL_Write(unsigned char blocknum,unsigned long data_buff)
{
	my_fal_request_t.index_u16 = blocknum;     
	my_fal_request_t.data_u32 = data_buff;    
	my_fal_request_t.command_enu = FAL_CMD_WRITE_WORD;	 //Write 1 word                  
	FAL_Execute(&my_fal_request_t);     //zhixing write        
	while(my_fal_request_t.status_enu == FAL_BUSY) 
	FAL_Handler();    
	if (my_fal_request_t.status_enu != FAL_OK) 
	Error_Handler(); 
}    
Example #5
0
/*==============================================================================*/
void samDataFlashWriteFixAddr(unsigned char *WrDataBuff,unsigned int WrCnt)
{
	fal_request_t   dtyRequester;

	unsigned int i=0;
	unsigned int nWrCnt=0;
	unsigned long __far *DataPtr =(__far unsigned long*)WrDataBuff;

	if(WrCnt%4)
	{
//		return 0xee;	//Data Length Error 		
	}
	nWrCnt = WrCnt/4;

	dtyRequester.status_enu = FAL_Init( &FixArea_fal_descriptor_str );

	if( dtyRequester.status_enu == FAL_OK )
	{
		FAL_Open();

		for(i=0; i<nWrCnt; i++)
		{
			dtyRequester.data_u32    = *(DataPtr+i);
			dtyRequester.index_u16   = i;
			dtyRequester.command_enu = FAL_CMD_WRITE_WORD;
			dtyRequester.status_enu  = 0;

			FAL_Execute( &dtyRequester );

			do {
				FAL_Handler();
			} while( dtyRequester.status_enu == FAL_BUSY );
		}
		FAL_Close();
	}
//    return dtyRequester.status_enu;
}
Example #6
0
/*==============================================================================*/
void samDataFlashEraseFixAddr( void )
{
	fal_request_t   dtyRequester;

	dtyRequester.status_enu = FAL_Init( &FixArea_fal_descriptor_str );

	if( dtyRequester.status_enu == FAL_OK )
	{
		FAL_Open();

		dtyRequester.data_u32    = 0;
		dtyRequester.index_u16   = 0;
		dtyRequester.command_enu = FAL_CMD_ERASE_BLOCK;
		dtyRequester.status_enu  = 0;

		FAL_Execute( &dtyRequester );

		do {
			FAL_Handler();
		} while( dtyRequester.status_enu == FAL_BUSY );
		FAL_Close();
	}
//   return dtyRequester.status_enu;
}