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

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

?? modemif.c

?? 三星 s3c6400測試代碼
?? C
字號:

//===================================================================
// 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();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品一区专区| 国内成+人亚洲+欧美+综合在线| 欧美肥大bbwbbw高潮| 激情综合五月天| 亚洲一区在线电影| 国产日韩精品一区二区浪潮av| 欧美午夜寂寞影院| 国产成人免费视频网站高清观看视频| 亚洲免费伊人电影| 欧美激情一二三区| 欧美一区二区三区免费在线看| 91免费视频大全| 国产精品综合一区二区三区| 日韩一区精品字幕| 亚洲精品免费在线播放| 国产精品美日韩| 久久久久久亚洲综合影院红桃 | 国产盗摄一区二区三区| 日日夜夜精品视频免费| 亚洲天堂2014| 亚洲国产成人一区二区三区| 久久久久久亚洲综合| 欧美一区二区三区成人| 色婷婷综合久久久久中文一区二区 | 一区二区三区在线观看视频| 国产午夜亚洲精品羞羞网站| 欧美r级在线观看| 欧美一区二区三区思思人| 欧美猛男男办公室激情| 日韩视频在线你懂得| 欧美视频在线一区| 在线免费观看日本欧美| 色噜噜偷拍精品综合在线| www.99精品| av在线免费不卡| 成人深夜福利app| 国产v综合v亚洲欧| 风流少妇一区二区| 高清不卡在线观看| 成人视屏免费看| www.性欧美| 色综合视频一区二区三区高清| 99久久综合精品| 91丝袜呻吟高潮美腿白嫩在线观看| 成人性色生活片| av资源网一区| 在线欧美小视频| 欧美日韩亚洲高清一区二区| 欧美揉bbbbb揉bbbbb| 91超碰这里只有精品国产| 91精品国产欧美一区二区| 精品欧美一区二区三区精品久久| 欧美v亚洲v综合ⅴ国产v| 久久美女艺术照精彩视频福利播放 | 自拍偷拍国产精品| 亚洲精品国产视频| 婷婷开心激情综合| 精品一区二区三区免费视频| 国产高清精品网站| 91欧美一区二区| 欧美精品自拍偷拍| 精品88久久久久88久久久| 26uuu久久天堂性欧美| 中文av字幕一区| 亚洲精品你懂的| 蜜桃视频一区二区三区在线观看| 激情综合网av| 97久久人人超碰| 欧美日韩日日夜夜| 久久午夜羞羞影院免费观看| 国产精品高潮呻吟| 亚洲国产中文字幕| 国产经典欧美精品| 在线免费精品视频| 欧美zozozo| 亚洲欧美色图小说| 久久99久久久久| 91视频在线观看免费| 欧美一区二区久久久| 国产精品高潮呻吟久久| 日本女优在线视频一区二区| 国产成人精品在线看| 欧美日韩一区二区在线观看 | 中文字幕av免费专区久久| 亚洲欧美一区二区视频| 日本美女一区二区三区视频| www.欧美日韩国产在线| 日韩一区二区麻豆国产| 亚洲欧美一区二区在线观看| 青青国产91久久久久久| 成人免费观看视频| 欧美一区二区三区影视| 亚洲视频中文字幕| 久久国内精品视频| 日韩精品一区二区三区老鸭窝| 国产精品免费免费| 激情欧美一区二区| 欧美三级视频在线| 中文字幕一区二区三区四区| 美女精品自拍一二三四| 欧美亚洲综合一区| 国产欧美一区二区在线观看| 天天综合网天天综合色| 91性感美女视频| 久久精品一区二区三区不卡牛牛| 午夜av一区二区三区| 91视频www| 中文字幕成人在线观看| 久久99精品久久久久婷婷| 欧美日韩性生活| 一区二区成人在线| 99久久777色| 欧美高清一级片在线观看| 激情图区综合网| 欧美精品精品一区| 一区二区三区美女| 99免费精品在线| 国产精品欧美极品| 国产一区二区看久久| 日韩欧美精品在线视频| 午夜免费久久看| 欧美日韩国产一区二区三区地区| 亚洲视频精选在线| av亚洲精华国产精华精华| 中文字幕+乱码+中文字幕一区| 国产一区999| 欧美精品一区视频| 国产一区在线看| 精品成a人在线观看| 国内一区二区视频| 精品免费国产二区三区 | 91麻豆国产在线观看| 中文字幕av一区 二区| 成人一区二区三区中文字幕| 久久婷婷色综合| 黄一区二区三区| 337p粉嫩大胆噜噜噜噜噜91av| 久久精品国产99国产| 精品日韩在线一区| 国产一区在线观看麻豆| 久久久久免费观看| 粉嫩久久99精品久久久久久夜| 国产日韩欧美精品综合| 国产二区国产一区在线观看| 国产日韩精品一区| 91原创在线视频| 亚洲最新在线观看| 欧美日韩一区二区三区视频| 视频在线观看91| 日韩精品一区二区三区蜜臀| 国产精品自拍av| 国产精品国产成人国产三级 | 成人aaaa免费全部观看| 国产精品福利电影一区二区三区四区| av毛片久久久久**hd| 亚洲综合小说图片| 制服丝袜av成人在线看| 加勒比av一区二区| 中文字幕一区二区视频| 色婷婷亚洲综合| 男女男精品网站| 中文字幕av一区二区三区高| 日本黄色一区二区| 奇米精品一区二区三区在线观看| 欧美xxx久久| 色综合久久久久综合体| 天天色天天操综合| 国产网红主播福利一区二区| 99r精品视频| 日本一道高清亚洲日美韩| 国产欧美日产一区| 欧美色图在线观看| 理论电影国产精品| 最新久久zyz资源站| 欧美猛男男办公室激情| 国产白丝精品91爽爽久久| 一区二区三区在线免费观看| 欧美成人a∨高清免费观看| 成人中文字幕在线| 日韩不卡一区二区| 视频一区二区中文字幕| 亚洲欧美中日韩| 偷拍与自拍一区| 精品国产一区二区亚洲人成毛片| 免费久久99精品国产| 国产网站一区二区三区| 欧美视频你懂的| 国产黄人亚洲片| 亚洲chinese男男1069| 国产日韩欧美激情| 欧美一级二级三级蜜桃| 99国产精品久久久久| 亚洲bt欧美bt精品| 中文字幕在线观看不卡视频| 欧美一区二区啪啪| 精品国产91洋老外米糕| 色婷婷综合久久久久中文一区二区| 国产一区亚洲一区| 日韩在线观看一区二区| 亚洲视频图片小说|