|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。8 u- n7 l9 P, E% g
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。) G, o% ?$ g. w, [' d
, p: `) @; z% O: S; m, q! Dunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
( o- y, q0 `+ F! F6 M{4 f- a) s9 ?0 j4 {1 p8 l
unsigned int count = 0;% F# t O5 }) q! X) b$ b
unsigned int flag = 0;
1 w. A: b. P4 I$ K- H+ Z0 A! P5 Y" S
if(numBytesToWrite < 0)+ V' y- P; ~- D/ g. A+ b
{
6 R) l0 Q9 G# C+ w) b% d! N9 } flag = 1;
1 z$ n' h R& W5 y g1 V }
& m( O' t8 [& f/ t2 W) N/ `
* }; x; w/ n6 D" B, R/ ` while('\0' != *pTxBuffer)$ Y; c) u: n. d/ {) ^/ Y% V5 ~
{
2 C: }( J P5 r if('\n' == *pTxBuffer) ^% `5 b# K* c$ F" `8 ]7 m
{
3 n9 C! z( a: c% Y UARTCharPut(SOC_UART_2_REGS, '\r');7 `8 Z; C+ v# p& W% U
UARTCharPut(SOC_UART_2_REGS, '\n');1 s7 N# D- D) U3 }5 K5 Z2 ?% {
}
1 R+ k3 E0 Y. j/ ~: r. L1 v3 c else1 x4 n5 V+ V6 {, r4 {- u
{( H6 t' I) H9 o- X" k5 h* \3 \2 A
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);: b3 _. p1 t0 C# x4 \5 J' [; m7 V
}
4 j7 _: T; Q1 t6 s$ b pTxBuffer++;, S5 S$ S2 H# y; I9 f7 b
count++;- L7 a N) U/ s% i- ~
' t: E3 c8 T/ X: F; |& z. C
if((0 == flag) && (count == numBytesToWrite))
1 p7 F" _) ^4 |7 f+ I& ~4 K {" y5 F1 t% S9 g0 m( c
break;+ ~# L* F2 g; @. j1 k+ j
}
" J J6 A" f X$ X) Z9 ?* C' }" Z/ S
}- }5 L3 h( C7 f6 j% c0 t; H6 o
! i& j: j4 k% @5 ~, f
return count;
! z' X' }4 k$ ?# V) u5 M}1 D% t# q' R4 w$ f! \( T2 q4 R
/ o" D9 Y1 Y- ~' L6 ` |
|