|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。( f7 k! T" F" D) E4 P& M
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
$ T! h- E# v" ]# X& b" k/ s1 e: Z' O+ y0 a0 I
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
+ \/ o: S* P9 |! Z5 e: @{+ S# H- i- c) V! v2 }. d
unsigned int count = 0;
0 l5 u: g/ i1 R unsigned int flag = 0;& E. R& D+ t3 Z0 N! _* s
2 q, L0 V, D, X' u) {+ Z, `
if(numBytesToWrite < 0)
0 A7 ]2 F' S" d. i {6 {0 `& W8 d3 q
flag = 1;
9 ?* S7 z9 ~. y0 v: p; T }
3 {6 K( Z8 o6 Z. n) E7 g8 ?; i) g6 ^9 d& I6 a/ `% Q1 z* h
while('\0' != *pTxBuffer)4 F' y& ]5 b! j7 c0 n+ R
{
% G l. S- R4 { g ? X if('\n' == *pTxBuffer)
: y5 F5 K/ a: j m {' n3 y. r0 `0 v
UARTCharPut(SOC_UART_2_REGS, '\r');9 r. l6 |6 a" F" z
UARTCharPut(SOC_UART_2_REGS, '\n');; n8 y# G. d; `. q$ j- T+ y
}' ^5 u% T8 Z: l; l: v6 Q
else" O+ U, l8 ?5 I/ }
{
: C2 y) [ c7 V; C UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);9 r2 Y& v, j; U' `, S
}/ f3 L- a. A q& ?
pTxBuffer++;3 o2 y6 r8 z4 x# x w! X7 K
count++;
. N2 [- j2 n' A! B! p0 ~+ S1 O2 }( k: e& `9 X, [
if((0 == flag) && (count == numBytesToWrite))
' ~, R* s' R Q4 U1 B {
; K' o* [- g x( h4 \ ?) ^7 R break;
- v# b% m9 q- G ]5 R! ` }
5 h5 i6 b1 }& Q$ y0 [% z7 n; @+ y* p( |4 Z E2 N @" d0 C
}: w8 N4 e( A8 s( ^0 y
1 b7 T! p: c4 r return count;& U5 u9 y+ \3 \8 A7 e6 ]% q+ H6 K
}
$ b5 }0 n3 e, W) h$ Z1 @6 O$ F. I' ]
|
|