|
|
下面的任务,只能在第一次执行UPP时成功,后面的均不成功,请创龙工程师看看为什么?
3 K* f5 B- l* T' UVoid UPP_TASK(Void)
6 `1 A" j! R' x0 r* u1 a$ W{
' o. W3 e% \- S5 Y
- g4 m0 z2 L; Y int i,j,k,target_int_count=2;8 c; w. f1 W4 A& ^3 N d& f
char ch[2];5 S/ k* x* p% @" l) A6 [/ K8 r
- O6 o- Q- q! p6 D0 H# g; P6 b8 Y, l! V2 m- c: \- ]
/ I: J4 c" Z; J" q! A$ q7 k) O
upp_interrupt_count = 0;
( k, S' B! @: W7 g! n, M upp_error_count = 0;3 X5 O$ J& e! _' Q7 n5 ?$ b
/ w' x, s; ? j9 n' L5 C. j
UARTPuts("\tResetting uPP buffers...\r\n",-2);: l: S* K; B9 p V) D& A
// Initialize data buffers( q( y; ]4 m! X' k. P
for (i = 0; i < upp_frame_size; i++). }. } a+ G5 O) n. R% i
{8 k% r; w9 z1 T9 b5 d
upp_buffer_b =i;
a/ V$ q! N; w2 [: c upp_buffer_a = 0xDEAD;( q9 \7 `# u, d8 T
}
2 T T1 W/ l) [3 _ Q5 ^& J
K5 A& _$ r6 [! ^5 m //for(i=0;i<1024;i++)$ B s" F5 j; J6 P0 E9 k" K+ G
// temp=0;
* G1 k" v: f, [2 Y$ ~1 U; { \) }! e% S0 R/ t# [
//UPPReset();
, {) [- d' g* Y# G0 q5 {$ L /*启动UPP DMA传输*/9 b! l/ T e2 N1 [5 H
UARTPuts("upp_prog_dma_i\n",-2);9 U' ?9 A: y) Q" p4 w8 K7 Y
upp_reg_hdl->UPID0 = (Uint32)upp_buffer_a;. m, D. B* a1 O1 D+ l
upp_reg_hdl->UPID1 = ((Uint32)upp_line_count << 16) | (Uint32)upp_line_size*sizeof(Int16);: q8 B" x: z1 v
upp_reg_hdl->UPID2 = (Uint32)upp_line_offset*sizeof(Int16);* t. E+ b4 g9 F% h( \1 Y' p
" t! ] J: Y; J$ E, ] UARTPuts("upp_prog_dma_i\n",-2);' r9 b; ]' ^# }- l
upp_reg_hdl->UPQD0 = (Uint32)upp_buffer_b;
9 x. K1 W/ `9 u4 y$ @1 G7 H8 Q upp_reg_hdl->UPQD1 = ((Uint32)upp_line_count << 16) | (Uint32)upp_line_size*sizeof(Int16);& w, H# T, j s/ m3 h
upp_reg_hdl->UPQD2 = (Uint32)upp_line_offset*sizeof(Int16);$ p$ i) D* A. U6 r- e' A# s
7 k- D: i; f* _4 p: K
/*等待UPP传输完毕*/; [9 d7 I' @- ~4 p
//i=0;$ H# V- @0 y4 Y6 Q( Q
//j=0;
9 i- `4 t# a0 R while (upp_interrupt_count < target_int_count && upp_error_count == 0)
# t6 v }" x% G7 u2 h+ c- L {% n1 R0 f9 l: J. u2 X3 q7 n
/* 测试UPP传输的同时操作普通DDR数据
$ c: e, G0 d/ j$ G: A+ K% F temp=i;
4 S+ k& D/ e I2 \2 a7 d9 } i++;2 Y) U6 g6 g4 Q+ | h/ v
if(i==1024)
1 |2 D, L! C: _! k4 D {
4 h2 C: ?4 B; U/ J i=0;" \9 D* e, `1 n
j++;
( _8 {. z0 c% [% V4 r }, I; d4 T( c- o- l* O0 o- G
*/$ O7 u% W" N" L7 a
+ H# R4 x8 h4 G/ b' O0 D( N# |
asm(" nop");/ |9 n. _( I3 @' B! Q1 {. s- U4 g
. I. f- F/ r U9 Y //UARTprintf( "upp_interrupt_count=%d\n",upp_interrupt_count);
. Z5 ~( U0 h7 a( j }
1 \% J6 k% L* u; L4 B
6 J! F1 x( n0 E- U$ ]) u /*检查UPP传输的数据是否正确 (loopback modes only)*/1 K5 L( j# H8 M
//UARTprintf( "i=%d\n",i);
( M1 c/ m, B. j/ S: e //UARTprintf( "j=%d\n",j);
# L% X% \8 W% r; X/ N# S UARTPuts("Data mismatch in buffers.\n",-2);& I$ Y( ]7 e, s; m
if (upp_interrupt_count == 2 && upp_error_count == 0)# _8 V4 e. x* C. q3 \
{
3 R8 K2 r4 p* a6 X" w for (i = 0; i<upp_frame_size; i++)& V1 ?9 r# ]9 Q5 {7 ?8 ]8 I
{
# J1 z1 s* s( p3 |$ t$ C) C; _8 } if (upp_buffer_a != upp_buffer_b)
3 L# m0 L" s2 k+ T) f; E3 ~! n- h* n {$ u; ^5 f' l' T: `& E# |
upp_error_count++;
: @' |& i5 p7 O$ z! t }
% |* M( ^; t+ |. y1 M$ M* g } A* h* E! z+ E8 D/ \8 ~
}
: r5 q' L1 ? j- }- }4 `1 n$ i0 y
/* 报告通信结果*/
$ ?# B2 U& R! X! M; z6 ` if(upp_error_count != 0)
6 ~- Y6 v: L# O2 T/ x UARTprintf( "upp_error_count=%d\n",upp_error_count);
% h1 C& _* i( N; q7 u/ H$ p5 v9 q else
& _9 ?3 s N/ O UARTPuts("uPP transfers complete!\n",-2);# j' q4 a6 n& R3 |1 e+ p) w2 J2 j1 U
' g( n0 V( Y5 ? UARTPuts("Do you want to print all the data?(y/n) ",-2);
% p0 y4 f) {- ~ j UARTGets(ch,2);+ @# k6 L' `) Q
UARTPuts("\n", -2);
/ Q1 F& n; M% j" L `) R! n* O( E$ _" q3 k5 a
if(ch[0] == 'y')( j* |/ J6 r; n, g4 O
{5 y7 l5 z% {! ~) E9 _6 w% O
/*打印全部读到的数据*/
3 ^7 f) [/ o$ t8 t for(i=0; i<upp_frame_size; )
: _4 {# E! x Y0 c: A( J {
/ p0 {! N; l7 S Z for(j=0; j<5; j++)
, Z! f$ [4 v7 [+ \+ {; `' m {/ u+ j/ K5 h# P* Y( C
UARTprintf("upp_buffer_a[%d]=%d ",i,upp_buffer_a);
C9 h" T0 Q+ E2 l( c i++;+ J- L% t) O7 p) g9 |
//if(i >= 4096)
3 \4 E$ v3 W5 @+ M* M1 w4 \, W // break;# e; j, @ X+ w- ~, F6 ^/ u9 N: |) m
* w A# ~: a! V
}. E, |. `+ _- p- G. X; r8 y
UARTPuts("\n",-2);* i7 Z+ t9 T+ b* l
}
' T- g3 g3 l; _4 h' G' F }5 T0 d4 N, p* y6 n5 \1 L9 |0 M
0 Q. r' T6 V8 A- ?& l
}
' ]9 r9 z6 p- d5 Y! m. e! y. A* H3 [& I2 k
$ ^7 \( |% R I! m
|
|