|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
- i# V5 X5 u" w9 J$ g经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
" A! r6 m% i U! O
/ I: \7 c0 p/ s! E5 Punsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
- Y- m2 o4 ~0 C8 T, @% C' t# Y! P. u{
" m: u0 Q! ]& S9 b4 }& F unsigned int count = 0;
2 E9 W0 d% v/ T* _7 ]. X! l3 o3 N unsigned int flag = 0;
, e5 p! ^2 G$ \/ z# f! @0 O2 Y! C' f D2 k8 D. ?* R. d; u
if(numBytesToWrite < 0)* d7 }7 ^' u$ n7 U
{
! ^: g* t& P6 x: j7 H% H$ t7 Y4 j flag = 1;
, e! @- ]6 W4 u8 N' ^1 N }
) v2 E& @0 |3 \
8 W. H1 w9 v" a2 W while('\0' != *pTxBuffer)
' D ^. X, K9 T0 C+ m% x {- ?7 p: m X1 V4 c" x
if('\n' == *pTxBuffer)
8 m' L) U9 a4 C0 B& u6 b {/ }% z! h0 P0 G2 Q M; d/ e u
UARTCharPut(SOC_UART_2_REGS, '\r');
. A3 Q, H6 i* `* u% T' d* R UARTCharPut(SOC_UART_2_REGS, '\n');
5 ?! j1 D9 L0 [! b. S }
, O ^: D4 ?' Q5 Q else
- B; G9 r# \$ m& j2 B# @ {% x9 r6 p) k- V$ L( b- s
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);/ O4 u" E6 F8 {" K1 |
}
% N$ S. v8 K2 ]& N pTxBuffer++;
" z& N4 L* `' b/ W, l3 ^- }5 R' u# { count++;! T2 H# Y- ]7 f6 M! S' z
' W- {: n' D# O+ u if((0 == flag) && (count == numBytesToWrite)) h0 f- N( J! m; A) \, v' z
{2 Z: J/ ^9 i' M2 A- T
break;
' i, B9 ?" y9 i- q& \) u1 D" ^' D }; K; k- Q+ O1 ^( `
/ a9 q1 O6 }# V4 L; L; _0 N& g7 A }
+ w' a4 g* V7 C" L5 c3 Q5 H) b: M, g# ~
) t2 k# R4 z }2 k3 X8 `) S5 z% W return count;! \, C' a5 N' } ^" w
}3 \7 {. |" s" a
3 c3 K) u+ k" M- n- W
|
|