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

📄 port_func.h

📁 主要是实现5402的boot代码 实在是不多的好东西
💻 H
字号:
/**********************************************/
/*filename: port_func.h                       */
/**********************************************/

u16 u_tmp;
u16 u_dq7;
u16 u_dq61;
u16 u_dq62;
#define DATAaaaa 0xaaaa
#define DATAd555 0xd555


/*function: flash_ready() *********************/
void flash_ready()
{
	u_tmp=*(u16*)(0xfffe);
	*(u16*)(0xd555)=0xaa;
	u_tmp=*(u16*)(0xfffe);
	
	*(u16*)(0xaaaa)=0x55;
	u_tmp=*(u16*)(0xfffe);
	
	*(u16*)(0xd555)=0xf0;
	u_tmp=*(u16*)(0xfffe);
}
/***********************************************/




/*function: flash_erase() *********************/
void flash_erase()
{
	int i,num1;
	num1=0x4000;
	u_tmp=0xfffe;
	*(u16*)DATAd555=0xaa;
	u_tmp=0xfffe;
	
	*(u16*)DATAaaaa=0x55;
	u_tmp=0xfffe;
	
	*(u16*)DATAd555=0x80;
	u_tmp=0xfffe;
	
	*(u16*)DATAd555=0xaa;
	u_tmp=0xfffe;
	
	*(u16*)DATAaaaa=0x55;
	u_tmp=0xfffe;
	
	*(u16*)DATAd555=0x10;
	u_tmp=0xfffe;
	for (i=1;i<=num1;i++)
       { 
       asm ( " NOP " );
       }
	
/*	do
	{
		*(u16*)DATAfffe=0x11;
		u_dq7=DATAd555;
	}while((u_dq7&0x0080)==0x0000);*/
	
}
/***********************************************/



/*function: flash_write() *********************/
void flash_write(u16 u_addr, u16 u_val)
{
	u_tmp=*(u16*)(0xfffe);
	*(u16*)(0xd555)=0xaa;
	u_tmp=*(u16*)(0xfffe);
	
	*(u16*)(0xaaaa)=0x55;
	u_tmp=*(u16*)(0xfffe);
	
	*(u16*)(0xd555)=0xa0;
	u_tmp=*(u16*)(0xfffe);
	
	//port8000=0x257;
	*(u16*)(u_addr)=u_val;
	u_tmp=*(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));
}
void flash_write1(u16 u_addr, u16 u_val)
{
	u_tmp=*(u16*)(0xfffe);
	*(u16*)(0xd555)=0xaa;
	u_tmp=*(u16*)(0xfffe);
	
	*(u16*)(0xaaaa)=0x55;
	u_tmp=*(u16*)(0xfffe);
	
	*(u16*)(0xd555)=0xa0;
	u_tmp=*(u16*)(0xfffe);
	
	//port8000=0x257;
	*(u16*)(u_addr)=*(u16*)(u_val);
	u_tmp=*(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));
}
/***********************************************/



/*function: flash_read() **********************/
u16 flash_read(u16 u_addr)
{
	u16 u_val;
	*(u16*)(0xfffe)=0x11;
	u_val=*(u16*)(u_addr);
	*(u16*)(0xfffe)=0x11;
	
	return(u_val);
	
}
/*********************************************/

⌨️ 快捷键说明

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