|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。4 O$ f7 f" u$ `0 @" G
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
2 {* ]- X# D, u3 h q: k& G% ^1 d! c/ i
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)# }) S) E. w, C+ O. A u6 f7 B
{( ?# T6 R- O [5 ^
unsigned int count = 0;' p0 d5 U" `2 r/ h. x
unsigned int flag = 0;; O2 J' B2 G' O; [" ^( T" V' C
0 d: e2 b( ~( i# g- W. q* M2 z
if(numBytesToWrite < 0)3 C8 i. s& R- D- l" i
{# n i& _1 h( v2 C8 y8 ~) G( W) `
flag = 1;6 U q# c, B! z: X) I
}! y, [7 d3 k1 m0 ?% U
8 Z7 j. D% H t6 q
while('\0' != *pTxBuffer)
+ Z% N5 h$ K1 M K {, Z. M F0 y/ o5 Q' ?# y
if('\n' == *pTxBuffer)- h {5 u7 I% t% E5 ^, g, i
{6 W% ], G$ V( R9 w) B0 {. O
UARTCharPut(SOC_UART_2_REGS, '\r');! m4 |+ V( v6 h& @
UARTCharPut(SOC_UART_2_REGS, '\n');. j w$ F1 ^ Z7 x; X% |) d
}
+ e) @7 I" m6 Z" b else
- _* C) h7 u- S {
/ `- O4 L$ @' M5 q0 k% V$ J2 J UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);' z& r( M3 g) k% @& V
}, T: ]( _$ w/ S$ j$ D+ w
pTxBuffer++;3 n+ _; B' }, i4 a
count++;
5 k2 c, q+ _% a5 s6 q8 Z4 X$ n' M! F( r& r
if((0 == flag) && (count == numBytesToWrite))" E/ \8 k* c( L. q' E( x3 N |
{
$ C( Z) l' p1 q0 h0 V- |5 i break;
' C ]% f. q; @7 s: Q) Y2 ? }
7 M; |3 [1 }# Z5 R" D$ M, ^/ e5 M% r8 r6 q$ S
}; @( W0 B9 Q, P6 K: ^
8 b2 K7 j) d' p- m- A
return count;
. t( P8 w, W: V6 h}% l% N/ @8 M; T
5 y" Y5 G3 m- w/ @" \* |8 J0 U |
|