|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
& Z; A8 d' N% O经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。; K. z8 ?" h+ Z; Q
$ i7 L- S1 |# L# L6 K- v3 o1 ^unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite). X) e! B- Q/ [5 Z
{5 U1 |; @+ r, p, Q' l7 i8 S" ]1 ~
unsigned int count = 0;
8 M! s4 G; H2 P unsigned int flag = 0;
5 h- M% ^- l1 p% @( X. B
% u- I4 c) j! e( P' }" V if(numBytesToWrite < 0)& Z; ?# M2 X% s; _9 k- J4 \# Y
{/ Q9 n! R% a2 T3 h
flag = 1;
P7 p( M$ c B \6 M }
- y4 t. m7 Q0 B/ P0 T' m/ c9 T/ \; U5 e: b" O* Z1 E
while('\0' != *pTxBuffer)4 f% V9 O8 O% v1 o' p; K( F' E; }
{
+ O' u* D( h' [$ t4 c' X if('\n' == *pTxBuffer)9 C5 h) l. J$ `- Y: F
{) N5 [3 T) z( P& C( p# Z# b
UARTCharPut(SOC_UART_2_REGS, '\r');
2 t: s! ^' H) j/ L$ c3 W3 F UARTCharPut(SOC_UART_2_REGS, '\n');) x# \; d0 d* c9 A1 ]$ q, a
}
7 g# {' _9 ^0 J3 N1 I else* d# p I+ p1 |5 I( X R4 @
{4 u! M* Q7 L- O* C
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
, J9 L) d& q9 U8 l4 ], M }
3 K2 Y! \7 C( o: j( \) j' y pTxBuffer++;2 F. p) y" S- }4 c) r, @
count++;: O: `2 O9 f# x+ n4 Z
- J8 V2 f3 h: V8 t if((0 == flag) && (count == numBytesToWrite))
& u; y1 F( r7 F& T9 T! q {# ^. [" `/ K$ j1 O8 i
break;6 `. I- N" W9 W) x
}6 a$ \' k9 C/ ~: ]- t6 A( b6 s
" O- M0 C$ B+ w+ v
}
! Z$ J }4 p7 N" F w9 Q" o3 ^; M: ?5 f2 f% Q" w9 P
return count;
4 s6 `( t) s6 p6 ~% ~5 k- M}
# ?- D5 R% N) o% g1 w% m
1 K$ k5 S( G: W6 C6 Y: P' c |
|