|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
& \/ B8 I% S1 p$ b- e% A5 U5 F经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
# p S: X4 B' X' O6 m' R; d2 Y4 J" p! ^, r- u5 X6 j
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)1 e" Q. w e; ~
{& ~- v |4 ^: D$ K, S" o0 c
unsigned int count = 0;
" p" e4 E( M; I; R1 ] unsigned int flag = 0;) r4 X2 t4 |7 n/ e3 X- _
/ ~ l) e1 x; M7 d2 L9 R; @, v. S# q, x
if(numBytesToWrite < 0)% ]2 p( }; f" o; }4 d9 U2 Y
{& v O6 z* c2 Y1 s0 \0 w
flag = 1;
6 V! A) F/ G9 {6 o& Z& s }3 z& x) c; D& a
! Y& V; F$ m" Z& t$ M! @ while('\0' != *pTxBuffer): }; P$ C4 X/ \( G* @* t
{: x. _$ @3 H: V1 [2 F4 }
if('\n' == *pTxBuffer)
9 x& ]! v4 W# e+ O7 C; l {
3 r) ]. z4 ^; V1 R UARTCharPut(SOC_UART_2_REGS, '\r');+ {( [' ~0 Z5 y
UARTCharPut(SOC_UART_2_REGS, '\n');
. b( r: E! u8 }8 S3 ]0 x* V) ~ }
7 K7 g- K2 H+ _1 q& a6 p else
" A6 z, b; v, R% R; p3 ^; C {/ d1 t4 K6 z$ B9 R) Y
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer); H- e/ F+ y) L7 w( }
}7 v% q5 {% v& e, k8 t2 I- E7 K* n
pTxBuffer++;2 N- D2 z% @" r) A2 D$ J5 {5 G1 r
count++;
7 P" Z. ~6 T: o9 x& N; B6 F. ~( C: Y
|6 o! p" q% r) Y e2 l6 Q0 z if((0 == flag) && (count == numBytesToWrite))# @" @' ~' I0 j
{
2 M' ?" Q4 c* X6 E" k$ E0 ~ break;# j8 l6 O3 D0 t6 H' L
}" a8 _8 Q6 q' _- c, R& h
' x$ ]; f& k- K' }5 ]' v }
4 J! c3 k l& j% k4 _8 X8 B& O% Y3 ~% \2 U- j9 j( N* v; _
return count;
5 P+ N/ R9 h4 @6 Y0 `}
5 x1 Z {" D; w0 r! J
" w% l7 q8 T; x# M |
|