zynq Lwip学习笔记-setup_isr 函数

前言

最近在学习zynq中的lwip协议族,找不到很好的记笔记的地方,所以就用csdn记录一下自己的学习过程。现在对lwip不熟悉,只是把官方的lwip echo server例程跑了一下,能跑通就一点点的照着学了,笔记都是根据自己的理解写的,而且部分内容可能也只针对lwip echo server例程有效,笔记可以供有缘人参考,但不敢保证全对,有不对的地方也期待有高人指点一二。
————————————————

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

原文链接:https://blog.youkuaiyun.com/weixin_40356705/article/details/136824649

一、概述

  • 原型
void setup_isr (struct xemac_s *xemac)
  • 参数
    struct xemac_s *xemac :struct xemac_s类型的指针变量,
    struct xemac_s变量具体作用如下:

1,EMACPS 接口的引用:该结构体可能包含一个指向EMACPS硬件实例的引用或句柄,用于后续与硬件进行交互。

2,状态信息:结构体可能包含表示EMACPS当前状态的信息,比如是否已初始化、是否正在发送或接收数据等。

3,配置参数:用于配置EMACPS的参数,比如MAC地址、IP地址、子网掩码等,可能会存储在结构体中。

4,发送和接收缓冲区:为了高效处理数据包的发送和接收,结构体可能包含指向发送和接收缓冲区的指针。

5,统计信息:发送和接收的数据包数量、错误计数等统计信息也可能会被存储在结构体中。

  • 作用

二、函数体

void setup_isr (struct xemac_s *xemac)  
{  
    xemacpsif_s   *xemacpsif;  
  
    // 获取EMACPS接口的指针,它存储在xemac结构体的state成员中  
    xemacpsif = (xemacpsif_s *)(xemac->state);  
  
    /*  
     * 设置回调函数  
     * 这里为EMACPS的几种事件类型设置处理函数  
     */  
  
    // 设置DMA发送完成事件的处理函数为emacps_send_handler,并传递xemac作为参数  
    XEmacPs_SetHandler(&xemacpsif->emacps, XEMACPS_HANDLER_DMASEND,  
                         (void *) emacps_send_handler,  
                         (void *) xemac);  
  
    // 设置DMA接收完成事件的处理函数为emacps_recv_handler,并传递xemac作为参数  
    XEmacPs_SetHandler(&xemacpsif->emacps, XEMACPS_HANDLER_DMARECV,  
                         (void *) emacps_recv_handler,  
                         (void *) xemac);  
  
    // 设置错误事件的处理函数为emacps_error_handler,并传递xemac作为参数  
    XEmacPs_SetHandler(&xemacpsif->emacps, XEMACPS_HANDLER_ERROR,  
                         (void *) emacps_error_handler,  
                         (void *) xemac);  
}

函数特别简单,就是注册中断函数。这里主要关心emacps_recv_handler函数,经过注册后,每次收到数据,都会通过此函数处理。

三、调用关系

被low_level_init调用,调用了XEmacPs_SetHandler函数。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值