|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
5 b- d# i- `. t8 y- o经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。: z1 s; A6 |8 F- M0 d' B9 R9 G
4 @" X4 R( B1 u: i8 a! Xunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)' C% n9 s$ p) B! v/ a D( ?; ^4 o
{; C& n& ?2 C. N2 A) W3 t9 V$ K
unsigned int count = 0;5 i$ W: O3 ?& X' \% m$ k$ k+ q0 I
unsigned int flag = 0;% q# M# `4 M2 Z; Z9 G f0 ^
/ v& _( b) V: l8 O
if(numBytesToWrite < 0)8 ~0 H* B/ F$ l
{- N) F/ o# ]8 o# l D
flag = 1;5 y, _+ Z$ U- ?" h) Y1 o4 o
}% U- o0 \: w' ]4 K
/ X& G, ]2 h9 O8 L7 k4 p/ g' A while('\0' != *pTxBuffer)
! d5 B6 c& R& z2 N8 N5 v& @ {
/ N7 p4 w" I3 s" q7 n if('\n' == *pTxBuffer)
, M( _9 f+ e8 L& @ E {
8 J$ H: d4 g' b2 Y# p UARTCharPut(SOC_UART_2_REGS, '\r');: Q: \! p' e8 W+ a
UARTCharPut(SOC_UART_2_REGS, '\n');) i/ t0 n7 E! r$ Z ^( J# l0 z
}6 _/ n& h) N+ B$ g) `4 Q# L
else
% B7 K) Z5 \# b/ O7 w {2 }% s$ @ q% c" [* o8 \( w
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);" b L$ h' o' F9 b. z
}5 U) n1 }9 V. ]
pTxBuffer++;
7 d R0 G, A8 B# d$ w o2 b1 R count++;
. J( m" t j0 [- a4 d% \3 y0 C% z& c
if((0 == flag) && (count == numBytesToWrite))
6 {: _& L$ u& D2 g) B1 ^8 V {5 B% L& F8 S# A7 _) \
break;& P0 K/ J4 Q/ ]
}( T- J: `4 r H$ }2 j% l
, l% |# _9 I: i. w }: _* x$ [& V6 j' K3 l! B+ F) E6 x
5 C" p1 w4 i0 p, ~; c( s; p
return count;* ?& l" Q. ]; X! l8 n7 `
}
2 ?& r5 Z2 [& o& d7 T x
( X6 G( B/ ^5 c& g+ N |
|