⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 extdmas.c

📁 三星s3c2460开发板完整功能测试代码
💻 C
字号:
/*****************************************
  NAME: Extdmas.c
  DESC: External DMA test(slave board)
        Request signal is generated in this program
  HISTORY:
  2003.04.09 Baik Seung Woo  ver 0.0
 *****************************************/

#include <stdio.h>
#include <string.h>
#include "2460addr.h"
#include "2460lib.h"
#include "option.h"
#include "extdmam.h"

void Test_Dmareq(void)
{
	int i, ack_count, total_count,c;
//	rGPCON_U=(rGPCON_U&~(0xcc00))|(0x0<<14)|(0x1<<10);//ch-0
//	rGPCON_U=(rGPCON_U&~(0x33000))|(0x0<<16)|(0x1<<12);//ch-1
//	rGPDAT=(1<<24);//ch-0
//	rGPDAT=(1<<25);//ch-1

	printf("1.byte single\n2.halfword single\n3.word single\n4.byte burst\n5.halfword burst\n6.word burst\n"); 
	printf("select mode same as master board: ");
	c = getchar();
	switch(c)
			{
			case '1':
				printf("byte single transfer\n");
				//total_count=0xfffff;
				total_count=32;
				break;
			case '2':
				printf("halfword single transfer\n");
				total_count=16;
				//total_count=0xfffff;
				break;
			case '3':
				printf("word single transfer\n");
				total_count=8;
				//total_count=0xfffff;
				break;			
			case '4':
				printf("byte burst transfer\n");
				total_count=8;
				//total_count=0xfffff;
				break;
			case '5':
				printf("halfword burst transfer\n");
				total_count=4;
				//total_count=0xfffff;
				break;
			case '6':
				printf("word burst transfer\n");
				total_count=2;
				//total_count=0xfffff;
				break;
			default:
				break;
			}


	printf("Setting a master board\n");
	printf("Enter any key\n");
//	rGPDAT=(1<<24);//ch-0
	getchar();
	ack_count=0;


/////////////////Handshake whole///////////////// 
/*
	rGPDAT=(0<<24);//ch-0
	while(rGPDAT&(1<<26));
//	for(i=0;i<11;i++);
	for(i=0;i<5;i++);
	rGPDAT=(1<<24);//ch-0
	
*/
/////////////////Demand single////////////////////
/*
	rGPDAT&=~(1<<24);//ch-0
    while(1)
    	{
		if(Uart_GetKey())
			break;
    	}

	rGPDAT=(1<<24);//ch-0
*/

/////////////////Handshake single///////////////// 	
/*
	for(i=0; i<32; i++)//ch-0
	{
		rGPDAT=(0<<24);//ch-0
		while(rGPDAT&(1<<26));
		printf("%dth ack~~!!\n", i);
		rGPDAT=(0x1<<24);
		while(!(rGPDAT&(1<<26)));
	}
*/

//////////////////////////////////////////////////////////////////////////////
//Single Handshake mode

    //while(1)//ch-0
    while(ack_count<total_count)
	{
		//printf("If you want to transfer, then press any key, %dth iteration.. \n", ack_count);
		//getchar();
//		rGPDAT=(0<<24);//ch-0
//		while(rGPDAT&(1<<26));
		for(i=0;i<5;i++);
//		rGPDAT=(0x1<<24);
		ack_count++;
//		printf("%dth ack~~!!\n", ack_count);
		//if(ack_count==total_count) break;
		//rGPDAT=(0x1<<24);
		//rGPDAT=(0x1<<24);
//		while(!(rGPDAT&(1<<26)))
//		{
//			if(Uart_GetKey()!=0)break;
//		}
//		for(i=0;i<1000;i++);
		for(i=0;i<5;i++);
	}

		//rGPDAT=(0x1<<24);		



}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -