|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。% P+ v+ Z- B8 v) E1 b t
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。$ d4 @# ~0 \$ o, A% p2 X
# _8 K% Q( P. W0 tunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
- J* p; ~7 K0 B{* ]# s$ d% t0 | [/ N1 \# f
unsigned int count = 0;1 r0 W8 n! Y# ? [7 e% j( G
unsigned int flag = 0;
) l' C6 |+ H9 r% d
' E" Q) y F" `- E, d7 z& c/ i if(numBytesToWrite < 0)# P; X* J3 p4 f: O! ~8 x
{
! E5 h: C& u4 Q$ ?1 @ flag = 1;+ d4 s* X( C& Z0 Z
}
4 m+ m$ d6 C. G! A' L
3 a& o. H- A# x' D while('\0' != *pTxBuffer)
# a d1 K8 i! S! H5 B# ^ {
: g' U+ }5 o2 ^* x if('\n' == *pTxBuffer)
) i2 f6 M" z( D$ N3 F, i {
, V6 {8 a4 i/ L0 b0 Z9 n UARTCharPut(SOC_UART_2_REGS, '\r');
; @- f- `; T5 ^8 w1 T UARTCharPut(SOC_UART_2_REGS, '\n');
* ^- P) s! w' K2 R2 v }
$ c+ W6 a. ~) z6 V else+ m: i2 I1 H4 O4 v
{
6 ~ t( C! l7 z$ C0 p UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);- v) g5 b: s( @6 P
}& B- J: [' P( d
pTxBuffer++;
0 x' E% f' h9 g2 f& J* ~ count++;" K8 N8 Z" S+ {' [! t" t6 G' r( ]
" L0 M g* W* F, C( P if((0 == flag) && (count == numBytesToWrite))4 A. j" C0 `# K+ f3 R3 f. u5 S+ p! m, K
{' W) h' ?9 f1 q, F2 L* t4 }: y
break;3 g2 B/ e+ v6 b& I3 P! d
}' ^6 V3 q) M' F; X& k
; d5 ^6 h1 t1 T- L
}
" F+ f6 C; V, S! u" c- ~3 v! c- l2 Y. G5 O, T( H9 ~& I
return count;
3 z! k3 L/ ?, S* U% h% V, {}
& \0 [, a: \! U; J ~5 ? h
% J; M8 R# _& g' o) W2 d; t |
|