|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
7 C* o: [, e& j3 }6 [1 O, g6 P9 g经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
- x0 L. x* P9 }; J$ W
: z, f b0 Q; | o( V, Munsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)0 e) ~+ S& c" S+ @ ]* i( |, |3 g
{. k& Z% a( a. A( Z
unsigned int count = 0;9 J" z" [% I( e) G$ l
unsigned int flag = 0;
1 c: |5 \9 T% I7 X0 [0 z+ T
3 r5 b5 x% M, z8 N+ n8 k if(numBytesToWrite < 0)
! m/ w5 M8 I: j# G {
+ Q: @3 r! l) b: C2 y. ~, X flag = 1;' C/ l, q7 b; m0 E) S" V
}
2 G. Q R5 X# _& k# A" \" O" l j2 b& J) |: G8 I2 v
while('\0' != *pTxBuffer)
) _! v9 N9 i1 l4 `/ A+ C0 V {5 j1 q( h8 q/ S
if('\n' == *pTxBuffer)
6 x6 ], X$ A/ O4 K {8 a0 s' K: @+ J
UARTCharPut(SOC_UART_2_REGS, '\r');, N4 k4 @( J' ]
UARTCharPut(SOC_UART_2_REGS, '\n');2 {1 H' |$ F4 v$ L& a
}
z+ j# Y H4 e" `+ T+ D/ P0 H else
1 n6 G* y. Q3 O' u3 H K( _ {
+ n! `+ ?+ _/ \$ b Q% s UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
H+ c" x* c* _- w% c4 M; H7 H- ]5 J }
$ H& U- Y" L8 Z( G pTxBuffer++;8 I# l) _6 i$ j, [+ @
count++;& Z: `# b1 w& F$ a3 L
8 b$ K# A. x' H& g$ i# F
if((0 == flag) && (count == numBytesToWrite))6 @7 F3 m1 r4 h0 n
{
# s( V+ t6 B/ E) q4 ~3 J break;* S" z1 {- F& n' s( W9 b2 m9 l [
}: s2 |8 a3 X* {/ q9 Y& y/ H" `
5 G1 G3 o! ?' J5 v }! M# V& l) C& a/ j- G1 I- B
4 q6 f+ T* u9 E6 ?
return count;
+ Q6 `4 ^+ w3 G. B( g' Q}
) h0 Q/ A) C; [: h) `' @0 B# `$ f' ^; c3 a2 w* B
|
|