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

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

?? gumio.c

?? 老外的一個開源項目
?? C
?? 第 1 頁 / 共 2 頁
字號:
// Copyright (c) David Vescovi.  All rights reserved.
// Part of Project DrumStix
// Windows Embedded Developers Interest Group (WE-DIG) community project.
// http://www.we-dig.org
// Copyright (c) Microsoft Corporation.  All rights reserved.
//------------------------------------------------------------------------------
//
//  File:  gumio.c            
//
//  This module sets up Gumstix specific peripheral GPIO.
//
//------------------------------------------------------------------------------
#include "bsp.h"
#include <nkintr.h>
 
//------------------------------------------------------------------------------
// Defines 
//
#define MCMEM0_value	0x0002449D		// Card I-face Common Mem Space socket 0 timing config
#define MCMEM1_value	0x0002449D		// Card I-face Common Mem Space socket 1 timing config
#define MCATT0_value	0x0002449D		// Card I-face Attribute Space socket 0 timing config
#define MCATT1_value	0x0002449D		// Card I-face Attribute Space socket 1 timing config
#define MCIO0_value		0x00014290		// Card I-face I/O Space socket 0 timing config
#define MCIO1_value		0x00014290		// Card I-face I/O Space socket 1 timing config

//------------------------------------------------------------------------------
// Externs
//
 
//------------------------------------------------------------------------------
// Global Variables 
 
//------------------------------------------------------------------------------
// Local Variables 
//

//------------------------------------------------------------------------------
// Local Functions 
//
// Direct HWUART function to GPIO42-45 for auto-handshake support
// with Bluetooth module
static BOOL InitHWUartAF3(void)
{
    volatile GPIO_REG_T *pGPIORegs = (volatile GPIO_REG_T *) OALPAtoVA(PXA255_BASE_REG_PA_GPIO, FALSE);
    volatile CLK_REG_T  *pCLKRegs =  (volatile CLK_REG_T *)  OALPAtoVA(PXA255_BASE_REG_PA_CLK, FALSE);
    volatile UART_REG_T *pUARTRegs = (volatile UART_REG_T *) OALPAtoVA(PXA255_BASE_REG_PA_HWUART, FALSE);

    // Ensure that UART interrupts are turned off.
    //
    pUARTRegs->LCR     = 0x0;    // Clear DLAB.
    pUARTRegs->IER_DLH = 0x0;    // IER_DLH = 0x0.

    // Set the Baud Rate (Divisor low = DEBUG_BAUD_38400).
    // The divisor latches are at offsets 0 and 1, which are 
    // receive/transmit data and ier registers.
    //
    pUARTRegs->LCR         = 0x80;                // Access Divisor.
    pUARTRegs->THR_RBR_DLL = DEBUG_BAUD;		  // Low byte divisor.
    pUARTRegs->IER_DLH     = 0x00;                // High byte divisor.
    pUARTRegs->LCR         = 0x0;                 // Clear DLAB.

    //Setting UART properties to 8N1 
    //
    pUARTRegs->LCR         = 0x3;     // 8 bits, 1 stop, no parity. Also LCR DLAB bit = 0.

    pUARTRegs->IIR_FCR     = 0x01;    // Enable the FIFO.
    pUARTRegs->IIR_FCR     = 0x07;    // Clear Rx,Tx FIFOs.

    // Don't enable UART interrupts - we'll poll for the data.
    //
    pUARTRegs->IER_DLH     = 0x0;  

    // Ensure loop-back test mode is off even though MCR reset value is 0x0. 
    //
    pUARTRegs->MCR         = (UART_MCR_RTS | UART_MCR_AFE);    // UART in auto mode.

	// Configure GPIO pins for HWUART
    // Initialize GPIO pins.
    // Write 0 on GPIO pins 43 and 45 before configuring them as outputs.
    // Note:Pins shared with BTUART (BTUART and HWUART are mutually exclusive)
    pGPIORegs->GPCR1 = (GPIO_43 | GPIO_45);

    // Configure direction of GPIO pins 42 and 44 as input 
    // and GPIO pins 43 and 45 as output.
    //
    pGPIORegs->GPDR1 &= ~( GPIO_42 | GPIO_44); 
    pGPIORegs->GPDR1 |=  ( GPIO_43 | GPIO_45);

	// Configure GPIO pins 42,43,44 and 45 for Alt_fn3.
    pGPIORegs->GAFR1_L |= ( GPIO_42_AF3_HWRXD | GPIO_44_AF3_HWCTS |
                            GPIO_43_AF3_HWTXD | GPIO_45_AF3_HWRTS );

	// Enable the HWUART clock.
	//
	pCLKRegs->CKEN |= CKEN_HWUART ;

    // Enable the UART.
    //
    pUARTRegs->IER_DLH = 0x40;

    return(TRUE);

}

