查看: 3156|回复: 2

[求助] LPC54608 ENET

[复制链接]
  • TA的每日心情
    开心
    2018-6-6 08:45
  • 签到天数: 328 天

    连续签到: 1 天

    [LV.8]以坛为家I

    10

    主题

    1047

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    2006
    最后登录
    2019-5-1
    发表于 2017-9-11 22:26:35 | 显示全部楼层 |阅读模式
    本帖最后由 anobodykey 于 2017-9-12 11:28 编辑

    这两天看了一下LPC54608的ENET模块驱动例程中有个txrx_rxpoll例程,看了一下有个疑问,关于ENET_R'xRead接口
    1. static uint8_t *ENET_RXRead(int32_t *length)
    2. {
    3.     uint32_t control;
    4.     uint8_t *data;
    5.     *length = 0;
    6.    
    7.     /* Get the Frame size */
    8.     control = ENET_GetRxDescriptor(&g_rxBuffDescrip[g_rxGenIdx]);
    9.     if (!(control & ENET_RXDESCRIP_RD_OWN_MASK))
    10.     {
    11.         if (control & ENET_RXDESCRIP_WR_LD_MASK)
    12.         {
    13.             /* if no error */
    14.             if (control & ENET_RXDESCRIP_WR_ERRSUM_MASK)
    15.             {
    16.                 *length = -1;
    17.             }
    18.             else{
    19.                 *length = control & ENET_RXDESCRIP_WR_PACKETLEN_MASK;
    20.                 data = (uint8_t *)g_rxbuffer[g_rxGenIdx];
    21.             }
    22.             g_rxGenIdx = (g_rxGenIdx + 1) % ENET_RXBD_NUM;
    23.         }
    24.     }   
    25.     return data;
    26. }
    复制代码
    在里面会检测Rx描述符的状态,但没有找到哪里会修改到control的状态,在初始时control的RD_OWN_MASK标记是置位的,不晓得哪里会清掉该标记?有人熟悉LPC54608的ENET模块吗?



    我知道答案 目前已有2人回答
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-6 08:45
  • 签到天数: 328 天

    连续签到: 1 天

    [LV.8]以坛为家I

    10

    主题

    1047

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    2006
    最后登录
    2019-5-1
     楼主| 发表于 2017-9-12 11:31:48 | 显示全部楼层
    这个可以查看手册中35.7.10章节,有提到tx和rx的描述符结构以及各个标志位的含义,标志位会由ENET的DMA模块自动修改。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-6 08:45
  • 签到天数: 328 天

    连续签到: 1 天

    [LV.8]以坛为家I

    10

    主题

    1047

    帖子

    1

    金牌会员

    Rank: 6Rank: 6

    积分
    2006
    最后登录
    2019-5-1
     楼主| 发表于 2017-9-13 10:32:25 | 显示全部楼层
    QQ截图20170913102915.png
    在看ENET模块时发现ENET_DescriptorInit接口是有问题的,其中930行和936行语句应该互换一下。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-25 08:43 , Processed in 0.088867 second(s), 24 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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