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

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

?? xmodem.c

?? YL9200開發板的測試代碼,詳細請下載后細看
?? C
字號:
#include "AT91RM9200.h"
#include "lib_AT91RM9200.h"
#include "embedded_services.h"
#include "def.h"
#include "config.h"
#include "console.h"
#include "params.h"

#ifdef	XMODEM_SUPPORT

#define AT91C_UBOOT_BASE_ADDRESS	BOOT_PORG_ADDR
#define AT91C_UBOOT_MAXSIZE			0x20000
#define CLRSCREEN					"\033[2J"
#define	AT91C_PAUSE					100

#define LOADER_VERSION	"loader 1.0"

/* Global variables */
volatile char XmodemComplete = 0;
extern volatile unsigned int StTicks;
extern void ( *StIrqHandler )( void );
extern void ( *DbguIrqHandler )( void );
void start_kernel( U32 address , U32 initrd );

AT91S_RomBoot const *pAT91;
AT91S_SBuffer sXmBuffer;
AT91S_SvcXmodem svcXmodem;
AT91S_Pipe xmodemPipe;
AT91S_CtlTempo ctlTempo;

/*--------------------------------------------------------------------------------------*/
/* Function Name	   : AT91_XmodemComplete()						*/
/* Object   		   : Perform the remap and jump to appli in RAM			*/
/*--------------------------------------------------------------------------------------*/
static void AT91F_XmodemComplete( AT91S_PipeStatus status , void* pVoid )
{
	/* stop the Xmodem tempo */
	svcXmodem.tempo.Stop( &( svcXmodem.tempo ) );
	XmodemComplete = 1;
}

/*--------------------------------------------------------------------------------------*/
/* Function Name	   : AT91F_XmodemProtocol(AT91S_PipeStatus status, void *pVoid)	*/
/* Object   		   : Xmodem dispatcher						*/
/*--------------------------------------------------------------------------------------*/
static void AT91F_XmodemProtocol( AT91S_PipeStatus status , void* pVoid )
{
	AT91PS_SBuffer pSBuffer = ( AT91PS_SBuffer ) xmodemPipe.pBuffer->pChild;
	AT91PS_USART pUsart = svcXmodem.pUsart;

	if ( pSBuffer->szRdBuffer == 0 )
	{
		svcXmodem.tempo.Start( &( svcXmodem.tempo ) , 10 , 0 , AT91F_XmodemComplete , pUsart );
	}
}

/*-------------------------- Interrupt handlers ----------------------------------------*/
/*--------------------------------------------------------------------------------------*/
/* Function Name	   : AT91F_ST_HANDLER()						*/
/* Object   		   : C Interrupt handler for the system timer			*/
/*--------------------------------------------------------------------------------------*/
/*
static void AT91F_ST_HANDLER(void)
{
	volatile unsigned int csr = *AT91C_DBGU_CSR;
	unsigned int error;
	
	// ========== Systimer interrupt ============== 
	if (AT91C_BASE_ST->ST_SR & 0x01) {
		StTicks++;
		ctlTempo.CtlTempoTick(&ctlTempo);
		return;
	}

	error = AT91F_US_Error((AT91PS_USART)AT91C_BASE_DBGU);
	if (csr & error) {
		// Stop previous Xmodem transmition 
		*(AT91C_DBGU_CR) = AT91C_US_RSTSTA;
		AT91F_US_DisableIt((AT91PS_USART)AT91C_BASE_DBGU, AT91C_US_ENDRX);
		AT91F_US_EnableIt((AT91PS_USART)AT91C_BASE_DBGU, AT91C_US_RXRDY);

	}
	
	else if (csr & (AT91C_US_TXRDY | AT91C_US_ENDTX | AT91C_US_TXEMPTY | 
					AT91C_US_RXRDY | AT91C_US_ENDRX | AT91C_US_TIMEOUT | 
					AT91C_US_RXBUFF)) {
		if ( !(svcXmodem.eot) )
			svcXmodem.Handler(&svcXmodem, csr);
	}
}
*/
static void XmodemStIrqHandler( void )
{
	/*	static tick;
		if(tick++>=100) {
			tick = 0;
			putch('a');
		}*/
	ctlTempo.CtlTempoTick( &ctlTempo );
}

static void XmodemDbguIrqHandler( void )
{
	volatile unsigned int csr = *AT91C_DBGU_CSR;
	unsigned int error;

	error = AT91F_US_Error( ( AT91PS_USART ) AT91C_BASE_DBGU );
	if ( csr & error )
	{
		/* Stop previous Xmodem transmition */
		*( AT91C_DBGU_CR ) = AT91C_US_RSTSTA;
		AT91F_US_DisableIt( ( AT91PS_USART ) AT91C_BASE_DBGU , AT91C_US_ENDRX );
		AT91F_US_EnableIt( ( AT91PS_USART ) AT91C_BASE_DBGU , AT91C_US_RXRDY );
	}
	else if ( csr & ( AT91C_US_TXRDY |
		AT91C_US_ENDTX |
		AT91C_US_TXEMPTY |
		AT91C_US_RXRDY |
		AT91C_US_ENDRX |
		AT91C_US_TIMEOUT |
		AT91C_US_RXBUFF ) )
	{
		if ( !( svcXmodem.eot ) )
			svcXmodem.Handler( &svcXmodem , csr );
	}
}