//------------------------------------------------------------------------------
//
//  Function: OEMInitCF
//
//  Initializes the CF socket
//
//------------------------------------------------------------------------------

BOOL OEMInitCF(BOOL dualSlot) 
{
	volatile MEMC_REG_T *pMEMCRegs = (volatile MEMC_REG_T *) OALPAtoVA(PXA255_BASE_REG_PA_MEMC, FALSE);
	volatile GPIO_REG_T *pGPIORegs = (volatile GPIO_REG_T *) OALPAtoVA(PXA255_BASE_REG_PA_GPIO, FALSE);

	// Initialize socket timing
	pMEMCRegs->MCMEM0 = MCMEM0_value;
	pMEMCRegs->MCMEM1 = MCMEM1_value;
	pMEMCRegs->MCATT0 = MCATT0_value;
	pMEMCRegs->MCATT1 = MCATT1_value;
	pMEMCRegs->MCIO0  = MCIO0_value;	
	pMEMCRegs->MCIO1  = MCIO1_value;	

	// Initialize GPIO pins
    //
	// Configure GPIO pins for CF misc functions
	pGPIORegs->GPSR0 =   ( GPIO_8_CFRESET );
	pGPIORegs->GPDR0 |=  ( GPIO_8_CFRESET );
	OALStall(50);
	pGPIORegs->GPCR0 =   ( GPIO_8_CFRESET );

	pGPIORegs->GPDR0 &= ~( GPIO_4_S0_BVD1 | 
						   GPIO_11_S0_nCARD_DETECT |
						   GPIO_26_S0_READY_nIREQ );
	pGPIORegs->GPDR1 &= ~( GPIO_36_S0_BVD2 );

	// Configure GPIO pins for CF Card socket
	// Write 1 on GPIO pins 48-55 before configuring them as outputs.
	pGPIORegs->GPSR1 =   ( GPIO_48 | GPIO_49 | GPIO_50 | GPIO_51 |
						   GPIO_52 | GPIO_53 | GPIO_54 | GPIO_55);

	// Configure direction of GPIO pins 48-55 as output
	// and GPIO pins 56 & 57 as input
	pGPIORegs->GPDR1 |=  ( GPIO_48 | GPIO_49 | GPIO_50 | GPIO_51 |
						   GPIO_52 | GPIO_53 | GPIO_54 | GPIO_55 );
	pGPIORegs->GPDR1 &= ~( GPIO_56 | GPIO_57 ); 

	// Configure GPIO pins for Alt_fnX to support CF cards.
	// assume relevent ALT bits are already preset to 0's.
	pGPIORegs->GAFR1_U |= ( GPIO_48_AF2_nPOE    | GPIO_49_AF2_nPWE |
							GPIO_50_AF2_nPIOR   | GPIO_51_AF2_nPIOW |
							GPIO_52_AF2_nPCE1   | GPIO_53_AF2_nPCE2 |
							GPIO_54_AF2_pSKTSEL | GPIO_55_AF2_nPREG |
							GPIO_56_AF1_nPWAIT  | GPIO_57_AF1_nIOIS16 );

	if (dualSlot)
	{
		pGPIORegs->GPDR0 &= ~( GPIO_18_S1_BVD1 | GPIO_27_S1_READY_nIREQ );
		pMEMCRegs->MECR = MECR_CIT | MECR_NOS;
	}
	else
	{
		pMEMCRegs->MECR = MECR_CIT;
	}

    return(TRUE);
}


//------------------------------------------------------------------------------
//
//  Function: OEMInitMMC
//
//  Initializes the MMC socket
//
//------------------------------------------------------------------------------

