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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? modemif.c

?? s3c6400 ADS下官方測(cè)試程序
?? C
字號(hào):

//===================================================================
// NAME		: modemif.c
// DESC		: S3C6400X DPSRAM test 
// History	: 01.03.2007 ver 0.0 by JAE GUEN. SONG
//===================================================================


#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "sfr6400.h"
#include "system.h"
#include "option.h"
#include "library.h"
#include "def.h"
#include "sysc.h"
#include "sromc.h"
#include "modemif.h"
#include "gpio.h"
#include "intc.h"
#include "dma.h"

volatile int g_ApDataCnt;
volatile int g_MsmDataCnt;

volatile int g_MsmReadDone;

extern volatile int g_DmaDone;

//static DMAC oModemif0;
//static DMAC oModemif_ap0;

//for MODEM EINT
void __irq Isr_AP2MODEM(void)
{
	u32 lengh, temp;
	u32 *rx_data, *rx_buf;

	// ENT Pending Clear & AP2MODEM INT Clear & Message
	GPIO_EINT0ClrPend(4);

	temp = MODEMIF_IntClear_Int2MSM();
	//printf("temp = 0x%x\n", temp);

	//////////////////////////////
	////// MODEM TX ISR //////////
	/////////////////////////////

	if (temp == 0xff00)
		printf("[AP start data transfer]\n");

	else if (temp == 0xee00)
	{
		//printf("[ MODEM DMA START!!!]\n");	

		//DMA START
		Outp32(0x75000114, 0x8001);
	}

	else if (temp ==0x1100)
	{
		//printf("[MODEC TX completed.]\n\n");
	}
	

	//////////////////////////
	////// AP TX ISR //////////
	/////////////////////////

	else if (temp == 0x00ff)
	{
		printf("[AP TX Started.....MODEM OK!!!]\n");
		Outp16(DPSRAM_BASE_MODEM+INT2AP_ADR, 0x00ff);
	}
		
	else if (temp == 0x00ee)
	{
		printf("[AP transfer data to SDRAM]\n");

		rx_buf = (u32 *)(MSM_RX_BUFFER+(g_MsmDataCnt*AP_TX_BUFLEN));
		rx_data = (u32 *)(MSM_RX_Queue);
		//printf("rx_buf = 0x%x, rx_data = 0x%x\n", rx_buf, rx_data);

		for (lengh = 0 ; lengh <= AP_TX_BUFLEN ; lengh++)
			*(u32 *)(rx_buf++) = *(rx_data++);

		printf("[g_MsmDataCnt= 0x%x ]\n", g_MsmDataCnt);	
		g_MsmDataCnt++;

		//if(g_MsmDataCnt < BLK_COUNT)
		if(g_MsmDataCnt <= BLK_COUNT)
			Outp16(DPSRAM_BASE_MODEM+INT2AP_ADR, 0x00ee);
		else
			Outp16(DPSRAM_BASE_MODEM+INT2AP_ADR, 0x0011);

	}

	else if (temp == 0x0011)
	{
		printf("[MODEM RX Done]\n");
	}

	else
		printf("Error = 0x%04x\n",temp);		
	
	INTC_ClearVectAddr();

}


