|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
% p+ b% F. c" u) J. w, t9 @7 M2 P经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。! ~% q6 F1 m9 n4 i6 r
$ v$ i; X9 r; F, u" s
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)/ k; H3 `4 @: x8 o# j+ C1 C$ F
{
3 \; E& `$ {$ x5 \ unsigned int count = 0;* l( v. e) i9 w( @( v
unsigned int flag = 0;0 L8 ~8 @2 z" e/ j$ ]
0 ~; T6 `% ]1 b6 ^
if(numBytesToWrite < 0)
8 V! s, ^* y! K' b7 A {
- [( ~$ O- i5 s" G flag = 1;
( y+ O5 b+ c, S& p: t( \) y }
1 u& K& X3 y0 [$ _
5 I6 z3 k0 \# O6 N7 e while('\0' != *pTxBuffer)1 \3 E: q* j& D' A. O$ k- x. s- Z9 \
{1 c+ }* \: d# ]/ S6 _; o/ O
if('\n' == *pTxBuffer)
8 O/ G |% k. v, V9 u {
2 \. l6 _% Z+ O9 e" M% j UARTCharPut(SOC_UART_2_REGS, '\r');
8 l8 c. T+ d. B# \# A' F" C UARTCharPut(SOC_UART_2_REGS, '\n');$ z3 U! Y7 f; O G6 o+ ^6 }, M, f
}5 m: \& N; e# I# ?3 A
else" H. o5 Y! e" D. D8 B, B- |
{4 c; A# a) m6 I! N+ E8 k7 Y
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);8 T2 E; d- Q' }$ o
}
" Z# I% }' v5 |9 R2 `1 X9 |' R7 x pTxBuffer++;
' x# T( Q0 y& z( d; V count++;
7 }4 Z- b) U4 x' u, V- L w( w6 q
- S: F7 X) x4 f! i( u if((0 == flag) && (count == numBytesToWrite))
% `6 b* _0 p F& m* E: R {
+ p2 L+ ~ @% F& {$ W+ j- Y* d break;, S& D4 y2 _# r3 ]; [7 C* O4 Y
}
, X8 |- T( P3 x8 j- Z1 {( N& t) E+ f0 U6 W, g1 O X; O
}
% R2 ^# ^9 Q- e& k2 t2 }
. R+ R2 s7 y$ p3 c9 z* |" c return count;1 D5 [, B& m) B' u1 B
}
7 P( h6 W# ~6 D! G8 m- \* l V( y0 a; o
|
|