BOOL OEMInitMMC(BOOL netMMC) 
{
	volatile GPIO_REG_T *pGPIORegs = (volatile GPIO_REG_T *) OALPAtoVA(PXA255_BASE_REG_PA_GPIO, FALSE);
    volatile CLK_REG_T  *pCLKRegs =  (volatile CLK_REG_T *)  OALPAtoVA(PXA255_BASE_REG_PA_CLK, FALSE);

	// set MMCLK and MMCCS0 high before configuring as output 
	pGPIORegs->GPSR0 =  (GPIO_6 | GPIO_8);
	pGPIORegs->GPDR0 |= (GPIO_6 | GPIO_8);
	// Card Detects as inputs
	pGPIORegs->GPDR0 &= ~( GPIO_22_nCDMMC );
	pGPIORegs->GPDR1 &= ~( GPIO_54_nCDMMC );

	// set pins 6 and 8 to alternate function 1
    pGPIORegs->GAFR0_L |= (GPIO_6_AF1_MMCLK | GPIO_8_AF1_MMCCS0);
 
	if (netMMC)
	{
		// set MMCLK #2 pin for output mode 
		pGPIORegs->GPSR1 = (GPIO_53);
		pGPIORegs->GPDR1 |= (GPIO_53);

		// set pins 53 to alternate function 1
	    pGPIORegs->GAFR1_U |= GPIO_53_AF1_MMCCLK;
	}

	pCLKRegs->CKEN |= CKEN_MMC ;

	return(TRUE);

}


//------------------------------------------------------------------------------
//
//  Function:  OEMInitUart
//
//  Set up a uart.
//
//------------------------------------------------------------------------------

