|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。. S* c" I- x# k9 g# `
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
( {1 F( j3 J/ u' n
' J1 w) ]$ \9 Z. @8 ?+ Hunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
* d+ m7 L5 |+ |1 _1 I1 n! y' ^) {{
+ f Y3 [, T& I. n unsigned int count = 0;
- I) c- I7 I/ h9 B0 H. ^/ j# Z unsigned int flag = 0;
) _) @" O4 g* q0 C( z# p- t- N8 K2 Y
if(numBytesToWrite < 0)1 _5 n" k. D) n
{: L$ U0 ~' B. Y6 B" M$ _# w! C
flag = 1;
6 F; |9 ^4 j6 R, H) I }
0 N& i* k& N2 r. g- w5 ]+ q% J! O
# X) P3 Q _) E( W/ q$ L while('\0' != *pTxBuffer)% M6 }2 c5 t* \* b$ k
{
# ^4 e: r: r& K% R if('\n' == *pTxBuffer) g. ]" V4 k4 Q2 x
{, C0 r! q' \+ [6 b( q; l
UARTCharPut(SOC_UART_2_REGS, '\r');
) Y: y( D0 Q, S UARTCharPut(SOC_UART_2_REGS, '\n');" J v. J z2 r( F/ C) o- y/ h% F
}7 \5 k* }" C; \; {
else
1 Q2 ?: Z) T6 I6 q4 N {7 \3 n+ c2 z {4 j6 u6 E
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
% R. B; T6 q' u( F! ?& {( a } _3 g- H% Q% y6 I& Y H
pTxBuffer++;
7 N, [7 ^% c7 N+ { count++;
& q. _. D) A0 w' [1 ^
' W2 \& n, U, ] S4 p if((0 == flag) && (count == numBytesToWrite))
3 k2 R- @% ~: T' d' v {: h, F% Q; Y9 X1 @/ q
break;
: j* w/ z+ b2 t- L) i1 S }8 ]: T' M6 s& h
9 P2 A6 o2 ]$ l1 B- H* F% { }
2 ^8 _& Q$ y9 i2 w2 o4 E# ~* B: m) w* r7 m: y$ n- p$ W3 o
return count;" z q) s: }4 }3 z
}$ W& M; O; @, J& z7 f2 ~) Q
2 v7 U! m, k; X) E, s, _4 x
|
|