|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。# }; t9 s* a7 k( V# w7 \6 a
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。9 F- {1 b+ i+ Z$ c" s# g# Z
2 d8 }. X7 I6 n9 }8 \
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)4 v" N3 h, ^# }( L' o2 `- X
{
% c- N1 B+ V! n7 E$ c3 _8 L4 Z, `7 F unsigned int count = 0;
# y7 x6 |7 W1 r0 O) L unsigned int flag = 0;
9 I- J! m! I* `- D* X: O% r. b4 `* P$ |6 v) [
if(numBytesToWrite < 0)# q9 `' @0 M7 T8 x
{
6 U+ P+ q3 R' b8 j2 ^7 u flag = 1;
! w+ S# g1 ~- U/ z+ X }* T& o# u `; d% E1 O- r6 J* v
; `1 J3 Q9 R+ X" g. ~" ` while('\0' != *pTxBuffer)" n! H- l' f# j' y4 Z( `
{6 i* n; ~# }( l+ N( E. F
if('\n' == *pTxBuffer)
% J/ ?+ ~8 M, ?' @1 B* B7 C2 \ {
* y. q5 v0 E( j9 ]4 L UARTCharPut(SOC_UART_2_REGS, '\r');
2 e* O% U% R( y- U0 y* m4 I UARTCharPut(SOC_UART_2_REGS, '\n');
8 d# t# j- m" \: t: v }% s4 V( V, u) L, {4 w/ \
else5 z" b3 N/ b7 c
{
' J6 b- {* [% Q: E0 J6 H% m UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
, [* J" _- F/ t& i }
5 }# r: t" @ f( g pTxBuffer++;
7 H* ]8 g: a9 y4 U count++;
, M5 ^4 G3 s; B P3 K0 S, n1 A7 p; L6 N- h2 \
if((0 == flag) && (count == numBytesToWrite)): z+ h% B: L! E
{. M3 n1 Z2 j' f9 Y+ C
break;
! U# D& }& F( ^- g0 f' e% M3 K; [ }
3 M2 t% p8 y+ R; @9 z% M0 F6 y; K) a/ v
}
4 b/ W& |$ [# ~9 A
; T0 L9 v4 C4 }- g# n return count;' Y- P1 s8 O# k' E! e
}
6 j$ v, R: n- \: T i i
1 Q; f, n. N5 e% `/ O, l5 {$ P |
|