void XmodemDownload( U32 a , U32 b )
{
	AT91PS_Buffer pXmBuffer;
	AT91PS_SvcComm pSvcXmodem;

	/* Init of ROM services structure */
	pAT91 = AT91C_ROM_BOOT_ADDRESS;

	/* Tempo Initialization */
	pAT91->OpenCtlTempo( &ctlTempo , ( void * ) &( pAT91->SYSTIMER_DESC ) );
	ctlTempo.CtlTempoStart( ( void * ) &( pAT91->SYSTIMER_DESC ) );

	/* Xmodem Initialization */
	pXmBuffer = pAT91->OpenSBuffer( &sXmBuffer );
	pSvcXmodem = pAT91->OpenSvcXmodem( &svcXmodem , ( AT91PS_USART ) AT91C_BASE_DBGU , &ctlTempo );
	pAT91->OpenPipe( &xmodemPipe , pSvcXmodem , pXmBuffer );

	/* System Timer initialization */
	/*	AT91F_AIC_ConfigureIt (	AT91C_BASE_AIC,				// AIC base address
					AT91C_ID_SYS,							// System peripheral ID
					AT91C_AIC_PRIOR_HIGHEST,				// Max priority
					AT91C_AIC_SRCTYPE_INT_LEVEL_SENSITIVE,	// Level sensitive
	//				AT91F_ST_ASM_HANDLER );
					AT91F_ST_HANDLER );*/
	//片內下載程序設置值為30,可在上電時讀出!時間間隔為(30/32768)S
	AT91C_BASE_ST->ST_PIMR = 30;
	StIrqHandler = XmodemStIrqHandler;
	DbguIrqHandler = XmodemDbguIrqHandler;
	AT91F_ST_EnableIt( AT91C_BASE_ST , AT91C_ST_PITS );

	/* Enable ST interrupt */
	//	AT91F_AIC_EnableIt(AT91C_BASE_AIC, AT91C_ID_SYS);

	puts( CLRSCREEN );

	puts( ""LOADER_VERSION" ("__DATE__ " - " __TIME__ ")\n" );

	puts( "XMODEM: Download U-BOOT\n" );

	xmodemPipe.Read( &xmodemPipe , ( char * ) AT91C_UBOOT_BASE_ADDRESS , AT91C_UBOOT_MAXSIZE , AT91F_XmodemProtocol , 0 );
	while ( XmodemComplete != 1 );

	puts( "\nU-Boot downloaded successfully\n" );

	delay( AT91C_PAUSE );

	//	AT91F_SetPLL();

	AT91F_AIC_DisableIt( AT91C_BASE_AIC , 0xFFFFFFFF );
	AT91F_AIC_AcknowledgeIt( AT91C_BASE_AIC );

	start_kernel( ( unsigned int ) AT91C_UBOOT_BASE_ADDRESS , 0 );
}

#else

