|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。1 j0 D0 G$ `" U: C! y/ L7 I' Y
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。6 E- |% ]) k5 D
$ h0 E4 H' |2 |/ M6 _
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
7 X: A* N; M- E! r3 j{7 W% I3 p& k; I8 t$ @! u
unsigned int count = 0;
) z0 J7 S; [: L7 Z, p unsigned int flag = 0;
. `9 P- u% K5 h2 z+ C! e- Y: ]; w8 O, Y! q: S
if(numBytesToWrite < 0)* H7 `* U1 v& B4 l
{
" w! G5 S. W+ T flag = 1;
/ B! @7 ? j$ B8 q }
* W7 A* } W2 R4 f+ e4 [; O/ s+ C/ Y& s$ ]+ M) H5 K* `
while('\0' != *pTxBuffer)
) V$ F( @, H* ] P) Y: M+ y3 A {' R5 r+ i, L( Q$ k. K6 `0 O- P
if('\n' == *pTxBuffer)
6 O: r4 R2 S. I6 k& N {6 M, X! _5 E( q; S/ \& X% e3 E* L
UARTCharPut(SOC_UART_2_REGS, '\r');
. t% m' ^2 C; N( Q& x" L UARTCharPut(SOC_UART_2_REGS, '\n');6 G/ ?# B3 U3 p6 v/ b
}
3 ^5 {+ H7 U6 k& M else
- G, o% s% O# _" J6 X' ~ {$ t) M' }# t% I# `7 c+ x
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
% l4 ]/ j/ S; D8 c/ \$ N }
" k9 j2 w$ U6 K) d g% u pTxBuffer++;! U% P* O7 F4 {
count++;+ a( K' Q" x q
6 D" C& A2 n$ Y7 ~) h
if((0 == flag) && (count == numBytesToWrite))
* e: S2 n! n' s% R* }; ?1 D! n {
! m3 P4 v8 f7 f; b4 @ break;. Q' T# n- ]8 U* L+ R0 P: a/ d
}8 E& ~- r% y# W% d( D' x7 y* p
' X6 Q( Y8 o( T% i8 G }
+ i" {- u9 ~' P* t/ P ?2 o4 P0 x# i2 y( f- ^, {
return count;
s4 Z3 z" x6 `4 \9 w5 u3 O1 Z& s}
; w g# u- n7 ]; p U: j" W( K. n% ], n+ O a8 _7 a
|
|