|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
, I7 Z" N9 j5 A经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
$ ]3 [7 D' D. X& a
. T/ n* g' m, \" x, ~unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
. T J( P8 T' Y4 {" ]" C{6 r* }5 k. ~- u+ \- h! V; ^ K
unsigned int count = 0;
' k! V: z* a5 W3 \% W. o1 R* i unsigned int flag = 0;
) h8 @' y0 h) J2 \ y6 `; [7 f. O) o: G- ~
if(numBytesToWrite < 0)! I# i6 C! i# S" T7 C- B, u
{
5 s' J; v4 b3 n1 O4 v' ]8 [ flag = 1;
$ x% K9 ^' a! h }
. j9 B5 L$ C9 V3 o
; f( |% ~; H2 Q1 k while('\0' != *pTxBuffer)" o6 L ]4 w! [0 M& `9 l) r4 D
{
5 P! s( h; p4 d' k1 X if('\n' == *pTxBuffer)
' ?* o5 q/ x9 w9 F8 N+ T {
; e% a- Q9 O$ w# u1 O& I, l) i UARTCharPut(SOC_UART_2_REGS, '\r');
5 e- d, f5 m& U6 A UARTCharPut(SOC_UART_2_REGS, '\n');" ~! n2 s" S, E3 J
}
& L, B! _$ F- p2 Q+ `5 g/ i else
$ F! |" B# @8 u7 e; {& S {& U: c+ l6 z$ A( t4 B5 y) @ ]
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);- V5 i2 {5 k: u* P. t
}
3 Z; F8 @, A3 S pTxBuffer++;
: z N9 l; Y, i; O0 ~- K6 E; x count++;% a) }$ P2 s1 T$ b
0 ^; }. x9 p1 F }8 I
if((0 == flag) && (count == numBytesToWrite))' w. B2 S& E9 |! n9 \- e
{
v* T" E* _3 K: K/ e break;- f6 {3 ?. B% f
}
. k4 ]4 D! V8 I* |' b8 g& i& g: i+ W4 K( q% d3 v! a( |
}$ T& o s- V F) c( S% ]
7 X+ `7 L/ V) i0 a
return count;
% j3 Y( V; ~/ }% u0 G}
, a: G$ @& l, h: V9 a/ R9 O- M/ Q, M; c% r& ?
|
|