📄 extdmas.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 + -