This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TMS320F28035:C2000串行端口问题退出调试模式

Guru**** 2589280 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/665369/tms320f28035-c2000-serial-port-problem-out-of-debug-mode

器件型号:TMS320F28035

您好!

我将 F28035 ISO controlCARD 用于从传感器读取数据并从串行端口发回数据的应用。 我必须通过具有发送字符的串行端口设置一些值。  

我正在从闪存对卡进行编程。 问题是,当我对卡进行编程并运行它(没有任何断点的调试模式)时,它的工作方式与预期的一样,这意味着串行端口正在接收和发回数据而不会出现任何问题。 但是、当我切断 controlCARD 的电源并对其重新供电时、我仍然能够从串行端口(我可以从 ZOC 终端看到)获取数据、但当我发送一个字节时、它根本没有接收到数据。 我不知道这里的问题是什么。 我要附加串行代码初始化和 ISR 函数。  

我的注意事项:  

是否缺少从闪存运行的任何设置。 由于程序在调试模式下运行,但在将其断电并为其通电后,它不会接收任何字节。 这是关于 XDS100v2调试端口的任何设置吗?

但愿你能帮帮我。

在这里,我的 sci init 函数:  

SciaRegs.SCICCR.all =0x0007;// 1停止位,无回路
//无奇偶校验,8个字符位,
//异步模式,空闲线协议
SciaRegs.SCICTL1.all =0x0001;//启用 RX,内部 SCICLK,
//禁用 RX ERR、SLEEP、TXWAKE
SciaRegs.SCICT2.bit.TXINTENA=1;
SciaRegs.SCICT2.bit.RXBINTENA=1;
SciaRegs.SCIHBL1 = 0x0000;//将 SciaRegs.SCILBAUD 设置为
0x000F;/ SCLORT.USC=0x0000.USC=0XUSC=0XUSC=0XUSCL.SCOCR.USC=0XT.SCOREG=0x200;




//从复位中撤回 SCI
//SciaRegs.SCIFFTX.bit.TXFIFOXRESET=1;
SciaRegs.SCIFFRX.bit.RXFIFORESET=1;
SciaRegs.SCIFFTX.bit.SCIFFENA=1;
SciaRegs.SCIFFRX.bit.RXFFIENA=1;SciaRegs.SCIFFTXT.1= 0x040

;SciaRegs.RXIFFT.TXAF.all

= 1;SciaRegs.RXIFFF.TXT.1= 0x040;SciaRegs.RXIFFF.TXAF.e 

以下是我的 sci Rx ISR 函数:  

_interrupt void sciaRxFifoIsr (void)
{

while (SciaRegs.SCIFFRX.bit.RXFFST!= 0)
{
sciRXData = SciaRegs.SCIRXBUF.ALL;

SciaRegs.SCITXBUF = sciRXData;

if (sciRXData ='C')
{
重新校准= 1;
}
否则 if (sciRXData ='R')
{
重新校准= 0;
}
其他
{
SER_rec = 1;
重新校准= 10;
}
}

SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;//清除溢出标志
SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;//清除中断标志

PieCtrlRegs.PIEACK.All|=0x100; //发出 PIE ACK
} 

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Rasih、

    我不确定是什么会导致差异。

    SCI RX 中断是否链接到闪存? 您是否有链接到从 RAM 运行的代码或数据、这些代码或数据可能无法正确地将存储器复制到 RAM?

    若要进一步调试、您应该能够修改目标配置的 GEL 文件、以便在连接时不会重置器件。 然后、您可以连接调试器并对其进行调试。

    希望这对您有所帮助。

    此致、
    SAL