|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
( e3 X, e- G5 v* W$ v$ @; u经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
# E: H2 o% @: ?! b
7 Z* j. a5 E8 Y% _* u% aunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)# M7 Z4 O4 Z. O; S
{7 c% F# `. a$ e: d5 o2 T' i
unsigned int count = 0;& j' K% ^4 q5 d5 A/ w
unsigned int flag = 0;$ G7 ~% g# O! {( E# g3 m
- B, F7 \. P& z* m: m2 f) v2 n( P
if(numBytesToWrite < 0)
0 [" }+ O& O1 C6 y3 V* i7 R* l/ B {# }+ y$ q5 j4 l2 u" V# U
flag = 1;
5 @: c7 x' M% _2 U }
/ k9 e+ U% _$ O/ k( ]& P
* a8 v2 ? l- B- ^ while('\0' != *pTxBuffer); s3 B; Y% q5 @. |+ s3 E# K2 l
{
- t* Y# w, w# O6 z1 ~ if('\n' == *pTxBuffer)3 W. P( ^8 A+ M: ~4 X8 ~
{5 [) K9 ~ S# F+ Q: D% g% ?
UARTCharPut(SOC_UART_2_REGS, '\r');
: h7 `$ S+ Y2 o) Q L UARTCharPut(SOC_UART_2_REGS, '\n');' D5 s' X2 x3 V4 }
}( k# g4 Q+ P/ P- M0 I- n. X2 l4 ]
else
/ I2 C; W8 Q) G& G0 c* D {
) ]" {" ?3 U0 C UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
" p. R6 B4 q2 n5 e. @ }
+ F2 U" l! l/ l2 ]& x pTxBuffer++;
) W/ ^- M& S5 }3 [1 \, I count++;1 Q: W' P' L% L
4 Z7 F, S4 G" K- I2 r* r \
if((0 == flag) && (count == numBytesToWrite))
% N: a* Q4 G# n1 N5 K0 K1 {; i {
: w7 l, P$ }8 a# x) y7 o2 D5 \ break;
5 x% r% b' H9 N6 @( n! ]' q8 H5 u }
7 r; l5 b; d/ d% g
" z3 K5 j* q0 D6 ^- e }
N5 V( P- L/ T O. ?* S) U1 c! X) u' n7 i. ^, c N6 }9 p
return count;
, C0 ^% E% H7 y, @6 K6 M8 D}
% k3 b9 l) v1 u& `! X+ X
; o: i, i) ?8 R5 ?0 g& } |
|