|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
' t1 a) J# _! }3 B# n! H/ X4 o经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。; D: k( f& V( M" [2 O2 v$ x* B
% C+ @; e: ^6 [: u+ q' A) R) funsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite), o8 K5 |% n5 b, y) v! n9 l
{
8 ~. v. i5 \* \" R unsigned int count = 0;
' e8 P5 y5 Y! C6 H5 k0 N unsigned int flag = 0;+ z7 X( q# [6 Z
; C% t8 U6 _; Y/ B, g if(numBytesToWrite < 0)
0 H# }3 p# J1 S) ?/ A( S {
2 b; D+ h. a: l* P! w8 o flag = 1;& X0 d7 |+ G J3 F- N* h
}2 j+ }, P! O4 B& e }0 a" f
& W& O6 H8 t6 f( f& [& c
while('\0' != *pTxBuffer)
/ W9 o- N [3 A4 m7 @. ^ g {$ p# n/ l4 _% y& i9 b' ^
if('\n' == *pTxBuffer)
% m* k* u4 [1 O, I% d {2 { n* n4 X7 @2 X7 g* S& r$ J: `
UARTCharPut(SOC_UART_2_REGS, '\r');5 F0 X: K( o" q8 j7 U: C0 r
UARTCharPut(SOC_UART_2_REGS, '\n');
2 c0 \" T M6 y ^5 q3 o }; i6 O+ D7 N+ ?: v$ n+ _7 W3 F
else$ {8 Y3 U0 M$ B7 g5 k# M
{8 ]& _7 H" T% Q( q# b
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);$ c' m% B3 j/ S: _0 Z o* w" i3 }
}
/ b' n; {3 i$ L! I* n pTxBuffer++;2 x! q2 X: X* h; C, u- L
count++;
4 V" I' a* I3 J- j$ h6 I" j) J r: D5 t$ e, O1 L; E. R- s
if((0 == flag) && (count == numBytesToWrite))
+ a7 h8 x) ^( \ {
) g% c u: } { break;
% j; E8 e4 C% x, j9 B. C$ Z }
. c% g% v/ q# d" f
- k* s6 O* x8 H0 h }9 O# j# J: o& L
; k. U, E/ ?) e
return count;: f& n& h5 r4 P8 Y- T
}% r0 t! `. r7 F6 Y! \, a! Y
' d( o3 i7 z o ^5 V
|
|