|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。8 W" @/ x1 W+ _/ w7 e" h6 a
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
; l- {. c' I5 A6 c7 \: K8 g& h! k7 o' `
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
2 l R7 c' u# c* E) M9 ~8 g{2 E* W. Z% v6 B; ]+ d
unsigned int count = 0;
8 }1 Z( V# u) p9 [- f; h0 j! T unsigned int flag = 0;* e6 l' G* B7 b" L- \, h0 v8 @. ]
- y* q. A! Q: q) z; ~ if(numBytesToWrite < 0)! U* Y" B8 Q* I, G d- x
{' ~' G5 F; R( H. {$ H, `
flag = 1;
- J- p+ M- e2 h }4 L/ j0 W. v3 F, z& A4 z u% f
: F& F3 |1 v0 L
while('\0' != *pTxBuffer)
9 r# W7 x/ _! n {- g2 G1 c, h$ S0 O
if('\n' == *pTxBuffer)
+ o% S5 f K- q {2 Z3 B( n3 S. l {
+ z3 b" R% e& i0 ^, }/ T( | UARTCharPut(SOC_UART_2_REGS, '\r');
3 Z) u7 m4 q y8 Q& Z! p UARTCharPut(SOC_UART_2_REGS, '\n');
# ]4 Q8 S9 t1 |: k6 p& x4 w }
: w( {0 T+ V3 g! D5 ]9 j7 j else5 \" y% q3 D/ D0 u
{& c% S" T+ T! I. y
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);& J% R$ `! q9 `" h5 u9 K, j
}
}( Z# q- g; [5 ?! p! @ pTxBuffer++;
( v" Q! T( }+ ^6 L count++;
+ D6 B. n4 P1 k, s' M0 M; z) Q9 f( z
if((0 == flag) && (count == numBytesToWrite))9 z. ~/ k' I4 l7 E% ^# q5 p% a
{
7 f) Z" Y* [" ~. L6 \ break;* v& X1 {8 U5 r$ t
}
. a+ g' L! b/ H" _/ s* Y Z
, e. D9 K F6 D9 M8 Q% L7 Y I }3 v& P" B: v( |9 T
1 M' Z/ }* A) d5 J, ]% M ]3 {7 [ return count;
# H! Y3 \( c6 f o% c% n0 ]}
c. G: @7 E2 L; T& g
$ Y- h* `6 ^$ @3 a+ S |
|