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.

[参考译文] CCS/TMS320F28379D:EtherCAT -从站协议栈代码-映射对象

Guru**** 2589300 points
Other Parts Discussed in Thread: CONTROLSUITE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/665914/ccs-tms320f28379d-ethercat---slave-stack-code---mapping-objects

器件型号:TMS320F28379D
Thread 中讨论的其他器件:TMDSECATCNCD379DcontrolSUITE

工具/软件:Code Composer Studio

您好!

我希望你能帮助我。

我对映射 CCS 中的输入和输出有疑问。 我已经映射了 SSC 中的对象、如下所示:

 

因此、我的对象中有不同的数据类型。

现在、如果我按照说明操作、我必须在 CCS 中修改我生成的.c 文件中的函数:

在这种情况下、指针 pData 是一种 UINT16。 如果程序执行"pData++"、则指针的地址会移动到下一个16位存储器、但变量***_Enable0x7000的长度仅为8位、下一个变量***_Power0x7001.PWR1也位于该地址中。 ´不适合 TwinCAT 中的存储器地址。   

例如:

我在 TwinCAT 中写入:

***_Power0x7001.PWR1 = 1

现在查看 CCS 结果,***_Power0x7001.PWR1仍为0,但我的第一个变量***_Enable0x7000已更改

1在***_Enable0x7000 --> hex 的下8位中设置:0x0100

我的问题是、如果 pData 只能通过一种数据类型进行映射、如何处理多种数据类型的映射。 我是否必须将所有变量更改为一种数据类型? 如果是这样、在项目的下一步中、我需要浮点、因此 pData 应该是 uint32、我的所有变量也应该是。

此致

Willi Konrad

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

    Willi、

    我们已经举了一个例子来帮助客户解决这一问题。 如果您看一下 TMDSECATCNCD379D EtherCAT 解决方案参考指南/示例并生成 C28 SSC 代码和示例、您将看到如何处理此问题。

    请遵循以下 controlSUITE 文件夹中提供的 SPRUIG9。  

    C:\ti\controlSUITE\development_kits\TMDSECATCND379D_V1.0

    示例应用的映射函数显示了如何将数据从数组移动到输入/输出对象。

    如果您需要进一步帮助、请告知我们。

    此致

    Santosh Athuru