|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
4 d l( x& E. W* q- o经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。* v& Z* j" G- N' e5 P
: u0 n+ t) @8 s) g+ _; W- Tunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)5 V' X- k& L; d' @1 y8 s! g/ i
{
3 [2 L) D u3 H2 e& s1 h$ O unsigned int count = 0;3 K% }$ T$ o, B3 }5 J
unsigned int flag = 0;
9 W( l+ @& N" s' }5 K
; [6 i e7 d: c7 `& n if(numBytesToWrite < 0)" o% J+ z2 R/ c( y: K. s O
{
X, z" h# _$ R1 r8 N0 b3 T/ Z flag = 1;0 m, { }% n: e( N: W" U% e
}5 A. Q( l1 _3 V8 }
$ \ n! }! a3 \; n6 U0 x while('\0' != *pTxBuffer)
0 h( k ^6 [9 l- g {, S) b* }, r: N* N+ r% }1 |8 r
if('\n' == *pTxBuffer)
# ^8 I X2 y) _; Z5 U {* E. }" q8 e5 J2 I* Y# l4 |
UARTCharPut(SOC_UART_2_REGS, '\r');8 q% ^6 k- @/ }* i7 J( r
UARTCharPut(SOC_UART_2_REGS, '\n');
- ^% C. }: E( b/ P }
1 ^) f- L4 D2 I, T else9 q7 l+ G4 r# B( w* g9 w- N
{
9 O( J- L2 k% W% Y6 J( ?/ }. D, a UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);3 ]9 w; [9 e/ ]" H- ~
}- k* O) a6 b4 b6 ~/ K' h/ m
pTxBuffer++;
$ W/ M) Z+ v2 N* Q% z% B count++;3 C0 G2 k0 f0 G0 H
: m- I% w$ `2 M4 P# I
if((0 == flag) && (count == numBytesToWrite)). \0 }+ ?0 Y1 K$ J6 n
{7 ~) M+ v6 g. S1 k8 _- n5 N
break;5 w7 s' f& Z5 y8 D) A
}7 V! b# y' h* {* \( U
! G: B, w% |& \8 |3 H }* Z) o* Y$ ~! {0 f" M
- f& z- E) t" @ return count;
( e$ M) D8 e% U" l2 r* v; C}
8 @+ q+ \6 M0 M" p
2 o+ N& S& z9 d2 J4 A1 A: @ |
|