|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。6 a* S* k4 c) o, Z
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。# O! D! p2 D& z
* q# |, [8 F4 Y9 {, runsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)' q; n, i \& o# }7 Z
{
! |% X& {" g( c unsigned int count = 0;4 e3 I- t' c! W' D, o6 R, J8 k
unsigned int flag = 0;: q3 j+ ]6 ~8 L% D$ d. S. G
! b! \* @% S, a: S
if(numBytesToWrite < 0)
, N/ [5 K7 H9 g4 E [ z; \ {
- [& Q+ ~* \' x flag = 1;3 ?) S ^' \8 v; s- {- g$ P. R
}9 v' ~; ~7 B; N' `, _0 I: C
8 t X' d* l! c. ]- C8 M! x while('\0' != *pTxBuffer)' z2 `' P k3 Z8 l o7 J. @
{) Y3 ?9 ~" M) {; }
if('\n' == *pTxBuffer)! s* N+ q E* \& H* a
{
" c9 q$ f# Q, J- \: w4 m- W UARTCharPut(SOC_UART_2_REGS, '\r');
, B5 B, R/ [8 v' m) e7 {5 o UARTCharPut(SOC_UART_2_REGS, '\n');6 o- j% n% \( m' U5 O( a6 x$ N
}) E. T0 `& [* V' I
else
7 A; \1 I: Z' G, k {5 q* O- H) A/ A% t* Z
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);7 _- ?9 W7 j, R6 k" o0 w
}
4 u' o5 E1 Q5 p' a/ T pTxBuffer++;% o/ b6 K3 e. Y6 `8 H& p, l
count++;
" e& V9 v. ?( F- F( I2 E$ k5 ?/ n7 }9 W% u0 f* D+ R
if((0 == flag) && (count == numBytesToWrite))2 K0 ^1 _0 K; g4 S
{
6 T, @/ ?8 t$ g7 V9 q break;
, t: k2 G9 I; p }8 r; H" d) b2 h! R* ?
4 @' n! @' {) J9 u' c8 Z+ r
}: x* \$ ?: u: d5 k" y0 z( @
0 ?; P5 s) L- l- N2 D8 T: u5 d7 a
return count;
; c- ~; n. s1 ?6 ]}8 L0 m/ M! i7 q' [
- G1 u8 \2 y& b2 B |
|