|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
- H9 L r3 C; z经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。 O% W" |* j/ K/ Y0 n+ p! i: M( N- h
6 e0 X# F: ]$ P. O2 N
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
/ K( D3 }2 O- o l{6 |7 h% o6 Y" M) @9 Z
unsigned int count = 0;' L* j1 Y0 s m5 C+ H
unsigned int flag = 0;
3 s Q4 p& o) E& \1 W8 ~2 f* W# A5 s. P# Z, K' O5 ~/ k
if(numBytesToWrite < 0)
6 L; d- _+ O6 p8 i; ? h. c5 V9 { {
( d7 i" s$ X( M Z4 X, u, T flag = 1;! }8 X u# r. R, r, E4 I. B
}
2 T2 W3 |0 X& i: {+ N/ K' @3 u; o* [5 F" A( j m6 F
while('\0' != *pTxBuffer)
* Q, v7 s: }& `/ v {. v# \ k! L0 A! G/ C
if('\n' == *pTxBuffer)
) |2 H8 H/ L9 i, R( [ {8 s8 i/ y" q. I
UARTCharPut(SOC_UART_2_REGS, '\r');4 g7 l4 @: p0 m* Y1 T' T6 `
UARTCharPut(SOC_UART_2_REGS, '\n');8 x7 ]9 d4 z( d \8 [! w
}
$ r6 G8 C$ G O1 V2 ] else
- ~ C9 @3 o7 X7 E% u2 K {2 l0 r `& x$ `( Q
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
: m8 A2 k4 J& V3 e; @, N! G$ K }1 n) z! ^- }' m X! J7 G
pTxBuffer++;
# ?6 Z' G" N" V! O! x6 E count++;/ z$ M/ P2 b6 v7 b
* d" q, F$ w7 H( b if((0 == flag) && (count == numBytesToWrite))2 T# j0 Z/ N- x. O3 }: C
{
2 M; p) r" J% T: n% j5 i7 ~3 k \ break;
, {3 c7 p l. J5 k1 Z) Z }
% ]# s! ~# n' a1 E+ g* @9 G4 i! d% C M' C* D) J9 S) m
}
$ w& W2 b% }" n/ S# v4 X
" G! @$ c, S/ \3 P3 I% c: N9 L return count;
8 O% W7 {9 i# T0 V2 W5 t}
3 q1 C% ^ g; |3 U) y2 Z {
! T+ X$ l6 k' Q |
|