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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? lwmon.c

?? linux下的BOOT程序原碼,有需要的可以來下,保證好用
?? C
?? 第 1 頁 / 共 3 頁
字號(hào):
int board_early_init_f (void){	volatile immap_t *immr = (immap_t *) CFG_IMMR;	/* Disable Ethernet TENA on Port B	 * Necessary because of pull up in COM3 port.	 *	 * This is just a preliminary fix, intended to turn off TENA	 * as soon as possible to avoid noise on the network. Once	 * I睠 is running we will make sure the interface is	 * correctly initialized.	 */	immr->im_cpm.cp_pbpar &= ~PB_ENET_TENA;	immr->im_cpm.cp_pbodr &= ~PB_ENET_TENA;	immr->im_cpm.cp_pbdat &= ~PB_ENET_TENA;	/* set to 0 = disabled */	immr->im_cpm.cp_pbdir |= PB_ENET_TENA;	return (0);}/* ------------------------------------------------------------------------- *//***********************************************************************F* Function:     void reset_phy (void) P*A*Z* *P* Parameters:   noneP*P* Returnvalue:  none *Z* Intention:    Reset the PHY.  In the lwmon case we do this by theZ*               signaling the PIC I/O expander. *D* Design:       wd@denx.deC* Coding:       wd@denx.deV* Verification: dzu@denx.de ***********************************************************************/void reset_phy (void){	uchar c;#ifdef DEBUG	printf ("### Switch on Ethernet for SCC2 ###\n");#endif	c = pic_read (0x61);#ifdef DEBUG	printf ("Old PIC read: reg_61 = 0x%02x\n", c);#endif	c |= 0x40;					/* disable COM3 */	c &= ~0x80;					/* enable Ethernet */	pic_write (0x61, c);#ifdef DEBUG	c = pic_read (0x61);	printf ("New PIC read: reg_61 = 0x%02x\n", c);#endif	udelay (1000);}/*------------------------- Keyboard controller -----------------------*//* command codes */#define	KEYBD_CMD_READ_KEYS	0x01#define KEYBD_CMD_READ_VERSION	0x02#define KEYBD_CMD_READ_STATUS	0x03#define KEYBD_CMD_RESET_ERRORS	0x10/* status codes */#define KEYBD_STATUS_MASK	0x3F#define	KEYBD_STATUS_H_RESET	0x20#define KEYBD_STATUS_BROWNOUT	0x10#define KEYBD_STATUS_WD_RESET	0x08#define KEYBD_STATUS_OVERLOAD	0x04#define KEYBD_STATUS_ILLEGAL_WR	0x02#define KEYBD_STATUS_ILLEGAL_RD	0x01/* Number of bytes returned from Keyboard Controller */#define KEYBD_VERSIONLEN	2	/* version information */#define	KEYBD_DATALEN		9	/* normal key scan data *//* maximum number of "magic" key codes that can be assigned */static uchar kbd_addr = CFG_I2C_KEYBD_ADDR;static uchar *key_match (uchar *);#define	KEYBD_SET_DEBUGMODE	'#'	/* Magic key to enable debug output *//***********************************************************************F* Function:     int board_postclk_init (void) P*A*Z* *P* Parameters:   noneP*P* Returnvalue:  intP*                - 0 is always returned. *Z* Intention:    This function is the board_postclk_init() method implementationZ*               for the lwmon board. * ***********************************************************************/int board_postclk_init (void){	DECLARE_GLOBAL_DATA_PTR;	kbd_init();#ifdef CONFIG_MODEM_SUPPORT	if (key_pressed()) {		disable_putc();	/* modem doesn't understand banner etc */		gd->do_mdm_init = 1;	}#endif	return (0);}struct serial_device * default_serial_console (void){	DECLARE_GLOBAL_DATA_PTR;	return gd->do_mdm_init ? &serial_scc_device : &serial_smc_device;}static void kbd_init (void){	DECLARE_GLOBAL_DATA_PTR;	uchar kbd_data[KEYBD_DATALEN];	uchar tmp_data[KEYBD_DATALEN];	uchar val, errcd;	int i;	i2c_init (CFG_I2C_SPEED, CFG_I2C_SLAVE);	gd->kbd_status = 0;	/* Forced by PIC. Delays <= 175us loose */	udelay(1000);	/* Read initial keyboard error code */	val = KEYBD_CMD_READ_STATUS;	i2c_write (kbd_addr, 0, 0, &val, 1);	i2c_read (kbd_addr, 0, 0, &errcd, 1);	/* clear unused bits */	errcd &= KEYBD_STATUS_MASK;	/* clear "irrelevant" bits. Recommended by Martin Rajek, LWN */	errcd &= ~(KEYBD_STATUS_H_RESET|KEYBD_STATUS_BROWNOUT);	if (errcd) {		gd->kbd_status |= errcd << 8;	}	/* Reset error code and verify */	val = KEYBD_CMD_RESET_ERRORS;	i2c_write (kbd_addr, 0, 0, &val, 1);	udelay(1000);	/* delay NEEDED by keyboard PIC !!! */	val = KEYBD_CMD_READ_STATUS;	i2c_write (kbd_addr, 0, 0, &val, 1);	i2c_read (kbd_addr, 0, 0, &val, 1);	val &= KEYBD_STATUS_MASK;	/* clear unused bits */	if (val) {			/* permanent error, report it */		gd->kbd_status |= val;		return;	}	/*	 * Read current keyboard state.	 *	 * After the error reset it may take some time before the	 * keyboard PIC picks up a valid keyboard scan - the total	 * scan time is approx. 1.6 ms (information by Martin Rajek,	 * 28 Sep 2002). We read a couple of times for the keyboard	 * to stabilize, using a big enough delay.	 * 10 times should be enough. If the data is still changing,	 * we use what we get :-(	 */	memset (tmp_data, 0xFF, KEYBD_DATALEN);	/* impossible value */	for (i=0; i<10; ++i) {		val = KEYBD_CMD_READ_KEYS;		i2c_write (kbd_addr, 0, 0, &val, 1);		i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_DATALEN);		if (memcmp(kbd_data, tmp_data, KEYBD_DATALEN) == 0) {			/* consistent state, done */			break;		}		/* remeber last state, delay, and retry */		memcpy (tmp_data, kbd_data, KEYBD_DATALEN);		udelay (5000);	}}/***********************************************************************F* Function:     int misc_init_r (void) P*A*Z* *P* Parameters:   noneP*P* Returnvalue:  intP*                - 0 is always returned, even in the case of a keyboardP*                    error. *Z* Intention:    This function is the misc_init_r() method implementationZ*               for the lwmon board.Z*               The keyboard controller is initialized and the resultZ*               of a read copied to the environment variable "keybd".Z*               If KEYBD_SET_DEBUGMODE is defined, a check is made forZ*               this key, and if found display to the LCD will be enabled.Z*               The keys in "keybd" are checked against the magicZ*               keycommands defined in the environment.Z*               See also key_match(). *D* Design:       wd@denx.deC* Coding:       wd@denx.deV* Verification: dzu@denx.de ***********************************************************************/int misc_init_r (void){	DECLARE_GLOBAL_DATA_PTR;	uchar kbd_data[KEYBD_DATALEN];	char keybd_env[2 * KEYBD_DATALEN + 1];	uchar kbd_init_status = gd->kbd_status >> 8;	uchar kbd_status = gd->kbd_status;	uchar val;	char *str;	int i;	if (kbd_init_status) {		printf ("KEYBD: Error %02X\n", kbd_init_status);	}	if (kbd_status) {		/* permanent error, report it */		printf ("*** Keyboard error code %02X ***\n", kbd_status);		sprintf (keybd_env, "%02X", kbd_status);		setenv ("keybd", keybd_env);		return 0;	}	/*	 * Now we know that we have a working  keyboard,  so  disable	 * all output to the LCD except when a key press is detected.	 */	if ((console_assign (stdout, "serial") < 0) ||		(console_assign (stderr, "serial") < 0)) {		printf ("Can't assign serial port as output device\n");	}	/* Read Version */	val = KEYBD_CMD_READ_VERSION;	i2c_write (kbd_addr, 0, 0, &val, 1);	i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_VERSIONLEN);	printf ("KEYBD: Version %d.%d\n", kbd_data[0], kbd_data[1]);	/* Read current keyboard state */	val = KEYBD_CMD_READ_KEYS;	i2c_write (kbd_addr, 0, 0, &val, 1);	i2c_read (kbd_addr, 0, 0, kbd_data, KEYBD_DATALEN);	for (i = 0; i < KEYBD_DATALEN; ++i) {		sprintf (keybd_env + i + i, "%02X", kbd_data[i]);	}	setenv ("keybd", keybd_env);	str = strdup ((char *)key_match (kbd_data));	/* decode keys */#ifdef KEYBD_SET_DEBUGMODE	if (kbd_data[0] == KEYBD_SET_DEBUGMODE) {	/* set debug mode */		if ((console_assign (stdout, "lcd") < 0) ||			(console_assign (stderr, "lcd") < 0)) {			printf ("Can't assign LCD display as output device\n");		}	}#endif /* KEYBD_SET_DEBUGMODE */#ifdef CONFIG_PREBOOT	/* automatically configure "preboot" command on key match */	setenv ("preboot", str);	/* set or delete definition */#endif /* CONFIG_PREBOOT */	if (str != NULL) {		free (str);	}	return (0);}#ifdef CONFIG_PREBOOTstatic uchar kbd_magic_prefix[] = "key_magic";static uchar kbd_command_prefix[] = "key_cmd";static int compare_magic (uchar *kbd_data, uchar *str){	uchar compare[KEYBD_DATALEN-1];	char *nxt;	int i;	/* Don't include modifier byte */	memcpy (compare, kbd_data+1, KEYBD_DATALEN-1);	for (; str != NULL; str = (*nxt) ? (uchar *)(nxt+1) : (uchar *)nxt) {		uchar c;		int k;		c = (uchar) simple_strtoul ((char *)str, (char **) (&nxt), 16);		if (str == (uchar *)nxt) {	/* invalid character */			break;		}		/*		 * Check if this key matches the input.		 * Set matches to zero, so they match only once		 * and we can find duplicates or extra keys		 */		for (k = 0; k < sizeof(compare); ++k) {			if (compare[k] == '\0')	/* only non-zero entries */				continue;			if (c == compare[k]) {	/* found matching key */				compare[k] = '\0';				break;			}		}		if (k == sizeof(compare)) {			return -1;		/* unmatched key */		}	}	/*	 * A full match leaves no keys in the `compare' array,	 */	for (i = 0; i < sizeof(compare); ++i) {		if (compare[i])		{			return -1;		}	}	return 0;}/***********************************************************************F* Function:     static uchar *key_match (uchar *kbd_data) P*A*Z* *P* Parameters:   uchar *kbd_dataP*                - The keys to match against our magic definitionsP*P* Returnvalue:  uchar *P*                - != NULL: Pointer to the corresponding command(s)P*                     NULL: No magic is about to happen *Z* Intention:    Check if pressed key(s) match magic sequence,Z*               and return the command string associated with that key(s).Z*Z*               If no key press was decoded, NULL is returned.Z*Z*               Note: the first character of the argument will beZ*                     overwritten with the "magic charcter code" of theZ*                     decoded key(s), or '\0'.Z*Z*               Note: the string points to static environment dataZ*                     and must be saved before you call any function thatZ*                     modifies the environment.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美影院一区二区| 国产suv一区二区三区88区| 色欧美片视频在线观看| 亚洲伦理在线精品| 精品视频1区2区| 青青草国产成人99久久| 精品成人免费观看| 国产suv一区二区三区88区| 国产精品视频观看| 一本久久精品一区二区| 亚洲成a天堂v人片| 精品少妇一区二区三区免费观看| 久久99精品久久久久久久久久久久 | 91免费观看视频在线| 一区二区三区小说| 日韩欧美国产一区二区三区 | 日韩情涩欧美日韩视频| 国产麻豆91精品| 亚洲色欲色欲www| 制服丝袜成人动漫| 床上的激情91.| 亚洲综合无码一区二区| 欧美成人vps| 色天天综合久久久久综合片| 日韩国产欧美三级| 国产精品久久久久影院| 欧美日韩精品三区| 国产精品一区免费视频| 亚洲国产精品久久人人爱蜜臀| 日韩一级高清毛片| 色婷婷综合久久| 麻豆91精品视频| 樱花影视一区二区| 国产目拍亚洲精品99久久精品| 欧美最猛性xxxxx直播| 国产一区二区电影| 天天综合色天天综合色h| 国产精品乱码人人做人人爱 | 国产亚洲女人久久久久毛片| 在线精品视频一区二区| 国产美女在线观看一区| 亚洲成人精品一区二区| 国产日韩高清在线| 日韩欧美国产一区在线观看| 91精彩视频在线观看| 国产毛片精品视频| 免费美女久久99| 亚洲伊人伊色伊影伊综合网| 国产欧美日韩精品在线| 日韩欧美一区在线| 欧美美女一区二区在线观看| 99久久精品免费| 国产高清不卡一区二区| 麻豆久久久久久| 日产欧产美韩系列久久99| 亚洲精品中文字幕乱码三区| 国产精品欧美一区喷水| 久久久久久亚洲综合| 日韩天堂在线观看| 欧美一区二区视频免费观看| 91久久一区二区| 99r国产精品| 高清av一区二区| 国产一区二区成人久久免费影院| 日本一道高清亚洲日美韩| 亚洲国产美女搞黄色| 亚洲精品国产a久久久久久 | 亚洲综合色视频| 亚洲日本丝袜连裤袜办公室| 成人欧美一区二区三区小说| 国产女主播一区| 国产欧美精品一区二区三区四区| 精品久久免费看| 欧美精品一区二区三区一线天视频| 日韩一区二区高清| 欧美本精品男人aⅴ天堂| 欧美白人最猛性xxxxx69交| 欧美mv和日韩mv国产网站| 精品国产免费一区二区三区香蕉| 日韩一区二区三区观看| 日韩欧美亚洲另类制服综合在线 | 欧美天堂亚洲电影院在线播放| 色综合欧美在线视频区| 欧美亚男人的天堂| 欧美久久一二区| 日韩女优电影在线观看| 精品处破学生在线二十三| 久久精品亚洲一区二区三区浴池 | 日日夜夜精品视频免费| 免费久久精品视频| 国产美女久久久久| 岛国av在线一区| 91色婷婷久久久久合中文| 色八戒一区二区三区| 欧美日韩成人一区| 日韩精品一区国产麻豆| 日本一区二区三区视频视频| 中文字幕乱码日本亚洲一区二区| 中文字幕一区二区三区蜜月| 一区二区免费在线| 人人狠狠综合久久亚洲| 国产一区二区三区香蕉| 波多野结衣亚洲| 欧美日韩一区三区| www精品美女久久久tv| 国产精品国产三级国产aⅴ入口| 一区二区免费看| 麻豆精品国产传媒mv男同| 成人午夜激情在线| 欧美色偷偷大香| 久久久久久97三级| 亚洲欧美偷拍三级| 捆绑调教美女网站视频一区| 国产91丝袜在线18| 欧美日韩另类一区| 久久精品夜色噜噜亚洲aⅴ| 亚洲综合色在线| 国产一区二区三区电影在线观看| 99精品视频一区二区三区| 777奇米成人网| 国产精品乱码人人做人人爱| 秋霞国产午夜精品免费视频| aaa亚洲精品| 精品国产一二三| 亚洲国产精品久久一线不卡| 国产91丝袜在线播放九色| 欧美一级日韩免费不卡| 亚洲另类色综合网站| 国产美女精品在线| 555夜色666亚洲国产免| 中文字幕制服丝袜成人av| 蜜臀a∨国产成人精品| 欧美综合天天夜夜久久| 久久久国产精华| 青青草一区二区三区| 在线观看视频一区| 中日韩免费视频中文字幕| 免费观看久久久4p| 欧美日韩亚洲高清一区二区| 国产精品青草久久| 九九**精品视频免费播放| 欧美亚洲日本一区| 亚洲精品欧美激情| av一区二区久久| 久久久亚洲午夜电影| 奇米影视在线99精品| 欧美少妇xxx| 亚洲伊人伊色伊影伊综合网| 99综合电影在线视频| 久久精品日韩一区二区三区| 男男gaygay亚洲| 欧美日本精品一区二区三区| 亚洲女与黑人做爰| 97精品电影院| 国产精品久久三| 不卡的电影网站| 中文字幕 久热精品 视频在线| 韩国理伦片一区二区三区在线播放| 欧美一区欧美二区| 蜜臀久久99精品久久久画质超高清| 欧美人狂配大交3d怪物一区| 一区二区在线观看av| 91国偷自产一区二区开放时间| 亚洲靠逼com| 欧美在线三级电影| 午夜精品一区二区三区免费视频| 欧美亚洲国产一区二区三区va| 亚洲综合激情小说| 欧美精品第1页| 全国精品久久少妇| 亚洲精品一区二区三区在线观看 | 狠狠色狠狠色综合系列| 精品国产污网站| 国产丶欧美丶日本不卡视频| 久久精品男人天堂av| 高清免费成人av| 国产精品网友自拍| 91免费看片在线观看| 亚洲国产精品一区二区www | 欧美精品一区二| 国产成人日日夜夜| 国产精品久久久久久一区二区三区| 99久久精品费精品国产一区二区| 一区二区三区.www| 日韩一区二区三区三四区视频在线观看| 经典三级视频一区| 中文字幕av免费专区久久| 欧洲精品一区二区| 男女激情视频一区| 国产精品网站在线播放| 日本电影欧美片| 蜜桃精品视频在线| 国产精品麻豆视频| 欧美日韩mp4| 国产精品资源在线看| 17c精品麻豆一区二区免费| 欧美日本精品一区二区三区| 国产一区二区三区av电影 | 国产精品天美传媒| 欧美视频中文字幕|