亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? main.c

?? 勤研44b0豪華板bootloader源碼。 稍作修改即可用于其他ARM7系列開發板
?? C
字號:
/*

Main entry of this simple bootloader

Some of the code is taken from SAMSUNG's demo code

This source is free of charge. 

*/

#include "stdio.h"
#include "stdlib.h"
#include "stdarg.h"

#include "inc\44b.h"
#include "inc\option.h"

#include "Typedef.h"
#include "Nand.h"


#define CONSOLE_PORT	0

typedef (*uClinuxKernel)(void);

/*  Fout = (8 + M_DIV) * Fin / [ (2+P_DIV) * (2^S_DIV) ]  */
void SetPLL(int mdiv,int pdiv,int sdiv)
{
	rPLLCON = (mdiv << 12) | (pdiv << 4) | sdiv;
}


/* init the programmable port */
void Port_Init(void)
{
	// PORT A GROUP
	/*  BIT 9	8	7	6	5	4	3	2	1	0	*/
	/*  A24	  A23	A22	A21	A20	A19	A18	A17	A16	A0	*/	      
	/*  0		1	1	1	1	1	1	1	1	1	*/
	rPCONA = 0x3ff;	
	rPDATA = 0xfff;

	// PORT B GROUP
	/*  BIT 10	9		8		7		6		5		4		3		2		1		0		*/
	/*	/CS5	/CS4	/CS3	/CS2	/CS1	nWBE3	nWBE2	/SRAS	/SCAS	SCLK	SCKE	*/
	/*	EXT		NIC		USB		IDE		SMC		NC		NC		Sdram	Sdram	Sdram	Sdram	*/
	/*      0,        0,   0,   0,    1,    0,       0,     1,    1,    1,   1          */
	rPDATB = 0x7ff;
	rPCONB = 0xfff;

	/*  PC7		6		5		4		3		2		1		0	*/
	/*   o		o		o		o		o		o		o		o	*/
	/*   NC		NC		NC		NC		SMCALE	SMCCLE	SMCCE	SMCRB*/
	/*   01		01		01		01		01		01		01		01	*/
	rPDATC = 0x0000;	//All IO is low
	rPCONC = 0x5f555555;	
	rPUPC  = 0x3000;	//PULL UP RESISTOR should be enabled to I/O

	//PORT D GROUP
	/*  PORT D GROUP(I/O OR LCD)										*/
	/*  BIT7		6		5		4		3		2		1		0	*/
	/*      VF		VM		VLINE	VCLK	VD3		VD2		VD1		VD0	*/
	/*	   01		01		01		01		01		01		01		01	*/
	rPDATD= 0x55;
	rPCOND= 0xaaaa;	
	rPUPD = 0x00;
	//These pins must be set only after CPU's internal LCD controller is enable
	
	//PORT E GROUP 
	/*  Bit 8		7		6		5		4		3		2		1		0		*/
	/*		ENDLAN	LED3	LED2	LED1	LED0	BEEP	RXD0	TXD0	CLKOUT	*/ 
	/*      00		01		01		01		01		01		10		10		01		*/
	rPDATE	= 0x157;
	rPCONE	= 0x5568;	
	rPUPE	= 0xff;
	
	//PORT F GROUP
	/*  Bit8		7		6		5		 4		3		2		1		0		*/   
	/*  IISCLK	IISDI	IISDO	IISLRCK	Input	Input	Input	IICSDA	IICSCL	*/
	/*	100		010		010		001		00		01		01		10		10		*/
	rPDATF = 0x0;
	rPCONF = 0x22445a;
	rPUPF  = 0x1d3;

	
}


