|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。$ o) Z9 j: Y( |! [2 R
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
7 @; o, E. j/ Y5 @( ]+ b: D& [" ]( x
8 h B1 g% B W( `unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)8 z- _1 `& u) Q, B2 ^* W- Q
{1 J3 E5 ?; w1 N1 Y: L& |$ ?: J
unsigned int count = 0;
/ I7 K0 z4 \: Y7 L+ J/ A unsigned int flag = 0;9 Z( R/ W7 k# ?
9 S% h% v, ?# W& C* ?0 x! C
if(numBytesToWrite < 0)
, l) V: i0 R, p {
* {; c$ \% t* P. y' g7 ~ flag = 1;
* W* E0 T; r/ W% l$ G }
: D Z/ M/ i. c7 i6 W
! `1 z1 Z" |3 l5 `' H" a while('\0' != *pTxBuffer)
8 F5 W/ j4 P5 {+ o8 }% \ {( B8 ^4 Q! B. l! i( [% e9 V
if('\n' == *pTxBuffer)9 p* F. `2 i2 R* T$ }9 D3 n0 z3 ?/ D
{
$ I$ ?" R! o' H/ E E* K9 d9 H6 a; E UARTCharPut(SOC_UART_2_REGS, '\r');
% N; k& H0 w' I* _ UARTCharPut(SOC_UART_2_REGS, '\n');& F j7 n8 z. }* k5 K+ H
}2 O$ H( A- U% l1 o! R
else
- o* u, W! S5 I) h {
+ R5 h# ~, B2 v& b; C, R UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
# O6 { A5 W) R, K! n: K }/ o! j2 h& O3 T+ N
pTxBuffer++;2 K6 r% b7 i Y4 g
count++;$ q! \' h, Q5 Z# K1 Z; A
$ B8 @% c# }: e t: O5 W if((0 == flag) && (count == numBytesToWrite))
0 P: J' I9 P! q' x7 n {5 Z& E! @" A8 R1 u8 O
break;
# W8 y& I% _, s" d& y" [: J }7 Y0 i( x+ u% b/ V3 ]# G; [, ~6 P
6 _" F6 ?$ M% @& Y- B; @
}: f; ^1 Q0 Y% o, f8 T; c
- c) q3 C# y! ]" P% Z: p: J- z
return count;" z" b' o% d- g' m
}
& x% h. A' n+ t$ V5 N) ^8 O+ y. Z5 m
( b, L) L- S- c+ j! N, G; N4 R+ V" o4 q) Z |
|