查看: 3198|回复: 7

[求助] 关于k60 ENET中的uDMA

[复制链接]

该用户从未签到

4

主题

22

帖子

0

注册会员

Rank: 2

积分
180
最后登录
2019-12-27
发表于 2016-3-15 12:56:21 | 显示全部楼层 |阅读模式
最近在研究k60的ENET,在数据手册中也没有介绍uDMA的,有没有了解的?还有对于  Rx、Tx描述符云里雾里的,求大神解答
我知道答案 目前已有7人回答
回复

使用道具 举报

该用户从未签到

124

主题

3600

帖子

0

金牌会员

Rank: 6Rank: 6

积分
5781
最后登录
1970-1-1
发表于 2016-3-16 17:44:54 | 显示全部楼层
是的,没有相关的资料,你可以将其理解成ENET模块内独立的DMA子模块,与MCU的DMA是没有任何关系的,主要应用于IEEE1588时钟同步协议
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

22

帖子

0

注册会员

Rank: 2

积分
180
最后登录
2019-12-27
 楼主| 发表于 2016-3-16 21:46:42 | 显示全部楼层
FSL_TICS_ZP 发表于 2016-3-16 17:44
是的,没有相关的资料,你可以将其理解成ENET模块内独立的DMA子模块,与MCU的DMA是没有任何关系的,主要应 ...

好的  关于uDMA我大致有点概念了。在看链路层的MAC通信时,我看见如下代码:
static void ENET_SetAddress(const uint8_t *pa)
{
    uint8_t crc;
    ENET->PALR = (uint32_t)((pa[0]<<24) | (pa[1]<<16) | (pa[2]<<8) | pa[3]); /* Physical Address Lower Register */
    ENET->PAUR = (uint32_t)((pa[4]<<24) | (pa[5]<<16));        /* Physical Address Upper Register */
    /* 暂未理解 */
    crc = ENET_HashAddress(pa);
    if(crc >= 32)
        ENET->IAUR |= (uint32_t)(1 << (crc - 32));
    else
        ENET->IALR |= (uint32_t)(1 << crc);
}
我红色标注的代码有些不理解,虽然在数据手册上说:
IAUR:Bit 31 of IADDR1 contains hash index bit 63. Bit 0 of IADDR1 contains hash index bit 32.
IALR:Bit 31 of IADDR2 contains hash index bit 31. Bit 0 of IADDR2 contains hash index bit 0.


对于为什么要执行哈希表的这一步,不是很理解,希望版主给我解答一下。
回复 支持 反对

使用道具 举报

该用户从未签到

40

主题

500

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1089
最后登录
2025-1-13
发表于 2016-3-17 14:25:02 | 显示全部楼层
不懂,期待大神解答!!
xingxiny75@gmail.com.png
回复 支持 反对

使用道具 举报

该用户从未签到

37

主题

327

帖子

1

高级会员

Rank: 4

积分
886
最后登录
2023-7-19
发表于 2016-3-18 10:09:25 | 显示全部楼层
实际上你做普通传输,不需要调用这个函数的
回复 支持 反对

使用道具 举报

该用户从未签到

4

主题

22

帖子

0

注册会员

Rank: 2

积分
180
最后登录
2019-12-27
 楼主| 发表于 2016-4-7 18:59:09 | 显示全部楼层
FSL_TICS_ZP 发表于 2016-3-16 17:44
是的,没有相关的资料,你可以将其理解成ENET模块内独立的DMA子模块,与MCU的DMA是没有任何关系的,主要应 ...

工程师你好,我想问个问题,如果我在Kinetis上挂接了两个网卡,如果两个网卡仅进行数据链路层的(MAC)数据通信;当网线直连的时候,数据可以正常的收发,但是一旦连入路由器就无法正确收发数据了。这是为什么呢?
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-20 10:55
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    24

    主题

    1189

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1642
    最后登录
    2022-3-21
    发表于 2016-12-15 16:37:43 | 显示全部楼层
    andyxu 发表于 2016-4-7 18:59
    工程师你好,我想问个问题,如果我在Kinetis上挂接了两个网卡,如果两个网卡仅进行数据链路层的(MAC)数 ...

    是不是网关没设啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-20 10:55
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    24

    主题

    1189

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1642
    最后登录
    2022-3-21
    发表于 2016-12-15 16:39:25 | 显示全部楼层
    andyxu 发表于 2016-3-16 21:46
    好的  关于uDMA我大致有点概念了。在看链路层的MAC通信时,我看见如下代码:
    static void ENET_SetAddres ...

    这段代码我怎么没找到,你udma用起来了吗
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-18 22:09 , Processed in 0.101028 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表