void SerialInit(int port,int mclk,int baud)
{
	if(mclk <= 0)
		mclk = MCLK;
	
	if(port == 0)
	{
		rUFCON0 = 0x0;     	
    		rUMCON0 = 0x0;     	
    		rULCON0 = 0x3;     	
    		rUCON0 	= 0x245;
    		
    		rUBRDIV0 = ( (int)(mclk/(16*baud) + 0.5) -1 );
    	}
    	else if(port == 1)
    	{
    		rUFCON1 = 0x0;     	
    		rUMCON1 = 0x0;     	
    		rULCON1 = 0x3;     	
    		rUCON1 	= 0x245;
    		
    		rUBRDIV1 = ( (int)(mclk/(16*baud) + 0.5) -1 );
    	}
    	
    	return;
}
    	
    		  
char SerialGetChar(int port)
{
	if(port == 0)
	{
		while(!(rUTRSTAT0 & 0x1));    
    
    		return rURXH0;
    	}
    	else if(port == 1)
    	{
    		while(!(rUTRSTAT1 & 0x1));    
    
    		return rURXH1;
    	}
    	
    	return 0;
}

    		
void SerialSendChar(int port,UINT8 ch)
{
	if(port == 0)
	{
		if(ch == '\n')
		{
			while(!(rUTRSTAT0 & 0x2));
			
			rUTXH0 = '\r';
		}
		
		while(!(rUTRSTAT0 & 0x2));
		
		rUTXH0 = ch;
	}
	else if(port == 1)
	{
		if(ch == '\n')
		{
			while(!(rUTRSTAT1 & 0x2));
			
			rUTXH1 = '\r';
		}
		
		while(!(rUTRSTAT1 & 0x2));
		
		rUTXH1 = ch;
	}
}


void SerialSendString(int port,UINT8 *str)
{
	while(*str != '\0')
	{
		SerialSendChar(port,*str);
		
		str++;
	}
}


void SerialPrintf(char *fmt,...)
{
    va_list ap;
    char string[512];

    va_start(ap,fmt);
    vsprintf(string,fmt,ap);
    SerialSendString(0,(UINT8 *)string);
    va_end(ap);
}	


