|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
~" x' O2 S9 s$ X$ P6 e经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。+ l/ p9 P3 v; c
4 y% a1 {# V: N% d/ ?% [+ Ounsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
& k% m1 v% \9 h$ e/ K" ? i{6 ]8 a, D8 H$ ~+ r ~$ G# P( g5 {
unsigned int count = 0;
+ Z. @& j; E7 V; u; u U: _ unsigned int flag = 0;* }! s, ~! I+ P$ i6 F9 `
: u$ K3 w7 M' t) q, Q- {$ {
if(numBytesToWrite < 0)' Q9 N6 Q$ C6 e# T" v
{
( A( p5 F) e' A. Z M flag = 1;/ f. P7 y8 ]$ g
}
& W' z0 H/ i d* L$ X& Q1 }. C
while('\0' != *pTxBuffer) L( k" V! r7 ]+ T4 r* ~9 Q
{7 \$ d+ p) ]& f% [
if('\n' == *pTxBuffer)/ q/ b6 v: S5 A. {. l& A
{' e' _: g3 f# U5 @! j
UARTCharPut(SOC_UART_2_REGS, '\r');. w1 j2 ~1 ~ h4 p
UARTCharPut(SOC_UART_2_REGS, '\n');
7 ?0 n$ N ~# V0 Y6 \9 K }3 N- Y; x5 r* ^" x6 C
else5 N; i* A7 O9 e6 u3 ~$ I
{
0 K" }* U* o/ R% x6 L4 O UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);' ]8 }5 }6 d" M4 S% i! u8 V6 R! f, l
}
2 n7 C5 n: f* V7 c pTxBuffer++;' E6 k5 y: U9 T1 M8 J+ ?3 m
count++;3 D4 l9 A# z' P8 F4 J
3 z% t$ J4 ~8 ? if((0 == flag) && (count == numBytesToWrite)) C6 G2 A0 U1 |" Z+ X
{6 K/ M0 a( Y. T2 K: b
break;9 S8 @2 O0 y1 V1 C& J9 {
}9 p5 L9 b( M7 M, S# v- r4 i
& J' B- f5 C' _ Z" j% }' s }: x+ x' _5 l, {1 o; g u( e% n9 X
7 f/ E5 }$ i/ p
return count;: V, r; y4 r t) G5 [; Y
}
1 c N' g, Y1 n
+ o/ t8 J: c! Z5 D; D2 m8 s% W |
|