|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
0 R) @$ W+ Y0 a( m8 o经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。* E( L5 m7 B( m6 `! \9 T9 c8 v5 g
4 i% w& l8 [: s6 z$ h. S
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
M e$ L. O0 a7 m( k$ ]{' v3 s' J" {2 r5 g4 Q! i2 c
unsigned int count = 0;0 L) ^* w+ u. \7 S! S; [8 L/ ~
unsigned int flag = 0;
8 S8 B, K. W& w1 u9 R W6 s& G* m5 G
if(numBytesToWrite < 0)
, z) l' T( s0 z* `. H3 J {
: n+ w' a6 z1 A/ b flag = 1;; b. a% \( G: Q$ B* q( K
}
$ A9 X- R( v. R% p
- p: ^: C8 T3 s+ ~5 ]( K/ k. C while('\0' != *pTxBuffer)
4 P# n- c* e3 @+ z {
7 F. [: b# o6 P if('\n' == *pTxBuffer)9 g- ~1 [% g. U* o+ }. r N
{+ V$ ?+ R- M, I4 v; Y8 N1 c9 e4 T' k
UARTCharPut(SOC_UART_2_REGS, '\r');
# G) e) G+ A, R8 U; { UARTCharPut(SOC_UART_2_REGS, '\n');9 u, s8 ] _4 k# H! ^
}
4 ], x7 |" ]8 G2 T* |' D. i' f else
: A+ p: @* e L8 t' c7 e% t {! n9 M8 M0 k6 D: E8 s! ^) n; P
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);; v) y% C- J3 O; d7 D& `8 x
}1 S% E" {! K. \; c& T3 b
pTxBuffer++;) w2 I0 S2 k8 A- z9 H
count++;- ] t, o" R8 k: S4 a- {, `( x0 r
+ L* v! l- Q! d y7 Y
if((0 == flag) && (count == numBytesToWrite))
8 N5 \0 _$ q9 e, y: M {8 R* |; ^5 V: I' Y/ |
break;
/ \' _6 N7 Q+ Y }6 e5 u7 U8 w, L& ~' p* \) I# q
9 r, ~* t3 J1 t Z9 y" B }" ?* l& h7 p2 x0 j/ Y( r3 c- Q
$ S+ R* W$ [' J6 h return count;5 T4 p# J* r9 S7 l; |
}
/ d. b0 V, l5 e* j: x' z5 G: ~5 x$ Y4 m& d' P7 E' ~( `- K
|
|