|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。; X t% Y2 V8 I+ C5 y" e
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。: A3 W: u' \8 L
, |+ s* P7 M) c0 D2 l. N
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)- c' B$ N/ N! p. {" e
{
3 X# u$ d7 }5 [5 H6 H% K. g unsigned int count = 0;* M' r. K+ [; Q0 w2 Q3 Y. P
unsigned int flag = 0;
- S7 n2 b$ ?; b s/ j( W1 j! |1 ^' g a5 g' F
if(numBytesToWrite < 0)% A; B: B; }" u2 o
{1 M c# U8 }& h+ a9 v7 B
flag = 1;
2 m% Z/ p* e, D( ?3 M }
6 h! x9 ^! u9 V$ j" Q5 a# v& e/ I+ {% B$ g {* w
while('\0' != *pTxBuffer)$ c! V& m- T5 A' f, T4 H/ O+ J
{$ O! E( Z: |) i& N- Y: V
if('\n' == *pTxBuffer)# L+ |$ ]8 f; H6 C) t
{' W6 O( F% _1 R- T7 u
UARTCharPut(SOC_UART_2_REGS, '\r');! s- Q" C, A( ?5 [* d; x) T
UARTCharPut(SOC_UART_2_REGS, '\n');
: j# Z) x: O4 [ }
/ A4 H7 i6 v: |" u |, M else6 G( Y( h; Q4 j
{. C: t# b, @0 y* T% [
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
1 c- \) W. N0 N }
7 w9 M W# Y8 _* T# B: D pTxBuffer++;% l7 e) l% g; w; F/ G& |7 }/ K; @& f
count++;6 N( F/ K: I' p9 E
2 R3 i: N3 a1 ^7 w2 T* k if((0 == flag) && (count == numBytesToWrite)), A! q2 l! ^$ l/ M! p% z9 B
{: R6 r5 K- f" O# c+ f) M3 a( g
break;8 L6 ~* z5 z6 v3 l& k" q
}
: N. j# t0 e. l& J$ k+ a( ~' d5 Q. \& i( J. M2 v
}
, [7 a {$ W" t* s; D' y4 X6 e$ h$ s
; f' [1 p8 S- u3 H& ?. X return count;# T7 [ P! I0 D8 n1 `' f) F9 o
}7 i3 T* P5 o' p6 A$ R
9 R" s$ O' X2 D" M6 [, O; m) V9 x6 B |
|