嵌入式开发者社区

标题: 光盘UART2_INT例程 [打印本页]

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。
4 }" c) _! D0 v1 o经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
" D, S1 Z& c, s6 C& j# l) f4 E" o0 s+ g5 A( I. ]# l. R
unsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
8 Y% M  W+ p3 i$ r+ o{
5 t  ]5 B3 @+ l. e     unsigned int count = 0;
/ b  ?7 r* T' M$ g0 a3 {) B     unsigned int flag = 0;
& H* X, ]! g/ E) w, E9 b' U7 I- e* B
     if(numBytesToWrite < 0)
+ ?* c. w. {; c; ^" j& i8 Q% Z$ L) h     {
  F- Z  p$ \+ G) h          flag = 1;! A2 l7 ~& S( K3 b5 |2 a
     }
# W) r" l/ E0 _2 Y8 J  N& ]6 g" M/ P( J: F3 T1 }
     while('\0' != *pTxBuffer)
; J" _( S* E. u& X% F     {( f3 i4 t1 E2 V/ B9 i' v( J- Z
          if('\n' == *pTxBuffer)
: p" [7 Z* B% `8 s  n          {
( _3 E6 L$ K5 `9 c- R% r9 A$ c                   UARTCharPut(SOC_UART_2_REGS, '\r');! a2 t% S$ {2 H2 n
                   UARTCharPut(SOC_UART_2_REGS, '\n');
1 m/ D" V& e' o          }
9 h' Y- j  {! p, n          else1 @6 _7 f8 r1 D6 ]2 F
          {
/ \2 O! l- W' j  ^9 U  q+ y                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);- M; J  I5 I6 K+ n! y( [2 ^# @( x
          }+ [0 K/ O; [9 H+ Z; {
          pTxBuffer++;
' `' C7 B, j( S          count++;
8 i& W4 |$ K( G  B4 A0 M  l5 L
6 L: f; `6 ^! J; Q          if((0 == flag) && (count == numBytesToWrite))
  y0 s; }1 p7 m          {% d9 P) }# Z) H" [& K; S
               break;# V: u7 K' X9 U/ g$ P, ?* T5 V
          }
1 [; D" O" ~& s8 l. u2 y: i; d, F" v2 J5 J
     }
3 O5 p7 M! U" {0 s& w
7 r' w0 C, ~& p/ F/ l   return count;
& R; \- K% Y. Y( f- g* U}
+ Y/ h( o; x$ g1 ^  f3 j3 ~5 {3 g. K, Z# f* X

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
) x; P+ {, B$ }- p5 B看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4