//for AP ISR
void __irq Isr_MODEM2AP(void)
{
	u32 lengh, temp;
	u32 *rx_data, *rx_buf;

	INTC_Disable(NUM_MSM);
	
	temp = (Inp16(DPSRAM_BASE_AP + INT2AP_ADR))&0xffff;
	MODEMIF_IntClear_Int2AP();

	//////////////////////////////
	////// MODEM TX ISR //////////
	/////////////////////////////
	
	if( temp == 0xff00)
	{
		//printf("[MODEM start data transfer]\n");

		rx_buf = (u32 *)(AP_RX_BUFFER);
		rx_data = (u32 *)(AP_RX_Queue);
		//printf("rx_buf = 0x%x, rx_data = 0x%x\n", rx_buf, rx_data);

		#if 1	// C code

			for (lengh = 0 ; lengh <= MODEM_TX_BUFLEN ; lengh++)
				*(u32 *)(rx_buf++) = *(rx_data++);

		#else	// Assembly


		#endif

		g_ApDataCnt++;

		if(g_ApDataCnt < DMA_COUNT)
			Outp16(DPSRAM_BASE+INT2MSM_ADR, 0xee00);
		else
			Outp16(DPSRAM_BASE+INT2MSM_ADR, 0x1100);
	}
	
	else if(temp == 0xee00)
	{
		//printf("\n[AP transfer data to SDRAM]\n");
		
		rx_buf = (u32 *)(AP_RX_BUFFER+(g_ApDataCnt*MODEM_TX_BUFLEN));
		rx_data = (u32 *)(AP_RX_Queue);
		//printf("rx_buf = 0x%x, rx_data = 0x%x\n", rx_buf, rx_data);

		#if 1	// C code
		
			for (lengh = 0 ; lengh <= MODEM_TX_BUFLEN ; lengh++)
				*(u32 *)(rx_buf++) = *(rx_data++);
			
		#else	// Assembly


		#endif
		
		//printf("[CNT= 0x%x ]\n", g_ApDataCnt);	
		g_ApDataCnt++;

		if(g_ApDataCnt < DMA_COUNT)
			Outp16(DPSRAM_BASE+INT2MSM_ADR, 0xee00);
		else
			Outp16(DPSRAM_BASE+INT2MSM_ADR, 0x1100);

	}

	else if(temp == 0x1100)
	{
		//printf("[AP completed data reading]\n");
	}

	/////////////////////
	////// AP TX ISR /////
	////////////////////
	else if (temp == 0x00ff)
	{
		printf("MODEM RX READY OK....\n");
		g_MsmReadDone = 1;
	}

	else if (temp == 0x00ee)
	{
		printf("MODEM RX....\n");
		g_MsmReadDone = 1;
		//printf("\n[MODEM READ OK], g_MsmReadDone = 0x%x\n", g_MsmReadDone);
	}	

	else if (temp == 0x0011)
	{
		printf("[AP TX Done!!!]\n");
		//Outp16(DPSRAM_BASE+INT2MSM_ADR, 0x0011);
	}
	
	else
	printf("[Error!!!: 0x%x ]\n",temp);	

	INTC_Enable(NUM_MSM);
	INTC_ClearVectAddr();

}

void MODEMIF_Int2AP(u32 int_add)
{
	Outp32(rINT2AP, int_add);
}

void MODEMIF_Int2Modem(u32 int_add)
{
	Outp32(rINT2MSM, int_add);
}
void MODEMIF_IntClear_Int2AP(void)
{
	Outp32(rMSMINTCLR, 0xffff);
}

u16 MODEMIF_IntClear_Int2MSM(void)
{
	u16 temp;

	temp = (Inp16(DPSRAM_BASE_MODEM+INT2MSM_ADR))&0xffff;
	Outp16(DPSRAM_BASE_MODEM+INT2MSM_ADR, temp);

	return temp;
}

void MODEMIF_Set_Modem_Booting_Port(void)
{
	//Set MODEM I/F GPIO Port
	GPIO_SetFunctionAll(eGPIO_N, 0x55555555, 0);	 //GPN3 : AP Reset, GPN8 : MODEM Reset Output
}

void MODEMIF_SetPort(void)
{
	//Set MODEM I/F GPIO Port
	GPIO_SetFunctionAll(eGPIO_K, 0x22222222, 0x22222222);	 //GPN[31:0] -> DATA[15:0]
	GPIO_SetFunctionAll(eGPIO_L, 0x22222222, 0x2222222);	 //GPN[31:0] -> ADDR[17:0]
	GPIO_SetFunctionAll(eGPIO_M, 0x222222, 0);	 //GPM[23:0] -> HOST I/F CS, CSn_MAIN, CSn_SUB, WEn, OEn, INTRn
	GPIO_SetFunctionAll(eGPIO_N, 0x55555555, 0);	 //GPN3 : AP Reset, GPN8 : MODEM Reset Output
}

void MODEMIF_MODEM_Reset(void)
{
	GPIO_SetDataEach(eGPIO_N, eGPIO_8, 1);
	Delay(10);
	GPIO_SetDataEach(eGPIO_N, eGPIO_8, 0);
	Delay(10);
	GPIO_SetDataEach(eGPIO_N, eGPIO_8, 1);
	Delay(10);
}

void MODEMIF_AP_Reset(void)
{
	GPIO_SetDataEach(eGPIO_N, eGPIO_3, 1);
	Delay(10);
	GPIO_SetDataEach(eGPIO_N, eGPIO_3, 0);
	Delay(10);
	GPIO_SetDataEach(eGPIO_N, eGPIO_3, 1);
	Delay(10);
}

