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

📄 flash.c

📁 TMS320C5402 写FLASH的BOOT
💻 C
字号:
 
    U16 u_temp; 
    U16 u_dq7; 
    U16 u_dq61;
    U16 u_dq62;
//------------------------------------------------     
   
    void  Flash_Ready();
    void  Flash_Erase_ALL();  
    void  Flash_Write_OneWord(U16 U_Addr, U16 U_Val) 
    U16  Flash_Read_OneWord(U16 U_Addr);
//------------------------------------------------    
    void  Flash_Ready()
    {
    	u_temp = *(U16*)(0xFFFE) ;
    	*(U16*)(0xD555)= 0xAA    ;
    	u_temp = *(U16*)(0xFFFE) ;
    	
    	*(U16*)(0xAAAA)=0x55     ;
    	u_temp = *(U16*)(0xFFFE) ;
    	
    	*(U16*)(0xD555)=0xF0     ; // Ready Command
    	u_temp = *(U16*)(0xFFFE) ;
    }

//------------------------------------------------     
    void  Flash_Erase_ALL()
    {
    	u_temp    =  portFFFE    ;
    	                         
    	portD555  =  0xAA        ;
    	u_temp    =  portFFFE    ;
    	                         
    	portAAAA  =  0x55        ;
    	u_temp    =  portFFFE    ;
    	                         
    	portD555  =  0x80        ; // Erase0 Command
    	u_temp    =  portFFFE    ;
    	                         
    	portD555  =  0xAA        ;
    	u_temp    =  portFFFE    ;
    	                         
    	portAAAA  =  0x55        ;
    	u_temp    =  portFFFE    ;
    	                         
    	portD555  =  0x10        ; // Erase1 Command
    	u_temp    =  portFFFE    ;
    	u_temp    =  portFFFE    ;
    	do
    	{
    	      portFFFE  =  0x11 ;
    	      u_dq7     =  portD555 ;	
    	}while((u_dq7 & 0x0080)==0x0000);
    	
    }
    
//------------------------------------------------
    void  Flash_Write_OneWord(U16 U_Addr, U16 U_Val)
    {
     	u_temp = *(U16*)(0xFFFE) ;
    	*(U16*)(0xD555)= 0xAA    ;
    	u_temp = *(U16*)(0xFFFE) ;
    	                          
    	*(U16*)(0xAAAA)=0x55     ;
    	u_temp = *(U16*)(0xFFFE) ;
    	                          
    	*(U16*)(0xD555)=0xA0     ; // Write Command
    	u_temp = *(U16*)(0xFFFE) ;
    	
    	// port8000 = 0x123A ;

        *(U16*)(U_Addr)=U_Val    ; // Write DATA to U_Addr
    	u_temp = *(U16*)(0xFFFE) ;
    	
    	do
    	{
    	      *(U16*)(0xFFFE)=0x11 ;
    	      u_dq61  =  *(U16*)(0x8000) ;
    	      *(U16*)(0xFFFE)=0x11 ;	
    	      
    	      // u_dq62 = port8000 ;
    	      
    	       u_dq62  =  *(U16*)(0x8000) ;
    	      *(U16*)(0xFFFE)=0x11 ;
    	      
    	}while((u_dq61 & 0x0040)!=(u_dq62 & 0x0040));     	
    }   
    
//------------------------------------------------   
    U16  Flash_Read_OneWord(U16 U_Addr)
    {
    	/*   portFFFE = 0x11 ;
    	     u_a      =  port8000; 
    	     portFFFE = 0x11 ;
    	*/  
    	// OK    
    	
    	
    	/*   portFFFE = 0x11 ;
    	     u_a      =  port8000; 
    	     portFFFE = 0x11 ;
    	*/  
    	// OK   
    }
        
}       
        
        
        

⌨️ 快捷键说明

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