|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。' d1 C6 e d- v5 X
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。1 n% Q8 n9 O5 S9 N
4 w. y* P! e& m' p% uunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
4 ]& o8 o6 O/ ^1 F, @{, ?. `0 {: O3 r2 B$ S( ~# \
unsigned int count = 0;
; z& L2 x1 I/ S K unsigned int flag = 0;$ [! l( [" a. Y( L" h) o' y
2 j, [! \/ @% J1 O% { if(numBytesToWrite < 0)
/ W2 Z& z0 M1 n. X1 n) g3 I { `# t+ |9 a) m
flag = 1;8 O& U# K6 o/ T% Z' n# k
}
: I; C! F4 R( c% G# s& v" N! g8 `+ R. @5 s
while('\0' != *pTxBuffer)
5 k; R) K5 a% i% g/ ?6 n& x0 F {
- \3 u2 F; [7 _ if('\n' == *pTxBuffer)
% L5 o" w( P$ d {) g# c! t9 s6 D/ Z6 {. g3 z6 H
UARTCharPut(SOC_UART_2_REGS, '\r');7 |9 ~1 w+ y9 S+ w
UARTCharPut(SOC_UART_2_REGS, '\n');. `8 H0 _) J& E' x
}) H7 u( Q! j- @4 D8 U
else
3 u' y' Q% ~1 [5 x( e+ O {& ?5 a' T0 B3 L2 k) O1 S% h% m/ J% o, f
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);* E4 P! b+ ]2 o" ]
}. _. v# d" f* d; L: D1 Q
pTxBuffer++;
2 d* e( z: H; Y" W count++;
3 d7 u6 }0 R I$ ]1 J( h! i2 {, M( H, L- j) p' G
if((0 == flag) && (count == numBytesToWrite))
3 R4 ?4 _; N6 s {/ H5 Y q y" ?. b0 s
break;, ]& h7 Q6 [; i- z5 K3 Q4 F
}% }( H$ _, X% |8 l
1 d+ G ~1 u0 |3 }8 M# n
}* g) d" D2 V2 R. d" L1 d
8 Y& i* a; \3 C5 L }1 S$ z return count;. E" R! M$ F; x* o
}
- h3 D/ x8 H8 Y# G& Q4 _- N4 O% e% v! q$ [/ C
|
|