|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。% a- H, V2 w( |4 J' V: h$ n
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。- H' x. s' O9 E: z) [
! Y2 c3 C/ g6 Q, V! a# B! G
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite); t3 M2 A3 |3 ]4 ]- a
{
; w4 x* k" b2 q9 i/ T unsigned int count = 0; _4 E: u/ |* U6 c8 `
unsigned int flag = 0;* H1 U, p" d+ N1 E
( p8 f) x+ k8 ~ r; m+ y8 C
if(numBytesToWrite < 0): p) ]+ c9 a" {0 l6 D" M' `5 A
{
2 F4 l, m; s0 J; u' x2 o flag = 1;/ F. y2 j* V4 x7 W
}
7 c* N3 t# O; O. ~/ I& @, a* ?
8 n( P% V. y0 C; Y. N while('\0' != *pTxBuffer)
* c1 Z! T' K. W$ Q' J3 |5 _ {1 E6 q n# Z% I" ^
if('\n' == *pTxBuffer)
& {: J1 M' [8 y {
2 f' h3 l! r& R" G) N+ b. L; d UARTCharPut(SOC_UART_2_REGS, '\r');
7 z& M# x% U. G6 I- ~0 x! |" [7 ` UARTCharPut(SOC_UART_2_REGS, '\n');
; E" r5 V* O& S: q1 Y# U" v! D. [ }
9 T/ @2 F3 s a1 e7 l7 A. q else
: P6 s6 N6 K9 M- v7 X. X {
" A' G, h3 H+ ?! g& m UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);: z4 f3 o) N% K
}
B s9 | A2 y" H pTxBuffer++;
' S6 x" M5 R4 e7 Y1 U6 h count++;
5 l0 x! H3 a- V* d$ |, }' I( _, j! H9 G
if((0 == flag) && (count == numBytesToWrite))
# D/ W; M0 o6 T" D {
$ C) F4 E( @, A' F# n/ O' Q break;+ P8 r2 o( e: }$ E& J; ^
}
- a1 y- R& W8 m8 n3 h/ G9 @. e9 d+ E! j# [1 j; @ m
}4 T& Q. d, a5 B5 ~- i, G) q
. D% z* O7 [- W, H! X return count;
3 S8 q8 D+ {6 Z; }. F/ ?" X0 o}
4 r; ~: H( t. S3 a8 t' L, T) f( [' d' t. X# w- I6 [
|
|