|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
+ W7 E3 C1 K: k& }- f) ]; b) A经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。7 b, G- I' x! s$ j
, }: B# Z. B- \4 w7 @& c, s; H" |
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
- ~1 U3 ]' R) g5 s \! d$ r{+ k/ p, B9 a* b. q
unsigned int count = 0;
1 f7 `. F" h- e5 H3 f unsigned int flag = 0;4 J e ^* \/ z% s
0 y. c/ }, z0 z# Z& n6 u$ H if(numBytesToWrite < 0), s8 V4 l9 j% i* s
{
! r5 @" W/ w6 T' f1 }6 _3 i1 D flag = 1;
' L, X: ~6 V" H+ G/ k3 C+ y! ^$ p }. }, w! j1 Q1 U' m5 f
% q6 U6 t% @8 N# f8 T while('\0' != *pTxBuffer)
, p; h- |5 R" q v( ~ {
* W) R6 `2 T6 M if('\n' == *pTxBuffer)' r% B8 i1 @2 M0 Z; n
{6 B7 m# {. ~5 T" [. y6 ~1 b5 \3 H
UARTCharPut(SOC_UART_2_REGS, '\r');' X V: y1 J+ r" B
UARTCharPut(SOC_UART_2_REGS, '\n');
6 N2 H- S* X* p }' ^4 N2 C% W! R( D6 L3 n
else
; j. }7 d( i( e6 t {
0 X7 u: J0 {/ r* D UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);; Q! {) o: y8 C( J$ Y; p( S3 \
}& m2 {% |# k9 K& a U0 V7 p/ ]
pTxBuffer++;
, U. p+ Z4 R3 n! V, i: G count++;7 {' G- d" ?8 H% u2 G9 r
. C% N- a0 f! U" x a6 ` if((0 == flag) && (count == numBytesToWrite))- k8 J$ j/ p) q8 i) U; I2 f" N' h
{
( d3 {: m6 a9 Q4 E break;3 o$ U% M; L) J/ D
}
# k4 Z0 V# ]5 B `* |
0 J2 e" [2 ]9 T: ?' E l5 u; A) h }
( Q: b/ I; Q( ?4 ?, f$ \% D8 O& n5 c5 k1 u5 x3 c5 w4 `9 @1 O) m6 z
return count;1 Y$ a& ^( }' ]
}
* I1 f% s n* Y, \" E! c4 m3 d2 r( {
; i+ ?1 P4 A+ ]5 Q' }5 w: n3 w |
|