|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
/ u4 R J# f, Y, V$ L% x经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
; \2 y; ?5 Y6 w% z# [ ]" U( C* g0 |+ d0 C0 {4 g
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)3 p- U: C8 x; u3 R. ?
{6 ?) t7 x2 ?' L1 j9 o' @! V
unsigned int count = 0;
9 N$ g2 h6 p. C% O& v2 S, j& c9 v1 e unsigned int flag = 0;3 U& f+ h7 G f! e* J! d. x
( U+ D1 d3 t, `( \ if(numBytesToWrite < 0)
6 {$ l) k9 G. e* ?/ y3 X, v {
+ a8 ]! y/ D; C1 s8 K l0 q flag = 1;9 T; M9 I- W/ |" b; K9 o* ?6 r
}
, ~' h3 \- G: O, H
/ ~8 Z' L% [, F$ J while('\0' != *pTxBuffer)% X" x- D- S: o9 N; X3 @8 a2 ^# e
{
7 [' G" W% o: q0 r. O( e if('\n' == *pTxBuffer)
1 d$ [9 Y6 V- N$ E/ L! I, b& M. M u {, E$ H! Z0 g8 A4 F+ r1 i2 [
UARTCharPut(SOC_UART_2_REGS, '\r');
& _. p- f0 ~! }- _& Y4 |& p, b' Q UARTCharPut(SOC_UART_2_REGS, '\n');' C. e F, W7 M. a' x. L; n* }8 W
}
. W" i0 h9 O' w9 }; P else4 X" Y2 m8 ~7 x' p+ N
{$ M1 g8 ~3 c3 U* C% C3 A
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
4 D0 b/ U3 e/ c }& U$ Q7 S& N* Z) n9 z+ N
pTxBuffer++;% f1 x, a( W0 N/ Q& E
count++;
3 O0 }! \3 b8 m! K Y& d
2 p+ I4 A! v# m if((0 == flag) && (count == numBytesToWrite)) t4 B: w" F n9 `' J) b
{2 Y/ X; j0 m% o R8 f
break;
9 k$ w) A p- |4 m# X }' p1 n6 A+ j6 e0 K
+ _4 g7 \, ]* t2 b: ^
}
0 h1 E1 I7 z v2 G' V: N9 a1 w% |) W
return count;7 ]& \% Z. d( M* c) [7 o
}
. m* k4 z' ~0 m# M
B% u2 x- g, j | |
|