|
|
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
3 K. P( M8 {% |) l) u经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。8 M$ Z f& m7 r! P- n/ f) G
1 d% T6 I$ a. j, `$ C9 T! Yunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
1 a2 J5 R4 O3 y* f{) I, h2 k6 A- d& ^# D
unsigned int count = 0;3 t' H4 n0 v2 ~* c
unsigned int flag = 0;
5 ]- A% m- c) ]4 q, L
0 L6 N1 }0 E* p3 F7 r if(numBytesToWrite < 0)1 c/ H1 h! s5 x
{
2 }+ b q# F: [5 U3 ~, o7 | flag = 1;8 X" _# W$ I# `6 E* ~7 c. }8 Z
}0 u' b, ]) W. o3 |' q) d) I* E
, c! l8 g) G- C) K8 G$ U
while('\0' != *pTxBuffer)2 c( X, x" u& P/ c* N" ~
{+ s6 ~& j; e* C- t. m$ F+ X& r
if('\n' == *pTxBuffer)
( o. o' K% {, I/ I8 W {- S X" O% x. n/ F5 @* P% j
UARTCharPut(SOC_UART_2_REGS, '\r');
6 p9 i3 I( o, E k @ UARTCharPut(SOC_UART_2_REGS, '\n');4 U/ a& J, n) t6 r- A P* C
}# M) `. a1 C6 q4 Y
else
) T9 ?' X/ m1 _4 \ {
( a0 {3 _- T6 { UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
$ p5 A. x6 J' t }" _8 x3 r9 g. n* X8 \+ a9 `
pTxBuffer++;
! B; O2 O: b3 X3 _! P F count++;
3 w9 W" x* Q- S; |3 f3 ^
: X |" {7 k D9 \ if((0 == flag) && (count == numBytesToWrite))
1 ~+ |. d* K# V5 X y: S s {
" Y% B5 g4 ^% R0 x break;
" q) A8 c1 n4 H" t6 }5 M, F }
2 e/ v) L" y) Y1 Z5 @
; d0 _* s/ g, j2 A0 U' E }
# s; O3 x4 E# @/ T5 u5 d! i$ X0 a1 R% x( u+ I% S# V, K
return count;
( B) i# g# d+ L4 ^) I) ?! m( C} o. [+ Z, n$ e, m2 \+ ^3 K
+ Y/ Q6 N) z& D |
|