|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。( z2 [8 @ B8 \* V
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。, q& {( G, Y5 G& h4 G
: @, }+ ^& O# J: q+ Xunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
7 ~( [/ o" W6 I6 \{
" w+ {% Q6 c2 Y: K* c unsigned int count = 0;
# Y! J- P* K/ W+ Q+ p; x+ k unsigned int flag = 0;$ V- d" D- F/ O2 l3 F
7 V2 R- X$ V3 s( K v1 a C
if(numBytesToWrite < 0)/ [1 k S* A5 y9 U
{; x4 a( r1 X+ p s$ H; C' x
flag = 1;2 u( R7 t$ s( [, G+ w1 q. T) o5 ^
}
7 A# z7 q+ j: j- n" R7 u; s* F; z" p0 Q& Z; ]) u
while('\0' != *pTxBuffer)" k+ P! I) @3 z
{; y/ v, P u5 I+ o# r
if('\n' == *pTxBuffer)6 _. R2 A% c+ `7 F, D3 g k& C/ X
{
* Q3 y; H" d1 Y: f) f) h. o UARTCharPut(SOC_UART_2_REGS, '\r');
6 Y- i* r/ `- e UARTCharPut(SOC_UART_2_REGS, '\n');; w3 ~4 C' a( @$ P
}- f3 Y# Z& U) @8 e: O/ H# E
else7 X# S$ m0 r; k% V: t8 j
{
8 }2 C. L/ |1 H7 T) `8 o UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
1 Y: E5 E1 Z' w6 | }* `" @# s# x1 C$ e* j0 S
pTxBuffer++;
0 O/ F) e8 O" z% I) v# E count++;
; s7 i" W' F; Y m* ^; {* B" v0 e9 C; w3 g# w8 k1 N9 R$ l6 n5 u
if((0 == flag) && (count == numBytesToWrite))0 c/ T* G' Y! z0 r G& V% z; Z
{
6 H8 e0 a% A6 H2 _' j# B break;
, s$ L% _7 Y5 K: Q }, {9 B( G! G. i3 [% w1 ^
1 d& g) e' h- M; ~& y! o }
5 J5 p9 M. U) s% i$ O. }, R* r- |5 F9 Z0 }6 R- C* [; {" x, [, N
return count;
. q( F p( v9 l; x J}
/ w% {2 d9 y# ^# k1 e d
$ i7 o0 | a: R* s: R; O |
|