|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
9 ^7 G( c( h4 L+ e& N经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。+ ^1 ~; h5 ~$ f* x# J" w$ X
' r. ~9 l1 @* }* h: @ p
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
/ }6 W# _1 W/ z' u) X3 j+ E0 A{; Q! t5 Y8 s/ a' U0 s, {
unsigned int count = 0;
. R8 V/ J+ G3 h unsigned int flag = 0;
! X' m: F7 E9 l* U; k, j( T; b, z; ^9 b
if(numBytesToWrite < 0)
" ?( m0 H& o3 C v# g2 G# d c {3 _4 [) c0 |+ p7 q: H& Y2 N! {
flag = 1;. Q7 h+ B. O+ e; U! ]0 K& W1 n
}( K; n2 E' }2 F: }$ P
8 M, D0 e% W* ]! f5 z. B6 D while('\0' != *pTxBuffer)! e( x! T5 G! u1 I1 L& R* H; x& g
{. C# E p4 B5 C
if('\n' == *pTxBuffer)5 W7 a0 a) H4 ~- |
{
: R9 a7 z. `: s' q9 x UARTCharPut(SOC_UART_2_REGS, '\r');
6 `- ^& a: K8 w+ [$ ^$ c UARTCharPut(SOC_UART_2_REGS, '\n');* k$ n& J" _( F+ O% P
}
9 ?) k7 p+ W: c- \: ~1 w else! C p6 {1 ` c
{0 z2 J5 ?2 w9 r. F1 ]
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
7 u2 d- p$ o. U$ l5 J- ~. D( R }( \$ G, C$ J6 I1 ]/ M. U
pTxBuffer++;
, ]6 X9 c& D6 f/ \ count++;/ [; j4 r, P4 F) S
- b* l# P' U+ M0 n6 P
if((0 == flag) && (count == numBytesToWrite))7 ]0 \3 B( |+ x* U" s. O4 `
{1 ?; X6 c3 h% H! ~ A# M; u
break;& c2 V/ H5 K9 @* w9 t6 r
}, d: {" D" N, o- K: N
9 s& K6 t3 `+ `5 T2 S8 ? }' `6 ~: }. l' U' O
* S% L8 `* z- g
return count;
& _! S% S d5 d}4 S3 Q) |1 J& V1 c
0 O) W- Z; e4 \- F G; K" V( _ |
|