/*	Main entry	*/
void Main(void)
{
  volatile uClinuxKernel fp;
  char c;
  
  volatile unsigned int *KernelSrc;
  volatile unsigned int *KernelDst;
  volatile int KernelSize;
  
  volatile unsigned int BlockID, PageID;
  unsigned char *cKernelDst;
  
	
  rSYSCFG = 0x0; 		//8K  cache, Write Buf Disable
  rNCACHBE0 = 0xc0002000; 	//Disable I/O cache

  Port_Init();  		//IO  initialization
     
  SerialInit(0,MCLK,19200);      	// Serial port 0 is used as our console
  
  SerialPrintf("\nSystem Inited successfully!\n");
  
  SerialPrintf("(O)Boot Linux Kernel from NOR  flash\n");
  SerialPrintf("(A)Boot Linux Kernel from NAND flash\n");
    
  c = 0;
    
  do {
     c = SerialGetChar(0);
  } while (!c) ;
    
  if(c=='o' || c=='O') 
  {
  	  rSYSCFG = 0x6;	//Enable cache
  	 
  	  KernelSrc = (unsigned int *)0x10000;
  	  KernelDst = (unsigned int *)0x0C008000;
  	  
  	  KernelSize = 0x200000 - 0x10000;
  	  
  	  for(;KernelSize>0;KernelSize--)
  	  {
  	  	*(KernelDst) = *(KernelSrc);
  	  	KernelDst++;
  	  	KernelSrc++;
  	  }
  
      SerialPrintf(0,"\n\nuClinux for ARM7TDMI is booting...\n");      		
      
      fp = (uClinuxKernel)0x0C008000;
      (*fp)();
  }
  
  else if(c=='A' || c=='a')
  {
  		cKernelDst = (unsigned char *)0x0C008000;
  		KernelSize = 0x200000 - 0x10000;
  		
  		
  		rSYSCFG = 0x6;
  		
  		NandInit();						// Init the nand chip and interface
  		
  		while(KernelSize > 0)
  		{
  			for(BlockID=0;BlockID<1024;BlockID++)
  			{
  				for(PageID=0;PageID<32;PageID++)
  				{
  					ReadPage(BlockID,PageID,cKernelDst);
  					
  					cKernelDst += 512;
  					KernelSize -= 512;
  					if(KernelSize <= 0)
  						goto BOOT_KERNEL;
  				}
  			}
  		}
  }
  
  else
  {
  		SerialPrintf("\n\n");
  
  		SerialPrintf("\nPlease Reset your ARM7TDMI target");
  		while(1);
  }

BOOT_KERNEL:  					
  SerialPrintf(0,"\n\nuClinux for ARM7TDMI is booting...\n");      		
      
  fp = (uClinuxKernel)0x0C008000;
  (*fp)();				// call the kernel, 
  					// the start address is defined by TEXTADDR in Linux Kernel	
  
  SerialPrintf(0,"\n\n");
  SerialPrintf(0,"\nPlease Reset your ARM7TDMI target");
  
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产91精品欧美| 欧美亚男人的天堂| 日韩欧美不卡在线观看视频| 亚洲第一福利一区| 欧美日韩国产精品成人| 日韩精品一二区| 精品少妇一区二区三区在线播放| 毛片av一区二区| 国产偷国产偷亚洲高清人白洁| 国产不卡视频在线播放| 亚洲视频资源在线| 在线亚洲+欧美+日本专区| 日韩精品亚洲专区| 久久久无码精品亚洲日韩按摩| 成人动漫精品一区二区| 亚洲国产三级在线| 日韩欧美一区二区在线视频| 国产乱码精品一区二区三区五月婷| 国产日韩精品一区二区三区| 91免费版在线| 热久久久久久久| 欧美激情一区二区三区| 91黄色激情网站| 久久精品国产亚洲一区二区三区| 欧美国产精品中文字幕| 欧美艳星brazzers| 精品一区二区三区免费视频| 国产日韩精品一区| 欧美日韩精品欧美日韩精品一 | 欧美日韩成人一区| 黑人精品欧美一区二区蜜桃| 亚洲欧洲三级电影| 91精品国产色综合久久久蜜香臀| 国产剧情一区在线| 亚洲二区在线观看| 久久九九国产精品| 欧美日韩国产片| 福利一区二区在线观看| 亚欧色一区w666天堂| 国产女同互慰高潮91漫画| 欧洲一区在线电影| 国产高清不卡一区二区| 午夜欧美电影在线观看| 中文字幕亚洲一区二区va在线| 欧美日韩国产色站一区二区三区| 丁香婷婷深情五月亚洲| 午夜私人影院久久久久| 国产精品久久久久久久久免费桃花 | 国产aⅴ精品一区二区三区色成熟| 亚洲黄色录像片| 国产欧美日本一区视频| 日韩欧美区一区二| 欧美日韩国产综合一区二区| 成人免费视频视频| 久久国产福利国产秒拍| 亚洲国产精品久久人人爱| 伊人色综合久久天天| 国产欧美一区二区三区在线看蜜臀 | 91社区在线播放| 国产精品中文欧美| 久久aⅴ国产欧美74aaa| 亚洲一区二区三区中文字幕| 国产精品福利一区| 久久久久久久久久电影| 日韩欧美久久一区| 欧美日本一区二区三区| 欧美曰成人黄网| 色综合视频在线观看| 成人黄页在线观看| 国产成人一级电影| 国产成人在线视频播放| 国产麻豆午夜三级精品| 日本不卡123| 日本一区中文字幕| 日本不卡高清视频| 男人的天堂久久精品| 日本sm残虐另类| 伦理电影国产精品| 另类小说图片综合网| 青青草97国产精品免费观看 | 奇米在线7777在线精品| 视频一区中文字幕| 午夜精品福利一区二区三区av| 亚洲另类在线制服丝袜| 亚洲一区二区三区在线| 亚洲福利一区二区三区| 午夜免费久久看| 日韩av成人高清| 久88久久88久久久| 国产91综合一区在线观看| 国产美女精品人人做人人爽| 久久99精品国产麻豆不卡| 狠狠色丁香九九婷婷综合五月| 国内精品国产成人国产三级粉色 | 欧美高清一级片在线| 欧美久久婷婷综合色| 日韩无一区二区| 精品国产乱码久久久久久图片 | 宅男噜噜噜66一区二区66| 91精品欧美久久久久久动漫| 欧美成人精品1314www| 精品福利一二区| 国产精品久久久久久亚洲毛片| 中文字幕视频一区| 亚洲狠狠爱一区二区三区| 美女一区二区三区| 丰满少妇久久久久久久| 欧美性一二三区| 日韩一区二区三区免费观看| 久久理论电影网| 一区二区三区视频在线看| 日韩精品电影在线观看| 国产精品一区二区视频| 91久久国产综合久久| 欧美一区二区三区播放老司机| 久久一区二区视频| 亚洲精品国产成人久久av盗摄| 免费成人美女在线观看.| 成人激情黄色小说| 678五月天丁香亚洲综合网| 久久这里只有精品6| 亚洲在线视频一区| 国产精品 欧美精品| 欧美三片在线视频观看| 国产午夜精品一区二区三区四区| 一区二区三区视频在线看| 韩国av一区二区三区| 欧美优质美女网站| 国产欧美日韩在线看| 亚洲一线二线三线久久久| 国产伦精品一区二区三区免费| 色欲综合视频天天天| 久久久久国产精品麻豆ai换脸| 亚洲成av人片一区二区| 丁香婷婷深情五月亚洲| 欧美一区二区三区系列电影| 国产精品午夜在线观看| 免费观看久久久4p| 在线欧美一区二区| 国产精品全国免费观看高清 | 欧美婷婷六月丁香综合色| 国产欧美精品日韩区二区麻豆天美| 日韩专区中文字幕一区二区| 成人av网在线| 久久免费偷拍视频| 欧美aⅴ一区二区三区视频| 日本国产一区二区| 欧美国产日韩亚洲一区| 捆绑调教美女网站视频一区| 欧美色涩在线第一页| 亚洲人成网站影音先锋播放| 国产精品1区2区| 欧美v国产在线一区二区三区| 亚洲成av人片一区二区梦乃| 色综合久久中文综合久久牛| 国产精品久久一级| 国产馆精品极品| 欧美r级在线观看| 麻豆成人综合网| 欧美一区二区啪啪| 全部av―极品视觉盛宴亚洲| 欧美网站大全在线观看| 亚洲自拍偷拍麻豆| 欧美亚洲国产一区二区三区va | 日本久久电影网| 亚洲手机成人高清视频| 99久久综合精品| 国产精品国产三级国产普通话蜜臀| 国产高清不卡一区| 国产精品全国免费观看高清| 国产成人精品亚洲777人妖| 久久综合中文字幕| 国产精品自在欧美一区| 亚洲精品一区二区在线观看| 久久91精品国产91久久小草| 日韩精品一区二区三区老鸭窝| 九色综合狠狠综合久久| 2020国产精品自拍| 成人性色生活片| 中文字幕在线观看不卡| 99re热视频精品| 亚洲欧美另类久久久精品| 在线观看91精品国产入口| 五月天欧美精品| 日韩欧美国产综合| 国产精品99久久久久久久女警| 国产视频在线观看一区二区三区| 国产宾馆实践打屁股91| 亚洲免费成人av| 制服.丝袜.亚洲.中文.综合| 免费不卡在线观看| 国产午夜精品美女毛片视频| 成人精品一区二区三区四区 | 丁香一区二区三区| 亚洲嫩草精品久久| 欧美日韩精品久久久| 激情综合色播激情啊| 中文子幕无线码一区tr| 91搞黄在线观看| 美国av一区二区|