|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
1 K, N5 a: X) R- l1 k& ~经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。# A Z: k* Z: \4 F6 R; `+ V
2 w/ b4 w/ K% B0 W9 z
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
' [: t3 X( i! B0 {9 b{( H* U% @3 m, i# K4 @% w( W" \
unsigned int count = 0;$ M: B7 z+ L" k4 J P
unsigned int flag = 0;
, y2 T6 Q8 g' _) x' W1 K0 T5 W% |1 e/ M, `) z" s* B8 E2 l6 O, q: m% v- a% |
if(numBytesToWrite < 0)- D* u+ o: \ V
{! `# |# s0 T; v( A) m! y# a9 R
flag = 1;( u8 P, s( M1 P, p- h* Z# j6 a
}" G* q3 B, T4 N$ ^6 V! M) q
9 c/ C3 @+ M' Z# A
while('\0' != *pTxBuffer)$ ?- F$ {4 m/ s0 F% N5 `5 W
{
9 i- ?+ M3 S$ u7 \' e, z6 {+ n if('\n' == *pTxBuffer)5 a5 _/ {6 K- W- {0 d ~
{
! _7 W7 W( }, O/ G1 s UARTCharPut(SOC_UART_2_REGS, '\r');6 _# Q9 J9 A/ E! I4 J, v* |
UARTCharPut(SOC_UART_2_REGS, '\n');
, s7 \! y. N2 I; p0 F }
7 v7 k: E1 j N! D4 h4 h& f3 l6 E else
$ n+ E' {6 ]! }) L. ? {
: D1 p& M3 E( d9 z: o) A' X& p UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);6 D0 ^8 F8 _% h3 {; @8 {) _
}7 Y$ H# G1 `- Q0 X
pTxBuffer++;: \4 t1 a0 f" p
count++;0 q6 O6 p, {8 B' |: D s9 q
2 m$ C2 P6 m5 L/ d' K: n! x: | if((0 == flag) && (count == numBytesToWrite))$ H. w) @( T3 T8 \/ k
{
6 f. \, [: h1 c% z) E4 L' M break;
- V, p0 A% m3 O: R- X }% r0 h% j: O' C" @" ?% }
7 G/ s4 O# E' A( s& q }' e. W# G0 i% J' g- j5 r
( \" H g, J3 I* }# K return count;
$ H5 {& `- J% r5 Z# w}- Z' q* m5 d3 S7 }- b
0 O; ^9 b% U: J* h9 s& n |
|