void MODEMIF_AP_Init(bool INT2MSMEN, bool INT2APEN)
{
	// Modem I/F Set Port
	MODEMIF_SetPort();

	//Interrupt Setting (MODEM, EINT)Isr_AP2MODEM
	INTC_SetVectAddr(NUM_MSM, Isr_MODEM2AP);		// for Modem Rx
	INTC_Enable(NUM_MSM);

	//MODEM I/F Interrupt enable
	Outp32(rMIFCON, (INT2MSMEN<<3)|(INT2APEN<<2));

	//INT Address Setting
	//MODEMIF_Int2AP(INT2AP_ADR);		
	//MODEMIF_Int2Modem(INT2MSM_ADR);

	//INT2AP Clear
	MODEMIF_IntClear_Int2AP();
}

void MODEMIF_MODEM_Init(bool INT2MSMEN, bool INT2APEN)
{
	//write
	//*(volatile unsigned *)0x70000004 =(0<<28)|(1<<24)|(0x3<<16)|(0<<12)|(1<<8)|(0<<4)|(0<<0);
	*(volatile unsigned *)0x70000004 =(0<<28)|(2<<24)|(0x7<<16)|(1<<12)|(2<<8)|(0<<4)|(0<<0);

 	// ROM Bus 16bit setting
	SYSC_16bitBUS();
	
	// Modem I/F Interrupt request GPIO setting
	GPIO_SetPullUpDownEach(eGPIO_N, eGPIO_4, 0x0); // Pull Down Disable
	GPIO_SetEint0(4, Falling_Edge, eDLYFLT, 0);

	// Interrupt Setting (MODEM : EINT)
	INTC_SetVectAddr(NUM_EINT1, Isr_AP2MODEM);		// NUM_EINT1 : Eint[11:4]
	INTC_Enable(NUM_EINT1);

	// MODEM I/F Interrupt enable
	Outp32(rMIFCON, (INT2MSMEN<<3)|(INT2APEN<<2));

	// Clear the previous pending states
	GPIO_EINT0ClrPend(4);
	GPIO_EINT0DisMask(4);

	// AP2MODEM Interrupt Clear
	MODEMIF_IntClear_Int2MSM();
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女网站色| 国产精品久久久久久久久久免费看| 国产一区二区三区日韩 | 久久精品欧美日韩精品| 日韩欧美一区二区不卡| 国产精品一卡二卡在线观看| 国产精品久久久久婷婷二区次 | 黑人巨大精品欧美黑白配亚洲| 免费成人结看片| 美女一区二区视频| 亚洲美女在线一区| 亚洲精品一区二区三区精华液| 精品女同一区二区| 色94色欧美sute亚洲13| 成人免费毛片a| 成人国产亚洲欧美成人综合网| 洋洋成人永久网站入口| 2020国产精品| 欧美日韩国产另类不卡| 91免费视频网| 国产精选一区二区三区| eeuss影院一区二区三区| 欧洲生活片亚洲生活在线观看| 欧美三级中文字幕在线观看| 波多野结衣在线一区| 色综合天天综合网国产成人综合天| 精品一区二区三区欧美| 99精品视频在线观看| 欧美日韩国产色站一区二区三区| 日韩三级视频在线看| 亚洲欧洲精品一区二区三区不卡| 亚洲精品一区二区三区蜜桃下载| 在线播放国产精品二区一二区四区| 成人性生交大片免费看中文 | 一本一本大道香蕉久在线精品 | 国内精品在线播放| 亚洲一二三四在线| 久久av中文字幕片| 色屁屁一区二区| 99在线精品免费| 日韩一区二区三区免费观看| 国产精品网站在线观看| 午夜一区二区三区在线观看| 国产91精品一区二区麻豆网站| 韩国视频一区二区| 欧美精选在线播放| 亚洲欧美激情在线| 国产一区二区毛片| 成人国产亚洲欧美成人综合网| 欧美日韩一区高清| 91精品国产综合久久小美女| 国产精品视频麻豆| 国产精品久久精品日日| 亚洲欧美一区二区久久| 国产精品一级片| 精品久久久久久久人人人人传媒 | 一区二区三区高清在线| 亚洲天堂精品视频| 一区二区三区蜜桃| hitomi一区二区三区精品| 不卡在线视频中文字幕| 久久精品网站免费观看| 久久国产生活片100| 欧美猛男超大videosgay| 日韩一区二区免费视频| 中文字幕一区在线| 亚洲国产日日夜夜| 欧美性大战久久久久久久蜜臀| 欧美日韩国产综合视频在线观看| 欧美理论片在线| 亚洲香肠在线观看| 国内精品伊人久久久久影院对白| 91精品国产综合久久久久久久久久 | 国产乱码精品1区2区3区| 日韩三级免费观看| 久久精品国产亚洲一区二区三区| 欧美一级二级三级蜜桃| 久久国内精品视频| 久久久国产午夜精品| 亚洲精选一二三| 久久er99精品| 在线视频亚洲一区| 久久青草欧美一区二区三区| 国产乱子轮精品视频| 日韩午夜精品电影| 韩国毛片一区二区三区| 久久久国产一区二区三区四区小说| 亚洲欧美日韩在线| 蜜臀99久久精品久久久久久软件| 4438x成人网最大色成网站| 欧美激情一区二区三区全黄| 91色porny在线视频| 亚洲国产精品一区二区www在线| 精品午夜一区二区三区在线观看 | 亚洲欧洲精品一区二区三区不卡| 91首页免费视频| 91精品国产全国免费观看| 久久精品国产99久久6| 国产亚洲va综合人人澡精品 | 日日摸夜夜添夜夜添国产精品| 日韩一级免费观看| 一级精品视频在线观看宜春院| 麻豆精品新av中文字幕| 久久精品亚洲精品国产欧美kt∨ | 亚洲女人小视频在线观看| 欧美午夜精品免费| 国产精品亲子伦对白| 在线精品视频一区二区| 男女性色大片免费观看一区二区| 欧美在线小视频| 韩国av一区二区三区在线观看| 一区二区三区在线观看动漫| 成人亚洲精品久久久久软件| 五月天亚洲婷婷| 国产精品美女久久久久久久| 国产一区欧美一区| 午夜欧美大尺度福利影院在线看| 久久久久久免费毛片精品| 美国十次综合导航| 一区二区三区免费| 在线观看网站黄不卡| 国产精品一品视频| 国产欧美一区视频| 91精品国产入口| 91久久精品一区二区二区| 成人综合日日夜夜| 国产精品亲子乱子伦xxxx裸| 在线播放一区二区三区| 婷婷亚洲久悠悠色悠在线播放| 国产精品五月天| 久久精品欧美日韩精品| 国产成人精品1024| 激情偷乱视频一区二区三区| 久久青草欧美一区二区三区| 在线不卡中文字幕播放| 欧美性生活大片视频| 91在线一区二区| 成人午夜免费视频| 国产精品一区二区在线播放| 日韩精品免费视频人成| 婷婷激情综合网| 日韩精品色哟哟| 日本在线观看不卡视频| 久久蜜桃av一区二区天堂| 91精品国产综合久久精品图片 | 欧美精品一区二| 3atv在线一区二区三区| 在线播放91灌醉迷j高跟美女 | 欧美军同video69gay| 蜜桃精品视频在线观看| 日韩综合小视频| 午夜精品123| 久久精品一区二区三区四区| 91福利视频网站| 一本大道久久a久久综合| 免费成人在线视频观看| 日本在线不卡视频一二三区| 欧美96一区二区免费视频| 国产精品卡一卡二卡三| 欧美精品 国产精品| 国产精品2024| 粉嫩嫩av羞羞动漫久久久 | 91高清视频免费看| 欧美日韩中文一区| 欧美高清dvd| caoporm超碰国产精品| 久久国产精品无码网站| 久久丁香综合五月国产三级网站 | 国产精品欧美一级免费| 91精品在线免费| 26uuu精品一区二区三区四区在线| 色哟哟国产精品免费观看| 欧美怡红院视频| 日韩欧美国产一区在线观看| 久久久www成人免费毛片麻豆| 欧美午夜视频网站| 北条麻妃国产九九精品视频| 91亚洲国产成人精品一区二区三| 黄一区二区三区| 人人精品人人爱| 成人性色生活片| 国产乱子轮精品视频| 日韩激情中文字幕| 午夜视频一区二区三区| 国内精品免费**视频| 色综合一个色综合| av一二三不卡影片| 国产精品一区久久久久| 精品一区二区国语对白| 婷婷一区二区三区| 亚洲三级电影全部在线观看高清| 国产农村妇女毛片精品久久麻豆| 亚洲青青青在线视频| 黑人巨大精品欧美一区| 91美女视频网站| 久久久亚洲高清| 亚洲高清在线精品| jlzzjlzz欧美大全| 91一区二区三区在线观看| 日韩一级黄色大片|