|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
o. X4 C( @$ d7 k4 m* |) b' {* D经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
3 s* {/ H3 P" t+ t% ?6 z
7 ~1 F3 Z, j6 y& t- c" e h* |6 ~# dunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)8 S9 n0 c1 }/ z. U$ d4 C8 Y( |
{8 ~$ ~0 x! N- A+ D' H2 L
unsigned int count = 0;) F& T" Y$ H! X( {9 Z
unsigned int flag = 0;2 d* {$ j4 S3 R
! \6 {7 }5 z7 r7 d9 u+ N if(numBytesToWrite < 0)
' `# k5 w! j6 a; Q3 H {
5 i u" g. d Z% D6 `+ m$ u flag = 1;
! c) ~( L0 L6 Q, n& \ }
" ~2 F4 d* L, x& U0 q8 U/ R) d) d8 ?8 u& D% {
while('\0' != *pTxBuffer)
, [) q# v/ J5 x2 |$ l {
, j1 {2 T2 s y3 a% _* M7 k if('\n' == *pTxBuffer)( g: p- B, W( J0 O. P
{
6 t7 Q. c. O( s4 D, @% G UARTCharPut(SOC_UART_2_REGS, '\r');! x, ~* q/ `: t
UARTCharPut(SOC_UART_2_REGS, '\n');0 k/ o9 F% ^; X+ Y( n* |
}7 }* k: l( n+ k. q' j& X
else7 b" @1 t) Y" [0 }
{& F/ H4 E6 n: o% }* x
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
' K. S( H3 \$ D6 }, C( w }* r) _, s" i. ~; Z; s+ z% J ^6 A
pTxBuffer++;9 c( n7 l5 `! T; X6 R: D% A* T! k) `
count++;6 ^& q5 l6 ?8 Y# z; D. O
) y; I0 R2 L% H6 H. Y if((0 == flag) && (count == numBytesToWrite))
1 \; _5 `% t4 z- |8 b {& a, O" n0 g+ w/ S( U& k9 g! f; R
break;8 ]% K. e) ^! F
}
1 c2 n- N, k4 ^2 A0 g: R, V: h3 {5 @' P4 z1 m2 G" \ l0 k
}7 N7 H4 E: v& y" m! m% U+ p
4 i1 u. x! @" y0 G7 h) G6 V
return count;0 I% ^; ]8 A: }, Y* K
}
4 [9 k. g, n% `! c( k P: @8 m/ _- |4 a" Z0 O# g- ]$ \
|
|