|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。! {2 n; o5 `- k" {) v
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
& B( P( y: t. P8 u0 I% i; Y( F) D0 N3 L# W4 d
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)9 s5 r1 r, x9 J$ [- |3 `' B6 m% g
{0 Z( r- @: ] P: f! X
unsigned int count = 0;" I8 O! l. h+ y
unsigned int flag = 0;3 X6 T* W3 G9 r3 r. A1 q+ _2 P
2 T5 p) }4 h+ ~6 f9 Q, m. K if(numBytesToWrite < 0)- k) r) w' i* u! B
{) L1 \. U3 `: N+ n* B9 F
flag = 1;1 f. p5 p+ L/ O4 j2 `
}8 b5 K" e1 r$ Z; n. N2 W R y3 U& q
1 R5 U4 N2 ~; a# l7 f
while('\0' != *pTxBuffer)
2 |. B: \& M7 y# L* g, P {
: j E; x0 L' {4 E0 W3 {/ K% k1 b if('\n' == *pTxBuffer)) W% T! I' U" B2 ?
{
3 i0 v, e2 Q; ?- l9 b* w! U t UARTCharPut(SOC_UART_2_REGS, '\r');
. H( `$ l; B& C+ R- ] UARTCharPut(SOC_UART_2_REGS, '\n');* u& h2 y: P% N1 Z7 H
}- U' U5 Q q" a$ L9 X7 [1 c
else: y4 z6 ~) B& f* I" x& G
{
9 g+ [: j0 Z( Z/ o" h( j% K6 D8 V UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);. r: ]1 ~4 Q2 H2 O7 F$ F5 Z
}8 m% Q0 |. x5 p
pTxBuffer++;
% f* n. `+ a! t" @: U/ w count++;! r" `- a) O x5 l# N6 j. ]" Z
) V, y0 V9 B7 p" J
if((0 == flag) && (count == numBytesToWrite))9 @6 r w. H3 j: _0 M4 X
{$ P$ l" E# s M0 t2 B6 N# L. w
break;
; z. g$ q$ V' ?4 `% G, W# F9 F }
! Q S2 p, c' {5 h' N8 q9 S4 E [
}
7 w( l8 a( Y4 f6 g; ~
; Y+ r9 [# I3 r J+ z8 e& L return count;
0 m- y, f6 W. r$ u}
2 U) u+ P+ l! x& b0 F3 Y( G
) j# s5 C6 U! W L! _ |
|