|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
+ h9 B$ ^( O& ^5 ]. ~+ F. L% |% E经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
' d% ^- S: x3 d4 |4 c Y
D: \( A; j& `' h9 s4 Nunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)9 i1 P$ B2 }; w) J8 \; G6 M, i
{
' @, C$ V! U7 [8 m0 S% m+ n unsigned int count = 0;: x" j% n0 ]" K) r
unsigned int flag = 0;
% N9 n$ f7 o d% K) \) @6 L2 O4 B2 t6 d9 y6 Z
if(numBytesToWrite < 0)
7 b& \( c7 i( e! s Y, E) V1 q8 x- [ {
' H4 G! j4 R, }- Q* Q flag = 1;
# L! W6 |6 A) o+ {2 [! p }
% y) u6 y! _: v$ |# |2 }
: Y, h3 @( E- l9 o6 G while('\0' != *pTxBuffer)
8 X% E7 h: f! s0 @ {& W, c B" h3 w3 h# A
if('\n' == *pTxBuffer)) D. z3 k* g* i- w) }9 C
{# U& _: ?5 H7 z) A
UARTCharPut(SOC_UART_2_REGS, '\r');
' X& A1 n# D. `( K2 V( Z O# c UARTCharPut(SOC_UART_2_REGS, '\n');
% w+ H! E$ ?' @2 ^+ S9 l }
" ]/ s. a. I: R) h$ `5 s else
% u& L8 f' y9 O% Z/ }( o) D {
% r" d; @; r: R/ M UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
1 o7 N% ~- ^- P$ ~% Y }
+ _% K1 m% s! V4 V* @ pTxBuffer++;( k6 T1 A+ u1 O
count++;2 p' Z% N$ w& n, Y5 M, ~ Z& K( H- _
; m# C; m$ o6 N; k& k
if((0 == flag) && (count == numBytesToWrite))' B& J" @) y& g L$ _
{2 p9 w) P+ o/ P V: A5 i
break;
2 ?# k; |5 t6 {8 {1 t: [ }/ b7 X$ P2 B: m2 F
; a9 q o' R- A2 N6 X% e) n* e0 h
}/ Z; }; [6 t/ L+ w* V
# A( m3 i9 ^' W
return count;! |5 I! ~8 B* p0 F/ T% p
}
" l- W$ W4 S/ d9 r2 s% T! D6 [3 S3 M* R+ C! X. M- k" F* t
|
|