|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。2 E0 D9 h5 u6 h
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
2 e1 P3 M4 M. T# `# ?, P& R: i4 \, E s- e* z2 L2 I* |2 j
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)+ p1 b: m* l+ c* A
{$ A7 g# r1 W. c; ]
unsigned int count = 0;/ F2 j4 W+ U, m) R( X3 j3 e% d5 m* ]
unsigned int flag = 0;7 Y# r' n7 a, H! S7 V+ K N% A
& G& m- R: v3 j+ h+ B+ c
if(numBytesToWrite < 0)# |; N" U- [$ R0 j9 ~
{
, L/ T, U8 V7 R1 b! E flag = 1;
& k: g8 D l& E* O }$ w9 ]/ W8 ^3 n$ c; ?! g5 {
9 b; x2 k! j0 Y. G+ z8 f8 u while('\0' != *pTxBuffer)2 l/ B& u6 Z! ]# O6 m# ~' M0 g' {
{8 D8 A' f7 m' ?% v, p/ s' V) _- E
if('\n' == *pTxBuffer)$ ?7 O2 F, }/ J% W2 ^# Z$ `% I6 G
{- r5 U1 U: y. v- z+ I- T9 Q1 ~
UARTCharPut(SOC_UART_2_REGS, '\r');3 g o: b( _5 [' w
UARTCharPut(SOC_UART_2_REGS, '\n');
, x. w X# {8 k$ i. q; c6 g; ?8 R }; y! H- {% @! J
else. Z$ Y6 t3 Q/ }- C; c% i
{8 R+ ]0 `6 I% j2 x4 y
UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer); q$ _/ r% Y, ~# F+ i
}2 t2 l4 T6 ] |& n. }, {. s0 a6 ]/ j
pTxBuffer++;4 r n& l+ Z' p' O8 _) a, w/ j
count++;
" @- ?1 p7 U; Q; ?* s$ m- s+ p) @. C* n4 A
if((0 == flag) && (count == numBytesToWrite))
$ f( }, c# n! e) y3 ] {
2 R: c$ Q) ^; B" n break;
: f. b0 O* H1 { e; }$ @( @+ A9 t; w }+ D. n! L/ U8 ?+ m, O
9 n0 F/ T0 e' w! D }
1 u7 G* g( g+ [" f5 i1 A! `. C% W% a, m! ?: V8 W
return count;; A3 ~' |! T: m, @# {- Z4 `& Z
}
1 z, F s6 u& D) N+ @9 `- Z: e- {4 {. `& {8 N2 ^$ Z
|
|