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

📄 main_entry.c

📁 一个比较好的三星s3c4510的启动代码
💻 C
📖 第 1 页 / 共 3 页
字号:
/**********************************User Flash S16 *********************************************/
  	if(CNT>64*15)
		{         

		i_printf(">>>Erase User Flash Area S16,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_16) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS16:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_16;address<(unsigned short *)AM_SECTOR_ADDR_17;address++)
			{
			if(*address!=0xffff)
				{goto EUS16;}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S17 *********************************************/
  	if(CNT>64*16)
		{         

		i_printf(">>>Erase User Flash Area S17,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_17) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS17:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_17;address<(unsigned short *)AM_SECTOR_ADDR_18;address++)
			{
			if(*address!=0xffff)
				{goto EUS17;}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S18 *********************************************/
 	if(CNT>64*17)
		{         

		i_printf(">>>Erase User Flash Area S18,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_18) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS18:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_18;address<(unsigned short *)AM_SECTOR_ADDR_19;address++)
			{
			if(*address!=0xffff)
				{goto EUS18;}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S19 *********************************************/
	if(CNT>64*18)
		{         

		i_printf(">>>Erase User Flash Area S19,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_19) = AM_SECTOR_ERASE;	//0x3030
		i_printf(",Blank Check...");
EUS19:
        		Delay(50000);
	         for(address=(unsigned short *)AM_SECTOR_ADDR_19;address<(unsigned short *)AM_SECTOR_ADDR_20;address++)
			{
			if(*address!=0xffff)
				{goto EUS19;}
			}
		i_printf(", OK!\r\n");    

		}

/**********************************User Flash S20 *********************************************/
  	if(CNT>64*19)
		{         

		i_printf(">>>Erase User Flash Area S20,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_20) = AM_SECTOR_ERASE;	//0x3030

	         i_printf(",Blank Check...");
EUS20:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_20;address<(unsigned short *)AM_SECTOR_ADDR_21;address++)
			{
			if(*address!=0xffff)
				{goto EUS20;}
			}
		i_printf(", OK!\r\n");    

		}

/**********************************User Flash S21 *********************************************/
  	if(CNT>64*20)
		{         

		i_printf(">>>Erase User Flash Area S21,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_21) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS21:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_21;address<(unsigned short *)AM_SECTOR_ADDR_22;address++)
			{
			if(*address!=0xffff)
				{goto EUS21;}
			}
		i_printf(", OK!\r\n");    

		}
	
/**********************************User Flash S22 *********************************************/
  	if(CNT>64*21)
		{         

		i_printf(">>>Erase User Flash Area S22,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_22) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS22:
        		Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_22;address<(unsigned short *)AM_SECTOR_ADDR_23;address++)
			{
			if(*address!=0xffff)
				{goto EUS22;
				}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S23 *********************************************/
 	if(CNT>64*22)
		{         

		i_printf(">>>Erase User Flash Area S23,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_23) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS23:
         	Delay(50000);


		for(address=(unsigned short *)AM_SECTOR_ADDR_23;address<(unsigned short *)AM_SECTOR_ADDR_24;address++)
			{
			if(*address!=0xffff)
				{goto EUS23;
				}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S24 *********************************************/
 	if(CNT>64*23)
		{         

		i_printf(">>>Erase User Flash Area S24,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_24) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS24:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_24;address<(unsigned short *)AM_SECTOR_ADDR_25;address++)
			{
			if(*address!=0xffff)
				{goto EUS24;
				}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S25 *********************************************/
 	if(CNT>64*24)
		{         

		i_printf(">>>Erase User Flash Area S25,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_25) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS25:
        		Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_25;address<(unsigned short *)AM_SECTOR_ADDR_26;address++)
			{
			if(*address!=0xffff)
				{goto EUS25;
				}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S26 *********************************************/
	if(CNT>64*25)
		{         

		i_printf(">>>Erase User Flash Area S26,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_26) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS26:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_26;address<(unsigned short *)AM_SECTOR_ADDR_27;address++)
			{
			if(*address!=0xffff)
				{goto EUS26;
				}
			}
		i_printf(", OK!\r\n");    

		}

/**********************************User Flash S27 *********************************************/
	if(CNT>64*26)
		{         

		i_printf(">>>Erase User Flash Area S27,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_27) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS27:
         	Delay(50000);


		for(address=(unsigned short *)AM_SECTOR_ADDR_27;address<(unsigned short *)AM_SECTOR_ADDR_28;address++)
			{
			if(*address!=0xffff)
				{goto EUS27;
				}
			}
		i_printf(", OK!\r\n");    

		}


/**********************************User Flash S28 *********************************************/
	if(CNT>64*27)
		{         

		i_printf(">>>Erase User Flash Area S28,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_28) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS28:
         	Delay(50000);


		for(address=(unsigned short *)AM_SECTOR_ADDR_28;address<(unsigned short *)AM_SECTOR_ADDR_29;address++)
			{
			if(*address!=0xffff)
				{goto EUS28;
				}
			}
		i_printf(", OK!\r\n");    

		}
/**********************************User Flash S29 *********************************************/
	if(CNT>64*28)
		{         

		i_printf(">>>Erase User Flash Area S29,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_29) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS29:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_29;address<(unsigned short *)AM_SECTOR_ADDR_30;address++)
			{
			if(*address!=0xffff)
				{goto EUS29;
				}
			}
		i_printf(", OK!\r\n");    

		}
/********************************** User Flash S30 *********************************************/
	if(CNT>64*29)
		{         

		i_printf(">>>Erase User Flash Area S30,Please Wait...");
		Flash_Unlock();
		*((unsigned short *)AM_SECTOR_ADDR_30) = AM_SECTOR_ERASE;	//0x3030
	         i_printf(",Blank Check...");
EUS30:
         	Delay(50000);
		for(address=(unsigned short *)AM_SECTOR_ADDR_30;address<(unsigned short *)AM_SECTOR_ADDR_31;address++)
			{
			if(*address!=0xffff)
				{goto EUS30;
				}
			}
		i_printf(", OK!\r\n");    

		}


/************************************ User Sector 31,Reserved ************************************/

	
/*************************************The End of User Sector **************************************/
	
}

/***************************************************************/
/*Function Description:	Initial UART			*/
/*Date:			2003-12-2			*/
/***************************************************************/
void InitUART(int Port,int Baudrate)
{
	if(Port==0)
		{
		ULCON0=0x03;
		UCON0=0x09;
		UBRDIV0=Baudrate;   
		}
	if(Port==1)
		{
		ULCON1=0x03;
		UCON1=0x09;
		UBRDIV1=Baudrate;   
		}

}

/***************************************************************/
/*Function Description:	Install interrupt handler		*/
/*Date:			2003-12-2			*/
/***************************************************************/
unsigned Install_Handle(unsigned routine,unsigned *vector)
{
	unsigned vec,oldvect;
	vec=((routine-(unsigned)vector-0x8)>>2);
	if(vec&0xff000000){}
	vec=0xea000000|vec;
	oldvect=*vector;
	*vector=vec;
	return(oldvect);
}



⌨️ 快捷键说明

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