|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。2 d% v% |+ K% E U0 n/ R+ p0 l [3 C
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。4 x) G9 Y' N- b# E, \3 G
* s1 n9 U9 f V: O' V
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
/ O- \6 N' t- G6 D0 N3 S/ O3 F{
+ e: v* U9 Y( F unsigned int count = 0;& T$ @ }3 U- c( W2 V) ?0 Q
unsigned int flag = 0;
% S8 ]9 Q/ o0 F- x% F' |7 k0 H6 `, H% F4 x
if(numBytesToWrite < 0)
- g5 w9 Y/ |; n( Z4 ]; J {
; B: M1 F# i4 L; b3 h. p1 n9 f! h flag = 1;
! ~% ?' Z) J& p: O! ? }8 K t. ~& [" D, e) c, \
7 e$ q0 A7 L- y( ?6 ` while('\0' != *pTxBuffer)
( X9 w0 x& v9 a; k- r" }6 d: i {
, S% N' z& M' z& N0 ^0 P) f2 ], o if('\n' == *pTxBuffer)
1 L( e3 y" L, G( I- y5 { {
- `) R- c- O" ]/ d$ b; |0 S* V UARTCharPut(SOC_UART_2_REGS, '\r');6 ^) ?" n- ?/ u0 T
UARTCharPut(SOC_UART_2_REGS, '\n');) O# T3 s! z8 x4 A
}3 |+ I2 P* d" e3 h
else
: I: K; g& l* w' Y& v( F [ {% s5 ?$ r* G6 @" f+ H. d
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
4 i9 P3 _" ]. P3 N" h, B& O }
8 g' Y7 |& e9 [7 r1 q c2 u. ~ pTxBuffer++;
: t1 b% U2 L: D count++;
Z# i7 h2 h1 m% x1 {- W1 s. N* n" b9 `
if((0 == flag) && (count == numBytesToWrite))- y* f4 e- a( {& W: e
{
5 m( l0 n% b( j/ I# t break;; j/ J$ V+ k: L' U' A/ r. m* a0 Q3 b
}
% r; R( d% v+ M; }" W- \7 _$ w
( w# t; |9 Y( r0 v }: D* x, t+ a2 ^; M" a' d. ^0 X
2 u! f; R, H2 B: { return count;
6 [1 n3 C5 U% ~; r6 J j}
k/ e1 }6 A* k+ {. V0 u/ r% L( ?, B: F/ M) S* a4 J" j' C
|
|