|
|
下面的任务,只能在第一次执行UPP时成功,后面的均不成功,请创龙工程师看看为什么?; l- H1 J; I7 f- V" i, Y* E3 l
Void UPP_TASK(Void); l; t, K, N5 `( h. ~ K$ r
{( s, c" C# [: b* P
. p3 r) \( R$ R% }% Q! x int i,j,k,target_int_count=2;
0 X, u7 I* N* Q6 F' J char ch[2];, R5 G: C4 R6 q
+ I; H+ }# m: X8 l! P8 v$ h6 p/ B/ M3 A
2 @& N2 Z1 d5 u# d' x, e
upp_interrupt_count = 0;
H' R2 ^3 C5 F9 g+ n upp_error_count = 0;; k9 j3 y0 {0 p- e( p6 S! K
/ z( T$ ]% Z; l4 ^9 O& j5 {+ M UARTPuts("\tResetting uPP buffers...\r\n",-2);& I# W; p f& Z+ o
// Initialize data buffers# F' U( _( d# i0 Y9 C
for (i = 0; i < upp_frame_size; i++): Q ~* n( F) ^* C/ H+ y* Y; Y
{
2 c* E8 I: r7 U6 X* f% W O upp_buffer_b =i;
% C g' N! G' t! w* D upp_buffer_a = 0xDEAD;
) I3 z/ ?* E3 R% f: n }5 `% O! |- s; K4 C$ S
7 g7 L9 f7 y. I6 }0 B! V //for(i=0;i<1024;i++)& w7 A' @ n! w, o, {
// temp=0; w3 J- w6 D. ]: T& f
& v9 f: S3 }- ] //UPPReset();; F B3 q' x; H8 {
/*启动UPP DMA传输*/4 K& A* o. G3 h& ?3 |5 P& K
UARTPuts("upp_prog_dma_i\n",-2);# d) r0 R% U8 R/ \" Y$ Z
upp_reg_hdl->UPID0 = (Uint32)upp_buffer_a;
) F5 W9 k2 W' q8 }. w- a8 f upp_reg_hdl->UPID1 = ((Uint32)upp_line_count << 16) | (Uint32)upp_line_size*sizeof(Int16);
8 h! ^( K' S# L* f. m5 [1 X, d' h* p& S$ i upp_reg_hdl->UPID2 = (Uint32)upp_line_offset*sizeof(Int16);( K" }3 |: @2 B" @, I
: E2 S% R7 [& f- x }+ E UARTPuts("upp_prog_dma_i\n",-2);8 N8 y, X! j0 g' y, P, b. g8 w4 ]
upp_reg_hdl->UPQD0 = (Uint32)upp_buffer_b;( `% ~( A& k, f$ J! u
upp_reg_hdl->UPQD1 = ((Uint32)upp_line_count << 16) | (Uint32)upp_line_size*sizeof(Int16);
$ {+ m# v: p# z& u+ v0 z5 X upp_reg_hdl->UPQD2 = (Uint32)upp_line_offset*sizeof(Int16);; @- O" c0 R: o' D
7 q6 D5 d) N- d: }
/*等待UPP传输完毕*/
; V* U; h6 U2 v. E2 Z //i=0;
' H$ H7 W0 b( [* ^: T6 F+ @ //j=0;
2 x6 |9 p- P5 E. i* s4 o3 L* F while (upp_interrupt_count < target_int_count && upp_error_count == 0)5 h4 K+ z; ?6 p @0 E6 k
{. J$ v8 U4 ?* t. e) _1 Q1 s e3 M
/* 测试UPP传输的同时操作普通DDR数据
5 w: @, Q6 w: @# q6 l# g9 S temp=i;
" N" u0 R/ D8 t) U/ E& V! E( F, K( r i++;
' P$ ?% n% v+ y1 n6 F) a if(i==1024)
3 |' o' R6 c# z1 m( ~; z {
' q# p/ e$ [$ x3 y i=0;
# ~/ _1 v, a$ ?' W |4 K0 n! [ j++;
& e2 }& A, e6 x, O) d5 a: q$ R }
/ z$ J/ y& c7 D+ f$ h */7 I3 C* W8 ^* K
$ T/ L) k0 e$ {. Q* x9 K
asm(" nop");
, R' Z3 k+ f9 a8 z, c) |8 U6 W5 B4 I+ z- ^5 n8 d9 W. J6 o
//UARTprintf( "upp_interrupt_count=%d\n",upp_interrupt_count);
$ N" `* _5 _7 [! y& h: B }$ x1 J8 J+ d/ C$ P" P# g1 q
# E# T8 q' ]. u: g p! L /*检查UPP传输的数据是否正确 (loopback modes only)*/
6 M- T' S R, _7 f0 G4 l //UARTprintf( "i=%d\n",i);; ~. Q, c! m( J
//UARTprintf( "j=%d\n",j);
# i6 [' S* F& B! }/ t UARTPuts("Data mismatch in buffers.\n",-2);) S4 G3 u8 m6 j9 h( t
if (upp_interrupt_count == 2 && upp_error_count == 0)
* g4 ^) t* j# G {
$ o1 S; x0 j) } for (i = 0; i<upp_frame_size; i++)
3 M$ `' a# Y' `3 g$ m+ N5 K {
$ b- I' ^ Z: E9 j" t( }3 X. p if (upp_buffer_a != upp_buffer_b)
0 ^/ o5 y+ g. ^ R9 q! r8 z& S* h {2 E: t5 h1 `( r2 D9 {9 y
upp_error_count++;4 x: [" v* o- P8 d, ?2 ?5 u( Z
}' V) J& _% {/ o7 x: x# V K
}" p. h. H; x7 W h6 s* `9 H& o3 j
}' C6 w* x2 w, q3 z# C/ I6 k
2 O: T w1 W, F/ w; r# E9 c0 K /* 报告通信结果*/9 Y' C, |0 R$ V8 r3 }% l$ J
if(upp_error_count != 0)
' }; e* u2 }2 O7 j UARTprintf( "upp_error_count=%d\n",upp_error_count);
6 p9 b0 y/ ^/ `6 A8 C7 G( M else
- C1 ^+ p i, ^' D( g, D" r UARTPuts("uPP transfers complete!\n",-2);$ @4 b/ L- r2 o$ B. o. h: \/ z8 k& R' q
+ J6 h$ _9 U% Q. N: O; T+ X
UARTPuts("Do you want to print all the data?(y/n) ",-2);" @' Q7 ~- _7 d2 Y) g$ n+ c
UARTGets(ch,2);
' w; `/ z I( d' X: w UARTPuts("\n", -2);
; Z( Z, i L$ \$ ^* s. ]* y' S+ {# |/ v" y
if(ch[0] == 'y')* g# h6 ]$ L7 q0 |0 {& q
{
5 \/ I6 ^3 Y5 Q* F ]! P! |/ B /*打印全部读到的数据*/3 P7 d) t) H7 E/ D
for(i=0; i<upp_frame_size; )
I6 F2 d3 c" ~4 k3 @; ^% ` {& r" J7 d0 Y5 }9 T( R. \
for(j=0; j<5; j++)/ f. a' a% p; L6 M* O$ t7 k
{/ T+ d2 `# g- G* k0 `+ j
UARTprintf("upp_buffer_a[%d]=%d ",i,upp_buffer_a);& A4 l! j9 g1 ?! G7 i8 }
i++;
2 G" e- {6 U, j //if(i >= 4096)
% l4 w3 Y6 A Z5 O9 T6 h* [ // break;0 a+ s% I% x3 i/ _/ K! Y! L+ S
! A+ n- s: b- L
}
4 p" K+ [( {: i- I7 w UARTPuts("\n",-2);
* G. _7 i7 k7 S }# N# r( M) Z1 ~9 N
}4 S6 e ?( n2 @# m2 H9 n) ~
; ?- m. C- S; _
}" N9 C' b/ @) k9 o8 d
' y0 j8 W& z6 b& s
4 c9 T' m4 C6 x- I/ w b
|
|