|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。4 f! J! v/ y- t1 ]
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。' q2 `1 e3 F' m" [/ q5 p
6 B4 K' Y1 n' f; P6 q1 sunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
: u# S/ y+ W$ o& `; {& ?3 B. {5 V{) G* r( O7 f W& q% \7 O
unsigned int count = 0; |7 ~ b+ g' C9 V% G+ |9 ?/ ~
unsigned int flag = 0;
7 d! s% E6 C- p7 E! z. W8 o
# p: `9 F$ g: F$ R# A6 S) H if(numBytesToWrite < 0)6 u6 `+ c ?3 K) Q; e0 E3 m. T
{
9 Q0 \$ g2 m" ]) M# r3 G4 ~. E flag = 1;
/ I# q9 f$ L4 B, Q+ Y' O }$ R; o" u- w6 a* R4 H! V) r+ [
7 F+ z# H/ T& e5 \ while('\0' != *pTxBuffer)- _2 a+ L7 C% G; e# i
{3 s- x8 Y3 Y; O. f- y, m
if('\n' == *pTxBuffer). H2 \5 u) o$ q: E+ A5 E) x
{! c4 a3 j, {# z
UARTCharPut(SOC_UART_2_REGS, '\r');! o: e/ c; x, r. u/ ?' p5 I" s
UARTCharPut(SOC_UART_2_REGS, '\n');
7 m Y+ }% [& Y; C3 m& B4 w/ Y }" w, g( _- o) Y* `: Z; C
else5 S& `" \5 e/ w3 _" a1 G5 g5 o" t+ D& f
{
# Y- _) }& W0 r- c UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
& L" ^: R/ w( a3 ~. C( m V }
/ y0 \* I* D- t! [9 u pTxBuffer++;4 P3 K1 |! j: k9 s; J
count++;7 L1 N2 g2 W( ~0 J) C9 R
: |. P% N1 q5 L" t( M if((0 == flag) && (count == numBytesToWrite))
9 s, \, X4 f2 H0 n2 U2 a0 L% C {
: w3 w, Z1 M5 z5 ?% g; Z4 h8 d break;
0 q8 x+ D) V5 n }3 z' |( g3 H* I! N" v* X" g
. e! m, N$ J7 s- H9 J2 Q8 o: ?
}5 ?, I, I" H. d5 Q1 c
2 T) J4 @$ ]- Y; u) ]
return count;
( z3 ?$ M6 t$ M# l4 L3 A}* L- F& @2 X# |* J9 M' W
. p+ u. m: l3 |# N |
|