|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
1 ?! o( M4 N9 W- t经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。- D# k( w$ q6 ?7 z) w l
6 S+ f5 m) v1 X2 r2 @
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)8 q5 v$ l$ ^5 G
{; j# X; M6 X( U8 a W- G
unsigned int count = 0;
5 w7 L3 G9 f- C: Y1 _& ]8 X6 O+ w unsigned int flag = 0;
; k2 K, p& L" v
0 Q( ]9 t% \+ S- M if(numBytesToWrite < 0)/ x9 T3 G0 b5 k9 J- j, [
{
/ I& w! K6 n0 }$ ^+ Y( j flag = 1;; K( P; {5 j% l
}
% X, \* b9 k+ f" {# ]& H c& n# K/ z' U+ G* G
while('\0' != *pTxBuffer)
# K e7 L+ `. A2 o& @ W {
# i& O; N2 S2 H f- X if('\n' == *pTxBuffer)
4 E" L# ?. s% w& I4 x5 x* V {0 s/ D1 ?5 @: _, e( P' z
UARTCharPut(SOC_UART_2_REGS, '\r');
7 s5 d% `. F, }# {4 i8 L UARTCharPut(SOC_UART_2_REGS, '\n');6 ]" X" q9 N* Q2 a1 x
}
8 W! M8 U: R: D else, ^6 c5 R$ q3 B+ m! C2 W
{* i* ^* w& |/ Y5 A; B
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);, t2 h1 a6 `6 ]1 l
}5 K: R7 ]% s+ v9 g+ D& M
pTxBuffer++;
' s; g! z0 T; n. ^$ a) q7 s+ m count++;
! p- F$ J* X! b' o% C) \5 ~/ ]$ e& _, l/ R) w9 G8 s
if((0 == flag) && (count == numBytesToWrite))
) M* h4 t; B# ]/ R* u. i) f {
" \- K4 S" a* B3 c7 x( n+ h break;* P# V$ |. x c+ n0 L9 R) t
}4 `+ `5 X5 B, M" u% x' x! E3 J7 t/ ]
5 Z$ u3 V) ]% M2 ^# f# |" j: J }# }* C z. C9 p
8 d) |. X$ S o7 s9 N" v
return count;! M' O5 s+ y* W- ?' [& \: G7 o
}+ ]' T5 l" s- D& x9 Z F: h
& [: y! c. }3 V, Z o- V) v
|
|