|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
; |0 z _( @, S3 ^2 ]0 s; L9 E9 m经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
1 p5 L& j) U# x9 ?" {" P; |* K
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
) I$ Q3 N8 {! w, W1 _{3 ~; B# |. D3 G' ]" M1 A. u! P
unsigned int count = 0;
2 {3 A. a, X# ~ unsigned int flag = 0;
$ v8 V, ~* U+ k }2 v+ E. ]' W* F% E" i; \$ U! T
if(numBytesToWrite < 0)
; ^$ U/ R! p* f, c {
" P8 f. m# f L( K9 T* X2 [ flag = 1;6 f, y$ Y9 B8 o
}( o2 h6 \, _1 l+ V& x' R/ i6 U. J
5 K; V4 r% y5 \4 V8 ^5 g/ I# }
while('\0' != *pTxBuffer)6 x" ~) \- _1 w- p" @+ Y, f
{
8 _ u# _9 W- h8 T8 R8 e' L& T if('\n' == *pTxBuffer)
! [# I7 ? w; { _5 F {# O# [* N/ Z+ {
UARTCharPut(SOC_UART_2_REGS, '\r');
* e# \9 q( g8 @% p. ^7 D" P+ C UARTCharPut(SOC_UART_2_REGS, '\n');" f. N2 w8 Y, ?# B: {, ]
}# }: f7 s6 E% c V- V/ u! y7 N
else
( u6 u& t5 q8 n5 W% O1 a: \ {
# ?1 d% T q" ^' S UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
0 S; l$ y* W9 C& w, J# w }
% x6 ?4 Q3 T. f+ [# c pTxBuffer++;
! g4 u4 }. k* p# O" C8 |( j2 ~% \1 Z count++;
/ ~) h( c3 P! q* [8 D6 O9 u8 @9 p9 R2 B5 W
if((0 == flag) && (count == numBytesToWrite))
! O0 F: H# V! Y {+ O* j; r( Q7 _ P* `/ Z' Y
break;7 Z$ d: n( I) u" ]* e
}4 |3 l4 L3 Y) e* F! P
e+ y+ I. @9 E/ a0 q3 T2 C" Y) K q5 A }
( D! q, s2 k- o0 @; y) T' t* b; I. @& A' `# |1 H
return count;! V' t" V! O" n+ U3 F* h
}
+ u7 A# g: W, O) Q
: o) E# A, G2 }2 l* G |
|