|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
( ^9 L( F; B4 R. ?5 ]经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
1 k0 F8 V& T; D. b
; M2 r) I5 R. Hunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
. h5 }5 W7 R7 c4 l) ~4 S6 D( `1 h{
' s ~+ Z! K- B+ } unsigned int count = 0;
! D% Z6 N/ L+ M/ W |9 o unsigned int flag = 0;
. N7 ^' C5 y1 t5 X. W
# j4 n! N, i: m! p) A if(numBytesToWrite < 0)" m; O+ P& f+ O8 z8 o( o
{' q) s2 S$ Z' ]0 `* l1 x f/ P
flag = 1;
5 ?3 W% g* K' E$ w* t }* \; ?: l; U- a% s1 r6 Q
* Z0 D* h* p, j' J9 n# g while('\0' != *pTxBuffer)3 x. Y- |% T4 |: X+ r& P
{
! c- z9 i7 g9 @7 `# j3 i s# s- E if('\n' == *pTxBuffer)0 }2 D v3 c: k: q
{
" Q- q! n" \, k UARTCharPut(SOC_UART_2_REGS, '\r');
3 H" Y% u# a; Q UARTCharPut(SOC_UART_2_REGS, '\n');' V: ^3 y3 l5 i5 V& \. @+ e
}
2 w- J5 h- d2 U else
7 G. z: l! k; A. T! T% K* Y- S4 F {; N! R0 r" {3 n( K+ y5 }
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);( `$ a5 u: G2 @+ t
}$ U. Y/ f- E; R: |% `6 i, t7 g7 k# k
pTxBuffer++;# G$ Y" b4 Z: V5 X3 ~
count++;8 W: o! R& @2 }! u# Z5 O: m- C
5 d3 t4 a. b1 X if((0 == flag) && (count == numBytesToWrite))
0 n s3 c0 i P, c4 g. j2 W {
$ j4 c0 E% i) S% t# u break;6 T2 Y3 S( Q2 Y4 s7 V& x
}4 Y6 W' v) g# h4 x5 L4 x
1 R" E$ k& G1 s6 \" ?' Y, N$ t+ {1 T }
; a+ |9 y4 c3 D- ?. e
' B6 m0 ]- H1 M2 z. a, e return count;$ k9 G$ T0 g4 p
}, N: p& U, L* d2 q; }2 {
% x# i" H; _- c5 K
|
|