void XmodemDownload( U32 a , U32 b )
{
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产99久久久国产精品潘金网站| 激情欧美一区二区三区在线观看| 国产喷白浆一区二区三区| 精品美女在线观看| 日韩欧美高清一区| 久久女同性恋中文字幕| 国产精品私房写真福利视频| 久久久久国产免费免费 | 欧美性色欧美a在线播放| 成人免费观看视频| 99国产精品久久久久| 色综合久久久久| 欧洲一区二区三区免费视频| 在线观看中文字幕不卡| 欧美精品丝袜中出| 日韩一区二区三区四区五区六区| www久久久久| 综合婷婷亚洲小说| 午夜不卡在线视频| 国内精品视频666| a在线播放不卡| 欧美日韩欧美一区二区| 精品不卡在线视频| 亚洲人成网站在线| 日本系列欧美系列| 成人深夜福利app| 欧美浪妇xxxx高跟鞋交| 国产亚洲成av人在线观看导航| 国产精品久久久久国产精品日日| 亚洲精品国产第一综合99久久 | 国产一区二区三区国产| 99天天综合性| 欧美一级欧美一级在线播放| 国产欧美日韩另类一区| 香蕉久久夜色精品国产使用方法| 国产乱人伦精品一区二区在线观看 | 精品成人a区在线观看| 亚洲欧美综合在线精品| 久久爱www久久做| 日本韩国一区二区三区| 26uuu国产在线精品一区二区| 国产精品久久久久婷婷| 久久精品国产77777蜜臀| 91在线观看地址| 精品久久人人做人人爱| 亚洲一区二区三区免费视频| 国产一区二区剧情av在线| 欧美精品乱码久久久久久按摩| 国产午夜精品久久久久久免费视| 视频精品一区二区| 一本到一区二区三区| 国产日韩精品久久久| 国产精品996| 91精品国产色综合久久ai换脸| 中文字幕一区二区三区乱码在线 | 亚洲图片欧美一区| www.激情成人| 国产区在线观看成人精品| 日韩电影免费一区| 欧美亚洲国产一区在线观看网站| 欧美国产在线观看| 极品少妇一区二区三区精品视频| 欧美日韩你懂得| 亚洲高清免费观看高清完整版在线观看 | 日韩一卡二卡三卡四卡| 亚洲国产精品嫩草影院| 在线免费精品视频| 亚洲男人都懂的| 91麻豆精品视频| 中文字幕一区视频| 不卡高清视频专区| 欧美国产禁国产网站cc| 丁香亚洲综合激情啪啪综合| 日韩欧美中文字幕公布| 精品一区精品二区高清| 精品国产免费一区二区三区香蕉 | 国产视频一区二区在线| 日韩电影在线观看电影| 欧美喷潮久久久xxxxx| 日韩高清不卡在线| 欧美一区二区精品| 国产综合色产在线精品| 一区二区在线免费| 91麻豆国产精品久久| 亚洲国产精品视频| 欧美一区二区人人喊爽| 免费成人深夜小野草| 欧美www视频| 成人午夜在线播放| 亚洲精品日韩综合观看成人91| 欧美亚洲综合色| 日本不卡123| 久久精品视频一区| 成人精品一区二区三区四区| 亚洲男同性恋视频| 欧美日高清视频| 黄页视频在线91| 中文字幕一区av| 欧美视频日韩视频在线观看| 久久激情五月激情| 国产精品系列在线| 欧美日韩国产不卡| 国产一区二区视频在线播放| 亚洲女厕所小便bbb| 欧美一级二级在线观看| 懂色av中文字幕一区二区三区| 亚洲丝袜制服诱惑| 欧美一区二区免费观在线| 国产精品一区二区无线| 亚洲一区二区美女| 久久久国产精品麻豆| 色爱区综合激月婷婷| 国产一区999| 亚洲观看高清完整版在线观看| 国产日韩欧美综合在线| 欧美日韩一区不卡| 不卡视频免费播放| 加勒比av一区二区| 亚洲国产婷婷综合在线精品| 国产三级精品三级在线专区| 欧美久久久一区| 99久久免费国产| 国产一区二区视频在线| 天堂精品中文字幕在线| 国产精品网曝门| 精品日韩一区二区三区| 欧美美女一区二区| 色噜噜久久综合| 成人中文字幕电影| 寂寞少妇一区二区三区| 日韩国产精品久久| 亚洲一区免费视频| 中文字幕欧美三区| 国产日韩精品一区二区三区| 欧美成人性福生活免费看| 欧美精品一二三| 在线观看视频一区二区欧美日韩| 成人免费视频视频| 成人丝袜18视频在线观看| 国内精品视频一区二区三区八戒| 亚洲成av人**亚洲成av**| 亚洲女同一区二区| 亚洲丝袜制服诱惑| 日韩毛片精品高清免费| 国产精品久久久久久久久果冻传媒| 精品免费一区二区三区| 日韩视频永久免费| 91精品欧美久久久久久动漫| 欧美三级乱人伦电影| 精品视频在线视频| 精品视频在线免费看| 欧美另类高清zo欧美| 91精品国产麻豆| 日韩欧美一区中文| 日韩久久精品一区| 精品国产髙清在线看国产毛片| 精品国产一二三| 久久精品一区二区三区四区| 日本一区二区三区四区| 中文字幕精品一区二区精品绿巨人 | 国产精品成人一区二区艾草| 中文字幕一区二区三区不卡在线| 国产精品视频yy9299一区| 中文字幕永久在线不卡| 亚洲影院在线观看| 亚洲成人免费在线观看| 日韩中文字幕1| 国产剧情一区在线| av不卡免费在线观看| 欧美日韩一区不卡| 精品久久久久av影院| 国产精品日韩成人| 一区二区三区波多野结衣在线观看 | 99久久99久久精品免费观看| 色婷婷综合视频在线观看| 欧美美女bb生活片| 久久久三级国产网站| 亚洲欧美色一区| 蜜桃视频在线观看一区| 国内精品写真在线观看| 97aⅴ精品视频一二三区| 欧美喷潮久久久xxxxx| 久久久久久久久99精品| 亚洲欧美日韩国产中文在线| 午夜精品久久久久久久久| 狠狠色2019综合网| 91啪亚洲精品| 久久久久青草大香线综合精品| 一区二区三区不卡视频| 精品一区二区久久| 在线观看欧美黄色| 久久精品夜色噜噜亚洲aⅴ| 亚洲乱码日产精品bd | 久久精品欧美一区二区三区麻豆| 国产精品久久久久久久久免费丝袜 | 欧美激情综合在线| 亚洲一级电影视频| 大陆成人av片| 欧美岛国在线观看| 亚洲国产成人porn|