|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。: I& B/ |: @( F5 t* w9 K/ e
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。- V, I+ Y# V! ?
9 E& n: |+ E6 L" iunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
: I) w( ^! B0 G U: \$ P) a{! A# ^+ C. e3 y$ }$ N9 C/ x# \
unsigned int count = 0;
" M! y4 W/ Y# j% U$ \ unsigned int flag = 0;
0 h; G# @) p t5 J8 R& } ~: P6 {
if(numBytesToWrite < 0), ~/ [ h# t5 b; g6 @
{9 G* A- j# `) a. {+ R
flag = 1;
4 ~& M# d9 `" m) s0 Z& X }
1 G* }6 g3 t. _* K% y- | g5 ?" y1 d: [+ R% d8 ^7 h' f
while('\0' != *pTxBuffer)
$ f! {0 C* K8 w2 D5 j& i {- i" \4 Z3 x9 \
if('\n' == *pTxBuffer)
" \& W* _. X! Z" M5 i' @ {0 c0 S' g# t- Z4 r' n+ w
UARTCharPut(SOC_UART_2_REGS, '\r');$ \$ h! R& K7 S" c; P O8 [
UARTCharPut(SOC_UART_2_REGS, '\n');% v1 d3 g+ R! \3 V9 c" T+ u& @
}
2 _4 \$ N- r' ^ else
( z: o9 s u! t/ X7 Z {: @+ E9 o: t s& x, p& Z& X% T
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
; B+ W1 b8 M9 t, ^5 S }
4 y3 P3 f1 f3 @- r pTxBuffer++;/ z1 x O. W: ~' s/ i) ?
count++;
) a! t$ J* @) H0 W1 C3 k: h4 `9 `1 n. s+ v. f0 d7 b1 T A% j
if((0 == flag) && (count == numBytesToWrite))7 w9 o$ {" p4 l0 h1 q4 c& b [0 g
{
% h+ Z/ ^4 w# V2 _, m j break;+ G7 |' }4 M; [4 t- r, D9 Y. P
}
y% E) w6 o# N! c& ^
7 w( |6 N& n( p7 r7 ~ }
) I" p0 q Q3 Y% l' Y$ W* T3 F. u+ g: t$ U' ?" G2 q# }: V
return count;
5 M) K& T% [) V$ c3 d0 |9 X}' I: W% F s1 r2 [
I6 W3 z2 f: p7 q# m8 U |
|