|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。; f! X4 X [* R; g! E/ I$ A
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。! X4 ~$ O) V) I! }5 |, b9 m
- i- V( w5 S. l: {/ y' B1 N
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
8 j. Z. P# W+ x: K{9 a2 P& x6 l' k/ F
unsigned int count = 0;$ v$ Y7 D5 H2 g; O0 L
unsigned int flag = 0;
, J* b4 R% q6 e3 F* Z" S+ _% q* k6 ~* u( w0 s, T
if(numBytesToWrite < 0)2 O: T0 Q! i1 o4 s" `" i$ C
{
2 ^9 I( ~+ V5 x3 q- m flag = 1;0 U' j5 o5 w- p5 s/ z( j2 S
}
: N$ r( l- m1 Q4 o" Z4 N5 z
- `2 B/ Y4 ~4 O* E' L: }& S while('\0' != *pTxBuffer)! j7 L8 q8 t0 W
{5 d$ F1 F+ d) W8 L6 @
if('\n' == *pTxBuffer)) u# |* q. } n& _' u) t# ]# D
{- C8 @( q5 B3 c1 ^1 C. b" ^# L6 h! g
UARTCharPut(SOC_UART_2_REGS, '\r');
. }/ L# ~6 s- G6 U UARTCharPut(SOC_UART_2_REGS, '\n');( J, \: c7 _) A1 ^ m4 W4 D4 }$ l
} V; o# \, Y9 P3 D
else1 Q# k# Z; e1 j4 _, I
{
" g3 i; f5 {- @* S4 Y2 |$ N; e) E6 | UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
0 Y$ z; \3 A' l }5 D! t2 A$ F+ T3 P3 t. C$ z' e$ l7 p: V
pTxBuffer++;9 ^( N$ S$ u6 Q9 l% u
count++;% G8 z! l, M( ~
$ |' K: J8 v5 ]7 U. H# }
if((0 == flag) && (count == numBytesToWrite))4 r' |5 I8 O4 c1 {8 m* d. f1 f
{% s( V# N0 q# t7 D0 X9 v) b
break;
# Q" b8 i& X( S, G" ?3 L! [! G }
5 W3 g& t- c5 W% K/ h2 A# A: Q+ C$ e# H5 W
}+ v7 V2 l2 c6 m6 N
9 a/ v" i2 E) o return count;- t$ N0 L( Q3 |$ x3 t# R
}
- U2 l% _. _9 E5 L$ F6 Y& q5 ?7 i, ]' R6 y& {, Q8 N8 }8 T( |
|
|