嵌入式开发者社区

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

作者: 51DSP2016    时间: 2017-3-21 19:11
标题: 光盘UART2_INT例程
使用CCS中的仿真跑一下 UART2_INT例程,结果在运行的时候一直卡在了 UARTPuts(" trolong ",-1);的位置。& Y3 y! U! w& d/ k
经过单步调试,发现其实程序一直卡在了 下面函数中红色的位置。请问这是什么原因?应该怎么解决,如果使用开发板跑的话,还会出现这个问题吗?(因为ASIgen软件的原因,还没有在开发板上试过)。
3 L; o7 `( T8 r: `6 Z
' S/ i) R2 n* G. |9 Gunsigned int UARTPuts(char *pTxBuffer, int numBytesToWrite)
$ }: Z# G+ {7 }$ n# q{4 r% k! m) g# E% n, w* o0 s" d
     unsigned int count = 0;) A7 C5 K8 ?+ M) Y: c
     unsigned int flag = 0;
" E1 P) [) ~& B3 Z3 r5 j
$ z0 X# ?1 i7 U: y! I* W7 @     if(numBytesToWrite < 0)# ?" H5 b* c; J, Y! _9 t
     {
. b/ _& p9 s2 [% w4 `& ~          flag = 1;
( r8 Q* _! j5 V     }' U6 r$ v1 ?% S% `4 H2 o3 {( v: R

5 b: I% b2 ]* Y8 a; l     while('\0' != *pTxBuffer)
  F2 ?/ E% y* O  z     {
0 {6 \5 [- q/ \5 Z9 M3 ~1 K          if('\n' == *pTxBuffer)5 o) k; c  j% Z+ R5 A
          {
- N" ~4 V. q4 e* `* G" s2 a                   UARTCharPut(SOC_UART_2_REGS, '\r');# W& B) ]+ I8 C2 @. ^
                   UARTCharPut(SOC_UART_2_REGS, '\n');$ L% E' ^2 U- }5 v  L0 w3 j
          }
6 x  L  B) K8 ?; I; I$ A          else
. T% ^0 M$ d$ b# l. w. _          {& z+ p0 X# w$ k; `! ^) ?. K) A6 R: u
                  UARTCharPut(SOC_UART_2_REGS, (unsigned char)*pTxBuffer);
1 n' Y: K' w. s5 H: w  X# f          }% K- x2 |! w. J2 J8 `
          pTxBuffer++;
2 a* v/ M4 a! Q6 ^# L* h          count++;
$ |  J; \0 i3 k8 `/ H- {2 |: y$ w  E" x
          if((0 == flag) && (count == numBytesToWrite))2 C  c# r# T+ J
          {
6 ?* d; _# h5 h1 e" x& Y. v- Z               break;( _$ w3 h- w  o# R: v
          }9 A5 ~; [# ?& N& ]$ C$ w4 P
+ g" o# J- T2 A
     }
% u6 g& _" M6 ?
8 I; i1 Q! E$ I. C4 B" x   return count;0 F" J" W( Q& R0 A# E! ^; a
}2 y7 A7 h" Y( e8 T  l1 w
  K. K1 z9 b. i+ h/ s

作者: human    时间: 2017-3-21 22:00
没有出现这样的问题
1 E8 P1 J9 G1 t$ G9 P' a1 @看看是不是debug模式
作者: 希望缄默    时间: 2017-3-22 07:30
这款芯片软件仿真不能操作硬件外设




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