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.

[参考译文] TMS570LS3137:关于安全特性"ETH2A"

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/616654/tms570ls3137-about-safety-feature-eth2a

器件型号:TMS570LS3137

我正在尝试对 TMS570LS31x 的安全功能 ETH2A 执行 I/O 回送测试。
要检查的环境是 。

传输正常完成、但接收未完成。

我的源代码如下所示。
如果出现错误、请告诉我。
代码中调用的函数是由 HALCoGen04.05.01生成的函数。

我会问您、以防万一。
是否使用 MACCONTROL 寄存器内部环回?

***** 代码

void TestEthLpbk (void){
hdkif_t *hdkif;
hdkif =&hdkif_data[0U];
布尔 retValue;
uint8 TX_DATA[60U]={/*测试传输数据*
0x00、0x80、0x2F、0x25、0x56、 0xBA、0x98、0x90、0x96、0xD8};
uint8 rx_data[60U]={0U};//接收缓冲区
uint16 dataLen = 60U;
pbuf_t pbuf ={NULL、TX_DATA、dataLen、dataLen};
uint16 rcvLen = 0U;
uint16 cnt;

/*初始化用于发送和接收的 EMAC */
EMACHWInit( selectmacAdd );
EMACRMIISpeedSet (EMAC_BASE、EMAC_RMIISPEED_100Mbps);

/*启用环回*/
Dp83640EnableLoopback (hdkif->mdio_BASE、hdkif->phy_addr);
EMACEnableLoopback ( hdkif->EMAC_BASE );

/*数据传输*/
retValue = EMACTransmit( hdkif,&pbuf );
if (retValue == true){
/*接收数据*/
EMACReceive( hdkif );
rcvLen = hdkif->rxchptr.active_head->bufoff_len;
for (cnt = 0U;cnt < rcvLen;cnt++){
RX_DATA[cnT]= HWREGB ((hdkif->rxchptr.active_head->bufptr)+cnt);

/*数据验证*/
for (cnt = 0U;cnt < rcvLen;cnt++){
if (tx_data[cnt]!= rx_data[cnt]){
/*环回故障*/



否则{
/*发送数据失败*/

/*禁用环回*/
EMACDisableLoopback ( hdkif->EMAC_BASE );
dp83640DisableLoopback (hdkif->mdio_BASE、hdkif->phy_addr);

返回;

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

    您好 Falcon、

    回送是外部回送。 要测试环回、您需要一个以太网环回适配器或插头(引脚1 TX 连接到引脚3 RX、引脚2 TX 连接到引脚6 RX)。