|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
0 ~, i) B, Z2 j* Q经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。0 x* Y* ?" Y. o, v" A% P- |
5 w9 h2 f5 g- C3 N, [% D0 D" w( punsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)% G8 A: ~4 m% j2 v0 x9 n, P) k$ ^7 C
{
! C F) Y8 O5 W. V* L9 k6 i unsigned int count = 0;' L2 i2 y l, w( T) x
unsigned int flag = 0;; x+ U/ X" @, C" T0 H; o
! R: \" H& l( U
if(numBytesToWrite < 0)
; L8 @* _# ?0 a1 a/ H4 A! O; {3 k {
P+ D9 Y1 q3 y flag = 1;
1 A$ v: K" p' @5 b: b; B }
4 S, X& T+ |- M, |, m4 d: l
+ H1 Y& q! W& n while('\0' != *pTxBuffer)& n3 O$ K& M' Y& T# a9 v
{& `5 n# d/ s9 q
if('\n' == *pTxBuffer)
_7 r% m$ x/ L' R {
2 V' T" p) m0 m* | UARTCharPut(SOC_UART_2_REGS, '\r');9 P0 W$ c3 P2 V( w" l0 O6 N
UARTCharPut(SOC_UART_2_REGS, '\n');! A+ q. f4 z) g5 R6 ~& }
}. q% a5 h, N G1 r+ |3 m
else
* ^( e- @. U. Q* N0 @8 \4 ?5 g {& b% X3 O! _' D' ?* ]2 W9 X
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
1 c9 D/ S( s5 U8 i }+ K$ | O8 w5 ^
pTxBuffer++;
3 ?2 x8 B9 a/ v( I6 j4 ? count++;
; [0 K1 n- {( v3 }9 ~* \" z" G: y" g
( j6 t) J3 P0 A9 ^" N K. ? if((0 == flag) && (count == numBytesToWrite))2 i5 e- a+ V ^5 ]2 _/ W+ M0 k# E& Z
{
! Y! K3 E9 ~& k% f* n9 M break;
, n! p5 q! q$ j' `5 N }
7 W6 a. x2 F3 P
! ?6 N* i. P& |3 z' t: o }
% N5 q* i P1 j( }6 r( ~
# b1 J4 A2 q( X# u7 x0 L5 l4 q5 h return count;
$ O3 X7 k0 O& A" A4 f' x- L}1 T4 `# b. z% w1 }4 R
; |! {2 a9 ~# ]1 E8 w- N- b0 Z |
|