zynq Lwip学习笔记-setup_isr 函数

这里写目录标题

  • 前言
  • 一、概述
  • 二、函数体
  • 三、调用关系

前言

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

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

原文链接:https://blog.csdn.net/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函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/803262.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringBoot整合MyBatis四种常用的分页方式

目录 方式1 一、准备工作 1. 创建表结构 2. 导入表数据 3. 导入pom.xml依赖 4. 配置application.yml文件 5. 创建公用的实体类 项目结构 2. 创建controller层 3. 创建service层 4. 创建mapper层 5. 创建xml文件 6. 使用postman进行测试,测试结果如下…

DNS 各记录类型说明及规则

各记录类型使用目的 记录类型使用目的A 记录将域名指向一个 IP 地址。CNAME 记录将域名指向另一个域名,再由另一个域名提供 IP 地址。MX 记录设置邮箱,让邮箱能收到邮件。NS 记录将子域名交给其他 DNS 服务商解析。AAAA 记录将域名指向一个 IPv6 地址。…

MQTT的学习

近期构建物联网平台,学习到MQTT,这里使用的是uniapp作为连接MQTT broker的,这里使用的是国产的EMQX。 MQTT的认识 MQTT 协议入门:基础知识和快速教程 | EMQ(简单的认识) 创建 MQTT 连接时如何设置参数&am…

从ChatGPT到多模态大模型:现状与未来(多模态)

ChatGPT 训练的核心技术主要包括: 预训练语言模型;有监督微调;基于人类反馈的 强 化 学 习 (ReinforcementLearningfrom Human Feedback,RLHF) 首先,通过自监督预训练使语言模型从大规模语料库中学习语言规律,具备基础 理解和生成能力;然后,通过构造指令微调数据集 并对模型进…

域名配置HSTS支持

配置前提:请确保网站已经支持https协议并且所有服务均通过https协议提供。 一、Apache服务器 编辑apache 配置文件: 在/etc/apache2/sites-enabled/website.conf中取消以下内容的注释: LoadModule headers_module modules/mod_headers.so 在/…

《1w实盘and大盘基金预测 day17》

昨天预测完美,最低3033,个人预测最低3030。有色已经开始出分歧了 昨日预测: 3030-3056-3068 明天大概率有一波反抽,反抽到3068附近,受压力下去 最近一直是中字头在护盘,等到不护就要走加速了。 证券看样子…

【科研相关知识】梯度下降算法(Gradient Descent)

梯度下降算法(Gradient Descent)梯度下降算法几种变体 梯度下降算法(Gradient Descent) 梯度下降算法是一种用于求解函数最小值的一阶优化算法。在机器学习和深度学习中,梯度下降算法被广泛用于模型训练,通过迭代的方式调整模型参数,以最小…

学籍管理

题源 map的基本操作 题目描述 您要设计一个学籍管理系统,最开始学籍数据是空的,然后该系统能够支持下面的操作(不超过 105105 条): 插入与修改,格式1 NAME SCORE:在系统中插入姓名为 NAME(由字母…

2. TypeScript 安装与环境配置指南

TypeScript 是 JavaScript 的一个超集,它为 JavaScript 增加了类型系统和对 ES6 的支持。TypeScript 不仅能够帮助开发者捕获代码中的错误,还能提供更好的编辑器支持,包括代码补全、接口提示等。本文将详细介绍如何在您的开发环境中安装和配置…

常见的mq产品和优点

常见的mq产品和优点 一、什么是mq? MQ全称 Message Queue(消息队列),是在消息的传输过程中保存消息的容器。多用于分布式系统之间进行通信,解耦。 二、常见的mq产品 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMq …

【学习】注意力机制(Attention)和 自注意力机制(self-Attention)

参考B站:09 Transformer 之什么是注意力机制(Attention) 1. 注意力机制(Attention) 红色的是科学家们发现,如果给你一张这个图,你眼睛的重点会聚焦在红色区域 人–》看脸 文章看标题 段落看…

弹幕功能1

今天看pure-admin的时候发现有个弹幕功能 GitHub - hellodigua/vue-danmaku: 基于 Vue 的弹幕交互组件 | A danmaku component for Vue

业主看完当场签约的神仙地产大屏,搞物业的你不来get同款么

各行各业都有可视化大屏的应用场景,不少同志曾私戳我:能不能给我XX行业的大屏示例哇,我展示的指标领导怎么都不满意哇! 于是俺在行业顾问大哥那苦苦哀求,终于给大家带来这个地产行业的“营销战图大屏”方案&#xff0…

《QT实用小工具·二十一》鼠标十字线

1、概述 源码放在文章末尾 该项目实现了界面绘制十字线并跟随鼠标移动的过程&#xff0c;下面是demo演示&#xff1a; 项目部分代码如下&#xff1a; #ifndef WIDGET_H #define WIDGET_H#include <QWidget>namespace Ui { class Widget; }class Widget : public QWidg…

springboot3 redis 实现分布式锁

分布式锁介绍 分布式锁是一种在分布式系统中用于控制不同节点上的进程或线程对共享资源进行互斥访问的技术机制。 在分布式环境中&#xff0c;多个服务可能同时访问和操作共享资源&#xff0c;如数据库、文件系统等。为了保持数据的一致性和完整性&#xff0c;需要确保在同一…

C++类与对象中(个人笔记)

类与对象中 类的6个默认成员函数1.构造函数1.1特性 2.析构函数2.1特性 3.拷贝构造函数3.1特性 4.赋值运算符重载4.1特性 5.日期类的实现6.const成员6.1const成员的几个问题 7.取地址及const取地址操作符重载 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为…

嵌入式学习51-单片机4

知识零碎&#xff1a; nop空指令 CRC校验 为了保证51单片与温度传感18b20 之间的高电平 采用一个上拉电阻改变电平的高低 温度寄存器原理

Jackson 2.x 系列【15】序列化器 JsonSerializer

有道无术&#xff0c;术尚可求&#xff0c;有术无道&#xff0c;止于术。 本系列Jackson 版本 2.17.0 源码地址&#xff1a;https://gitee.com/pearl-organization/study-jaskson-demo 文章目录 1. 概述2. 方法2.1 构造2.2 序列化2.3 其他 3. 实现类3.1 StdSerializer3.1.1 源…

vivado 设计调试

设计调试 对 FPGA 或 ACAP 设计进行调试是一个多步骤迭代式流程。与大多数复杂问题的处理方式一样 &#xff0c; 最好先将 FPGA 或 ACAP 设计调试流程细分为多个小部分 &#xff0c; 以便集中精力使设计中的每一小部分能逐一正常运行 &#xff0c; 而不是尝试一次性让整 个…

Nginx服务搭建案例

Nginx服务 安装和启动 解压源码 tar -xvf nginx-xx.xx.xx.tar.gz配置&#xff08;模块有很多&#xff0c;这里以ssl为例&#xff09; # 配置安装路径&#xff0c;指定服务运行时使用的用户&#xff0c;安装HTTP SSL模块 ./configure --prefix/usr/local/nginx --usernginx …