|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
+ @- h {% ^6 i8 J N经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。 w1 Z& B; u. _* g
! f1 @9 L* g- o/ ]unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
( r2 A5 L* x" E; Z1 f{% E( F: E2 U+ e: j
unsigned int count = 0;
- N+ b; L. J4 \" u unsigned int flag = 0;! E6 z7 L, Z, w' m
5 P/ ^7 J# G7 d
if(numBytesToWrite < 0). ]$ C; |0 {4 J; L/ |
{% _% C! N& {3 O& `! `6 v7 g
flag = 1;* j8 Y% Q1 q: m7 k& X8 G
}2 L$ q5 _- a$ e2 D( D; p; I
, N% c4 Z' j5 J# N6 K3 U9 E+ l while('\0' != *pTxBuffer)
. a, ?2 ~, j* i8 G. q, B {' u! n. x) b6 `: {1 t# N$ q
if('\n' == *pTxBuffer)6 a7 q @9 K. q* N$ ?- K
{% ?( m. H: O' Z! g: M ?; R
UARTCharPut(SOC_UART_2_REGS, '\r');+ @$ T, J8 _. _7 e2 ]
UARTCharPut(SOC_UART_2_REGS, '\n');5 f( {4 }# S. K/ T, ~: H0 {% x
}, D X/ U; ~* w6 Y
else
$ a- K9 a2 h) b/ `& ~ {
" k4 \; | K# i! ?- J7 R UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer); B, w% \5 F5 V6 B& \
}
/ ?" |5 {5 ^% q2 Q0 V4 ]2 x pTxBuffer++;0 T0 u9 H' t6 W* M, w0 V& r
count++;2 a! t( v5 {8 l I/ l
, ~) k0 L6 Q% @# s2 a1 o
if((0 == flag) && (count == numBytesToWrite))& c4 N# H% x1 w+ j
{
' `4 S+ N! h; q, `. V* ~+ \ break;
& @* t; Q* Y3 u }
8 D5 O" z( ^) }' E* v' H- \; @& Y. P6 \
}
1 o" S6 P2 D# @4 j" D/ M& s; K8 u/ O# f% h9 y+ H1 j
return count;/ @+ G A* L- |& f0 {
}
" H) Q+ O& g8 r% Y- J" X# g0 f5 d2 R2 N# @0 s3 Q0 |# ^
|
|