BOOL OEMInitUart(UINT32 UARTPhysAddr)
{
    volatile GPIO_REG_T *pGPIORegs = (volatile GPIO_REG_T *) OALPAtoVA(PXA255_BASE_REG_PA_GPIO, FALSE);
    volatile CLK_REG_T  *pCLKRegs =  (volatile CLK_REG_T *)  OALPAtoVA(PXA255_BASE_REG_PA_CLK, FALSE);
    volatile UART_REG_T *pUARTRegs = (volatile UART_REG_T *) OALPAtoVA(UARTPhysAddr, FALSE);

    // Ensure that UART interrupts are turned off.
    //
    pUARTRegs->LCR     = 0x0;    // Clear DLAB.
    pUARTRegs->IER_DLH = 0x0;    // IER_DLH = 0x0.

    // Set the Baud Rate (Divisor low = DEBUG_BAUD_38400).
    // The divisor latches are at offsets 0 and 1, which are 
    // receive/transmit data and ier registers.
    //
    pUARTRegs->LCR         = 0x80;                // Access Divisor.
    pUARTRegs->THR_RBR_DLL = DEBUG_BAUD;		  // Low byte divisor.
    pUARTRegs->IER_DLH     = 0x00;                // High byte divisor.
    pUARTRegs->LCR         = 0x0;                 // Clear DLAB.

    //Setting UART properties to 8N1 
    //
    pUARTRegs->LCR         = 0x3;     // 8 bits, 1 stop, no parity. Also LCR DLAB bit = 0.

    pUARTRegs->IIR_FCR     = 0x01;    // Enable the FIFO.
    pUARTRegs->IIR_FCR     = 0x07;    // Clear Rx,Tx FIFOs.

    // Don't enable UART interrupts - we'll poll for the data.
    //
    pUARTRegs->IER_DLH     = 0x0;  

    // Ensure loop-back test mode is off even though MCR reset value is 0x0. 
    //
    pUARTRegs->MCR         = 0x0;    // UART is in normal mode.

	// Initialize GPIO pins
    //
    if (UARTPhysAddr == PXA255_BASE_REG_PA_FFUART)
    {
		// Configure GPIO pins for FFUART
		// Write 0 on GPIO pins 39 before configuring them as outputs.
		pGPIORegs->GPCR1 = ( GPIO_39 );

		// Configure direction of GPIO pins 34 as input
		// and GPIO pins 39 as output
		pGPIORegs->GPDR1 &= ~( GPIO_34 ); 
		pGPIORegs->GPDR1 |=  ( GPIO_39 );

		// Configure GPIO pins 34 for Alt_fn1. And pins 39 for Alt_fn2.
		pGPIORegs->GAFR1_L |= ( GPIO_34_AF1_FFRXD | GPIO_39_AF2_FFTXD );

		// Enable the FFUART clock.
		//
		pCLKRegs->CKEN |= CKEN_FFUART ;

    }
    if (UARTPhysAddr == PXA255_BASE_REG_PA_STUART)
    {
		// Configure GPIO pins for STUART
		// Write 0 on GPIO pins 47 before configuring them as outputs.
		pGPIORegs->GPCR1 = ( GPIO_47 );

		// Configure direction of GPIO pins 46 as input
		// and GPIO pins 47 as output
		pGPIORegs->GPDR1 &= ~( GPIO_46 ); 
		pGPIORegs->GPDR1 |=  ( GPIO_47 );

		// Configure GPIO pins 46 for Alt_fn2. And pins 47 for Alt_fn1.
		pGPIORegs->GAFR1_L |= ( GPIO_46_AF2_RXD | GPIO_47_AF1_TXD );

		// Enable the STUART clock.
		//
		pCLKRegs->CKEN |= CKEN_STUART ;

    }
    if (UARTPhysAddr == PXA255_BASE_REG_PA_HWUART)
    {
		// Configure GPIO pins for HWUART
        // Initialize GPIO pins.
	    // Write 0 on GPIO pins 48 and 51 before configuring them as outputs.
	    pGPIORegs->GPCR1 = (GPIO_48 | GPIO_51);

	    // Configure direction of GPIO pins 49 and 50 as input 
	    // and GPIO pins 48 and 51 as output.
        //
	    pGPIORegs->GPDR1 &= ~( GPIO_49 | GPIO_50); 
	    pGPIORegs->GPDR1 |=  ( GPIO_48 | GPIO_51);

		// Configure GPIO pins 48,49,50 and 51 for Alt_fn1.
	    pGPIORegs->GAFR1_U |= ( GPIO_49_AF1_HWRXD | GPIO_50_AF1_HWCTS |
                                GPIO_48_AF1_HWTXD | GPIO_51_AF1_HWRTS );

		// Enable the HWUART clock.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久精品人人做人人爽50路| 国产麻豆9l精品三级站| 久久久精品影视| 日韩欧美一级二级三级| 69堂亚洲精品首页| 欧美日韩一本到| 911国产精品| 精品国内二区三区| 久久中文娱乐网| 国产欧美精品一区aⅴ影院| 欧美激情中文字幕| 日韩美女啊v在线免费观看| 这里只有精品99re| 一区二区三区在线观看动漫| 东方aⅴ免费观看久久av| 欧美一级精品在线| 日韩精品福利网| 欧美中文字幕一区| 一区二区在线观看视频在线观看| 懂色av一区二区三区蜜臀| 国产精品久久久久久久午夜片| 秋霞av亚洲一区二区三| 欧美高清激情brazzers| 亚洲成人一区在线| 欧美日韩情趣电影| 亚洲电影你懂得| 欧美日本在线观看| 天天综合色天天| 欧美一区二区三区性视频| 亚洲资源中文字幕| 欧美色图一区二区三区| 欧美一区二区在线免费观看| 欧美伦理视频网站| 欧美激情综合在线| 日韩主播视频在线| 99久久99久久综合| 91精品综合久久久久久| 国产精品黄色在线观看| 蜜臀av一区二区三区| 91麻豆精东视频| 久久美女艺术照精彩视频福利播放| 亚洲乱码日产精品bd| 美洲天堂一区二卡三卡四卡视频| av在线不卡电影| 日韩欧美一二区| 亚洲午夜国产一区99re久久| 国产成人一区在线| 欧美一区二区高清| 一区二区三区国产豹纹内裤在线| 国产精品911| 日韩一区二区三区电影在线观看| 亚洲另类春色国产| 成人免费观看男女羞羞视频| 日韩一级大片在线| 亚洲一区二区三区小说| 成人黄色一级视频| 久久亚洲春色中文字幕久久久| 亚洲综合久久av| 色综合天天做天天爱| 欧美国产成人精品| 国产一区不卡在线| 精品国产一区二区在线观看| 日韩精品欧美精品| 欧美日本乱大交xxxxx| 一区二区三区四区亚洲| 99视频一区二区三区| 国产日韩欧美综合一区| 国产精品538一区二区在线| 日韩一级免费观看| 蜜桃视频在线观看一区二区| 欧美喷水一区二区| 午夜在线成人av| 欧美日韩一二区| 日韩国产欧美在线观看| 欧美女孩性生活视频| 视频一区免费在线观看| 欧美色手机在线观看| 亚洲成国产人片在线观看| 裸体一区二区三区| 久久久无码精品亚洲日韩按摩| 在线观看不卡一区| 国产91精品露脸国语对白| 天天综合天天做天天综合| 国产精品不卡在线| 精品美女在线观看| 911精品产国品一二三产区| av午夜一区麻豆| 欧美系列亚洲系列| 国产激情偷乱视频一区二区三区| 日本视频在线一区| 亚洲一区二区3| 1000精品久久久久久久久| 久久综合久久综合久久综合| 欧美久久婷婷综合色| 色诱视频网站一区| 波波电影院一区二区三区| 精品一区二区三区欧美| 午夜电影网亚洲视频| 亚洲综合在线五月| 亚洲天堂福利av| 老司机免费视频一区二区| 欧美一级一区二区| 东方欧美亚洲色图在线| 夜夜嗨av一区二区三区中文字幕| 日韩美女视频一区二区在线观看| 国产毛片精品视频| 亚洲卡通动漫在线| 精品日产卡一卡二卡麻豆| 99久久精品免费精品国产| 天天亚洲美女在线视频| 国产清纯白嫩初高生在线观看91| 在线中文字幕不卡| 国产一区二区不卡老阿姨| 一区二区欧美视频| 国产婷婷色一区二区三区四区| 欧美综合视频在线观看| 经典三级视频一区| 亚洲高清中文字幕| 国产精品国产三级国产专播品爱网 | 成人综合在线网站| 性做久久久久久久免费看| 国产精品视频九色porn| 欧美揉bbbbb揉bbbbb| 97国产精品videossex| 久久精品国产成人一区二区三区| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 国产精品美女视频| 日韩你懂的电影在线观看| 91久久久免费一区二区| 国产精品538一区二区在线| 日韩精彩视频在线观看| 亚洲人成网站色在线观看| 精品国产乱码久久久久久夜甘婷婷| 色94色欧美sute亚洲线路一ni| 狠狠v欧美v日韩v亚洲ⅴ| 首页国产欧美久久| 亚洲最新视频在线播放| 中文字幕亚洲精品在线观看| 国产天堂亚洲国产碰碰| 欧美本精品男人aⅴ天堂| 欧美日韩不卡一区二区| 91久久线看在观草草青青| 91在线视频免费观看| 成人福利视频在线| 成人性生交大片免费看中文| 国内成人精品2018免费看| 久久久亚洲国产美女国产盗摄| 亚洲色图一区二区| 免费成人你懂的| 91亚洲精品久久久蜜桃| 欧美一区二区三区四区视频| 国产精品五月天| 日韩国产在线一| 99久久国产免费看| 欧美成人一区二区三区| 亚洲人成网站影音先锋播放| 成人av电影观看| 欧美午夜片在线看| 国产午夜精品一区二区三区嫩草| 亚洲午夜国产一区99re久久| 国产在线视频不卡二| 欧美午夜寂寞影院| 中文字幕 久热精品 视频在线 | 日韩精品一二区| 成人激情午夜影院| 日韩一区二区三区免费看| 亚洲免费资源在线播放| 精品一区二区三区日韩| 欧美日韩在线不卡| 亚洲成av人片在www色猫咪| 日本视频一区二区| 国产精品白丝jk白祙喷水网站| 成人三级伦理片| 欧美三级中文字幕在线观看| 337p亚洲精品色噜噜| 久久天天做天天爱综合色| **网站欧美大片在线观看| 亚洲国产精品一区二区久久恐怖片 | 亚洲综合色婷婷| 免费在线观看精品| 粉嫩aⅴ一区二区三区四区五区| 欧洲一区在线观看| 精品卡一卡二卡三卡四在线| 欧美国产1区2区| 日韩国产一二三区| 成人av第一页| 欧美成人官网二区| 尤物在线观看一区| 另类的小说在线视频另类成人小视频在线 | 国产精品剧情在线亚洲| 亚洲欧美二区三区| 久久99国产精品免费| 日本韩国欧美一区二区三区| 日韩欧美一级二级| 亚洲国产中文字幕在线视频综合| 国产成人综合网| 337p亚洲精品色噜噜| 亚洲欧美另类小说视频| 精品一二三四在线| 欧美日韩精品专区|